mirror of https://github.com/python/cpython
Fix __hash__ in functools.cmp_to_key() to work with collections.Hashable.
This commit is contained in:
commit
e7a2430dde
|
@ -111,8 +111,7 @@ def cmp_to_key(mycmp):
|
||||||
return mycmp(self.obj, other.obj) >= 0
|
return mycmp(self.obj, other.obj) >= 0
|
||||||
def __ne__(self, other):
|
def __ne__(self, other):
|
||||||
return mycmp(self.obj, other.obj) != 0
|
return mycmp(self.obj, other.obj) != 0
|
||||||
def __hash__(self):
|
__hash__ = None
|
||||||
raise TypeError('hash not implemented')
|
|
||||||
return K
|
return K
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import functools
|
import functools
|
||||||
|
import collections
|
||||||
import sys
|
import sys
|
||||||
import unittest
|
import unittest
|
||||||
from test import support
|
from test import support
|
||||||
|
@ -510,6 +511,7 @@ class TestCmpToKey(unittest.TestCase):
|
||||||
key = functools.cmp_to_key(mycmp)
|
key = functools.cmp_to_key(mycmp)
|
||||||
k = key(10)
|
k = key(10)
|
||||||
self.assertRaises(TypeError, hash, k)
|
self.assertRaises(TypeError, hash, k)
|
||||||
|
self.assertNotIsInstance(k, collections.Hashable)
|
||||||
|
|
||||||
class TestTotalOrdering(unittest.TestCase):
|
class TestTotalOrdering(unittest.TestCase):
|
||||||
|
|
||||||
|
@ -718,12 +720,12 @@ class TestLRU(unittest.TestCase):
|
||||||
|
|
||||||
def test_main(verbose=None):
|
def test_main(verbose=None):
|
||||||
test_classes = (
|
test_classes = (
|
||||||
TestCmpToKey,
|
|
||||||
TestPartial,
|
TestPartial,
|
||||||
TestPartialSubclass,
|
TestPartialSubclass,
|
||||||
TestPythonPartial,
|
TestPythonPartial,
|
||||||
TestUpdateWrapper,
|
TestUpdateWrapper,
|
||||||
TestTotalOrdering,
|
TestTotalOrdering,
|
||||||
|
TestCmpToKey,
|
||||||
TestWraps,
|
TestWraps,
|
||||||
TestReduce,
|
TestReduce,
|
||||||
TestLRU,
|
TestLRU,
|
||||||
|
|
|
@ -141,6 +141,8 @@ Library
|
||||||
|
|
||||||
- logging: don't define QueueListener if Python has no thread support.
|
- 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
|
- 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.
|
around a mmap bug with sparse files. Patch written by Steffen Daode Nurpmeso.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue