Merge "Faster graph copy"
This commit is contained in:
commit
9801ffdb09
@ -70,9 +70,13 @@ class NXGraph(Graph):
|
|||||||
return NXAlgorithm(self)
|
return NXAlgorithm(self)
|
||||||
|
|
||||||
def copy(self):
|
def copy(self):
|
||||||
self_copy = NXGraph(self.name, self.root_id)
|
# Networkx graph copy is very slow, so we implement
|
||||||
self_copy._g = self._g.copy()
|
nodes = self._g.nodes_iter(data=True)
|
||||||
return self_copy
|
vertices = [Vertex(vertex_id=n, properties=data) for n, data in nodes]
|
||||||
|
edges_iter = self._g.edges_iter(data=True, keys=True)
|
||||||
|
edges = [Edge(source_id=u, target_id=v, label=l, properties=data)
|
||||||
|
for u, v, l, data in edges_iter]
|
||||||
|
return NXGraph(self.name, self.root_id, vertices, edges)
|
||||||
|
|
||||||
@Notifier.update_notify
|
@Notifier.update_notify
|
||||||
def add_vertex(self, v):
|
def add_vertex(self, v):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user