o
    ;'hm ã                   @  s¬  U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlmZmZmZmZmZmZmZ d dlmZ d dlmZmZ d dlmZmZmZmZmZmZm Z m!Z! d dlm"Z" d dl#m$Z$m%Z% d d	lm&Z&m'Z' d d
l(m)Z) d dl*m+Z+m,Z, d dl-m.Z.m/Z/m0Z0m1Z1 d dl2m3Z3 d dlm4Z4 d dl5m6Z6 d dl7m8Z8 d dl	m9Z9m:Z: d dlm;Z; d dl<m=Z=m>Z> d dl?m@Z@mAZAmBZBmCZCmDZDmEZE d dlmFZF d dlGZGddlHmIZImJZJmKZKmLZLmMZM ddlNmOZOmPZP ddlQmRZRmSZSmTZTmUZUmVZVmWZW ddlXmYZY ddlZm[Z[ ddl\m]Z^ ddl\m_Z` ddl\maZb ddl\mcZcmdZd dd l\meZf dd!lgmhZi dd"lMmjZjmkZkmlZlmmZmmnZn dd#lompZp dd$lqmrZr dd%lsmtZtmuZu eA�r_d d&lvmwZw nexZwe
jyd'k�rnd d(l?mzZz nd d(l{mzZz e
jyd)k�r‰d d*lm|Z| d d+l?m}Z}m~Z~ n@d dlZd dlZd dl7Z7d d,lm€Z€m�Z�m‚Z‚mƒZƒ d d-l„m…Z… d d+l{m}Z}m~Z~ G d.d/„ d/ej†ƒZ‡G d0d1„ d1ƒZ|d§d6d7„Zˆd§d8d9„Z‰eDd:ƒZŠeDd;d<d=�Z‹e}d>ƒZŒezd?ƒZ�erd@ƒZŽdAe�d@< d¨dCdD„Z�d©dHdI„Z‘eFƒ Z’dJe�dK< dªdNdO„Z“d«dRdS„Z”G dTdU„ dUeiƒZhG dVdW„ dWƒZ•eFƒ Z–dXe�dY< G dZd[„ d[eMj—ƒZ˜e
jyd\k�r,ej™jšZ›d]e�d^< ndZ›G d_d`„ d`eMjœƒZœe�eCeŠ eCež f ZŸG dadb„ dbe;ƒZ erdcƒZ¡dde�dc< erdeƒZ¢dfe�de< G dgdh„ dheMj£ƒZ£e)didj�G dkdl„ dleMj¤ƒƒZ¥e)didj�G dmdn„ dneMj¦ƒƒZ§e)didj�G dodp„ dpeMj¨ƒƒZ¨d¬dudv„Z©d­dxdy„ZªG dzd{„ d{ej«ƒZ¬G d|d}„ d}ej­ƒZ­G d~d„ deMj®ƒZ®G d€d�„ d�ƒZ¯G d‚dƒ„ dƒe¯eMj°ƒZ°G d„d…„ d…eMjlƒZ±G d†d‡„ d‡eMjlƒZ²G dˆd‰„ d‰eMj³ƒZ³G dŠd‹„ d‹eMj´ƒZ´G dŒd�„ d�e¯eMjµƒZµG dŽd�„ d�e¯eMj¶ƒZ¶erd�ƒZ·d‘e�d’< erd“ƒZ¸d‘e�d”< G d•d–„ d–e`ƒZ_G d—d˜„ d˜ebƒZaG d™dš„ dšefƒZeG d›dœ„ dœe^ƒZ]erd�ƒZ¹dže�d�< G dŸd „ d ƒZºG d¡d¢„ d¢eLƒZ»G d£d¤„ d¤eMj¼ƒZ¼G d¥d¦„ d¦ejƒZ½e½Z¾dS )®é    )ÚannotationsN)ÚAbstractEventLoopÚCancelledErrorÚ	all_tasksÚcreate_taskÚcurrent_taskÚget_running_loopÚsleep)Ú_run_until_complete_cb)ÚOrderedDictÚdeque)ÚAsyncGeneratorÚAsyncIteratorÚ	AwaitableÚCallableÚ
CollectionÚ	CoroutineÚIterableÚSequence)ÚFuture)ÚAbstractContextManagerÚsuppress)ÚContextÚcopy_context)Ú	dataclass)ÚpartialÚwraps)ÚCORO_RUNNINGÚCORO_SUSPENDEDÚgetcoroutinestateÚiscoroutine)ÚIOBase)ÚPathLike)ÚQueue)ÚSignals)ÚAddressFamilyÚ
SocketKind)ÚThread)ÚCodeTypeÚTracebackType)ÚIOÚTYPE_CHECKINGÚAnyÚOptionalÚTypeVarÚcast)ÚWeakKeyDictionaryé   )ÚCapacityLimiterStatisticsÚEventStatisticsÚLockStatisticsÚTaskInfoÚabc)Úclaim_worker_threadÚthreadlocals)ÚBrokenResourceErrorÚBusyResourceErrorÚClosedResourceErrorÚEndOfStreamÚ
WouldBlockÚiterate_exceptions)Úconvert_ipv6_sockaddr)Úcreate_memory_object_stream©ÚCapacityLimiter©ÚEvent©ÚLock)ÚResourceGuardÚSemaphoreStatistics©Ú	Semaphore©ÚCancelScope)ÚAsyncBackendÚIPSockAddrTypeÚSocketListenerÚUDPPacketTypeÚUNIXDatagramPacketType)ÚStrOrBytesPath)ÚRunVar)ÚMemoryObjectReceiveStreamÚMemoryObjectSendStream)ÚFileDescriptorLike)é   é
   )Ú	ParamSpec©rW   é   )ÚRunner)ÚTypeVarTupleÚUnpack)Ú
