Spaces:
Sleeping
Sleeping
# To use: | |
# | |
# pre-commit run -a | |
# | |
# Or: | |
# | |
# pre-commit install # (runs every time you commit in git) | |
# | |
# To update this file: | |
# | |
# pre-commit autoupdate | |
# | |
# See https://github.com/pre-commit/pre-commit | |
repos: | |
# Standard hooks | |
- repo: https://github.com/pre-commit/pre-commit-hooks | |
rev: "v4.3.0" | |
hooks: | |
- id: check-added-large-files | |
- id: check-case-conflict | |
- id: check-docstring-first | |
- id: check-merge-conflict | |
- id: check-symlinks | |
- id: check-toml | |
- id: check-yaml | |
- id: debug-statements | |
- id: end-of-file-fixer | |
- id: mixed-line-ending | |
- id: requirements-txt-fixer | |
- id: trailing-whitespace | |
# Upgrade old Python syntax | |
- repo: https://github.com/asottile/pyupgrade | |
rev: "v2.34.0" | |
hooks: | |
- id: pyupgrade | |
args: [--py36-plus] | |
# Nicely sort includes | |
- repo: https://github.com/PyCQA/isort | |
rev: "5.10.1" | |
hooks: | |
- id: isort | |
# Black, the code formatter, natively supports pre-commit | |
- repo: https://github.com/psf/black | |
rev: "22.3.0" # Keep in sync with blacken-docs | |
hooks: | |
- id: black | |
# Also code format the docs | |
- repo: https://github.com/asottile/blacken-docs | |
rev: "v1.12.1" | |
hooks: | |
- id: blacken-docs | |
additional_dependencies: | |
- black==22.3.0 # keep in sync with black hook | |
# Changes tabs to spaces | |
- repo: https://github.com/Lucas-C/pre-commit-hooks | |
rev: "v1.2.0" | |
hooks: | |
- id: remove-tabs | |
- repo: https://github.com/sirosen/texthooks | |
rev: "0.3.1" | |
hooks: | |
- id: fix-ligatures | |
- id: fix-smartquotes | |
# Autoremoves unused imports | |
- repo: https://github.com/hadialqattan/pycln | |
rev: "v1.3.3" | |
hooks: | |
- id: pycln | |
stages: [manual] | |
# Checking for common mistakes | |
- repo: https://github.com/pre-commit/pygrep-hooks | |
rev: "v1.9.0" | |
hooks: | |
- id: python-check-blanket-noqa | |
- id: python-check-blanket-type-ignore | |
- id: python-no-log-warn | |
- id: python-use-type-annotations | |
- id: rst-backticks | |
- id: rst-directive-colons | |
- id: rst-inline-touching-normal | |
# Automatically remove noqa that are not used | |
- repo: https://github.com/asottile/yesqa | |
rev: "v1.3.0" | |
hooks: | |
- id: yesqa | |
additional_dependencies: | |
- flake8-bugbear | |
- pep8-naming | |
# Flake8 also supports pre-commit natively (same author) | |
- repo: https://github.com/PyCQA/flake8 | |
rev: "4.0.1" | |
hooks: | |
- id: flake8 | |
exclude: ^(docs/.*|tools/.*)$ | |
additional_dependencies: | |
# PyLint has native support - not always usable, but works for us | |
- repo: https://github.com/PyCQA/pylint | |
rev: "v2.14.3" | |
hooks: | |
- id: pylint | |
files: ^pybind11 | |
# CMake formatting | |
- repo: https://github.com/cheshirekow/cmake-format-precommit | |
rev: "v0.6.13" | |
hooks: | |
- id: cmake-format | |
additional_dependencies: [pyyaml] | |
types: [file] | |
files: (\.cmake|CMakeLists.txt)(.in)?$ | |
# Check static types with mypy | |
- repo: https://github.com/pre-commit/mirrors-mypy | |
rev: "v0.961" | |
hooks: | |
- id: mypy | |
args: [] | |
exclude: ^(tests|docs)/ | |
additional_dependencies: [nox, rich] | |
# Checks the manifest for missing files (native support) | |
- repo: https://github.com/mgedmin/check-manifest | |
rev: "0.48" | |
hooks: | |
- id: check-manifest | |
# This is a slow hook, so only run this if --hook-stage manual is passed | |
stages: [manual] | |
additional_dependencies: [cmake, ninja] | |
# Check for spelling | |
- repo: https://github.com/codespell-project/codespell | |
rev: "v2.1.0" | |
hooks: | |
- id: codespell | |
exclude: ".supp$" | |
args: ["-L", "nd,ot,thist"] | |
# Check for common shell mistakes | |
- repo: https://github.com/shellcheck-py/shellcheck-py | |
rev: "v0.8.0.4" | |
hooks: | |
- id: shellcheck | |
# Disallow some common capitalization mistakes | |
- repo: local | |
hooks: | |
- id: disallow-caps | |
name: Disallow improper capitalization | |
language: pygrep | |
entry: PyBind|Numpy|Cmake|CCache|PyTest | |
exclude: ^\.pre-commit-config.yaml$ | |
# Clang format the codebase automatically | |
- repo: https://github.com/pre-commit/mirrors-clang-format | |
rev: "v14.0.5" | |
hooks: | |
- id: clang-format | |
types_or: [c++, c, cuda] | |