"metaclass conflict" error: where is noconflict ?

Chris Rebert clp2 at rebertia.com
Thu Feb 19 15:58:29 EST 2009


On Thu, Feb 19, 2009 at 5:01 AM, Barak, Ron <Ron.Barak at lsi.com> wrote:
> Hi,
>
> I have a class derived from two parents (in blue below), which gives me the
> following error:
>
> $ python -u ./failover_pickle_demo09.py
> Traceback (most recent call last):
>   File "./failover_pickle_demo09.py", line 291, in <module>
>     class ListControl(wx.Frame, CopyAndPaste):
> TypeError: Error when calling the metaclass bases
>     metaclass conflict: the metaclass of a derived class must be a
> (non-strict) subclass of the metaclasses of all its bases
> Googling suggested I should add
> from noconflict import classmaker
> and
>
> __metaclass__=classmaker()
> to this class.
>
> However, I don't seem able to find where to get the noconflict module from.
>
> Do any of you where noconflict  could be downloaded/installed from ?

>From what I could google, you should in theory be able to fix the
problem (without using any 3rd party module) by doing:

class ListControlMeta(type(wx.Frame), type(CopyAndPaste)):
    pass

class ListControl(wx.Frame, CopyAndPaste):
    __metaclass__ = ListControlMeta
    #rest of class...

Cheers,
Chris

-- 
Follow the path of the Iguana...
http://rebertia.com



More information about the Python-list mailing list