pprint functions used to sort a dict (by key) if and only if

the output required more than one line.  "Small" dicts got
displayed in seemingly random order (the hash-induced order
produced by dict.__repr__).  None of this was documented.
Now pprint functions always sort dicts by key, and the docs
promise it.

This was proposed and agreed to during the PyCon 2006 core
sprint -- I just didn't have time for it before now.
This commit is contained in:
Tim Peters 2006-06-02 23:22:51 +00:00
parent 7f7386cfd2
commit d609b1a20e
4 changed files with 42 additions and 5 deletions

View file

@ -246,7 +246,7 @@ def _safe_repr(object, context, maxlevels, level):
append = components.append
level += 1
saferepr = _safe_repr
for k, v in object.iteritems():
for k, v in sorted(object.items()):
krepr, kreadable, krecur = saferepr(k, context, maxlevels, level)
vrepr, vreadable, vrecur = saferepr(v, context, maxlevels, level)
append("%s: %s" % (krepr, vrepr))