# Config based on https://gitlab.com/octopus-code/postopus/-/blob/main/.pre-commit-config.yaml
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
  rev: v4.4.0
  hooks:
  - id: trailing-whitespace
  - id: check-ast
  - id: check-docstring-first
  - id: check-executables-have-shebangs
  - id: check-merge-conflict
  - id: check-toml
  - id: debug-statements
  - id: end-of-file-fixer
  - id: mixed-line-ending
    args: ['--fix=auto']  # replace 'auto' with 'lf' to enforce Linux/Mac line endings or 'crlf' for Windows

# other hooks
# Ruff:
- repo: https://github.com/astral-sh/ruff-pre-commit
  # Ruff version.
  rev: v0.0.274
  hooks:
    - id: ruff
      args: [--fix, --exit-non-zero-on-fix]

# Black
- repo: https://github.com/psf/black
  rev: 23.3.0
  hooks:
  - id: black
    language_version: python3

## If like to embrace black styles even in the docs:
# - repo: https://github.com/asottile/blacken-docs
#   rev: v1.9.1
#   hooks:
#   - id: blacken-docs
#     additional_dependencies: [black]

# pydocstyle
- repo: https://github.com/PyCQA/pydocstyle
  rev: 6.3.0
  hooks:
  -   id: pydocstyle
      name: pydocstyle
      description: pydocstyle is a static analysis tool for checking compliance with Python docstring conventions.
      entry: pydocstyle
      language: python
      types: [python]

- repo: https://github.com/abravalheri/validate-pyproject
  rev: v0.13
  hooks:
    - id: validate-pyproject

- repo: https://github.com/myint/rstcheck
  rev: v6.1.1
  hooks:
    - id: rstcheck
      additional_dependencies:
        - sphinx==4.5.0
        - sphinx-click==3.1.0
      args: [
        --report-level=WARNING,
      ]