[Python-Dev] Where to put wrap_text()?

Tim Peters tim.one@comcast.net
Thu, 06 Jun 2002 20:12:58 -0400


[Tim]
> Note that regrtest.py also has a wrapper:
>
> def printlist(x, width=70, indent=4):
>     """Print the elements of a sequence to stdout.
>
>     Optional arg width (default 70) is the maximum line length.
>     Optional arg indent (default 4) is the number of blanks
>     with which to begin each line.
>    """

[Greg Ward]
> I think this one will probably stand; I've gotten to the point with my
> text-wrapping code where I'm reimplementing the various other
> text-wrappers people have mentioned on top of it, and
> regrtest.printlist() is just not a good fit.  It's for printing
> lists compactly, not for filling text.  Whatever.

regrtest's printlist is trivial to implement on top of the code you posted:

def printlist(x, width=70, indent=4):
    guts = map(str, x)
    blanks = ' ' * indent
    w = textwrap.TextWrapper()
    print w.fill(' '.join(guts), width, blanks, blanks)

TextWrapper certainly doesn't have to worry about changing the list into a
string, all I want it is that it wrap a string, and it does.

>> Just make sure it handle the union of all possible desires, but
>> has a simple and intuitive interface <wink>.

> Right.  Gotcha.  Code coming up soon.

It's no more than 10x more elaborate than necessary, so ship it <wink>.