# https://pre-commit.com/
ci:
  autoupdate_schedule: monthly
  autoupdate_commit_msg: "Update pre-commit hooks"
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v6.0.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-yaml
      - id: debug-statements
      - id: mixed-line-ending
  - repo: https://github.com/pre-commit/pygrep-hooks
    rev: v1.10.0
    hooks:
      # - id: python-check-blanket-noqa  # checked by ruff
      # - id: python-check-blanket-type-ignore  # checked by ruff
      # - id: python-check-mock-methods  # checked by ruff
      - id: python-no-log-warn
      # - id: python-use-type-annotations  # too many false positives
      - id: rst-backticks
      - id: rst-directive-colons
      - id: rst-inline-touching-normal
      - id: text-unicode-replacement-char
  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.14.7
    hooks:
      - id: ruff-check
        args: ["--fix", "--show-fixes"]
      - id: ruff-format
  - repo: https://github.com/keewis/blackdoc
    rev: v0.4.6
    hooks:
      - id: blackdoc
        exclude: "generate_aggregations.py"
        # make sure this is the most recent version of black
        additional_dependencies: ["black==25.11.0"]
  - repo: https://github.com/rbubley/mirrors-prettier
    rev: v3.7.3
    hooks:
      - id: prettier
        args: ["--cache-location=.prettier_cache/cache"]
  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: v1.19.0
    hooks:
      - id: mypy
        # Copied from setup.cfg
        exclude: "properties|asv_bench"
        # This is slow and so we take it out of the fast-path; requires passing
        # `--hook-stage manual` to pre-commit
        stages: [manual]
        additional_dependencies: [
            # Type stubs
            types-python-dateutil,
            types-setuptools,
            types-PyYAML,
            types-pytz,
            typing-extensions>=4.1.0,
            numpy,
          ]
  - repo: https://github.com/citation-file-format/cff-converter-python
    rev: 5295f87c0e261da61a7b919fc754e3a77edd98a7
    hooks:
      - id: validate-cff
  - repo: https://github.com/ComPWA/taplo-pre-commit
    rev: v0.9.3
    hooks:
      - id: taplo-format
        args: ["--option", "array_auto_collapse=false"]
      - id: taplo-lint
        args: ["--no-schema"]
  - repo: https://github.com/abravalheri/validate-pyproject
    rev: v0.24.1
    hooks:
      - id: validate-pyproject
        additional_dependencies: ["validate-pyproject-schema-store[all]"]
  - repo: https://github.com/adhtruong/mirrors-typos
    rev: v1.40.0
    hooks:
      - id: typos
