| - id: check-added-large-files |
| name: check for added large files |
| description: prevents giant files from being committed. |
| entry: check-added-large-files |
| language: python |
| stages: [pre-commit, pre-push, manual] |
| minimum_pre_commit_version: 3.2.0 |
| - id: check-ast |
| name: check python ast |
| description: simply checks whether the files parse as valid python. |
| entry: check-ast |
| language: python |
| types: [python] |
| - id: check-byte-order-marker |
| name: 'check BOM - deprecated: use fix-byte-order-marker' |
| description: forbids files which have a utf-8 byte-order marker. |
| entry: check-byte-order-marker |
| language: python |
| types: [text] |
| - id: check-builtin-literals |
| name: check builtin type constructor use |
| description: requires literal syntax when initializing empty or zero python builtin types. |
| entry: check-builtin-literals |
| language: python |
| types: [python] |
| - id: check-case-conflict |
| name: check for case conflicts |
| description: checks for files that would conflict in case-insensitive filesystems. |
| entry: check-case-conflict |
| language: python |
| - id: check-docstring-first |
| name: check docstring is first |
| description: checks a common error of defining a docstring after code. |
| entry: check-docstring-first |
| language: python |
| types: [python] |
| - id: check-executables-have-shebangs |
| name: check that executables have shebangs |
| description: ensures that (non-binary) executables have a shebang. |
| entry: check-executables-have-shebangs |
| language: python |
| types: [text, executable] |
| stages: [pre-commit, pre-push, manual] |
| minimum_pre_commit_version: 3.2.0 |
| - id: check-illegal-windows-names |
| name: check illegal windows names |
| entry: Illegal Windows filenames detected |
| language: fail |
| files: '(?i)((^|/)(CON|PRN|AUX|NUL|COM[\d¹²³]|LPT[\d¹²³])(\.|/|$)|[<>:\"\\|?*\x00-\x1F]|/[^/]*[\.\s]/|[^/]*[\.\s]$)' |
| - id: check-json |
| name: check json |
| description: checks json files for parseable syntax. |
| entry: check-json |
| language: python |
| types: [json] |
| - id: check-shebang-scripts-are-executable |
| name: check that scripts with shebangs are executable |
| description: ensures that (non-binary) files with a shebang are executable. |
| entry: check-shebang-scripts-are-executable |
| language: python |
| types: [text] |
| stages: [pre-commit, pre-push, manual] |
| minimum_pre_commit_version: 3.2.0 |
| - id: pretty-format-json |
| name: pretty format json |
| description: sets a standard for formatting json files. |
| entry: pretty-format-json |
| language: python |
| types: [json] |
| - id: check-merge-conflict |
| name: check for merge conflicts |
| description: checks for files that contain merge conflict strings. |
| entry: check-merge-conflict |
| language: python |
| types: [text] |
| - id: check-symlinks |
| name: check for broken symlinks |
| description: checks for symlinks which do not point to anything. |
| entry: check-symlinks |
| language: python |
| types: [symlink] |
| - id: check-toml |
| name: check toml |
| description: checks toml files for parseable syntax. |
| entry: check-toml |
| language: python |
| types: [toml] |
| - id: check-vcs-permalinks |
| name: check vcs permalinks |
| description: ensures that links to vcs websites are permalinks. |
| entry: check-vcs-permalinks |
| language: python |
| types: [text] |
| - id: check-xml |
| name: check xml |
| description: checks xml files for parseable syntax. |
| entry: check-xml |
| language: python |
| types: [xml] |
| - id: check-yaml |
| name: check yaml |
| description: checks yaml files for parseable syntax. |
| entry: check-yaml |
| language: python |
| types: [yaml] |
| - id: debug-statements |
| name: debug statements (python) |
| description: checks for debugger imports and py37+ `breakpoint()` calls in python source. |
| entry: debug-statement-hook |
| language: python |
| types: [python] |
| - id: destroyed-symlinks |
| name: detect destroyed symlinks |
| description: detects symlinks which are changed to regular files with a content of a path which that symlink was pointing to. |
| entry: destroyed-symlinks |
| language: python |
| types: [file] |
| stages: [pre-commit, pre-push, manual] |
| - id: detect-aws-credentials |
| name: detect aws credentials |
| description: detects *your* aws credentials from the aws cli credentials file. |
| entry: detect-aws-credentials |
| language: python |
| types: [text] |
| - id: detect-private-key |
| name: detect private key |
| description: detects the presence of private keys. |
| entry: detect-private-key |
| language: python |
| types: [text] |
| - id: double-quote-string-fixer |
| name: fix double quoted strings |
| description: replaces double quoted strings with single quoted strings. |
| entry: double-quote-string-fixer |
| language: python |
| types: [python] |
| - id: end-of-file-fixer |
| name: fix end of files |
| description: ensures that a file is either empty, or ends with one newline. |
| entry: end-of-file-fixer |
| language: python |
| types: [text] |
| stages: [pre-commit, pre-push, manual] |
| minimum_pre_commit_version: 3.2.0 |
| - id: file-contents-sorter |
| name: file contents sorter |
| description: sorts the lines in specified files (defaults to alphabetical). you must provide list of target files as input in your .pre-commit-config.yaml file. |
| entry: file-contents-sorter |
| language: python |
| files: '^$' |
| - id: fix-byte-order-marker |
| name: fix utf-8 byte order marker |
| description: removes utf-8 byte order marker. |
| entry: fix-byte-order-marker |
| language: python |
| types: [text] |
| - id: fix-encoding-pragma |
| name: fix python encoding pragma (deprecated) |
| description: 'adds # -*- coding: utf-8 -*- to the top of python files.' |
| language: python |
| entry: fix-encoding-pragma |
| types: [python] |
| - id: forbid-new-submodules |
| name: forbid new submodules |
| description: prevents addition of new git submodules. |
| language: python |
| entry: forbid-new-submodules |
| types: [directory] |
| - id: forbid-submodules |
| name: forbid submodules |
| description: forbids any submodules in the repository |
| language: fail |
| entry: 'submodules are not allowed in this repository:' |
| types: [directory] |
| - id: mixed-line-ending |
| name: mixed line ending |
| description: replaces or checks mixed line ending. |
| entry: mixed-line-ending |
| language: python |
| types: [text] |
| - id: name-tests-test |
| name: python tests naming |
| description: verifies that test files are named correctly. |
| entry: name-tests-test |
| language: python |
| files: (^|/)tests/.+\.py$ |
| - id: no-commit-to-branch |
| name: "don't commit to branch" |
| entry: no-commit-to-branch |
| language: python |
| pass_filenames: false |
| always_run: true |
| - id: requirements-txt-fixer |
| name: fix requirements.txt |
| description: sorts entries in requirements.txt. |
| entry: requirements-txt-fixer |
| language: python |
| files: (requirements|constraints).*\.txt$ |
| - id: sort-simple-yaml |
| name: sort simple yaml files |
| description: sorts simple yaml files which consist only of top-level keys, preserving comments and blocks. |
| language: python |
| entry: sort-simple-yaml |
| files: '^$' |
| - id: trailing-whitespace |
| name: trim trailing whitespace |
| description: trims trailing whitespace. |
| entry: trailing-whitespace-fixer |
| language: python |
| types: [text] |
| stages: [pre-commit, pre-push, manual] |
| minimum_pre_commit_version: 3.2.0 |