# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v6.0.0
    hooks:
      - id: check-added-large-files
      - id: check-toml
      - id: check-yaml
        args:
          - --unsafe
      - id: end-of-file-fixer
      - id: trailing-whitespace

  - repo: local
    hooks:
      - id: local-ruff-check
        name: ruff check
        entry: uv run ruff check --force-exclude --fix --exit-non-zero-on-fix
        require_serial: true
        language: unsupported
        types: [python]

      - id: local-ruff-format
        name: ruff format
        entry: uv run ruff format --force-exclude --exit-non-zero-on-format
        require_serial: true
        language: unsupported
        types: [python]

      - id: local-mypy
        name: mypy check
        entry: uv run mypy sqlmodel tests/test_select_typing.py
        require_serial: true
        language: unsupported
        pass_filenames: false

      - id: generate-select
        language: unsupported
        name: generate-select
        entry: uv run ./scripts/generate_select.py
        files: ^scripts/generate_select\.py|sqlmodel/sql/_expression_select_gen\.py\.jinja2$

      - id: generate-readme
        language: unsupported
        name: generate README.md from index.md
        entry: uv run ./scripts/docs.py generate-readme
        files: ^docs/index\.md|scripts/docs\.py$
        pass_filenames: false
