exclude: ^tests/data/
repos:
  - repo: https://github.com/PyCQA/flake8
    rev: 4.0.1
    hooks:
      - id: flake8
  - repo: https://github.com/zhouzaida/isort
    rev: 5.12.1
    hooks:
      - id: isort
  - repo: https://github.com/pre-commit/mirrors-yapf
    rev: v0.30.0
    hooks:
      - id: yapf
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.1.0
    hooks:
      - id: trailing-whitespace
        exclude: ^dicts/
      - id: check-yaml
      - id: end-of-file-fixer
        exclude: ^dicts/
      - 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"]
  - repo: https://github.com/codespell-project/codespell
    rev: v2.1.0
    hooks:
      - id: codespell
        args: ["--skip", "*.ipynb", "-L", "formating,theis,te,nd,thre,Gool,gool,lod,patten,confectionary"]
  - repo: https://github.com/executablebooks/mdformat
    rev: 0.7.9
    hooks:
      - id: mdformat
        args: ["--number", "--table-width", "200"]
        # language_version: python3.7
        additional_dependencies:
          - mdformat-openmmlab
          - mdformat_frontmatter
          - linkify-it-py
  - repo: local
    hooks:
      - id: update-model-index
        name: update-model-index
        description: Collect model information and update model-index.yml
        entry: .dev_scripts/update_model_index.py
        additional_dependencies: [mmengine, modelindex, tqdm, rich]
        language: python
        files: ^configs/.*\.md$
        require_serial: true
  - repo: https://github.com/myint/docformatter
    rev: v1.3.1
    hooks:
      - id: docformatter
        args: ["--in-place", "--wrap-descriptions", "79"]
  - repo: https://github.com/open-mmlab/pre-commit-hooks
    rev: v0.4.0  # Use the ref you want to point at
    hooks:
      - id: check-algo-readme
      - id: check-copyright
        args: ["demo", "mmedit", "tests", "tools"]
      - id: remove-improper-eol-in-cn-docs
  - repo: local
    hooks:
      - id: update-model-zoo
        name: update-model-zoo
        description: update model-zoo.yml
        entry: docs/en/.dev_scripts/update_model_zoo.py
        additional_dependencies: [mmengine, modelindex, tqdm, rich]
        language: python
        files: ^configs/.*\.md$
        require_serial: true
