e43428c1a2
Gitea Actions CI / detect (push) Successful in 3s
Gitea Actions CI / Compose & nginx validation (push) Failing after 20s
Gitea Actions CI / Frontend (lint / type / test / build) (push) Failing after 24s
Gitea Actions CI / Backend (lint / type / test / build) (push) Failing after 1m34s
63 lines
1.4 KiB
TOML
63 lines
1.4 KiB
TOML
[project]
|
|
name = "finance-backend"
|
|
version = "0.1.0"
|
|
description = "FastAPI backend for the personal zero-based budget tracker MVP"
|
|
requires-python = ">=3.14,<3.15"
|
|
dependencies = [
|
|
"fastapi>=0.115",
|
|
"uvicorn[standard]>=0.30",
|
|
"pydantic>=2.7",
|
|
"pydantic-settings>=2.3",
|
|
"email-validator>=2.1",
|
|
"sqlalchemy>=2.0.30",
|
|
"psycopg[binary]>=3.2",
|
|
"alembic>=1.13",
|
|
"celery[redis]>=5.4",
|
|
"redis>=5.0",
|
|
"argon2-cffi>=23.1",
|
|
"cryptography>=42.0",
|
|
"openpyxl>=3.1",
|
|
"defusedxml>=0.7",
|
|
"pdfplumber>=0.11",
|
|
"python-multipart>=0.0.9",
|
|
"boto3>=1.35",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"pytest>=8.2",
|
|
"httpx>=0.27",
|
|
"ruff>=0.5",
|
|
"mypy>=1.10",
|
|
"hypothesis>=6.112",
|
|
]
|
|
|
|
[tool.uv]
|
|
package = false
|
|
|
|
[tool.pytest.ini_options]
|
|
pythonpath = ["."]
|
|
testpaths = ["tests"]
|
|
filterwarnings = ["ignore::DeprecationWarning"]
|
|
addopts = "-m 'not private_fixtures'"
|
|
markers = [
|
|
"private_fixtures: real-statement private suite; run explicitly with -m private_fixtures (never in CI)",
|
|
]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py314"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "UP", "B"]
|
|
ignore = ["B008"]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.14"
|
|
ignore_missing_imports = true
|
|
check_untyped_defs = true
|
|
no_implicit_optional = true
|
|
warn_redundant_casts = true
|
|
disable_error_code = ["import-untyped"]
|
|
exclude = ["alembic/", "tests/"]
|