
    tni              	       4   d dl Z d dlmZmZmZmZ d dlmZ e j        dk    rd dlm	Z	 nd dl
m	Z	 e j        dk    rd dlmZ nd dl
mZ  ed          Z ed	e	ed
                            ZdZdZ G d deee	e         gee         f                            ZdS )    N)Any	AwaitableCallableTypeVar)
FrozenList)      )Unpack)r      )TypeVarTuple_T_Ts )defaultz1.4.0)Signalc                        e Zd ZdZdZdef fdZdefdZde	e
         dedd	fd
Zdee	e
         gee         f         dee	e
         gee         f         fdZ xZS )r   zCoroutine-based signal implementation.

    To connect a callback to a signal, use any list method.

    Signals are fired using the send() coroutine, which takes named
    arguments.
    )_ownerownerc                 V    t                                                       || _        d S )N)super__init__r   )selfr   	__class__s     O/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/aiosignal/__init__.pyr   zSignal.__init__#   s$        returnc                 ^    d                     | j        | j        t          |                     S )Nz"<Signal owner={}, frozen={}, {!r}>)formatr   frozenlist)r   s    r   __repr__zSignal.__repr__'   s+    3::Kd4jj
 
 	
r   argskwargsNc                 \   K   | j         st          d          | D ]} ||i | d{V  dS )z9
        Sends data to all registered receivers.
        zCannot send non-frozen signal.N)r   RuntimeError)r   r"   r#   receivers       r   sendzSignal.send,   se       { 	A?@@@ 	, 	,H(D+F++++++++++	, 	,r   funcc                 0    |                      |           |S )z+Decorator to add a function to this Signal.)append)r   r(   s     r   __call__zSignal.__call__6   s     	Dr   )__name__
__module____qualname____doc__	__slots__objectr   strr!   r
   r   r   r'   r   r   r   r+   __classcell__)r   s   @r   r   r      s          If      
# 
 
 
 

,s ,s ,t , , , ,fSk]IbM9:	6#;-2.	/       r   r   )systypingr   r   r   r   
frozenlistr   version_infor
   typing_extensionsr   r   tupler   __version____all__r1   r   r   r   r   <module>r<      s0   



 4 4 4 4 4 4 4 4 4 4 4 4 ! ! ! ! ! !w((((((w#######......WT]]l5&r"3444
# # # # #Z&+	&0A!ABC # # # # #r   