AW: Python2.6 + win32com crashes with unicode bug

2009-11-02 Thread Stefan Schukat
Hello Gerrit, 

there is no problem in the file, but in the description of the Visio API. The 
place where the error occurs is during the definition 
of the parameters of the corresponding Python methods. The information for the 
names comes from the typelibrary of visio. Probably there is a 
non english name inside the typelibrary (MS used native names in early Office 
products) which then could not decoded to a correct Python name. 
In my Version of Vsio OpenEx has two parameters called FileName and Flags. You 
have to look in your typelibrary, e.g. with OleView
http://www.microsoft.com/downloads/details.aspx?familyid=5233b70d-d9b2-4cb5-aeb6-45664be858b6displaylang=en
 and check the parameters. 


Regards

Stefan



-Ursprüngliche Nachricht-
Von: python-list-bounces+sschukat=dspace...@python.org 
[mailto:python-list-bounces+sschukat=dspace...@python.org] Im Auftrag von 
GerritM
Gesendet: Freitag, 30. Oktober 2009 18:00
An: Terry Reedy
Cc: python-list@python.org
Betreff: Re: Python2.6 + win32com crashes with unicode bug


Terry Reedy schreef:
 GerritM wrote:
 I have automated image generation with Python, win32com and Visio5.0. 
 This works well upto Python2.5 but fails with Python 2.6.
 Short term solution is to return to 2.5 :-(.

 I have reproduced the bug below with a minimum of Python lines. Below 
 the problem the working example from 2.5

 kind regards, Gerrit

 ---minimal session reproducing the bug---

..snip..
 d = v.Documents.OpenEx(D:/temp/test.vsd,8)
...snip...
 UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 
 52: ordinal not in range(128)
 
 I suspect that 2.6 fixed the bug of allowing non-ascii chars when using 
 the ascii codec.  I would check to see if there is an 0x83 in 
 D:/temp/test.vsd
 
...snip...
the string D:/temp/test.vsd itself does not contain any 
charactervalue128:
  for c in D:/temp/test.vsd:
print ord(c),  ,

68   58   47   116   101   109   112   47   116   101   115   116   46 
  118   115   100
(on my current Python 2.5 configuration)

The presumably binary file itself may contain any value, but I don't 
expect Python or win32com to do anything with the file content...

There are explanations on internet that Windows uses internally 2 
(incompatible) API's that cause poblems with Unicode based filenames. I 
do something like that to be the problem in Python 2.6

kind regards, Gerrit

-- 
http://mail.python.org/mailman/listinfo/python-list


-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python2.6 + win32com crashes with unicode bug

2009-10-30 Thread GerritM

Terry Reedy schreef:

GerritM wrote:
I have automated image generation with Python, win32com and Visio5.0. 
This works well upto Python2.5 but fails with Python 2.6.

Short term solution is to return to 2.5 :-(.

I have reproduced the bug below with a minimum of Python lines. Below 
the problem the working example from 2.5


kind regards, Gerrit

---minimal session reproducing the bug---


..snip..

d = v.Documents.OpenEx(D:/temp/test.vsd,8)

...snip...
UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 
52: ordinal not in range(128)


I suspect that 2.6 fixed the bug of allowing non-ascii chars when using 
the ascii codec.  I would check to see if there is an 0x83 in 
D:/temp/test.vsd



...snip...
the string D:/temp/test.vsd itself does not contain any 
charactervalue128:

 for c in D:/temp/test.vsd:
print ord(c),  ,

68   58   47   116   101   109   112   47   116   101   115   116   46 
 118   115   100

(on my current Python 2.5 configuration)

The presumably binary file itself may contain any value, but I don't 
expect Python or win32com to do anything with the file content...


There are explanations on internet that Windows uses internally 2 
(incompatible) API's that cause poblems with Unicode based filenames. I 
do something like that to be the problem in Python 2.6


kind regards, Gerrit

--
http://mail.python.org/mailman/listinfo/python-list


Python2.6 + win32com crashes with unicode bug

2009-10-29 Thread GerritM
I have automated image generation with Python, win32com and Visio5.0. 
This works well upto Python2.5 but fails with Python 2.6.

Short term solution is to return to 2.5 :-(.

I have reproduced the bug below with a minimum of Python lines. Below 
the problem the working example from 2.5


kind regards, Gerrit

---minimal session reproducing the bug---

Python 2.6.3 (r263:75183, Oct  5 2009, 14:41:55) [MSC v.1500 32 bit 
(Intel)] on win32

Type copyright, credits or license() for more information.


Personal firewall software may warn about the connection IDLE
makes to its subprocess using this computer's internal loopback
interface.  This connection is not visible on any external
interface and no data is sent to or received from the Internet.


IDLE 2.6.3
 from win32com.client.dynamic import Dispatch
 v = Dispatch(Visio.Application)
 d = v.Documents.OpenEx(D:/temp/test.vsd,8)

Traceback (most recent call last):
  File pyshell#2, line 1, in module
d = v.Documents.OpenEx(D:/temp/test.vsd,8)
  File C:\Python26\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:\Python26\lib\site-packages\win32com\client\dynamic.py, line 
295, in _make_method_
methodCodeList = 
self._olerepr_.MakeFuncMethod(self._olerepr_.mapFuncs[name], methodName,0)
  File C:\Python26\lib\site-packages\win32com\client\build.py, line 
297, in MakeFuncMethod

return self.MakeDispatchFuncMethod(entry, name, bMakeClass)
  File C:\Python26\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:\Python26\lib\site-packages\win32com\client\build.py, line 
604, in BuildCallList

argName = MakePublicAttributeName(argName)
  File C:\Python26\lib\site-packages\win32com\client\build.py, line 
542, in MakePublicAttributeName

return filter( lambda char: char in valid_identifier_chars, className)
  File C:\Python26\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)



---no problem with 2.5---
Python 2.5 (r25:51908, Mar  9 2007, 17:40:28) [MSC v.1310 32 bit 
(Intel)] on win32

Type copyright, credits or license() for more information.


Personal firewall software may warn about the connection IDLE
makes to its subprocess using this computer's internal loopback
interface.  This connection is not visible on any external
interface and no data is sent to or received from the Internet.


IDLE 1.2
 from win32com.client.dynamic import Dispatch
 v = Dispatch(Visio.Application)
 d = v.Documents.OpenEx(D:/temp/test.vsd,8)


---configuration data---
Windows XP SP3
ASUS 1106HA (11.6 EEE PC)
Visio 5.0
--
http://mail.python.org/mailman/listinfo/python-list


Re: Python2.6 + win32com crashes with unicode bug

2009-10-29 Thread Terry Reedy

GerritM wrote:
I have automated image generation with Python, win32com and Visio5.0. 
This works well upto Python2.5 but fails with Python 2.6.

Short term solution is to return to 2.5 :-(.

I have reproduced the bug below with a minimum of Python lines. Below 
the problem the working example from 2.5


kind regards, Gerrit

---minimal session reproducing the bug---

Python 2.6.3 (r263:75183, Oct  5 2009, 14:41:55) [MSC v.1500 32 bit 
(Intel)] on win32

Type copyright, credits or license() for more information.


Personal firewall software may warn about the connection IDLE
makes to its subprocess using this computer's internal loopback
interface.  This connection is not visible on any external
interface and no data is sent to or received from the Internet.


IDLE 2.6.3
  from win32com.client.dynamic import Dispatch
  v = Dispatch(Visio.Application)
  d = v.Documents.OpenEx(D:/temp/test.vsd,8)

Traceback (most recent call last):
  File pyshell#2, line 1, in module
d = v.Documents.OpenEx(D:/temp/test.vsd,8)
  File C:\Python26\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:\Python26\lib\site-packages\win32com\client\dynamic.py, line 
295, in _make_method_
methodCodeList = 
self._olerepr_.MakeFuncMethod(self._olerepr_.mapFuncs[name], methodName,0)
  File C:\Python26\lib\site-packages\win32com\client\build.py, line 
297, in MakeFuncMethod

return self.MakeDispatchFuncMethod(entry, name, bMakeClass)
  File C:\Python26\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:\Python26\lib\site-packages\win32com\client\build.py, line 
604, in BuildCallList

argName = MakePublicAttributeName(argName)
  File C:\Python26\lib\site-packages\win32com\client\build.py, line 
542, in MakePublicAttributeName

return filter( lambda char: char in valid_identifier_chars, className)
  File C:\Python26\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)


I suspect that 2.6 fixed the bug of allowing non-ascii chars when using 
the ascii codec.  I would check to see if there is an 0x83 in 
D:/temp/test.vsd




---no problem with 2.5---
Python 2.5 (r25:51908, Mar  9 2007, 17:40:28) [MSC v.1310 32 bit 
(Intel)] on win32

Type copyright, credits or license() for more information.


Personal firewall software may warn about the connection IDLE
makes to its subprocess using this computer's internal loopback
interface.  This connection is not visible on any external
interface and no data is sent to or received from the Internet.


IDLE 1.2
  from win32com.client.dynamic import Dispatch
  v = Dispatch(Visio.Application)
  d = v.Documents.OpenEx(D:/temp/test.vsd,8)
 

---configuration data---
Windows XP SP3
ASUS 1106HA (11.6 EEE PC)
Visio 5.0


--
http://mail.python.org/mailman/listinfo/python-list


Re: Python2.6 + win32com crashes with unicode bug

2009-10-29 Thread John Machin
On Oct 30, 11:11 am, Terry Reedy tjre...@udel.edu wrote:
 GerritM wrote:
[snip]
    File C:\Python26\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)

 I suspect that 2.6 fixed the bug of allowing non-ascii chars when using
 the ascii codec.  I would check to see if there is an 0x83 in
 D:/temp/test.vsd

  Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit
(Intel)] on win32
  Type help, copyright, credits or license for more
information.
   '\x83'.decode('ascii')
  Traceback (most recent call last):
File stdin, line 1, in module
  UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in
position 0: ordinal not in range(128)
  

What bug??
-- 
http://mail.python.org/mailman/listinfo/python-list