aboutsummaryrefslogtreecommitdiffhomepage
path: root/pyecsca/ec/formula/graph.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyecsca/ec/formula/graph.py')
-rw-r--r--pyecsca/ec/formula/graph.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/pyecsca/ec/formula/graph.py b/pyecsca/ec/formula/graph.py
index c335635..59b51dd 100644
--- a/pyecsca/ec/formula/graph.py
+++ b/pyecsca/ec/formula/graph.py
@@ -100,7 +100,7 @@ class CodeOpNode(Node):
def __init__(self, op: CodeOp):
super().__init__()
self.op = op
- assert self.op.operator in [
+ if self.op.operator not in [
OpType.Sub,
OpType.Add,
OpType.Id,
@@ -110,7 +110,8 @@ class CodeOpNode(Node):
OpType.Pow,
OpType.Inv,
OpType.Neg,
- ], self.op.operator
+ ]:
+ raise ValueError
@classmethod
def from_str(cls, result: str, left, operator, right):
@@ -226,10 +227,7 @@ class FormulaGraph:
if side is None:
continue
if isinstance(side, int):
- if side in constants:
- parent_node = constants[side]
- else:
- parent_node = ConstantNode(side)
+ parent_node = constants.get(side, ConstantNode(side))
self.nodes.append(parent_node)
self.roots.append(parent_node)
else:
@@ -266,7 +264,13 @@ class FormulaGraph:
assumptions = [deepcopy(assumption) for assumption in self.assumptions]
for klass in CodeFormula.__subclasses__():
if klass.shortname == self.shortname:
- return klass(self.name if name is None else self.name + "-" + name, code, self.coordinate_model, parameters, assumptions)
+ return klass(
+ self.name if name is None else self.name + "-" + name,
+ code,
+ self.coordinate_model,
+ parameters,
+ assumptions,
+ )
raise ValueError(f"Bad formula type: {self.shortname}")
def networkx_graph(self) -> nx.DiGraph: