From c10c1186a56becb825708bebfeb5590d954856e6 Mon Sep 17 00:00:00 2001 From: Daniele Varrazzo Date: Sat, 22 Feb 2014 21:51:28 +0000 Subject: [PATCH] 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. --- lib/_range.py | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/_range.py b/lib/_range.py index b1172811..c4e0d4e8 100644 --- a/lib/_range.py +++ b/lib/_range.py @@ -154,20 +154,22 @@ class Range(object): return False 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 - for attr in self.__slots__: - self_value = getattr(self, attr) - other_value = getattr(other, attr) - if self_value == other_value: - pass - elif self_value is None: - return True - elif other_value is None: - return False - else: - return self_value <= other_value - return True + + def __ge__(self, other): + if self == other: + return True + else: + return self.__gt__(other) def register_range(pgrange, pyrange, conn_or_curs, globally=False):