[tool.poetry] name = "hmrc-sync" version = "0.1.0" description = "Pulls annual PAYE/NI from HMRC Individual Tax API v1.1 to reconcile against payslip-ingest" authors = ["Viktor Barzin "] readme = "README.md" packages = [{ include = "hmrc_sync" }] [tool.poetry.dependencies] python = ">=3.12,<3.13" fastapi = "^0.115" uvicorn = "^0.32" httpx = "^0.27" pydantic = "^2.9" sqlalchemy = { extras = ["asyncio"], version = "^2.0" } asyncpg = "^0.29" alembic = "^1.13" click = "^8.1" prometheus-fastapi-instrumentator = "^7.0" hvac = "^2.3" [tool.poetry.group.dev.dependencies] pytest = "^8.3" pytest-asyncio = "^0.23" mypy = "^1.11" ruff = "^0.6" yapf = "^0.43" respx = "^0.21" aiosqlite = "^0.20" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] [tool.mypy] python_version = "3.12" strict = true files = ["hmrc_sync", "tests"] [tool.ruff] line-length = 100 target-version = "py312" [tool.ruff.lint] select = ["E", "F", "W", "I", "UP", "B", "SIM", "RUF"] [tool.yapf] based_on_style = "pep8" column_limit = 100