summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Krah <stefan@bytereef.org>2010-11-18 15:20:34 (GMT)
committerStefan Krah <stefan@bytereef.org>2010-11-18 15:20:34 (GMT)
commitd8b661dd908629b5fc0f50e3e0c5fc5c85f9cb72 (patch)
treed0ef7aecae02539954c2a7a0411a4063d473cd2c
parentd28f790b69190192f7f8412f182b57c5894fade6 (diff)
downloadcpython-d8b661dd908629b5fc0f50e3e0c5fc5c85f9cb72.zip
cpython-d8b661dd908629b5fc0f50e3e0c5fc5c85f9cb72.tar.gz
cpython-d8b661dd908629b5fc0f50e3e0c5fc5c85f9cb72.tar.bz2
Issue #10356: hash(Decimal("sNaN")) now raises ValueError instead of TypeError.
-rw-r--r--Lib/decimal.py2
-rw-r--r--Lib/test/test_decimal.py2
-rw-r--r--Misc/NEWS3
3 files changed, 5 insertions, 2 deletions
diff --git a/Lib/decimal.py b/Lib/decimal.py
index 5a9f840..b78c2c5 100644
--- a/Lib/decimal.py
+++ b/Lib/decimal.py
@@ -943,7 +943,7 @@ class Decimal(object):
# in the documentation. (See library docs, 'Built-in Types').
if self._is_special:
if self.is_snan():
- raise TypeError('Cannot hash a signaling NaN value.')
+ raise ValueError('Cannot hash a signaling NaN value.')
elif self.is_nan():
return _PyHASH_NAN
else:
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index 611ef55..b07fb1d 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -1346,7 +1346,7 @@ class DecimalUsabilityTest(unittest.TestCase):
#the same hash that to an int
self.assertEqual(hashit(Decimal(23)), hashit(23))
- self.assertRaises(TypeError, hash, Decimal('sNaN'))
+ self.assertRaises(ValueError, hash, Decimal('sNaN'))
self.assertTrue(hashit(Decimal('Inf')))
self.assertTrue(hashit(Decimal('-Inf')))
diff --git a/Misc/NEWS b/Misc/NEWS
index ae26a99..8ab404d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -104,6 +104,9 @@ Core and Builtins
Library
-------
+- Issue #10356: hash(Decimal("sNaN")) now raises ValueError instead of
+ TypeError.
+
- Issue #10356: Decimal.__hash__(-1) should return -2.
- Issue #1553375: logging: Added stack_info kwarg to display stack information.