Skip to content
Snippets Groups Projects
Commit 81631595 authored by Kevin's avatar Kevin
Browse files

changed replace_operations method

parent 58f4272f
No related branches found
No related tags found
1 merge request!44Resolve "Operation Replacement in a SFG"
Pipeline #14948 failed
This commit is part of merge request !44. Comments created here will be created in the context of that merge request.
...@@ -414,12 +414,12 @@ class SFG(AbstractOperation): ...@@ -414,12 +414,12 @@ class SFG(AbstractOperation):
operation: The operation used for replacement. operation: The operation used for replacement.
""" """
_sfg = self()
inputs = [] inputs = []
outputs = [] outputs = []
for _operation in self.operations: for _operation in [_sfg.find_by_id(_id) for _id in operation_ids]:
if _operation.graph_id not in operation_ids:
continue
# Retrive input operations # Retrive input operations
for _signal in _operation.input_signals: for _signal in _operation.input_signals:
...@@ -431,8 +431,8 @@ class SFG(AbstractOperation): ...@@ -431,8 +431,8 @@ class SFG(AbstractOperation):
if _signal.destination.operation.graph_id not in operation_ids: if _signal.destination.operation.graph_id not in operation_ids:
outputs.append(_signal.destination.operation) outputs.append(_signal.destination.operation)
assert len(inputs) + len(outputs) == \ assert len(inputs) == operation.input_count, "The input count must match"
operation.input_count + operation.output_count, "The input and output count must match" assert len(outputs) == operation.output_count, "The output count must match"
for index_in, _input in enumerate(inputs): for index_in, _input in enumerate(inputs):
for _signal in _input.output_signals: for _signal in _input.output_signals:
...@@ -443,8 +443,8 @@ class SFG(AbstractOperation): ...@@ -443,8 +443,8 @@ class SFG(AbstractOperation):
for _signal in _output.input_signals: for _signal in _output.input_signals:
_signal.remove_source() _signal.remove_source()
_signal.set_source(operation.output(index_out)) _signal.set_source(operation.output(index_out))
return self() return _sfg
def _evaluate_source(self, src: OutputPort, results: MutableResultMap, registers: MutableRegisterMap, prefix: str) -> Number: def _evaluate_source(self, src: OutputPort, results: MutableResultMap, registers: MutableRegisterMap, prefix: str) -> Number:
src_prefix = prefix src_prefix = prefix
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment