exclude: \.min\.(js|css)(\.map)?$|^\.idea/
ci:
  skip: [pip-compile]

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.6.0
    hooks:
      - id: check-ast
      - id: check-json
      - id: check-toml
      - id: check-xml
      - id: check-yaml
        args: [--allow-multiple-documents]
      - id: end-of-file-fixer
      - id: check-merge-conflict
      - id: debug-statements
      - id: detect-private-key
      - id: pretty-format-json
        args:
          - --autofix
          - --no-sort-keys
      - id: trailing-whitespace
        args:
          - --markdown-linebreak-ext=md
      - id: check-executables-have-shebangs
      - id: check-shebang-scripts-are-executable
  - repo: https://github.com/adamchainz/django-upgrade
    rev: 1.17.0
    hooks:
      - id: django-upgrade
        args: [--target-version, "4.1"]
  - repo: https://github.com/psf/black
    rev: 24.4.2
    hooks:
      - id: black
        args: [--target-version, py311]
  - repo: https://github.com/rtts/djhtml
    rev: 3.0.6
    hooks:
      - id: djhtml
  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.4.4
    hooks:
      - id: ruff
        args: [--fix]
  - repo: https://github.com/pre-commit/mirrors-prettier
    rev: v4.0.0-alpha.8
    hooks:
      - id: prettier
        types_or: [javascript, css]
  - repo: https://github.com/pre-commit/mirrors-eslint
    rev: v9.2.0
    hooks:
      - id: eslint
        args: [--fix]
        types_or: [javascript, css]
        additional_dependencies:
          - eslint@8.36.0
          - eslint-config-prettier@8.5.0
  - repo: https://github.com/tox-dev/pyproject-fmt
    rev: 2.0.4
    hooks:
      - id: pyproject-fmt
  - repo: https://github.com/jazzband/pip-tools
    rev: 7.4.1
    hooks:
      - id: pip-compile
        name: pip-compile requirements.txt
        args: [-q, --allow-unsafe, --no-strip-extras, requirements.in]
        files: ^requirements\.(in|txt)$
      - id: pip-compile
        name: pip-compile constraints.txt
        args: [-q, --allow-unsafe, --strip-extras, --output-file=constraints.txt, requirements.in]
        files: ^requirements\.in|constraints\.txt$
      - id: pip-compile
        name: pip-compile requirements-dev.txt
        args: [-q, --allow-unsafe, --no-strip-extras, requirements-dev.in]
        files: ^requirements-dev\.(in|txt)$