[Python-checkins] r69243 - in python/branches/release26-maint: Lib/decimal.py Lib/test/test_decimal.py Misc/NEWS

raymond.hettinger python-checkins at python.org
Tue Feb 3 04:42:07 CET 2009


Author: raymond.hettinger
Date: Tue Feb 3 04:42:07 2009
New Revision: 69243
Log:
Register decimals as numbers.Number
Modified:
 python/branches/release26-maint/Lib/decimal.py
 python/branches/release26-maint/Lib/test/test_decimal.py
 python/branches/release26-maint/Misc/NEWS
Modified: python/branches/release26-maint/Lib/decimal.py
==============================================================================
--- python/branches/release26-maint/Lib/decimal.py	(original)
+++ python/branches/release26-maint/Lib/decimal.py	Tue Feb 3 04:42:07 2009
@@ -135,6 +135,7 @@
 ]
 
 import copy as _copy
+import numbers as _numbers
 
 try:
 from collections import namedtuple as _namedtuple
@@ -3567,6 +3568,12 @@
 
 return self
 
+# Register Decimal as a kind of Number (an abstract base class).
+# However, do not register it as Real (because Decimals are not
+# interoperable with floats).
+_numbers.Number.register(Decimal)
+
+
 ##### Context class #######################################################
 
 
Modified: python/branches/release26-maint/Lib/test/test_decimal.py
==============================================================================
--- python/branches/release26-maint/Lib/test/test_decimal.py	(original)
+++ python/branches/release26-maint/Lib/test/test_decimal.py	Tue Feb 3 04:42:07 2009
@@ -30,6 +30,7 @@
 import pickle, copy
 import unittest
 from decimal import *
+import numbers
 from test.test_support import (TestSkipped, run_unittest, run_doctest,
 is_resource_enabled)
 import random
@@ -1334,6 +1335,12 @@
 
 class DecimalPythonAPItests(unittest.TestCase):
 
+ def test_abc(self):
+ self.assert_(issubclass(Decimal, numbers.Number))
+ self.assert_(not issubclass(Decimal, numbers.Real))
+ self.assert_(isinstance(Decimal(0), numbers.Number))
+ self.assert_(not isinstance(Decimal(0), numbers.Real))
+
 def test_pickle(self):
 d = Decimal('-3.141590000')
 p = pickle.dumps(d)
Modified: python/branches/release26-maint/Misc/NEWS
==============================================================================
--- python/branches/release26-maint/Misc/NEWS	(original)
+++ python/branches/release26-maint/Misc/NEWS	Tue Feb 3 04:42:07 2009
@@ -213,6 +213,8 @@
 - Issue #1885: distutils. When running sdist with --formats=tar,gztar
 the tar file was overriden by the gztar one.
 
+- Registered Decimal as a numbers.Number.
+
 - Issue #1672332: fix unpickling of subnormal floats, which was
 producing a ValueError on some platforms.
 


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /