[sqlalchemy] Re: Weird mapper() behaviour (bug?)

2009-03-02 Thread Michael Bayer

its a bug, there's an isinstance(str) that should be  
isinstance(basestring).  please file a trac ticket.

On Mar 2, 2009, at 6:26 PM, Karlo Lozovina wrote:


 Hi guys! Here goes the code sample:


 from sqlalchemy import create_engine, MetaData
 from sqlalchemy import Table, Column, ForeignKey, Integer
 from sqlalchemy.orm import sessionmaker, mapper, relation

 metadata = MetaData()
 engine = create_engine('sqlite:///:memory:', echo=True)

 parent_table = Table('parent', metadata,
Column('id', Integer, primary_key=True))
 child_table = Table('child', metadata,
Column('id', Integer, primary_key=True),
Column('parent_id', Integer, ForeignKey('parent.id')))

 class Parent(object): pass
 class Child(object): pass

 mapper(Parent, parent_table, properties={'children': relation(Child,
 backref=u'parent')})
 mapper(Child, child_table)
 metadata.create_all(engine)
 session = sessionmaker(bind=engine)()
 parentobj = Parent()


 Running this code fails with this error:

 .../SQLAlchemy-0.5.2-py2.6.egg/sqlalchemy/orm/properties.pyc in
 _post_init(self)
993
994 if self.backref is not None:
 -- 995 self.backref.compile(self)
996 elif not mapper.class_mapper(self.parent.class_,
 compile=False)._get_property(self.key, raiseerr=False):
997 raise sa_exc.ArgumentError(Attempting to assign a
 new relation '%s' to 
 AttributeError: 'unicode' object has no attribute 'compile'

 This line is the problem:
mapper(Parent, parent_table, properties={'children': relation
 (Child, backref=u'parent')})
 or, to be precise, `backref=u'parent'`. With just `backref='parent'`,
 everything works just fine, it breaks down when using a unicode
 literal for backref name. Is this a bug, or somehow expected behavior?

 Thanks everyone...
 


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



[sqlalchemy] Re: Weird mapper() behaviour (bug?)

2009-03-02 Thread Karlo Lozovina

On Mar 3, 1:03 am, Michael Bayer mike...@zzzcomputing.com wrote:

 its a bug, there's an isinstance(str) that should be  
 isinstance(basestring).  please file a trac ticket.

Done, here it is:
http://www.sqlalchemy.org/trac/ticket/1330

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