[Python-Dev] The -U flag (original) (raw)

Martin v. Loewis martin@v.loewis.de
Sun, 13 Oct 2002 21:48:08 +0200


Since Python allows Unicode strings in sys.path, we are making progress on getting -U to work. When entering interactive mode, the stumbling block is

_idmap = '' for i in range(256): _idmap = _idmap + chr(i) del i

Here, _idmap is initialized with a Unicode string, and the chr(i) results are promoted to Unicode, which eventually causes a UnicodeErorr when you get past 127.

The work-around would be to write

_idmap = str('') for i in range(256): _idmap = _idmap + chr(i) del i

With that, we can enter interactive mode in python -U.

Is such a change acceptable?

Curious, Martin

P.S. In case you wonder how the testsuite works for -U: The first problem is

File "/usr/src/python/Lib/warnings.py", line 267, in ? filterwarnings("ignore", category=OverflowWarning, append=1) File "/usr/src/python/Lib/warnings.py", line 131, in filterwarnings assert isinstance(message, str), "message must be a string" AssertionError: message must be a string

I'm not going to ask whether I can use basestring there, yet...