Files
Hitonabi 47f7a85510 Ruff-Cleanup: ganzes MC2-Repo lint-grün + projekt-passende ruff.toml
Die Ampel-Nachruestung deckte 317/337 vorbestehende ruff-Verstoesse im ganzen Repo
auf. Aufgeraeumt:
- ruff.toml: intentionale Muster als Projekt-Politik ausgenommen (BLE001 blind-except,
  S110/S112 try-except-pass/continue, PLW1510 subprocess-best-effort, B008 FastAPI-
  Depends/File-Idiom, EXE001 Shebang, + wenige Stil-Regeln). __init__.py-Re-Exports
  geschuetzt (F401).
- ruff --fix: 128 mechanische (Import-Sortierung, PEP585/604-Annotationen, tote Imports,
  ueberfluessige noqa) auto-behoben.
- 12 echte Reste von Hand: PERF402/102, PLC3002 (Lambda->walrus), ISC004 (String-Concat
  geklammert), F841/RUF059 (ungenutzte Vars), PIE810 (startswith-Tuple), UP031 (f-string),
  UP035 (veraltete typing-Imports).
Ergebnis: 'ruff check .' = 0, 'compileall' grün. Kein Verhaltenswechsel (nur Stil/Modernisierung).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 20:53:36 +02:00

30 lines
1.5 KiB
TOML

# Lint-Politik fuer MC2 (24.07.2026, mit der Ampel-Nachruestung angelegt).
# Diese Codebasis nutzt BEWUSST best-effort-Fehlerbehandlung (blind-except,
# try/except-pass/continue) fuer Robustheit und FastAPI-Idiome (Depends()/File()
# als Argument-Defaults). Solche absichtlichen Muster sind KEINE Fehler; echte
# Probleme (unsortierte/ungenutzte Imports, veraltete Annotationen, Bug-Risiken)
# werden weiterhin geflaggt. Ruff-Default-Regelmenge minus der Ausnahmen unten.
target-version = "py310"
line-length = 120
[lint]
ignore = [
"BLE001", # blind-except — bewusstes best-effort-Muster im ganzen Stack
"S110", # try-except-pass — bewusst (best-effort, Fallback)
"S112", # try-except-continue — bewusst
"PLW1510", # subprocess ohne check= — best-effort, Rueckgabe wird selbst geprueft
"B008", # Funktionsaufruf im Argument-Default — FastAPI Depends()/File()-Idiom
"EXE001", # Shebang ohne x-Bit — Skripte laufen ueber den Interpreter
"DTZ005", # datetime.now() ohne tz — lokale Zeit ist hier gewollt
"SIM102", # verschachteltes if — Stil, nicht erzwungen
"SIM115", # open() ohne Kontextmanager — in kurzen Skripten bewusst
"SIM117", # mehrere with — Stil
"ASYNC221", # subprocess in async — bewusst (kurze, seltene Aufrufe)
"N999", # Modulname mit Bindestrich — Plugin-Konvention, nicht aenderbar
"PYI034", # non-self return type — Absicht
]
[lint.per-file-ignores]
"**/__init__.py" = ["F401"] # Re-Exports sind gewollt "ungenutzt"