New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IDLE environment corrupts string.letters #47490
Comments
The problem seems to stem from this line in IOBinding.py: From the command prompt:
Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit
(Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import string, locale
>>> print repr(string.letters)
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> locale.setlocale(locale.LC_CTYPE, "")
'English_United States.1252'
>>> print repr(string.letters)
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\x83
\x8a\x8c\x8e\x9a\x9c\x9
e\x9f\xaa\xb5\xba\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9
\xca\xcb\xcc\xcd\xce\xc
f\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1
\xe2\xe3\xe
4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5
\xf6\xf8\xf
9\xfa\xfb\xfc\xfd\xfe\xff'
>>> |
Why do you think string.letters gets corrupted? AFAICT, it's still correct. |
Changing the locale changes string.letters -- that is expected behavior. |
It introduces high characters that cause comparisons to fail under IDLE Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit
(Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import string
>>> u'a' in string.letters
True
IDLE 1.2.2
>>> import string
>>> u'a' in string.letters
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
u'a' in string.letters
UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position
52: ordinal not in range(128) Or am I misunderstanding how the locale works with string comparisons ? |
Well, that wouldn't be different if you had set the locale in your |
As Georg says: you shouldn't be mixing Unicode objects and string In any case, testing for letter-ness by using "in string.letters" is not u"a".isalpha() instead |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: