I wouldn't expect any breaking changes in COM until IronPython 3.0 at the
earliest. That being said our COM binding logic is actually owned by the DLR
team. They have been and will continue working on fixing bugs in the COM
binding logic. Therefore you might see us integrate in small bug fixes but
nothing that would break your code.
I think ideally we'd all love to see us match pywin32 as closely as possible so
we might at some point revisit the way we currently are doing the binding (and
recent changes in the DLR should make this much easier than it was before). I
think we'd approach this by enabling both behaviors so .Item works as well as
calling, eventually start issuing warnings on .Item, and then finally remove
.Item in Ipy 3k or later.
________________________________
From: [EMAIL PROTECTED] [EMAIL PROTECTED] On Behalf Of Vernon Cole [EMAIL
PROTECTED]
Sent: Wednesday, November 26, 2008 7:51 AM
To: Discussion of IronPython
Subject: Re: [IronPython] COM Object Issue
That's a really fine question. I had to change all of my COM item access twice
now in adodbapi. I finally ended up using a function, because iron python and c
python are so different in this area. My current code is:
if onIronPython:
def getIndexedValue(obj,index):
return obj.Item[index]
else: #pywin32
def getIndexedValue(obj,index):
return obj(index)
So I can (for example, reading the field definitions of an ADO recordset):
nOfFields=rs.Fields.Count
for i in range(nOfFields):
f=getIndexedValue(rs.Fields,i)
Question: Will this continue to work in future versions of IronPython?
--
Vernon Cole
On Wed, Nov 26, 2008 at 2:50 AM, Zaur Shibzoukhov <[EMAIL
PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:
What will happen with the item-like access to COM objects in IP 2.0?
Whether it will return to []-like access (as in RC 1) or it will
remain .Item(...)?
IMHO RC 1 way is more preferred.
Best regards,
Zaur
2008/10/27 Dino Viehland <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>>:
> Oh, and I'm not sure if this is by design or not (I'll need to ping the DLR
> team), but it seems you can do:
>
> wd.Variables.Item('foo')
>
> instead.
>
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com