pypaginate.adapters.sqlalchemy.backend
Offset pagination backends (async and sync).
Each backend counts matching rows with SELECT COUNT(*) and fetches the
requested window with OFFSET / LIMIT, returning an :class:OffsetPage whose
metadata is derived by the core. Filtering / sorting are applied by the caller
on the query before it is handed in.
SQLAlchemyBackend Objects
class SQLAlchemyBackend(Generic[ItemT])
Async offset pagination backend.
Arguments:
session- An async SQLAlchemy session.
count
async def count(query: object) -> int
Count the rows matched by query.
fetch
async def fetch(query: object, offset: int, limit: int) -> list[ItemT]
Fetch the offset / limit window of query as scalars.
paginate
async def paginate(query: object, params: OffsetParams) -> OffsetPage[ItemT]
Offset-paginate query into an :class:OffsetPage.
SyncSQLAlchemyBackend Objects
class SyncSQLAlchemyBackend(Generic[ItemT])
Sync offset pagination backend.
Arguments:
session- A synchronous SQLAlchemy session.
count
def count(query: object) -> int
Count the rows matched by query.
fetch
def fetch(query: object, offset: int, limit: int) -> list[ItemT]
Fetch the offset / limit window of query as scalars.
paginate
def paginate(query: object, params: OffsetParams) -> OffsetPage[ItemT]
Offset-paginate query into an :class:OffsetPage.