Files
finance/backend/pyproject.toml
T
k1nq d582f15681 feat: add tests for import polling, login page, money utilities, and query keys
- Implemented tests for import polling functionality, ensuring correct behavior for active and terminal import statuses.
- Created tests for the login page, validating user interactions and error handling.
- Added unit tests for money utility functions, covering parsing, formatting, and summation of monetary values.
- Developed tests for query keys, ensuring proper scoping and invalidation roots.

chore: setup testing environment and configuration

- Added setup file for testing with Vitest and Testing Library.
- Configured TypeScript and Vite for the frontend project.
- Created Docker and Nginx configurations for local development and production environments.
- Established a PostgreSQL initialization script for setting up application roles.

docs: add README and environment configuration for infra

- Included README for the infra directory, detailing local development setup and service descriptions.
- Created an example environment configuration file for local development with placeholders for sensitive information.
2026-09-14 09:26:33 +05:00

60 lines
1.2 KiB
TOML

[project]
name = "finance-backend"
version = "0.1.0"
description = "FastAPI backend for the personal zero-based budget tracker MVP"
requires-python = ">=3.12"
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",
"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"]
[tool.ruff]
line-length = 100
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"]
ignore = ["B008"]
[tool.mypy]
python_version = "3.12"
ignore_missing_imports = true
check_untyped_defs = true
no_implicit_optional = true
warn_redundant_casts = true
disable_error_code = ["import-untyped"]
exclude = ["alembic/", "tests/"]