All the declarative examples have DeclarativeBase as the first/left base 
class.  Does it need to be?  I've swapped it in several code locations and 
experimented and it seems to be fine, but there's a lot going on with 
declarative and I'm vaguely paranoid about messing it up subtly by altering 
the MRO.

ie: This is "normal", and is how all declarative examples are done:

class Foo(Base, MyMixin):
    #snip

but is this also ok, or will it cause issues somehow?

class Foo2(MyMixin, Base):
    #snip

The reason I'm looking at this is that I've got a case with multiple mixin 
classes, and when the "top" mixin used doesn't have an __init__ definition, 
but a lower level class does, having the declarative base first fails 
because it doesn't use a (*args, **kwargs) catchall.  I also wonder how 
super() will end up working out.

Since that last bit probably wasn't very clear, here is a small but full 
example of what I mean:
http://static.inky.ws/syn/335

Resolving the __init__ args issue is resolved by putting the Mixin first.  I 
just want to make sure it is fine.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/sqlalchemy/-/N4xewJ_5RJQJ.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to