1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
ci:
autofix_prs: false
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: check-added-large-files
# Prevent giant files from being committed.
- id: check-ast
# Simply check whether files parse as valid python.
- id: check-case-conflict
# Check for files with names that would conflict on a case-insensitive
# filesystem like MacOS HFS+ or Windows FAT.
- id: check-json
# Attempts to load all json files to verify syntax.
- id: check-merge-conflict
# Check for files that contain merge conflict strings.
- id: check-symlinks
# Checks for symlinks which do not point to anything.
- id: check-toml
# Attempts to load all TOML files to verify syntax.
- id: check-xml
# Attempts to load all xml files to verify syntax.
- id: check-yaml
# Attempts to load all yaml files to verify syntax.
- id: debug-statements
# Check for debugger imports and py37+ breakpoint() calls in python
# source.
- id: detect-private-key
# Checks for the existence of private keys.
- id: end-of-file-fixer
# Makes sure files end in a newline and only a newline.
exclude: ".*(data.*|extern.*|licenses.*|_parsetab.py)$"
# - id: fix-encoding-pragma # covered by pyupgrade
- id: trailing-whitespace
# Trims trailing whitespace.
exclude: ".*(data.*|extern.*|licenses.*|_parsetab.py|test_cds.py)$"
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.9.0
hooks:
- id: python-check-mock-methods
# Prevent common mistakes of assert mck.not_called(), assert
# mck.called_once_with(...) and mck.assert_called.
- id: rst-directive-colons
# Detect mistake of rst directive not ending with double colon.
- id: rst-inline-touching-normal
# Detect mistake of inline code touching normal text in rst.
- id: text-unicode-replacement-char
# Forbid files which have a UTF-8 Unicode replacement character.
- id: python-check-blanket-noqa
# Enforce that all noqa annotations always occur with specific codes.
- repo: https://github.com/asottile/pyupgrade
rev: v3.3.0
hooks:
- id: pyupgrade
args: ["--py38-plus"]
exclude: ".*(extern.*|_parsetab.py|_lextab.py)$"
- repo: https://github.com/asottile/yesqa
rev: v1.4.0
hooks:
- id: yesqa
- repo: https://github.com/pycqa/isort
rev: 5.10.1
hooks:
- id: isort
name: isort (python)
additional_dependencies: [toml]
- id: isort
name: isort (pyi)
types: [pyi]
additional_dependencies: [toml]
- id: isort
name: isort (cython)
types: [cython]
additional_dependencies: [toml]
- repo: https://github.com/psf/black
rev: 22.10.0
hooks:
- id: black
# We list the warnings/errors to check for here rather than in setup.cfg because
# we don't want these options to apply whenever anyone calls flake8 from the
# command-line or their code editor - in this case all warnings/errors should be
# checked for. The warnings/errors we check for here are:
# E101 - mix of tabs and spaces
# E111 - 4 spaces per indentation level
# E112 - 4 spaces per indentation level
# E113 - 4 spaces per indentation level
# E201 - whitespace after '('
# E202 - whitespace before ')'
# E27 - spaces and tabs after
# E3 - Blank line
# E502 - the backslash is redundant between brackets
# E70 - multiple statements on a line
# E9 - Runtime
# F - Flake8 Errors
# W - Whitespace
- repo: https://github.com/PyCQA/flake8
rev: 6.0.0
hooks:
- id: flake8
args:
[
"--count",
"--select",
"E10,E11,E201,E202,E27,E3,E5,E70,E722,E9,F,W",
"--ignore",
"E114,E116,E501,F403,F821,F841,W5"
]
exclude: ".*(data.*|extern.*|cextern)$"
- repo: local
hooks:
- id: changelogs-rst
name: changelog filenames
language: fail
entry: >-
changelog files must be named <sub-package>/####.(bugfix|feature|api).rst
or ####.other.rst (in the root directory only)
exclude: >-
^docs/changes/[\w\.]+/(\d+\.(bugfix|feature|api)(\.\d)?.rst|.gitkeep)
files: ^docs/changes/[\w\.]+/
- id: changelogs-rst-other
name: changelog filenames for other category
language: fail
entry: >-
only "other" changelog files must be placed in the root directory
exclude: >-
^docs/changes/(\d+\.other.rst|README.rst|template.rst)
files: ^docs/changes/\d+.\w+.rst
|