On Sep 23, 4:58 pm, Christian Heimes <[EMAIL PROTECTED]> wrote:
> Rob Kirkpatrick wrote:
> > I'm assuming this has been discussed before, but I'm lacking any
> > Google keywords that bring up the appropriate discussion.
>
> You are looking for "mro" aka method resolution order. The inspect
> module contains several helper functions to inspect a class hierarchy.
>
> The following interactive session should give you an impression how to
> use the functions:
>
> >>> import inspect
> >>> import pprint
> >>> from sqlalchemy.types import DateTime
>
> >>> inspect.getmro(DateTime)
> (, 'sqlalchemy.types.TypeEngine'>, ,
>
> >>> DateTime.__bases__
> (,)
>
> >>> pprint.pprint(inspect.getclasstree(inspect.getmro(DateTime)))
> [(, ()),
> [(, (,)),
>[(,
> (,)),
> [(,
> (,))
>
> >>> [cls for cls in inspect.getmro(DateTime) if hasattr(cls, '__init__')]
> [, 'sqlalchemy.types.TypeEngine'>, ,
> ]
>
> >>> [cls for cls in inspect.getmro(DateTime) if hasattr(cls, 'adapt')]
> [, ]
Oh, yeah. That's the stuff!
--
http://mail.python.org/mailman/listinfo/python-list