[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", "iso18245>=1.4.1", ] [dependency-groups] dev = [ "pytest>=8.2", "httpx2>=2.0", "ruff>=0.5", "ty>=0.0.18", "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.ty.src] include = ["app"]