repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v5.0.0
    hooks:
      - id: check-ast
      - id: check-builtin-literals
      - id: check-yaml
      - id: end-of-file-fixer
      - id: mixed-line-ending
        args:
          - --fix=lf
        exclude: make.cmd
      - id: trailing-whitespace

  - repo: https://github.com/asottile/pyupgrade
    rev: v3.19.1
    hooks:
    -   id: pyupgrade
        args:
          - --py39-plus

  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.11.6
    hooks:
      - id: ruff
      - id: ruff-format

  - repo: https://github.com/lucas-c/pre-commit-hooks
    rev: v1.5.5
    hooks:
      - id: insert-license
        name: check license headers
        files: \.(po|py)$
        args:
          - --license-filepath
          - docs/file_header.txt

  - repo: https://github.com/pycqa/bandit
    rev: 1.8.3
    hooks:
      - id: bandit
        additional_dependencies:
          - bandit[toml]
        args:
          - --configfile=pyproject.toml

  - repo: https://github.com/pycqa/isort
    rev: 6.0.1
    hooks:
      - id: isort
        exclude: ^(docs)

  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: v1.15.0
    hooks:
      - id: mypy
        additional_dependencies:
          - types-docutils
          - types-polib
          - types-python-dateutil
          - types-setuptools

  - repo: https://github.com/tox-dev/tox-ini-fmt
    rev: '1.5.0'
    hooks:
      - id: tox-ini-fmt

  - repo: local
    hooks:
      - id: tests
        always_run: true
        entry: make check
        language: system
        name: run `make check`
        pass_filenames: false
        stages:
          - pre-push