coroutinesÚeventsÚ
exceptionsÚtasks)ÚBaseExceptionGroupc                   @  s   e Zd ZdZdZdZdS )Ú_StateÚcreatedZinitializedÚclosedN)Ú__name__Ú
__module__Ú__qualname__ÚCREATEDÚINITIALIZEDÚCLOSED© rm   rm   úNC:\Users\shubh\Videos\agent\nova\Lib\site-packages\anyio/_backends/_asyncio.pyrd   ~   s    rd   c                   @  sj   e Zd Zdddœd&dd„Zd'd
d„Zd(dd„Zd)dd„Zd*dd„Zddœd+dd„Zd)d d!„Z	d,d$d%„Z
dS )-r\   N©ÚdebugÚloop_factoryrp   úbool | Nonerq   ú&Callable[[], AbstractEventLoop] | Nonec                C  s0   t j| _|| _|| _d | _d | _d| _d| _d S )Nr   F)	rd   rj   Ú_stateÚ_debugÚ_loop_factoryÚ_loopÚ_contextÚ_interrupt_countÚ_set_event_loop)Úselfrp   rq   rm   rm   rn   Ú__init__…   s   
zRunner.__init__Úreturnc                 C  s   |   ¡  | S ©N)Ú
_lazy_init©r{   rm   rm   rn   Ú	__enter__“   s   zRunner.__enter__Úexc_typeútype[BaseException]Úexc_valÚBaseExceptionÚexc_tbr)   ÚNonec                 C  s   |   ¡  d S r~   )Úclose©r{   r‚   r„   r†   rm   rm   rn   Ú__exit__—   s   zRunner.__exit__c              	   C  sª   | j tjurdS z8| j}t|ƒ | | ¡ ¡ t|dƒr$| | ¡ ¡ n| t	|ƒ¡ W | j
r4t d¡ | ¡  d| _tj| _ dS | j
rIt d¡ | ¡  d| _tj| _ w )zShutdown and close event loop.NÚshutdown_default_executor)rt   rd   rk   rw   Ú_cancel_all_tasksÚrun_until_completeÚshutdown_asyncgensÚhasattrr‹   Ú_shutdown_default_executorrz   r`   Úset_event_looprˆ   rl   ©r{   Úlooprm   rm   rn   rˆ   Ÿ   s(   
€
ü

zRunner.closer   c                 C  s   |   ¡  | jS )zReturn embedded event loop.)r   rw   r€   rm   rm   rn   Úget_loop²   s   zRunner.get_loop©ÚcontextÚcoroúCoroutine[T_Retval]ÚT_Retvalc             
   C  sd  t  |¡std|›�ƒ‚t ¡ durtdƒ‚|  ¡  |du r!| j}| | j	j
|¡}t ¡ t ¡ u rVt tj¡tju rVt| j|d�}z	t tj|¡ W n tyU   d}Y nw d}d| _z?z| j	 |¡W W |duryt tj¡|u rzt tjtj¡ S S S  tjyš   | jdkr™t|ddƒ}|dur™|ƒ dkr™tƒ ‚‚ w |dur°t tj¡|u r±t tjtj¡ w w w )z/Run a coroutine inside the embedded event loop.za coroutine was expected, got Nz7Runner.run() cannot be called from a running event loop)Ú	main_taskr   Úuncancel)r_   r    Ú
ValueErrorr`   Ú_get_running_loopÚRuntimeErrorr   rx   Úrunrw   r   Ú	threadingÚcurrent_threadÚmain_threadÚsignalÚ	getsignalÚSIGINTÚdefault_int_handlerr   Ú
_on_sigintry   r�   ra   r   ÚgetattrÚKeyboardInterrupt)r{   r—   r–   ÚtaskZsigint_handlerr›   rm   rm   rn   rŸ   ·   sN   
ÿü	ý÷
ûýz
Runner.runc                 C  sŠ   | j tju r
tdƒ‚| j tju rd S | jd u r)t ¡ | _| j	s(t 
| j¡ d| _	n|  ¡ | _| jd ur:| j | j¡ t ¡ | _tj| _ d S )NzRunner is closedT)rt   rd   rl   rž   rk   rv   r`   Únew_event_looprw   rz   r‘   ru   Ú	set_debugÚcontextvarsr   rx   r€   rm   rm   rn   r   ç   s   

€


zRunner._lazy_initrš   úasyncio.Taskc                 C  sB   |  j d7  _ | j dkr| ¡ s| ¡  | j dd„ ¡ d S tƒ ‚)Né   c                   S  s   d S r~   rm   rm   rm   rm   rn   Ú<lambda>ÿ   s    z#Runner._on_sigint.<locals>.<lambda>)ry   ÚdoneÚcancelrw   Úcall_soon_threadsafer©   )r{   ÚsignumÚframerš   rm   rm   rn   r§   ú   s   zRunner._on_sigint)rp   rr   rq   rs   )r}   r\   )r‚   rƒ   r„   r…   r†   r)   r}   r‡   ©r}   r‡   ©r}   r   )r—   r˜   r}   r™   )rš   r®   r}   r‡   )rg   rh   ri   r|   r�   rŠ   rˆ   r”   rŸ   r   r§   rm   rm   rm   rn   r\   ƒ   s    ü




0r\   r“   r   r}   r‡   c                 C  st   t  | ¡}|s	d S |D ]}| ¡  q|  t j|ddiŽ¡ |D ]}| ¡ r&q| ¡ d ur7|  d| ¡ |dœ¡ qd S )NÚreturn_exceptionsTz1unhandled exception during asyncio.run() shutdown)ÚmessageÚ	exceptionrª   )rb   r   r²   r�   ÚgatherÚ	cancelledrº   Úcall_exception_handler)r“   Ú	to_cancelrª   rm   rm   rn   rŒ     s$   

ýÿ€ürŒ   c                 ƒ  sh   �d
‡ fdd„}dˆ _ ˆ jdu rdS ˆ  ¡ }tj||fd	�}| ¡  z|I dH  W | ¡  dS | ¡  w )z.Schedule the shutdown of the default executor.Úfutureúasyncio.futures.Futurer}   r‡   c              
     sX   zˆ j jdd� ˆ  | jd ¡ W d S  ty+ } zˆ  | j|¡ W Y d }~d S d }~ww )NT)Úwait)Ú_default_executorÚshutdownr³   Ú
set_resultÚ	ExceptionÚset_exception)r¿   Úex©r“   rm   rn   Ú_do_shutdown  s   €ÿz0_shutdown_default_executor.<locals>._do_shutdownTN)ÚtargetÚargs)r¿   rÀ   r}   r‡   )Ú_executor_shutdown_calledrÂ   Úcreate_futurer    r'   ÚstartÚjoin)r“   rÉ   r¿   Úthreadrm   rÈ   rn   r�     s   €
r�   r™   ÚT_contraT)ÚcontravariantÚPosArgsTÚPÚ
_root_taskzRunVar[asyncio.Task | None]r®   c                  C  sÞ   t  d ¡} | d ur|  ¡ s| S tƒ D ]-}|jr?| ¡ s?dd„ |jD ƒ}|D ]}|tu s3t|dd ƒdkr>t  |¡ |    S q%qtt	j
tƒ ƒ}t |¡}|rm|j}|rb|jd urb|j}|rb|jd usX|d urmtt	j
|jƒS |S )Nc                 S  s   g | ]\}}|‘qS rm   rm   )Ú.0Úcbr–   rm   rm   rn   Ú
<listcomp>?  ó    z"find_root_task.<locals>.<listcomp>rh   zuvloop.loop)rÕ   Úgetr±   r   Ú
_callbacksr
   r¨   Úsetr/   ÚasyncioÚTaskr   Ú_task_statesÚcancel_scopeÚ_parent_scopeÚ
_host_task)Ú	root_taskrª   Ú	callbacksr×   Ústaterà   rm   rm   rn   Úfind_root_task7  s.   


ý€
ÿræ   Úfuncr   Ústrc                 C  s0   t | dd ƒ}t | dd ƒ}d dd„ ||fD ƒ¡S )Nrh   ri   Ú.c                 S  s   g | ]}|r|‘qS rm   rm   )rÖ   Úxrm   rm   rn   rØ   Y  rÙ   z%get_callable_name.<locals>.<listcomp>)r¨   rÏ   )rç   ÚmoduleÚqualnamerm   rm   rn   Úget_callable_nameV  s   rí   z1WeakKeyDictionary[asyncio.AbstractEventLoop, Any]Ú	_run_varsrª   Úboolc                 C  sH   |   ¡ }|dus
J ‚z	t|ƒttfv W S  ty#   td| › d�ƒd‚w )zBReturn ``True`` if the task has been started and has not finished.NzCannot determine if task z has started or not)Úget_coror   r   r   ÚAttributeErrorrÅ   )rª   r—   rm   rm   rn   Ú_task_startedc  s   þrò   Úexcr   c                 C  sD   	 | j rt| j d tƒr| j d  d¡rdS t| jtƒr | j} q dS )NTr   úCancelled by cancel scope F)rË   Ú
isinstancerè   Ú
startswithÚ__context__r   ©ró   rm   rm   rn   Úis_anyio_cancellationu  s   ÿþýrù   c                   @  sâ   e Zd Zejddœd0dd	„Zejdfd1d
d„Zd2dd„Zd3dd„Ze	d4dd„ƒZ
e	d4dd„ƒZd5dd„Zd6dd„Zd5d d!„Zd5d"d#„Ze	d7d$d%„ƒZejd8d'd%„ƒZe	d4d(d)„ƒZe	d4d*d+„ƒZe	d4d,d-„ƒZejd9d.d-„ƒZd/S ):rL   F©ÚdeadlineÚshieldrû   Úfloatrü   rï   r}   c                C  ó
   t  | ¡S r~   ©ÚobjectÚ__new__©Úclsrû   rü   rm   rm   rn   r  ‰  s   
zCancelScope.__new__c                 C  sd   || _ || _d | _tƒ | _d| _d| _d| _d | _d | _	tƒ | _
d | _tjdkr-d| _d S d | _d S )NFrZ   r   )Ú	_deadlineÚ_shieldrá   rÜ   Ú_child_scopesÚ_cancel_calledÚ_cancelled_caughtÚ_activeÚ_timeout_handleÚ_cancel_handleÚ_tasksrâ   ÚsysÚversion_infoÚ_pending_uncancellations)r{   rû   rü   rm   rm   rn   r|   Ž  s   


zCancelScope.__init__c                 C  s¶   | j rtdƒ‚ttjtƒ ƒ | _}| j |¡ zt	| }W n t
y/   td | ƒ}|t	|< Y nw |j| _| |_| jd urJ| jj | ¡ | jj |¡ |  ¡  d| _ | jrY|  | ¡ | S )Nz;Each CancelScope may only be used for a single 'with' blockT)r	  rž   r/   rÝ   rÞ   r   râ   r  Úaddrß   ÚKeyErrorÚ	TaskStaterà   rá   r  ÚdiscardÚ_timeoutr  Ú_deliver_cancellation)r{   Z	host_taskÚ
task_staterm   rm   rn   r�   Ÿ  s,   ÿ
þ

zCancelScope.__enter__r‚   útype[BaseException] | Noner„   úBaseException | Noner†   úTracebackType | Nonec                 C  sŽ  ~| j stdƒ‚tƒ | jurtdƒ‚| jd usJ ‚t | j¡}|d u s(|j| ur,tdƒ‚z•d| _ | jr;| j ¡  d | _| j	 
| j¡ | jd urV| jj 
| ¡ | jj	 | j¡ | j|_|  ¡  | jr�| js�| jrv| j ¡  |  jd8  _| jsgd}|d ur’t|ƒD ]}t|tƒr�t|ƒr�d| _q€d}q€| jo—| W d | _~S | jr»| jd us§J ‚| jjd us¯J ‚| j j| j7  _d| _W d | _~dS d | _~w )NzThis cancel scope is not activezIAttempted to exit cancel scope in a different task than it was entered inzTAttempted to exit a cancel scope that isn't the current tasks's current cancel scopeFr¯   Tr   )r	  rž   r   râ   rß   rÚ   rà   r
  r²   r  Úremoverá   r  r  Ú_restart_cancellation_in_parentr  Ú%_parent_cancellation_is_visible_to_usr  r›   r>   rõ   r   rù   r  )r{   r‚   r„   r†   Zhost_task_stateZcannot_swallow_exc_valró   rm   rm   rn   rŠ   ¾  sh   ÿÿ


þÿõÿÿzCancelScope.__exit__c                 C  s2   | }|d ur|j rdS |jrdS |j}|d usdS )NTF)r  rü   rá   )r{   rà   rm   rm   rn   Ú_effectively_cancelled
  s   ù	z"CancelScope._effectively_cancelledc                 C  s   | j d uo| j o| j jS r~   )rá   rü   r  r€   rm   rm   rn   r    s
   
ÿýz1CancelScope._parent_cancellation_is_visible_to_usr‡   c                 C  sF   | j tjkr!tƒ }| ¡ | j kr|  ¡  d S | | j | j¡| _d S d S r~   )	r  ÚmathÚinfr   Útimer²   Úcall_atr  r
  r’   rm   rm   rn   r     s   ûzCancelScope._timeoutÚoriginc                 C  sà   d}t ƒ }| jD ]>}d}|jrq||urF|| ju st|ƒrF|j}t|tjƒr*| 	¡ sF| 
dt|ƒd›�¡ ||ju rF|jdurF| jd7  _q| jD ]}|jsY|jsY| |¡pX|}qJ|| u rn|rktƒ  | j|¡| _|S d| _|S )aZ  
        Deliver cancellation to directly contained tasks and nested cancel scopes.

        Schedule another run at the end if we still have tasks eligible for
        cancellation.

        :param origin: the cancel scope that originated the cancellation
        :return: ``True`` if the delivery needs to be retried on the next cycle

        FTrô   rê   Nr¯   )r   r  Ú_must_cancelrâ   rò   Ú_fut_waiterrõ   rÝ   r   r±   r²   Úidr  r  r  Úcancel_calledr  r   Ú	call_soonr  )r{   r"  Zshould_retryÚcurrentrª   ÚwaiterÚscoperm   rm   rn   r  (  s4   


€
€ÿþz!CancelScope._deliver_cancellationc                 C  sL   | j }|dur$|jr|jdu r| |¡ dS |jrdS |j }|dusdS dS )zb
        Restart the cancellation effort in the closest directly cancelled parent scope.

        N)rá   r  r  r  r  ©r{   r*  rm   rm   rn   r  V  s   

õz+CancelScope._restart_cancellation_in_parentc                 C  sB   | j s| jr| j ¡  d | _d| _ | jd ur|  | ¡ d S d S d S ©NT)r  r
  r²   râ   r  r€   rm   rm   rn   r²   i  s   

ùzCancelScope.cancelc                 C  ó   | j S r~   )r  r€   rm   rm   rn   rû   s  ó   zCancelScope.deadlineÚvaluec                 C  sD   t |ƒ| _| jd ur| j ¡  d | _| jr| js |  ¡  d S d S d S r~   )rý   r  r
  r²   r	  r  r  ©r{   r/  rm   rm   rn   rû   w  s   


ÿc                 C  r-  r~   )r  r€   rm   rm   rn   r&  �  r.  zCancelScope.cancel_calledc                 C  r-  r~   )r  r€   rm   rm   rn   Úcancelled_caught…  r.  zCancelScope.cancelled_caughtc                 C  r-  r~   )r  r€   rm   rm   rn   rü   ‰  r.  zCancelScope.shieldc                 C  s(   | j |kr|| _ |s|  ¡  d S d S d S r~   )r  r  r0  rm   rm   rn   rü   �  s   
ýN©rû   rý   rü   rï   r}   rL   )rû   rý   rü   rï   )r}   rL   )r‚   r  r„   r  r†   r  r}   rï   ©r}   rï   r¶   )r"  rL   r}   rï   ©r}   rý   ©r/  rý   r}   r‡   )r/  rï   r}   r‡   )rg   rh   ri   r  r  r  r|   r�   rŠ   Úpropertyr  r  r  r  r  r²   rû   Úsetterr&  r1  rü   rm   rm   rm   rn   rL   ˆ  s4    ÿ

L


.

	rL   c                   @  s   e Zd ZdZdZd
dd„Zd	S )r  z 
    Encapsulates auxiliary task information that cannot be added to the Task instance
    itself because there are no guarantees about its implementation.
    )Ú	parent_idrà   Ú__weakref__r8  ú
int | Nonerà   úCancelScope | Nonec                 C  ó   || _ || _d S r~   ©r8  rà   )r{   r8  rà   rm   rm   rn   r|   ¢  ó   
zTaskState.__init__N)r8  r:  rà   r;  )rg   rh   ri   Ú__doc__Ú	__slots__r|   rm   rm   rm   rn   r  š  s    r  z*WeakKeyDictionary[asyncio.Task, TaskState]rß   c                   @  s"   e Zd Zddd„Zdddd„ZdS )Ú_AsyncioTaskStatusr¿   úasyncio.Futurer8  Úintc                 C  r<  r~   )Ú_futureÚ
_parent_id)r{   r¿   r8  rm   rm   rn   r|   °  r>  z_AsyncioTaskStatus.__init__Nr/  úT_contra | Noner}   r‡   c                 C  sX   z| j  |¡ W n tjy   | j  ¡ stdƒd ‚Y nw ttjtƒ ƒ}| j	t
| _d S )Nz.called 'started' twice on the same task status)rD  rÄ   rÝ   ÚInvalidStateErrorr¼   rž   r/   rÞ   r   rE  rß   r8  )r{   r/  rª   rm   rm   rn   Ústarted´  s   
ÿþÿÿz_AsyncioTaskStatus.started)r¿   rB  r8  rC  r~   )r/  rF  r}   r‡   )rg   rh   ri   r|   rH  rm   rm   rm   rn   rA  ¯  s    
rA  ©rW   é   zCodeType | NoneÚ_eager_task_factory_codec                   @  sX   e Zd Zd$dd„Zd%dd„Zd&dd„Z	d'd(dd„Zddœd)dd„Zddœd*d"d#„ZdS )+Ú	TaskGroupr}   r‡   c                 C  s&   t ƒ | _d| _g | _tƒ | _d | _d S )NF)rL   rà   r	  Ú_exceptionsrÜ   r  Ú_on_completed_futr€   rm   rm   rn   r|   È  s
   
zTaskGroup.__init__c                 Ã  s   �| j  ¡  d| _| S r,  )rà   r�   r	  r€   rm   rm   rn   Ú
__aenter__Ï  s   €
zTaskGroup.__aenter__r‚   r  r„   r  r†   r  rr   c                 Ã  s‚  �zº|d ur| j  ¡  t|tƒs| j |¡ tƒ }zq| jrqtƒ �H}| jra| 	¡ | _
z| j
I d H  W n) tyZ } zd|_| j  ¡  |d u sNt|tƒrPt|ƒsP|}W Y d }~nd }~ww d | _
| js$W d   ƒ n1 skw   Y  nt ¡ I d H  d| _| jr…td| jƒd ‚|r‰|‚W n$ ty® } z| j  t|ƒ||j¡r©W Y d }~W ~~| `dS ‚ d }~ww | j  |||¡W ~~| `S ~~| `w )NTFzunhandled errors in a TaskGroup)rà   r²   rõ   r   rM  Úappendr   r  rL   rÍ   rN  rü   rù   ÚAsyncIOBackendÚcancel_shielded_checkpointr	  rc   r…   rŠ   ÚtypeÚ__traceback__)r{   r‚   r„   r†   r“   Z
wait_scoperó   rm   rm   rn   Ú	__aexit__Ô  sd   €



ÿþ€óì€ÿ€ÿþÿü€üzTaskGroup.__aexit__Nrç   ú,Callable[[Unpack[PosArgsT]], Awaitable[Any]]rË   útuple[Unpack[PosArgsT]]Únamer   Útask_status_futureúasyncio.Future | Noner®   c                   sN  d‡ ‡‡fdd„}ˆ j stdƒ‚i }ˆr%ttƒ ƒ}tˆtˆ jjƒƒ|d< ntˆ jjƒ}||i |¤Ž}t|ƒsQt|d	ƒrA|j	› d
�nd}	t
d|	› |j› d|›d�ƒ‚|d u rYt|ƒnt|ƒ}t ¡ }
|
 ¡  }r„t|dd ƒtu r„t|dd ƒ }r„|d j}|||
