fire-planner/pyproject.toml
Viktor Barzin 82d1e80ab9
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
examples: add asyncpraw dependency (constrain aiosqlite to ^0.17 for asyncpraw compat)
2026-05-28 22:03:27 +00:00

65 lines
1.6 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[tool.poetry]
name = "fire-planner"
version = "0.1.0"
description = "Risk-adjusted, tax-minimised FIRE retirement planner — Monte Carlo simulator over jurisdictions, withdrawal strategies, and UK-departure years."
authors = ["Viktor Barzin <viktorbarzin@meta.com>"]
readme = "README.md"
packages = [{ include = "fire_planner" }]
[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"
numpy = "^2.1"
pandas = "^2.2"
prometheus-fastapi-instrumentator = "^7.0"
asyncpraw = "^7.7"
[tool.poetry.group.dev.dependencies]
pytest = "^8.3"
pytest-asyncio = "^0.23"
hypothesis = "^6.115"
mypy = "^1.11"
ruff = "^0.6"
yapf = "^0.43"
respx = "^0.21"
aiosqlite = "^0.17"
[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 = ["fire_planner", "tests"]
[[tool.mypy.overrides]]
module = ["respx.*", "pandas.*"]
ignore_missing_imports = true
[tool.ruff]
line-length = 100
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "W", "I", "UP", "B", "SIM", "RUF"]
# RUF002 / RUF003 flag ambiguous unicode characters (×, —, etc.) in
# docstrings and comments — we use them intentionally for readability.
# B008 trips on `Depends(...)` in argument defaults — that's the
# idiomatic FastAPI pattern, not a bug.
ignore = ["RUF002", "RUF003", "B008"]
[tool.yapf]
based_on_style = "pep8"
column_limit = 100