
    Eg(                       d dl mZ d dlZd dlmZ d dlmZ ej        ej	        e
e
f         ee
f         Z G d d          Zde_         G d d          ZddZeefZ G d de          Z	 dddZddZ G d d          ZdS )    )annotationsN)ref)BoundMethodWeakrefc                       e Zd Zd Zd Zd ZdS )_symbolc                "    |x| _         | _        dS )zConstruct a new named symbol.N)__name__name)selfr
   s     G/var/www/sysmax/venv/lib/python3.11/site-packages/blinker/_utilities.py__init__z_symbol.__init__   s    $((			    c                     t           | j        ffS N)symbolr
   r   s    r   
__reduce__z_symbol.__reduce__   s    	|##r   c                    | j         S r   )r
   r   s    r   __repr__z_symbol.__repr__   s
    yr   N)r	   
__module____qualname__r   r   r    r   r   r   r      sA        ) ) )$ $ $    r   r   r   c                      e Zd ZdZi Zd ZdS )r   a?  A constant symbol.

    >>> symbol('foo') is symbol('foo')
    True
    >>> symbol('foo')
    foo

    A slight refinement of the MAGICCOOKIE=object() pattern.  The primary
    advantage of symbol() is its repr().  They are also singletons.

    Repeated calls of symbol('name') will all return the same instance.

    c                    	 | j         |         S # t          $ r+ | j                             |t          |                    cY S w xY wr   )symbolsKeyError
setdefaultr   )clsr
   s     r   __new__zsymbol.__new__+   sS    	?;t$$ 	? 	? 	?;))$>>>>>	?s    2AAN)r	   r   r   __doc__r   r   r   r   r   r   r      s4          G? ? ? ? ?r   objobjectreturnIdentityTypec                <   t          | d          r(t          | j                  t          | j                  fS t          | d          r(t          | j                  t          | j                  fS t          | t          t          f          r| S t          |           S )N__func__im_func)	hasattridr&   __self__r'   im_self
isinstanceintstr)r!   s    r   hashable_identityr/   2   s    sJ 3<  "S\"2"233	i	 	  3;CK11	C#s	$	$ 
#wwr   c                  (    e Zd ZU dZded<   ded<   dS )annotatable_weakrefz7A weakref.ref that supports custom instance attributes.zt.Optional[IdentityType]receiver_id	sender_idN)r	   r   r   r    __annotations__r   r   r   r1   r1   @   s0         AA))))''''''r   r1   c                    t          |           rt          | |          }nt          | |          } |j                    D ]\  }}t	          |||           |S )zReturn an annotated weak ref.)callablecallable_referencer1   itemssetattr)r"   callbackr   weakkeyvalues         r   	referencer>   G   sl      5!&(33"6844'k')) " "
Uc5!!!!Kr   c                    t          | d          r| j        t          | |          S t          | d          r| j        t          | |          S t	          | |          S )z@Return an annotated weak ref, supporting bound instance methods.r+   N)target	on_deleter*   )r(   r+   r   r*   r1   )r"   r:   s     r   r7   r7   T   sl    vy!! Efn&@!8DDDD		$	$ E)D!8DDDDvx000r   c                      e Zd ZdZd Zd ZdS )lazy_propertyz(A @property that is only evaluated once.c                ,    || _         |j        | _        d S r   )	_deferredr    )r   deferreds     r   r   zlazy_property.__init__`   s    !'r   c                n    || S |                      |          }t          || j         j        |           |S r   )rE   r9   r	   )r   r!   r   r=   s       r   __get__zlazy_property.__get__d   s9    ;Ks##T^,e444r   N)r	   r   r   r    r   rH   r   r   r   rC   rC   ]   s8        22( ( (    r   rC   )r!   r"   r#   r$   r   )r#   r1   )
__future__r   typingtweakrefr   blinker._saferefr   UnionTupler-   r.   r$   r   r	   r   r/   	WeakTypesr1   r>   r7   rC   r   r   r   <module>rQ      sn   " " " " " "           / / / / / /wqwsCx(#s23	 	 	 	 	 	 	 	  ? ? ? ? ? ? ? ?0    $%	( ( ( ( (# ( ( ( 
 
 
 
 
1 1 1 1         r   