[libvirt] [PATCH python 06/15] generator: Update to use sort() 'key' param

Daniel P. Berrange berrange at redhat.com
Tue Dec 3 16:36:42 UTC 2013


From: "Daniel P. Berrange" <berrange at redhat.com>

The sort() method previously took either a compartor function
or a key function. Only the latter is supported in Python3.

Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
---
 generator.py | 30 ++++++++----------------------
 1 file changed, 8 insertions(+), 22 deletions(-)

diff --git a/generator.py b/generator.py
index 8cce800..9f4b76b 100755
--- a/generator.py
+++ b/generator.py
@@ -1172,23 +1172,9 @@ def nameFixup(name, classe, type, file):
     return func
 
 
-def functionCompare(info1, info2):
-    (index1, func1, name1, ret1, args1, file1, mod1) = info1
-    (index2, func2, name2, ret2, args2, file2, mod2) = info2
-    if file1 == file2:
-        if func1 < func2:
-            return -1
-        if func1 > func2:
-            return 1
-    if file1 == "python_accessor":
-        return -1
-    if file2 == "python_accessor":
-        return 1
-    if file1 < file2:
-        return -1
-    if file1 > file2:
-        return 1
-    return 0
+def functionSortKey(info):
+    (index, func, name, ret, args, filename, mod) = info
+    return func, filename
 
 def writeDoc(module, name, args, indent, output):
      if module == "libvirt":
@@ -1319,7 +1305,7 @@ def buildWrappers(module):
 
     if "None" in function_classes:
         flist = function_classes["None"]
-        flist.sort(functionCompare)
+        flist.sort(key=functionSortKey)
         oldfile = ""
         for info in flist:
             (index, func, name, ret, args, file, mod) = info
@@ -1468,7 +1454,7 @@ def buildWrappers(module):
                 classes.write("        return self._dom\n\n")
 
             flist = function_classes[classname]
-            flist.sort(functionCompare)
+            flist.sort(key=functionSortKey)
             oldfile = ""
             for info in flist:
                 (index, func, name, ret, args, file, mod) = info
@@ -1775,7 +1761,7 @@ def buildWrappers(module):
     for type,enum in list(enums.items()):
         classes.write("# %s\n" % type)
         items = list(enum.items())
-        items.sort(lambda i1,i2: cmp(int(i1[1]),int(i2[1])))
+        items.sort(key=lambda i: int(i[1]))
         for name,value in items:
             classes.write("%s = %s\n" % (name,value))
         classes.write("\n")
@@ -1885,7 +1871,7 @@ def qemuBuildWrappers(module):
     for type,enum in list(qemu_enums.items()):
         fd.write("# %s\n" % type)
         items = list(enum.items())
-        items.sort(lambda i1,i2: cmp(int(i1[1]),int(i2[1])))
+        items.sort(key=lambda i: int(i[1]))
         for name,value in items:
             fd.write("%s = %s\n" % (name,value))
         fd.write("\n")
@@ -1996,7 +1982,7 @@ def lxcBuildWrappers(module):
     for type,enum in list(lxc_enums.items()):
         fd.write("# %s\n" % type)
         items = list(enum.items())
-        items.sort(lambda i1,i2: cmp(int(i1[1]),int(i2[1])))
+        items.sort(key=lambda i: int(i[1]))
         for name,value in items:
             fd.write("%s = %s\n" % (name,value))
         fd.write("\n")
-- 
1.8.3.1




More information about the libvir-list mailing list