repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.2.0
    hooks:
      - id: "trailing-whitespace"
      - id: "check-case-conflict"
      - id: "check-merge-conflict"
      - id: "debug-statements"
      - id: "end-of-file-fixer"
      - id: "mixed-line-ending"
      - id: "detect-private-key"
      - id: "check-yaml"
      - id: "check-toml"
      - id: "check-json"

  - repo: https://github.com/psf/black
    rev: 22.10.0
    hooks:
      - id: black
        files: &files '^(aiogram|tests|examples)'

  - repo: https://github.com/pre-commit/mirrors-isort
    rev: v5.10.1
    hooks:
      - id: isort
        additional_dependencies: [ toml ]
        files: *files

  - repo: https://gitlab.com/pycqa/flake8
    rev: 3.9.2
    hooks:
      - id: flake8
        args: [ '--config=.flake8' ]
        files: *files

  - repo: https://github.com/floatingpurr/sync_with_poetry
    rev: 0.2.0
    hooks:
      - id: sync_with_poetry

  - repo: https://github.com/python-poetry/poetry
    rev: '1.2.1'
    hooks:
      - id: poetry-check
      - id: poetry-lock
        args: [ "--no-update" ]
      - id: poetry-export
        args: [ "-f",  "requirements.txt", "--without-hashes", "-o", "requirements/base.txt" ]
      - id: poetry-export
        args: [ "-f",  "requirements.txt", "--without-hashes", "-o", "requirements/docs.txt",
                "-E", "fast", "-E", "redis", "-E", "proxy", "-E", "i18n",
                "--with", "docs" ]
