mirror of
https://github.com/moparisthebest/SickRage
synced 2024-12-26 01:38:55 -05:00
27 lines
852 B
Python
27 lines
852 B
Python
|
class ComparableMixin(object):
|
||
|
def _compare(self, other, method):
|
||
|
try:
|
||
|
return method(self._cmpkey(), other._cmpkey())
|
||
|
except (AttributeError, TypeError):
|
||
|
# _cmpkey not implemented, or return different type,
|
||
|
# so I can't compare with "other".
|
||
|
return NotImplemented
|
||
|
|
||
|
def __lt__(self, other):
|
||
|
return self._compare(other, lambda s, o: s < o)
|
||
|
|
||
|
def __le__(self, other):
|
||
|
return self._compare(other, lambda s, o: s <= o)
|
||
|
|
||
|
def __eq__(self, other):
|
||
|
return self._compare(other, lambda s, o: s == o)
|
||
|
|
||
|
def __ge__(self, other):
|
||
|
return self._compare(other, lambda s, o: s >= o)
|
||
|
|
||
|
def __gt__(self, other):
|
||
|
return self._compare(other, lambda s, o: s > o)
|
||
|
|
||
|
def __ne__(self, other):
|
||
|
return self._compare(other, lambda s, o: s != o)
|