From 4ab6906c1d28508e993f5f2fcef520b9b1676fae Mon Sep 17 00:00:00 2001 From: angloth <angus.lothian@hotmail.com> Date: Thu, 9 Apr 2020 14:16:10 +0200 Subject: [PATCH] Add deepcopy implementation, however doesn't user input_sources argument so is not fully complete yet --- b_asic/signal_flow_graph.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/b_asic/signal_flow_graph.py b/b_asic/signal_flow_graph.py index 79f3e5d6..fd23fda2 100644 --- a/b_asic/signal_flow_graph.py +++ b/b_asic/signal_flow_graph.py @@ -66,6 +66,7 @@ class SFG(AbstractOperation): self._added_components_mapping = {} self._original_input_signals_indexes = {} self._original_output_signals_indexes = {} + self._id_number_offset = id_number_offset # Setup input signals. for input_index, sig in enumerate(input_signals): @@ -207,6 +208,13 @@ class SFG(AbstractOperation): """ return self._components_by_name.get(name, []) + def deep_copy(self) -> "SFG": + """Returns a deep copy of self.""" + copy = SFG(inputs=self._input_operations, + outputs=self._output_operations, id_number_offset=self._id_number_offset, name=super().name) + + return copy + def _add_component_copy_unconnected(self, original_comp: GraphComponent) -> GraphComponent: assert original_comp not in self._added_components_mapping, "Tried to add duplicate SFG component" -- GitLab