[build-system]
requires = ["setuptools>=42.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "tetris"
version = "0.1.2"
description = "Tetris game"
authors = [{ name = "Kristofers Solo", email = "dev@kristofers.xyz" }]
readme = "README.md"
requires-python = ">=3.10"
license = { file = "LICENSE" }
dependencies = [
  "attrs==23.1.0",
  "loguru==0.7.2",
  "numpy==1.26.3",
  "pygame-ce==2.4.0",
  "toml==0.10.2",
]
keywords = ["tetris", "game", "pygame"]
classifiers = [
  "Development Status :: 3 - Alpha",
  "License :: OSI Approved :: GPLv3 License",
  "Programming Language :: Python :: 3 :: Only",
  "Programming Language :: Python :: 3.11",
  "Programming Language :: Python :: 3.12",
]

[project.urls]
Repository = "https://github.com/kristoferssolo/Tetris"

[tool.mypy]
mypy_path = "src"
check_untyped_defs = true
disallow_any_generics = true
ignore_missing_imports = true
no_implicit_optional = true
no_implicit_reexport = true
show_error_codes = true
strict_equality = true
warn_redundant_casts = true
warn_return_any = true
warn_unreachable = true
warn_unused_configs = true

[tool.ruff]
extend-select = [
  "B",
  "BLE",
  "C4",
  "ERA",
  "I",
  "ICN",
  "INP",
  "ISC",
  "N",
  "NPY",
  "PGH",
  "PIE",
  # "PTH",
  "Q",
  "RET",
  "RSE",
  "RUF",
  "S",
  "SIM",
  "T20",
  "TCH",
  "TID",
  "YTT",
]
ignore = ["E741", "E711"]
show-fixes = true
line-length = 120
indent-width = 4
target-version = "py310"


[tool.ruff.lint]
extend-select = ["I"]
preview = true
fixable = ["ALL"]

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

[tool.black]
line-length = 120
