[Python-Dev] textwrap wordsep_re

Karl Chen quarl at NOSPAM.quarl.org
Tue Feb 22 02:41:38 CET 2005


textwrap.fill() is awesome.

Except when the string to wrap contains dates -- which I would
like not to be broken.  In general I think wordsep_re can be
smarter about what it decides are hyphenated words.

For example, this code:
    print textwrap.fill('aaaaaaaaaa 2005-02-21', 18)
    aaaaaaaaaa 2005-

A slightly tweaked wordsep_re:
    textwrap.TextWrapper.wordsep_re = \
        re.compile(r'(\s+|'                  # any whitespace
                   r'[^\s\w]*\w+[a-zA-Z]-(?=[a-zA-Z]\w+)|' # hyphenated words
                   r'(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))')   # em-dash
    print textwrap.fill('aaaaaaaaaa 2005-02-21', 18)
behaves better:

What do you think about changing the default wordsep_re?

Karl 2005-02-21 17:39

More information about the Python-Dev mailing list