-   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