[project] name = "foraldraledig-backend" version = "0.1.0" description = "Backend for Föräldraledigplannerare — Swedish parental-leave planner" readme = "README.md" requires-python = ">=3.14" dependencies = [ "fastapi>=0.115", "uvicorn[standard]>=0.34", "pydantic>=2.9", "pydantic[email]>=2.9", "pydantic-settings>=2.5", "aiosqlite>=0.20", # Auth "argon2-cffi>=23.1", "PyJWT>=2.9", # Migrations "alembic>=1.14", "greenlet>=3.1", # required for alembic async support # Rate limiting "slowapi>=0.1.9", # Headless browser scraper (optional — install Chromium separately: playwright install chromium) "playwright>=1.47", # Tips engine "holidays>=0.62", "python-dateutil>=2.9", ] [project.optional-dependencies] postgres = [ "asyncpg>=0.30", ] [dependency-groups] dev = [ "pytest>=8.3", "pytest-asyncio>=0.24", "pytest-cov>=5.0", "httpx>=0.27", "ruff>=0.6", ] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] addopts = "--cov=app --cov-report=term-missing" [tool.ruff] line-length = 100 target-version = "py314" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["app"]