default_stages: [commit]
repos:

- repo: meta
  hooks:
  - id: check-hooks-apply
  - id: check-useless-excludes

- repo: https://github.com/pre-commit/pre-commit-hooks
  rev: v3.4.0
  hooks:
  - id: check-added-large-files
  - id: check-case-conflict
  - id: check-docstring-first
  - id: check-merge-conflict
  - id: check-yaml
    args: [--allow-multiple-documents]
  - id: debug-statements
  - id: destroyed-symlinks
  - id: end-of-file-fixer
    stages: [commit, manual]
  - id: fix-byte-order-marker
  - id: fix-encoding-pragma
    args: [--remove]
  - id: mixed-line-ending
    args: [--fix=lf]
    stages: [commit, manual]
  - id: trailing-whitespace
    exclude_types: [markdown, plain-text]
    stages: [commit, manual]

- repo: https://github.com/jorisroovers/gitlint
  rev: v0.15.0
  hooks:
  - id: gitlint

- repo: https://code.kodo.org.uk/dom/pre-commit-hooks
  rev: v0.6
  hooks:
  - id: check-executable-modes
  - id: check-for-squash
  - id: copyright-notice
    stages: [commit, manual]
  - id: protect-first-parent

- repo: https://github.com/pre-commit/pygrep-hooks
  rev: v1.8.0
  hooks:
  - id: python-no-eval
  - id: python-no-log-warn
  - id: python-use-type-annotations

- repo: https://github.com/hakancelik96/unimport
  rev: 0.9.2
  hooks:
  - id: unimport
    args: ["--remove", "--include=\\.pyi?$"]
    types: []
    types_or: [python, pyi]
    stages: [commit, manual]

- repo: https://github.com/pycqa/isort
  rev: 5.9.3
  hooks:
  - id: isort
    stages: [commit, manual]

- repo: https://github.com/asottile/add-trailing-comma
  rev: v2.1.0
  hooks:
  - id: add-trailing-comma
    args: [--py36-plus]
    types: []
    types_or: [python, pyi]
    stages: [commit, manual]

- repo: https://github.com/domsekotill/flakehell
  rev: 5a7ecdc
  hooks:
  - id: flakehell
    additional_dependencies:
    - flake8-bugbear
    - flake8-docstrings
    - flake8-print
    - flake8-return
    - flake8-sfs

- repo: https://github.com/pre-commit/mirrors-mypy
  rev: v0.910
  hooks:
  - id: mypy
    additional_dependencies:
    - types-orjson
    - types-requests
    - trio-typing ~=0.6
    - git+https://code.kodo.org.uk/dom/type-stubs.git#type-stubs[jsonpath,parse]
