From 36f4952404e05ac550e33c8ba2fde831fde8fecd Mon Sep 17 00:00:00 2001 From: Nick Coghlan Date: Mon, 18 Aug 2008 12:31:52 +0000 Subject: Forward port only Py3k relevant change in r65642 (giving it a Py3k NEWS entry anyway because of the difference in the changes between the two branches) --- Lib/numbers.py | 2 ++ Misc/NEWS | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/Lib/numbers.py b/Lib/numbers.py index c72a23d..827c253 100644 --- a/Lib/numbers.py +++ b/Lib/numbers.py @@ -15,6 +15,8 @@ class Number(metaclass=ABCMeta): If you just want to check if an argument x is a number, without caring what kind, use isinstance(x, Number). """ + # Concrete numeric types must provide their own hash implementation + __hash__ = None ## Notes on Decimal diff --git a/Misc/NEWS b/Misc/NEWS index afbe989..78cae29 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -30,6 +30,12 @@ Core and Builtins Library ------- +- Issue #2235: numbers.Number now blocks inheritance of the default id() + based hash because that hash mechanism is not correct for numeric types. + All concrete numeric types that inherit from Number (rather than just + registering with it) must explicitly provide a hash implementation in + order for their instances to be hashable. + - Issue #2676: in the email package, content-type parsing was hanging on pathological input because of quadratic or exponential behaviour of a regular expression. -- cgit v0.12