Skip to main content

fastapi-filters

Project description

logo

license test codecov downloads pypi black

Introduction

fastapi-filters is a library that provides filtering/sorting feature for FastAPI applications.


Installation

pip install fastapi-filters

Quickstart

To create filters you need either define them manually using create_filters function or automatically generate them based on model using create_filters_from_model function.

from typing import List

from fastapi import FastAPI, Depends
from pydantic import BaseModel, Field

# import all you need from fastapi-filters
from fastapi_filters import create_filters, create_filters_from_model, FilterValues

app = FastAPI()  # create FastAPI app


class UserOut(BaseModel):  # define your model
    name: str = Field(..., example="Steve")
    surname: str = Field(..., example="Rogers")
    age: int = Field(..., example=102)


@app.get("/users")
async def get_users_manual_filters(
    # manually define filters
    filters: FilterValues = Depends(create_filters(name=str, surname=str, age=int)),
) -> List[UserOut]:
    pass


@app.get("/users")
async def get_users_auto_filters(
    # or automatically generate filters from pydantic model
    filters: FilterValues = Depends(create_filters_from_model(UserOut)),
) -> List[UserOut]:
    pass

Currently, fastapi-filters supports SQLAlchemy integration.

from fastapi_filters.ext.sqlalchemy import apply_filters


@app.get("/users")
async def get_users(
    db: AsyncSession = Depends(get_db),
    filters: FilterValues = Depends(create_filters_from_model(UserOut)),
) -> List[UserOut]:
    query = apply_filters(select(UserOut), filters)
    return (await db.scalars(query)).all()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_filters-0.3.2.tar.gz (169.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastapi_filters-0.3.2-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_filters-0.3.2.tar.gz.

File metadata

  • Download URL: fastapi_filters-0.3.2.tar.gz
  • Upload date:
  • Size: 169.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fastapi_filters-0.3.2.tar.gz
Algorithm Hash digest
SHA256 9cbff40559c55b5851f2b61d25087c8ca2edc7fe16d9a066e0b183021860857c
MD5 58b5ef90caf1cbf2004dd1e7dd2cd543
BLAKE2b-256 15d24e4684d9467ae54fbe2a05a06f926878e158fe8ad57f3aedc3fadaac92a8

See more details on using hashes here.

File details

Details for the file fastapi_filters-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: fastapi_filters-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 21.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fastapi_filters-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e1bbdd50177393ef0c6af7d7da53f01630f3384f4fc75961bc3cb128ac273c65
MD5 99835009f51c5bb2ca30cc4ae9543f1e
BLAKE2b-256 0a7c04fb916baefa37d2a33a250dd47fc7d0916fe5ea910e30405832df6cb44d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page