o
    ^i                     @  s  U d dl mZ d dlZd dlZd dlmZmZmZmZ d dl	m
Z
mZmZ d dlZejdkr9d dlmZmZmZ n
d dlmZmZmZ eddd	Zed
dddZeddddZedddZeddd	ZedZeddd	ZdZded< ejdkreeeef Zded< n ejdkreeedef eeeef f Zded< ndZded< G dd deeeef eeeef ZerG dd deje ZnejdkrejZnG dd dejee ZG dd dee Zd*d(d)Z dS )+    )annotationsN)AnyUnionTYPE_CHECKINGGeneric)	TypeAliasTypeVarSelf)   	   )	Generator	Coroutine	Awaitable
_YieldT_coT)	covariant_SendT_contra)contravariantdefault_ReturnT_co)r   r   _SendT_contra_nd)r   _ReturnT_co_nd_T_T_cozasyncio.Future[object] | Noner   _TaskYieldType)r
      _TaskCompatibleCoroz9Generator[_TaskYieldType, None, _T_co] | Awaitable[_T_co]c                      sN   e Zd ZdddZdddZdddZdd ZdddZd fddZ  Z	S )_InterceptorcoroqCoroutine[_YieldT_co, _SendT_contra_nd, _ReturnT_co_nd] | Generator[_YieldT_co, _SendT_contra_nd, _ReturnT_co_nd]contextcontextvars.Contextc                 C  s   || _ || _d S N)_Interceptor__coro_Interceptor__context)selfr   r    r%   T/var/www/html/stock_analysis/be/venv/lib/python3.10/site-packages/taskgroup/tasks.py__init__)   s   
z_Interceptor.__init__vr   returnr   c                 C  s   | j | jj|S r!   )r#   runr"   send)r$   r(   r%   r%   r&   r+   4   s   z_Interceptor.sendc                 G  s   | j j| jjg|R  S r!   )r#   r*   r"   throw)r$   exc_infor%   r%   r&   r,   7   s   z_Interceptor.throwc                 C  s   t | j|S r!   )getattrr"   )r$   namer%   r%   r&   __getattr__:   s   z_Interceptor.__getattr__r	   c                 C  s   | S r!   r%   r$   r%   r%   r&   	__await__=   s   z_Interceptor.__await__Nonec                   s   t    d S r!   )supercloser1   	__class__r%   r&   r5   @   s   z_Interceptor.close)r   r   r   r    )r(   r   r)   r   )r)   r   )r)   r	   )r)   r3   )
__name__
__module____qualname__r'   r+   r,   r0   r2   r5   __classcell__r%   r%   r6   r&   r   %   s    



r   c                   @     e Zd ZdS _TaskNr8   r9   r:   r%   r%   r%   r&   r>   F       r>   c                   @  r<   r=   r?   r%   r%   r%   r&   r>   N   r@   c                      sT   e Zd Zddd fddZd fddZdddZdddZd fddZ  ZS )TaskN)r   r   _TaskCompatibleCoro[_T_co]r)   r3   c                  s6   d| _ |d urt||}t j|g|R i | d S )Nr   )_num_cancels_requestedr   r4   r'   )r$   r   r   argskwargsr6   r%   r&   r'   S   s   
zTask.__init__rD   r   rE   boolc                   s(   |   s|  jd7  _t j|i |S )N   )donerC   r4   cancel)r$   rD   rE   r6   r%   r&   rI   [   s   zTask.cancelintc                 C  s   | j S r!   rC   r1   r%   r%   r&   
cancelling`   s   zTask.cancellingc                 C  s   | j dkr|  j d8  _ | j S )Nr   rG   rK   r1   r%   r%   r&   uncancelc   s   
zTask.uncancel!_TaskCompatibleCoro[_T_co] | Nonec                   s   t   }t|tr|jS |S r!   )r4   get_coro
isinstancer   r"   )r$   r   r6   r%   r&   rO   h   s   

zTask.get_coro)r   rB   r)   r3   )rD   r   rE   r   r)   rF   )r)   rJ   )r)   rN   )	r8   r9   r:   r'   rI   rL   rM   rO   r;   r%   r%   r6   r&   rA   R   s    

rA   loopasyncio.AbstractEventLoopr   rB   rE   r   r)   Task[_T_co]c                 K  s   t |fd| i|S )NrQ   )rA   )rQ   r   rE   r%   r%   r&   task_factoryo   s   rT   )rQ   rR   r   rB   rE   r   r)   rS   )!
__future__r   asynciocontextvarstypingr   r   r   r   typing_extensionsr   r   r	   sysversion_infocollections.abcr   r   r   r   r   r   r   r   r   r   r   __annotations__r   r   rA   r>   rT   r%   r%   r%   r&   <module>   sL    





