mirror of
https://github.com/python/cpython.git
synced 2025-09-02 06:57:58 +00:00
Issue #23775: pprint() of OrderedDict now outputs the same representation
as repr().
This commit is contained in:
parent
f3fa308817
commit
aa4c36fbbb
3 changed files with 40 additions and 24 deletions
|
@ -34,10 +34,10 @@ saferepr()
|
|||
|
||||
"""
|
||||
|
||||
import collections as _collections
|
||||
import re
|
||||
import sys as _sys
|
||||
import types as _types
|
||||
from collections import OrderedDict as _OrderedDict
|
||||
from io import StringIO as _StringIO
|
||||
|
||||
__all__ = ["pprint","pformat","isreadable","isrecursive","saferepr",
|
||||
|
@ -188,16 +188,25 @@ class PrettyPrinter:
|
|||
write((self._indent_per_level - 1) * ' ')
|
||||
length = len(object)
|
||||
if length:
|
||||
if isinstance(object, _OrderedDict):
|
||||
items = list(object.items())
|
||||
else:
|
||||
items = sorted(object.items(), key=_safe_tuple)
|
||||
items = sorted(object.items(), key=_safe_tuple)
|
||||
self._format_dict_items(items, stream, indent, allowance + 1,
|
||||
context, level)
|
||||
write('}')
|
||||
|
||||
_dispatch[dict.__repr__] = _pprint_dict
|
||||
_dispatch[_OrderedDict.__repr__] = _pprint_dict
|
||||
|
||||
def _pprint_ordered_dict(self, object, stream, indent, allowance, context, level):
|
||||
if not len(object):
|
||||
stream.write(repr(object))
|
||||
return
|
||||
cls = object.__class__
|
||||
stream.write(cls.__name__ + '(')
|
||||
self._format(list(object.items()), stream,
|
||||
indent + len(cls.__name__) + 1, allowance + 1,
|
||||
context, level)
|
||||
stream.write(')')
|
||||
|
||||
_dispatch[_collections.OrderedDict.__repr__] = _pprint_ordered_dict
|
||||
|
||||
def _pprint_list(self, object, stream, indent, allowance, context, level):
|
||||
stream.write('[')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue