ci:
  autofix_prs: false

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.3.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
        exclude: ^.*\.egg-info/
      - id: check-merge-conflict
      - id: check-case-conflict
      - id: check-json
      - id: check-toml
        exclude: tests/fixtures/invalid_lock/poetry\.lock
      - id: check-yaml
      - id: pretty-format-json
        args: [--autofix, --no-ensure-ascii, --no-sort-keys]
      - id: check-ast
      - id: debug-statements
      - id: check-docstring-first

  - repo: https://github.com/pre-commit/pygrep-hooks
    rev: v1.9.0
    hooks:
      - id: python-check-mock-methods
      - id: python-use-type-annotations
      - id: python-check-blanket-noqa

  - repo: https://github.com/asottile/yesqa
    rev: v1.4.0
    hooks:
      - id: yesqa
        additional_dependencies: &flake8_deps
          - flake8-annotations==2.9.0
          - flake8-broken-line==0.5.0
          - flake8-bugbear==22.7.1
          - flake8-comprehensions==3.10.0
          - flake8-eradicate==1.3.0
          - flake8-quotes==3.3.1
          - flake8-simplify==0.19.3
          - flake8-tidy-imports==4.8.0
          - flake8-type-checking==2.2.0
          - flake8-typing-imports==1.12.0
          - flake8-use-fstring==1.4
          - pep8-naming==0.13.1
          - flake8-pie==0.16.0

  - repo: https://github.com/asottile/pyupgrade
    rev: v3.2.2
    hooks:
      - id: pyupgrade
        args: [--py37-plus]
        exclude: ^(install|get)-poetry.py$

  - repo: https://github.com/hadialqattan/pycln
    rev: v2.1.2
    hooks:
      - id: pycln
        args: [--all]

  - repo: https://github.com/pycqa/isort
    rev: 5.10.1
    hooks:
      - id: isort
        name: "isort (python)"
        types: [python]
        args: [--add-import, from __future__ import annotations]
        exclude: |
          (?x)(
             ^(install|get)-poetry.py$
              | ^src/poetry/__init__.py$
          )
      - id: isort
        name: "isort (pyi)"
        types: [pyi]
        args: [--lines-after-imports, "-1"]

  - repo: https://github.com/psf/black
    rev: 22.10.0
    hooks:
      - id: black

  - repo: https://github.com/pycqa/flake8
    rev: 5.0.4
    hooks:
      - id: flake8
        additional_dependencies: *flake8_deps

  - repo: https://github.com/pre-commit/pre-commit
    rev: v2.20.0
    hooks:
      - id: validate_manifest
