
    h              	          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y)    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                 0    t         |           || _        y )N)super__init__r   )selfr   	__class__s     P/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/aiosignal/__init__.pyr   zSignal.__init__#   s        returnc                 b    dj                  | j                  | j                  t        |             S )Nz"<Signal owner={}, frozen={}, {!r}>)formatr   frozenlist)r   s    r   __repr__zSignal.__repr__'   s(    3::KKd4j
 	
r   argskwargsNc                 l   K   | j                   st        d      | D ]  } ||i | d{     y7 w)z9
        Sends data to all registered receivers.
        zCannot send non-frozen signal.N)r   RuntimeError)r   r"   r#   receivers       r   sendzSignal.send,   s@      {{?@@ 	,HD+F+++	,+s   (424funcc                 (    | j                  |       |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<      s    
 4 4 !w(w#.T]5&r"34
#Z&+	&0A!ABC #r   