##// END OF EJS Templates
Merge pull request #10958 from takluyver/py37-dont-sort-dict...
Matthias Bussonnier -
r24116:fee7d92b merge
parent child Browse files
Show More
@@ -95,6 +95,9 b" __all__ = ['pretty', 'pprint', 'PrettyPrinter', 'RepresentationPrinter',"
95
95
96
96
97 MAX_SEQ_LENGTH = 1000
97 MAX_SEQ_LENGTH = 1000
98 # The language spec says that dicts preserve order from 3.7, but CPython
99 # does so from 3.6, so it seems likely that people will expect that.
100 DICT_IS_ORDERED = sys.version_info >= (3, 6)
98 _re_pattern_type = type(re.compile(''))
101 _re_pattern_type = type(re.compile(''))
99
102
100 def _safe_getattr(obj, attr, default=None):
103 def _safe_getattr(obj, attr, default=None):
@@ -613,7 +616,9 b' def _dict_pprinter_factory(start, end, basetype=None):'
613 p.begin_group(step, start)
616 p.begin_group(step, start)
614 keys = obj.keys()
617 keys = obj.keys()
615 # if dict isn't large enough to be truncated, sort keys before displaying
618 # if dict isn't large enough to be truncated, sort keys before displaying
616 if not (p.max_seq_length and len(obj) >= p.max_seq_length):
619 # From Python 3.7, dicts preserve order by definition, so we don't sort.
620 if not DICT_IS_ORDERED \
621 and not (p.max_seq_length and len(obj) >= p.max_seq_length):
617 keys = _sorted_for_pprint(keys)
622 keys = _sorted_for_pprint(keys)
618 for idx, key in p._enumerate(keys):
623 for idx, key in p._enumerate(keys):
619 if idx:
624 if idx:
General Comments 0
You need to be logged in to leave comments. Login now