exclude: ^scripts|docs|docker|requirements|README.md|test|experimental
repos:
  - repo: https://github.com/PyCQA/flake8.git
    rev: 3.8.3
    hooks:
      - id: flake8
        args: ["--max-line-length=120"]
  - repo: https://github.com/asottile/seed-isort-config
    rev: v2.2.0
    hooks:
      - id: seed-isort-config
  - repo: https://github.com/timothycrosley/isort
    rev: 4.3.21
    hooks:
      - id: isort
        files: \.(py|pyd)$
        args: ["-l 100"]
  - repo: https://github.com/pre-commit/mirrors-yapf
    rev: v0.32.0
    hooks:
      - id: yapf
        files: \.(py|pyd)$
        args: ["--style={column_limit: 120}"]
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.1.0
    hooks:
      - id: trailing-whitespace
        files: \.(py|pyd)$
      - id: check-yaml
      - id: end-of-file-fixer
        files: \.(py|pyd)$
      - id: requirements-txt-fixer
      - id: double-quote-string-fixer
      - id: check-merge-conflict
      - id: fix-encoding-pragma
        args: ["--remove"]
      - id: mixed-line-ending
        args: ["--fix=lf"]
        files: \.(py|pyd)$
  # - repo: https://github.com/jumanjihouse/pre-commit-hooks
  #   rev: 2.1.4
  #   hooks:
  #     - id: markdownlint
  #       args: ["-r", "~MD002,~MD013,~MD029,~MD033,~MD034,~MD005"]
  # - repo: https://github.com/myint/docformatter
  #   rev: v1.3.1
  #   hooks:
  #     - id: docformatter
  #       args: ["--in-place", "--wrap-descriptions", "79"]
  - repo: local
    hooks:
      - id: clang-format
        name: clang-format
        description: Format files with ClangFormat
        entry: clang-format -i
        language: system
        files: \.(c|cc|cxx|cpp|cu|h|hpp|hxx|cuh|proto)$