|d�‰nt||d�‰t|ˆ jd�tˆ< ˆ jj ˆ¡ ˆ j ˆ¡ ˆ |¡ ˆS )NÚ_taskr®   r}   r‡   c              
     sd  t |  }|jd usJ ‚| |jjv sJ ‚|jj | ¡ ˆ j ˆ¡ t | = ˆ jd ur>ˆ js>zˆ j d ¡ W n
 tjy=   Y nw z|  ¡ }W n# t	yg } zt
|jt	ƒr[|j}t
|jt	ƒsR|}W Y d }~nd }~ww |d ur�ˆd urvˆ ¡ rvd S ˆd u s~ˆ ¡ r–t
|t	ƒs‰ˆ j |¡ ˆ jjs”ˆ j ¡  d S d S ˆ |¡ d S ˆd ur®ˆ ¡ s°ˆ tdƒ¡ d S d S d S )Nz2Child exited without calling task_status.started())rß   rà   r  r  rN  rÄ   rÝ   rG  rº   r   rõ   r÷   r¼   r±   rM  rP  r  r²   rÆ   rž   )r[  r  ró   Úe©r{   rª   rY  rm   rn   Ú	task_done  sH   ÿÿ€ü
ÿÿÿz#TaskGroup._spawn.<locals>.task_donez;This task group is not active; no new tasks can be started.Ztask_statusrh   ré   Ú z	Expected z0() to return a coroutine, but the return value (z) is not a coroutine objectÚ__code__Ú__closure__r   )r“   rX  ©rX  r=  )r[  r®   r}   r‡   )r	  rž   r%  r   rA  rà   râ   r    r�   rh   Ú	TypeErrorri   rí   rè   rÝ   r   Úget_task_factoryr¨   rK  Úcell_contentsr   r  rß   r  r  Úadd_done_callback)r{   rç   rË   rX  rY  r^  Úkwargsr8  r—   Úprefixr“   ÚfactoryÚclosureZcustom_task_constructorrm   r]  rn   Ú_spawn  sJ   *ÿ

ÿÿÿ
ÿÿ

ÿ
zTaskGroup._spawnrb  úUnpack[PosArgsT]c                G  s   |   |||¡ d S r~   )rk  )r{   rç   rX  rË   rm   rm   rn   Ú
start_soono  s   zTaskGroup.start_soonúCallable[..., Awaitable[Any]]r,   c                Ç  sª   �t  ¡ }|  ||||¡}z|I d H W S  tyT   | ¡  tdd��( ttƒ� |I d H  W d   ƒ n1 s8w   Y  W d   ƒ ‚ W d   ƒ ‚ 1 sNw   Y  ‚ w )NT©rü   )rÝ   r   rk  r   r²   rL   r   )r{   rç   rX  rË   r¿   rª   rm   rm   rn   rÎ   w  s    €(ÿýýúzTaskGroup.startr¶   )r}   rL  )r‚   r  r„   r  r†   r  r}   rr   r~   )
rç   rV  rË   rW  rX  r   rY  rZ  r}   r®   )rç   rV  rË   rl  rX  r   r}   r‡   )rç   rn  rË   r   rX  r   r}   r,   )	rg   rh   ri   r|   rO  rU  rk  rm  rÎ   rm   rm   rm   rn   rL  Ç  s    


