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