Hi guys.
I got this code example:
https://gist.github.com/aCLr/ff9462b634031ee6bccbead8d913c41f.
Here I make custom `Session` and custom `Query`. As you see, `Session` has
several binds.
Also, you can see that there are two functions:
`assert_got_correct_objects_with_remove` and
`assert_got_cached_objects_without_remove`.
The first checks that we got correct results if `Session.remove` called.
The second checks, that we got incorrect results if `Session.remove` not
called.
I understand, that behavior is correct: we don't remove session - so, we
got same result from "cache-like"
`sqlalchemy.orm.loading._instance_processor.session_identity_map`.
I want to avoid that mechanism and don't want to use `session_identity_map`
for different binds. In ideal, bind should be used as part of key for
`session_identity_map`, but I guess, that it is not possible.
Another way, acceptable for me: disable this mechanism. But I do not found
ways to achieve this.
And the third option: construct instances manually. Looks like I should
copy code from `loading` module and add that method to `CustomSession`:
def instances(self, cursor, __context=None):
context = __context
if context is None:
context = QueryContext(self)
return self._custom_instances(self, cursor, context)
def custom_instances(query, cursor, context):
"""copied from `loading.instances` code with disabled
`session_identity_map`"""
The third way is the most ugly and I want to avoid it.
Could you help me with my hard choice and, maybe, suggest any other ways
and options? :)
Thank you.
--
SQLAlchemy -
The Python SQL Toolkit and Object Relational Mapper
http://www.sqlalchemy.org/
To post example code, please provide an MCVE: Minimal, Complete, and Verifiable
Example. See http://stackoverflow.com/help/mcve for a full description.
---
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 https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.