# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v5.0.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
        exclude: .benchmarks
      - id: check-added-large-files

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

  - repo: https://github.com/PyCQA/autoflake
    rev: v2.3.1
    hooks:
      - id: autoflake

  - repo: https://github.com/PyCQA/isort
    rev: 6.0.1
    hooks:
    - id: isort

  - repo: https://github.com/ambv/black
    rev: 25.1.0
    hooks:
      - id: black
        args: [--target-version=py39]

  - repo: https://github.com/pycqa/flake8
    rev: 7.1.2
    hooks:
      - id: flake8
        additional_dependencies:
          - flake8-bugbear==24.12.12
          - flake8-comprehensions==3.16.0
          - flake8-simplify==0.21.0
          - flake8-builtins==2.5.0
          - flake8-pie==0.16.0

  - repo: https://github.com/commitizen-tools/commitizen
    rev: v4.4.1
    hooks:
      - id: commitizen
      - id: commitizen-branch
        stages: [pre-push]
