aboutsummaryrefslogtreecommitdiffstats
path: root/3rdparty/pybind11/.pre-commit-config.yaml
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/pybind11/.pre-commit-config.yaml')
-rw-r--r--3rdparty/pybind11/.pre-commit-config.yaml131
1 files changed, 103 insertions, 28 deletions
diff --git a/3rdparty/pybind11/.pre-commit-config.yaml b/3rdparty/pybind11/.pre-commit-config.yaml
index 85254a8a..5d794a74 100644
--- a/3rdparty/pybind11/.pre-commit-config.yaml
+++ b/3rdparty/pybind11/.pre-commit-config.yaml
@@ -12,49 +12,112 @@
#
# See https://github.com/pre-commit/pre-commit
+# third-party content
+exclude: ^tools/JoinPaths.cmake$
+
repos:
# Standard hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v3.2.0
+ 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
- - id: fix-encoding-pragma
+
+# Upgrade old Python syntax
+- repo: https://github.com/asottile/pyupgrade
+ rev: "v2.37.3"
+ 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: 20.8b1
+ rev: "22.8.0" # Keep in sync with blacken-docs
hooks:
- id: black
- # By default, this ignores pyi files, though black supports them
- types: [text]
- files: \.pyi?$
+
+# Also code format the docs
+- repo: https://github.com/asottile/blacken-docs
+ rev: "v1.12.1"
+ hooks:
+ - id: blacken-docs
+ additional_dependencies:
+ - black==22.8.0 # keep in sync with black hook
# Changes tabs to spaces
- repo: https://github.com/Lucas-C/pre-commit-hooks
- rev: v1.1.9
+ 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.1"
+ 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://gitlab.com/pycqa/flake8
- rev: 3.8.3
+- repo: https://github.com/PyCQA/flake8
+ rev: "5.0.4"
hooks:
- id: flake8
- additional_dependencies: [flake8-bugbear, pep8-naming]
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.2"
+ hooks:
+ - id: pylint
+ files: ^pybind11
# CMake formatting
- repo: https://github.com/cheshirekow/cmake-format-precommit
- rev: v0.6.13
+ rev: "v0.6.13"
hooks:
- id: cmake-format
additional_dependencies: [pyyaml]
@@ -63,38 +126,50 @@ repos:
# Check static types with mypy
- repo: https://github.com/pre-commit/mirrors-mypy
- rev: v0.790
+ rev: "v0.971"
hooks:
- id: mypy
- # The default Python type ignores .pyi files, so let's rerun if detected
- types: [text]
- files: ^pybind11.*\.pyi?$
- # Running per-file misbehaves a bit, so just run on all files, it's fast
- pass_filenames: false
+ 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.43"
+ 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]
-# The original pybind11 checks for a few C++ style items
+# 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.1"
+ 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.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
- exclude: .pre-commit-config.yaml
+ entry: PyBind|Numpy|Cmake|CCache|PyTest
+ exclude: ^\.pre-commit-config.yaml$
-- repo: local
+# Clang format the codebase automatically
+- repo: https://github.com/pre-commit/mirrors-clang-format
+ rev: "v14.0.6"
hooks:
- - id: check-style
- name: Classic check-style
- language: system
- types:
- - c++
- entry: ./tools/check-style.sh
+ - id: clang-format
+ types_or: [c++, c, cuda]