pprint.pprint() produces more human readable output than print(repr()) which is used in sys.displayhook(). The proposed patch changes sys.displayhook in site.py. You still can access original displayhook as sys.__displayhook__.
(in the patch, import of sys and pprint should be done once at module level and not repeated with every line of interactive output). > pprint.pprint() produces more human readable output than print(repr()) which is used in sys.displayhook() Only sometimes, and when it is not, the result can be *much* worse. For instance, try list(range(40)) with the two options. On windows, pprint.pprint(list(range(300))) will not even fit in the default 300 line output buffer of the standard interpreter. This is not to mention doctest and other test breakage. I believe the majority consensus on python-ideas was to reject this until pprint is much improved, and then reconsider. I agree with that. As I said on the list, I think this is more feasible for environments (like Idle) where it could be turned on and off, or invoked to re-display an output where pprint *would* be better.
> (in the patch, import of sys and pprint should be done once at module level and not repeated with every line of interactive output). See a comment at the start of the Lib/_sitebuiltins.py file. Yes, importing sys in the function is redundant. > For instance, try list(range(40)) with the two options. Well, I have opened for this. > This is not to mention doctest and other test breakage. AFAIK doctests doesn't test output longer than 80 characters. > I believe the majority consensus on python-ideas was to reject this until pprint is much improved, and then reconsider. There are other pprint-related issue which are opened long time without any progress (e.g. ). I intend making progress on issues which are required for fixing pprint enough to be reasonable replacement for displayhook.