Dû`ü	ÿrL  c                      sB   e Zd ZdZd‡ fdd	„Zddd„Zddd„Zdddd„Z‡  ZS ) ÚWorkerThreadrX   rã   r®   Úworkersúset[WorkerThread]Úidle_workersúdeque[WorkerThread]c                   sF   t ƒ jdd� || _|| _|| _|j| _tdƒ| _t	 
¡ | _d| _d S )NzAnyIO worker threadrb  r1   F)Úsuperr|   rã   rq  rs  rw   r“   r#   ÚqueuerQ  Úcurrent_timeÚ
idle_sinceÚstopping)r{   rã   rq  rs  ©Ú	__class__rm   rn   r|   –  s   þ

zWorkerThread.__init__r¿   rB  Úresultr,   ró   r  r}   r‡   c                 C  sh   t  ¡ | _| js| j | ¡ | ¡ s2|d ur+t|tƒr$t	dƒ}||_
|}| |¡ d S | |¡ d S d S )Nzcoroutine raised StopIteration)rQ  rw  rx  ry  rs  rP  r¼   rõ   ÚStopIterationrž   Ú	__cause__rÆ   rÄ   )r{   r¿   r|  ró   Únew_excrm   rm   rn   Ú_report_result§  s   

÷zWorkerThread._report_resultc           
      C  sö   t t| jƒ�k 	 | j ¡ }|d u r	 W d   ƒ d S |\}}}}}| ¡ sed }d }|t_z$z|j|g|¢R Ž }W n t	yL }	 z|	}W Y d }	~	nd }	~	ww W t`nt`w | j 
¡ sc| j | j|||¡ ~~| j ¡  ~~~~~~q1 stw   Y  d S r~   )r7   rQ  r“   rv  rÚ   r¼   r8   Úcurrent_cancel_scoperŸ   r…   Ú	is_closedr³   r€  r^  )
r{   Úitemr–   rç   rË   r¿   rà   r|  rº   ró   rm   rm   rn   rŸ   ¹  s8   
û€ÿ€

ÿ
æÿzWorkerThread.runNÚfúasyncio.Task | Nonec                 C  sF   d| _ | j d ¡ | j | ¡ z	| j | ¡ W d S  ty"   Y d S w r,  )ry  rv  Ú
put_nowaitrq  r  rs  r  rœ   )r{   r„  rm   rm   rn   Ústop×  s   ÿzWorkerThread.stop)rã   r®   rq  rr  rs  rt  )r¿   rB  r|  r,   ró   r  r}   r‡   r¶   r~   )r„  r…  r}   r‡   )	rg   rh   ri   ÚMAX_IDLE_TIMEr|   r€  rŸ   r‡  Ú__classcell__rm   rm   rz  rn   rp  “  s    

rp  Ú_threadpool_idle_workerszRunVar[deque[WorkerThread]]Ú_threadpool_workerszRunVar[set[WorkerThread]]c                      s2   e Zd Zddd„Zd‡ fdd„Zddd„Z‡  ZS )ÚBlockingPortalr}   c                 C  rþ   r~   rÿ   ©r  rm   rm   rn   r  è  ó   
zBlockingPortal.__new__r‡   c                   s   t ƒ  ¡  tƒ | _d S r~   )ru  r|   r   rw   r€   rz  rm   rn   r|   ë  s   
zBlockingPortal.__init__rç   ú<Callable[[Unpack[PosArgsT]], Awaitable[T_Retval] | T_Retval]rË   rW  rg  údict[str, Any]rX  r   r¿   úFuture[T_Retval]c                 C  s,   t  t| jj|d�| j||||f| j¡ d S )Nrb  )rQ  Úrun_sync_from_threadr   Z_task_grouprm  Z
_call_funcrw   )r{   rç   rË   rg  rX  r¿   rm   rm   rn   Ú_spawn_task_from_threadï  s
   ýz&BlockingPortal._spawn_task_from_thread)r}   rŒ  r¶   )rç   r�  rË   rW  rg  r�  rX  r   r¿   r‘  r}   r‡   )rg   rh   ri   r  r|   r“  r‰  rm   rm   rz  rn   rŒ  ç  s    
rŒ  F)Úeqc                   @  s,   e Zd ZU ded< dddd	„Zddd„ZdS )ÚStreamReaderWrapperzasyncio.StreamReaderÚ_streamé   Ú	max_bytesrC  r}   Úbytesc                 Ã  s    �| j  |¡I d H }|r|S t‚r~   )r–  Úreadr<   )r{   r˜  Údatarm   rm   rn   Úreceive  s
   €zStreamReaderWrapper.receiver‡   c                 Ã  s"   �| j  tƒ ¡ t ¡ I d H  d S r~   )r–  rÆ   r;   rQ  Ú
checkpointr€   rm   rm   rn   Úaclose  s   €zStreamReaderWrapper.acloseN©r—  ©r˜  rC  r}   r™  r¶   )rg   rh   ri   Ú__annotations__rœ  rž  rm   rm   rm   rn   r•    s   
 r•  c                   @  s*   e Zd ZU ded< ddd„Zdd	d
„ZdS )ÚStreamWriterWrapperzasyncio.StreamWriterr–  rƒ  r™  r}   r‡   c                 Ã  s"   �| j  |¡ | j  ¡ I d H  d S r~   )r–  ÚwriteÚdrain©r{   rƒ  rm   rm   rn   Úsend  s   €zStreamWriterWrapper.sendc                 Ã  s   �| j  ¡  t ¡ I d H  d S r~   )r–  rˆ   rQ  r�  r€   rm   rm   rn   rž    s   €
zStreamWriterWrapper.acloseN©rƒ  r™  r}   r‡   r¶   )rg   rh   ri   r¡  r¦  rž  rm   rm   rm   rn   r¢    s   
 
r¢  c                   @  s¦   e Zd ZU ded< ded< ded< ded< d$d
d„Zd%dd„Zd$dd„Zd$dd„Zd&dd„Ze	d%dd„ƒZ
e	d'dd„ƒZe	d(dd„ƒZe	d)dd „ƒZe	d)d!d"„ƒZd#S )*ÚProcesszasyncio.subprocess.ProcessÚ_processzStreamWriterWrapper | NoneÚ_stdinzStreamReaderWrapper | NoneÚ_stdoutÚ_stderrr}   r‡   c              	   Ã  sº   �t dd��M}| jr| j ¡ I d H  | jr| j ¡ I d H  | jr(| j ¡ I d H  d|_z	|  ¡ I d H  W n tyJ   d|_|  ¡  |  ¡ I d H  ‚ w W d   ƒ d S 1 sVw   Y  d S )NTro  F)	rL   rª  rž  r«  r¬  rü   rÁ   r…   Úkillr+  rm   rm   rn   rž  '  s&   €üÿ"özProcess.acloserC  c                 Ã  s   �| j  ¡ I d H S r~   )r©  rÁ   r€   rm   rm   rn   rÁ   9  s   €zProcess.waitc                 C  ó   | j  ¡  d S r~   )r©  Ú	terminater€   rm   rm   rn   r¯  <  ó   zProcess.terminatec                 C  r®  r~   )r©  r­  r€   rm   rm   rn   r­  ?  r°  zProcess.killr£   c                 C  s   | j  |¡ d S r~   )r©  Úsend_signal)r{   r£   rm   rm   rn   r±  B  ó   zProcess.send_signalc                 C  ó   | j jS r~   )r©  Úpidr€   rm   rm   rn   r´  E  ó   zProcess.pidr:  c                 C  r³  r~   )r©  Ú
returncoder€   rm   rm   rn   r¶  I  rµ  zProcess.returncodeúabc.ByteSendStream | Nonec                 C  r-  r~   )rª  r€   rm   rm   rn   ÚstdinM  r.  zProcess.stdinúabc.ByteReceiveStream | Nonec                 C  r-  r~   )r«  r€   rm   rm   rn   ÚstdoutQ  r.  zProcess.stdoutc                 C  r-  r~   )r¬  r€   rm   rm   rn   ÚstderrU  r.  zProcess.stderrNr¶   ©r}   rC  )r£   rC  r}   r‡   ©r}   r:  )r}   r·  )r}   r¹  )rg   rh   ri   r¡  rž  rÁ   r¯  r­  r±  r6  r´  r¶  r¸  rº  r»  rm   rm   rm   rn   r¨     s(   
 




r¨  rq  úset[Process]r[  r   c                 C  sŽ   d}t jdk rzt ¡  ¡ }W n	 ty   Y nw | D ])}|jdu r#q|jjj	 
¡  |jjj	 
¡  |jjj	 
¡  | ¡  |rD| |j¡ qdS )zG
    Forcibly shuts down worker processes belonging to this event loop.NrI  )r  r  rÝ   Úget_event_loop_policyÚget_child_watcherÚNotImplementedErrorr¶  rª  r–  Ú
_transportrˆ   r«  r¬  r­  Zremove_child_handlerr´  )rq  r[  Zchild_watcherÚprocessrm   rm   rn   Ú'_forcibly_shutdown_process_pool_on_exitZ  s$   
ÿ
€÷rÄ  úset[abc.Process]c                 Ã  sd   �zt tjƒI dH  W dS  tjy1   | D ]}|jdu r!| ¡  q| D ]	}| ¡ I dH  q$Y dS w )z§
    Shuts down worker processes belonging to this event loop.

    NOTE: this only works when the event loop was started using asyncio.run() or
    anyio.run().

    N)r	   r  r  rÝ   r   r¶  r­  rž  )rq  rÃ  rm   rm   rn   Ú_shutdown_process_pool_on_exits  s   €	
€ÿûrÆ  c                   @  sz   e Zd ZU ded< ded< ded< dZded< d	Zd
ed< d dd„Zd!dd„Zd"dd„Zd#dd„Z	d$dd„Z
d$dd„ZdS )%ÚStreamProtocolzdeque[bytes]Ú
read_queueúasyncio.EventÚ
read_eventÚwrite_eventNúException | Nonerº   Frï   Ú	is_at_eofÚ	transportúasyncio.BaseTransportr}   r‡   c                 C  s<   t ƒ | _t ¡ | _t ¡ | _| j ¡  ttj|ƒ 	d¡ d S ©Nr   )
r   rÈ  rÝ   rD   rÊ  rË  rÜ   r/   Ú	TransportÚset_write_buffer_limits©r{   rÎ  rm   rm   rn   Úconnection_made“  s
   


zStreamProtocol.connection_maderó   c                 C  s,   |r
t ƒ | _|| j_| j ¡  | j ¡  d S r~   )r9   rº   r~  rÊ  rÜ   rË  ©r{   ró   rm   rm   rn   Úconnection_lostš  s
   
zStreamProtocol.connection_lostr›  r™  c                 C  s   | j  t|ƒ¡ | j ¡  d S r~   )rÈ  rP  r™  rÊ  rÜ   )r{   r›  rm   rm   rn   Údata_received¢  s   zStreamProtocol.data_receivedrr   c                 C  s   d| _ | j ¡  dS r,  )rÍ  rÊ  rÜ   r€   rm   rm   rn   Úeof_received§  s   
zStreamProtocol.eof_receivedc                 C  ó   t  ¡ | _d S r~   )rÝ   rD   rË  r€   rm   rm   rn   Úpause_writing¬  r°  zStreamProtocol.pause_writingc                 C  r®  r~   ©rË  rÜ   r€   rm   rm   rn   Úresume_writing¯  r°  zStreamProtocol.resume_writing©rÎ  rÏ  r}   r‡   ©ró   rÌ  r}   r‡   )r›  r™  r}   r‡   )r}   rr   r¶   )rg   rh   ri   r¡  rº   rÍ  rÔ  rÖ  r×  rØ  rÚ  rÜ  rm   rm   rm   rn   rÇ  Œ  s   
 




rÇ  c                   @  sn   e Zd ZU ded< ded< ded< dZded< ddd„Zd dd„Zd!dd„Zd"dd„Zd#dd„Z	d#dd„Z
dS )$ÚDatagramProtocolz#deque[tuple[bytes, IPSockAddrType]]rÈ  rÉ  rÊ  rË  NrÌ  rº   rÎ  rÏ  r}   r‡   c                 C  s.   t dd�| _t ¡ | _t ¡ | _| j ¡  d S )Néd   )Úmaxlen)r   rÈ  rÝ   rD   rÊ  rË  rÜ   rÓ  rm   rm   rn   rÔ  ¹  s   

z DatagramProtocol.connection_maderó   c                 C  s   | j  ¡  | j ¡  d S r~   )rÊ  rÜ   rË  rÕ  rm   rm   rn   rÖ  ¿  s   
z DatagramProtocol.connection_lostr›  r™  ÚaddrrN   c                 C  s&   t |ƒ}| j ||f¡ | j ¡  d S r~   )r?   rÈ  rP  rÊ  rÜ   )r{   r›  râ  rm   rm   rn   Údatagram_receivedÃ  s   z"DatagramProtocol.datagram_receivedrÅ   c                 C  s
   || _ d S r~   )rº   rÕ  rm   rm   rn   Úerror_receivedÈ  rŽ  zDatagramProtocol.error_receivedc                 C  r®  r~   )rË  Úclearr€   rm   rm   rn   rÚ  Ë  r°  zDatagramProtocol.pause_writingc                 C  r®  r~   rÛ  r€   rm   rm   rn   rÜ  Î  r°  zDatagramProtocol.resume_writingrÝ  rÞ  )r›  r™  râ  rN   r}   r‡   )ró   rÅ   r}   r‡   r¶   )rg   rh   ri   r¡  rº   rÔ  rÖ  rã  rä  rÚ  rÜ  rm   rm   rm   rn   rß  ³  s   
 




rß  c                   @  sN   e Zd Zddd„Zedd	d
„ƒZdddd„Zddd„Zddd„Zddd„Z	dS ) ÚSocketStreamrÎ  úasyncio.TransportÚprotocolrÇ  c                 C  ó*   || _ || _tdƒ| _tdƒ| _d| _d S ©Núreading fromú
writing toF©rÂ  Ú	_protocolrG   Ú_receive_guardÚ_send_guardÚ_closed©r{   rÎ  rè  rm   rm   rn   r|   Ó  s
   


zSocketStream.__init__r}   úsocket.socketc                 C  ó   | j  d¡S ©NÚsocket©rÂ  Úget_extra_infor€   rm   rm   rn   Ú_raw_socketÚ  ó   zSocketStream._raw_socketr—  r˜  rC  r™  c              	   Ã  s  �| j �� | jj ¡ s(| j ¡ s(| jjs(| j ¡  | jj ¡ I d H  | j 	¡  nt
 ¡ I d H  z| jj ¡ }W n tyP   | jrDtd ‚| jjrM| jjd ‚td ‚w t|ƒ|krk|d |… ||d … }}| jj |¡ | jjs}| jj ¡  W d   ƒ |S W d   ƒ |S 1 sˆw   Y  |S r~   )rï  rî  rÊ  Úis_setrÂ  Ú
is_closingrÍ  Úresume_readingrÁ   Úpause_readingrQ  r�  rÈ  ÚpopleftÚ
IndexErrorrñ  r;   rº   r<   ÚlenÚ
appendleftrå  )r{   r˜  ÚchunkÚleftoverrm   rm   rn   rœ  Þ  sB   €
ÿþý

ú
â ý
ã à zSocketStream.receiverƒ  r‡   c                 Ã  s¨   �| j �F t ¡ I d H  | jrt‚| jjd ur| jj‚z| j |¡ W n t	y8 } z	| j 
¡ r3t|‚‚ d }~ww | jj ¡ I d H  W d   ƒ d S 1 sMw   Y  d S r~   )rð  rQ  r�  rñ  r;   rî  rº   rÂ  r£  rž   rü  r9   rË  rÁ   )r{   rƒ  ró   rm   rm   rn   r¦    s"   €
€ü"ðzSocketStream.sendc                 Ã  s(   �z| j  ¡  W d S  ty   Y d S w r~   )rÂ  Ú	write_eofÚOSErrorr€   rm   rm   rn   Úsend_eof  s   €ÿzSocketStream.send_eofc                 Ã  s^   �| j  ¡ s-d| _z| j  ¡  W n	 ty   Y nw | j  ¡  tdƒI d H  | j  ¡  d S d S ©NTr   )rÂ  rü  rñ  r  r  rˆ   r	   Úabortr€   rm   rm   rn   rž    s   €
ÿ
÷zSocketStream.acloseN)rÎ  rç  rè  rÇ  ©r}   ró  rŸ  r   r§  r¶   )
rg   rh   ri   r|   r6  rù  rœ  r¦  r  rž  rm   rm   rm   rn   ræ  Ò  s    

#
ræ  c                   @  s`   e Zd ZU dZded< dZded< dZddd	„Zeddd„ƒZ	ddd„Z
ddd„Zddd„ZdS )Ú_RawSocketMixinNrZ  Ú_receive_futureÚ_send_futureFÚ
raw_socketró  c                 C  s   || _ tdƒ| _tdƒ| _d S )Nrë  rì  )Ú_RawSocketMixin__raw_socketrG   rï  rð  ©r{   r  rm   rm   rn   r|   ,  s   
z_RawSocketMixin.__init__r}   c                 C  r-  r~   )r  r€   rm   rm   rn   rù  1  r.  z_RawSocketMixin._raw_socketr“   úasyncio.AbstractEventLooprB  c                   ó>   d‡ ‡fdd„}t  ¡  }ˆ_ˆ  ˆj|jd ¡ | |¡ |S )Nr„  r   r}   r‡   c                   ó   ˆ` ˆ  ˆj¡ d S r~   )r  Úremove_readerr  ©r„  ©r“   r{   rm   rn   Úcallback6  ó   z6_RawSocketMixin._wait_until_readable.<locals>.callback©r„  r   r}   r‡   )rÝ   r   r  Ú
add_readerr  rÄ   rf  ©r{   r“   r  r„  rm   r  rn   Ú_wait_until_readable5  ó
   
z$_RawSocketMixin._wait_until_readablec                   r  )Nr„  r   r}   r‡   c                   r  r~   )r  Úremove_writerr  r  r  rm   rn   r  @  r  z6_RawSocketMixin._wait_until_writable.<locals>.callbackr  )rÝ   r   r  Ú
add_writerr  rÄ   rf  r  rm   r  rn   Ú_wait_until_writable?  r  z$_RawSocketMixin._wait_until_writabler‡   c                 Ã  sV   �| j s'd| _ | j ¡ dkr| j ¡  | jr| j d ¡ | jr)| j d ¡ d S d S d S )NTéÿÿÿÿ)Ú_closingr  Úfilenorˆ   r  rÄ   r  r€   rm   rm   rn   rž  I  s   €
øz_RawSocketMixin.aclose©r  ró  r
  )r“   r  r}   rB  r¶   )rg   rh   ri   r  r¡  r  r"  r|   r6  rù  r  r   rž  rm   rm   rm   rn   r  '  s   
 




r  c                   @  s@   e Zd Zddd„Zddd	d
„Zddd„Zddd„Zddd„ZdS )ÚUNIXSocketStreamr}   r‡   c                 Ã  s<   �| j � | j tj¡ W d   ƒ d S 1 sw   Y  d S r~   )rð  rù  rÃ   rö  ÚSHUT_WRr€   rm   rm   rn   r  V  s   €"ÿzUNIXSocketStream.send_eofr—  r˜  rC  r™  c                 Ã  s¬   �t ƒ }t ¡ I d H  | j�> 	 z| j |¡}W n% ty)   |  |¡I d H  Y n" ty= } z	| j	r6t
d ‚t|‚d }~ww |sBt‚|W  d   ƒ S q1 sOw   Y  d S r~   )r   rQ  r�  rï  rù  ÚrecvÚBlockingIOErrorr  r  r"  r;   r9   r<   )r{   r˜  r“   r›  ró   rm   rm   rn   rœ  Z  s*   €€üñÿzUNIXSocketStream.receiverƒ  c                 Ã  sÊ   �t ƒ }t ¡ I d H  | j�M t|ƒ}|rSz| j |¡}W n% ty.   |  |¡I d H  Y n t	yB } z	| j
r;td ‚t|‚d }~ww ||d … }|sW d   ƒ d S W d   ƒ d S 1 s^w   Y  d S r~   )r   rQ  r�  rð  Ú
memoryviewrù  r¦  r(  r   r  r"  r;   r9   )r{   rƒ  r“   ÚviewZ
bytes_sentró   rm   rm   rn   r¦  n  s*   €€üõþ"þzUNIXSocketStream.sendÚmsglenÚmaxfdsútuple[bytes, list[int]]c                 Ã  sl  �t |tƒr
|dk rtdƒ‚t |tƒr|dk rtdƒ‚tƒ }t d¡}t ¡ I d H  | j�J 	 z| j 	|t
 ||j ¡¡\}}}}W n% tyS   |  |¡I d H  Y n tyg }	 z	| jr`td ‚t|	‚d }	~	ww |sn|snt‚nq/W d   ƒ n1 szw   Y  |D ].\}
}}|
t
jks�|t
jkr�td|›d|
› d	|› �ƒ‚| |d t|ƒt|ƒ|j  … ¡ q�|t|ƒfS )
Nr   z%msglen must be a non-negative integerr¯   z!maxfds must be a positive integerÚiTz.Received unexpected ancillary data; message = z, cmsg_level = z, cmsg_type = )rõ   rC  rœ   r   ÚarrayrQ  r�  rï  rù  Úrecvmsgrö  ZCMSG_LENÚitemsizer(  r  r  r"  r;   r9   r<   Ú
SOL_SOCKETÚ
SCM_RIGHTSrž   Ú	frombytesr  Úlist)r{   r+  r,  r“   Úfdsr¹   ZancdataÚflagsrâ  ró   Z
cmsg_levelZ	cmsg_typeZ	cmsg_datarm   rm   rn   Úreceive_fds€  sN   €
ÿ€üðïÿÿÿ&zUNIXSocketStream.receive_fdsr¹   r6  úCollection[int | IOBase]c                 Ã  s  �|st dƒ‚|st dƒ‚tƒ }g }|D ]}t|tƒr!| |¡ qt|tƒr-| | ¡ ¡ qt d|¡}t 	¡ I d H  | j
�A 	 z| j |gtjtj|fg¡ W n& tya   |  |¡I d H  Y n tyu } z	| jrntd ‚t|‚d }~ww q@W d   ƒ d S 1 s‚w   Y  d S )Nzmessage must not be emptyzfds must not be emptyr.  )rœ   r   rõ   rC  rP  r!   r#  r/  rQ  r�  rð  rù  Úsendmsgrö  r2  r3  r(  r   r  r"  r;   r9   )r{   r¹   r6  r“   ZfilenosÚfdZfdarrayró   rm   rm   rn   Úsend_fds§  sB   €

