[Python-Dev] The -U flag

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...