changeset 565:b0e80df660ab trunk

refactor Catalog.__cmp__ method
author fschwarz
date Mon, 26 Sep 2011 08:53:28 +0000
parents 1ef087352e01
children 593157da23f3
files babel/messages/catalog.py
diffstat 1 files changed, 13 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/babel/messages/catalog.py
+++ b/babel/messages/catalog.py
@@ -89,16 +89,19 @@
 
     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
Copyright (C) 2012-2017 Edgewall Software