default_stages: [commit]
repos:

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

- 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-toml
  - id: check-yaml
  - id: debug-statements
  - id: destroyed-symlinks
  - id: end-of-file-fixer
    stages: [commit]
  - id: fix-byte-order-marker
  - id: fix-encoding-pragma
    args: [--remove]
  - id: mixed-line-ending
    args: [--fix=lf]
  - id: trailing-whitespace
    exclude_types: [markdown, plain-text]
    stages: [commit]

- 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
    args: [--min-size=1]
    exclude: setup\.py
  - 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.8.4
  hooks:
  - id: unimport
    args: [--remove, --exclude=types.py|__init__.py]
    stages: [commit, manual]

- repo: https://github.com/timothycrosley/isort
  rev: 5.7.0
  hooks:
  - id: isort
    types: [python]
    stages: [commit, manual]

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

- repo: https://gitlab.com/pycqa/flake8
  rev: 3.8.3
  hooks:
  - id: flake8
    args: ["--config=setup.cfg"]
    additional_dependencies:
    - flake8-bugbear
    - flake8-docstrings
    - flake8-print
    - flake8-requirements
    - flake8-return
    - flake8-sfs
    - flake8-tabs

- repo: https://github.com/pre-commit/mirrors-mypy
  rev: v0.910
  hooks:
  - id: mypy
    args: [--config=setup.cfg]
    additional_dependencies: [anyio, trio-typing]
    exclude: setup\.py|test_.*
