Thanks Hugh, that helps a lot. I was confused because it seemed to happen all of a sudden without too many changes in VOS, and the problem affects almost all of the Python classes. One additional thing I noticed is that this doesn't affect the *Ptr classes, e.g. Vobject class has the raise in __init__ but VobjectPtr doesn't. The problem seems to affect classes that do not have common parent classes as well (e.g. it isn't just Vobject-derived classes), but Pete, did you change some namespace notation or the virtuality of some stuff in Vobject or VobjectBase?
Reed On Fri, Sep 30, 2005 at 12:27:58AM +0200, Hugh Perkins wrote: > Not all objects can be constructed, for example anything pure virtual > Swig attempts to detect which objects can and cant be constructed. Sometimes > it gets it wrong > One way in which it gets wrong are where you instantiate a method in a > derived class that was pure virtual in the base class. If the method > parameters are not textually identical, Swig gets confused. For example if > one has VOP::sometype, and the other has sometype, swig considers this as > too differentypes. Since swig considers the derived class can no longer be > constructed, you get the error below. > > Theres an option on the commandline to change behavior for creatoin of > constructors, but you're probably better off diagnosing why the constructor > is not being created. > > Note that this issue is a PAIN IN THE BUTT to diagnose. You might consider > rebuilding swig from scratch and getting it to pump out rather more > debugging information than it does. Otherwise look forward to a good half > hour or more of instantiating all your methods (replacing = 0 with {} ) and > stuff... > > Hugh > > On 9/28/05, Reed Hedges <[EMAIL PROTECTED]> wrote: > > > > > > Hello, after about a week hiatus, I returned to a little bit of work I > > was doing with Python. All of a sudden the SWIG wrapper won't work for > > me and I don't know why. I may have done something to break it (I have > > made a few changes to vos_swig.i etc.) but I can't figure out what. I > > just updated VOS from CVS (excepting my local changes to SWIG of course). > > > > Every proxy class in Python that Swig generates now has the following in > > its __init__ definition: > > > > def __init__(self): raise RuntimeError, "No constructor defined" > > > > WTF? This makes it impossible to create any Python objects! > > > > Help! > > > > Any ideas? > > > > Reed > > > > > > > > _______________________________________________ > > vos-d mailing list > > vos-d@interreality.org > > http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d > > > _______________________________________________ > vos-d mailing list > vos-d@interreality.org > http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d _______________________________________________ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d