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-merge-conflict

sucht nach Dateien, die Merge-Conflict-Strings enthalten

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.

no-commit-to-branch

schützt Zweige vor dem Commit

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-Loggern

python-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.:

autopep8

stellt autopep8 für das pre-commit-Framework bereit

mypy

stellt mypy bereit

validate-pyproject

überprüft pyproject.toml-Dateien

sp-repo-review

evaluiert bestehende Repos anhand der Scientific Python-Richtlinien.

clang-format

stellt clang-format-wheel bereit

csslint

stellt csslint bereit

scss-lint

stellt scss-lint bereit

eslint

stellt eslint bereit

fixmyjs

stellt fixmyjs bereit

prettier

stellt prettier bereit

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 aus

nbqa-check-ast

führt check-ast auf einem Jupyter-Notebook aus

nbqa-flake8

führt flake8 auf einem Jupyter-Notebook aus

nbqa-isort

führt isort auf einem Jupyter-Notebook aus

nbqa-mypy

führt mypy auf einem Jupyter-Notebook aus

nbqa-pylint

führt pylint auf einem Jupyter-Notebook aus

nbqa-pyupgrade

führt ppyupgrade auf einem Jupyter-Notebook aus

nbqa-yapf

führt yapf auf einem Jupyter-Notebook aus

nbqa-autopep8

führt autopep8 auf einem Jupyter-Notebook aus

nbqa-pydocstyle

führt pydocstyle auf einem Jupyter-Notebook aus

nbqa-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

ripsecrets

verhindert, dass geheime Schlüssel in euren Quellcode aufgenommen werden

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