diff --git a/mininet/topo.py b/mininet/topo.py index 65d445e470bcc1118355586e19b57b65b555d3ee..b6f1fa33c78b0991c3ebc38fe42dc1367fe12c78 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"