File size: 615 Bytes
9c6594c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
"""Module to facilitate adding hooks to wandb actions.
Usage:
import trigger
trigger.register('on_something', func)
trigger.call('on_something', *args, **kwargs)
trigger.unregister('on_something', func)
"""
from typing import Any, Callable
_triggers = {}
def reset():
_triggers.clear()
def register(event: str, func: Callable):
_triggers.setdefault(event, []).append(func)
def call(event_str: str, *args: Any, **kwargs: Any):
for func in _triggers.get(event_str, []):
func(*args, **kwargs)
def unregister(event: str, func: Callable):
_triggers[event].remove(func)
|