I have an esoteric question involving Python metaclasses.  I am creating a Python package for web-server-side code that will make it easy to access arbitrary Python classes via client-side proxies.  My proxy-generating code needs a catalog of all of the Python classes that I want to include in my API.  To create this catalog, I am using the __metaclass__ special attribute to put a hook into the class-creation process.  Specifically, all of the classes in the "published" API will subclass a particular base class, PythonDirectPublic, which itself has a __metaclass__ that has been set up to record information about the class creation.
So far so good.  Where it gets complicated is that I want my PythonDirectPublic itself to inherit from a third-party class (enthought.traits.api.HasTraits).  This third-party class also uses a __metaclass__.
So what's the right way of managing two metaclasses?  Should my metaclass be a subclass of Enthought's metaclass?  Or should I just invoke Enthought's metaclass inside my metaclass's __new__ method to get the type object that I will return?  Or is there some other mystical incantation to use in this particular circumstance?
Specifically, all of the classes in the "published" API will subclass a particular base class, PythonDirectPublic

Rather than adding another metaclass, you could recursively use the result of PythonDirectPublic.subclasses().
Python: Metaclasses all the way down