From 634761b8a7ad4734dcdb64978ef6a1f412dc85ab Mon Sep 17 00:00:00 2001 From: Bob Lantz <rlantz@cs.stanford.edu> Date: Mon, 3 Nov 2014 12:59:53 -0800 Subject: [PATCH] Fix edges() and add convertTo() to Topo() (with keys option) --- mininet/topo.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mininet/topo.py b/mininet/topo.py index 65d445e4..b6f1fa33 100644 --- a/mininet/topo.py +++ b/mininet/topo.py @@ -73,7 +73,7 @@ def edges_iter( self, data=False, keys=False ): def edges( self, data=False, keys=False ): "Return list of graph edges" - return list( self.edges_iter( data=data, keys=key ) ) + return list( self.edges_iter( data=data, keys=keys ) ) def __getitem__( self, node ): @@ -84,12 +84,13 @@ def __len__( self ): "Return the number of nodes" return len( self.node ) - def convertTo( self, cls, data=False ): + def convertTo( self, cls, data=False, keys=False ): """Convert to a new object of networkx.MultiGraph-like class cls - data: include node and edge data""" + data: include node and edge data + keys: include edge keys as well as edge data""" g = cls() g.add_nodes_from( self.nodes( data=data ) ) - g.add_edges_from( self.edges( data=data ) ) + g.add_edges_from( self.edges( data=( data or keys ), keys=keys ) ) return g @@ -266,6 +267,12 @@ def setNodeInfo( self, name, info ): "Set metadata (dict) for node" self.g.node[ name ] = info + def convertTo( self, cls, data=True, keys=True ): + """Convert to a new object of networkx.MultiGraph-like class cls + data: include node and edge data (default True) + keys: include edge keys as well as edge data (default True)""" + return self.g.convertTo( cls, data=data, keys=keys ) + @staticmethod def sorted( items ): "Items sorted in natural (i.e. alphabetical) order" -- GitLab