summaryrefslogtreecommitdiff
path: root/lib/_range.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/_range.py')
-rw-r--r--lib/_range.py39
1 files changed, 25 insertions, 14 deletions
diff --git a/lib/_range.py b/lib/_range.py
index 4cfd387..ee9c329 100644
--- a/lib/_range.py
+++ b/lib/_range.py
@@ -30,6 +30,7 @@ from psycopg2._psycopg import ProgrammingError, InterfaceError
from psycopg2.extensions import ISQLQuote, adapt, register_adapter
from psycopg2.extensions import new_type, new_array_type, register_type
+
class Range(object):
"""Python representation for a PostgreSQL |range|_ type.
@@ -78,42 +79,50 @@ class Range(object):
@property
def lower_inf(self):
"""`!True` if the range doesn't have a lower bound."""
- if self._bounds is None: return False
+ if self._bounds is None:
+ return False
return self._lower is None
@property
def upper_inf(self):
"""`!True` if the range doesn't have an upper bound."""
- if self._bounds is None: return False
+ if self._bounds is None:
+ return False
return self._upper is None
@property
def lower_inc(self):
"""`!True` if the lower bound is included in the range."""
- if self._bounds is None: return False
- if self._lower is None: return False
+ if self._bounds is None or self._lower is None:
+ return False
return self._bounds[0] == '['
@property
def upper_inc(self):
"""`!True` if the upper bound is included in the range."""
- if self._bounds is None: return False
- if self._upper is None: return False
+ if self._bounds is None or self._upper is None:
+ return False
return self._bounds[1] == ']'
def __contains__(self, x):
- if self._bounds is None: return False
+ if self._bounds is None:
+ return False
+
if self._lower is not None:
if self._bounds[0] == '[':
- if x < self._lower: return False
+ if x < self._lower:
+ return False
else:
- if x <= self._lower: return False
+ if x <= self._lower:
+ return False
if self._upper is not None:
if self._bounds[1] == ']':
- if x > self._upper: return False
+ if x > self._upper:
+ return False
else:
- if x >= self._upper: return False
+ if x >= self._upper:
+ return False
return True
@@ -295,7 +304,8 @@ class RangeCaster(object):
self.adapter.name = pgrange
else:
try:
- if issubclass(pgrange, RangeAdapter) and pgrange is not RangeAdapter:
+ if issubclass(pgrange, RangeAdapter) \
+ and pgrange is not RangeAdapter:
self.adapter = pgrange
except TypeError:
pass
@@ -436,14 +446,17 @@ class NumericRange(Range):
"""
pass
+
class DateRange(Range):
"""Represents :sql:`daterange` values."""
pass
+
class DateTimeRange(Range):
"""Represents :sql:`tsrange` values."""
pass
+
class DateTimeTZRange(Range):
"""Represents :sql:`tstzrange` values."""
pass
@@ -508,5 +521,3 @@ tsrange_caster._register()
tstzrange_caster = RangeCaster('tstzrange', DateTimeTZRange,
oid=3910, subtype_oid=1184, array_oid=3911)
tstzrange_caster._register()
-
-