[Python-ideas] Columns for pprint.PrettyPrinter
Julian Berman
julian at grayvines.com
Sat Aug 20 01:23:45 CEST 2011
For the most part I find pprint to be lovely. Simple and does a useful thing that I don't want to have to write every time, especially if I'm using it just to debug.
However, I often find that I'm using it to print out a long-length singly nested structure whose elements' reprs are not really that long, for which its output is cumbersome. Try to pprint.pprint(range(100)). Instead of seeing a long really skinny column, it'd be nice if it could quickly provide a way (combined with the width arg that it already takes) to split up the elements of the structure within the width, so that instead of seeing things like
>>> pprint.pprint(range(30))
[0,
1,
2,
...
]
it could be coerced into something like
>>> pprint.pprint(range(30), columns=5)
[0, 1, 2, 3, 4
3, 4, 5, 6, 7, ... ]
or for something nested, which I'm less thrilled with, and haven't thought out how to implement unless you have a somewhat balanced structure, but for posterity:
{"foo" :
{"bar" : 1, {"hello" : 2, {"other" : 1,
"baz" : 2, "world" : 1}, "thing" : 2,
"foo" : 3}, "here" : 3},
...
}
Obviously it's meant to be simple, the comment at the top of the module even says so, and doing something like ^ is easy enough, but for what it's good for (saving me from having to write code that makes my objects easier to debug by displaying them nicely), just making it do a bit more would make life easier.
More information about the Python-ideas
mailing list