summaryrefslogtreecommitdiff
path: root/lib/_range.py
diff options
context:
space:
mode:
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>2012-09-23 22:01:39 +0100
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>2012-09-23 22:01:39 +0100
commitd2cee6f9ada9a59a382be68b052c770b8df1801d (patch)
treec298b6404ebb47f578fcf03c197eab1c7c37e795 /lib/_range.py
parent94c6353d552208b1c7638f393a3ed28e1eb1b968 (diff)
downloadpsycopg2-d2cee6f9ada9a59a382be68b052c770b8df1801d.tar.gz
Added in operator for ranges
Diffstat (limited to 'lib/_range.py')
-rw-r--r--lib/_range.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/_range.py b/lib/_range.py
index 818cb15..01e5c90 100644
--- a/lib/_range.py
+++ b/lib/_range.py
@@ -115,6 +115,22 @@ class Range(object):
if self._upper is None: return False
return self._bounds[1] == ']'
+ def __contains__(self, x):
+ if self._empty: return False
+ if self._lower is not None:
+ if self._bounds[0] == '[':
+ if x < self._lower: return False
+ else:
+ if x <= self._lower: return False
+
+ if self._upper is not None:
+ if self._bounds[1] == ']':
+ if x > self._upper: return False
+ else:
+ if x >= self._upper: return False
+
+ return True
+
def register_range(pgrange, pyrange, conn_or_curs, globally=False):
"""Register a typecaster and an adapter for range a range type.