Zum Hauptinhalt springen
ai-slop/python-repetitive-dispatchmanuelle Behebung

Repetitiver String-Dispatch.

Vier oder mehr `if`/`elif x == "..."`-Zweige, die dieselbe Variable mit String-Literalen vergleichen. Eine ausgeschriebene Dispatch-Tabelle.

Beanstandete und saubere Form.

Jedes Beispiel zeigt genau die Codeform, nach der die Regel sucht, und dann die kleinste Version, die die Absicht bewahrt, ohne Risiken zu verstecken oder Rauschen hinzuzufügen.

python-repetitive-dispatch.py
✗ Beanstandet
def handle(event):
    if event.kind == "created":
        on_created(event)
    elif event.kind == "updated":
        on_updated(event)
    elif event.kind == "deleted":
        on_deleted(event)
    elif event.kind == "archived":
        on_archived(event)
Warum das anschlägt

Deterministischer Zeilenabgleich: zählt `if`/`elif name == "literal"`-Zweige auf demselben Selektor bei gleicher Einrückung und beanstandet die Kette ab vier Zweigen.

python-repetitive-dispatch.py
✓ Sauber
HANDLERS = {
    "created": on_created,
    "updated": on_updated,
    "deleted": on_deleted,
    "archived": on_archived,
}

def handle(event):
    HANDLERS[event.kind](event)
Was sich geändert hat

Ersetze die Kette durch ein Dict von Handlern oder eine Set-Mitgliedschaftsprüfung, oder durch ein `match`-Statement, wenn sich die Zweige tatsächlich in ihrer Form unterscheiden.

Jeder neue Fall im Prompt wird zu einem weiteren `elif`. Agenten verlängern die Kette, statt eine Tabelle einzuführen, also wächst sie mit jedem Feature.

Wie diese Regel begründet ist.

Regel-ID

ai-slop/python-repetitive-dispatch

Prüfende Engine

ai-slop

Erkennungsstrategie

Deterministischer Zeilenabgleich: zählt `if`/`elif name == "literal"`-Zweige auf demselben Selektor bei gleicher Einrückung und beanstandet die Kette ab vier Zweigen.

Legitimer Code, der NICHT beanstandet wird

Ketten mit drei oder weniger Zweigen, Vergleiche mit Nicht-String-Werten und Zweige auf unterschiedlichen Selektoren werden nicht beanstandet.

Belege

Eingeführt in aislop v0.9.4 als eine von vier Python-Geschwätzigkeitsregeln, abgeleitet aus SlopCodeBench (arXiv 2603.24755).