# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
exclude: ^(docs/|notebooks/|data/|src/configs/|tests/|.hooks/|bom.json)
default_language_version:
  python: python3.10
repos:
  - 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
        args: [--unsafe] # needed for .gitlab-ci.yml
      - id: check-toml
      - id: detect-private-key
      - id: check-added-large-files
        args: ['--maxkb=10000']
      - id: check-case-conflict
      - id: mixed-line-ending

  # - repo: https://github.com/pre-commit/mirrors-pylint
  #   rev: v3.0.0a5
  #   hooks:
  #     - id: pylint
  #       args:
  #         - --disable=C0111,R0903,E0401
  #         - --max-line-length=120

  - repo: https://github.com/pre-commit/mirrors-isort
    rev: v5.10.1
    hooks:
      - id: isort
        args:
          - --profile black

  - repo: https://github.com/psf/black
    rev: 24.3.0
    hooks:
      - id: black
        # exclude: ^(docs/|notebooks/|data/|src/secrets/)
        args:
          - --line-length=120

  - repo: https://github.com/compilerla/conventional-pre-commit
    rev: v3.2.0
    hooks:
      - id: conventional-pre-commit
        pass_filenames: false
        stages: [commit-msg]
        # args: [] # optional: list of Conventional Commits types to allow e.g. [feat, fix, ci, chore, test]

  - repo: local
    hooks:
      - id: version-checker
        name: version-checker
        entry: python .hooks/poetry_version_check.py
        language: python
        always_run: true
        additional_dependencies:
          - "semver"
          - "loguru"

  # - repo: local
  #   hooks:
  #     - id: docker-build-test
  #       name: testing docker build
  #       entry: ./scripts/ops/docker-compose-build-run.sh
  #       language: script
  #       # always_run: true
  #       pass_filenames: false
  #       args: []
  #       stages: [pre-commit]
