# To enable these pre-commit hook run:
# `python3 -m pip install pre-commit` or `brew install pre-commit`
# Then in the project root directory run `pre-commit install`
# Learn more about this config here: https://pre-commit.com/

# default_language_version:
#   python: python3.10

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v6.0.0
    hooks:
      - id: check-builtin-literals
      - id: check-executables-have-shebangs
      - id: check-shebang-scripts-are-executable
      - id: check-yaml
      - id: detect-private-key
      - id: end-of-file-fixer
      - id: mixed-line-ending
      - id: requirements-txt-fixer
      - id: trailing-whitespace

  - repo: https://github.com/charliermarsh/ruff-pre-commit
    rev: v0.14.1

    hooks:
      - id: ruff-check
        # args: [ --fix, --exit-non-zero-on-fix ]

  - repo: https://github.com/psf/black
    rev: 25.9.0
    hooks:
      - id: black
        language_version: python3
        args:
          - --diff
          - --skip-string-normalization

  - repo: https://github.com/codespell-project/codespell
    rev: v2.4.1
    hooks:
      - id: codespell  # See setup.cfg for args

  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: v1.18.2
    hooks:
      - id: mypy
        additional_dependencies:
          - tqdm-stubs
          - types-jsonpatch
          - types-requests
          - types-setuptools
          - types-ujson
          - types-urllib3

  - repo: https://github.com/asottile/setup-cfg-fmt
    rev: v2.7.0  # Use v2.7.0 until dropping Python 3.9 support
    hooks:
      - id: setup-cfg-fmt
