From 45cbcc0713ae8396aed3cf88851b5eaa18551974 Mon Sep 17 00:00:00 2001 From: Daniele Varrazzo Date: Sun, 23 Sep 2012 21:08:18 +0100 Subject: [PATCH] Dropped Range classes for specific numeric types --- lib/_range.py | 18 +++--------------- lib/extras.py | 1 - tests/test_types_extras.py | 14 +++++++------- 3 files changed, 10 insertions(+), 23 deletions(-) diff --git a/lib/_range.py b/lib/_range.py index 40c34bfa..46e84234 100644 --- a/lib/_range.py +++ b/lib/_range.py @@ -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() diff --git a/lib/extras.py b/lib/extras.py index b6766d89..689e47b1 100644 --- a/lib/extras.py +++ b/lib/extras.py @@ -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 diff --git a/tests/test_types_extras.py b/tests/test_types_extras.py index 2546acd3..9978c650 100755 --- a/tests/test_types_extras.py +++ b/tests/test_types_extras.py @@ -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)