pre-commit-Skripte#
- pre-commit-hooks
Das pre-commit-Framework bringt bereits eine ganze Reihe von Skripten mit, u.a.:
check-added-large-files
verhindert, dass große Dateien übertragen werden
check-case-conflict
sucht nach Dateien, die in Dateisystemen, die Groß- und Kleinschreibung nicht berücksichtigen, in Konflikt geraten würden
check-executables-have-shebangs
stellt sicher, dass (nicht-binäre) ausführbare Dateien eine Shebang-Zeile haben
check-shebang-scripts-are-executable
stellt sicher, dass (nicht-binäre) Dateien mit einer Shebang-Zeile ausführbar sind
check-symlinks
prüft auf Symlinks, die auf nichts verweisen
destroyed-symlinks
erkennt Symlinks, die in reguläre Dateien mit dem Inhalt des Pfades, auf den der Symlink verweist, geändert wurden.
- pygrep-hooks
stellt reguläre Ausdrücke für Python und reStructuredText bereit, u.a.:
python-no-log-warn
such nach der veralteten
.warn()
-Methode von Python-Loggernpython-use-type-annotations
erzwingt, dass Type-Annotations anstelle von Type-Comments verwendet werden
rst-backticks
erkennt die Verwendung einzelner Backticks beim Schreiben von reStructuredText
rst-directive-colons
erkennt, dass reStructuredText-Direktiven nicht mit einem Doppelpunkt oder einem Leerzeichen vor dem Doppelpunkt enden
rst-inline-touching-normal
erkennt, dass Inline-Code in normalem Text in reStructuredText verwendet wird
text-unicode-replacement-char
verhindert Dateien, die UTF-8-Unicode-Replacement-Character enthalten
- Linter und Formatierer
Sie werden in eigenen Repositories bereitgestellt, u.a.:
- black
für die Formatierung von Python-Code
black
Python-Code-Formattierer
black-jupyter
Python-Code-Formattierer für Jupyter-Notebooks
- Python Code Quality Authority
Codequalitätswerkzeuge (und Plugins) für die Programmiersprache Python:
- flake8
fördert die Durchsetzung eines konsistenten Python-Stils
- autoflake
entfernt unbenutzte Importe und unbenutzte Variablen aus Python-Code
- bandit
Werkzeug zum Auffinden von Sicherheitslücken in Python-Code
- pydocstyle
statisches Analysewerkzeug zur Überprüfung der Einhaltung von Python-Docstring-Konventionen.
- docformatter
formatiert docstrings gemäß PEP 257
- pylint
Python-Linter
- doc8
führt doc8 zum Linting von Dokumenten aus
- prospector
analysiert Python-Code mit Prospector
- isort
sortiert Python-Importe
- nbQA
führt isort, pyupgrade, mypy, pylint, flake8 und mehr auf Jupyter Notebooks aus:
nbqa
führt jedes Standard-Python-Codequalitätswerkzeug auf einem Jupyter-Notebook aus
nbqa-black
führt
black
auf einem Jupyter-Notebook ausnbqa-check-ast
führt
check-ast
auf einem Jupyter-Notebook ausnbqa-flake8
führt
flake8
auf einem Jupyter-Notebook ausnbqa-isort
führt
isort
auf einem Jupyter-Notebook ausnbqa-mypy
führt
mypy
auf einem Jupyter-Notebook ausnbqa-pylint
führt
pylint
auf einem Jupyter-Notebook ausnbqa-pyupgrade
führt
ppyupgrade
auf einem Jupyter-Notebook ausnbqa-yapf
führt
yapf
auf einem Jupyter-Notebook ausnbqa-autopep8
führt
autopep8
auf einem Jupyter-Notebook ausnbqa-pydocstyle
führt
pydocstyle
auf einem Jupyter-Notebook ausnbqa-ruff
führt
ruff
auf einem Jupyter-Notebook aus
- blacken-docs
wendet
black
auf Python-Codeblöcke in Dokumentationsdateien an
Misc
- pyupgrade
aktualisiert automatisch die Syntax für neuere Versionen
- reorder-python-imports
ordnet Importe in Python-Dateien neu an
- dead
erkkent toten Python-Code
- python-safety-dependencies-check
analysiert Python-Requirements auf bekannte Sicherheitsschwachstellen
- gitlint
Git commit message Linter
- nbstripout
entfernt die Ausgabe von Jupyter Notebooks
- detect-secrets
erkennt Zeichenfolgen mit hoher Entropie, bei denen es sich wahrscheinlich um Passwörter handelt
- pip-compile
kompiliert automatisch Anforderungen
- kontrolilo
Werkzeug zur Kontrolle der Lizenzen für OSS-Abhängigkeiten
Siehe auch