Files
zyrarbot/pyproject.toml
T
lgooseandClaude Bot 2a961e1a8a chore: konfiguracja ruff i poprawki wskazane przez lintera
Ruff jako linter i formatter, konfiguracja w pyproject.toml:

- reguły E, W, F, I, N, UP, B, C4, SIM, TID, BLE, RUF
- extend-immutable-calls dla fastapi.Depends, File i Query - wstrzykiwanie
  zależności opiera się na wywołaniach w wartościach domyślnych argumentów,
  więc bugbear B008 zgłaszał tam 66 fałszywych trafień
- zakaz importów względnych, aby ścieżki w pakiecie czytało się jednoznacznie
- katalog frontend wyłączony z analizy

Poprawki, które wskazał linter:

- Awaitable, Callable i AsyncIterator importowane z collections.abc zamiast
  z typing
- zbędny argument trybu w open(path, "r")
- contextlib.suppress zamiast try/except/pass przy anulowaniu zadania
- zdjęte dwie niepotrzebne dyrektywy noqa
- pięć linii przekraczających 100 znaków zawiniętych

Całość przepuszczona przez ruff format. Do .gitignore dochodzi .ruff_cache/.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 01:25:40 +02:00

49 lines
1.3 KiB
TOML

[project]
name = "zyrarbot"
version = "2.0.0"
description = "Bot muzyczny Discord z panelem webowym"
requires-python = ">=3.13"
dynamic = ["dependencies"]
[tool.setuptools.dynamic]
dependencies = { file = ["requirements.txt"] }
[tool.setuptools.packages.find]
include = ["zyrarbot*"]
[tool.ruff]
target-version = "py313"
line-length = 100
extend-exclude = ["frontend"]
[tool.ruff.lint]
select = [
"E", # pycodestyle - błędy
"W", # pycodestyle - ostrzeżenia
"F", # pyflakes
"I", # isort - kolejność importów
"N", # pep8-naming
"UP", # pyupgrade
"B", # bugbear
"C4", # comprehensions
"SIM", # uproszczenia
"TID", # zakaz importów względnych
"BLE", # przechwytywanie ogólnych wyjątków
"RUF",
]
[tool.ruff.lint.flake8-bugbear]
# Wstrzykiwanie zależności w FastAPI opiera się na wywołaniach w wartościach
# domyślnych argumentów - to idiom biblioteki, nie pomyłka.
extend-immutable-calls = ["fastapi.Depends", "fastapi.File", "fastapi.Query"]
[tool.ruff.lint.flake8-tidy-imports]
ban-relative-imports = "all"
[tool.ruff.lint.isort]
known-first-party = ["zyrarbot", "tests"]
[tool.ruff.lint.per-file-ignores]
# Testy sięgają po prywatne pola atrap i celowo łamią kilka konwencji.
"tests/*" = ["SLF001"]