.. SPDX-FileCopyrightText: 2023 cusy GmbH .. .. SPDX-License-Identifier: BSD-3-Clause pre-commit-Skripte ================== `pre-commit-hooks `_ Das pre-commit-Framework bringt bereits eine ganze Reihe von Skripten mit, :abbr:`u.a. (unter anderem)`: ``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, :abbr:`u.a. (unter anderem)`: ``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, :abbr:`u.a. (unter anderem)`: `autopep8 `_ stellt `autopep8 `__ für das pre-commit-Framework bereit `mypy `_ stellt `mypy `__ bereit `pyproject-fmt `_ formattiert :file:`pyproject.toml`-Dateien `validate-pyproject `_ überprüft :file:`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: `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 .. seealso:: * `Supported hooks `_ * `Sourcegraph: file:^\.pre-commit-config\.yaml$ `_ * `Sourcegraph: file:^\.pre-commit-hooks\.yaml$ \"types: [python]\" `_