exclude: '^nucypher/blockchain/eth/contract_registry/*'
repos:

  - repo: local
    hooks:

      - id: tests
        name: Run Nucypher Unit Tests
        entry: scripts/hooks/run_unit_tests.sh
        language: system
        types: [python]
        stages: [push]  # required additional setup: pre-commit install && pre-commit install -t pre-push

  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.3.0
    hooks:

      # Git
      - id: forbid-new-submodules

      # Files
      - id: check-byte-order-marker
      - id: check-executables-have-shebangs
      - id: check-added-large-files
      - id: check-symlinks
      - id: end-of-file-fixer

      # Syntax
      - id: check-yaml
      - id: check-toml
      - id: check-ast

      # Code
      - id: check-merge-conflict
      - id: debug-statements
      - id: detect-private-key

  - repo: https://github.com/akaihola/darker
    rev: 1.6.1
    hooks:
    -   id: darker

  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: 'v0.0.275'
    hooks:
    - id: ruff

# TODO: May be incrementally introduced
#  - repo: https://github.com/psf/black
#    rev: stable
#    hooks:
#      - id: black
#        language_version: python3.6