[build-system]
requires = ["setuptools>=68"]
build-backend = "setuptools.build_meta"
[project]
name = "updater"
version = "0.1.0"
description = "A pretty Arch Linux update orchestrator"
requires-python = ">=3.11"
dependencies = ["rich>=13"]
[project.optional-dependencies]
# pyalpm is provided by the arch package `python-pyalpm` / `pyalpm`
alpm = ["pyalpm"]
[project.scripts]
updater = "updater.cli:main"
[tool.setuptools.packages.find]
include = ["updater*"]
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
# RUF100 asks for noqa comments ruff does not need. Ours are `# noqa: E402` on
# the imports that follow a sys.path insert in the tests, which ruff's default
# rule set does not cover and flake8 does. They are deliberate; keep them.
ignore = ["RUF100"]
[tool.ruff.lint.per-file-ignores]
# Test doubles carry mutable class attributes on purpose, and a fixture may
# build a naive datetime: neither is a defect in the code under test.
"tests/*" = ["RUF012", "DTZ007"]