> On Sun, Oct 26, 2008 at 4:30 AM, Alessandro Dentella <[EMAIL PROTECTED]> 
> wrote:
> > 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
> >
> >
> > What does this mean and what should I do instead?
> 
> This is actually a generic python question, but to recognize it, you
> have to know that GObject has its own metaclass. The similar case in

I was undecided if addressing to python list or pygtk, in fact.

> (shortened) pure python is:
> 
> class meta1(type): pass
> class meta2(type): pass
> class base(meta1): __metaclass__ = meta1
> class derv(base): __metaclass__ = meta2
> 
> To fix it up, you have to mix the metaclasses (and use real
> metaclasses, of course):
> 
> class mmeta(meta1, meta2): pass
> class derv(base): __metaclass__ = mmeta

I had this idea and I tryed what follows that in my idea is what you
suggest, changes the error...

   import gobject

   class Dummy(type, gobject.GObject):
       def __new__(cls, name, bases, attrs):
           return type.__new__(cls, name, bases, attrs)


   class A(object):
       __metaclass__ = Dummy


And the error becomes:

  TypeError: Error when calling the metaclass bases
      multiple bases have instance lay-out conflict


A quick search in google seem to warn that this means that type and GObject
are not built to work toghether... is this True?


sandro
*:-)

_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/

Reply via email to