On Wed, May 9, 2012 at 10:46 AM, Alexey Luchko <luch@ank-sia.com> wrote:
> Hi!
>
> I was thinking of a connection object fetching dicts and reporting slow
> queries. However, the way the connections classes are implemented make me
> think its impossible to create MyCursor(DictCursor, LoggingCursor) because
> they refer directly to parent class for calling inherited methods, like
> _cursor.method(....).
>
> Am I wrong?
Yes, as it is now I think you should subclass DictCursor yourself to add timing.
We should probably use super(), but mixin-style inheritance doesn't
just happen: the classes should be designed for it and I'm afraid they
weren't. I'm not even sure the base C classes are "new style" classes.
However, yes, I'm all for it: can you try patching the module so that
mixing up different orthogonal subclasses (e.g. logging vs.
namedtuple...) works as expected?
-- Daniele