diff options
author | Michael Schneeberger <michael.schneeberger@fhnw.ch> | 2022-08-19 15:59:54 +0200 |
---|---|---|
committer | Michael Schneeberger <michael.schneeberger@fhnw.ch> | 2022-08-19 15:59:54 +0200 |
commit | 52b1615022730b3ceb4b3ced0f6426ab6c764328 (patch) | |
tree | 811ff4f94c179e8f865eb5a8127716018f731d9f /polymatrix/expression/mixins/substituteexprmixin.py | |
parent | add function 'get_key_from_offset' (diff) | |
download | polymatrix-52b1615022730b3ceb4b3ced0f6426ab6c764328.tar.gz polymatrix-52b1615022730b3ceb4b3ced0f6426ab6c764328.zip |
'get_poly' returns None if (row, col) entry is empty, instead of raising a KeyError exception
Diffstat (limited to 'polymatrix/expression/mixins/substituteexprmixin.py')
-rw-r--r-- | polymatrix/expression/mixins/substituteexprmixin.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/polymatrix/expression/mixins/substituteexprmixin.py b/polymatrix/expression/mixins/substituteexprmixin.py index 1ba8a1a..9741897 100644 --- a/polymatrix/expression/mixins/substituteexprmixin.py +++ b/polymatrix/expression/mixins/substituteexprmixin.py @@ -50,6 +50,9 @@ class SubstituteExprMixin(ExpressionBaseMixin): elif isinstance(substitution_expr, int) or isinstance(substitution_expr, float): polynomial = {tuple(): substitution_expr} + else: + raise Exception(f'{substitution_expr=} not recognized') + return state, result + (polynomial,) *_, (state, substitutions) = tuple(itertools.accumulate( @@ -63,14 +66,13 @@ class SubstituteExprMixin(ExpressionBaseMixin): for row in range(underlying.shape[0]): for col in range(underlying.shape[1]): - try: - underlying_terms = underlying.get_poly(row, col) - except KeyError: + polynomial = underlying.get_poly(row, col) + if polynomial is None: continue terms_row_col = collections.defaultdict(float) - for monomial, value in underlying_terms.items(): + for monomial, value in polynomial.items(): terms_monomial = {tuple(): value} |