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

[build-system]
requires = [
    # Needed for installing pure python packages at build time
    "installer == 0.7.0",
    # Needed for some weird reason for glib
    "packaging == 23.1",
]

[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
strict_bytes = 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'
