diff options
| author | Raymond Hettinger <python@rcn.com> | 2011-05-03 18:16:36 (GMT) |
|---|---|---|
| committer | Raymond Hettinger <python@rcn.com> | 2011-05-03 18:16:36 (GMT) |
| commit | e7a2430ddedd3d236e1741b047d133cf461eb0de (patch) | |
| tree | 6abec258ede9b5b31d05211430620c606fc5ad21 | |
| parent | 4e787aeed6079bc3ddda13be8b18a4e8992cd561 (diff) | |
| parent | 003be529323a395be4a17c779aff7e4737170bbf (diff) | |
| download | cpython-e7a2430ddedd3d236e1741b047d133cf461eb0de.zip cpython-e7a2430ddedd3d236e1741b047d133cf461eb0de.tar.gz cpython-e7a2430ddedd3d236e1741b047d133cf461eb0de.tar.bz2 | |
Fix __hash__ in functools.cmp_to_key() to work with collections.Hashable.
| -rw-r--r-- | Lib/functools.py | 3 | ||||
| -rw-r--r-- | Lib/test/test_functools.py | 4 | ||||
| -rw-r--r-- | Misc/NEWS | 2 |
3 files changed, 6 insertions, 3 deletions
diff --git a/Lib/functools.py b/Lib/functools.py index 098f6b6..b2bcc21 100644 --- a/Lib/functools.py +++ b/Lib/functools.py @@ -111,8 +111,7 @@ def cmp_to_key(mycmp): return mycmp(self.obj, other.obj) >= 0 def __ne__(self, other): return mycmp(self.obj, other.obj) != 0 - def __hash__(self): - raise TypeError('hash not implemented') + __hash__ = None return K try: diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py index c50336e..97d7524 100644 --- a/Lib/test/test_functools.py +++ b/Lib/test/test_functools.py @@ -1,4 +1,5 @@ import functools +import collections import sys import unittest from test import support @@ -510,6 +511,7 @@ class TestCmpToKey(unittest.TestCase): key = functools.cmp_to_key(mycmp) k = key(10) self.assertRaises(TypeError, hash, k) + self.assertNotIsInstance(k, collections.Hashable) class TestTotalOrdering(unittest.TestCase): @@ -718,12 +720,12 @@ class TestLRU(unittest.TestCase): def test_main(verbose=None): test_classes = ( - TestCmpToKey, TestPartial, TestPartialSubclass, TestPythonPartial, TestUpdateWrapper, TestTotalOrdering, + TestCmpToKey, TestWraps, TestReduce, TestLRU, @@ -141,6 +141,8 @@ Library - logging: don't define QueueListener if Python has no thread support. +- functools.cmp_to_key() now works with collections.Hashable(). + - Issue #11277: mmap.mmap() calls fcntl(fd, F_FULLFSYNC) on Mac OS X to get around a mmap bug with sparse files. Patch written by Steffen Daode Nurpmeso. |
