Fix __hash__ in functools.cmp_to_key() to work with collections.Hashable.
This commit is contained in:
parent
5098d44354
commit
003be52932
|
@ -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
|
||||
|
||||
_CacheInfo = namedtuple("CacheInfo", "hits misses maxsize currsize")
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import functools
|
||||
import collections
|
||||
import sys
|
||||
import unittest
|
||||
from test import support
|
||||
|
@ -446,7 +447,8 @@ class TestCmpToKey(unittest.TestCase):
|
|||
return y - x
|
||||
key = functools.cmp_to_key(mycmp)
|
||||
k = key(10)
|
||||
self.assertRaises(TypeError, hash(k))
|
||||
self.assertRaises(TypeError, hash, k)
|
||||
self.assertFalse(isinstance(k, collections.Hashable))
|
||||
|
||||
class TestTotalOrdering(unittest.TestCase):
|
||||
|
||||
|
@ -660,6 +662,7 @@ def test_main(verbose=None):
|
|||
TestPythonPartial,
|
||||
TestUpdateWrapper,
|
||||
TestTotalOrdering,
|
||||
TestCmpToKey,
|
||||
TestWraps,
|
||||
TestReduce,
|
||||
TestLRU,
|
||||
|
|
|
@ -81,6 +81,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.
|
||||
|
||||
|
|
Loading…
Reference in New Issue