Zum Hauptinhalt springen
ai-slop/python-print-debugmanuelle Behebung

Print-Debugging.

Ein `print()`-Aufruf, der in Bibliotheks- oder Anwendungscode stehen geblieben ist. Meist ein Trace aus einer Debug-Session, der mit ausgeliefert wurde.

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-print-debug.py
✗ Beanstandet
def apply_discount(cart, code):
    print("cart before", cart)
    discount = lookup_discount(code)
    print("discount", discount)
    cart.total -= discount.amount
    return cart
Warum das anschlägt

Deterministischer Zeilenabgleich: beanstandet Anweisungen, die mit `print(` beginnen, außerhalb von Kommentaren und Strings in dreifachen Anführungszeichen.

python-print-debug.py
✓ Sauber
logger = logging.getLogger(__name__)

def apply_discount(cart, code):
    discount = lookup_discount(code)
    logger.debug("applying discount %s to cart %s", code, cart.id)
    cart.total -= discount.amount
    return cart
Was sich geändert hat

Entferne den print-Aufruf oder ersetze ihn durch `logging.getLogger(__name__)` auf dem richtigen Level. Für einen echten CLI-Einstiegspunkt verschiebe ihn nach `__main__.py` oder `scripts/`, damit die Regel ihn überspringt.

Agenten debuggen, indem sie Zwischenwerte ausgeben, und vergessen, die prints zu entfernen, sobald der Code funktioniert. Die Ausgabe landet in Produktion auf stdout, unstrukturiert und ohne Level.

Wie diese Regel begründet ist.

Regel-ID

ai-slop/python-print-debug

Prüfende Engine

ai-slop

Erkennungsstrategie

Deterministischer Zeilenabgleich: beanstandet Anweisungen, die mit `print(` beginnen, außerhalb von Kommentaren und Strings in dreifachen Anführungszeichen.

Legitimer Code, der NICHT beanstandet wird

Testdateien, `__main__.py`, `manage.py`, `setup.py`, `tutorial*.py`, Dateien mit einem `if __name__ == "__main__":`-Guard sowie Dateien unter `scripts/`, `bin/`, `docs/` oder `examples/` werden nicht beanstandet.

Belege

Ausgeliefert mit den Python-Detektoren von aislop v0.8.0, in den Release Notes als generisches Print-Debugging aufgeführt.