[build-system]
requires = ["pbr>=6.0.0", "setuptools>=64.0.0"]
build-backend = "pbr.build"

[tool.mypy]
incremental = true
pretty = true
show_error_context = true
show_column_numbers = true
warn_unused_ignores = true
# remove gradually as progress is made
disable_error_code = "import-untyped,var-annotated,import-not-found"
# honor excludes by not following there through imports
follow_imports = "silent"
files = "neutron"
# NOTE: Gradually enable type checking for each package.
# Finally, when the whole repo is migrated this option can be deleted
# and rules applied to the whole repo.
exclude = "(?x)(^neutron/tests/$)"

[tool.ruff]
line-length = 79
target-version = "py310"

[tool.ruff.lint]
select = ["E4", "E7", "E9", "F", "S", "U"]
ignore = [
    "E741",  # Ambiguous variable name: `l`
    "S104",  # Possible binding to all interfaces
    "UP031", # Use format specifiers instead of percent format
    "UP032", # Use f-string instead of `format` call
]

[tool.ruff.lint.per-file-ignores]
"neutron/tests/*" = ["S"]
