
    g                        d dl mZ d dlmZ d dlZd dlZd dlm	Z	 d dlm
Z
  ej                  d      Z G d d      Zd
dZddd	Zy)    )annotationsN)ref)
WeakMethodTc                  L     e Zd ZU dZi Zded<   d fdZd	dZd
dZddZ	 xZ
S )SymbolzA constant symbol, nicer than ``object()``. Repeated calls return the
    same instance.

    >>> Symbol('foo') is Symbol('foo')
    True
    >>> Symbol('foo')
    foo
    zt.ClassVar[dict[str, Symbol]]symbolsc                ~    || j                   v r| j                   |   S t        | 	  |       }|| j                   |<   |S N)r	   super__new__)clsnameobj	__class__s      R/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/blinker/_utilities.pyr   zSymbol.__new__   s?    3;;;;t$$goc"D
    c                    || _         y r   r   )selfr   s     r   __init__zSymbol.__init__    s	    	r   c                    | j                   S r   r   r   s    r   __repr__zSymbol.__repr__#   s    yyr   c                    | j                   fS r   r   r   s    r   __getnewargs__zSymbol.__getnewargs__&   s    		|r   )r   strreturnr   )r   r   r   None)r   r   )r   ztuple[t.Any, ...])__name__
__module____qualname____doc__r	   __annotations__r   r   r   r   __classcell__)r   s   @r   r   r      s)     .0G*/r   r   c                    t        j                  |       r*t        | j                        t        | j                        fS t        | t        t        f      r| S t        |       S )z`Get a stable identifier for a receiver or sender, to be used as a dict
    key or in a set.
    )inspectismethodid__func____self__
isinstancer   int)r   s    r   make_idr.   *   sQ      #,,CLL!111#Sz" 
 c7Nr   c                \    t        j                  |       rt        | |      S t        | |      S r   )r'   r(   r   r   )r   callbacks     r   make_refr1   <   s*    #x((sHr   )r   objectr   z
c.Hashabler   )r   r   r0   z!c.Callable[[ref[T]], None] | Noner   zref[T])
__future__r   collections.abcabccr'   typingtweakrefr   r   TypeVarr   r   r.   r1    r   r   <module>r<      s:    "     AIIcN <$r   