[Python-checkins] python/dist/src/Lib textwrap.py,1.18,1.19

Just van Rossum just@letterror.com
2002年12月11日 10:40:33 +0100


This checkin makes textwrap fail for me when running python -S ("don't run
site.py"):
Python 2.3a0 (#42, Dec 11 2002, 10:33:42) 
[GCC 3.1 20020420 (prerelease)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import textwrap
Traceback (most recent call last):
 File "<stdin>", line 1, in ?
 File "/Users/just/code/python_cvs/Lib/textwrap.py", line 15, in ?
 class TextWrapper:
 File "/Users/just/code/python_cvs/Lib/textwrap.py", line 56, in TextWrapper
 unicode_whitespace_trans[ord(unicode(c))] = ord(u' ')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 0: ordinal
not in range(128)
>>>
Just
gward@users.sourceforge.net wrote:
> Update of /cvsroot/python/python/dist/src/Lib
> In directory sc8-pr-cvs1:/tmp/cvs-serv26875
>> Modified Files:
> textwrap.py 
> Log Message:
> Fix SF bug #622831 (I think): add unicode_whitespace_trans class
> attribute, and modify _munge_whitespace() to recognize Unicode strings
> and use unicode_whitespace_trans to munge them. Still need to add a
> test to make sure I've really fixed the bug.
>>> Index: textwrap.py
> ===================================================================
> RCS file: /cvsroot/python/python/dist/src/Lib/textwrap.py,v
> retrieving revision 1.18
> retrieving revision 1.19
> diff -C2 -d -r1.18 -r1.19
> *** textwrap.py 22 Oct 2002 18:31:50 -0000 1.18
> --- textwrap.py 9 Dec 2002 16:23:08 -0000 1.19
> ***************
> *** 52,55 ****
> --- 52,59 ----
> ' ' * len(string.whitespace))
>> + unicode_whitespace_trans = {}
> + for c in string.whitespace:
> + unicode_whitespace_trans[ord(unicode(c))] = ord(u' ')
> + 
> # This funky little regex is just the trick for splitting
> # text up into word-wrappable chunks. E.g.
> ***************
> *** 100,104 ****
> text = text.expandtabs()
> if self.replace_whitespace:
> ! text = text.translate(self.whitespace_trans)
> return text
>> --- 104,111 ----
> text = text.expandtabs()
> if self.replace_whitespace:
> ! if isinstance(text, str):
> ! text = text.translate(self.whitespace_trans)
> ! elif isinstance(text, unicode):
> ! text = text.translate(self.unicode_whitespace_trans)
> return text
>>>>> _______________________________________________
> Python-checkins mailing list
> Python-checkins@python.org
> http://mail.python.org/mailman/listinfo/python-checkins
>

AltStyle によって変換されたページ (->オリジナル) /