I have a few of these and generally use a variant of Simon's method where I 
wrap everything in a custom class.  I stash all the requirements/options in 
the custom class instance, then invoke a `count()` or `paginated()` method 
that builds/stashes the core query and runs `count()` or `all()` on it.

        class CustomQuery():
                _core_query = None

                @property
                def core_query(self):
                        if self._core_query is None:
                                # simon's code
                                self._core_query = XXX
                        return self._core_query

                def count(self):
                        return self.core_query.count()

                def paginated(self, offset=0, limit=None):
                        return self.core_query.offset(offset).limit(limit).
all()

-- 
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 sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to