Files
pet-project-server/pyproject.toml
T
av 560fd2cc66 deps: ruff обновлён до 0.16, код приведён к новому набору правил
- в 0.16 расширился набор правил по умолчанию: 29 срабатываний там, где 0.15
  давал "All checks passed"
- subprocess.run без явного check (PLW1510) — проставлен check=False там, где
  код и так разбирает returncode сам
- слепые except Exception в оркестраторе бэкапов и скриптах помечены
  noqa: BLE001 с объяснением, почему перехват намеренно широкий
- EXE001 и TRY004 отключены в pyproject: бит исполняемости в репозитории
  ничего не решает, а ValueError при разборе config.toml — про содержимое
  конфига, а не про тип аргумента
- ruff format в 0.16 форматирует python внутри markdown, из-за чего
  переформатирован пример в docs/drafts/gitea-runner-on-demand.md
2026-09-06 17:33:22 +03:00

66 lines
2.7 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[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.16.6",
"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",
# Современный синтаксис: dict/list вместо typing.Dict/List, `X | None`
# вместо Optional. Те же места подсвечивает basedpyright в редакторе.
"UP",
# Наборы, по которым код уже чист: включены, чтобы так и оставалось.
"RET",
"N",
"Q",
"TID",
"G",
"LOG",
"FURB",
"PLC",
]
# Any в сигнатурах используется осознанно: разбор конфигов из TOML
# и параметры сторонних API без стабов типов.
#
# EXE001: бит исполняемости в репозитории ничего не решает — скрипты из files/
# уезжают на сервер через Ansible с явным mode 0755, а tasks.py и scripts/
# запускаются через inv и python3.
# TRY004: ValueError в скриптах — это ошибка в написанном руками конфиге
# (config.toml), а не передача не того типа в API; TypeError вводил бы в
# заблуждение.
ignore = ["ANN401", "EXE001", "TRY004"]
[tool.pyrefly]
# Без секции pyrefly ругается на отсутствие конфига; здесь же задаём,
# что проверять при запуске без аргументов.
project-includes = ["**/*.py"]
project-excludes = ["**/.venv/**", "**/galaxy.roles/**", "**/__pycache__/**"]