# 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


ci:
  autoupdate_commit_msg: "chore(deps): update pre-commit hooks"
  autofix_commit_msg: "style: pre-commit fixes"
  autoupdate_schedule: monthly

# third-party content
exclude: ^tools/JoinPaths.cmake$

repos:
# Standard hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
  rev: "v4.4.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: "v3.3.1"
  hooks:
  - id: pyupgrade
    args: [--py36-plus]

# Nicely sort includes
- repo: https://github.com/PyCQA/isort
  rev: "5.11.4"
  hooks:
  - id: isort

# Black, the code formatter, natively supports pre-commit
- repo: https://github.com/psf/black
  rev: "22.12.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.10.0 # keep in sync with black hook

# Changes tabs to spaces
- repo: https://github.com/Lucas-C/pre-commit-hooks
  rev: "v1.3.1"
  hooks:
  - id: remove-tabs

- repo: https://github.com/sirosen/texthooks
  rev: "0.4.0"
  hooks:
  - id: fix-ligatures
  - id: fix-smartquotes

# Autoremoves unused imports
- repo: https://github.com/hadialqattan/pycln
  rev: "v2.1.2"
  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.4.0"
  hooks:
  - id: yesqa
    additional_dependencies: &flake8_dependencies
      - flake8-bugbear
      - pep8-naming

# Flake8 also supports pre-commit natively (same author)
- repo: https://github.com/PyCQA/flake8
  rev: "6.0.0"
  hooks:
  - id: flake8
    exclude: ^(docs/.*|tools/.*)$
    additional_dependencies: *flake8_dependencies

# PyLint has native support - not always usable, but works for us
- repo: https://github.com/PyCQA/pylint
  rev: "v2.15.9"
  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.991"
  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.49"
  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
# Use tools/codespell_ignore_lines_from_errors.py
# to rebuild .codespell-ignore-lines
- repo: https://github.com/codespell-project/codespell
  rev: "v2.2.2"
  hooks:
  - id: codespell
    exclude: ".supp$"
    args: ["-x", ".codespell-ignore-lines"]

# Check for common shell mistakes
- repo: https://github.com/shellcheck-py/shellcheck-py
  rev: "v0.9.0.2"
  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: "v15.0.6"
  hooks:
  - id: clang-format
    types_or: [c++, c, cuda]
