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.

Reply via email to