repos:
  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.4.10
    hooks:
      - id: ruff
        args: [--fix]
        types_or: [python, pyi, jupyter]
      - id: ruff-format
        types_or: [python, pyi, jupyter]

  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: v1.10.0
    hooks:
      - id: mypy
        args: [--ignore-missing-imports]
        additional_dependencies:
          - types-all
          - pydantic
          - fastapi
          - httpx
          - pytest

  - repo: local
    hooks:
      - id: pytest-unit
        name: Unit tests (quick)
        entry: pytest tests/ --ignore=tests/test_e2e.py --ignore=tests/test_dashboard_live.py --ignore=tests/gui/ -q --tb=short -x
        language: system
        pass_filenames: false
        always_run: true
        stages: [push]

  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.6.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-yaml
      - id: check-toml
      - id: check-added-large-files
        args: ['--maxkb=1000']