€ÿ€üö"øzUNIXSocketStream.send_fdsNr¶   rŸ  r   r§  )r+  rC  r,  rC  r}   r-  )r¹   r™  r6  r9  r}   r‡   )rg   rh   ri   r  rœ  r¦  r8  r<  rm   rm   rm   rn   r%  U  s    


'r%  c                   @  sJ   e Zd ZU dZded< dZddd„Zedd
d„ƒZddd„Z	ddd„Z
dS )ÚTCPSocketListenerNr;  Ú_accept_scopeFr  ró  c                 C  s$   || _ ttjtƒ ƒ| _tdƒ| _d S )Núaccepting connections from)Ú_TCPSocketListener__raw_socketr/   rÝ   ÚBaseEventLoopr   rw   rG   Ú_accept_guardr  rm   rm   rn   r|   Í  s   zTCPSocketListener.__init__r}   c                 C  r-  r~   )r@  r€   rm   rm   rn   rù  Ò  r.  zTCPSocketListener._raw_socketúabc.SocketStreamc                 Ã  s  �| j rt‚| j�` t ¡ I d H  tƒ �F| _z8z| j | j	¡I d H \}}W n$ t
jyI   z	| j | j	¡ W n ttfyA   Y nw | j rHtd ‚‚ w W d | _nd | _w W d   ƒ n1 s]w   Y  W d   ƒ n1 slw   Y  | tjtjd¡ | j t|¡I d H \}}t||ƒS ©Nr¯   )rñ  r;   rB  rQ  r�  rL   r>  rw   Úsock_acceptrù  rÝ   r   r  rœ   rÁ  Ú
setsockoptrö  ÚIPPROTO_TCPÚTCP_NODELAYÚconnect_accepted_socketrÇ  ræ  )r{   Úclient_sockZ_addrrÎ  rè  rm   rm   rn   ÚacceptÖ  s8   €
ÿöÿñ€þÿ
zTCPSocketListener.acceptr‡   c              	   Ã  sh   �| j rd S d| _ | jr-z	| j | j¡ W n ttfy    Y nw | j ¡  tdƒI d H  | j 	¡  d S r  )
rñ  r>  rw   r  rù  rœ   rÁ  r²   r	   rˆ   r€   rm   rm   rn   rž  ó  s   €ÿ
zTCPSocketListener.acloser$  r
  ©r}   rC  r¶   )rg   rh   ri   r>  r¡  rñ  r|   r6  rù  rK  rž  rm   rm   rm   rn   r=  É  s   
 

r=  c                   @  s8   e Zd Zddd„Zddd„Zdd
d„Zeddd„ƒZdS )ÚUNIXSocketListenerr  ró  c                 C  s"   || _ tƒ | _tdƒ| _d| _d S )Nr?  F)Ú_UNIXSocketListener__raw_socketr   rw   rG   rB  rñ  r  rm   rm   rn   r|     s   

zUNIXSocketListener.__init__r}   rC  c                 ƒ  sÔ   �t  ¡ I d H  ˆ j�U 	 zˆ j ¡ \}}| d¡ t|ƒW W  d   ƒ S  tyJ   t 	¡ }ˆ j
 ˆ j|jd ¡ | ‡ fdd„¡ |I d H  Y n ty^ } z	ˆ jrWtd ‚t|‚d }~ww q1 scw   Y  d S )NTFc                   s   ˆ j  ˆ j¡S r~   )rw   r  rN  ©Ú_r€   rm   rn   r°     s    z+UNIXSocketListener.accept.<locals>.<lambda>)rQ  r�  rB  rN  rK  Úsetblockingr%  r(  rÝ   r   rw   r  rÄ   rf  r  rñ  r;   r9   )r{   rJ  rP  r„  ró   rm   r€   rn   rK    s0   €
û
ÿ€üôÿzUNIXSocketListener.acceptr‡   c                 Ã  s   �d| _ | j ¡  d S r,  )rñ  rN  rˆ   r€   rm   rm   rn   rž  !  s   €zUNIXSocketListener.aclosec                 C  r-  r~   )rN  r€   rm   rm   rn   rù  %  r.  zUNIXSocketListener._raw_socketNr$  rL  r¶   r
  )rg   rh   ri   r|   rK  rž  r6  rù  rm   rm   rm   rn   rM    s    


rM  c                   @  sB   e Zd Zddd„Zedd	d
„ƒZddd„Zddd„Zddd„ZdS )Ú	UDPSocketrÎ  úasyncio.DatagramTransportrè  rß  c                 C  ré  rê  rí  rò  rm   rm   rn   r|   +  ó
   


zUDPSocket.__init__r}   ró  c                 C  rô  rõ  r÷  r€   rm   rm   rn   rù  4  rú  zUDPSocket._raw_socketr‡   c                 Ã  ó$   �| j  ¡ sd| _| j  ¡  d S d S r,  ©rÂ  rü  rñ  rˆ   r€   rm   rm   rn   rž  8  ó
   €
þzUDPSocket.acloseútuple[bytes, IPSockAddrType]c              	   Ã  sš   �| j �? t ¡ I d H  | jjs$| j ¡ s$| jj ¡  | jj 	¡ I d H  z| jj 
¡ W W  d   ƒ S  tyB   | jr?td ‚td ‚w 1 sFw   Y  d S r~   ©rï  rQ  r�  rî  rÈ  rÂ  rü  rÊ  rå  rÁ   rÿ  r   rñ  r;   r9   r€   rm   rm   rn   rœ  =  s   €÷
üözUDPSocket.receiverƒ  rP   c                 Ã  sr   �| j �+ t ¡ I d H  | jj ¡ I d H  | jrt‚| j 	¡ r!t
‚| jj|Ž  W d   ƒ d S 1 s2w   Y  d S r~   ©rð  rQ  r�  rî  rË  rÁ   rñ  r;   rÂ  rü  r9   Úsendtor¥  rm   rm   rn   r¦  N  ó   €
"øzUDPSocket.sendN©rÎ  rS  rè  rß  r
  r¶   )r}   rX  )rƒ  rP   r}   r‡   ©	rg   rh   ri   r|   r6  rù  rž  rœ  r¦  rm   rm   rm   rn   rR  *  s    
	

rR  c                   @  sB   e Zd Zddd„Zedd	d
„ƒZddd„Zddd„Zddd„ZdS )ÚConnectedUDPSocketrÎ  rS  rè  rß  c                 C  ré  rê  rí  rò  rm   rm   rn   r|   [  rT  zConnectedUDPSocket.__init__r}   ró  c                 C  rô  rõ  r÷  r€   rm   rm   rn   rù  d  rú  zConnectedUDPSocket._raw_socketr‡   c                 Ã  rU  r,  rV  r€   rm   rm   rn   rž  h  rW  zConnectedUDPSocket.acloser™  c              	   Ã  s¤   �| j �D t ¡ I d H  | jjs$| j ¡ s$| jj ¡  | jj 	¡ I d H  z| jj 
¡ }W n ty<   | jr9td ‚td ‚w |d W  d   ƒ S 1 sKw   Y  d S rÐ  rY  )r{   Úpacketrm   rm   rn   rœ  m  s   €ü$ðzConnectedUDPSocket.receiverƒ  c                 Ã  sr   �| j �+ t ¡ I d H  | jj ¡ I d H  | jrt‚| j 	¡ r!t
‚| j |¡ W d   ƒ d S 1 s2w   Y  d S r~   rZ  r¥  rm   rm   rn   r¦  €  r\  zConnectedUDPSocket.sendNr]  r
  r¶   ©r}   r™  r§  r^  rm   rm   rm   rn   r_  Z  s    
	

r_  c                   @  ó    e Zd Zd
dd„Zddd„Zd	S )ÚUNIXDatagramSocketr}   rQ   c                 Ã  ó¤   �t ƒ }t ¡ I d H  | j�: 	 z| j d¡}W n% ty)   |  |¡I d H  Y n ty= } z	| j	r6t
d ‚t|‚d }~ww |W  d   ƒ S q1 sKw   Y  d S ©NTr—  )r   rQ  r�  rï  rù  Úrecvfromr(  r  r  r"  r;   r9   ©r{   r“   r›  ró   rm   rm   rn   rœ  �  ó&   €€üôÿzUNIXDatagramSocket.receiverƒ  r‡   c                 Ã  s¤   �t ƒ }t ¡ I d H  | j�: 	 z| jj|Ž  W n% ty)   |  |¡I d H  Y n ty= } z	| j	r6t
d ‚t|‚d }~ww 	 W d   ƒ d S q1 sKw   Y  d S r~   )r   rQ  r�  rð  rù  r[  r(  r   r  r"  r;   r9   ©r{   rƒ  r“   ró   rm   rm   rn   r¦  ž  rh  zUNIXDatagramSocket.sendN)r}   rQ   )rƒ  rQ   r}   r‡   ©rg   rh   ri   rœ  r¦  rm   rm   rm   rn   rc  Œ  ó    
rc  c                   @  rb  )ÚConnectedUNIXDatagramSocketr}   r™  c                 Ã  rd  re  )r   rQ  r�  rï  rù  r'  r(  r  r  r"  r;   r9   rg  rm   rm   rn   rœ  ±  rh  z#ConnectedUNIXDatagramSocket.receiverƒ  r‡   c                 Ã  s¤   �t ƒ }t ¡ I d H  | j�: 	 z| j |¡ W n% ty)   |  |¡I d H  Y n ty= } z	| j	r6t
d ‚t|‚d }~ww 	 W d   ƒ d S q1 sKw   Y  d S r~   )r   rQ  r�  rð  rù  r¦  r(  r   r  r"  r;   r9   ri  rm   rm   rn   r¦  Â  rh  z ConnectedUNIXDatagramSocket.sendNra  r§  rj  rm   rm   rm   rn   rl  °  rk  rl  Úread_eventsz RunVar[dict[int, asyncio.Event]]Ú_read_eventsÚwrite_eventsÚ_write_eventsc                   @  sH   e Zd Zddd„Zddd„Zddd„Zdd
d„Zddd„Zddd„ZdS )rD   r}   c                 C  rþ   r~   rÿ   r�  rm   rm   rn   r  Þ  rŽ  zEvent.__new__r‡   c                 C  rÙ  r~   )rÝ   rD   Ú_eventr€   rm   rm   rn   r|   á  r°  zEvent.__init__c                 C  r®  r~   )rq  rÜ   r€   rm   rm   rn   rÜ   ä  r°  z	Event.setrï   c                 C  ó
   | j  ¡ S r~   )rq  rû  r€   rm   rm   rn   rû  ç  rŽ  zEvent.is_setc                 Ã  s0   �|   ¡ rt ¡ I d H  d S | j ¡ I d H  d S r~   )rû  rQ  r�  rq  rÁ   r€   rm   rm   rn   rÁ   ê  s   €z
Event.waitr3   c                 C  s   t t| jjƒƒS r~   )r3   r  rq  Ú_waitersr€   rm   rm   rn   Ú
statisticsð  r²  zEvent.statisticsN)r}   rD   r¶   r3  )r}   r3   )	rg   rh   ri   r  r|   rÜ   rû  rÁ   rt  rm   rm   rm   rn   rD   Ý  s    




rD   c                   @  s^   e Zd Zddœddd„Zddœdd	d
„Zddd„Zddd„Zddd„Zddd„Zddd„Z	dS )rF   F©Úfast_acquirerv  rï   r}   c                C  rþ   r~   rÿ   ©r  rv  rm   rm   rn   r  õ  rŽ  zLock.__new__r‡   c                C  s   || _ d | _tƒ | _d S r~   )Ú_fast_acquireÚ_owner_taskr   rs  )r{   rv  rm   rm   rn   r|   ø  s   zLock.__init__c                 Ã  sè   �t tjtƒ ƒ}| jd u r6| js6t ¡ I d H  || _| js4z
t 	¡ I d H  W d S  t
y3   |  ¡  ‚ w d S | j|kr?tdƒ‚t ¡ }||f}| j |¡ z|I d H  W n t
yk   | j |¡ | j|u rj|  ¡  ‚ w | j |¡ d S ©Nz)Attempted to acquire an already held Lock)r/   rÝ   rÞ   r   ry  rs  rQ  Úcheckpoint_if_cancelledrx  rR  r   Úreleaserž   r   rP  r  )r{   rª   Úfutrƒ  rm   rm   rn   Úacquireý  s8   €üþ

ûzLock.acquirec                 C  s>   t tjtƒ ƒ}| jd u r| js|| _d S | j|u rtdƒ‚t‚rz  )r/   rÝ   rÞ   r   ry  rs  rž   r=   )r{   rª   rm   rm   rn   Úacquire_nowait  s   
zLock.acquire_nowaitc                 C  s
   | j d uS r~   )ry  r€   rm   rm   rn   Úlocked*  rŽ  zLock.lockedc                 C  sL   | j tƒ kr
tdƒ‚| jD ]\}}| ¡ s || _ | d ¡  d S qd | _ d S )Nz)The current task is not holding this lock)ry  r   rž   rs  r¼   rÄ   )r{   rª   r}  rm   rm   rn   r|  -  s   
ý
zLock.releaser4   c                 C  s*   | j rt| j ƒnd }t|  ¡ |t| jƒƒS r~   )ry  ÚAsyncIOTaskInfor4   r€  r  rs  )r{   Z	task_inform   rm   rn   rt  9  s   zLock.statisticsN)rv  rï   r}   rF   )rv  rï   r}   r‡   r¶   r3  )r}   r4   )
rg   rh   ri   r  r|   r~  r  r€  r|  rt  rm   rm   rm   rn   rF   ô  s    

"

rF   c                      s|   e Zd Zdddœddd„Zdddœd‡ fdd„Zddd„Zddd„Zddd„Zed dd„ƒZ	ed!dd„ƒZ
d"dd„Z‡  ZS )#rJ   NF©Ú	max_valuerv  Úinitial_valuerC  rƒ  r:  rv  rï   r}   c                C  rþ   r~   rÿ   ©r  r„  rƒ  rv  rm   rm   rn   r  ?  s   
zSemaphore.__new__c                  s.   t ƒ j||d� || _|| _|| _tƒ | _d S )N)rƒ  )ru  r|   Ú_valueÚ
_max_valuerx  r   rs  )r{   r„  rƒ  rv  rz  rm   rn   r|   H  s
   zSemaphore.__init__r‡   c                 Ã  sÆ   �| j dkr3| js3t ¡ I d H  |  j d8  _ | js1z
t ¡ I d H  W d S  ty0   |  ¡  ‚ w d S t 	¡ }| j 
|¡ z|I d H  W d S  tyb   z| j |¡ W ‚  tya   |  ¡  Y ‚ w w ©Nr   r¯   )r†  rs  rQ  r{  rx  rR  r   r|  rÝ   r   rP  r  rœ   ©r{   r}  rm   rm   rn   r~  U  s4   €üþý
ýýzSemaphore.acquirec                 C  s    | j dkrt‚|  j d8  _ d S rˆ  )r†  r=   r€   rm   rm   rn   r  q  s   
zSemaphore.acquire_nowaitc                 C  s`   | j d ur| j| j krtdƒ‚| jD ]}| ¡ s&| d ¡ | j |¡  d S q|  jd7  _d S )Nz!semaphore released too many timesr¯   )r‡  r†  rœ   rs  r¼   rÄ   r  r‰  rm   rm   rn   r|  w  s   

