summaryrefslogtreecommitdiffstats
path: root/polymatrix/expression/mixins/substituteexprmixin.py
diff options
context:
space:
mode:
authorMichael Schneeberger <michael.schneeberger@fhnw.ch>2022-08-19 15:59:54 +0200
committerMichael Schneeberger <michael.schneeberger@fhnw.ch>2022-08-19 15:59:54 +0200
commit52b1615022730b3ceb4b3ced0f6426ab6c764328 (patch)
tree811ff4f94c179e8f865eb5a8127716018f731d9f /polymatrix/expression/mixins/substituteexprmixin.py
parentadd function 'get_key_from_offset' (diff)
downloadpolymatrix-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.py10
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}