repos:
  # Ruff via uv
  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.6.9  # pick the latest release
    hooks:
      - id: ruff
        args: [--fix]        # optional: auto-fix issues
      - id: ruff-format      # black-compatible formatter

  # Mypy via uv
  - repo: local
    hooks:
      - id: mypy
        name: mypy (via uv)
        entry: uv run mypy
        language: system
        types: [python]
        pass_filenames: false
        args:
          - --allow-redefinition
          - --disable-error-code=import-untyped
          - --ignore-missing-imports
          - .

  # Strip Jupyter outputs
  - repo: https://github.com/kynan/nbstripout
    rev: 0.7.1
    hooks:
      - id: nbstripout
        name: Strip Jupyter notebook outputs
        files: \.ipynb$