Added implementation for Range gt and ge operators

Using a common implementation for all the operators. Note that lt is the
one used by sort so it's nice it's the fastest.
This commit is contained in:
Daniele Varrazzo 2014-02-22 21:51:28 +00:00
parent 6cd0647da9
commit 4545d1636c

View File

@ -154,20 +154,22 @@ class Range(object):
return False return False
def __le__(self, other): def __le__(self, other):
if not isinstance(other, Range): if self == other:
return True
else:
return self.__lt__(other)
def __gt__(self, other):
if isinstance(other, Range):
return other.__lt__(self)
else:
return NotImplemented return NotImplemented
for attr in self.__slots__:
self_value = getattr(self, attr) def __ge__(self, other):
other_value = getattr(other, attr) if self == other:
if self_value == other_value: return True
pass else:
elif self_value is None: return self.__gt__(other)
return True
elif other_value is None:
return False
else:
return self_value <= other_value
return True
def register_range(pgrange, pyrange, conn_or_curs, globally=False): def register_range(pgrange, pyrange, conn_or_curs, globally=False):