--- # https://pre-commit.com default_install_hook_types: [commit-msg, pre-commit] default_stages: [commit, manual] fail_fast: true repos: - repo: "https://github.com/commitizen-tools/commitizen" rev: 3.7.0 hooks: - id: commitizen - id: commitizen-branch stages: - post-commit - push - repo: "https://github.com/pre-commit/pygrep-hooks" rev: v1.10.0 hooks: - id: python-check-mock-methods - id: python-no-eval - id: python-no-log-warn - id: python-use-type-annotations - id: rst-backticks - id: rst-directive-colons - id: rst-inline-touching-normal - id: text-unicode-replacement-char - repo: "https://github.com/pre-commit/pre-commit-hooks" rev: v4.4.0 hooks: - id: check-added-large-files - id: check-ast - id: check-builtin-literals - id: check-case-conflict - id: check-docstring-first - id: check-json exclude: .devcontainer/|.vscode/ - id: check-merge-conflict - id: check-shebang-scripts-are-executable - id: check-symlinks - id: check-toml exclude: broken_config_file\.toml - id: check-vcs-permalinks - id: check-xml - id: check-yaml - id: debug-statements - id: detect-private-key - id: fix-byte-order-marker - id: mixed-line-ending - id: trailing-whitespace types: [python] args: [--markdown-linebreak-ext=md] - id: end-of-file-fixer types: [python] - repo: "https://github.com/adrienverge/yamllint.git" rev: v1.32.0 hooks: - id: yamllint files: ^.*\.(yaml|yml)$ entry: yamllint --strict --config-file .yamllint.yml - repo: "https://github.com/charliermarsh/ruff-pre-commit" rev: "v0.0.286" hooks: - id: ruff args: ["--extend-ignore", "I001,D301,D401"] exclude: tests/ - repo: "https://github.com/jendrikseipp/vulture" rev: "v2.9.1" hooks: - id: vulture - repo: "https://github.com/crate-ci/typos" rev: "v1.16.8" hooks: - id: typos - repo: local hooks: # This calls a custom pre-commit script. # Disable if you don't have it. - id: stopwords name: stopwords entry: bash -c '~/bin/git-stopwords ${PWD}/"$@"' language: system pass_filenames: true types: [text] - id: black name: black entry: black require_serial: true language: system types: [python] - id: shellcheck name: shellcheck entry: shellcheck --check-sourced --severity=warning language: system types: [shell] - id: poetry-check name: poetry check entry: poetry check language: system files: pyproject.toml pass_filenames: false - id: interrogate name: interrogate check entry: interrogate -c pyproject.toml src/ language: system types: [python] pass_filenames: false - id: mypy name: mypy entry: mypy --config-file pyproject.toml exclude: tests/ language: system types: [python] - id: pytest name: pytest entry: poe test language: system pass_filenames: false files: | (?x)^( src/| tests/| poetry\.lock| pyproject\.toml )