pypaginate.adapters.fastapi.filters
Declarative filter dependencies for FastAPI.
Users define filter parameters as Pydantic models. The pipeline auto-converts via the FilterInput protocol — no .to_specs() call needed.
Example:
class UserFilters(FilterDep):
name: str | None = FilterField(None, operator="contains")
age_min: int | None = FilterField(None, field="age", operator="gte")
@app.get("/users")
async def get_users(params: OffsetDep, filters: Annotated[UserFilters, Query()]):
return pipeline.execute(data, params, filters=filters).model_dump()
Classes
Base class for declarative filter dependencies. |
Functions
|
Declare a filter field with operator metadata. |
Module Contents
- class pypaginate.adapters.fastapi.filters.FilterDep(/, **data: Any)
Bases:
pydantic.BaseModelBase class for declarative filter dependencies.
Subclass this and define fields with
FilterField(). Non-None fields are converted to FilterSpec viato_specs(). Pipeline auto-detects this via theto_specsmethod.- to_specs() list[pypaginate.domain.specs.FilterSpec]
Convert non-None fields to FilterSpec list.
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pypaginate.adapters.fastapi.filters.FilterField(default: Any = None, *, operator: str = 'eq', field: str | None = None, **kwargs: Any) Any
Declare a filter field with operator metadata.
- Parameters:
default – Default value (None means not applied).
operator – Filter operator name (eq, gte, contains, etc.).
field – Target field name (defaults to the attribute name).