
    hI                    P   % S SK Jr  S SKrS SKJr  S SKJrJrJrJ	r	J
r
  S SKJr  SSKJr  \	" S5      r\	" S	5      rSS
 jrSS jrSS jrSS jr\" 5       rS\S'   0 rS\S'   \" SS9 " S S5      5       r " S S\R2                  5      r " S S\\   5      r " S S\\   5      rg)    )annotationsN)	dataclass)AnyGenericLiteralTypeVaroverload)WeakKeyDictionary   )get_async_backendTDc                 P   #    [        5       R                  5       I Sh  vN   g N7f)z
Check for cancellation and allow the scheduler to switch to another task.

Equivalent to (but more efficient than)::

    await checkpoint_if_cancelled()
    await cancel_shielded_checkpoint()


.. versionadded:: 3.0

N)r   
checkpoint     @/var/www/html/env/lib/python3.13/site-packages/anyio/lowlevel.pyr   r      s      

(
(
***   &$&c                 P   #    [        5       R                  5       I Sh  vN   g N7f)z
Enter a checkpoint if the enclosing cancel scope has been cancelled.

This does not allow the scheduler to switch to a different task.

.. versionadded:: 3.0

N)r   checkpoint_if_cancelledr   r   r   r   r      s      

5
5
777r   c                 P   #    [        5       R                  5       I Sh  vN   g N7f)z
Allow the scheduler to switch to another task but without checking for cancellation.

Equivalent to (but potentially more efficient than)::

    with CancelScope(shield=True):
        await checkpoint()


.. versionadded:: 3.0

N)r   cancel_shielded_checkpointr   r   r   r   r   *   s      

8
8
:::r   c                 2    [        5       R                  5       $ )zY
Return a backend specific token object that can be used to get back to the event
loop.

)r   current_tokenr   r   r   r   r   :   s     ,,..r   z&WeakKeyDictionary[Any, dict[str, Any]]	_run_varszdict[Any, _TokenWrapper]_token_wrappersT)frozenc                  $    \ rS rSr% SrS\S'   Srg)_TokenWrapperG   )_token__weakref__objectr!   r   N)__name__
__module____qualname____firstlineno__	__slots____annotations____static_attributes__r   r   r   r   r   G   s    'INr   r   c                  6    \ rS rSr\R
                  " 5       rSrg)_NoValueSetM   r   N)r$   r%   r&   r'   enumautoNO_VALUE_SETr*   r   r   r   r,   r,   M   s    99;Lr   r,   c                  "    \ rS rSrSrSS jrSrg)RunvarTokenQ   _var_value	_redeemedc                *    Xl         X l        SU l        g )NFr4   )selfvarvalues      r   __init__RunvarToken.__init__T   s    	=Br   )r7   r6   r5   N)r:   z	RunVar[T]r;   %T | Literal[_NoValueSet.NO_VALUE_SET])r$   r%   r&   r'   r(   r<   r*   r   r   r   r2   r2   Q   s    -Ir   r2   c                      \ rS rSr% SrSr\R                  rS\S'   \	" 5       r
S\S'   \4   SS jjr\SS	 j5       r\SS
 j5       r\SS j5       r\4   SS jjrSS jr	SS jrSS jrSrg)RunVarZ   zS
Like a :class:`~contextvars.ContextVar`, except scoped to the running event loop.
_name_defaultz!Literal[_NoValueSet.NO_VALUE_SET]r0   zset[_TokenWrapper]r   c                    Xl         X l        g NrB   )r9   namedefaults      r   r<   RunVar.__init__e   s     
r   c                d    [        5       n [        U   $ ! [         a    0 =n[        U'   Us $ f = frF   )r   r   KeyError)r9   tokenrun_varss      r   _current_varsRunVar._current_varsk   s<    	U## 	*,,Hy'O	s    //c                    g rF   r   r9   rH   s     r   get
RunVar.gett   s    (+r   c                    g rF   r   r9   s    r   rR   rS   w   s    r   c                    U R                   U R                     $ ! [         aE    U[        R                  La  Us $ U R
                  [        R                  La  U R
                  s $  Of = f[        SU R                   S35      e)NzRun variable "z!" has no value and no default set)rN   rC   rK   r@   r0   rD   LookupErrorrQ   s     r   rR   rS   z   s    	%%%djj11 	%f111f&9&99}}$ :	% TZZL(IJ
 	
s    A*)A*)A*c                    U R                   n[        XR                  U R                  [        R
                  5      5      nXU R                  '   U$ rF   )rN   r2   rR   rC   r@   r0   )r9   r;   current_varsrL   s       r   set
RunVar.set   s?    ))D"2"24::v?R?R"ST#(TZZ r   c                P   UR                   U La  [        S5      eUR                  (       a  [        S5      eUR                  [        R
                  L a   U R                  U R                  	 O#UR                  U R                  U R                  '   SUl        g ! [         a     Nf = f)Nz)This token does not belong to this RunVarz This token has already been usedT)	r5   
ValueErrorr7   r6   r,   r0   rN   rC   rK   )r9   rL   s     r   resetRunVar.reset   s    ::T!HII???@@<<;333&&tzz2 .3\\Dtzz*  s   B 
B%$B%c                $    SU R                   < S3$ )Nz<RunVar name=>)rC   rU   s    r   __repr__RunVar.__repr__   s    tzznA..r   )rD   rC   N)rG   strrH   r>   )returnzdict[str, T])rH   r   re   T | D)re   r   )rH   z%D | Literal[_NoValueSet.NO_VALUE_SET]re   rf   )r;   r   re   RunvarToken[T])rL   rg   re   None)re   rd   )r$   r%   r&   r'   __doc__r(   r,   r0   r)   rZ   r   r<   propertyrN   r	   rR   r^   rb   r*   r   r   r   r@   r@   Z   s     $I6A6N6NL3N*-%O'/ KW  "G    + +  @L
<
	
"/r   r@   )re   rh   )re   r#   )
__future__r   r.   dataclassesr   typingr   r   r   r   r	   weakrefr
   _core._eventloopr   r   r   r   r   r   r   r   r)   r   r   Enumr,   r2   r@   r   r   r   <module>rq      s    "  ! ; ; % /CLCL+ 	8; / 5F4G	1 G,.) . $  
$)) '!* G/WQZ G/r   