o
    #6d'                     @  s&  U d dl mZ d dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
 d dlmZ ddlmZ ejdkr9d d	lmZ nd d	lmZ e	d
Ze	dZd%ddZd%ddZd%ddZd&ddZe Zded< i Zded< eddG dd dZG dd  d ejZG d!d" d"ee ZG d#d$ d$ee ZdS )'    )annotationsN)	dataclass)AnyGenericTypeVaroverload)WeakKeyDictionary   )get_asynclib)      )LiteralTDreturnNonec                        t   I dH  dS )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 r   r   eC:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\site-packages\anyio/lowlevel.pyr         r   c                     r   )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   	r   c                     r   )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   0   r   r   objectc                   C  s
   t   S )zVReturn 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                   @  s   e Zd ZU dZded< dS )_TokenWrapper)_token__weakref__r   r   N)__name__
__module____qualname__	__slots____annotations__r   r   r   r   r   I   s   
 r   c                   @  s   e Zd Ze ZdS )_NoValueSetN)r!   r"   r#   enumautoNO_VALUE_SETr   r   r   r   r&   O   s    r&   c                   @  s   e Zd ZdZd	ddZdS )
RunvarToken_var_value	_redeemedvar	RunVar[T]value%T | Literal[_NoValueSet.NO_VALUE_SET]c                 C  s   || _ || _d| _d S )NFr+   )selfr/   r1   r   r   r   __init__V   s   
zRunvarToken.__init__N)r/   r0   r1   r2   )r!   r"   r#   r$   r4   r   r   r   r   r*   S   s    r*   c                   @  s   e Zd ZU dZdZejZded< e Z	ded< efd$ddZ
ed%ddZed&ddZed'ddZefd(ddZd)ddZd*dd Zd+d!d"Zd#S ),RunVarz[
    Like a :class:`~contextvars.ContextVar`, except scoped to the running event loop.
    _name_defaultz!Literal[_NoValueSet.NO_VALUE_SET]r)   zset[_TokenWrapper]r   namestrdefaultr2   c                 C  s   || _ || _d S Nr6   )r3   r9   r;   r   r   r   r4   g   s   
zRunVar.__init__r   dict[str, T]c                 C  s\   t  }	 zt| W S  ty   t|}| j| Y n ty,   i  }t|< | Y S w qr<   )r   r   	TypeErrorr   r   addKeyError)r3   tokenZrun_varsr   r   r   _current_varso   s   
zRunVar._current_varsr   T | Dc                 C     d S r<   r   r3   r;   r   r   r   get      z
RunVar.getr   c                 C  rD   r<   r   r3   r   r   r   rF      rG   %D | Literal[_NoValueSet.NO_VALUE_SET]c                 C  s\   z| j | j W S  ty$   |tjur| Y S | jtjur"| j Y S Y nw td| j d)NzRun variable "z!" has no value and no default set)rB   r7   r@   r5   r)   r8   LookupErrorrE   r   r   r   rF      s   

r1   RunvarToken[T]c                 C  s*   | j }t| || jtj}||| j< |S r<   )rB   r*   rF   r7   r5   r)   )r3   r1   Zcurrent_varsrA   r   r   r   set   s   
z
RunVar.setrA   r   c                 C  sf   |j | ur	td|jrtd|jtju r'z| j| j= W n ty&   Y nw |j| j| j< d|_d S )Nz)This token does not belong to this RunVarz This token has already been usedT)	r,   
ValueErrorr.   r-   r&   r)   rB   r7   r@   )r3   rA   r   r   r   reset   s   

zRunVar.resetc                 C  s   d| j dS )Nz<RunVar name=>)r7   rH   r   r   r   __repr__   s   zRunVar.__repr__N)r9   r:   r;   r2   )r   r=   )r;   r   r   rC   )r   r   )r;   rI   r   rC   )r1   r   r   rK   )rA   rK   r   r   )r   r:   )r!   r"   r#   __doc__r$   r&   r)   r%   rL   r   r4   propertyrB   r   rF   rN   rP   r   r   r   r   r5   \   s$   
 

r5   )r   r   )r   r   ) 
__future__r   r'   sysdataclassesr   typingr   r   r   r   weakrefr   Z_core._eventloopr
   version_infor   Ztyping_extensionsr   r   r   r   r   r   r   r%   r   r   Enumr&   r*   r5   r   r   r   r   <module>   s.    




	