Konventionen
Ruff als Linter und Formatter
Wir verwenden die VSCode-Extension für Ruff, um Code in der Syntax zu überprüfen und zu Formatieren.
Die Default-Settings werden über die Datei .vscode/settings.json
mit Github synchronisiert und sollten entsprechend wirksam werden.
{
"python.analysis.extraPaths": [
"./src"
],
"ruff.lineLength": 90,
"ruff.lint.enable": true,
"ruff.enable": true,
"notebook.defaultFormatter": "charliermarsh.ruff",
"[python]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "charliermarsh.ruff"
},
}
Alles, was der Linter bemängelt (also gelb oder rot unterkringelt), sollte aus Prinzip behoben werden, selbst wenn das bei geringfügigen Überschreitungen der Zeilenlänge manchmal unnötig wirkt.
Docstrings
Der Zweck, Anwendungsfälle und Parameter unserer Klassen und Funktionen sollten in Docstrings, umschlossen von drei Anführungszeichen, dokumentiert werden. Aus Kompatibilitätsgründen mit mkdocs
haben wir uns auf das Google Docstring Format geeinigt. Eine Definition und viele andere gute Hinweise für die Programmierung in Python finden sich hier.
Parameter von Funktionen und Klassen
In der Auseinandersetzung mit dem sklearn BaseEstimator hat sich gezeigt, dass die explizite Festlegung möglichter Parameter der Verwendung allgemeiner Platzhalter wie **kwargs in der __init__
-Methode vorzuziehen ist.
Der Übergabe von Paramtern mit Hilfe eines Dictionarys steht das jedoch nicht im Wege.
— André Gasch