ipipe patch 5 from Walter Doerwald, featuring:...
ipipe patch 5 from Walter Doerwald, featuring:
Change the way padding is done in ibrowse: Instead of creating a string
long enough to fill the rest of the colum even if this column is much to
long for the screen, only create a pad string large enough for the
visible part. This speeds up scrolling with very long columns.
Implement a workaround for eval() not accepting non-dicts as namespaces.
(Patch contributed by Torsten Marek)
xiter() now directly supports dictproxies, so e.g. "int.__dict__ |
ibrowse" works.
xrepr() has been rewritten as a generator (and all __xrepr__() methods
too): This has two advantages: 1) xrepr() of large datastructure are
usable now, because the generator is abandoned after "enough" output has
been generated (defaults to 200 characters). 2) xrepr() methods can now
return styles for each part of their output. xrepr() is used everywhere
now: in the header and footer (like before) but also in the table cells.
For this two new xrepr() modes habe been added: "cell" for an object in
a ibrowse table cell and "default" which must be used as the mode in
recursive calls to xrepr() (this returns a representation that has the
most similarity to a normal repr()).
Removed the special treatment of lists and tuples in xattrs(). If you
want to see the list or tuple simply enter it. This is again done to
keep ibrowse useable even with large data structures. Add a class List
as a replacement for the old functionality (icsv needs this).