[pywin32-bugs] [ pywin32-Bugs-2006053 ] build.py UnicodeDecodeError pywin32-211
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: SourceForge.net <no...@so...> - 2008-06-30 00:22:24
|
Bugs item #2006053, was opened at 2008-06-29 12:33 Message generated for change (Comment added) made by rupole You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=551954&aid=2006053&group_id=78018 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: com Group: None >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Prinz (sgollmer) Assigned to: Nobody/Anonymous (nobody) Summary: build.py UnicodeDecodeError pywin32-211 Initial Comment: Hai, I have a issue with Python 2.5.2/pywin32-211: >>> >>> >>> from win32com.client import GetObject >>> WMI = GetObject('winmgmts:') >>> Entries = WMI.ExecQuery('select * from Win32_Process where Name="svchost.exe"') Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> Entries = WMI.ExecQuery('select * from Win32_Process where Name="svchost.exe"') File "C:\Programme\Python25\Lib\site-packages\win32com\client\dynamic.py", line 467, in __getattr__ if self._olerepr_.mapFuncs.has_key(attr): return self._make_method_(attr) File "C:\Programme\Python25\Lib\site-packages\win32com\client\dynamic.py", line 295, in _make_method_ methodCodeList = self._olerepr_.MakeFuncMethod(self._olerepr_.mapFuncs[name], methodName,0) File "C:\Programme\Python25\Lib\site-packages\win32com\client\build.py", line 297, in MakeFuncMethod return self.MakeDispatchFuncMethod(entry, name, bMakeClass) File "C:\Programme\Python25\Lib\site-packages\win32com\client\build.py", line 318, in MakeDispatchFuncMethod s = linePrefix + 'def ' + name + '(self' + BuildCallList(fdesc, names, defNamedOptArg, defNamedNotOptArg, defUnnamedArg, defOutArg) + '):' File "C:\Programme\Python25\Lib\site-packages\win32com\client\build.py", line 604, in BuildCallList argName = MakePublicAttributeName(argName) File "C:\Programme\Python25\Lib\site-packages\win32com\client\build.py", line 542, in MakePublicAttributeName return filter( lambda char: char in valid_identifier_chars, className) File "C:\Programme\Python25\Lib\site-packages\win32com\client\build.py", line 542, in <lambda> return filter( lambda char: char in valid_identifier_chars, className) UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 52: ordinal not in range(128) >>> This error didn't occure on pywin32-210. Is something wrong with my code? Thanks Prinz ---------------------------------------------------------------------- >Comment By: Roger Upole (rupole) Date: 2008-06-29 19:22 Message: Logged In: YES user_id=771074 Originator: NO A fix has been commited to CVS, see build.py 1.31. Reported on python tracker: http://bugs.python.org/issue3240 ---------------------------------------------------------------------- Comment By: Roger Upole (rupole) Date: 2008-06-29 18:46 Message: Logged In: YES user_id=771074 Originator: NO Looks like ascii_letters is a good workaround, I'll check it in. This should probably be reported on the Python bug tracker also. ---------------------------------------------------------------------- Comment By: John Machin (sjmachin) Date: 2008-06-29 17:33 Message: Logged In: YES user_id=480138 Originator: NO string.letters is locale-dependent. Looks like Idle started using locale (or locale stuff started working in Windows) in Python 2.3 (!) -- see below. Why not use string.ascii_letters? Python 2.2.3 (#42, May 30 2003, 18:12:08) [MSC 32 bit (Intel)] on win32 [snip] IDLE 0.8 -- press F1 for help >>> import locale; locale.getlocale() (None, None) >>> import string; string.letters 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' >>> =============================================================== Python 2.3.5 (#62, Feb 8 2005, 16:23:02) [MSC v.1200 32 bit (Intel)] on win32 [snip] IDLE 1.0.5 >>> import locale; locale.getlocale() ['English_Australia', '1252'] >>> import string; string.letters 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\x83\x8a\[snip] >>> ---------------------------------------------------------------------- Comment By: Roger Upole (rupole) Date: 2008-06-29 15:29 Message: Logged In: YES user_id=771074 Originator: NO I finally remembered where I'd seen this before. This happens in IDLE, but not from python.exe or Pythonwin. There appears to be a problem with the way stropmodule constructs its 'letters' attribute. in python.exe: 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 >>> repr(string.letters) "'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'" >From Pythonwin: PythonWin 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32. Portions Copyright 1994-2008 Mark Hammond - see 'Help/About PythonWin' for further copyright information. >>> import string >>> repr(string.letters) "'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'" Now from IDLE: IDLE 1.2.2 >>> import string >>> repr(string.letters) "'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\\x83\\x8a\\x8c\\x8e\\x9a\\x9c\\x9e\\x9f\\xaa\\xb5\\xba\\xc0\\xc1\\xc2\\xc3\\xc4\\xc5\\xc6\\xc7\\xc8\\xc9\\xca\\xcb\\xcc\\xcd\\xce\\xcf\\xd0\\xd1\\xd2\\xd3\\xd4\\xd5\\xd6\\xd8\\xd9\\xda\\xdb\\xdc\\xdd\\xde\\xdf\\xe0\\xe1\\xe2\\xe3\\xe4\\xe5\\xe6\\xe7\\xe8\\xe9\\xea\\xeb\\xec\\xed\\xee\\xef\\xf0\\xf1\\xf2\\xf3\\xf4\\xf5\\xf6\\xf8\\xf9\\xfa\\xfb\\xfc\\xfd\\xfe\\xff'" I'm not sure why this is happening, but it appears to be a bug in Python itself. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=551954&aid=2006053&group_id=78018 |