So I had been working on this tiny project now and then. And here's the poc. http://paste.pound-python.org/show/10578/ I think I'm somewhat misusing the _set_parent() here though.
On Sunday, July 24, 2011 06:52:45 PM Michael Bayer wrote:
> On Jul 24, 2011, at 8:39 AM, Fayaz Yusuf Khan wrote:
> > The problem with using different mixins is that you lose out on a lot of
> > code reusability. In my case, I have a 'user' column that appears in
> > almost all table declarations. To have a separate mixin class for each
> > joint-table inheritance would destroy the purpose of having a mixin
> > altogether.
>
> In your example you can simply use CMixin and TMixin separately instead of
> inheriting them from one another, then apply CMixin and TMixin directly to
> C individually. That makes more sense here since for every class X
> which you want to have "user", you'd apply CMixin explicitly. The more
> I look at this the more it seems completely correct to me. Mixins and
> declarative do a lot , and sticking to Python's regular rules for
> inheritance is what makes them great.
>
> > Perhaps, there should be a shorthand for implicitly creating columns
> > along with foreign key constraints?
> >
> > So something like
> >
> > ImplicitForeignKeyConstraint(
> >
> > ['user', 'timestamp'],
> > ['Timeline.user', 'Timeline.timestamp'], primary_key=True)
> >
> > should lead to the creation of
> >
> > Column('user', String, primary_key=True),
> > Column('timestamp',Integer, autoincrement=False, primary_key=True),
> > ForeignKeyConstraint(
> >
> > ['user', 'timestamp'],
> > ['Timeline.user', 'Timeline.timestamp'])
>
> Not something for core but certainly something you could provide yourself
> (use append_column()). SQLA's APIs try to remain explicit about
> things leaving "implicit helper" layers as an external task (hence
> relationship + ForeignKey, as opposed to the "all in one" demo I did at
> http://techspot.zzzeek.org/2011/05/17/magic-a-new-orm/ , etc)
--
Fayaz Yusuf Khan
Cloud developer and designer
Dexetra SS, Kochi, India
fayaz.yusuf.khan_AT_gmail_DOT_com
fayaz_AT_dexetra_DOT_com
+91-9746-830-823
signature.asc
Description: This is a digitally signed message part.
