FastAPI 0.131.0 includes Pydantic's Rust-based JSON serialization by default (PR #14962), making ORJSONResponse unnecessary. The new default serialization is 2x faster than the previous approach and eliminates the need for explicit orjson configuration. Changes: - Upgrade FastAPI from 0.130.0 to 0.131.0 - Remove orjson dependency (deprecated in 0.131.0) - Remove ORJSONResponse import and configuration - Use FastAPI's new default Pydantic-based serialization Co-authored-by: abhi1693 <5083532+abhi1693@users.noreply.github.com>
79 lines
1.8 KiB
TOML
79 lines
1.8 KiB
TOML
[tool.black]
|
|
line-length = 100
|
|
target-version = ["py312"]
|
|
extend-exclude = '(\.venv|migrations/versions)'
|
|
|
|
[tool.isort]
|
|
profile = "black"
|
|
line_length = 100
|
|
skip = [".venv", "migrations/versions"]
|
|
[project]
|
|
name = "openclaw-agency-backend"
|
|
version = "0.1.0"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"alembic==1.18.3",
|
|
"clerk-backend-api==4.2.0",
|
|
"fastapi==0.131.0",
|
|
"fastapi-pagination==0.15.10",
|
|
"jinja2==3.1.6",
|
|
"psycopg[binary]==3.3.2",
|
|
"pydantic-settings==2.12.0",
|
|
"python-dotenv==1.2.1",
|
|
"sqlalchemy[asyncio]==2.0.46",
|
|
"sqlmodel==0.0.32",
|
|
"sse-starlette==3.2.0",
|
|
"uvicorn[standard]==0.40.0",
|
|
"websockets==16.0",
|
|
"redis==6.3.0",
|
|
"rq==2.6.0",
|
|
"cryptography==45.0.7",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"aiosqlite==0.22.1",
|
|
"black==26.1.0",
|
|
"coverage[toml]==7.13.4",
|
|
"flake8==7.3.0",
|
|
"httpx==0.28.1",
|
|
"isort==7.0.0",
|
|
"mypy==1.19.1",
|
|
"pytest==9.0.2",
|
|
"pytest-asyncio==1.3.0",
|
|
"pytest-cov==7.0.0",
|
|
"ruff==0.15.0",
|
|
]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.12"
|
|
strict = true
|
|
plugins = ["pydantic.mypy"]
|
|
files = ["app", "scripts"]
|
|
mypy_path = ["typings"]
|
|
show_error_codes = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = ["tests.*"]
|
|
ignore_errors = true
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"tests/**/*.py" = ["ALL"]
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_default_fixture_loop_scope = "function"
|
|
|
|
[tool.coverage.run]
|
|
branch = true
|
|
source = ["app"]
|
|
# Migrations are generated artifacts; testing them doesn't add coverage signal.
|
|
omit = ["migrations/versions/*"]
|
|
|
|
[tool.coverage.report]
|
|
show_missing = true
|
|
skip_covered = true
|
|
# NOTE: Current baseline coverage is low; we publish coverage.xml in CI but
|
|
# don't fail the build until the test suite expands. Tighten toward 100% in
|
|
# follow-up PRs as coverage grows.
|
|
fail_under = 0
|