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