---
files:
  (?x)^(
  .*/Makefile|
  .*\.sh|
  .*\.py|
  .*\.yaml|
  .*\.md
  )$
exclude:
  (?x)^(
  .*error.*\.yaml|
  experiments/.*|
  submodules/.*|
  kibot/PyPDF2/.*|
  kibot/PcbDraw/.*|
  tests/yaml_samples/simple_position_csv_pre.kibot.yaml
  )$
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.0.1
    hooks:
      - id: no-commit-to-branch
        args: [--branch, main]
      - id: check-ast
      - id: check-yaml
        args: [--unsafe]
      - id: debug-statements
      - id: end-of-file-fixer
      - id: trailing-whitespace
      - id: check-json
        stages: [manual]
      - id: mixed-line-ending
      - id: check-builtin-literals
      - id: check-merge-conflict
      - id: check-docstring-first
      - id: fix-byte-order-marker
      - id: check-case-conflict
      - id: check-executables-have-shebangs
      - id: check-shebang-scripts-are-executable
      # - id: check-toml
  - repo: https://github.com/adrienverge/yamllint.git
    rev: v1.23.0
    hooks:
      - id: yamllint
        args: [-c, .yamllint]
# I see no point in making the code more incompatible with older Python
#  - repo: https://github.com/asottile/pyupgrade
#    rev: v2.31.0
#    hooks:
#      - id: pyupgrade
# Too intrusive
#  - repo: https://github.com/psf/black
#    rev: 22.1.0
#    hooks:
#      - id: black
  - repo: https://github.com/fsouza/autoflake8
    rev: v0.3.1
    hooks:
      - id: autoflake8
  - repo: https://github.com/PyCQA/flake8
    rev: 4.0.1
    hooks:
      - id: flake8
        exclude: ^kibot/mcpyrate/
        args: [--count, --statistics]
        additional_dependencies:
          - flake8-bugbear==22.1.11
          - flake8-comprehensions==3.8.0
          - flake8_2020==1.6.1
          - flake8-docstrings
          - mccabe==0.6.1
          - pycodestyle==2.8.0
          - pyflakes==2.4.0
# Sorting imports is dangerous.
#  - repo: https://github.com/PyCQA/isort
#    rev: 5.10.1
#    hooks:
#      - id: isort
  - repo: https://github.com/codespell-project/codespell
    rev: v2.1.0
    hooks:
      - id: codespell
#  - repo: https://github.com/pre-commit/mirrors-mypy
#    rev: v0.931
#    hooks:
#      - id: mypy

# Bandit is really slow, really annoying for a commit
#   - repo: https://github.com/Lucas-C/pre-commit-hooks-bandit
#     rev: v1.0.5
#     hooks:
#       - id: python-bandit-vulnerability-check
  # TODO:  mdformat --wrap 75 README.md --number
