Ah, it's pretty clear why this happens in Mapper.__init__:

self._configure_extensions()
self._configure_class_instrumentation()
self._configure_properties()

Should MapperExtensions that want to extend properties mess with
mapper._init_properties instead?

On Jul 11, 2:49 pm, Nikolaj <nik....@gmail.com> wrote:
> I was trying to add an AttributeExtension to a property from my
> MapperExtension but I get this error when trying to access the
> property:
>
> AttributeError: 'Mapper' object has no attribute '_props'
>
> Here's a test case:
>
> from sqlalchemy import create_engine, Column
> from sqlalchemy.ext.declarative import declarative_base
> from sqlalchemy.types import Integer, String
> from sqlalchemy.orm import scoped_session, sessionmaker, deferred
> from sqlalchemy.orm.interfaces import MapperExtension
>
> engine = create_engine('sqlite:///:memory:', echo=True)
> Base = declarative_base(bind=engine)
>
> class MyExtension(MapperExtension):
>     def __init__(self, property):
>         self.property = property
>
>     def instrument_class(self, mapper, class_):
>         property = mapper.get_property(self.property)
>         print property
>
> class Item(Base):
>     __tablename__ = 'items'
>     __mapper_args__ = {'extension': MyExtension('name')}
>
>     id = Column(Integer, primary_key=True)
>     name =  deferred(Column(String))

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@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