INNER CODE UNIT · Python
AsyncPagination
dialoguemd/fastapi-sqla · fastapi_sqla/async_pagination.py:53
def AsyncPagination(
session_key: str = _DEFAULT_SESSION_KEY,
min_page_size: int = 10,
max_page_size: int = 100,
query_count: QueryCountDependency | None = None,
) -> PaginateDependency:
def default_dependency(
session: SqlaAsyncSession = Depends(AsyncSessionDependency(key=session_key)),
offset: int = Query(0, ge=0),
limit: int = Query(min_page_size, ge=1, le=max_page_size),
) -> AsyncPaginateSignature:
async def paginate(query: Select, scalars=True) -> Page:
total_items = await default_query_count(session, query)
return await paginate_query(
query, session, total_items, offset, limit, scalars=scalars
)
return paginate