nvm... i found it.
On Mon, Aug 26, 2013 at 5:46 PM, Praveen <praveen.venk...@gmail.com> wrote: > Could you please point me to the link where I can find the example ? > > > On Mon, Aug 26, 2013 at 5:41 PM, Michael Bayer > <mike...@zzzcomputing.com>wrote: > >> you'd need to hand-roll the deferred reflection part, there's an example >> in 0.7 called "declarative_reflection" but it might require features that >> aren't in 0.6. >> >> I'd not be looking to add any kind of slick/magic systems to an 0.6 app, >> 0.6 is very early in the curve for declarative techniques. upgrade it >> first, otherwise stick with the hacky approaches you have. >> >> >> >> On Aug 26, 2013, at 5:38 PM, Praveen <praveen.venk...@gmail.com> wrote: >> >> Does this work in sqlalchemy 0.6.1 ? >> >> >> On Mon, Aug 26, 2013 at 5:36 PM, Michael Bayer >> <mike...@zzzcomputing.com>wrote: >> >>> OK here we are, had to switch approaches due to a bug with the column >>> reflect event, to use the aforementioned __mapper_cls__ (had the name >>> wrong), so I think you'll see this is a pretty open-ended way to control >>> how something maps as you're given total access to mapper() here: >>> >>> from sqlalchemy import * >>> from sqlalchemy.orm import * >>> from sqlalchemy.ext.declarative import declarative_base, declared_attr >>> from sqlalchemy.ext.declarative import DeferredReflection >>> from sqlalchemy import event >>> >>> Base = declarative_base() >>> >>> e = create_engine("sqlite://", echo=True) >>> e.execute(""" >>> create table sample ( >>> Id integer primary key, >>> Name varchar, >>> Description varchar, >>> IsActive varchar >>> ) >>> """) >>> >>> class MagicMappyThing(DeferredReflection): >>> @declared_attr >>> def __mapper_cls__(cls): >>> def map_(cls, *arg, **kw): >>> props = kw.setdefault("properties", {}) >>> for k, v in cls.__map__.items(): >>> props[v] = cls.__table__.c[k] >>> return mapper(cls, *arg, **kw) >>> return map_ >>> >>> class Sample(MagicMappyThing, Base): >>> __tablename__ = 'sample' >>> __map__ = {'Id': 'id', 'Name': 'name', 'Description': 'description', >>> 'IsActive': 'is_active'} >>> >>> def __init__(self, id, name, description, is_active): >>> self.id = id >>> self.name = name >>> self.description = description >>> self.is_active = is_active >>> >>> MagicMappyThing.prepare(e) >>> >>> s = Session(e) >>> >>> s.add(Sample(id=1, name='some name', description='foo', is_active='foo')) >>> s.commit() >>> >>> >>> >>> >>> On Aug 26, 2013, at 5:17 PM, Michael Bayer <mike...@zzzcomputing.com> >>> wrote: >>> >>> >>> On Aug 26, 2013, at 5:16 PM, Michael Bayer <mike...@zzzcomputing.com> >>> wrote: >>> >>> >>> On Aug 26, 2013, at 4:35 PM, Praveen <praveen.venk...@gmail.com> wrote: >>> >>> The problem with using Mixins is that you need to know the definition of >>> columns already for creating the mixin class. What I am trying to do is >>> more like get the definition dynamically on the fly.Take a look at this: >>> >>> >>> here's a simple way to add reflection events which intercept the Column >>> and add the .key of your choice, and saves on code by making use of the >>> existing DeferredReflection mixin instead of hand-coding it. >>> >>> >>> except it doesnt work yet, give me 10 minutes. >>> >>> >>> >> >> >> -- >> Have a nice day !!! >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sqlalchemy" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sqlalchemy+unsubscr...@googlegroups.com. >> To post to this group, send email to sqlalchemy@googlegroups.com. >> Visit this group at http://groups.google.com/group/sqlalchemy. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > > -- > Have a nice day !!! > -- Have a nice day !!! -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/groups/opt_out.