- набор правил ruff расширен по канону rp-local-env (ANN, PTH, C90, G и др.), в lefthook добавлен job ruff check --fix - код приведён под новые правила: логирование через %s вместо f-строк, os.path заменён на pathlib, run_backup_process и initialize разбиты на функции по порогу цикломатической сложности
56 lines
1.9 KiB
TOML
56 lines
1.9 KiB
TOML
[project]
|
|
name = "pet-project-server"
|
|
version = "0.1.0"
|
|
description = "Add your description here"
|
|
readme = "README.md"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"ansible>=13.2.0",
|
|
"ansible-lint>=25.12.2",
|
|
"croniter>=6.0.0",
|
|
"invoke>=2.2.1",
|
|
"pyrefly>=1.2.0",
|
|
"requests>=2.32.5",
|
|
"ruff>=0.15.2",
|
|
"types-croniter>=6.0.0",
|
|
"types-requests>=2.32.4.20260107",
|
|
"yamllint>=1.37.1",
|
|
]
|
|
|
|
[tool.ruff.lint]
|
|
extend-select = [
|
|
# Правила, выпавшие из набора по умолчанию в ruff 0.16, но нужные проекту:
|
|
# E402 — импорты не в начале файла; A001/A002 — теневание встроенных имён
|
|
# аргументами invoke-задач.
|
|
"E402",
|
|
"A001",
|
|
"A002",
|
|
# Полная типизация: скрипты уезжают на сервер и правятся редко,
|
|
# аннотации — единственная страховка.
|
|
"ANN",
|
|
# pathlib вместо os.path, отсутствие закомментированного кода, стиль
|
|
# pytest и ограничение цикломатической сложности.
|
|
"PTH",
|
|
"ERA",
|
|
"PT",
|
|
"C90",
|
|
# Наборы, по которым код уже чист: включены, чтобы так и оставалось.
|
|
"RET",
|
|
"N",
|
|
"Q",
|
|
"TID",
|
|
"G",
|
|
"LOG",
|
|
"FURB",
|
|
"PLC",
|
|
]
|
|
# Any в сигнатурах используется осознанно: разбор конфигов из TOML
|
|
# и параметры сторонних API без стабов типов.
|
|
ignore = ["ANN401"]
|
|
|
|
[tool.pyrefly]
|
|
# Без секции pyrefly ругается на отсутствие конфига; здесь же задаём,
|
|
# что проверять при запуске без аргументов.
|
|
project-includes = ["**/*.py"]
|
|
project-excludes = ["**/.venv/**", "**/galaxy.roles/**", "**/__pycache__/**"]
|