Skip to content

FastAPI

FilterDepends

FilterDepends(
    filter_: Type[_Filter], prefix: str = "", delimiter: str = "__"
) -> _Filter

Use this as fastapi.Depends, but for filters.

PARAMETER DESCRIPTION
filter_

Filter class.

TYPE: Type[_Filter]

prefix

key prefix.

TYPE: str DEFAULT: ''

delimiter

Delimiter for prefix and nested models.

TYPE: str DEFAULT: '__'

Source code in pydantic_filters/plugins/fastapi.py
def FilterDepends(  # noqa: N802
        filter_: Type[_Filter],
        prefix: str = "",
        delimiter: str = "__",
) -> _Filter:  # pragma: no cover
    """
    Use this as fastapi.Depends, but for filters.

    Args:
        filter_: Filter class.
        prefix: key prefix.
        delimiter: Delimiter for prefix and nested models.
    """

    def _depends(**kwargs: Any) -> _Filter:  # noqa: ANN401
        """Signature of this function is replaced with Query parameters,
        and kwargs contains already valid data with
        our filters in the form of strings, which we collect into a filter object
        """
        return inflate_filter(
            filter_=filter_,
            prefix=prefix,
            delimiter=delimiter,
            data=kwargs,
        )

    _depends.__signature__ = signature(_depends).replace(
        parameters=_get_custom_params(filter_, prefix, delimiter),
    )

    return Depends(_depends)

PaginationDepends

PaginationDepends(pagination: Type[_Pagination]) -> _Pagination

Use this as fastapi.Depends, but for pagination.

PARAMETER DESCRIPTION
pagination

Pagination class

TYPE: Type[_Pagination]

Source code in pydantic_filters/plugins/fastapi.py
def PaginationDepends(pagination: Type[_Pagination]) -> _Pagination:  # pragma: no cover
    """
    Use this as fastapi.Depends, but for pagination.

    Args:
        pagination: Pagination class
    """
    return _PydanticModelAsDepends(pagination)

SortDepends

SortDepends(sort: Type[_Sort]) -> _Sort

Use this as fastapi.Depends, but for sort.

PARAMETER DESCRIPTION
sort

Sort class.

TYPE: Type[_Sort]

Source code in pydantic_filters/plugins/fastapi.py
def SortDepends(sort: Type[_Sort]) -> _Sort:  # pragma: no cover
    """
    Use this as fastapi.Depends, but for sort.

    Args:
        sort: Sort class.
    """
    return _PydanticModelAsDepends(sort)