[IronPython] inheriting from "base" generic type

Dino Viehland dinov at exchange.microsoft.com
Mon Mar 17 17:16:01 CET 2008


Thanks for following up and sending this to the list.  I've opened a bug so we won't lose track of the issue because it doesn't look like we had one already:

http://www.codeplex.com/IronPython/WorkItem/View.aspx?WorkItemId=15674


From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Ronnie Maor
Sent: Monday, March 17, 2008 2:25 AM
To: users at lists.ironpython.com
Subject: [IronPython] inheriting from "base" generic type

Hi Dino,

asked you about this at pycon. posting it here per our discussion to help track it.
I understand it's not high on your priority list (and shouldn't be, considering the other stuff there)

details:

have a python class (simplified here) that is a wrapper over an event:
class Future(object):
    def set(self,val) # set from one thread
    def get(self) # blocking until set. returns the value set.

I exposed the class to C# code through a template interface:
interface IFuture<T>
    void set(T val)
    T get()

the interaction in our case is that C# calls python, which returns a future, which C# then waits on:
interface MyPythonSubsystem:
    IFuture<int> get_an_int()

Ideally I'd say that Future implements IFuture<T> for any T, by having Future inherit from IFuture in python. I hoped this would mean IronPython would accept my Future object when I returned it from the python implementation of get_an_int().
Unfortunately, this isn't possible, and I could only inherit from IFuture[T] for some specific T.

Ended up writing a simple function at the boundary between the subsystems which gets T as an argument, and constructs an adapter that inherits from IFuture<T> and proxies to an underlying Future object. It works fine for our case, but less than pretty :-(

anyway, hope this helps document/track it
Ronnie
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080317/e20707c3/attachment.html>


More information about the Ironpython-users mailing list