ýzSemaphore.releasec                 C  r-  r~   )r†  r€   rm   rm   rn   r/  ƒ  r.  zSemaphore.valuec                 C  r-  r~   )r‡  r€   rm   rm   rn   rƒ  ‡  r.  zSemaphore.max_valuerH   c                 C  s   t t| jƒƒS r~   )rH   r  rs  r€   rm   rm   rn   rt  ‹  r°  zSemaphore.statistics)r„  rC  rƒ  r:  rv  rï   r}   rJ   )r„  rC  rƒ  r:  rv  rï   r¶   r¼  r½  )r}   rH   )rg   rh   ri   r  r|   r~  r  r|  r6  r/  rƒ  rt  r‰  rm   rm   rz  rn   rJ   >  s    ûû


rJ   c                   @  sÂ   e Zd ZU dZded< d0dd„Zd1dd	„Zd2dd„Zd3dd„Ze	d4dd„ƒZ
e
jd5dd„ƒZ
e	d6dd„ƒZe	d4dd„ƒZd2dd„Zd7d"d#„Zd2d$d%„Zd7d&d'„Zd2d(d)„Zd7d*d+„Zd8d-d.„Zd/S )9rB   r   rý   Ú_total_tokensÚtotal_tokensr}   c                 C  rþ   r~   rÿ   ©r  r‹  rm   rm   rn   r  ’  rŽ  zCapacityLimiter.__new__c                 C  s   t ƒ | _tƒ | _|| _d S r~   )rÜ   Ú
_borrowersr   Ú_wait_queuer‹  )r{   r‹  rm   rm   rn   r|   •  s   
zCapacityLimiter.__init__r‡   c                 Ã  s   �|   ¡ I d H  d S r~   )r~  r€   rm   rm   rn   rO  š  ó   €zCapacityLimiter.__aenter__r‚   r  r„   r  r†   r  c                 Ã  s   �|   ¡  d S r~   )r|  r‰   rm   rm   rn   rU  �  s   €zCapacityLimiter.__aexit__c                 C  r-  r~   )rŠ  r€   rm   rm   rn   r‹  ¥  r.  zCapacityLimiter.total_tokensr/  c                 C  sˆ   t |tƒst |¡stdƒ‚|dk rtdƒ‚t|| j dƒ}|| _| jr>|rB| jj	dd�d }| 
¡  |d8 }| jr@|s&d S d S d S d S )Nz'total_tokens must be an int or math.infr¯   ztotal_tokens must be >= 1r   F©Úlast)rõ   rC  r  Úisinfrc  rœ   ÚmaxrŠ  rŽ  ÚpopitemrÜ   )r{   r/  Zwaiters_to_notifyÚeventrm   rm   rn   r‹  ©  s   
ýrC  c                 C  s
   t | jƒS r~   )r  r�  r€   rm   rm   rn   Úborrowed_tokens¹  ó   
zCapacityLimiter.borrowed_tokensc                 C  s   | j t| jƒ S r~   )rŠ  r  r�  r€   rm   rm   rn   Úavailable_tokens½  ó   z CapacityLimiter.available_tokensc                 C  ó   |   tƒ ¡ d S r~   )Úacquire_on_behalf_of_nowaitr   r€   rm   rm   rn   r  Á  r²  zCapacityLimiter.acquire_nowaitÚborrowerr   c                 C  s<   || j v r	tdƒ‚| jst| j ƒ| jkrt‚| j  |¡ d S )NzEthis borrower is already holding one of this CapacityLimiter's tokens)r�  rž   rŽ  r  rŠ  r=   r  )r{   rœ  rm   rm   rn   r›  Ä  s   
ÿz+CapacityLimiter.acquire_on_behalf_of_nowaitc                 Ã  s   �|   tƒ ¡I d H S r~   )Úacquire_on_behalf_ofr   r€   rm   rm   rn   r~  Ï  r�  zCapacityLimiter.acquirec                 Ã  s²   �t  ¡ I d H  z|  |¡ W n2 tyA   t ¡ }|| j|< z	| ¡ I d H  W n ty7   | j 	|d ¡ ‚ w | j
 |¡ Y d S w z
t  ¡ I d H  W d S  tyX   |  ¡  ‚ w r~   )rQ  r{  r›  r=   rÝ   rD   rŽ  rÁ   r…   Úpopr�  r  rR  r|  ©r{   rœ  r•  rm   rm   rn   r�  Ò  s*   €
þ÷þz$CapacityLimiter.acquire_on_behalf_ofc                 C  rš  r~   )Úrelease_on_behalf_ofr   r€   rm   rm   rn   r|  ç  r²  zCapacityLimiter.releasec                 C  sf   z| j  |¡ W n ty   tdƒd ‚w | jr/t| j ƒ| jk r1| jjdd�d }| ¡  d S d S d S )Nz@this borrower isn't holding any of this CapacityLimiter's tokensFr�  r¯   )	r�  r  r  rž   rŽ  r  rŠ  r”  rÜ   rŸ  rm   rm   rn   r   ê  s   ÿþÿþz$CapacityLimiter.release_on_behalf_ofr2   c                 C  s   t | j| jt| jƒt| jƒƒS r~   )r2   r–  r‹  Útupler�  r  rŽ  r€   rm   rm   rn   rt  ÷  s   üzCapacityLimiter.statisticsN)r‹  rý   r}   rB   )r‹  rý   r¶   ©r‚   r  r„   r  r†   r  r}   r‡   r4  r5  r¼  )rœ  r   r}   r‡   )r}   r2   )rg   rh   ri   rŠ  r¡  r  r|   rO  rU  r6  r‹  r7  r–  r˜  r  r›  r~  r�  r|  r   rt  rm   rm   rm   rn   rB   �  s*   
 









