
    wOg                        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dS )    )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]]symbolsnamestrreturnc                    || j         v r| j         |         S t                                          |           }|| j         |<   |S N)r	   super__new__)clsr
   obj	__class__s      L/var/www/AppWebDeiv/myenv/lib/python3.11/site-packages/blinker/_utilities.pyr   zSymbol.__new__   sC    3;;t$$ggooc""D
    Nonec                    || _         d S r   r
   )selfr
   s     r   __init__zSymbol.__init__    s    			r   c                    | j         S r   r   r   s    r   __repr__zSymbol.__repr__#   s
    yr   tuple[t.Any, ...]c                    | j         fS r   r   r   s    r   __getnewargs__zSymbol.__getnewargs__&   s    	|r   )r
   r   r   r   )r
   r   r   r   )r   r   )r   r   )__name__
__module____qualname____doc__r	   __annotations__r   r   r   r    __classcell__)r   s   @r   r   r      s           .0G////                  r   r   r   objectr   
c.Hashablec                    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_idr1   *   sb      2 #,CL!1!111#Sz""  
 c77Nr   callback!c.Callable[[ref[T]], None] | Noneref[T]c                j    t          j        |           rt          | |          S t          | |          S r   )r*   r+   r   r   )r   r2   s     r   make_refr6   <   s5     )#x(((sHr   )r   r'   r   r(   r   )r   r   r2   r3   r   r4   )
__future__r   collections.abcabccr*   typingtweakrefr   r   TypeVarr   r   r1   r6    r   r   <module>r@      s    " " " " " "                       AIcNN       <   $      r   