##
## =====================================================================================
##  C O P Y R I G H T
## -------------------------------------------------------------------------------------
##  Copyright (c) 2023 by Robert Bosch GmbH. All rights reserved.
##
##  Author(s):
##  - Markus Braun, :em engineering methods AG (contracted by Robert Bosch GmbH)
## =====================================================================================
##

# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
#files:
#  "(.yaml$)|(^conf.*py$)|doxysphinx/.*py$||pyproject.toml$"

exclude:
  "(^.*tests/.*$)"

default_stages: [commit, manual, push]

repos:

# formatting related

- repo: https://github.com/pre-commit/pre-commit-hooks
  rev: v4.5.0
  hooks:
  - id: trailing-whitespace
  - id: end-of-file-fixer
  - id: check-yaml
  - id: check-toml
  - id: check-case-conflict
  - id: check-added-large-files
    args: ["--maxkb=4096"]

- repo: https://github.com/psf/black
  rev: 24.3.0
  hooks:
  - id: black
    types: [python]

- repo: https://github.com/pycqa/isort
  rev: 5.13.2
  hooks:
  - id: isort
    args: ["--profile", "black", "--filter-files"]

- repo: https://github.com/pycqa/flake8
  rev: 7.0.0
  hooks:
  - id: flake8
    additional_dependencies: [
      "flake8-bugbear",
      "flake8-comprehensions",
      "flake8-simplify",
      "cohesion",
      "pydocstyle",
      "flake8-docstrings",
      "pep8-naming"
    ]
    types: [python]

- repo: https://github.com/pre-commit/mirrors-mypy
  rev: v1.9.0
  hooks:
  - id: mypy
    args: [ "--show-error-codes" ]
    additional_dependencies: [
      "lxml_stubs",
      "types-PyYAML"
    ]
    types: [python]

- repo: https://github.com/PyCQA/bandit
  rev: 1.7.8
  hooks:
  - id: bandit
    types: [python]

# - repo: https://github.com/AleksaC/hadolint-py
#   rev: v2.10.0
#   hooks:
#     - id: hadolint
#       args: [ --ignore, SC2035 ]

# todo
#- repo: https://github.com/pypa/pip-audit
#  rev: v2.4.10
#  hooks:
#   -   id: pip-audit

- repo: https://github.com/commitizen-tools/commitizen
  rev: v3.21.3
  hooks:
    - id: commitizen
    - id: commitizen-branch
      stages: [push]

- repo: https://github.com/python-poetry/poetry
  rev: 1.8.0
  hooks:
    - id: poetry-check
    - id: poetry-lock
