[tool.black]
line-length = 120

[tool.isort]
profile = "black"

ignore_missing_imports = true
warn_unused_configs = true
no_implicit_optional = true
warn_unused_ignores = true
warn_unreachable = true
warn_redundant_casts = true
disallow_untyped_defs = true

[tool.ruff]
select = [
    "E", # pycodestyle errors
    "W", # pycodestyle warnings
    "F", # pyflakes
    "C", # flake8-comprehensions
    "B", # flake8-bugbear
    "T",
    "I",
]
ignore = [
    "E501", # line too long, handled by black
    "B008", # do not perform function calls in argument defaults
    "C901", # too complex
]

[tool.ruff.per-file-ignores]
"__init__.py" = ["F401"]
