d582f15681
- 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.
60 lines
1.2 KiB
TOML
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/"]
|