ci:
  autoupdate_schedule: monthly
  autoupdate_commit_msg: 'chore: update pre-commit hooks'

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v5.0.0
    hooks:
      - id: check-case-conflict
      - id: check-ast
      - id: check-docstring-first
      - id: check-executables-have-shebangs
      - id: check-added-large-files
      - id: check-case-conflict
      - id: check-merge-conflict
      - id: check-json
      - id: check-toml
      - id: check-yaml
      - id: debug-statements
      - id: end-of-file-fixer
      - id: trailing-whitespace

  - repo: https://github.com/python-jsonschema/check-jsonschema
    rev: 0.30.0
    hooks:
      - id: check-github-workflows

  - repo: https://github.com/codespell-project/codespell
    rev: 'v2.3.0'
    hooks:
      - id: codespell
        args: ['-L', 'hart,noteable', '--skip', "*.spec.ts"]
        exclude: |
          (?x)^(
              yarn.lock|
              pixi.lock|
              binder/example.ipynb|
              docs/source/examples/images/FrontendKernel.graffle/data.plist|
          )$

  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: "v1.14.1"
    hooks:
      - id: mypy
        files: "^notebook"
        stages: [manual]
        args: ["--install-types", "--non-interactive"]
        additional_dependencies: ["traitlets>=5.13", "tornado", "jupyter_server>=2.10", "jupyterlab_server>=2.25", "jupyterlab>=4.4.9,<4.5"]

  - repo: https://github.com/pre-commit/pygrep-hooks
    rev: 'v1.10.0'
    hooks:
      - id: rst-backticks
      - id: rst-directive-colons
      - id: rst-inline-touching-normal

  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.8.6
    hooks:
      - id: ruff
        types_or: [ python, jupyter ]
        exclude: '^docs/source/examples/Notebook/Importing Notebooks.ipynb'
        args: ['--fix', '--show-fixes']
      - id: ruff-format
        types_or: [ python, jupyter ]
        exclude: '^docs/source/examples/Notebook/Importing Notebooks.ipynb'

  - repo: https://github.com/scientific-python/cookie
    rev: '2024.08.19'
    hooks:
      - id: sp-repo-review
        additional_dependencies: ['repo-review[cli]']

  - repo: local
    hooks:
      - id: prettier
        name: prettier
        entry: 'npm run prettier:files'
        language: node
        types_or: [json, ts, tsx, javascript, jsx, css, markdown]
        stages: [manual]
      - id: integrity
        name: integrity
        entry: 'npm run integrity --force'
        language: node
        stages: [pre-push]
