This commit is contained in:
Konsta Vesterinen
2014-05-06 14:51:48 +03:00
parent c3e1774019
commit 340c14e0b2
3 changed files with 81 additions and 60 deletions

View File

@@ -59,7 +59,7 @@ LocaleType
IPAddressType
^^^^^^^^^^^^^
.. module:: sqlalchemy_utils.types.ip_addresss
.. module:: sqlalchemy_utils.types.ip_address
.. autoclass:: IPAddressType

View File

@@ -4,7 +4,10 @@ Utility classes
QueryChain
----------
.. module:: sqlalchemy_utils.query_chain
.. automodule:: sqlalchemy_utils.query_chain
API
^^^
.. autoclass:: QueryChain
:members:

View File

@@ -1,21 +1,28 @@
from copy import copy
class QueryChain(object):
"""
QueryChain can be used as a wrapper for sequence of queries.
QueryChain is a wrapper for sequence of queries.
Features:
* Easy iteration for sequence of queries
* Limit and offset which are smartly applied to all queries
* Limit and offset which are applied to all queries in the chain
* Smart __getitem__ support
:param queries: A sequence of SQLAlchemy Query objects
:param limit: Similar to normal query limit this parameter can be used for
limiting the number of results for the whole query chain.
:param offset: Similar to normal query offset this parameter can be used
for offsetting the query chain as a whole.
Initialization
^^^^^^^^^^^^^^
QueryChain takes iterable of queries as first argument. Additionally limit and
offset parameters can be given
::
chain = QueryChain([session.query(User), session.query(Article)])
chain = QueryChain(
[session.query(User), session.query(Article)],
limit=4
)
Simple iteration
@@ -66,8 +73,19 @@ class QueryChain(object):
)
chain[3:6] # New QueryChain with offset=3 and limit=6
"""
from copy import copy
class QueryChain(object):
"""
QueryChain can be used as a wrapper for sequence of queries.
:param queries: A sequence of SQLAlchemy Query objects
:param limit: Similar to normal query limit this parameter can be used for
limiting the number of results for the whole query chain.
:param offset: Similar to normal query offset this parameter can be used
for offsetting the query chain as a whole.
.. versionadded: 0.26.0
"""