[project]
name = "lazy-player"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
    "pygobject>=3.50.0",
]

[project.scripts]
lazy-player = "lazy_player:main"

[tool.uv]
package = true

[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"

[dependency-groups]
dev = [
    "pygobject-stubs>=2.12.0",
    "pyright>=1.1.396",
    "ruff>=0.9.10",
]

[tool.pyright]
exclude = [ ".venv" ]
venvPath = "."
venv = ".venv"
pythonVersion = "3.12"
typeCheckingMode = "strict"
reportUnknownParameterType = "none"
reportUnknownArgumentType = "none"
reportUnknownVariableType = "none"
reportUnknownMemberType = "none"
reportPrivateUsage = "none"
reportMissingTypeStubs = "warning"
reportMissingModuleSource = "none"
reportUnusedImport = "warning"
reportIncompatibleVariableOverride = "none"
reportDeprecated = "none"

[tool.ruff]
extend-exclude = [
  "*/migrations",
  "tests",
  "typings",
  ".aider*",
  ".env",
  ".idea",
  ".pytest_cache"
]

line-length = 100
indent-width = 4

target-version = "py312"

[tool.ruff.lint]
select = ["E", "F", "W", "I"]

# unused-import (F401) - we use pyright for more precise info
ignore = ["F401"]

# Allow fix for all enabled rules (when `--fix`) is provided.
fixable = ["ALL"]
unfixable = []

# Allow unused variables when underscore-prefixed.
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"

[tool.ruff.lint.isort]
required-imports = ["from __future__ import annotations"]

[tool.ruff.format]
preview = true
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"