Explode SFG
Description of issue:
Explode an SFG, a function that should return all of the intermediary operations, the input operations and the output operations of an SFG but also "destroy" the SFG by making it unusable in the future. In that way the returned operations can be used for manipulations. Psuedocode written by @ivaha717 :
def explode(self) -> Tuple[Sequence[Tuple[Signal, Sequence[Signal]]], Sequence[Tuple[Signal, Sequence[Signal]]]]: inputs = [] outputs = [] for port, op in zip(self.inputs, self.input_operations): # TODO: Disconnect signals first inputs.append((port.signals[0], op.output(0).signals)) for port, op in zip(self.outputs, self.output_operations): # TODO: Disconnect signals first outputs.append((op.input(0).signals[0], port.signals)) del self._input_operations del self._output_operations del etc.... return (inputs, outputs)
Linked Requirements:
( Y )
Potential Issues:X
Blockers:( #X )
Issue Requirements:- An exploded SFG should not be able to be used in the future. All members of the exploded SFG object should be removed and preferably it should throw an error if functions of the SFG are used.
X
User stories:- As a user i want to explode an an SFG and return all of the intermediary operations, the input operations and the output operations of an SFG.