[sqlalchemy] Re: sqlalchemy 0.4.6 + python 2.3: many-to-many relation problem
david.radkow...@googlemail.com wrote: ha! got it! you were right, it's a vendor's python implementation problem. the custom python runtime put an instrumentation layer on top of other classes and that why it breaks :D switched to the genuine python 2.3.5 and now it's fine :) sowhy not switch to genuine python 2.6 ? :) thanks for your input, as you pointed me in the right direction. cheers Michael ! On Jun 22, 9:09 pm, Michael Bayer mike...@zzzcomputing.com wrote: david.radkow...@googlemail.com wrote: Hi I'm a bit concerned why the same code works with SA 0.5. Actually when there is no data in the relation, the query returns an empty list; however, as soon as I put some data in, I got the error :O I tried with 0.4.9dev...something as well, the same result though :/ Am missing the point here? Do all tables/mappers have to be defined in the same context/module? no. As I said, as far as what the stack trace indicates, you are doing something with pickling, direct __dict__ access, or custom instrumentation mods that is not compatible with 0.4. It might be something else too, but none of the sample code you have provided provides any insight into what might be causing the error. you would have to provide a succinct and fully reproducing (read: we can run it here) test case in order to provide more clues. Thanks On Jun 22, 8:38 pm, Michael Bayer mike...@zzzcomputing.com wrote: that error would have something to do with pickling, direct __dict__ access on instances, or playing around with instrumentation extensions. that's as much as can be said based on what you've given. aside from whatever reasons for using Py2.3, why ever would you go straight to 0.4.6 and not 0.4.8 ? david.radkow...@googlemail.com wrote: Hi I've got a small problem with my python code proted from 0.5 (p2.5) to 0.4.6 (p2.3). When I try to load query objects from many-to-many relation (mapped via secondary keyword) I get most weird error: Traceback (most recent call last): File string, line 86, in ? File X, line 17, in call_from_unix File X, line 12, in test File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/attributes.py, line 44, in __get__ return self.impl.get(instance._state) File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/attributes.py, line 281, in get return self.set_committed_value(state, value) File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/attributes.py, line 635, in set_committed_value collection.append_without_event(item) File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/collections.py, line 540, in append_without_event getattr(self._data(), '_sa_appender')(item, _sa_initiator=False) AttributeError: 'InstrumentedList' object has no attribute '_sa_appender' Any idea what is going on? It doesn't happen with sa 0.5 Any help will be much appreciated Cheers The tables look like follows: - import sqlalchemy; import sqlalchemy.orm; import rfang.model.rfablcklstinstr; import rfang.model.rfaruntime; t_RfaEnvironment = None; t_RfaEnvironment_RfaBlcklstInstr = None; def initializeTable(metadata): #{{{ global t_RfaEnvironment; global t_RfaEnvironment_RfaBlcklstInstr; if(t_RfaEnvironment == None): t_RfaEnvironment = sqlalchemy.Table(RuntimeConfigType, metadata, sqlalchemy.Column (id,sqlalchemy.types.Integer,sqlalchemy.schema.Sequence (id_RuntimeConfigType),primary_key=True), sqlalchemy.Column(name,sqlalchemy.types.Unicode (10),nullable=False,unique=True), sqlalchemy.Column(filename,sqlalchemy.types.Unicode (100),nullable=False), sqlalchemy.Column(filtername,sqlalchemy.types.Unicode (255),nullable=False), useexisting=True ); rfang.model.rfablcklstinstr.initializeTable(metadata); t_RfaEnvironment_RfaBlcklstInstr = sqlalchemy.Table (RuntimeConfigType_Blacklist, metadata, sqlalchemy.Column (runtimeConfigType_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey ('RuntimeConfigType.id')), sqlalchemy.Column (blacklist_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey ('Blacklist.id')), useexisting=True ); return; #def }}} def initializeMapper(): #{{{ global t_RfaEnvironment; global t_RfaEnvironment_RfaBlcklstInstr; sqlalchemy.orm.mapper( RfaEnvironment, t_RfaEnvironment, properties = { rfaruntimes : sqlalchemy.orm.relation (rfang.model.rfaruntime.RfaRuntime,backref=rfaenvironment,cascade=all,delete,delete-
[sqlalchemy] Re: sqlalchemy 0.4.6 + python 2.3: many-to-many relation problem
no chance :( legacy third party C extension libraries :( On Jun 23, 3:50 pm, Michael Bayer mike...@zzzcomputing.com wrote: david.radkow...@googlemail.com wrote: ha! got it! you were right, it's a vendor's python implementation problem. the custom python runtime put an instrumentation layer on top of other classes and that why it breaks :D switched to the genuine python 2.3.5 and now it's fine :) sowhy not switch to genuine python 2.6 ? :) thanks for your input, as you pointed me in the right direction. cheers Michael ! On Jun 22, 9:09 pm, Michael Bayer mike...@zzzcomputing.com wrote: david.radkow...@googlemail.com wrote: Hi I'm a bit concerned why the same code works with SA 0.5. Actually when there is no data in the relation, the query returns an empty list; however, as soon as I put some data in, I got the error :O I tried with 0.4.9dev...something as well, the same result though :/ Am missing the point here? Do all tables/mappers have to be defined in the same context/module? no. As I said, as far as what the stack trace indicates, you are doing something with pickling, direct __dict__ access, or custom instrumentation mods that is not compatible with 0.4. It might be something else too, but none of the sample code you have provided provides any insight into what might be causing the error. you would have to provide a succinct and fully reproducing (read: we can run it here) test case in order to provide more clues. Thanks On Jun 22, 8:38 pm, Michael Bayer mike...@zzzcomputing.com wrote: that error would have something to do with pickling, direct __dict__ access on instances, or playing around with instrumentation extensions. that's as much as can be said based on what you've given. aside from whatever reasons for using Py2.3, why ever would you go straight to 0.4.6 and not 0.4.8 ? david.radkow...@googlemail.com wrote: Hi I've got a small problem with my python code proted from 0.5 (p2.5) to 0.4.6 (p2.3). When I try to load query objects from many-to-many relation (mapped via secondary keyword) I get most weird error: Traceback (most recent call last): File string, line 86, in ? File X, line 17, in call_from_unix File X, line 12, in test File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/attributes.py, line 44, in __get__ return self.impl.get(instance._state) File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/attributes.py, line 281, in get return self.set_committed_value(state, value) File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/attributes.py, line 635, in set_committed_value collection.append_without_event(item) File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/collections.py, line 540, in append_without_event getattr(self._data(), '_sa_appender')(item, _sa_initiator=False) AttributeError: 'InstrumentedList' object has no attribute '_sa_appender' Any idea what is going on? It doesn't happen with sa 0.5 Any help will be much appreciated Cheers The tables look like follows: - import sqlalchemy; import sqlalchemy.orm; import rfang.model.rfablcklstinstr; import rfang.model.rfaruntime; t_RfaEnvironment = None; t_RfaEnvironment_RfaBlcklstInstr = None; def initializeTable(metadata): #{{{ global t_RfaEnvironment; global t_RfaEnvironment_RfaBlcklstInstr; if(t_RfaEnvironment == None): t_RfaEnvironment = sqlalchemy.Table(RuntimeConfigType, metadata, sqlalchemy.Column (id,sqlalchemy.types.Integer,sqlalchemy.schema.Sequence (id_RuntimeConfigType),primary_key=True), sqlalchemy.Column(name,sqlalchemy.types.Unicode (10),nullable=False,unique=True), sqlalchemy.Column(filename,sqlalchemy.types.Unicode (100),nullable=False), sqlalchemy.Column(filtername,sqlalchemy.types.Unicode (255),nullable=False), useexisting=True ); rfang.model.rfablcklstinstr.initializeTable(metadata); t_RfaEnvironment_RfaBlcklstInstr = sqlalchemy.Table (RuntimeConfigType_Blacklist, metadata, sqlalchemy.Column (runtimeConfigType_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey ('RuntimeConfigType.id')), sqlalchemy.Column (blacklist_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey ('Blacklist.id')), useexisting=True ); return; #def }}} def initializeMapper(): #{{{ global t_RfaEnvironment; global
[sqlalchemy] Re: sqlalchemy 0.4.6 + python 2.3: many-to-many relation problem
that error would have something to do with pickling, direct __dict__ access on instances, or playing around with instrumentation extensions. that's as much as can be said based on what you've given. aside from whatever reasons for using Py2.3, why ever would you go straight to 0.4.6 and not 0.4.8 ? david.radkow...@googlemail.com wrote: Hi I've got a small problem with my python code proted from 0.5 (p2.5) to 0.4.6 (p2.3). When I try to load query objects from many-to-many relation (mapped via secondary keyword) I get most weird error: Traceback (most recent call last): File string, line 86, in ? File X, line 17, in call_from_unix File X, line 12, in test File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/attributes.py, line 44, in __get__ return self.impl.get(instance._state) File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/attributes.py, line 281, in get return self.set_committed_value(state, value) File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/attributes.py, line 635, in set_committed_value collection.append_without_event(item) File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/collections.py, line 540, in append_without_event getattr(self._data(), '_sa_appender')(item, _sa_initiator=False) AttributeError: 'InstrumentedList' object has no attribute '_sa_appender' Any idea what is going on? It doesn't happen with sa 0.5 Any help will be much appreciated Cheers The tables look like follows: - import sqlalchemy; import sqlalchemy.orm; import rfang.model.rfablcklstinstr; import rfang.model.rfaruntime; t_RfaEnvironment = None; t_RfaEnvironment_RfaBlcklstInstr = None; def initializeTable(metadata): #{{{ global t_RfaEnvironment; global t_RfaEnvironment_RfaBlcklstInstr; if(t_RfaEnvironment == None): t_RfaEnvironment = sqlalchemy.Table(RuntimeConfigType, metadata, sqlalchemy.Column (id,sqlalchemy.types.Integer,sqlalchemy.schema.Sequence (id_RuntimeConfigType),primary_key=True), sqlalchemy.Column(name,sqlalchemy.types.Unicode (10),nullable=False,unique=True), sqlalchemy.Column(filename,sqlalchemy.types.Unicode (100),nullable=False), sqlalchemy.Column(filtername,sqlalchemy.types.Unicode (255),nullable=False), useexisting=True ); rfang.model.rfablcklstinstr.initializeTable(metadata); t_RfaEnvironment_RfaBlcklstInstr = sqlalchemy.Table (RuntimeConfigType_Blacklist, metadata, sqlalchemy.Column (runtimeConfigType_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey ('RuntimeConfigType.id')), sqlalchemy.Column (blacklist_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey ('Blacklist.id')), useexisting=True ); return; #def }}} def initializeMapper(): #{{{ global t_RfaEnvironment; global t_RfaEnvironment_RfaBlcklstInstr; sqlalchemy.orm.mapper( RfaEnvironment, t_RfaEnvironment, properties = { rfaruntimes : sqlalchemy.orm.relation (rfang.model.rfaruntime.RfaRuntime,backref=rfaenvironment,cascade=all,delete,delete- orphan), rfablacklist : sqlalchemy.orm.relation (rfang.model.rfablcklstinstr.RfaBlcklstInstr,secondary = t_RfaEnvironment_RfaBlcklstInstr ,backref=rfaenvironments) }); return; #def }}} class RfaEnvironment(object): def __init__(self, name=None, filtername=None, filename=None, rfaruntimes=[], rfablacklist=[]): #{{{2 self.name = name; self.filename = filename; self.filtername = filtername; self.rfablacklist = rfablacklist; self.rfaruntimes = rfaruntimes; return; #def }}}2 #class RuntimeConfigType - import sqlalchemy; import sqlalchemy.orm; import rfang.model.rfaenvironment; import rfang.model.rfarun; t_RfaSuite = None; t_RfaSuite_RfaEnvironment = None; def initializeTable(metadata): #{{{ global t_RfaSuite; global t_RfaSuite_RfaEnvironment; if(t_RfaSuite == None): t_RfaSuite = sqlalchemy.Table(RfaSuite,metadata, sqlalchemy.Column (id,sqlalchemy.types.Integer,sqlalchemy.schema.Sequence (id_RfaSuite),primary_key=True), sqlalchemy.Column(name,sqlalchemy.types.Unicode (50),nullable=False), useexisting=True ); rfang.model.rfaenvironment.initializeTable(metadata); t_RfaSuite_RfaEnvironment = sqlalchemy.Table (RfaSuite_RuntimeConfigType,metadata, sqlalchemy.Column (RfaSuite_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey (RfaSuite.id)), sqlalchemy.Column
[sqlalchemy] Re: sqlalchemy 0.4.6 + python 2.3: many-to-many relation problem
Hi I'm a bit concerned why the same code works with SA 0.5. Actually when there is no data in the relation, the query returns an empty list; however, as soon as I put some data in, I got the error :O I tried with 0.4.9dev...something as well, the same result though :/ Am missing the point here? Do all tables/mappers have to be defined in the same context/module? Thanks On Jun 22, 8:38 pm, Michael Bayer mike...@zzzcomputing.com wrote: that error would have something to do with pickling, direct __dict__ access on instances, or playing around with instrumentation extensions. that's as much as can be said based on what you've given. aside from whatever reasons for using Py2.3, why ever would you go straight to 0.4.6 and not 0.4.8 ? david.radkow...@googlemail.com wrote: Hi I've got a small problem with my python code proted from 0.5 (p2.5) to 0.4.6 (p2.3). When I try to load query objects from many-to-many relation (mapped via secondary keyword) I get most weird error: Traceback (most recent call last): File string, line 86, in ? File X, line 17, in call_from_unix File X, line 12, in test File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/attributes.py, line 44, in __get__ return self.impl.get(instance._state) File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/attributes.py, line 281, in get return self.set_committed_value(state, value) File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/attributes.py, line 635, in set_committed_value collection.append_without_event(item) File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/collections.py, line 540, in append_without_event getattr(self._data(), '_sa_appender')(item, _sa_initiator=False) AttributeError: 'InstrumentedList' object has no attribute '_sa_appender' Any idea what is going on? It doesn't happen with sa 0.5 Any help will be much appreciated Cheers The tables look like follows: - import sqlalchemy; import sqlalchemy.orm; import rfang.model.rfablcklstinstr; import rfang.model.rfaruntime; t_RfaEnvironment = None; t_RfaEnvironment_RfaBlcklstInstr = None; def initializeTable(metadata): #{{{ global t_RfaEnvironment; global t_RfaEnvironment_RfaBlcklstInstr; if(t_RfaEnvironment == None): t_RfaEnvironment = sqlalchemy.Table(RuntimeConfigType, metadata, sqlalchemy.Column (id,sqlalchemy.types.Integer,sqlalchemy.schema.Sequence (id_RuntimeConfigType),primary_key=True), sqlalchemy.Column(name,sqlalchemy.types.Unicode (10),nullable=False,unique=True), sqlalchemy.Column(filename,sqlalchemy.types.Unicode (100),nullable=False), sqlalchemy.Column(filtername,sqlalchemy.types.Unicode (255),nullable=False), useexisting=True ); rfang.model.rfablcklstinstr.initializeTable(metadata); t_RfaEnvironment_RfaBlcklstInstr = sqlalchemy.Table (RuntimeConfigType_Blacklist, metadata, sqlalchemy.Column (runtimeConfigType_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey ('RuntimeConfigType.id')), sqlalchemy.Column (blacklist_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey ('Blacklist.id')), useexisting=True ); return; #def }}} def initializeMapper(): #{{{ global t_RfaEnvironment; global t_RfaEnvironment_RfaBlcklstInstr; sqlalchemy.orm.mapper( RfaEnvironment, t_RfaEnvironment, properties = { rfaruntimes : sqlalchemy.orm.relation (rfang.model.rfaruntime.RfaRuntime,backref=rfaenvironment,cascade=all,delete,delete- orphan), rfablacklist : sqlalchemy.orm.relation (rfang.model.rfablcklstinstr.RfaBlcklstInstr,secondary = t_RfaEnvironment_RfaBlcklstInstr ,backref=rfaenvironments) }); return; #def }}} class RfaEnvironment(object): def __init__(self, name=None, filtername=None, filename=None, rfaruntimes=[], rfablacklist=[]): #{{{2 self.name = name; self.filename = filename; self.filtername = filtername; self.rfablacklist = rfablacklist; self.rfaruntimes = rfaruntimes; return; #def }}}2 #class RuntimeConfigType - import sqlalchemy; import sqlalchemy.orm; import rfang.model.rfaenvironment; import rfang.model.rfarun; t_RfaSuite = None; t_RfaSuite_RfaEnvironment = None; def initializeTable(metadata): #{{{ global t_RfaSuite; global t_RfaSuite_RfaEnvironment; if(t_RfaSuite == None): t_RfaSuite = sqlalchemy.Table(RfaSuite,metadata,
[sqlalchemy] Re: sqlalchemy 0.4.6 + python 2.3: many-to-many relation problem
david.radkow...@googlemail.com wrote: Hi I'm a bit concerned why the same code works with SA 0.5. Actually when there is no data in the relation, the query returns an empty list; however, as soon as I put some data in, I got the error :O I tried with 0.4.9dev...something as well, the same result though :/ Am missing the point here? Do all tables/mappers have to be defined in the same context/module? no. As I said, as far as what the stack trace indicates, you are doing something with pickling, direct __dict__ access, or custom instrumentation mods that is not compatible with 0.4. It might be something else too, but none of the sample code you have provided provides any insight into what might be causing the error. you would have to provide a succinct and fully reproducing (read: we can run it here) test case in order to provide more clues. Thanks On Jun 22, 8:38 pm, Michael Bayer mike...@zzzcomputing.com wrote: that error would have something to do with pickling, direct __dict__ access on instances, or playing around with instrumentation extensions. that's as much as can be said based on what you've given. aside from whatever reasons for using Py2.3, why ever would you go straight to 0.4.6 and not 0.4.8 ? david.radkow...@googlemail.com wrote: Hi I've got a small problem with my python code proted from 0.5 (p2.5) to 0.4.6 (p2.3). When I try to load query objects from many-to-many relation (mapped via secondary keyword) I get most weird error: Traceback (most recent call last): File string, line 86, in ? File X, line 17, in call_from_unix File X, line 12, in test File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/attributes.py, line 44, in __get__ return self.impl.get(instance._state) File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/attributes.py, line 281, in get return self.set_committed_value(state, value) File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/attributes.py, line 635, in set_committed_value collection.append_without_event(item) File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ sqlalchemy/orm/collections.py, line 540, in append_without_event getattr(self._data(), '_sa_appender')(item, _sa_initiator=False) AttributeError: 'InstrumentedList' object has no attribute '_sa_appender' Any idea what is going on? It doesn't happen with sa 0.5 Any help will be much appreciated Cheers The tables look like follows: - import sqlalchemy; import sqlalchemy.orm; import rfang.model.rfablcklstinstr; import rfang.model.rfaruntime; t_RfaEnvironment = None; t_RfaEnvironment_RfaBlcklstInstr = None; def initializeTable(metadata): #{{{ global t_RfaEnvironment; global t_RfaEnvironment_RfaBlcklstInstr; if(t_RfaEnvironment == None): t_RfaEnvironment = sqlalchemy.Table(RuntimeConfigType, metadata, sqlalchemy.Column (id,sqlalchemy.types.Integer,sqlalchemy.schema.Sequence (id_RuntimeConfigType),primary_key=True), sqlalchemy.Column(name,sqlalchemy.types.Unicode (10),nullable=False,unique=True), sqlalchemy.Column(filename,sqlalchemy.types.Unicode (100),nullable=False), sqlalchemy.Column(filtername,sqlalchemy.types.Unicode (255),nullable=False), useexisting=True ); rfang.model.rfablcklstinstr.initializeTable(metadata); t_RfaEnvironment_RfaBlcklstInstr = sqlalchemy.Table (RuntimeConfigType_Blacklist, metadata, sqlalchemy.Column (runtimeConfigType_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey ('RuntimeConfigType.id')), sqlalchemy.Column (blacklist_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey ('Blacklist.id')), useexisting=True ); return; #def }}} def initializeMapper(): #{{{ global t_RfaEnvironment; global t_RfaEnvironment_RfaBlcklstInstr; sqlalchemy.orm.mapper( RfaEnvironment, t_RfaEnvironment, properties = { rfaruntimes : sqlalchemy.orm.relation (rfang.model.rfaruntime.RfaRuntime,backref=rfaenvironment,cascade=all,delete,delete- orphan), rfablacklist : sqlalchemy.orm.relation (rfang.model.rfablcklstinstr.RfaBlcklstInstr,secondary = t_RfaEnvironment_RfaBlcklstInstr ,backref=rfaenvironments) }); return; #def }}} class RfaEnvironment(object): def __init__(self, name=None, filtername=None, filename=None, rfaruntimes=[], rfablacklist=[]): #{{{2 self.name = name; self.filename = filename; self.filtername = filtername; self.rfablacklist = rfablacklist; self.rfaruntimes = rfaruntimes; return; #def }}}2 #class