
    g                    ^    S r SSKJr  SSKJr  SSKJr  SSKJrJ	r	  SSK
Jr   " S S\5      rg	)
z&Coordinator to trigger entity updates.    )annotations)Callable)Any)CALLBACK_TYPEcallback)!BaseDataUpdateCoordinatorProtocolc                  Z    \ rS rSrSrSS jr\ S	     S
S jj5       r\SS j5       rSr	g)HacsUpdateCoordinator   z$Dispatch updates to update entities.c                    0 U l         g)zInitialize.N
_listeners)selfs    -/config/custom_components/hacs/coordinator.py__init__HacsUpdateCoordinator.__init__   s	    TV    Nc                N   ^ ^ [         SUU 4S jj5       mX4T R                  T'   T$ )zListen for data updates.c                 <   > TR                   R                  T 5        g)zRemove update listener.N)r   pop)remove_listenerr   s   r   r   AHacsUpdateCoordinator.async_add_listener.<locals>.remove_listener   s     OO0r   returnNone)r   r   )r   update_callbackcontextr   s   `  @r   async_add_listener(HacsUpdateCoordinator.async_add_listener   s0     
	1 
	1 -<+E(r   c                j    [        U R                  R                  5       5       H  u  pU" 5         M     g)z Update all registered listeners.N)listr   values)r   r   _s      r   async_update_listeners,HacsUpdateCoordinator.async_update_listeners"   s*     #'t'='='?"@O #Ar   r   r   )N)r   r   r   r   r   zCallable[[], None])
__name__
__module____qualname____firstlineno____doc__r   r   r   r$   __static_attributes__ r   r   r
   r
      sN    .W =A,7:	   r   r
   N)r*   
__future__r   collections.abcr   typingr   homeassistant.corer   r   (homeassistant.helpers.update_coordinatorr   r
   r,   r   r   <module>r2      s$    , " $  6 V= r   