rB   Ú_default_thread_limiterzRunVar[CapacityLimiter]c                   @  sH   e Zd Zddd„Zdd	d
„Zddd„Zddd„Zddd„Zddd„ZdS )Ú_SignalReceiverÚsignalsútuple[Signals, ...]c                 C  s,   || _ tƒ | _tƒ | _t ¡ | _tƒ | _	d S r~   )
Ú_signalsr   rw   r   Ú_signal_queuerÝ   r   rD  rÜ   Ú_handled_signals)r{   r¥  rm   rm   rn   r|   	  s
   
z_SignalReceiver.__init__r´   r$   r}   r‡   c                 C  s*   | j  |¡ | j ¡ s| j d ¡ d S d S r~   )r¨  rP  rD  r±   rÄ   )r{   r´   rm   rm   rn   Ú_deliver  s   
ÿz_SignalReceiver._deliverc                 C  s2   t | jƒD ]}| j || j|¡ | j |¡ q| S r~   )rÜ   r§  rw   Úadd_signal_handlerrª  r©  r  )r{   Úsigrm   rm   rn   r�     s   z_SignalReceiver.__enter__r‚   r  r„   r  r†   r  c                 C  s   | j D ]}| j |¡ qd S r~   )r©  rw   Úremove_signal_handler)r{   r‚   r„   r†   r¬  rm   rm   rn   rŠ     s   
ÿz_SignalReceiver.__exit__c                 C  s   | S r~   rm   r€   rm   rm   rn   Ú	__aiter__%  s   z_SignalReceiver.__aiter__c                 Ã  s6   �t  ¡ I d H  | jst ¡ | _| jI d H  | j ¡ S r~   )rQ  r�  r¨  rÝ   r   rD  rÿ  r€   rm   rm   rn   Ú	__anext__(  s   €

z_SignalReceiver.__anext__N)r¥  r¦  )r´   r$   r}   r‡   )r}   r¤  r¢  )r}   r$   )	rg   rh   ri   r|   rª  r�   rŠ   r®  r¯  rm   rm   rm   rn   r¤    s    




	r¤  c                      s(   e Zd Zd	‡ fdd„Zd
dd„Z‡  ZS )r�  rª   r®   c                   s`   t  |¡}|d u rd }n|j}| ¡ }|d usJ dƒ‚tƒ  t|ƒ|| ¡ |¡ t 	|¡| _
d S )Nz&created TaskInfo from a completed Task)rß   rÚ   r8  rð   ru  r|   r%  Úget_nameÚweakrefÚrefr[  )r{   rª   r  r8  r—   rz  rm   rn   r|   7  s   
zAsyncIOTaskInfo.__init__r}   rï   c                 C  sX   |   ¡  }sdS |jrdS t|jtjƒr|j ¡ rdS t |¡ }r*|j	 }r*|j
S dS )NFT)r[  r#  rõ   r$  rÝ   r   r¼   rß   rÚ   rà   r  )r{   rª   r  rà   rm   rm   rn   Úhas_pending_cancellationC  s   ÿþ
z(AsyncIOTaskInfo.has_pending_cancellation)rª   r®   r3  )rg   rh   ri   r|   r³  r‰  rm   rm   rz  rn   r�  6  s    r�  c                   @  sŽ   e Zd ZU ded< ddddœd>dd„Zd?dd„Zd@dd„ZdAdd„ZdBd!d"„ZdCd#d$„Z	dDd'd(„Z
dEd0d1„ZdFd5d6„ZdGd8d9„ZdHd<d=„ZdS )IÚ
TestRunnerzBMemoryObjectSendStream[tuple[Awaitable[Any], asyncio.Future[Any]]]Ú_send_streamNF)rp   Ú
use_uvlooprq   rp   rr   r¶  rï   rq   rs   r}   r‡   c                C  s8   |r|d u rdd l }|j}t||d�| _g | _d | _d S )Nr   ro   )Úuvloopr«   r\   Ú_runnerrM  Ú_runner_task)r{   rp   r¶  rq   r·  rm   rm   rn   r|   Z  s   
zTestRunner.__init__c                 C  s   | j  ¡  |  ¡  | j¡ | S r~   )r¸  r�   r”   Úset_exception_handlerÚ_exception_handlerr€   rm   rm   rn   r�   j  s   
zTestRunner.__enter__r‚   r  r„   r  r†   r  c                 C  s   | j  |||¡ d S r~   )r¸  rŠ   r‰   rm   rm   rn   rŠ   o  s   zTestRunner.__exit__r   c                 C  rr  r~   )r¸  r”   r€   rm   rm   rn   r”   w  rŽ  zTestRunner.get_loopr“   r  r–   r�  c                 C  s2   t | d¡tƒr| j |d ¡ d S | |¡ d S )Nrº   )rõ   rÚ   rÅ   rM  rP  Údefault_exception_handler)r{   r“   r–   rm   rm   rn   r»  z  s   zTestRunner._exception_handlerc                 C  s>   | j r| j g }| _ t|ƒdkr|d ‚|rtd|ƒ‚d S d S )Nr¯   r   z6Multiple exceptions occurred in asynchronous callbacks)rM  r  rc   )r{   ra   rm   rm   rn   Ú_raise_async_exceptions‚  s   ÿûz"TestRunner._raise_async_exceptionsÚreceive_streamúOMemoryObjectReceiveStream[tuple[Awaitable[T_Retval], asyncio.Future[T_Retval]]]c                 Ã  s  �ddl m} |�z | j�^ |2 zR3 d H W \}}z|I d H }W n9 ty6 } z| ¡ s1|j|jŽ  ‚ d }~w tyX } z| ¡ sF| |¡ t	|t
|fƒsN‚ W Y d }~qd }~ww | ¡ sb| |¡ q6 W d   ƒ n1 snw   Y  W d   ƒ d S W d   ƒ d S 1 s†w   Y  d S )Nr   )ÚOutcomeException)Z_pytest.outcomesrÀ  rµ  r   r¼   r²   rË   r…   rÆ   rõ   rÅ   rÄ   )r{   r¾  rÀ  r—   r¿   Úretvalró   rm   rm   rn   Ú_run_tests_and_fixtures�  s0   €€
ÿ€ü
€ðPÿz"TestRunner._run_tests_and_fixturesrç   ú Callable[P, Awaitable[T_Retval]]rË   úP.argsrg  úP.kwargsr™   c                 Ï  sr   �| j stttt tjf  dƒ\| _}|  ¡  	|  
|¡¡| _ ||i |¤Ž}|  ¡  ¡ }| j ||f¡ |I d H S rD  )r¹  r@   r¡  r   r,   rÝ   r   rµ  r”   r   rÂ  rÍ   Zsend_nowait)r{   rç   rË   rg  r¾  r—   r¿   rm   rm   rn   Ú_call_in_runner_task¨  s   €ÿ
þÿ
zTestRunner._call_in_runner_taskÚfixture_funcú,Callable[..., AsyncGenerator[T_Retval, Any]]úIterable[T_Retval]c                 c  sŠ   � |di |¤Ž}|   ¡  |  |jd ¡¡}|  ¡  |V  z|   ¡  |  |jd ¡¡ W n ty7   |  ¡  Y d S w |   ¡  | ¡ ¡ tdƒ‚)Nz$Async generator fixture did not stoprm   )r”   r�   rÆ  Úasendr½  ÚStopAsyncIterationrž  rž   )r{   rÇ  rg  ÚasyncgenZfixturevaluerm   rm   rn   Úrun_asyncgen_fixture»  s    €ÿÿÿzTestRunner.run_asyncgen_fixtureú,Callable[..., Coroutine[Any, Any, T_Retval]]c                 C  s(   |   ¡  | j|fi |¤Ž¡}|  ¡  |S r~   )r”   r�   rÆ  r½  )r{   rÇ  rg  rÁ  rm   rm   rn   Úrun_fixtureÒ  s
   ÿzTestRunner.run_fixtureÚ	test_funcú'Callable[..., Coroutine[Any, Any, Any]]c              
   C  s^   z|   ¡  | j|fi |¤Ž¡ W n ty( } z| j |¡ W Y d }~nd }~ww |  ¡  d S r~   )r”   r�   rÆ  rÅ   rM  rP  r½  )r{   rÐ  rg  ró   rm   rm   rn   Úrun_testÝ  s   ÿ€ÿzTestRunner.run_test)rp   rr   r¶  rï   rq   rs   r}   r‡   )r}   r´  r¢  r·   )r“   r  r–   r�  r}   r‡   r¶   )r¾  r¿  r}   r‡   )rç   rÃ  rË   rÄ  rg  rÅ  r}   r™   )rÇ  rÈ  rg  r�  r}   rÉ  )rÇ  rÎ  rg  r�  r}   r™   )rÐ  rÑ  rg  r�  r}   r‡   )rg   rh   ri   r¡  r|   r�   rŠ   r”   r»  r½  rÂ  rÆ  rÍ  rÏ  rÒ  rm   rm   rm   rn   r´  W  s    
 û








r´  c                   @  sL  e Zd Zed©d
d„ƒZedªdd„ƒZed«dd„ƒZed¬dd„ƒZed­dd„ƒZed­dd„ƒZ	ed­dd„ƒZ
ed®dd„ƒZeejdd œd¯d%d&„ƒZed«d'd(„ƒZed°d*d+„ƒZed±d-d.„ƒZed²d1d2„ƒZed3dd4œd³d:d;„ƒZed´d>d?„ƒZe		3dµd¶dDdE„ƒZed­dFdG„ƒZed·dIdJ„ƒZed¸dKdL„ƒZed¹dNdO„ƒZedºdXdY„ƒZed»d\d]„ƒZe	3d¼d½ddde„ƒZed¾didj„ƒZed¿dndo„ƒZed¿dpdq„ƒZedÀdwdx„ƒZ edÁd}d~„ƒZ!eddddd€œdÂd‰dŠ„ƒZ"e	dÃdÄdŽd�„ƒZ#edÅd’d“„ƒZ$edÅd”d•„ƒZ%edÆd—d˜„ƒZ&edÇdœd�„ƒZ'edÈdŸd „ƒZ(edÉd¢d£„ƒZ)ed­d¤d¥„ƒZ*edÊd§d¨„ƒZ+d3S )ËrQ  rç   ú1Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]]rË   rW  rg  r�  Úoptionsr}   r™   c           
        sŽ   t ˆƒd‡ ‡fdd„ƒ}| dd ¡}| dd ¡}|d u r)| dd¡r)d	d l}|j}t||d
��}	|	 |ƒ ¡W  d   ƒ S 1 s@w   Y  d S )Nr}   r™   c                  “  sL   �t tjtƒ ƒ} |  tˆƒ¡ td d ƒt| < zˆˆ Ž I d H W t| = S t| = w r~   )r/   rÝ   rÞ   r   Úset_namerí   r  rß   )rª   ©rË   rç   rm   rn   Úwrapperó  s   €z#AsyncIOBackend.run.<locals>.wrapperrp   rq   r¶  Fr   ro   )r}   r™   )r   rÚ   r·  r«   r\   rŸ   )
r  rç   rË   rg  rÔ  r×  rp   rq   r·  Úrunnerrm   rÖ  rn   rŸ   ë  s   

$ÿzAsyncIOBackend.runr   c                 C  ó   t ƒ S r~   )r   r�  rm   rm   rn   Úcurrent_token	  r.  zAsyncIOBackend.current_tokenrý   c                 C  s
   t ƒ  ¡ S r~   )r   r   r�  rm   rm   rn   rw  	  r—  zAsyncIOBackend.current_timerƒ   c                 C  s   t S r~   )r   r�  rm   rm   rn   Úcancelled_exception_class	  s   z(AsyncIOBackend.cancelled_exception_classr‡   c                 Ã  s   �t dƒI d H  d S rÐ  ©r	   r�  rm   rm   rn   r�  	  ó   €zAsyncIOBackend.checkpointc                 Ã  sn   �t ƒ }|d u r
d S zt| j}W n
 ty   Y d S w |r5|jr)tdƒI d H  n|jr.d S |j}|sd S d S rÐ  )r   rß   rà   r  r&  r	   rü   rá   )r  rª   rà   rm   rm   rn   r{  	  s    €ÿúz&AsyncIOBackend.checkpoint_if_cancelledc                 Ã  s@   �t dd�� tdƒI d H  W d   ƒ d S 1 sw   Y  d S )NTro  r   )rL   r	   r�  rm   rm   rn   rR  +	  s   €"ÿz)AsyncIOBackend.cancel_shielded_checkpointÚdelayc                 Ã  s   �t |ƒI d H  d S r~   rÜ  )r  rÞ  rm   rm   rn   r	   0	  rÝ  zAsyncIOBackend.sleepFrú   rû   rü   rï   rL   c                C  s   t ||d�S )Nrú   rK   r  rm   rm   rn   Úcreate_cancel_scope4	  s   z"AsyncIOBackend.create_cancel_scopec                 C  s€   t ƒ  }d u r
tjS zt| j}W n ty   tj Y S w tj}|r>t||jƒ}|jr3tj }	 |S |j	r9	 |S |j
}|s#|S r~   )r   r  r  rß   rà   r  Úminrû   r  rü   rá   )r  rª   rà   rû   rm   rm   rn   Úcurrent_effective_deadline:	  s(   
ÿûþø
z)AsyncIOBackend.current_effective_deadlineúabc.TaskGroupc                 C  rÙ  r~   )rL  r�  rm   rm   rn   Úcreate_task_groupQ	  r.  z AsyncIOBackend.create_task_groupú	abc.Eventc                 C  rÙ  r~   rC   r�  rm   rm   rn   Úcreate_eventU	  r.  zAsyncIOBackend.create_eventrv  úabc.Lockc                C  s
   t |d�S )Nru  rE   rw  rm   rm   rn   Úcreate_lockY	  r—  zAsyncIOBackend.create_lockNr‚  r„  rC  rƒ  r:  úabc.Semaphorec                C  s   t |||d�S )Nr‚  rI   r…  rm   rm   rn   Úcreate_semaphore]	  s   zAsyncIOBackend.create_semaphorer‹  úabc.CapacityLimiterc                 C  ó   t |ƒS r~   rA   rŒ  rm   rm   rn   Úcreate_capacity_limiterg	  rµ  z&AsyncIOBackend.create_capacity_limiterú&Callable[[Unpack[PosArgsT]], T_Retval]Úabandon_on_cancelÚlimiterúabc.CapacityLimiter | Nonec              	   Ã  sÄ  �|   ¡ I d H  z
t ¡ }t ¡ }W n ty+   tƒ }tƒ }t |¡ t |¡ Y nw |p1|  ¡ 4 I d H šŸ t| d��…}t	j
t ƒ }tƒ }	|sct|	||ƒ}
|
 ¡  | |
¡ |	j|
jt ¡ d� n&| ¡ }
|  ¡ }|r‰||d j tjk rxn| ¡ }|j |j¡ | ¡  |smtƒ }| tjjd ¡ |s›|jd u rž|}n|j}|
j  !|||||f¡ |I d H W  d   ƒ W  d   ƒI d H  S 1 sÅw   Y  W d   ƒI d H  d S 1 I d H sÛw   Y  d S )Nro  r•   r   )"r�  rŠ  rÚ   r‹  ÚLookupErrorr   rÜ   Úcurrent_default_thread_limiterrL   rÝ   r   r™   ræ   rp  rÎ   r  rf  r‡  r­   r   rž  rw  rx  rˆ  rÿ  rã   Úremove_done_callbackr   rŸ   ÚsniffioÚcurrent_async_library_cvarrá   rv  r†  )r  rç   rË   rî  rï  rs  rq  r*  r¿   rã   ZworkerÚnowZexpired_workerr–   Zworker_scoperm   rm   rn   Úrun_sync_in_worker_threadk	  s\   €
ü

ÿÿÿõÛÿ.ÿz(AsyncIOBackend.run_sync_in_worker_threadc                 C  sH   t j}|d ur"|jrtdt|ƒd›�ƒ‚|jrd S |j}|d usd S d S )Nrô   rê   )r8   r�  r&  r   r%  rü   rá   )r  r*  rm   rm   rn   Úcheck_cancelled¨	  s   ùzAsyncIOBackend.check_cancelledÚtokenc           	        sR   d‡ ‡fdd„}t t|ƒ}tƒ }| tjjd¡ |tjƒ}| t	j
||¡}| ¡ S )	Nr*  rL   r}   r™   c              
   “  sˆ   �d}t tjtƒ ƒ}td | ƒt|< | j |¡ z%zˆˆ Ž I d H W W | j |¡ S  t	y< } z	t
j 	t|ƒ¡d ‚d }~ww | j |¡ w r,  )r/   rÝ   rÞ   r   r  rß   r  r  r  r   Ú
concurrentÚfuturesrè   )r*  Z__tracebackhide__rª   ró   rÖ  rm   rn   Útask_wrapper»	  s   €ý€ÿz:AsyncIOBackend.run_async_from_thread.<locals>.task_wrapperrÝ   )r*  rL   r}   r™   )r/   r   r   rŸ   rô  rõ  rÜ   r8   r�  rÝ   Úrun_coroutine_threadsafer|  )	r  rç   rË   rù  rü  r“   r–   r×  r„  rm   rÖ  rn   Úrun_async_from_thread´	  s   

ÿz$AsyncIOBackend.run_async_from_threadc                   s<   t ˆƒd‡ ‡‡fdd„ƒ}tƒ ‰tt|ƒ}| |¡ ˆ ¡ S )Nr}   r‡   c               
     s^   zt j d¡ ˆ ˆˆ Ž ¡ W d S  ty. }  zˆ | ¡ t| tƒs#‚ W Y d } ~ d S d } ~ ww )NrÝ   )rô  rõ  rÜ   rÄ   r…   rÆ   rõ   rÅ   rø   ©rË   r„  rç   rm   rn   r×  ×	  s   

ÿ€þz4AsyncIOBackend.run_sync_from_thread.<locals>.wrapperr¶   )r   r   r/   r   r³   r|  )r  rç   rË   rù  r×  r“   rm   rÿ  rn   r’  Ð	  s   	

z#AsyncIOBackend.run_sync_from_threadúabc.BlockingPortalc                 C  rÙ  r~   )rŒ  r�  rm   rm   rn   Úcreate_blocking_portalæ	  r.  z%AsyncIOBackend.create_blocking_portalÚcommandú)StrOrBytesPath | Sequence[StrOrBytesPath]r¸  úint | IO[Any] | Nonerº  r»  r,   r¨  c          
      Ë  s¼   �|   ¡ I d H  t|tƒrt |¡}t|ttfƒr*tj|f|||dœ|¤ŽI d H }ntj	||||dœ|¤ŽI d H }|j
rAt|j
ƒnd }|jrKt|jƒnd }|jrUt|jƒnd }	t||||	ƒS )N)r¸  rº  r»  )r�  rõ   r"   ÚosÚfspathrè   r™  rÝ   Úcreate_subprocess_shellÚcreate_subprocess_execr¸  r¢  rº  r•  r»  r¨  )
r  r  r¸  rº  r»  rg  rÃ  Zstdin_streamZstdout_streamZstderr_streamrm   rm   rn   Úopen_processê	  s4   €


ÿüûüûzAsyncIOBackend.open_processrq  rÅ  c                 C  s&   t t|ƒdd� tƒ  tt|ƒ¡ d S )Nz AnyIO process pool shutdown taskrb  )r   rÆ  ræ   rf  r   rÄ  )r  rq  rm   rm   rn   Ú#setup_process_pool_exit_at_shutdown
  s   þÿz2AsyncIOBackend.setup_process_pool_exit_at_shutdownÚhostrè   ÚportÚlocal_addressúIPSockAddrType | NonerC  c                 Ã  sB   �t ttjtf tƒ jt|||d�I d H ƒ\}}| ¡  t||ƒS )N)Ú
local_addr)	r/   r¡  rÝ   rÑ  rÇ  r   Úcreate_connectionrþ  ræ  )r  r  r  r  rÎ  rè  rm   rm   rn   Úconnect_tcp
  s   €
ÿþ
zAsyncIOBackend.connect_tcpÚpathústr | bytesúabc.UNIXSocketStreamc                 ƒ  s¤   �|   ¡ I d H  tƒ ‰ t tj¡‰ˆ d¡ 	 z
ˆ |¡ W tˆƒS  tyE   t ¡ }ˆ  	ˆ|j
d ¡ | ‡ ‡fdd„¡ |I d H  Y n tyP   ˆ ¡  ‚ w q)NFTc                   ó
   ˆ   ˆ¡S r~   ©r  rO  ©r“   r  rm   rn   r°   1
  ó   
 z-AsyncIOBackend.connect_unix.<locals>.<lambda>)r�  r   rö  ÚAF_UNIXrQ  Úconnectr(  rÝ   r   r  rÄ   rf  r…   rˆ   r%  )r  r  r„  rm   r  rn   Úconnect_unix%
  s&   €

÷þøzAsyncIOBackend.connect_unixÚsockró  rO   c                 C  rë  r~   )r=  ©r  r  rm   rm   rn   Úcreate_tcp_listener9
  rµ  z"AsyncIOBackend.create_tcp_listenerc                 C  rë  r~   )rM  r  rm   rm   rn   Úcreate_unix_listener=
  rµ  z#AsyncIOBackend.create_unix_listenerÚfamilyr%   Úremote_addressÚ
reuse_portúUDPSocket | ConnectedUDPSocketc                 Ã  sN   �t ƒ jt||||d�I d H \}}|jr| ¡  |j‚|s"t||ƒS t||ƒS )N)r  Úremote_addrr   r"  )r   Úcreate_datagram_endpointrß  rº   rˆ   rR  r_  )r  r   r  r!  r"  rÎ  rè  rm   rm   rn   Úcreate_udp_socketA
  s   €û

z AsyncIOBackend.create_udp_socketr  Úremote_pathústr | bytes | Noneú8abc.UNIXDatagramSocket | abc.ConnectedUNIXDatagramSocketc                 ƒ  sš   �|   ¡ I d H  tƒ ‰ |rI	 z
ˆ |¡ W tˆƒS  ty<   t ¡ }ˆ  ˆ|jd ¡ | ‡ ‡fdd„¡ |I d H  Y n t	yG   ˆ 
¡  ‚ w qtˆƒS )NTc                   r  r~   r  rO  r  rm   rn   r°   g
  r  z<AsyncIOBackend.create_unix_datagram_socket.<locals>.<lambda>)r�  r   r  r(  rÝ   r   r  rÄ   rf  r…   rˆ   rl  rc  )r  r  r'  r„  rm   r  rn   Úcreate_unix_datagram_socketY
  s&   €
÷þøz*AsyncIOBackend.create_unix_datagram_socketr   ©r   rS  Úprotor7  úbytes | str | Noneústr | int | Noneúint | AddressFamilyrS  úint | SocketKindr,  r7  úuSequence[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]]]c                Ã  s    �t ƒ j||||||d�I d H S )Nr+  )r   Úgetaddrinfo)r  r  r  r   rS  r,  r7  rm   rm   rn   r2  q
  s   €ÿzAsyncIOBackend.getaddrinfoÚsockaddrrN   útuple[str, str]c                 Ã  s   �t ƒ  ||¡I d H S r~   )r   Úgetnameinfo)r  r3  r7  rm   rm   rn   r5  ˆ
  s   €zAsyncIOBackend.getnameinfoÚobjrV   c                 Ã  sþ   �|   ¡ I d H  zt ¡ }W n ty   i }t |¡ Y nw t|tƒs(| ¡ }| |¡r1tdƒ‚t	ƒ }t
 ¡ }z	| ||j¡ W n ty]   ddlm} |ƒ }| ||j¡ |j}Y nw |j}|||< z| ¡ I d H  W ||ƒ ||= d S ||ƒ ||= w )Nrë  r   ©Úget_selector)r�  rn  rÚ   rñ  rÜ   rõ   rC  r#  r:   r   rÝ   rD   r  rÁ  Ú$anyio._core._asyncio_selector_threadr8  r  rÁ   )r  r6  rm  r“   r•  r8  Úselectorr  rm   rm   rn   Úwait_readableŽ
  s<   €þ


û
ÿzAsyncIOBackend.wait_readablec                 Ã  sþ   �|   ¡ I d H  zt ¡ }W n ty   i }t |¡ Y nw t|tƒs(| ¡ }| |¡r1tdƒ‚t	ƒ }t
 ¡ }z	| ||j¡ W n ty]   ddlm} |ƒ }| ||j¡ |j}Y nw |j}|||< z| ¡ I d H  W ||= ||ƒ d S ||= ||ƒ w )Nrì  r   r7  )r�  rp  rÚ   rñ  rÜ   rõ   rC  r#  r:   r   rÝ   rD   r  rÁ  r9  r8  r  rÁ   )r  r6  ro  r“   r•  r8  r:  r  rm   rm   rn   Úwait_writable±
  s<   €þ


ûÿ
zAsyncIOBackend.wait_writablerB   c                 C  s4   zt  ¡ W S  ty   tdƒ}t  |¡ | Y S w )Né(   )r£  rÚ   rñ  rB   rÜ   )r  rï  rm   rm   rn   rò  Ô
  s   

ýz-AsyncIOBackend.current_default_thread_limiterr¥  r$   ú.AbstractContextManager[AsyncIterator[Signals]]c                 G  rë  r~   )r¤  )r  r¥  rm   rm   rn   Úopen_signal_receiverÝ
  s   z#AsyncIOBackend.open_signal_receiverr5   c                 C  s
   t tƒ ƒS r~   )r�  r   r�  rm   rm   rn   Úget_current_taskã
  r—  zAsyncIOBackend.get_current_taskúSequence[TaskInfo]c                 C  s   dd„ t ƒ D ƒS )Nc                 S  s   g | ]
}|  ¡ st|ƒ‘qS rm   )r±   r�  )rÖ   rª   rm   rm   rn   rØ   é
  s    z4AsyncIOBackend.get_running_tasks.<locals>.<listcomp>)r   r�  rm   rm   rn   Úget_running_tasksç
  r™  z AsyncIOBackend.get_running_tasksc                 Ã  s\   �|   ¡ I d H  tƒ }	 tƒ D ]}||u rq|j}|d u s!| ¡ r*tdƒI d H   nqd S q)NTgš™™™™™¹?)r�  r   r   r$  r±   r	   )r  Z	this_taskrª   r)  rm   rm   rn   Úwait_all_tasks_blockedë
  s   €
þöz%AsyncIOBackend.wait_all_tasks_blockedr´  c                 C  s   t di |¤ŽS )Nrm   )r´  )r  rÔ  rm   rm   rn   Úcreate_test_runnerû
  s   z!AsyncIOBackend.create_test_runner)
rç   rÓ  rË   rW  rg  r�  rÔ  r�  r}   r™   )r}   r   r4  )r}   rƒ   r¶   )rÞ  rý   r}   r‡   r2  )r}   râ  )r}   rä  )rv  rï   r}   ræ  )r„  rC  rƒ  r:  rv  rï   r}   rè  )r‹  rý   r}   rê  )FN)
rç   rí  rË   rW  rî  rï   rï  rð  r}   r™   )rç   rÓ  rË   rW  rù  r   r}   r™   )rç   rí  rË   rW  rù  r   r}   r™   )r}   r   )r  r  r¸  r  rº  r  r»  r  rg  r,   r}   r¨  ©rq  rÅ  r}   r‡   r~   )r  rè   r  rC  r  r  r}   rC  )r  r  r}   r  )r  ró  r}   rO   )
r   r%   r  r  r!  r  r"  rï   r}   r#  )r  ró  r'  r(  r}   r)  )r  r-  r  r.  r   r/  rS  r0  r,  rC  r7  rC  r}   r1  )r   )r3  rN   r7  rC  r}   r4  )r6  rV   r}   r‡   )r}   rB   )r¥  r$   r}   r>  )r}   r5   )r}   rA  )rÔ  r�  r}   r´  ),rg   rh   ri   ÚclassmethodrŸ   rÚ  rw  rÛ  r�  r{  rR  r	   r  r  rß  rá  rã  rå  rç  ré  rì  r÷  rø  rþ  r’  r  r	  r
  r  r  r  r  r&  r*  r2  r5  r;  r<  rò  r?  r@  rB  rC  rD  rm   rm   rm   rn   rQ  ê  s°    ÿû	û<#	ÿøÿ""rQ  )r“   r   r}   r‡   )r}   r®   )rç   r   r}   rè   )rª   r®   r}   rï   )ró   r   r}   rï   )rq  r¾  r[  r   r}   r‡   rE  )¿Ú
__future__r   r/  rÝ   Úconcurrent.futuresrú  r­   r  r  rö  r  r    r±  r   r   r   r   r   r   r	   Zasyncio.base_eventsr
   Úcollectionsr   r   Úcollections.abcr   r   r   r   r   r   r   r   r   Ú
contextlibr   r   r   r   Údataclassesr   Ú	functoolsr   r   Úinspectr   r   r   r    Úior!   r"   rv  r#   r£   r$   r%   r&   r'   Útypesr(   r)   Útypingr*   r+   r,   r-   r.   r/   r0   rô  r_  r2   r3   r4   r5   r6   Z_core._eventloopr7   r8   Z_core._exceptionsr9   r:   r;   r<   r=   r>   Z_core._socketsr?   Z_core._streamsr@   Z_core._synchronizationrB   ZBaseCapacityLimiterrD   Z	BaseEventrF   ZBaseLockrG   rH   rJ   ZBaseSemaphoreZ_core._tasksrL   ZBaseCancelScoperM   rN   rO   rP   rQ   Zabc._eventlooprR   ZlowlevelrS   Zstreams.memoryrT   rU   Z	_typeshedrV   r   r  rY   Ztyping_extensionsr\   r]   r^   Úenumr_   r`   ra   rb   Zexceptiongrouprc   ÚEnumrd   rŒ   r�   r™   rÑ   rÓ   rÔ   rÕ   r¡  ræ   rí   rî   rò   rù   r  rß   Z
TaskStatusrA  Zeager_task_factoryr`  rK  rL  r¡  r…   Z_Retval_Queue_Typerp  rŠ  r‹  rŒ  ZByteReceiveStreamr•  ZByteSendStreamr¢  r¨  rÄ  rÆ  ÚProtocolrÇ  rß  ræ  r  r%  r=  rM  rR  r_  rc  rl  rn  rp  r£  r¤  r�  r´  rQ  Zbackend_classrm   rm   rm   rn   Ú<module>   s   $	(
   






   JNÿ
9
'U.t<%02$$JQq.!     