[build-system] requires = ["setuptools>=77"] build-backend = "setuptools.build_meta" [project] name = "nato-alphabet" version = "0.1.0" description = "Console tool that spells a word with the NATO phonetic alphabet (100 Days of Code, day 26)." readme = "README.md" requires-python = ">=3.13" license = "AGPL-3.0-or-later" license-files = ["LICENSE"] authors = [{ name = "Jens Tirsvad Nielsen" }] keywords = ["nato", "phonetic-alphabet", "comprehensions", "100-days-of-code"] dependencies = [] [project.optional-dependencies] dev = [ "pytest==9.1.1", "ruff==0.17.0", "mypy==2.4.0", "import-linter==2.15", ] [project.scripts] nato-alphabet = "nato_alphabet.main:main" [tool.setuptools.packages.find] where = ["src"] [tool.setuptools.package-data] nato_alphabet = ["data/*.csv"] [tool.pytest.ini_options] testpaths = ["tests"] pythonpath = ["src"] [tool.ruff] line-length = 88 src = ["src", "tests"] extend-exclude = ["framework", ".agents", ".claude"] [tool.ruff.lint] select = ["E", "F", "I", "N", "UP", "B", "D"] [tool.ruff.lint.pydocstyle] convention = "pep257" [tool.ruff.lint.per-file-ignores] "tests/**" = ["D"] [tool.mypy] strict = true files = ["src", "tests"] mypy_path = "src" [tool.importlinter] root_package = "nato_alphabet" [[tool.importlinter.contracts]] name = "Dependencies point inward" type = "layers" layers = [ "nato_alphabet.adapters", "nato_alphabet.application", "nato_alphabet.domain", ]