pypaginate.adapters.sqlalchemy
SQLAlchemy backends for pagination, filtering, sorting, and search.
Submodules
- pypaginate.adapters.sqlalchemy.backend
- pypaginate.adapters.sqlalchemy.columns
- pypaginate.adapters.sqlalchemy.cursor
- pypaginate.adapters.sqlalchemy.filters
- pypaginate.adapters.sqlalchemy.keyset
- pypaginate.adapters.sqlalchemy.search
- pypaginate.adapters.sqlalchemy.sorting
- pypaginate.adapters.sqlalchemy.types
Classes
Async offset pagination backend for SQLAlchemy. |
|
Async cursor/keyset pagination backend. |
|
Translates FilterSpec to SQLAlchemy WHERE clauses. |
|
Translates SearchSpec to SQLAlchemy ILIKE clauses. |
|
Translates SortSpec to SQLAlchemy ORDER BY clauses. |
|
Sync offset pagination backend for SQLAlchemy. |
|
Sync cursor/keyset pagination backend. |
Package Contents
- class pypaginate.adapters.sqlalchemy.SQLAlchemyBackend(session: sqlalchemy.ext.asyncio.AsyncSession, *, count_query: object | None = None, unique: bool = False)
Bases:
Generic[ItemT]Async offset pagination backend for SQLAlchemy.
Satisfies
PaginationBackend[ItemT]protocol.- Parameters:
session – An async SQLAlchemy session.
- class pypaginate.adapters.sqlalchemy.SQLAlchemyCursorBackend(session: sqlalchemy.ext.asyncio.AsyncSession)
Bases:
Generic[ItemT]Async cursor/keyset pagination backend.
Satisfies
CursorBackend[ItemT]protocol.- Parameters:
session – An async SQLAlchemy session.
- async fetch_page(query: sqlalchemy.sql.Select[Any], *, limit: int, after: str | None = None, before: str | None = None) tuple[list[ItemT], str | None, str | None]
Fetch a keyset-paginated page.
- Parameters:
query – A SQLAlchemy Select with ORDER BY.
limit – Maximum items per page.
after – Cursor for the next page.
before – Cursor for the previous page.
- Returns:
Tuple of (items, next_cursor, prev_cursor).
- class pypaginate.adapters.sqlalchemy.SQLAlchemyFilterBackend
Translates FilterSpec to SQLAlchemy WHERE clauses.
Satisfies
FilterBackendprotocol.- apply_filters(query: object, filters: collections.abc.Sequence[pypaginate.domain.specs.FilterSpec]) object
Apply filter specs to a SQLAlchemy Select.
- Parameters:
query – A SQLAlchemy Select statement.
filters – Filter specifications to apply.
- Returns:
Modified Select with WHERE clauses.
- class pypaginate.adapters.sqlalchemy.SQLAlchemySearchBackend
Translates SearchSpec to SQLAlchemy ILIKE clauses.
Satisfies
SearchBackendprotocol. Tokenizes the query and matches each token against all specified fields.- static apply_search(query: object, spec: pypaginate.domain.specs.SearchSpec) object
Apply a search spec to a SQLAlchemy Select.
- Parameters:
query – A SQLAlchemy Select statement.
spec – Search specification with query and fields.
- Returns:
Modified Select with WHERE clauses for search.
- class pypaginate.adapters.sqlalchemy.SQLAlchemySortBackend
Translates SortSpec to SQLAlchemy ORDER BY clauses.
Satisfies
SortBackendprotocol.- static apply_sorting(query: object, sorting: collections.abc.Sequence[pypaginate.domain.specs.SortSpec]) object
Apply sort specs to a SQLAlchemy Select.
- Parameters:
query – A SQLAlchemy Select statement.
sorting – Sort specifications (applied in order).
- Returns:
Modified Select with ORDER BY clauses.
- class pypaginate.adapters.sqlalchemy.SyncSQLAlchemyBackend(session: sqlalchemy.orm.Session, *, count_query: object | None = None, unique: bool = False)
Bases:
Generic[ItemT]Sync offset pagination backend for SQLAlchemy.
Satisfies
SyncPaginationBackend[ItemT]protocol.- Parameters:
session – A synchronous SQLAlchemy session.
- class pypaginate.adapters.sqlalchemy.SyncSQLAlchemyCursorBackend(session: sqlalchemy.orm.Session)
Bases:
Generic[ItemT]Sync cursor/keyset pagination backend.
Satisfies cursor backend contract for synchronous sessions.
- Parameters:
session – A synchronous SQLAlchemy session.
- fetch_page(query: sqlalchemy.sql.Select[Any], *, limit: int, after: str | None = None, before: str | None = None) tuple[list[ItemT], str | None, str | None]
Fetch a keyset-paginated page.
- Parameters:
query – A SQLAlchemy Select with ORDER BY.
limit – Maximum items per page.
after – Cursor for the next page.
before – Cursor for the previous page.
- Returns:
Tuple of (items, next_cursor, prev_cursor).