Hi everyone!

I've subclassed Query so that filter_by() method checks a custom cache 
backend before querying. The cache backend is a cache of objects, not 
queries. So first I get a list of IDs from the database, then look up the 
objects in my cache by ID. It works wonderfully except that what I end up 
with a list of objects, and the filter_by() method must return self so that 
the query can do method chaining. Where do I make the query's internal list 
of results equal to the objects received from my cache? Here's where I'm at,

class CacheQuery(BaseQuery):
    def filter_by(self, **kwargs):
        ids = 
self.session.query(self._primary_entity.type.id).filter_by(**kwargs)
        flat_ids = [item[0] for item in ids.all()]

        results = [get_from_cache(self.session, self._primary_entity.type, 
id) for id in flat_ids]
        # what to do with results?
        return self

-- 
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/groups/opt_out.

Reply via email to