Skip to content
Snippets Groups Projects

Resolve "Print SFG"

Merged Adam Jakobsson requested to merge 19-print-sfg into develop
5 unresolved threads
5 files
+ 449
119
Compare changes
  • Side-by-side
  • Inline
Files
5
+ 11
6
@@ -166,13 +166,14 @@ class AbstractOperation(Operation, AbstractGraphComponent):
@@ -166,13 +166,14 @@ class AbstractOperation(Operation, AbstractGraphComponent):
if input_sources is not None:
if input_sources is not None:
source_count = len(input_sources)
source_count = len(input_sources)
if source_count != input_count:
if source_count != input_count:
raise ValueError(f"Operation expected {input_count} input sources but only got {source_count}")
raise ValueError(
 
f"Operation expected {input_count} input sources but only got {source_count}")
for i, src in enumerate(input_sources):
for i, src in enumerate(input_sources):
if src is not None:
if src is not None:
self._input_ports[i].connect(src.source)
self._input_ports[i].connect(src.source)
@abstractmethod
@abstractmethod
def evaluate(self, *inputs) -> Any: # pylint: disable=arguments-differ
def evaluate(self, *inputs) -> Any: # pylint: disable=arguments-differ
"""Evaluate the operation and generate a list of output values given a
"""Evaluate the operation and generate a list of output values given a
list of input values.
list of input values.
"""
"""
@@ -246,11 +247,13 @@ class AbstractOperation(Operation, AbstractGraphComponent):
@@ -246,11 +247,13 @@ class AbstractOperation(Operation, AbstractGraphComponent):
result = self.evaluate(*input_values)
result = self.evaluate(*input_values)
if isinstance(result, collections.Sequence):
if isinstance(result, collections.Sequence):
if len(result) != self.output_count:
if len(result) != self.output_count:
raise RuntimeError("Operation evaluated to incorrect number of outputs")
raise RuntimeError(
 
"Operation evaluated to incorrect number of outputs")
return result
return result
if isinstance(result, Number):
if isinstance(result, Number):
if self.output_count != 1:
if self.output_count != 1:
raise RuntimeError("Operation evaluated to incorrect number of outputs")
raise RuntimeError(
 
"Operation evaluated to incorrect number of outputs")
return [result]
return [result]
raise RuntimeError("Operation evaluated to invalid type")
raise RuntimeError("Operation evaluated to invalid type")
@@ -296,11 +299,13 @@ class AbstractOperation(Operation, AbstractGraphComponent):
@@ -296,11 +299,13 @@ class AbstractOperation(Operation, AbstractGraphComponent):
def source(self) -> OutputPort:
def source(self) -> OutputPort:
if self.output_count != 1:
if self.output_count != 1:
diff = "more" if self.output_count > 1 else "less"
diff = "more" if self.output_count > 1 else "less"
raise TypeError(f"{self.__class__.__name__} cannot be used as an input source because it has {diff} than 1 output")
raise TypeError(
 
f"{self.__class__.__name__} cannot be used as an input source because it has {diff} than 1 output")
return self.output(0)
return self.output(0)
def copy_unconnected(self) -> GraphComponent:
def copy_unconnected(self) -> GraphComponent:
new_comp: AbstractOperation = super().copy_unconnected()
new_comp: AbstractOperation = super().copy_unconnected()
for name, value in self.params.items():
for name, value in self.params.items():
new_comp.set_param(name, deepcopy(value)) # pylint: disable=no-member
new_comp.set_param(name, deepcopy(
 
value)) # pylint: disable=no-member
return new_comp
return new_comp
Loading