thanks, this is fixed in d6e8d5eddbca7154d008f7ef49efd.

python2 doesn’t seem to call __setitem__ when you pass an empty slice.


On Mar 3, 2014, at 2:25 PM, Rich <[email protected]> wrote:

> The following demonstrates a python3 sqlalchemy bug where an association 
> proxy does not allow assignment in place without specifying the start index.  
> It gives a "TypeError: list indices must be integers, not NoneType" error.  
> It fails on sqlalchemy 0.9.3, but python2 seems to have no problem.
> 
> 
> from sqlalchemy import *
> from sqlalchemy.orm import *
> from sqlalchemy.ext.declarative import *
> from sqlalchemy.ext.associationproxy import association_proxy
> 
> 
> Base = declarative_base()
> 
> 
> def build(value):
>     return Table1(name=value)
> 
> 
> class Table1(Base):
>     __tablename__ = 'table1'
> 
>     id = Column(Integer, primary_key=True)
>     name = Column(String(100))
>     fk = Column(Integer, ForeignKey('table2.id'))
> 
> 
> class Table2(Base):
>     __tablename__ = 'table2'
> 
>     id = Column(Integer, primary_key=True)
> 
>     t1s = relationship('Table1')
>     t1s_proxy = association_proxy('t1s', 'name', creator=build)
> 
> 
> t2 = Table2()
> t2.t1s.append(Table1(name='test'))
> 
> # fails
> t2.t1s_proxy[:] = ['test']
> 
> # works
> t2.t1s_proxy[0:] = ['test']
> 
> 
> -- 
> 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 [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/groups/opt_out.

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to