fail_fast: true

repos:

  - repo: https://github.com/charliermarsh/ruff-pre-commit
    rev: v0.8.2
    hooks:
      - id: ruff-format
        args: [reflex, tests]
      - id: ruff
        args: ["--fix", "--exit-non-zero-on-fix"]
        exclude: '^integration/benchmarks/'

  - repo: https://github.com/codespell-project/codespell
    rev: v2.3.0
    hooks:
      - id: codespell
        args: ["reflex"]

  # Run pyi check before pyright because pyright can fail if pyi files are wrong.
  - repo: local
    hooks:
      - id: update-pyi-files
        name: update-pyi-files
        always_run: true
        language: system
        description: 'Update pyi files as needed'
        entry: python3 scripts/make_pyi.py

  - repo: https://github.com/RobertCraigie/pyright-python
    rev: v1.1.313
    hooks:
      - id: pyright
        args: [reflex, tests]
        language: system

  - repo: https://github.com/terrencepreilly/darglint
    rev: v1.8.1
    hooks:
      - id: darglint
        exclude: '^reflex/reflex.py'