exclude: ^(poetry.lock|.idea/)
repos:
  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: "v0.7.1"
    hooks:
      - id: ruff
        args: [--fix, --exit-non-zero-on-fix]
      - id: ruff-format

  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v5.0.0
    hooks:
      - id: check-added-large-files
      - id: check-case-conflict
      - id: check-shebang-scripts-are-executable
      - id: check-merge-conflict
      - id: check-json
      - id: check-toml
      - id: check-xml
      - id: check-yaml
      - id: debug-statements
        exclude: '^tests/test_py3.*\.py$'
      - id: destroyed-symlinks
      - id: detect-private-key
      - id: end-of-file-fixer
        exclude: ^LICENSE|\.(html|csv|txt|svg|py)$
      - id: pretty-format-json
        args: ["--autofix", "--no-ensure-ascii", "--no-sort-keys"]
      - id: requirements-txt-fixer
      - id: trailing-whitespace
        args: [--markdown-linebreak-ext=md]
        exclude: \.(html|svg)$

  - repo: https://github.com/fredrikaverpil/creosote.git
    rev: v3.1.0
    hooks:
      - id: creosote

  - repo: https://github.com/codespell-project/codespell
    rev: v2.3.0
    hooks:
      - id: codespell
        additional_dependencies:
          - tomli

  - repo: https://github.com/crate-ci/typos
    rev: v1.26.8
    hooks:
      - id: typos

  - repo: https://github.com/RobertCraigie/pyright-python
    rev: v1.1.387
    hooks:
      - id: pyright
