Dropped Range classes for specific numeric types

This commit is contained in:
Daniele Varrazzo 2012-09-23 21:08:18 +01:00
parent 5e7c1d0b51
commit 45cbcc0713
3 changed files with 10 additions and 23 deletions

View File

@ -347,18 +347,6 @@ class NumberRange(Range):
"""A `Range` suitable to pass Python numeric types to a PostgreSQL range."""
pass
class Int4Range(NumberRange):
"""Represents :sql:`int4range` values."""
pass
class Int8Range(NumberRange):
"""Represents :sql:`int8range` values."""
pass
class DecimalRange(NumberRange):
"""Represents :sql:`numrange` values."""
pass
class DateRange(Range):
"""Represents :sql:`daterange` values."""
pass
@ -408,15 +396,15 @@ register_adapter(NumberRange, NumberRangeAdapter)
# Register globally typecasters and adapters for builtin range types.
# note: the adapter is registered more than once, but this is harmless.
int4range_caster = RangeCaster(NumberRangeAdapter, Int4Range,
int4range_caster = RangeCaster(NumberRangeAdapter, NumberRange,
oid=3904, subtype_oid=23, array_oid=3905)
int4range_caster._register()
int8range_caster = RangeCaster(NumberRangeAdapter, Int8Range,
int8range_caster = RangeCaster(NumberRangeAdapter, NumberRange,
oid=3926, subtype_oid=20, array_oid=3927)
int8range_caster._register()
numrange_caster = RangeCaster(NumberRangeAdapter, DecimalRange,
numrange_caster = RangeCaster(NumberRangeAdapter, NumberRange,
oid=3906, subtype_oid=1700, array_oid=3907)
numrange_caster._register()

View File

@ -969,7 +969,6 @@ def register_composite(name, conn_or_curs, globally=False):
# Expose range-related objects
from psycopg2._range import Range, NumberRange
from psycopg2._range import Int4Range, Int8Range, DecimalRange
from psycopg2._range import DateRange, DateTimeRange, DateTimeTZRange
from psycopg2._range import register_range, RangeAdapter, RangeCaster

View File

@ -1012,28 +1012,28 @@ class RangeCasterTestCase(unittest.TestCase):
self.assert_(r1.upper_inc)
def test_adapt_numeric_range(self):
from psycopg2.extras import Int4Range, Int8Range, DecimalRange
from psycopg2.extras import NumberRange
cur = self.conn.cursor()
r = Int4Range(empty=True)
r = NumberRange(empty=True)
cur.execute("select %s::int4range", (r,))
r1 = cur.fetchone()[0]
self.assert_(isinstance(r1, Int4Range), r1)
self.assert_(isinstance(r1, NumberRange), r1)
self.assert_(r1.isempty)
r = Int8Range(10, 20)
r = NumberRange(10, 20)
cur.execute("select %s::int8range", (r,))
r1 = cur.fetchone()[0]
self.assert_(isinstance(r1, Int8Range))
self.assert_(isinstance(r1, NumberRange))
self.assertEqual(r1.lower, 10)
self.assertEqual(r1.upper, 20)
self.assert_(r1.lower_inc)
self.assert_(not r1.upper_inc)
r = DecimalRange(10.2, 20.5, '(]')
r = NumberRange(10.2, 20.5, '(]')
cur.execute("select %s::numrange", (r,))
r1 = cur.fetchone()[0]
self.assert_(isinstance(r1, DecimalRange))
self.assert_(isinstance(r1, NumberRange))
self.assertEqual(r1.lower, Decimal('10.2'))
self.assertEqual(r1.upper, Decimal('20.5'))
self.assert_(not r1.lower_inc)