repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v6.0.0
    hooks:
      - id: check-yaml
        exclude: ^(tests|docs|examples)/
      - id: trailing-whitespace
        exclude: ^(tests|docs|examples)/
      - id: check-added-large-files
        args: [--maxkb=100]
        exclude: ^(tests|docs|examples)/
      - id: check-ast
        exclude: ^(tests|docs|examples)/
      - id: check-builtin-literals
        exclude: ^(tests|docs|examples)/
      - id: check-case-conflict
        exclude: ^(tests|docs|examples)/
      - id: check-docstring-first
        exclude: ^(tests|docs|examples)/
      - id: check-merge-conflict
        exclude: ^(tests|docs|examples)/
      - id: debug-statements
        exclude: ^(tests|docs|examples)/
      - id: detect-private-key
        exclude: ^(tests|docs|examples)/

  - repo: https://github.com/asottile/pyupgrade
    rev: v3.17.0
    hooks:
      - id: pyupgrade
        exclude: ^(tests|docs|examples)/

  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.5.7
    hooks:
      - id: ruff-format
        exclude: ^(tests|docs|examples)/

  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.5.7
    hooks:
      - id: ruff
        args: [--fix, --exit-non-zero-on-fix]
        exclude: ^(tests|docs|examples)/

  - repo: https://github.com/PyCQA/bandit
    rev: 1.7.9
    hooks:
      - id: bandit
        args: [-c, pyproject.toml]
        additional_dependencies: ["bandit[toml]"]
        exclude: ^(tests|docs|examples)/
