default_install_hook_types:
# Mandatory to install both pre-commit and pre-push hooks (see https://pre-commit.com/#top_level-default_install_hook_types)
# Add new hook types here to ensure automatic installation when running `pre-commit install`
- pre-commit
- pre-push
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
  rev: v4.3.0
  hooks:
  - id: trailing-whitespace
  - id: end-of-file-fixer
  - id: check-yaml
  - id: check-json
  - id: check-added-large-files

- repo: local
  hooks:
  - id: black
    name: Formatting (black)
    entry: black
    language: system
    types: [python]
    stages: [commit]
  - id: ruff
    name: Linter (ruff)
    entry: ruff
    language: system
    types: [python]
    stages: [commit]
  - id: mypy
    name: Type checking (mypy)
    entry: make mypy
    pass_filenames: false
    language: system
    types: [python]
    stages: [commit]
  - id: test
    name: Unit tests (pytest)
    entry: make test
    pass_filenames: false
    language: system
    types: [python]
    stages: [push]