[Python-Dev] textwrap.py wordsep_re

Greg Ward gward at python.net
Thu Feb 24 14:04:32 CET 2005


On 21 February 2005, Karl Chen said:
> Except when the string to wrap contains dates -- which I would
> like not to be filled.  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)
> produces:
>     aaaaaaaaaa 2005-
>     02-21

Oops!

> 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:
>     aaaaaaaaaa
>     2005-02-21

Post a patch to SF and assign it to me.  Make sure the unit tests still
pass, and add a new one that doesn't pass without your fix.  Pester me
mercilessly until I act on it.  (I think your change is probably fine,
but I need more time to examine it than I have right now.)

        Greg
-- 
Greg Ward <gward at python.net>                         http://www.gerg.ca/
Cheops' Law: Nothing *ever* gets built on schedule or within budget.


More information about the Python-Dev mailing list