Files
pet-project-server/pyproject.toml
T
av 7c57574723 deps: обновлены python-зависимости, ruff временно закреплён ниже 0.16
- ansible 13.2.0 -> 14.3.1 (ansible-core 2.20.1 -> 2.21.3), ansible-lint
  25.12.2 -> 26.8.0, invoke 2.2.1 -> 3.0.3, requests, croniter, yamllint,
  типы и транзитивные пакеты
- ruff оставлен на 0.15: в 0.16 расширился набор правил по умолчанию, из-за
  чего в скриптах и tasks.py появляется 29 срабатываний; обновление вынесено
  в отдельный заход вместе с правкой кода
- ansible-lint, pyrefly и yamllint на новых версиях проходят без замечаний
2026-09-06 17:28:27 +03:00

62 lines
2.5 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",
# 0.16 расширил набор правил по умолчанию (PLW, EXE, BLE, TRY, DTZ, RUF)
# и начал форматировать Python внутри markdown. Обновление отложено до
# отдельного захода с правкой кода: 29 срабатываний в скриптах и tasks.py.
"ruff>=0.15.2,<0.16",
"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 без стабов типов.
ignore = ["ANN401"]
[tool.pyrefly]
# Без секции pyrefly ругается на отсутствие конфига; здесь же задаём,
# что проверять при запуске без аргументов.
project-includes = ["**/*.py"]
project-excludes = ["**/.venv/**", "**/galaxy.roles/**", "**/__pycache__/**"]