линтеры python перенастроены: mypy заменён на pyrefly
- набор правил ruff расширен по канону rp-local-env (ANN, PTH, C90, G и др.), в lefthook добавлен job ruff check --fix - код приведён под новые правила: логирование через %s вместо f-строк, os.path заменён на pathlib, run_backup_process и initialize разбиты на функции по порогу цикломатической сложности
This commit is contained in:
+38
-1
@@ -9,10 +9,47 @@ dependencies = [
|
||||
"ansible-lint>=25.12.2",
|
||||
"croniter>=6.0.0",
|
||||
"invoke>=2.2.1",
|
||||
"mypy>=1.19.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__/**"]
|
||||
|
||||
Reference in New Issue
Block a user