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.

Reply via email to