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

View File

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

View File

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