o
    -wÖig  ã                   @   s^   d Z ddlmZmZ i Zdd„ Zdedefdd„Zd	ed
edefdd„Zdedefdd„Z	dS )zÙ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)
é    )ÚAnyÚCallablec                   C   s   t  ¡  d S ©N)Ú	_triggersÚclear© r   r   úJ/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/trigger.pyÚreset   s   r	   ÚeventÚfuncc                 C   s   t  | g ¡ |¡ d S r   )r   Ú
setdefaultÚappend©r
   r   r   r   r   Úregister   s   r   Ú	event_strÚargsÚkwargsc                 O   s$   t  | g ¡D ]	}||i |¤Ž qd S r   )r   Úget)r   r   r   r   r   r   r   Úcall   s   ÿr   c                 C   s   t |   |¡ d S r   )r   Úremover   r   r   r   Ú
unregister   s   r   N)
Ú__doc__Útypingr   r   r   r	   Ústrr   r   r   r   r   r   r   Ú<module>   s    	