| 1234567891011121314151617181920212223242526272829 |
- """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)
|