def CmpToKey(mycmp):
'Convert a cmp= function into a key= function'
class K(object):
def __init__(self, obj, *args):
self.obj = obj
def __lt__(self, other):
return mycmp(self.obj, other.obj) < 0
def __gt__(self, other):
return mycmp(self.obj, other.obj) > 0
def __eq__(self, other):
return mycmp(self.obj, other.obj) == 0
def __le__(self, other):
return mycmp(self.obj, other.obj) <= 0
def __ge__(self, other):
return mycmp(self.obj, other.obj) >= 0
def __ne__(self, other):
return mycmp(self.obj, other.obj) != 0
return K
Diff to Previous Revision
--- revision 3 2009-03-25 14:16:06
+++ revision 4 2010-03-31 17:05:26
@@ -4,15 +4,15 @@
def __init__(self, obj, *args):
self.obj = obj
def __lt__(self, other):
- return mycmp(self.obj, other.obj) == -1
+ return mycmp(self.obj, other.obj) < 0
def __gt__(self, other):
- return mycmp(self.obj, other.obj) == 1
+ return mycmp(self.obj, other.obj) > 0
def __eq__(self, other):
return mycmp(self.obj, other.obj) == 0
def __le__(self, other):
- return mycmp(self.obj, other.obj) != 1
+ return mycmp(self.obj, other.obj) <= 0
def __ge__(self, other):
- return mycmp(self.obj, other.obj) != -1
+ return mycmp(self.obj, other.obj) >= 0
def __ne__(self, other):
return mycmp(self.obj, other.obj) != 0
return K