This commit is contained in:
parent
b4bbee25b1
commit
d6da90f93d
|
@ -86,7 +86,11 @@ class _safe_key:
|
||||||
self.obj = obj
|
self.obj = obj
|
||||||
|
|
||||||
def __lt__(self, other):
|
def __lt__(self, other):
|
||||||
rv = self.obj.__lt__(other.obj)
|
try:
|
||||||
|
rv = self.obj.__lt__(other.obj)
|
||||||
|
except TypeError:
|
||||||
|
rv = NotImplemented
|
||||||
|
|
||||||
if rv is NotImplemented:
|
if rv is NotImplemented:
|
||||||
rv = (str(type(self.obj)), id(self.obj)) < \
|
rv = (str(type(self.obj)), id(self.obj)) < \
|
||||||
(str(type(other.obj)), id(other.obj))
|
(str(type(other.obj)), id(other.obj))
|
||||||
|
|
|
@ -462,6 +462,15 @@ class QueryTestCase(unittest.TestCase):
|
||||||
self.assertEqual(clean(pprint.pformat(dict.fromkeys(keys))),
|
self.assertEqual(clean(pprint.pformat(dict.fromkeys(keys))),
|
||||||
'{' + ','.join('%r:None' % k for k in skeys) + '}')
|
'{' + ','.join('%r:None' % k for k in skeys) + '}')
|
||||||
|
|
||||||
|
# Issue 10017: TypeError on user-defined types as dict keys.
|
||||||
|
self.assertEqual(pprint.pformat({Unorderable: 0, 1: 0}),
|
||||||
|
'{1: 0, ' + repr(Unorderable) +': 0}')
|
||||||
|
|
||||||
|
# Issue 14998: TypeError on tuples with NoneTypes as dict keys.
|
||||||
|
self.assertEqual(pprint.pformat({(1,): 0, (None,): 0}),
|
||||||
|
'{(1,): 0, (None,): 0}')
|
||||||
|
|
||||||
|
|
||||||
class DottedPrettyPrinter(pprint.PrettyPrinter):
|
class DottedPrettyPrinter(pprint.PrettyPrinter):
|
||||||
|
|
||||||
def format(self, object, context, maxlevels, level):
|
def format(self, object, context, maxlevels, level):
|
||||||
|
|
|
@ -98,6 +98,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issues #10017 and #14998: Fix TypeError using pprint on dictionaries with
|
||||||
|
user-defined types as keys or other unorderable keys.
|
||||||
|
|
||||||
- Issue #14635: telnetlib will use poll() rather than select() when possible
|
- Issue #14635: telnetlib will use poll() rather than select() when possible
|
||||||
to avoid failing due to the select() file descriptor limit.
|
to avoid failing due to the select() file descriptor limit.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue