
Wer Plugins für QGIS schreibt und in das zentral QGIS Plugin Repository [1] einstellen möchte, wird es in den letzten Monaten schon bemerkt haben. Beim Hochladen wird das Plugin sofort online nach verschiedenen Kriterien automatisch überprüft. So werden Checks bzgl. der Sicherheit, der Preisgabe von Geheimnissen und der Codequalität, etc. durchgeführt. Sicherheit und Geheimniserkennung müssen natürlich 100% erfüllt werden, bei der Codequalität werden ggf. Warnungen und Hinweise zu Verbesserung angeboten. Ich begrüße diese automatische Überprüfung ausdrücklich, sie macht einerseits die Plugins sicherer, erhöht deren Qualität und hat für uns alle den Vorteil, dass ein hochgeladenes Plugin bei bestandener Prüfung sofort, also nach wenigen Minuten für alle verfügbar ist.
Natürlich habe ich den Ehrgeiz, meine #geoObserverTools mit 100% durch diese Prüfung zu bekommen. Das klappt bei den ersten beiden Prüfungen auch wunderbar, nur bei der Prüfung der Codequalität scheitere ich immer wieder, leider. Es reicht zur Freigabe, aber nicht zu den angestrebten 100%, obwohl ich auch zur Sicherheit den Code noch mal im Python Formatter [2] prüfen und ggf. bereinigen lies. Warum?
Bei der Prüfung wird je nach Zustand entweder der Fehler W503 oder der Fehler W504 angezeigt. Aus meiner Sicht widersprechen diese sich aber inhaltlich, hier ein Beispiel:
Folgender Code erzeugt die Fehlermeldung: W504 – line break after binary operator
if not (
isinstance(times, list) and
isinstance(temp, list) and
isinstance(rain, list)
):
Der umgestellte Code erzeugt die Fehlermeldung: W503 – line break before binary operator
if not (
isinstance(times, list)
and isinstance(temp, list)
and isinstance(rain, list)
):
Bisher habe ich keine Lösung gefunden, auch die KI meldet:
„In Python, W503 and W504 are Flake8 style warnings that conflict with each other regarding line breaks and binary operators (e.g., +, -, and, or). They are disabled by default, but cause issues when enabled via configuration.
W503: Warns against a line break before a binary operator.
W504: Warns against a line break after a binary operator.
Modern code styling standards recommend breaking before the operator to keep code aligned Line break occurred after a binary operator (W504). Because of the conflict, the generally accepted fix is to disable one of the warnings in your project settings Flake8 – line break before binary operator.“
Ich habe zwei Anfragen gestellt, eine in der QGIS-Developer-Liste [3], die andere als GitHub-Issue [4]. Imho kann nur eine der Prüfungen zum Erfolg führen, nicht beide zusammen. Leider kamen noch keine auflösenden Antworten. Falls Ihr eine Lösung kennt, bitte lasst uns teilhaben, gern im Kommentarbereich.
Oder sehe ich vielleicht nur den Wald vor lauter Bäumen nicht? 😉
[1] … https://plugins.qgis.org/plugins/user/geoobserver/?sort=downloads&order=desc
[2] … https://formatter.org/python-formatter
[3] … https://lists.osgeo.org/pipermail/qgis-developer/2026-June/068407.html
[4] … https://github.com/qgis/QGIS-Plugins-Website/issues/370












