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 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
>> > ("RuntimeConfigType_id",sqlalchemy.types.Integer,sqlalchemy.ForeignKey
>> > ("RuntimeConfigType.id")),
>> >             useexisting=True
>> >         );
>> >     return;
>> > #def }}}
>>
>> > def initializeMapper(): #{{{
>> >     global t_RfaSuite;
>> >     global t_RfaSuite_RfaEnvironment;
>> >     sqlalchemy.orm.mapper(RfaSuite, t_RfaSuite, properties = {
>> >                "rfaenvironments"   : sqlalchemy.orm.relation
>> > (rfang.model.rfaenvironment.RfaEnvironment,secondary=t_RfaSuite_RfaEnvironment,
>> > backref="rfasuites"),
>> >                "rfaruns"           : sqlalchemy.orm.relation
>> > (rfang.model.rfarun.RfaRun,backref="rfasuite",cascade="all,delete,delete-
>> > orphan",order_by=rfang.model.rfarun.t_RfaRun.c.id)
>> >             });
>> >     return;
>> > #def }}}
>>
>> > class RfaSuite(object):
>>
>> >     def __init__(self,name,rfaenvironments = [],rfaruns = []): #{{{2
>> >         self.name = name;
>> >         self.rfaenvironments = rfaenvironments;
>> >         self.rfaruns = rfaruns;
>> >         return;
>> >     #def }}}2
>>
>> > # class RfaSuite
> >
>


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to