Happy now. Can go to sleep :)
On Sunday, July 19, 2015 at 10:34:22 PM UTC+2, Michael Bayer wrote: > > > > On 7/19/15 4:25 PM, Dirk Makowski wrote: > > Thank you very much. Even though I suspected that issue to be related to > that chapter, in 13 years I would not have come up with your solution. > > You solved my problem, but I'm still curious about that <class > 'sqlalchemy.util._collections.result'>, which does not really exist. I > understand that it must be the new KeyedTuple implementation as it descends > from tuple and has methods like keys(). But the exception message talks > about a class that is clearly not there and can neither be imported nor > used in isinstance(). > > it works like Python's NamedTuple and is thus a class that is created on > the fly, the name given as "result". > > > > > > > On Sunday, July 19, 2015 at 9:58:42 PM UTC+2, Michael Bayer wrote: >> >> >> >> On 7/19/15 3:09 PM, Dirk Makowski wrote: >> >> Thanks for looking into it. Sorry about 7z, it's an archive. Please see >> the revised attachment. >> >> >> OK, that's some elaborate test script but ultimately this is your issue: >> >> if isinstance(inp, KeyedTuple): >> return proc_keyed_tuple(inp) >> >> >> should be: >> >> if isinstance(inp, tuple): >> return proc_keyed_tuple(inp) >> >> see: >> >> >> http://docs.sqlalchemy.org/en/latest/changelog/migration_10.html#new-keyedtuple-implementation-dramatically-faster >> >> >> >> >> >> In principle, I'm converting the result from a query into a list of >> dicts. >> >> data = [] >> rs = sess.query(...) >> for r in rs: >> data.append(dictate(r)) >> >> In function dictate() is the call to inspect(). Until SA 0.9.9 it worked >> fine. With version 1.0.6 sometimes the call to inspect() fails with >> honestly that error message. It depends on what was queried: >> - a single ORM object: OK >> - hand-made SQL (sa.text()): OK >> - several joined ORM objects: FAIL >> - mixture of ORM objects and columns: FAIL >> >> Attached script goes through these situations and shows exactly what >> happens. >> >> >> On Sunday, July 19, 2015 at 6:28:07 PM UTC+2, Michael Bayer wrote: >>> >>> >>> >>> On 7/19/15 11:58 AM, Dirk Makowski wrote: >>> >>> Hello all, >>> >>> some time ago I wrote a function to mogrify SA query results into a >>> list of dicts. It uses the inspector to determine columns etc. Up until SA >>> 0.9.9 it worked well. However, after an upgrade of SA to 1.0.6 in some >>> circumstances I get this error: >>> >>> No inspection system is available for object of type <class >>> 'sqlalchemy.util._collections.result'> >>> >>> What previously had been a Python type or ORM type now is an ominous >>> 'result'. >>> >>> Hopefully you can give some pointers about what it is and how I could >>> fix my function. A test case with more info in the sources is attached. >>> Apart from SA it does have no external dependencies. >>> >>> >>> The error is that you are calling inspect() on something that does not >>> support inspection. There's no object in util._collections called "result" >>> so I don't know what that is. >>> >>> >> >>> Also I don't know what a "7z" file is. Can you please send a single, >>> very succinct .py file with a simple illustration of your error? Thanks. >>> >>> >>> >>> Thank you, >>> >>> Dirk >>> >>> -- >>> 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/d/optout> >>> https://groups.google.com/d/optout. >>> >>> >>> -- >> 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/d/optout. >> >> >> -- > 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] <javascript:>. > To post to this group, send email to [email protected] > <javascript:>. > Visit this group at http://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/d/optout. > > > -- 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/d/optout.
