From 94c6353d552208b1c7638f393a3ed28e1eb1b968 Mon Sep 17 00:00:00 2001 From: Daniele Varrazzo Date: Sun, 23 Sep 2012 21:11:06 +0100 Subject: [PATCH] NumberRange renamed to NumericRange I was avoiding Numeric to avoid conflicting with the 'numeric' Postgres type, which is an alias for 'decimal'. But now that there is a single numeric range I can use the preferred name --- lib/_range.py | 14 +++++++------- lib/extras.py | 2 +- tests/test_types_extras.py | 34 +++++++++++++++++----------------- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/lib/_range.py b/lib/_range.py index 46e84234..818cb15a 100644 --- a/lib/_range.py +++ b/lib/_range.py @@ -343,7 +343,7 @@ where typname = %s and (%s is null or ns.nspname = %s); register_adapter(self.range, self.adapter) -class NumberRange(Range): +class NumericRange(Range): """A `Range` suitable to pass Python numeric types to a PostgreSQL range.""" pass @@ -360,10 +360,10 @@ class DateTimeTZRange(Range): pass -# Special adaptation for NumberRange. Allows to pass number range regardless +# Special adaptation for NumericRange. Allows to pass number range regardless # of whether they are ints, floats and what size of ints are, which are # pointless in Python world. On the way back, no numeric range is casted to -# NumberRange, but only to their subclasses +# NumericRange, but only to their subclasses class NumberRangeAdapter(RangeAdapter): """Adapt a range if the subtype doesn't need quotes.""" @@ -390,21 +390,21 @@ class NumberRangeAdapter(RangeAdapter): r._bounds[0], lower, upper, r._bounds[1]) # TODO: probably won't work with infs, nans and other tricky cases. -register_adapter(NumberRange, NumberRangeAdapter) +register_adapter(NumericRange, 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, NumberRange, +int4range_caster = RangeCaster(NumberRangeAdapter, NumericRange, oid=3904, subtype_oid=23, array_oid=3905) int4range_caster._register() -int8range_caster = RangeCaster(NumberRangeAdapter, NumberRange, +int8range_caster = RangeCaster(NumberRangeAdapter, NumericRange, oid=3926, subtype_oid=20, array_oid=3927) int8range_caster._register() -numrange_caster = RangeCaster(NumberRangeAdapter, NumberRange, +numrange_caster = RangeCaster(NumberRangeAdapter, NumericRange, oid=3906, subtype_oid=1700, array_oid=3907) numrange_caster._register() diff --git a/lib/extras.py b/lib/extras.py index 689e47b1..349aba99 100644 --- a/lib/extras.py +++ b/lib/extras.py @@ -968,7 +968,7 @@ def register_composite(name, conn_or_curs, globally=False): # Expose range-related objects -from psycopg2._range import Range, NumberRange +from psycopg2._range import Range, NumericRange 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 9978c650..1826ad2c 100755 --- a/tests/test_types_extras.py +++ b/tests/test_types_extras.py @@ -911,12 +911,12 @@ class RangeCasterTestCase(unittest.TestCase): self.assert_(r.upper_inf) def test_cast_numbers(self): - from psycopg2.extras import NumberRange + from psycopg2.extras import NumericRange cur = self.conn.cursor() for type in ('int4range', 'int8range'): cur.execute("select '(10,20)'::%s" % type) r = cur.fetchone()[0] - self.assert_(isinstance(r, NumberRange)) + self.assert_(isinstance(r, NumericRange)) self.assert_(not r.isempty) self.assertEqual(r.lower, 11) self.assertEqual(r.upper, 20) @@ -927,7 +927,7 @@ class RangeCasterTestCase(unittest.TestCase): cur.execute("select '(10.2,20.6)'::numrange") r = cur.fetchone()[0] - self.assert_(isinstance(r, NumberRange)) + self.assert_(isinstance(r, NumericRange)) self.assert_(not r.isempty) self.assertEqual(r.lower, Decimal('10.2')) self.assertEqual(r.upper, Decimal('20.6')) @@ -984,56 +984,56 @@ class RangeCasterTestCase(unittest.TestCase): self.assert_(r.upper_inc) def test_adapt_number_range(self): - from psycopg2.extras import NumberRange + from psycopg2.extras import NumericRange cur = self.conn.cursor() - r = NumberRange(empty=True) + r = NumericRange(empty=True) cur.execute("select %s::int4range", (r,)) r1 = cur.fetchone()[0] - self.assert_(isinstance(r1, NumberRange)) + self.assert_(isinstance(r1, NumericRange)) self.assert_(r1.isempty) - r = NumberRange(10, 20) + r = NumericRange(10, 20) cur.execute("select %s::int8range", (r,)) r1 = cur.fetchone()[0] - self.assert_(isinstance(r1, NumberRange)) + self.assert_(isinstance(r1, NumericRange)) self.assertEqual(r1.lower, 10) self.assertEqual(r1.upper, 20) self.assert_(r1.lower_inc) self.assert_(not r1.upper_inc) - r = NumberRange(10.2, 20.5, '(]') + r = NumericRange(10.2, 20.5, '(]') cur.execute("select %s::numrange", (r,)) r1 = cur.fetchone()[0] - self.assert_(isinstance(r1, NumberRange)) + self.assert_(isinstance(r1, NumericRange)) self.assertEqual(r1.lower, Decimal('10.2')) self.assertEqual(r1.upper, Decimal('20.5')) self.assert_(not r1.lower_inc) self.assert_(r1.upper_inc) def test_adapt_numeric_range(self): - from psycopg2.extras import NumberRange + from psycopg2.extras import NumericRange cur = self.conn.cursor() - r = NumberRange(empty=True) + r = NumericRange(empty=True) cur.execute("select %s::int4range", (r,)) r1 = cur.fetchone()[0] - self.assert_(isinstance(r1, NumberRange), r1) + self.assert_(isinstance(r1, NumericRange), r1) self.assert_(r1.isempty) - r = NumberRange(10, 20) + r = NumericRange(10, 20) cur.execute("select %s::int8range", (r,)) r1 = cur.fetchone()[0] - self.assert_(isinstance(r1, NumberRange)) + self.assert_(isinstance(r1, NumericRange)) self.assertEqual(r1.lower, 10) self.assertEqual(r1.upper, 20) self.assert_(r1.lower_inc) self.assert_(not r1.upper_inc) - r = NumberRange(10.2, 20.5, '(]') + r = NumericRange(10.2, 20.5, '(]') cur.execute("select %s::numrange", (r,)) r1 = cur.fetchone()[0] - self.assert_(isinstance(r1, NumberRange)) + self.assert_(isinstance(r1, NumericRange)) self.assertEqual(r1.lower, Decimal('10.2')) self.assertEqual(r1.upper, Decimal('20.5')) self.assert_(not r1.lower_inc)