[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "planemapper"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = [
    "Pillow==12.2.0",
    "gpiozero==2.0.1",
    "Flask==3.1.3",
    "requests==2.33.1",
]

[project.scripts]
planemapper-radar = "planemapper.main:main"
planemapper-provision = "planemapper.provision:main"

[tool.setuptools.packages.find]
where = ["src"]

[tool.setuptools.package-data]
"planemapper" = ["data/airports.csv"]

[tool.ruff]
line-length = 100
target-version = "py311"
exclude = [".claude", "_bmad", "_bmad-output"]

[tool.ruff.lint]
select = ["E", "F", "I", "TID", "UP"]

[tool.ruff.lint.flake8-tidy-imports.banned-api]
"planemapper.provisioning".msg = "main.py must not import from planemapper.provisioning.*"

[tool.ruff.lint.per-file-ignores]
# All non-main modules may import from provisioning freely
"src/planemapper/main.py" = ["TID251"]
"src/planemapper/provision.py" = ["TID251"]
"src/planemapper/provisioning/*.py" = ["TID251"]
# Tests may import from provisioning to test its public API
"tests/provisioning/*.py" = ["TID251"]
"tests/conftest.py" = ["TID251"]
