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

Changed replace operations method

parent 311f41f5
No related branches found
No related tags found
1 merge request!44Resolve "Operation Replacement in a SFG"
Pipeline #16380 passed
......@@ -416,34 +416,24 @@ class SFG(AbstractOperation):
_sfg = self()
inputs = []
outputs = []
input_signals = []
output_signals = []
for _operation in [_sfg.find_by_id(_id) for _id in operation_ids]:
# Retrive input operations
for _signal in _operation.input_signals:
if _signal.source.operation.graph_id not in operation_ids:
inputs.append(_signal.source.operation)
# Retrive output operations
for _signal in _operation.output_signals:
if _signal.destination.operation.graph_id not in operation_ids:
outputs.append(_signal.destination.operation)
assert len(inputs) == operation.input_count, "The input count must match"
assert len(outputs) == operation.output_count, "The output count must match"
for index_in, _input in enumerate(inputs):
for _signal in _input.output_signals:
input_signals.extend(filter(lambda s: s.source.operation.graph_id not in operation_ids, _operation.input_signals))
output_signals.extend(filter(lambda s: s.destination.operation.graph_id not in operation_ids, _operation.output_signals))
assert len(input_signals) == operation.input_count, "The input count must match"
assert len(output_signals) == operation.output_count, "The output count must match"
for index_in, _signal in enumerate(input_signals):
_signal.remove_destination()
_signal.set_destination(operation.input(index_in))
for index_out, _output in enumerate(outputs):
for _signal in _output.input_signals:
for index_out, _signal in enumerate(output_signals):
_signal.remove_source()
_signal.set_source(operation.output(index_out))
return _sfg()
def _evaluate_source(self, src: OutputPort, results: MutableResultMap, registers: MutableRegisterMap, prefix: str) -> Number:
......
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