It works only in 0.7 like you said. I can't find any way to crack this situation in 0.6. :-(
On Mon, Aug 26, 2013 at 5:49 PM, Praveen <praveen.venk...@gmail.com> wrote: > 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 !!! > -- 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.