diff options
Diffstat (limited to 'miasm2/core/graph.py')
| -rw-r--r-- | miasm2/core/graph.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/miasm2/core/graph.py b/miasm2/core/graph.py index f38f71d6..ee5dc418 100644 --- a/miasm2/core/graph.py +++ b/miasm2/core/graph.py @@ -26,6 +26,25 @@ class DiGraph(object): def edges(self): return self._edges + def merge(self, graph): + """Merge the current graph with @graph + @graph: DiGraph instance + """ + for node in graph._nodes: + self.add_node(node) + for edge in graph._edges: + self.add_edge(*edge) + + def __add__(self, graph): + """Wrapper on `.merge`""" + self.merge(graph) + return self + + def copy(self): + """Copy the current graph instance""" + graph = self.__class__() + return graph + self + def __eq__(self, graph): if not isinstance(graph, self.__class__): return False |