[project]
requires-python = ">=3.9"

[tool.mypy]
files = 'kitty,kittens,glfw,*.py,docs/conf.py,gen'
no_implicit_optional = true
sqlite_cache = true
cache_fine_grained = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_return_any = true
warn_unreachable = true
warn_unused_configs = true
check_untyped_defs = true
disallow_untyped_defs = true
disallow_untyped_decorators = true
disallow_untyped_calls = true
disallow_incomplete_defs = true
strict = true
no_implicit_reexport = true

[tool.pylsp-mypy]
enabled = true
dmypy = true
exclude = ['kitty_tests/*']
report_progress = true

[tool.ruff]
line-length = 160

[tool.ruff.lint]
select = ['E', 'F', 'I', 'RUF100']

[tool.ruff.lint.per-file-ignores]
"kitty/options/types.py" = ["E501"]
"kitty/options/parse.py" = ["E501"]

[tool.ruff.lint.isort]
detect-same-package = true

[tool.ruff.format]
quote-style = 'single'
