pre-commit-Skripte¶
- pre-commit-hooks
Das pre-commit-Framework bringt bereits eine ganze Reihe von Skripten mit, u.a.:
check-added-large-filesverhindert, dass große Dateien übertragen werden
check-case-conflictsucht nach Dateien, die in Dateisystemen, die Groß- und Kleinschreibung nicht berücksichtigen, in Konflikt geraten würden
check-executables-have-shebangsstellt sicher, dass (nicht-binäre) ausführbare Dateien eine Shebang-Zeile haben
check-shebang-scripts-are-executablestellt sicher, dass (nicht-binäre) Dateien mit einer Shebang-Zeile ausführbar sind
check-merge-conflictsucht nach Dateien, die Merge-Conflict-Strings enthalten
check-symlinksprüft auf Symlinks, die auf nichts verweisen
destroyed-symlinkserkennt Symlinks, die in reguläre Dateien mit dem Inhalt des Pfades, auf den der Symlink verweist, geändert wurden.
no-commit-to-branchschützt Zweige vor dem Commit
- pygrep-hooks
stellt reguläre Ausdrücke für Python und reStructuredText bereit, u.a.:
python-no-log-warnsuch nach der veralteten
.warn()-Methode von Python-Loggernpython-use-type-annotationserzwingt, dass Type-Annotations anstelle von Type-Comments verwendet werden
rst-backtickserkennt die Verwendung einzelner Backticks beim Schreiben von reStructuredText
rst-directive-colonserkennt, dass reStructuredText-Direktiven nicht mit einem Doppelpunkt oder einem Leerzeichen vor dem Doppelpunkt enden
rst-inline-touching-normalerkennt, dass Inline-Code in normalem Text in reStructuredText verwendet wird
text-unicode-replacement-charverhindert 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
- pyproject-fmt
formattiert
pyproject.toml-Dateien- 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
blackPython-Code-Formattierer
black-jupyterPython-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:
nbqaführt jedes Standard-Python-Codequalitätswerkzeug auf einem Jupyter-Notebook aus
nbqa-blackführt
blackauf einem Jupyter-Notebook ausnbqa-check-astführt
check-astauf einem Jupyter-Notebook ausnbqa-flake8führt
flake8auf einem Jupyter-Notebook ausnbqa-isortführt
isortauf einem Jupyter-Notebook ausnbqa-mypyführt
mypyauf einem Jupyter-Notebook ausnbqa-pylintführt
pylintauf einem Jupyter-Notebook ausnbqa-pyupgradeführt
ppyupgradeauf einem Jupyter-Notebook ausnbqa-yapfführt
yapfauf einem Jupyter-Notebook ausnbqa-autopep8führt
autopep8auf einem Jupyter-Notebook ausnbqa-pydocstyleführt
pydocstyleauf einem Jupyter-Notebook ausnbqa-ruffführt
ruffauf einem Jupyter-Notebook aus
- blacken-docs
wendet
blackauf 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