pypaginate.engine.pipeline

Pipelines — compose filter, sort, search, then paginate.

Separate sync and async pipelines for type safety. Each applies optional specs before delegating to its paginator.

Classes

AsyncPipeline

Async: filter -> sort -> search -> paginate.

SyncPipeline

Sync: filter -> sort -> search -> paginate.

Module Contents

class pypaginate.engine.pipeline.AsyncPipeline(paginator: pypaginate.engine.paginator.AsyncPaginator[ItemT], *, filter_backend: pypaginate.domain.protocols.FilterBackend | None = None, sort_backend: pypaginate.domain.protocols.SortBackend | None = None, search_backend: pypaginate.domain.protocols.SearchBackend | None = None)

Bases: Generic[ItemT]

Async: filter -> sort -> search -> paginate.

async execute(query: object, params: pypaginate.domain.params.OffsetParams, *, filters: collections.abc.Sequence[pypaginate.domain.specs.FilterSpec] = (), sorting: collections.abc.Sequence[pypaginate.domain.specs.SortSpec] = (), search: pypaginate.domain.specs.SearchSpec | None = None) Any

Apply specs then paginate asynchronously.

Parameters:
  • query – Query object.

  • params – Offset pagination parameters.

  • filters – Filter specifications.

  • sorting – Sort specifications.

  • search – Search specification.

Returns:

Paginated result with filters/sorts applied.

class pypaginate.engine.pipeline.SyncPipeline(paginator: pypaginate.engine.paginator.Paginator[ItemT], *, filter_backend: pypaginate.domain.protocols.FilterBackend | None = None, sort_backend: pypaginate.domain.protocols.SortBackend | None = None, search_backend: pypaginate.domain.protocols.SearchBackend | None = None)

Bases: Generic[ItemT]

Sync: filter -> sort -> search -> paginate.

execute(query: object, params: pypaginate.domain.params.OffsetParams, *, filters: collections.abc.Sequence[pypaginate.domain.specs.FilterSpec] = (), sorting: collections.abc.Sequence[pypaginate.domain.specs.SortSpec] = (), search: pypaginate.domain.specs.SearchSpec | None = None) Any

Apply specs then paginate synchronously.

Parameters:
  • query – Data source.

  • params – Offset pagination parameters.

  • filters – Filter specifications.

  • sorting – Sort specifications.

  • search – Search specification.

Returns:

Paginated result with filters/sorts applied.