Files
openclaw-mission-control/backend/pyproject.toml
2026-02-10 16:05:49 +05:30

76 lines
1.7 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.128.6",
"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",
]
[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