]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
refactor Catalog.__cmp__ method
authorFelix Schwarz <felix.schwarz@oss.schwarz.eu>
Mon, 26 Sep 2011 08:53:28 +0000 (08:53 +0000)
committerFelix Schwarz <felix.schwarz@oss.schwarz.eu>
Mon, 26 Sep 2011 08:53:28 +0000 (08:53 +0000)
babel/messages/catalog.py

index 7ec66491f062af74545f5507fd46bd13ed1d8915..c8a5f1c9ec629f0acea6989d831474fc2a749342 100644 (file)
@@ -89,16 +89,19 @@ class Message(object):
 
     def __cmp__(self, obj):
         """Compare Messages, taking into account plural ids"""
-        if isinstance(obj, Message):
-            plural = self.pluralizable
-            obj_plural = obj.pluralizable
-            if plural and obj_plural:
-                return cmp(self.id[0], obj.id[0])
-            elif plural:
-                return cmp(self.id[0], obj.id)
-            elif obj_plural:
-                return cmp(self.id, obj.id[0])
-        return cmp(self.id, obj.id)
+        def values_to_compare():
+            if isinstance(obj, Message):
+                plural = self.pluralizable
+                obj_plural = obj.pluralizable
+                if plural and obj_plural:
+                    return self.id[0], obj.id[0]
+                elif plural:
+                    return self.id[0], obj.id
+                elif obj_plural:
+                    return self.id, obj.id[0]
+            return self.id, obj.id
+        this, other = values_to_compare()
+        return cmp(this, other)
 
     def __gt__(self, other):
         return self.__cmp__(other) > 0