[project]
name = "nhs-waiting-lists"
version = "0.1.2"
description = "This is a simple wrapper for working with the NHS referral-to-treatment dataset."
requires-python = ">=3.11"
readme = "README.md"
authors = [
    { name = "Tom Hodder", email = "tom@limepepper.co.uk" }
]
dependencies = [
    "alembic>=1.17.0",
    "bs4>=0.0.2",
    "great-tables>=0.20.0",
    "ipython-sql>=0.5.0",
    "jupyterlab-night>=0.5.2",
    "lifelines>=0.30.0",
    "matplotlib>=3.10.7",
    "notebook>=7.4.7",
    "pandas-datareader>=0.10.0",
    "pandas>=2.3.3",
    "plotly>=6.5.0",
    "plotnine>=0.15.0",
    "pydantic-settings>=2.11.0",
    "reportlab>=4.4.5",
    "scrapy>=2.13.3",
    "sqlalchemy>=2.0.44",
    "typer==0.20.0",
    "seaborn>=0.13.2",
]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.metadata]
allow-direct-references = true

[tool.hatch.build.targets.sdist]
include = [
    "/src",
    "/tests",
    "/pyproject.toml",
    "/README.md",
]

[tool.hatch.build.targets.wheel]
packages = ["src/nhs_waiting_lists"]

[dependency-groups]
dev = [
    "hatchling>=1.27.0",
    "black>=25.9.0",
    "scipy-stubs==1.16.2.3",
    "isort>=6.0.1",
    "ruff>=0.14.0",
    "mypy>=1.8.0",
    "black>=25.1.0",
    "pytest>=8.3.5",
    "kagglehub>=0.3.13",
    "alembic>=1.17.0",
    "sqlacodegen>=3.0.0",
    "playwright>=1.56.0",
    "tabulate>=0.9.0",
    "polars>=1.34.0",
    "pandas-stubs~=2.3.3",
    "black>=25.9.0",
]
notebook = [
    "jupyter>=1.1.1",
    "jupyterlab>=4.4.9",
    "notebook>=7.4.7",
    "jupyterlab-quarto>=0.3.5",
    "nbconvert[qtpdf,webpdf]>=7.16.6",
]
xlsx = [
    "xlrd>=2.0.2",
    "openpyxl>=3.1.5",
]

[project.scripts]
nhsctl = "nhs_waiting_lists.run_cli:run_cli"

[tool.alembic]

script_location = "%(here)s/migrations"
prepend_sys_path = [
    "."
]

[tool.pytest.ini_options]
addopts = "-ra -q --strict-markers"
testpaths = ["tests"]
