
    i                   	   U d dl mZ d dlZd dlmc 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/m0Z0 d dl1m2Z2m3Z3 d dl4m5Z5m6Z6m7Z7m8Z8 d dl9m:Z: d dlm;Z; d dl<m=Z= d dl>m?Z? d dlm@Z@mAZA d dlmBZB d dlCmDZDmEZE d dlFmGZGmHZHmIZImJZJmKZKmLZL d dlmMZM ddlNmOZOmPZPmQZQmRZRmSZS ddlTmUZUmVZVmWZW ddlXmYZYmZZZm[Z[m\Z\m]Z]m^Z^ ddl_m`Z` ddlambZb ddlcmdZe ddlcmfZg ddlcmhZi ddlcmjZjmkZk dd lcmlZm dd!lnmoZp dd"lSmqZqmrZrmsZsmtZtmuZu dd#lvmwZw dd$lxmyZy dd%lzm{Z{m|Z| eHrd d&l}m~Z~ neZ~ej        d'k    rd d(l	mZ d d)lFmZmZ nNd dlZd dlZd dl>Z>d d*l	mZmZmZmZ d d+lmZ d d)lmZmZ  G d, d-ej                  Z G d. d/          Zdd4Zdd5Z eKd6          Z eKd7d89          Z ed:          Z eJd;          Z eyd<          Zd=ed<<   dd?ZddCZ eM            ZdDedE<   ddHZddKZ G dL dMep          Zo G dN dO          Z eM            ZdPedQ<    G dR dSeSj                  Zej        dTk    re	j        j        ZdUedV<   ndZ G dW dXeSj                  Zeedz  edz  f         Z G dY dZeB          Z eyd[          Zd\ed[<    eyd]          Zd^ed]<    e/d_`           G da dbeSj                              Z e/d_`           G dc ddeSj                              Z e/d_`           G de dfeSj                              ZddkZddmZ G dn doe	j                  Z G dp dqe	j                  Z G dr dseSj                  Z G dt du          Z G dv dweeSj                  Z G dx dyeSjs                  Z G dz d{eSjs                  Z G d| d}eSj                  Z G d~ deSj                  Z G d deeSj                  Z G d deeSj                  Z eyd          Zded<    eyd          Zded<    G d deg          Zf G d dei          Zh G d dem          Zl G d dee          Zd eyd          Zded<    G d d          Z G d deR          Z G d deSj                  Z G d deq          ZeZd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field)partialwraps)CORO_RUNNINGCORO_SUSPENDEDgetcoroutinestateiscoroutine)IOBase)PathLike)Queue)Signals)AddressFamily
SocketKind)Thread)CodeTypeTracebackType)IOTYPE_CHECKINGAny	ParamSpecTypeVarcast)WeakKeyDictionary   )CapacityLimiterStatisticsEventStatisticsLockStatisticsTaskInfoabc)claim_worker_threadset_current_async_librarythreadlocals)BrokenResourceErrorBusyResourceErrorClosedResourceErrorEndOfStreamRunFinishedError
WouldBlock)convert_ipv6_sockaddr)create_memory_object_streamCapacityLimiterEventLock)ResourceGuardSemaphoreStatistics	SemaphoreCancelScope)AsyncBackendIPSockAddrTypeSocketListenerUDPPacketTypeUNIXDatagramPacketType)StrOrBytesPath)RunVar)MemoryObjectReceiveStreamMemoryObjectSendStream)FileDescriptorLike      )Runner)TypeVarTupleUnpack)
coroutinesevents
exceptionstasks)BaseExceptionGroupc                      e Zd ZdZdZdZdS )_StatecreatedinitializedclosedN)__name__
__module____qualname__CREATEDINITIALIZEDCLOSED     W/root/projects/qq-shell/venv/lib64/python3.11/site-packages/anyio/_backends/_asyncio.pyrf   rf   {   s        #rq   rf   c                  \    e Zd ZdddddZdd	Zd dZd!dZd"dZddd#dZd!dZ	d$dZ
dS )%r]   Ndebugloop_factoryru   bool | Nonerv   &Callable[[], AbstractEventLoop] | Nonec               |    t           j        | _        || _        || _        d | _        d | _        d| _        d| _        d S )Nr   F)	rf   rm   _state_debug_loop_factory_loop_context_interrupt_count_set_event_loop)selfru   rv   s      rr   __init__zRunner.__init__   s@     !.DKDK!-D37DJ DM$%D!#(D   rq   returnc                .    |                                   | S N)
_lazy_initr   s    rr   	__enter__zRunner.__enter__   s    OOKrq   exc_typetype[BaseException] | Noneexc_valBaseException | Noneexc_tbTracebackType | NoneNonec                .    |                                   d S r   )closer   r   r   r   s       rr   __exit__zRunner.__exit__   s     JJLLLLLrq   c                   | j         }| j        t          j        us|dS 	 t	          |           |                    |                                           t          |d          r(|                    |                                           n"|                    t          |                     | j
        rt          j        d           |                                 d| _         t          j        | _        dS # | j
        rt          j        d           |                                 d| _         t          j        | _        w xY w)zShutdown and close event loop.Nshutdown_default_executor)r}   rz   rf   rn   _cancel_all_tasksrun_until_completeshutdown_asyncgenshasattrr   _shutdown_default_executorr   ra   set_event_loopr   ro   r   loops     rr   r   zRunner.close   s.   :D{&"444,!$'''''(?(?(A(ABBB4!<== N++D,J,J,L,LMMMM++,Ft,L,LMMM' 0)$///

!
$m	 ' 0)$///

!
$m++++s   BC9 9A	Er   c                8    |                                   | j        S )zReturn embedded event loop.)r   r}   r   s    rr   get_loopzRunner.get_loop   s    OO:rq   contextcoroCoroutine[T_Retval]T_Retvalc               R   t          j        |          st          d|          t          j                    t          d          |                                  || j        }|                    | j	        j
        |          }t          j                    t          j                    u rst          j        t          j                  t          j        u rIt%          | j        |          }	 t          j        t          j        |           n# t          $ r d}Y nw xY wd}d| _        	 | j	                            |          |Jt          j        t          j                  |u r+t          j        t          j        t          j                   S S S # t,          j        $ r5 | j        dk    r(t1          |dd          }| |            dk    rt2           w xY w# |Jt          j        t          j                  |u r+t          j        t          j        t          j                   w w w xY 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"   
ValueErrorra   _get_running_loopRuntimeErrorr   r~   runr}   r   	threadingcurrent_threadmain_threadsignal	getsignalSIGINTdefault_int_handlerr   
_on_sigintr   r   rb   r   getattrKeyboardInterrupt)r   r   r   tasksigint_handlerr   s         rr   r   z
Runner.run   s#   )$// L !J$!J!JKKK'))5"M   OO-;;tz5t<<D (**i.C.E.EEE$V]33v7QQQ!(D!I!I!I*M&-@@@@! * * * &*NNN	* "&$%D!Mz44T:: #.(77>IIM&-1KLLLL /I ,   (1,,&tZ>>H+

a// #.(77>IIM&-1KLLLL /Is,   -D DD)F AGG AH&c                   | j         t          j        u rt          d          | j         t          j        u rd S | j        @t          j                    | _        | j	        s t          j
        | j                   d| _	        n|                                 | _        | j        | j                            | j                   t          j                    | _        t          j        | _         d S )NzRunner is closedT)rz   rf   ro   r   rn   r|   ra   new_event_loopr}   r   r   r{   	set_debugcontextvarsr   r~   r   s    rr   r   zRunner._lazy_init   s    {fm++"#5666{f000!)#244
+ 0 )$*555+/D(!//11
{&
$$T[111'466DM ,DKKKrq   r   asyncio.Taskc                    | xj         dz  c_         | j         dk    rE|                                s1|                                 | j                            d            d S t                      )N   c                     d S r   rp   rp   rq   rr   <lambda>z#Runner._on_sigint.<locals>.<lambda>   s     rq   )r   donecancelr}   call_soon_threadsafer   )r   signumframer   s       rr   r   zRunner._on_sigint   sn    !!Q&!!$)))..2B2B)  """
//===#%%%rq   )ru   rw   rv   rx   )r   r]   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   )rj   rk   rl   r   r   r   r   r   r   r   r   rp   rq   rr   r]   r]      s        
 "&CG		) 	) 	) 	) 	) 	)	 	 	 		 	 	 		, 	, 	, 	,&	 	 	 	
 =A .	M .	M .	M .	M .	M .	M`	- 	- 	- 	-&	& 	& 	& 	& 	& 	&rq   r]   r   r   r   r   c                b   t          j        |           }|sd S |D ]}|                                 |                     t          j        |ddi           |D ]V}|                                r|                                +|                     d|                                |d           Wd S )Nreturn_exceptionsTz1unhandled exception during asyncio.run() shutdown)message	exceptionr   )rc   r   r   r   gather	cancelledr   call_exception_handler)r   	to_cancelr   s      rr   r   r      s    OD))	 	F 	 	DKKMMMMi P4 P PQQQ 
	 
	D~~ ~~+++#V%)^^%5%5 $   	
	 
	rq   c                "   K   d	 fd}d _          j        dS                                  }t          j        ||f          }|                                 	 | d{V  |                                 dS # |                                 w xY w)
z.Schedule the shutdown of the default executor.futureasyncio.futures.Futurer   r   c                    	 j                             d                               | j        d            d S # t          $ r&}                    | j        |           Y d }~d S d }~ww xY w)NT)wait)_default_executorshutdownr   
set_result	Exceptionset_exception)r   exr   s     rr   _do_shutdownz0_shutdown_default_executor.<locals>._do_shutdown  s    D&//T/:::))&*;TBBBBB D D D))&*>CCCCCCCCCDs   6; 
A+A&&A+TN)targetargs)r   r   r   r   )_executor_shutdown_calledr   create_futurer   r)   startjoin)r   r   r   threads   `   rr   r   r     s      	D 	D 	D 	D 	D 	D *.&!)F##%%!VIFFF	LLLLLLLKKMMMMMFKKMMMMs   A8 8Br   T_contraT)contravariantPosArgsTP
_root_taskzRunVar[asyncio.Task | None]r   c                 p   t                               d           } | |                                 s| S t                      D ]q}|j        rh|                                sTd |j        D             }|D ]@}|t
          u st          |dd           dk    r t                               |           |c c S Art          t          j
        t                                }t                              |          }|rA|j        }|r|j        |j        }|r|j        |t          t          j
        |j                  S |S )Nc                    g | ]\  }}|S rp   rp   ).0cbr   s      rr   
<listcomp>z"find_root_task.<locals>.<listcomp><  s    ???G???rq   rk   zuvloop.loop)r   getr   r   
_callbacksr   r   setr1   asyncioTaskr   _task_statescancel_scope_parent_scope
_host_task)	root_taskr   	callbacksr   stater   s         rr   find_root_taskr   4  sO   t$$IY^^%5%5  	  	 ? 	 499;; 	 ??t???I    000r<66-GGNN4(((KKKKK H lnn--DT""E ?) 	6|9E'5L  	6|9E #l&=>>>Krq   funcr   strc                    t          | dd           }t          | dd           }d                    d ||fD                       S )Nrk   rl   .c                    g | ]}||S rp   rp   )r   xs     rr   r   z%get_callable_name.<locals>.<listcomp>V  s    8881a8Q888rq   )r   r   )r   modulequalnames      rr   get_callable_namer  S  sJ    T<..Ft^T22H8888 2888999rq   z1WeakKeyDictionary[asyncio.AbstractEventLoop, Any]	_run_varsr   boolc                   |                                  }d}||u}|st          j        d|fd||f          dt          j                    v st          j        |          rt          j        |          ndt          j        |          dz  }dd|iz  }t          t          j        |                    dx}}	 t          |          t          t          fv S # t          $ r t          d|  d	          dw xY w)
zBReturn ``True`` if the task has been started and has not finished.Nis notz%(py0)s is not %(py3)sr   py0py3zassert %(py5)spy5zCannot determine if task z has started or not)get_coro
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationr!   r   r    AttributeErrorr   )r   r   @py_assert2@py_assert1@py_format4@py_format6s         rr   _task_startedr  `  s-    ==??D4t4t44tY &&<*HHH Y Y YMDMMMNNTXXYs   9C C5excr   c                    	 | j         rBt          | j         d         t                    r"| j         d                             d          rdS t          | j        t
                    r| j        } ldS )NTr   Cancelled via cancel scope F)r   
isinstancer   
startswith__context__r   r  s    rr   is_anyio_cancellationr$  r  sr    H	38A;,,	 &&'DEE	
 4co~66 	/Curq   c                  F   e Zd Zej        ddd$dZej        dfd%d	Zd&d
Zd'dZe	d(d            Z
e	d(d            Zd)dZd*dZd)dZd+d,dZe	d-d            Zej        d.d            Ze	d(d             Ze	d(d!            Ze	d(d"            Zej        d/d#            ZdS )0rO   Fdeadlineshieldr'  floatr(  r  r   c               6    t                               |           S r   object__new__clsr'  r(  s      rr   r-  zCancelScope.__new__  s     ~~c"""rq   c                   || _         || _        d | _        t                      | _        d| _        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_cancel_reason_cancelled_caught_active_timeout_handle_cancel_handle_tasksr   sysversion_info_pending_uncancellations)r   r'  r(  s      rr   r   zCancelScope.__init__  s    !15/2uu#*.!&;?59),/3w&&89D))),0D)))rq   c                P   | j         rt          d          t          t          j        t                                x| _        }| j                            |           	 t          |         }|j
        | _        | |_
        | j        >| j        j                            |            | j        j                            |           n*# t          $ r t          d |           }|t          |<   Y nw xY w|                                  d| _         | j        r|                     |            | S )Nz;Each CancelScope may only be used for a single 'with' blockT)r7  r   r1   r   r   r   r   r:  addr   r   r   r3  discardKeyError	TaskState_timeoutr4  _deliver_cancellation)r   	host_task
task_states      rr   r   zCancelScope.__enter__  s/   < 	M   '+7<&H&HH)	"""	=%i0J
 ",!8D&*J#!- "044T:::")11)<<<  	1 	1 	1"4..J&0L###	1 	  	-&&t,,,s   C $C,+C,r   r   r   r   r   r   c                f	   ~| j         st          d          t                      | j        urt          d          | j        }d }||u}|st	          j        d|fd||f          dt          j                    v st	          j        |           rt	          j	        |           ndt	          j	        |          t	          j	        |          dz  }dd|iz  }t          t	          j        |                    d x}x}}t                              | j                  }	|		|	j        | urt          d	          	 d
| _         | j        r | j                                         d | _        | j                            | j                   | j        C| j        j                            |            | j        j                            | j                   | j        |	_        |                                  | j        r| j        s| j        r0| j                                         | xj        dz  c_        | j        0t7          |t8                    rQ|                    d           \  }
}|
	 d | _        ~d
S d| _        |	 d | _        ~dS |j        }	 |# ||_        ~w xY wt7          |t@                    r!tC          |          rd| _        	 d | _        ~dS 	 d | _        ~d
S | j        r| j        }d }||u}|st	          j        d|fd||f          dt          j                    v st	          j        |           rt	          j	        |           ndt	          j	        |          t	          j	        |          dz  }dd|iz  }t          t	          j        |                    d x}x}}| j        }|j        }d }||u}|st	          j        d|fd||f          dt          j                    v st	          j        |           rt	          j	        |           ndt	          j	        |          t	          j	        |          t	          j	        |          dz  }dd|iz  }t          t	          j        |                    d x}x}x}}| j        xj        | j        z  c_        d| _        	 d | _        ~d
S # d | _        ~w xY w)NzThis cancel scope is not activezIAttempted to exit cancel scope in a different task than it was entered inr  )z6%(py2)s
{%(py2)s = %(py0)s._host_task
} is not %(py5)sr   r  py2r  assert %(py7)spy7zTAttempted to exit a cancel scope that isn't the current tasks's current cancel scopeFr   c                J    t          | t                    ot          |           S r   )r   r   r$  r#  s    rr   r   z&CancelScope.__exit__.<locals>.<lambda>  s$    &sN;; ; 5c : : rq   T)z9%(py2)s
{%(py2)s = %(py0)s._parent_scope
} is not %(py5)s)zg%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s._parent_scope
}._pending_uncancellations
} is not %(py7)s)r  rI  py4rK  zassert %(py9)spy9r   )"r7  r   r   r   r  r  r  r  r  r  r  r  r   r   r   r8  r   r:  remover   r3  r?  _restart_cancellation_in_parentr4  %_parent_cancellation_is_visible_to_usr=  r   r   rd   splitr6  r"  r   r$  )r   r   r   r   r  @py_assert4@py_assert3r  @py_format8host_task_statecancelleds_caught	remainingr   @py_assert6@py_assert5@py_format10s                   rr   r   zCancelScope.__exit__  s    | 	B@AAA>>00  
 *d*d**********d************t*****t**********d***************************&**4?;;"o&B$&N&N'  
H	 DL# ,$++---'+$Kt///!-"077===")--do>>>+/+=O( 00222
 " 14+U 13 7O,,...11Q611 3 7
 g'9::  %3:== 4 40%y )0$F #DOE .2D* (#< #DO; (3G$ ( 18	-#!'>:: %?T@ @ % 26.# #DO  % #DO 0 6-9T9-T9999999999-T9999999999994999994999999-9999T999999999999999999999999999-R-FRdRFdRRRRRRRRRRFdRRRRRRRRRRRR4RRRRR4RRRRRR-RRRRFRRRRdRRRRRRRRRRRRRRRRRRRRRRRRRRRRR&??5?? 56D1"DO #DOKKKKs2   5D,R& ,	R&  R& J
 

J.R& GR& &
R0c                D    | }||j         rdS |j        rdS |j        }|dS )NTF)r4  r(  r   )r   r   s     rr   _effectively_cancelledz"CancelScope._effectively_cancelled  sD    +/&* t" u'5L & urq   c                <    | j         d uo| j         o| j         j        S r   )r   r(  r]  r   s    rr   rQ  z1CancelScope._parent_cancellation_is_visible_to_us,  s.     d* :K:"9	
rq   r   c                   | j         t          j        k    rit                      }|                                | j         k    r|                     d           d S |                    | j         | j                  | _        d S d S )Nzdeadline exceeded)	r1  mathinfr	   timer   call_atrC  r8  r   s     rr   rC  zCancelScope._timeout4  sr    >TX%%#%%Dyy{{dn,,/00000'+||DNDM'R'R$$$ &%rq   originc                6   d}t                      }| j        D ]}d}|j        r||ur|| j        u st	          |          ro|j        }t          |t          j                  r|	                                s:|
                    |j                   ||j        u r|j        |xj        dz  c_        | j        D ]'}|j        s|j        s|                    |          p|}(|| u r6|r-t#                                          | j        |          | _        n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

        FTNr   )r   r:  _must_cancelr   r  _fut_waiterr   r   r   r   r   r5  r=  r3  r2  cancel_calledrD  r	   	call_soonr9  )r   rd  should_retrycurrentr   waiterscopes          rr   rD  z!CancelScope._deliver_cancellation<  sZ    ..K 	= 	=DL   7""(?(?=QUCVCV(?)!&'.99 = =KK 5666 111";G771<77 ' 	S 	SE= S)< S$::6BBRl T>> +&6&8&8&B&B.' '## '+#rq   c                    | j         }|9|j        r|j        |                    |           dS |j        rdS |j         }|7dS dS )zb
        Restart the cancellation effort in the closest directly cancelled parent scope.

        N)r   r4  r9  rD  r2  r   rm  s     rr   rP  z+CancelScope._restart_cancellation_in_parentj  sl    
 "# '///666 } 'E rq   Nreason
str | Nonec                P   | j         s| j        r | j                                         d | _        d| _         dt          |           d| _        t                      x}r| xj        d| z  c_        |r| xj        d| z  c_        | j        |                     |            d S d S d S )NTr  r   z by z
; reason: )r4  r8  r   idr5  r   r   rD  )r   rp  r   s      rr   r   zCancelScope.cancel}  s    " 	1# ,$++---'+$"&D"L4"L"L"LD#~~%t 5##}d}}4## =##'<F'<'<<##***400000	1 	1 +*rq   c                    | j         S r   )r1  r   s    rr   r'  zCancelScope.deadline  s
    ~rq   valuec                    t          |          | _        | j         | j                                         d | _        | j        r| j        s|                                  d S d S d S r   )r)  r1  r8  r   r7  r4  rC  r   ru  s     rr   r'  zCancelScope.deadline  sn    u+ '')))#'D < 	 3 	MMOOOOO	 	 	 	rq   c                    | j         S r   )r4  r   s    rr   rh  zCancelScope.cancel_called  s    ""rq   c                    | j         S r   )r6  r   s    rr   cancelled_caughtzCancelScope.cancelled_caught  s    %%rq   c                    | j         S r   )r2  r   s    rr   r(  zCancelScope.shield  
    |rq   c                ^    | j         |k    r|| _         |s|                                  d S d S d S r   )r2  rP  rw  s     rr   r(  zCancelScope.shield  sH    <5   DL 74466666 ! 7 7rq   r'  r)  r(  r  r   rO   )r'  r)  r(  r  )r   rO   r   r   r   r   r   r   r   r  r   r  r   )rd  rO   r   r  r   )rp  rq  r   r   r   r)  ru  r)  r   r   )ru  r  r   r   )rj   rk   rl   r`  ra  r-  r   r   r   propertyr]  rQ  rC  rD  rP  r   r'  setterrh  rz  r(  rp   rq   rr   rO   rO     s       "&(5# # # # # #
 *.% 1 1 1 1 1$   >` ` ` `D    X 
 
 
 X
S S S S, , , ,\( ( ( (&1 1 1 1 1"    X _   _ # # # X# & & & X&    X ]7 7 7 ]7 7 7rq   rO   c                      e Zd ZdZdZd	dZdS )
rB  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__r  
int | Noner   CancelScope | Nonec                "    || _         || _        d S r   r  r   )r   r  r   s      rr   r   zTaskState.__init__  s    "(rq   N)r  r  r   r  )rj   rk   rl   __doc__	__slots__r   rp   rq   rr   rB  rB    s9         
 ;I) ) ) ) ) )rq   rB  z*WeakKeyDictionary[asyncio.Task, TaskState]r   c                       e Zd ZddZdddZdS )_AsyncioTaskStatusr   asyncio.Futurer  intc                "    || _         || _        d S r   )_future
_parent_id)r   r   r  s      rr   r   z_AsyncioTaskStatus.__init__  s    #rq   Nru  T_contra | Noner   r   c                4   	 | j                             |           n># t          j        $ r, | j                                         st          d          d Y nw xY wt          t          j        t                                }| j	        t          |         _        d S )Nz.called 'started' twice on the same task status)r  r   r   InvalidStateErrorr   r   r1   r   r   r  r   r  )r   ru  r   s      rr   startedz_AsyncioTaskStatus.started  s    	L##E****( 	 	 	<))++ "D  	 GL,..11'+T$$$s    8AA)r   r  r  r  r   )ru  r  r   r   )rj   rk   rl   r   r  rp   rq   rr   r  r    sA        $ $ $ $
7 
7 
7 
7 
7 
7 
7rq   r  r[      zCodeType | None_eager_task_factory_codec                  N    e Zd ZddZddZd dZ	 d!d"dZddd#dZddd$dZdS )%	TaskGroupr   r   c                |    t                      | _        d| _        g | _        t	                      | _        d | _        d S )NF)rO   r   r7  _exceptionsr   r:  _on_completed_futr   s    rr   r   zTaskGroup.__init__  s6    )402),>Brq   c                J   K   | j                                          d| _        | S NT)r   r   r7  r   s    rr   
__aenter__zTaskGroup.__aenter__  s'      ##%%%rq   r   r   r   r   r   r   r  c                  K   	 |H| j                                          t          |t                    s| j                            |           t                      }	 | j        rt                      5 }| j        r|	                                | _
        	 | j
         d {V  n_# t          $ rR}d|_        | j                                          |$t          |t                    rt          |          s|}Y d }~nd }~ww xY wd | _
        | j        d d d            n# 1 swxY w Y   nt                                           d {V  d| _        | j        rt!          d| j                  d |r|nK# t"          $ r>}| j                             t'          |          ||j                  r
Y d }~~~| `dS  d }~ww xY w| j                             |||          ~~| `S # ~~| `w xY w)NTFzunhandled errors in a TaskGroup)r   r   r   r   r  appendr	   r:  rO   r   r  r(  r$  AsyncIOBackendcancel_shielded_checkpointr7  rd   BaseExceptionr   type__traceback__)r   r   r   r   r   
wait_scoper  s          rr   	__aexit__zTaskGroup.__aexit__  s     7	2"!((***!'>:: 5$++G444#%%D,; F$ :*"k :595G5G5I5ID22&*&< < < < < < < < <#1 2 2 2 59
 1 $ 1 8 8 : : :
 $+?$.w$G$G $3,A#,F,F $3 /2G2 6:D2) #k :: : : : : : : : : : : : : : :2 )CCEEEEEEEEE$# 	"
 -94;K    "!M"    $--d3iic>OPP  444 !1!1!1	 	 $--hHH!1!1!11111s   AG E/ 2!DB"!D"
C>,AC94D9C>>DE/ DE/ "D#AE/ .G /
F79.F2'G 1F22F77G G Nr   ,Callable[[Unpack[PosArgsT]], Awaitable[Any]]r   tuple[Unpack[PosArgsT]]namer,  task_status_futureasyncio.Future | Noner   c                >    d fd} j         st          d          i }rFt          t                                }t	          t           j        j                            |d<   nt           j        j                  } ||i |}t          |          s9t          |d          r
|j	         d	nd
}	t          d|	 |j         d|d          |t          |          nt          |          }t          j                    }
|
                                x}rGt#          |dd           t$          u r/t#          |dd           x}r|d         j        } |||
|          nt)          ||          t+          | j                  t,          <    j        j                                        j                                       t2          j        dk    r+ j        j        t          j         j        j                                       |           S )N_taskr   r   r   c                   t           j        dk    r+j        j        t	          j        | j        j                   t          |          }|j        }d }||u}|st          j        d|fd||f          dt          j
                    v st          j        |          rt          j        |          ndt          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|j        }|j        }| |v }|st          j        d|fd	| |f          d
t          j
                    v st          j        |           rt          j        |           nd
dt          j
                    v st          j        |          rt          j        |          ndt          j        |          t          j        |          dz  }dd|iz  }	t          t          j        |	                    d x}x}}|j        j                            |            j                                       t          | = j        8j        s1	 j                            d            n# t          j        $ r Y nw xY w	 |                                 }
nT# t*          $ rG}t-          |j        t*                    r!|j        }t-          |j        t*                    !|}
Y d }~nd }~ww xY w|
                                rd S                                 rXt-          |
t*                    sj                            |
           j        j        sj                                         d S d S                     |
           d S 8                                s&                    t?          d                     d S d S d S )Nr[      r  )z8%(py2)s
{%(py2)s = %(py0)s.cancel_scope
} is not %(py5)srF  rH  rJ  rK  )in)zP%(py0)s in %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s.cancel_scope
}._tasks
}r  )r  rI  rM  py6zassert %(py8)spy8z2Child exited without calling task_status.started()) r;  r<  r   r   r   future_discard_from_awaited_byr   r  r  r  r  r  r  r  r  r:  rO  r  r   r  r   r   r   r"  r   r   r  r  r]  r   r   r   )r  rF  r  rS  rT  r  rU  rZ  @py_format7@py_format9r  er   r   r  s               rr   	task_donez#TaskGroup._spawn.<locals>.task_done5  sT   7**t/@/K/W64,7   &e,J*6$6*$6666666666*$666666666666:66666:666666*6666$666666666666666666666666666&3:3::5:::::::::::5:::::::::::::5:::::5:::::::::::::J:::::J::::::3::::::::::::::::::::::::::::::::#*11%888Kt$$$U#%1$+1*55d;;;;0   Doo''!    ?? &A !?? & 	  &16H6R6R6T6T1F%-1C1H1H1J1J-%c>:: 5(//444,C 3)00222223 3 '44S99999#/8J8O8O8Q8Q/"00 !UVV     0///s*   I6 6JJJ! !
K2+=K--K2z;This task group is not active; no new tasks can be started.task_statusrk   r    z	Expected z0() to return a coroutine, but the return value (z) is not a coroutine object__code____closure__r   )r   r  r  r  r  )r  r   r   r   )r7  r   rs  r   r  r   r   r"   r   rk   	TypeErrorrl   r  r   r   r	   get_task_factoryr   r  cell_contentsr   rB  r   r:  r?  r;  r<  future_add_to_awaited_byadd_done_callback)r   r   r   r  r  r  kwargsr  r   prefixr   factoryclosurecustom_task_constructorr   s   `   `         @rr   _spawnzTaskGroup._spawn.  s   -	 -	 -	 -	 -	 -	 -	 -	^ | 	M    	9<>>**I$6"Bt'8'C$D$D% %F=!! 4,788ItT$V$$4   	.5dL.I.IQ****rFIF ID$5 I I%)I I I  
 +/, &&&CII'))--///W	0T226NNN#G]DAAA O '.aj&>#**4dFFFDDt$///D 'd.?
 
 
T 	 $$T***w&&4+<+G+S,T43D3OPPPy)))rq   r  Unpack[PosArgsT]c               4    |                      |||           d S r   )r  )r   r   r  r   s       rr   
start_soonzTaskGroup.start_soon  s      	D$%%%%%rq   Callable[..., Awaitable[Any]]r.   c               l  K   t          j                    }|                     ||||          }	 | d {V S # t          $ rr |                                 t          d          5  t          t                    5  | d {V  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y    w xY w)NTr(  )r   r   r  r   r   rO   r   )r   r   r  r   r   r   s         rr   r   zTaskGroup.start  sI      ")!1!1{{4tV44	<<<<<< 	 	 	KKMMMD)))  8N+C+C  






                              	sQ   7 .B3%B&:	BB&BB&BB&B3&B*	*B3-B*	.B3r   )r   r  r  r   )
r   r  r   r  r  r,  r  r  r   r   )r   r  r   r  r  r,  r   r   )r   r  r   r,  r  r,  r   r.   )	rj   rk   rl   r   r  r  r  r  r   rp   rq   rr   r  r    s        C C C C   
=2 =2 =2 =2H 59b b b b bP 	& & & & & & RV       rq   r  c                  >     e Zd ZdZd fdZddZddZdddZ xZS )WorkerThread
   r   r   workersset[WorkerThread]idle_workersdeque[WorkerThread]c                    t                                          d           || _        || _        || _        |j        | _        t          d          | _        t          
                                | _        d| _        d S )NzAnyIO worker threadr  r3   F)superr   r   r  r  r}   r   r%   queuer  current_time
idle_sincestopping)r   r   r  r  	__class__s       rr   r   zWorkerThread.__init__  sr     	3444"(O	 !HH 	
 )5577rq   r   r  resultr.   r  r   r   r   c                f   t                                           | _        | j        s| j                            |            |                                s]|Dt          |t                    rt          d          }||_
        |}|                    |           d S |                    |           d S d S )Nzcoroutine raised StopIteration)r  r  r  r  r  r  r   r   StopIterationr   	__cause__r   r   )r   r   r  r  new_excs        rr   _report_resultzWorkerThread._report_result  s     )5577} 	+$$T***!! 		*c=11 "*+KLLG(+G%!C$$S)))))!!&)))))		* 		*rq   c                2   t          t          | j                  5  	 | j                                        }|	 d d d            d S |\  }}}}}|                                sd }d }|t          _        	  |j        |g|R  }n# t          $ r}	|	}Y d }	~	nd }	~	ww xY wt          `n# t          `w xY w| j        
                                s"| j                            | j        |||           ~~| j                                         ~~~~~~# 1 swxY w Y   d S r   )r9   r  r   r  r   r   r;   current_cancel_scoper   r  	is_closedr   r  r  )
r   itemr   r   r   r   r   r  r   r  s
             rr   r   zWorkerThread.run  s    ;; 	D 	DDz~~''<	D 	D 	D 	D 	D 	D 	D 	D =A9tV\'')) *!F6:I8DL5>!,T!9D!9!9!9( ( ( ($'						( )==L=====9..00 	66 /   	
$$&&&'4v|5D	D 	D 	D 	D 	D 	D 	D 	D 	D 	DsT   D,D3BB#
BBB#BB#D#	B,,A DDDNfasyncio.Task | Nonec                    d| _         | j                            d            | j                            |            	 | j                            |            d S # t          $ r Y d S w xY wr  )r  r  
put_nowaitr  r@  r  rO  r   )r   r  s     rr   stopzWorkerThread.stop  sy    
d###T"""	$$T***** 	 	 	DD	s   A 
A'&A')r   r   r  r  r  r  )r   r  r  r.   r  r   r   r   r   r   )r  r  r   r   )	rj   rk   rl   MAX_IDLE_TIMEr   r  r   r  __classcell__r  s   @rr   r  r    s        M     "* * * *$D D D D<        rq   r  _threadpool_idle_workerszRunVar[deque[WorkerThread]]_threadpool_workerszRunVar[set[WorkerThread]]F)eqc                  ,    e Zd ZU ded<   dddZdd
ZdS )StreamReaderWrapperzasyncio.StreamReader_stream   	max_bytesr  r   bytesc                \   K   | j                             |           d {V }|r|S t          r   )r  readr?   )r   r  datas      rr   receivezStreamReaderWrapper.receive  s@      \&&y11111111 	Krq   r   c                   K   | j                             t                                 t                                           d {V  d S r   )r  r   r>   r  
checkpointr   s    rr   aclosezStreamReaderWrapper.aclose  sM      ""#6#8#8999'')))))))))))rq   Nr  r  r  r   r  r   )rj   rk   rl   __annotations__r  r  rp   rq   rr   r  r    sO         !!!!    * * * * * *rq   r  c                  N    e Zd ZU ded<    edd          Zded<   ddZddZdS )StreamWriterWrapperzasyncio.StreamWriterr  F)initdefaultr  _closedr  r  r   r   c                  K   t                                            d {V  | j        j        j        }	 | j                            |           | j                                         d {V  nP# t          t          t          f$ r6}| j
        rt          || j                                        rt          | d }~ww xY w|s!t                                            d {V  d S d S r   )r  checkpoint_if_cancelledr  	_protocol_pausedwritedrainConnectionResetErrorBrokenPipeErrorr   r  r>   
is_closingr<   r  )r   r  stream_pausedr  s       rr   sendzStreamWriterWrapper.send$  s     44666666666.6	Lt$$$,$$&&&&&&&&&&$o|D 		 		 		 | 3)s2((** 3)s2		  	> ;;===========	> 	>s   9A. .B;1B66B;c                   K   d| _         | j                                         t                                           d {V  d S r  )r  r  r   r  r  r   s    rr   r  zStreamWriterWrapper.aclose8  sK      '')))))))))))rq   Nr  r  r   r   r   )rj   rk   rl   r  r   r  r  r  rp   rq   rr   r	  r	    sj         !!!!Eue444G4444> > > >(* * * * * *rq   r	  c                      e Zd ZU ded<   ded<   ded<   ded<   dd
ZddZddZddZddZe	dd            Z
e	dd            Ze	dd            Ze	dd            Ze	dd            ZdS ) Processzasyncio.subprocess.Process_processzStreamWriterWrapper | None_stdinzStreamReaderWrapper | None_stdout_stderrr   r   c                  K   t          d          5 }| j        r| j                                         d {V  | j        r| j                                         d {V  | j        r| j                                         d {V  d|_        	 |                                  d {V  nD# t          $ r7 d|_        |                                  |                                  d {V   w xY w	 d d d            d S # 1 swxY w Y   d S )NTr  F)	rO   r  r  r  r  r(  r   r  killro  s     rr   r  zProcess.acloseE  s     %%% 	{ +k((*********| ,l))+++++++++| ,l))+++++++++ ELiikk!!!!!!!!    #		iikk!!!!!!!	 "	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s+   A:C;B)(C;)AC**C;;C?C?r  c                D   K   | j                                          d {V S r   )r  r   r   s    rr   r   zProcess.waitW  s,      ]'')))))))))rq   c                8    | j                                          d S r   )r  	terminater   s    rr   r$  zProcess.terminateZ  s    !!!!!rq   c                8    | j                                          d S r   )r  r!  r   s    rr   r!  zProcess.kill]  s    rq   r   c                :    | j                             |           d S r   )r  send_signal)r   r   s     rr   r'  zProcess.send_signal`  s    !!&)))))rq   c                    | j         j        S r   )r  pidr   s    rr   r)  zProcess.pidc  s    }  rq   r  c                    | j         j        S r   )r  
returncoder   s    rr   r+  zProcess.returncodeg  s    }''rq   abc.ByteSendStream | Nonec                    | j         S r   )r  r   s    rr   stdinzProcess.stdink  
    {rq   abc.ByteReceiveStream | Nonec                    | j         S r   )r  r   s    rr   stdoutzProcess.stdouto  r|  rq   c                    | j         S r   )r  r   s    rr   stderrzProcess.stderrs  r|  rq   Nr   r   r  )r   r  r   r   r   r  )r   r,  )r   r0  )rj   rk   rl   r  r  r   r$  r!  r'  r  r)  r+  r.  r2  r4  rp   rq   rr   r  r  >  sJ        ((((&&&&''''''''   $* * * *" " " "   * * * * ! ! ! X! ( ( ( X(    X    X    X  rq   r  r  set[Process]r  r,  c                   d}t           j        dk     r7	 t          j                                                    }n# t
          $ r Y nw xY w|                                 D ]}|j        
|j        j	        j
                                         |j        j	        j
                                         |j        j	        j
                                         |                                 |r|                    |j                   dS )zG
    Forcibly shuts down worker processes belonging to this event loop.Nr  )r;  r<  r   get_event_loop_policyget_child_watcherNotImplementedErrorcopyr+  r  r  
_transportr   r  r  r!  remove_child_handlerr)  )r  r  child_watcherprocesss       rr   '_forcibly_shutdown_process_pool_on_exitrA  x  s   
 :>M
'!!	#9;;MMOOMM" 	 	 	D	 <<>> 	< 	<))//111*00222*00222 	<..w{;;;	< 	<s   %: 
AAset[abc.Process]c                  K   	 t          t          j                   d{V  dS # t          j        $ rW |                                 } | D ]}|j        |                                 | D ]}|                                 d{V  Y dS w xY 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`  ra  r   r   r<  r+  r!  r  )r  r@  s     rr   _shutdown_process_pool_on_exitrD    s      	#DHoo! # # #,,.. 	 	G!) 	# 	#G..""""""""""	# 	# 	##s   % A"B
Bc                  z    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ZddZddZddZ	ddZ
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                   t                      | _        t          j                    | _        t          j                    | _        | j                                         t          t          j        |          	                    d           d S Nr   )
r   rG  r   rG   rI  rJ  r   r1   	Transportset_write_buffer_limitsr   rM  s     rr   connection_madezStreamProtocol.connection_made  sd    ''!-//"=??W	**BB1EEEEErq   r  c                |    |r|| _         | j                                         | j                                         d S r   )r   rI  r   rJ  r   r  s     rr   connection_lostzStreamProtocol.connection_lost  s@     	! DNrq   r   r  c                    | j                             t          |                     | j                                         d S r   )rG  r  r  rI  r   )r   r   s     rr   data_receivedzStreamProtocol.data_received  s8    uT{{+++rq   rw   c                F    d| _         | j                                         dS r  )rL  rI  r   r   s    rr   eof_receivedzStreamProtocol.eof_received  s"    trq   c                6    t          j                    | _        d S r   )r   rG   rJ  r   s    rr   pause_writingzStreamProtocol.pause_writing  s    "=??rq   c                8    | j                                          d S r   rJ  r   r   s    rr   resume_writingzStreamProtocol.resume_writing      rq   rM  rN  r   r   r  rK  r   r   )r   r  r   r   )r   rw   r   )rj   rk   rl   r  r   rL  rT  rW  rY  r[  r]  r`  rp   rq   rr   rF  rF    s         "&I&&&&IF F F F      
   
+ + + +     rq   rF  c                  l    e Zd ZU ded<   ded<   ded<   dZded<   ddZddZddZddZddZ	ddZ
dS )DatagramProtocolz#deque[tuple[bytes, IPSockAddrType]]rG  rH  rI  rJ  NrK  r   rM  rN  r   r   c                    t          d          | _        t          j                    | _        t          j                    | _        | j                                         d S )Nd   )maxlen)r   rG  r   rG   rI  rJ  r   rS  s     rr   rT  z DatagramProtocol.connection_made  sJ    s+++!-//"=??rq   r  c                j    | j                                          | j                                         d S r   )rI  r   rJ  rV  s     rr   rW  z DatagramProtocol.connection_lost  s1    rq   r   r  addrrQ   c                    t          |          }| j                            ||f           | j                                         d S r   )rB   rG  r  rI  r   )r   r   rj  s      rr   datagram_receivedz"DatagramProtocol.datagram_received  sC    $T**d|,,,rq   r   c                    || _         d S r   )r   rV  s     rr   error_receivedzDatagramProtocol.error_received  s    rq   c                8    | j                                          d S r   )rJ  clearr   s    rr   r]  zDatagramProtocol.pause_writing  s         rq   c                8    | j                                          d S r   r_  r   s    rr   r`  zDatagramProtocol.resume_writing  ra  rq   rb  rc  )r   r  rj  rQ   r   r   )r  r   r   r   r   )rj   rk   rl   r  r   rT  rW  rl  rn  r]  r`  rp   rq   rr   re  re    s         3333"&I&&&&         
   ! ! ! !     rq   re  c                  P    e Zd ZddZedd            ZdddZddZddZddZ	dS )SocketStreamrM  asyncio.TransportprotocolrF  c                    || _         || _        t          d          | _        t          d          | _        d| _        d S Nreading from
writing toFr=  r  rJ   _receive_guard_send_guardr  r   rM  ru  s      rr   r   zSocketStream.__init__  s;    #!+N;;(66rq   r   socket.socketc                6    | j                             d          S Nsocketr=  get_extra_infor   s    rr   _raw_socketzSocketStream._raw_socket      --h777rq   r  r  r  r  c                `  K   | j         5  | j        j                                        s|| j                                        sc| j        j        sW| j                                         | j        j                                         d {V  | j        	                                 nt                                           d {V  	 | j        j                                        }nC# t          $ r6 | j        rt           d | j        j        rt$          | j        j        t&          d w xY wt)          |          |k    r3|d |         ||d          }}| j        j                            |           | j        j        s| j        j                                         d d d            n# 1 swxY w Y   |S r   )r{  r  rI  is_setr=  r  rL  resume_readingr   pause_readingr  r  rG  popleft
IndexErrorr  r>   r   r<   r?   len
appendleftrp  )r   r  chunkleftovers       rr   r  zSocketStream.receive  s       	2 	2N-4466	22244	2 0	2
 ..000n/44666666666--////$//1111111110199;; 0 0 0< 0-47^- 0-4>3KK%4/0 5zzI%%"'

"3U9::5Fx)44X>>> >, 2)//111=	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2@ s,   B:F#C$#F#$A D$$A3F##F'*F'r  r   c                  K   | j         5  t                                           d {V  | j        rt          | j        j        t          | j        j        	 | j        	                    |           n4# t          $ r'}| j                                        rt          | d }~ww xY w| j        j                                         d {V  d d d            d S # 1 swxY w Y   d S r   )r|  r  r  r  r>   r  r   r<   r=  r  r   r  rJ  r   )r   r  r  s      rr   r  zSocketStream.send  sI      	4 	4 ++---------| H)))5)t~/GG%%d++++   ?--// -36	 .,11333333333!	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s6   ACA21C2
B#<"BB##'CCCc                `   K   	 | j                                          d S # t          $ r Y d S w xY wr   )r=  	write_eofOSErrorr   s    rr   send_eofzSocketStream.send_eof2  sG      	O%%''''' 	 	 	DD	s    
--c                2  K   d| _         | j                                        st	 | j                                         n# t          $ r Y nw xY w| j                                         t          d           d {V  | j                                         d S d S NTr   )r  r=  r  r  r  r   r
   abortr   s    rr   r  zSocketStream.aclose8  s      ))++ 	$))++++    O!!###((NNNNNNNO!!#####	$ 	$s   > 
A
AN)rM  rt  ru  rF  r   r~  r  r  r  r   )
rj   rk   rl   r   r  r  r  r  r  r  rp   rq   rr   rs  rs    s            8 8 8 X8! ! ! ! !F4 4 4 4&   
$ 
$ 
$ 
$ 
$ 
$rq   rs  c                  h    e Zd ZU dZded<   dZded<   dZddZedd
            Z	ddZ
ddZddZdS )_RawSocketMixinNr  _receive_future_send_futureF
raw_socketr~  c                d    || _         t          d          | _        t          d          | _        d S )Nrx  ry  )_RawSocketMixin__raw_socketrJ   r{  r|  r   r  s     rr   r   z_RawSocketMixin.__init__J  s0    &+N;;(66rq   r   c                    | j         S r   )r  r   s    rr   r  z_RawSocketMixin._raw_socketO        rq   r   asyncio.AbstractEventLoopr  c                     d fd}t          j                    x} _                             j        |j        d            |                    |           |S )Nr  r,  r   r   c                @    `                     j                   d S r   )r  remove_readerr  r  r   r   s    rr   callbackz6_RawSocketMixin._wait_until_readable.<locals>.callbackT  s&    $t011111rq   r  r,  r   r   )r   r   r  
add_readerr  r   r  r   r   r  r  s   ``  rr   _wait_until_readablez$_RawSocketMixin._wait_until_readableS  sr    	2 	2 	2 	2 	2 	2 	2 $+>#3#33D )1<>>>	H%%%rq   c                     d fd}t          j                    x} _                             j        |j        d            |                    |           |S )Nr  r,  r   r   c                @    `                     j                   d S r   )r  remove_writerr  r  s    rr   r  z6_RawSocketMixin._wait_until_writable.<locals>.callback^  s&    !t011111rq   r  )r   r   r  
add_writerr  r   r  r  s   ``  rr   _wait_until_writablez$_RawSocketMixin._wait_until_writable]  sr    	2 	2 	2 	2 	2 	2 	2 !( 0 00D)1<>>>	H%%%rq   r   c                  K   | j         sd| _         | 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   s    rr   r  z_RawSocketMixin.acloseg  s      } 	3 DM ''))R//!'')))# 6$//555  3!,,T22222	3 	33 3rq   r  r~  r  )r   r  r   r  r   )rj   rk   rl   r  r  r  r  r   r  r  r  r  r  rp   rq   rr   r  r  E  s         -1O1111*.L....H7 7 7 7
 ! ! ! X!      	3 	3 	3 	3 	3 	3rq   r  c                  8    e Zd ZddZdddZdd
ZddZddZdS )UNIXSocketStreamr   r   c                   K   | j         5  | j                            t          j                   d d d            d S # 1 swxY w Y   d S r   )r|  r  r   r  SHUT_WRr   s    rr   r  zUNIXSocketStream.send_eoft  s       	6 	6%%fn555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   %<A A r  r  r  r  c                  K   t                      }t                                           d {V  | j        5  	 	 | j                            |          }|st          |cd d d            S # t          $ r |                     |           d {V  Y n(t          $ r}| j
        rt          d t          |d }~ww xY w# 1 swxY w Y   d S r   )r	   r  r  r{  r  recvr?   BlockingIOErrorr  r  r  r>   r<   )r   r  r   r   r  s        rr   r  zUNIXSocketStream.receivex  sS     !!'')))))))))  	  	   +00;;D   *))	  	  	  	  	  	  	  	  ' : : :33D99999999999 ; ; ;} ;1t;1s:	; 	  	  	  	  	  	  	  	  	  	 s@   B;A+
B;+%B7B;	B7B22B77B;;B?B?r  c                  K   t                      }t                                           d {V  | j        5  t	          |          }|rw	 | j                            |          }||d          }nO# t          $ r |                     |           d {V  Y n(t          $ r}| j
        rt          d t          |d }~ww xY w|wd d d            d S # 1 swxY w Y   d S r   )r	   r  r  r|  
memoryviewr  r  r  r  r  r  r>   r<   )r   r  r   view
bytes_sentr  s         rr   r  zUNIXSocketStream.send  sg     !!''))))))))) 	- 	-d##D -
-!%!1!6!6t!<!<J  
,DD ' : : :33D99999999999 ; ; ;} ;1t;1s:	;  -	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-sA   C
A/$C/%B;C	B;B66B;;CCCmsglenmaxfdstuple[bytes, list[int]]c           	       K   t          |t                    r|dk     rt          d          t          |t                    r|dk     rt          d          t                      }t	          j        d          }t
                                           d {V  | j        5  	 	 | j        	                    |t          j        ||j        z                      \  }}}}|s	|st          nP# t          $ r |                     |           d {V  Y n(t           $ r}	| j        rt$          d t&          |	d }	~	ww xY w	 d d d            n# 1 swxY w Y   |D ]\  }
}}|
t          j        k    s|t          j        k    rt-          d|d|
 d	|           |                    |d t1          |          t1          |          |j        z  z
                      |t3          |          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   r  r   r	   arrayr  r  r{  r  recvmsgr  CMSG_LENitemsizer?   r  r  r  r  r>   r<   
SOL_SOCKET
SCM_RIGHTSr   	frombytesr  list)r   r  r  r   fdsr   ancdataflagsrj  r  
cmsg_level	cmsg_type	cmsg_datas                rr   receive_fdszUNIXSocketStream.receive_fds  s     &#&& 	F&1**DEEE&#&& 	B&1**@AAA!!k#'')))))))))  	 	484D4L4L0E F F5 51GWeT # *7 *)) ' : : :33D99999999999 ; ; ;} ;1t;1s:	;  #	 	 	 	 	 	 	 	 	 	 	 	 	 	 	& 18 	Y 	Y,J	9V...)v?P2P2P"JW J J$.J J>GJ J  
 MM)$Vc)nnI8U&V$VWXXXXS		!!sB   E":C(E(%D4E	D4D//D44EE	E	r   r  Collection[int | IOBase]c                  K   |st          d          |st          d          t                      }g }|D ]i}t          |t                    r|                    |           -t          |t
                    r'|                    |                                           jt          j        d|          }t          	                                 d {V  | j
        5  	 	 | j                            |gt          j        t          j        |fg           nP# t           $ r |                     |           d {V  Y n(t$          $ r}| j        rt(          d t*          |d }~ww xY w	 d d d            d S # 1 swxY w Y   d S )Nzmessage must not be emptyzfds must not be emptyr  )r   r	   r   r  r  r#   r  r  r  r  r|  r  sendmsgr  r  r  r  r  r  r  r>   r<   )r   r   r  r   filenosfdfdarrayr  s           rr   send_fdszUNIXSocketStream.send_fds  s      	:8999 	64555!! 	, 	,B"c"" ,r""""B'' ,ryy{{++++c7++''))))))))) 	; 	;;; $,, 	V%68I7$S#T   & : : :33D99999999999 ; ; ;} ;1t;1s:	;; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;sB   E24DE2%E 9E2;	E EE  E22E69E6Nr   r  r  r  )r  r  r  r  r   r  )r   r  r  r  r   r   )rj   rk   rl   r  r  r  r  r  rp   rq   rr   r  r  s  s~        6 6 6 6         (- - - -$%" %" %" %"N; ; ; ; ; ;rq   r  c                  R    e Zd ZU dZded<   dZddZedd	            ZddZ	ddZ
dS )TCPSocketListenerNr  _accept_scopeFr  r~  c                    || _         t          t          j        t	                                | _        t          d          | _        d S )Naccepting connections from)_TCPSocketListener__raw_socketr1   r   BaseEventLoopr	   r}   rJ   _accept_guardr  s     rr   r   zTCPSocketListener.__init__  s<    &'/1A1C1CDD
*+GHHrq   r   c                    | j         S r   )r  r   s    rr   r  zTCPSocketListener._raw_socket  r  rq   abc.SocketStreamc                  K   | j         rt          | j        5  t                                           d {V  t                      5 | _        	 | j                            | j	                   d {V \  }}n[# t          j        $ rI 	 | j                            | j	                   n# t          t          f$ r Y nw xY w| j         rt          d  w xY w	 d | _        n# d | _        w xY w	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                    t           j        t           j        d           | j                            t(          |           d {V \  }}t+          ||          S Nr   )r  r>   r  r  r  rO   r  r}   sock_acceptr  r   r   r  r   r;  
setsockoptr  IPPROTO_TCPTCP_NODELAYconnect_accepted_socketrF  rs  )r   client_sock_addrrM  ru  s        rr   acceptzTCPSocketListener.accept  sC     < 	&%% 	. 	. ++--------- .$"4./3z/E/EdFV/W/W)W)W)W)W)W)W&K- 
 
 

001ABBBB&(;<    | <1t;
 "' *.D&&D&----&. . . . . . . . . . . . . . .	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.& 	v163EqIII$(J$F$FK%
 %
 
 
 
 
 
 
	8 Ix000s   .D
C3(A65C6CB&%C&B:	7C9B:	:CCC3	C##C3'D
3C7	7D
:C7	;D

DDr   c                6  K   | j         rd S d| _         | j        rf	 | j                            | j                   n# t
          t          f$ r Y nw xY w| j                                         t          d           d {V  | j        	                                 d S r  )
r  r  r}   r  r  r   r;  r   r
   r   r   s    rr   r  zTCPSocketListener.aclose  s      < 	F 	
(()9:::: 34    %%'''((NNNNNNN     s   ; AAr  r  r   r  r   )rj   rk   rl   r  r  r  r   r  r  r  r  rp   rq   rr   r  r    s         (,M,,,,GI I I I
 ! ! ! X!1 1 1 1:! ! ! ! ! !rq   r  c                  >    e Zd ZddZddZddZedd	            Zd
S )UNIXSocketListenerr  r~  c                p    || _         t                      | _        t          d          | _        d| _        d S )Nr  F)_UNIXSocketListener__raw_socketr	   r}   rJ   r  r  r  s     rr   r   zUNIXSocketListener.__init__$  s3    &%''
*+GHHrq   r   r  c                (   K   t                                            d {V   j        5  	 	  j                                        \  }}|                    d           t          |          cd d d            S # t          $ r\ t          j	                    } j
                             j        |j        d            |                     fd           | d {V  Y n(t          $ r} j        rt           d t"          |d }~ww xY w# 1 swxY w Y   d S )NTFc                B    j                             j                  S r   )r}   r  r  )_r   s    rr   r   z+UNIXSocketListener.accept.<locals>.<lambda>6  s    $*":":4;L"M"M rq   )r  r  r  r  r  setblockingr  r  r   r   r}   r  r   r  r  r  r>   r<   )r   r  r  r  r  s   `    rr   r  zUNIXSocketListener.accept*  s     ''))))))))) 	; 	;;;%)%6%=%=%?%?NK++E222+K88	; 	; 	; 	; 	; 	; 	; 	; '   (/(8(8AJ))$*;Q\4PPP''MMMM   GGGGGGGGG ; ; ;| ;1t;1s:	;;	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s;   D?A99A#DD	D'C>>DDDDr   c                J   K   d| _         | j                                         d S r  )r  r  r   r   s    rr   r  zUNIXSocketListener.aclose?  s(      !!!!!rq   c                    | j         S r   )r  r   s    rr   r  zUNIXSocketListener._raw_socketC  r  rq   Nr  r  r   r  )rj   rk   rl   r   r  r  r  r  rp   rq   rr   r  r  #  sp           ; ; ; ;*" " " " ! ! ! X! ! !rq   r  c                  F    e Zd ZddZedd            Zdd
ZddZddZdS )	UDPSocketrM  asyncio.DatagramTransportru  re  c                    || _         || _        t          d          | _        t          d          | _        d| _        d S rw  rz  r}  s      rr   r   zUDPSocket.__init__I  =     $!+N;;(66rq   r   r~  c                6    | j                             d          S r  r  r   s    rr   r  zUDPSocket._raw_socketR  r  rq   r   c                   K   d| _         | j                                        s| j                                         d S d S r  r  r=  r  r   r   s    rr   r  zUDPSocket.acloseV  G      ))++ 	$O!!#####	$ 	$rq   tuple[bytes, IPSockAddrType]c                  K   | j         5  t                                           d {V  | j        j        s[| j                                        sB| j        j                                         | j        j        	                                 d {V  	 | j        j        
                                cd d d            S # t          $ r | j        rt          d t          d w xY w# 1 swxY w Y   d S r   r{  r  r  r  rG  r=  r  rI  rp  r   r  r  r  r>   r<   r   s    rr   r  zUDPSocket.receive[  sK       	8 	8 ++--------- >, 7T_5O5O5Q5Q 7)//111n/446666666668~088::	8 	8 	8 	8 	8 	8 	8 	8  8 8 8< 8-47-47	8	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s$   BC!B<<"CC!!C%(C%r  rS   c                L  K   | j         5  t                                           d {V  | j        j                                         d {V  | j        rt          | j        	                                rt           | j        j        |  	 d d d            d S # 1 swxY w Y   d S r   r|  r  r  r  rJ  r   r  r>   r=  r  r<   sendtor   r  s     rr   r  zUDPSocket.sendl  s      	. 	. ++---------.,11333333333| .))++-- .))&&---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   BBB BNrM  r  ru  re  r  r   )r   r  )r  rS   r   r   	rj   rk   rl   r   r  r  r  r  r  rp   rq   rr   r  r  H  s            8 8 8 X8$ $ $ $
8 8 8 8"	. 	. 	. 	. 	. 	.rq   r  c                  F    e Zd ZddZedd            Zdd
ZddZddZdS )ConnectedUDPSocketrM  r  ru  re  c                    || _         || _        t          d          | _        t          d          | _        d| _        d S rw  rz  r}  s      rr   r   zConnectedUDPSocket.__init__y  r  rq   r   r~  c                6    | j                             d          S r  r  r   s    rr   r  zConnectedUDPSocket._raw_socket  r  rq   r   c                   K   d| _         | j                                        s| j                                         d S d S r  r  r   s    rr   r  zConnectedUDPSocket.aclose  r  rq   r  c                  K   | j         5  t                                           d {V  | j        j        s[| j                                        sB| j        j                                         | j        j        	                                 d {V  	 | j        j        
                                }n%# t          $ r | j        rt          d t          d w xY w|d         cd d d            S # 1 swxY w Y   d S rP  r  )r   packets     rr   r  zConnectedUDPSocket.receive  sV       	 	 ++--------- >, 7T_5O5O5Q5Q 7)//111n/4466666666682::<< 8 8 8< 8-47-47	8 !9!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s*   BC*B10C*1"C
C**C.1C.r  c                b  K   | j         5  t                                           d {V  | j        j                                         d {V  | j        rt          | j        	                                rt          | j                            |           	 d d d            d S # 1 swxY w Y   d S r   r
  r  s     rr   r  zConnectedUDPSocket.send  s      	- 	- ++---------.,11333333333| -))++-- -))&&t,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   BB$$B(+B(Nr  r  r   r   r  r  r  rp   rq   rr   r  r  x  s            8 8 8 X8$ $ $ $
   &	- 	- 	- 	- 	- 	-rq   r  c                      e Zd ZddZd	dZdS )
UNIXDatagramSocketr   rT   c                ~  K   t                      }t                                           d {V  | j        5  	 	 | j                            d          }|cd d d            S # t          $ r |                     |           d {V  Y n(t          $ r}| j	        rt          d t          |d }~ww xY wy# 1 swxY w Y   d S NTr  )r	   r  r  r{  r  recvfromr  r  r  r  r>   r<   r   r   r   r  s       rr   r  zUNIXDatagramSocket.receive  sE     !!'')))))))))  	  	  
 +44U;;D  	  	  	  	  	  	  	  	  ' : : :33D99999999999 ; ; ;} ;1t;1s:	; 	  	  	  	  	  	  	  	  	  	 @   B2A"B2"%B.B2		B.B))B..B22B69B6r  r   c                h  K   t                      }t                                           d {V  | j        5  	 	  | j        j        |  	 d d d            d S # t          $ r |                     |           d {V  Y n(t          $ r}| j	        rt          d t          |d }~ww xY wn# 1 swxY w Y   d S r   )r	   r  r  r|  r  r  r  r  r  r  r>   r<   r   r  r   r  s       rr   r  zUNIXDatagramSocket.send  sB     !!''))))))))) 	 	
+D$+T22 	 	 	 	 	 	 	 	 ' : : :33D99999999999 ; ; ;} ;1t;1s:	;	 	 	 	 	 	 	 	 	 	s@   B'A	B'%B#<B'>	B#BB##B''B+.B+N)r   rT   )r  rT   r   r   rj   rk   rl   r  r  rp   rq   rr   r  r    <               "     rq   r  c                      e Zd ZddZd	dZdS )
ConnectedUNIXDatagramSocketr   r  c                ~  K   t                      }t                                           d {V  | j        5  	 	 | j                            d          }|cd d d            S # t          $ r |                     |           d {V  Y n(t          $ r}| j	        rt          d t          |d }~ww xY wy# 1 swxY w Y   d S r  )r	   r  r  r{  r  r  r  r  r  r  r>   r<   r  s       rr   r  z#ConnectedUNIXDatagramSocket.receive  sE     !!'')))))))))  	  	  
 +0077D  	  	  	  	  	  	  	  	  ' : : :33D99999999999 ; ; ;} ;1t;1s:	; 	  	  	  	  	  	  	  	  	  	 r  r  r   c                ~  K   t                      }t                                           d {V  | j        5  	 	 | j                            |           	 d d d            d S # t          $ r |                     |           d {V  Y n(t          $ r}| j	        rt          d t          |d }~ww xY wy# 1 swxY w Y   d S r   )r	   r  r  r|  r  r  r  r  r  r  r>   r<   r   s       rr   r  z ConnectedUNIXDatagramSocket.send  sF     !!''))))))))) 	 	
$))$/// 	 	 	 	 	 	 	 	 ' : : :33D99999999999 ; ; ;} ;1t;1s:	;	 	 	 	 	 	 	 	 	 	r  Nr  r  r!  rp   rq   rr   r$  r$    r"  rq   r$  read_eventsz'RunVar[dict[int, asyncio.Future[bool]]]_read_eventswrite_events_write_eventsc                  >    e Zd ZddZddZddZddZddZdd
ZdS )rG   r   c                6    t                               |           S r   r+  r/  s    rr   r-  zEvent.__new__      ~~c"""rq   r   c                6    t          j                    | _        d S r   )r   rG   _eventr   s    rr   r   zEvent.__init__  s    moorq   c                8    | j                                          d S r   )r0  r   r   s    rr   r   z	Event.set  s    rq   r  c                4    | j                                         S r   )r0  r  r   s    rr   r  zEvent.is_set  s    {!!###rq   c                   K   |                                  r!t                                           d {V  d S | j                                         d {V  d S r   )r  r  r  r0  r   r   s    rr   r   z
Event.wait  sl      ;;== 	% ++-----------+""$$$$$$$$$$$rq   r5   c                N    t          t          | j        j                            S r   )r5   r  r0  _waitersr   s    rr   
statisticszEvent.statistics  s    s4;#788999rq   N)r   rG   r   r  )r   r5   )	rj   rk   rl   r-  r   r   r  r   r6  rp   rq   rr   rG   rG     s        # # # #& & & &   $ $ $ $% % % %: : : : : :rq   rG   c                  R    e Zd ZddddZddddZdd	Zdd
ZddZddZddZ	dS )rI   Ffast_acquirer9  r  r   c               6    t                               |           S r   r+  r/  r9  s     rr   r-  zLock.__new__  r.  rq   r   c               H    || _         d | _        t                      | _        d S r   )_fast_acquire_owner_taskr   r5  )r   r9  s     rr   r   zLock.__init__  s!    )04DIGGrq   c                  K   t          t          j        t                                }| j        z| j        sst                                           d {V  || _        | j        sD	 t          	                                 d {V  n## t          $ r |                                   w xY wd S | j        |k    rt          d          t          j                    }||f}| j                            |           	 | d {V  nF# t          $ r9 | j                            |           | j        |u r|                                   w xY w| j                            |           d S Nz)Attempted to acquire an already held Lock)r1   r   r   r   r>  r5  r  r  r=  r  r   releaser   r   r  rO  )r   r   futr  s       rr   acquirezLock.acquire  s     GL,..11#DM# 88:::::::::#D % (CCEEEEEEEEEE%   LLNNN Ft##JKKK$+N$4$4SyT"""	IIIIIIII 	 	 	M  &&&4''	 	T"""""s   %B  B%6C? ?AEc                    t          t          j        t                                }| j        | j        s	|| _        d S | j        |u rt          d          t          r@  )r1   r   r   r   r>  r5  r   rA   )r   r   s     rr   acquire_nowaitzLock.acquire_nowait=  sW    GL,..11#DM##DFt##JKKKrq   c                    | j         d uS r   )r>  r   s    rr   lockedzLock.lockedH  s    t++rq   c                    | j         t                      k    rt          d          | j        D ]8\  }}|                                s|| _         |                    d             d S 9d | _         d S )Nz)The current task is not holding this lock)r>  r   r   r5  r   r   )r   r   rB  s      rr   rA  zLock.releaseK  s~    |~~--JKKK 	 	ID#==?? #' t$$$
  rq   r6   c                    | j         rt          | j                   nd }t          |                                 |t	          | j                            S r   )r>  AsyncIOTaskInfor6   rG  r  r5  )r   	task_infos     rr   r6  zLock.statisticsW  sC    9=9ISOD$4555t	dkkmmYDM8J8JKKKrq   N)r9  r  r   rI   )r9  r  r   r   r   r  )r   r6   )
rj   rk   rl   r-  r   rC  rE  rG  rA  r6  rp   rq   rr   rI   rI     s        -2 # # # # # # 05 L L L L L L
 #  #  #  #D	 	 	 	, , , ,
  
  
  
 L L L L L Lrq   rI   c                       e Zd ZdddddZdddd fdZddZddZddZedd            Z	edd            Z
ddZ xZS )rM   NF	max_valuer9  initial_valuer  rN  r  r9  r  r   c               6    t                               |           S r   r+  r/  rO  rN  r9  s       rr   r-  zSemaphore.__new__]  s     ~~c"""rq   c                   t                                          ||           || _        || _        || _        t                      | _        d S )N)rN  )r  r   _value
_max_valuer=  r   r5  )r   rO  rN  r9  r  s       rr   r   zSemaphore.__init__f  sG     	)<<<##)5:WWrq   r   c                0  K   | j         dk    r| j        s|t                                           d {V  | xj         dz  c_         | j        sD	 t                                           d {V  n## t          $ r |                                   w xY wd S t          j	                    }| j        
                    |           	 | d {V  d S # t          $ rB 	 | j                            |           n$# t          $ r |                                  Y nw xY w w xY wNr   r   )rS  r5  r  r  r=  r  r   rA  r   r   r  rO  r   r   rB  s     rr   rC  zSemaphore.acquires  s]     ;??4=? 88:::::::::KK1KK % (CCEEEEEEEEEE%   LLNNN F$+N$4$4S!!!	IIIIIIIII 	 	 	$$S))))    	s<   A, , B?C	 	
DC/.D/DDDDc                J    | j         dk    rt          | xj         dz  c_         d S rV  )rS  rA   r   s    rr   rE  zSemaphore.acquire_nowait  s)    ;!qrq   c                   | j         | j        | j         k    rt          d          | j        D ]H}|                                s2|                    d            | j                            |            d S I| xj        dz  c_        d S )Nz!semaphore released too many timesr   )rT  rS  r   r5  r   r   rO  rW  s     rr   rA  zSemaphore.release  s    ?&4;$/+I+I@AAA= 	 	C==?? t$$$$$S)))
 	qrq   c                    | j         S r   )rS  r   s    rr   ru  zSemaphore.value  r/  rq   c                    | j         S r   )rT  r   s    rr   rN  zSemaphore.max_value  s
    rq   rK   c                D    t          t          | j                            S r   )rK   r  r5  r   s    rr   r6  zSemaphore.statistics  s    "3t}#5#5666rq   )rO  r  rN  r  r9  r  r   rM   )rO  r  rN  r  r9  r  r   r5  r6  )r   rK   )rj   rk   rl   r-  r   rC  rE  rA  r  ru  rN  r6  r  r  s   @rr   rM   rM   \  s       
 !%"# # # # # # !%"= = = = = = = =   8   
 
 
 
    X    X7 7 7 7 7 7 7 7rq   rM   c                      e Zd ZU dZded<   d#dZd$dZd%d	Zd&dZe	d'd            Z
e
j        d(d            Z
e	d)d            Ze	d'd            Zd%dZd%dZd*dZd%dZd*dZd%dZd*dZd+d!Zd"S ),rE   r   r)  _total_tokenstotal_tokensr   c                6    t                               |           S r   r+  r/  r_  s     rr   r-  zCapacityLimiter.__new__  r.  rq   c                `    t                      | _        t                      | _        || _        d S r   )r   
_borrowersr   _wait_queuer_  )r   r_  s     rr   r   zCapacityLimiter.__init__  s'    $'EE<GMM(rq   r   c                >   K   |                                   d {V  d S r   )rC  r   s    rr   r  zCapacityLimiter.__aenter__  s,      llnnrq   r   r   r   r   r   r   c                2   K   |                                   d S r   )rA  r   s       rr   r  zCapacityLimiter.__aexit__  s       	rq   c                    | j         S r   )r^  r   s    rr   r_  zCapacityLimiter.total_tokens  s    !!rq   ru  c                   t          |t                    s#t          j        |          st	          d          |dk     rt          d          t          || j        z
  d          }|| _        | j        rG|rI| j        	                    d          d         }|
                                 |dz  }| j        r|Cd S d S d S d S )Nz'total_tokens must be an int or math.infr   ztotal_tokens must be >= 0Flastr   )r   r  r`  isinfr  r   maxr^  rd  popitemr   )r   ru  waiters_to_notifyevents       rr   r_  zCapacityLimiter.total_tokens  s    %%% 	Gdj.?.? 	GEFFF1998999(: :A>>"  	##4 	#$,,%,88;EIIKKK"  	##4 	# 	# 	# 	# 	# 	# 	# 	# 	#rq   r  c                *    t          | j                  S r   )r  rc  r   s    rr   borrowed_tokenszCapacityLimiter.borrowed_tokens  s    4?###rq   c                :    | j         t          | j                  z
  S r   )r^  r  rc  r   s    rr   available_tokensz CapacityLimiter.available_tokens  s    !C$8$888rq   c                    | j         rTt          | j                  | j        k     r9| j                             d          d         }|                                 dS dS dS )zCNotify the next task in line if this limiter has free capacity now.Fri  r   N)rd  r  rc  r^  rm  r   )r   ro  s     rr   _notify_next_waiterz#CapacityLimiter._notify_next_waiter  sc     	DO 4 4t7I I I$,,%,88;EIIKKKKK	 	 I Irq   c                H    |                      t                                 d S r   )acquire_on_behalf_of_nowaitr   r   s    rr   rE  zCapacityLimiter.acquire_nowait  s     ((88888rq   borrowerr,  c                    || 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)rc  r   rd  r  r^  rA   r?  r   rx  s     rr   rw  z+CapacityLimiter.acquire_on_behalf_of_nowait  sj    t&&W    	s4?33t7IIIH%%%%%rq   c                T   K   |                      t                                 d {V S r   )acquire_on_behalf_ofr   r   s    rr   rC  zCapacityLimiter.acquire  s0      ..|~~>>>>>>>>>rq   c                f  K   t                                            d {V  	 |                     |           	 t                                            d {V  d S # t          $ r |                                   w xY w# t          $ r t          j                    }|| j	        |<   	 |
                                 d {V  nR# t          $ rE | j	                            |d            |                                r|                                   w xY w| j                            |           Y d S w xY wr   )r  r  rw  r  r  rA  rA   r   rG   rd  r   popr  ru  rc  r?  )r   rx  ro  s      rr   r|  z$CapacityLimiter.acquire_on_behalf_of  st     44666666666	,,X666$??AAAAAAAAAAA    !  	* 	* 	*MOOE).DX&jjll""""""""     $$Xt444<<>> /,,... O))))))	*s5   A= A  A:='D0%C ?D0 ADD0/D0c                H    |                      t                                 d S r   )release_on_behalf_ofr   r   s    rr   rA  zCapacityLimiter.release  s     !!,..11111rq   c                    	 | j                             |           n# t          $ r t          d          d w xY w|                                  d S )Nz@this borrower isn't holding any of this CapacityLimiter's tokens)rc  rO  rA  r   ru  rz  s     rr   r  z$CapacityLimiter.release_on_behalf_of  sm    	O""8,,,, 	 	 	R 	
 	  """""s    8r4   c                    t          | j        | j        t          | j                  t          | j                            S r   )r4   rq  r_  tuplerc  r  rd  r   s    rr   r6  zCapacityLimiter.statistics  s;    ( $/"" !!	
 
 	
rq   N)r_  r)  r   rE   )r_  r)  r   r   r  r  r5  )rx  r,  r   r   )r   r4   )rj   rk   rl   r^  r  r-  r   r  r  r  r_  r  rq  rs  ru  rE  rw  rC  r|  rA  r  r6  rp   rq   rr   rE   rE     s        M# # # #) ) ) )
       " " " X" # # # #  $ $ $ X$ 9 9 9 X9   9 9 9 9	& 	& 	& 	&? ? ? ?   02 2 2 2# # # #
 
 
 
 
 
rq   rE   _default_thread_limiterzRunVar[CapacityLimiter]c                  >    e Zd ZddZddZdd	ZddZddZddZdS )_SignalReceiversignalstuple[Signals, ...]c                    || _         t                      | _        t                      | _        t          j                    | _        t                      | _	        d S r   )
_signalsr	   r}   r   _signal_queuer   r   r  r   _handled_signals)r   r  s     rr   r   z_SignalReceiver.__init__.  sC    %''
-2WW'.~'7'7.1eerq   r   r&   r   r   c                    | j                             |           | j                                        s| j                            d            d S d S r   )r  r  r  r   r   )r   r   s     rr   _deliverz_SignalReceiver._deliver5  sU    !!&)))|  "" 	*L##D)))))	* 	*rq   c                    t          | j                  D ]=}| j                            || j        |           | j                            |           >| S r   )r   r  r}   add_signal_handlerr  r  r?  )r   sigs     rr   r   z_SignalReceiver.__enter__:  sV    t}%% 	+ 	+CJ))#t}cBBB!%%c****rq   r   r   r   r   r   r   c                N    | j         D ]}| j                            |           d S r   )r  r}   remove_signal_handler)r   r   r   r   r  s        rr   r   z_SignalReceiver.__exit__A  s9     ( 	2 	2CJ,,S1111	2 	2rq   c                    | S r   rp   r   s    rr   	__aiter__z_SignalReceiver.__aiter__J  s    rq   c                   K   t                                            d {V  | j        s%t          j                    | _        | j         d {V  | j                                        S r   )r  r  r  r   r   r  r  r   s    rr   	__anext__z_SignalReceiver.__anext__M  ss      '')))))))))! 	">++DL,!))+++rq   N)r  r  )r   r&   r   r   )r   r  r   )r   r&   )	rj   rk   rl   r   r  r   r   r  r  rp   rq   rr   r  r  -  s        4 4 4 4* * * *
   2 2 2 2   , , , , , ,rq   r  c                  (     e Zd Zd fdZddZ xZS )	rJ  r   r   c                   t                               |          }|d }n|j        }|                                }d }||u}|st	          j        d|fd||f          dt          j                    v st	          j        |          rt	          j	        |          ndt	          j	        |          dz  }t	          j
        d          dz   d|iz  }t          t	          j        |                    d x}}t                                          t          |          ||                                |           t#          j        |          | _        d S )Nr  r	  r   r
  z&created TaskInfo from a completed Taskz
>assert %(py5)sr  )r   r   r  r  r  r  r  r  r  r  _format_assertmsgr  r  r  r   rs  get_nameweakrefrefr  )
r   r   rF  r  r   r  r  r  r  r  s
            rr   r   zAsyncIOTaskInfo.__init__\  sM   !%%d++
II",I}}It4IIIIIIIIIt4IIIIIIIIIIIItIIIIItIIIIII4IIIIIIII!IIIIIIIIIIIIIIIIIIIIIIID9dmmootDDD[&&


rq   r   r  c                   |                                  x}sdS |j        rdS t          |j        t          j                  r|j                                        rdS t                              |          x}r|j	        x}r|j
        S dS )NFT)r  rf  r   rg  r   r   r   r   r   r   r]  )r   r   rF  r   s       rr   has_pending_cancellationz(AsyncIOTaskInfo.has_pending_cancellationh  s    

$ 	5 	4t'88	 **,,	 4%))$///: 	;)66| ;#::urq   )r   r   r  )rj   rk   rl   r   r  r  r  s   @rr   rJ  rJ  [  sQ        
' 
' 
' 
' 
' 
'       rq   rJ  c                  |    e Zd ZU ded<   ddddd3dZd4dZd5dZd6dZd7dZd8dZ	d9d!Z
d:d)Zd;d-Zd<d/Zd=d2ZdS )>
TestRunnerzBMemoryObjectSendStream[tuple[Awaitable[Any], asyncio.Future[Any]]]_send_streamNF)ru   
use_uvlooprv   ru   rw   r  r  rv   rx   r   r   c                   |r)|'t           j        dk    rdd l}|j        }ndd l}|j        }t          ||          | _        g | _        d | _        d S )Nwin32r   rt   )	r;  platformuvloopr   winloopr]   _runnerr  _runner_task)r   ru   r  rv   r  r  s         rr   r   zTestRunner.__init__  sl      	6,.|w&&%4&5EEEE0215rq   c                    | j                                          |                                                     | j                   | S r   )r  r   r   set_exception_handler_exception_handlerr   s    rr   r   zTestRunner.__enter__  s:       --d.EFFFrq   r   r   r   r   r   r   c                >    | j                             |||           d S r   )r  r   r   s       rr   r   zTestRunner.__exit__  s$     	h88888rq   r   c                4    | j                                         S r   )r  r   r   s    rr   r   zTestRunner.get_loop  s    |$$&&&rq   r   r  r   dict[str, Any]c                    t          |                    d          t                    r"| j                            |d                    d S |                    |           d S )Nr   )r   r   r   r  r  default_exception_handler)r   r   r   s      rr   r  zTestRunner._exception_handler  s^     gkk+..	:: 	4##GK$899999**733333rq   c                    | j         r<| j         g c}| _         t          |          dk    r|d         |rt          d|          d S d S )Nr   r   z6Multiple exceptions occurred in asynchronous callbacks)r  r  rd   )r   rb   s     rr   _raise_async_exceptionsz"TestRunner._raise_async_exceptions  sm     	+/+;R(J(:!## m# (Lj  	 	 rq   receive_streamOMemoryObjectReceiveStream[tuple[Awaitable[T_Retval], asyncio.Future[T_Retval]]]c           	       K   ddl m} |5  | j        5  |2 3 d {V \  }}	 | d {V }|                                s|                    |           =# t
          $ r)}|                                s |j        |j           d }~wt          $ rK}|                                s|	                    |           t          |t          |f          s Y d }~d }~ww xY w6 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   )OutcomeException)_pytest.outcomesr  r  r   r   r   r   r   r  r   r   r   )r   r  r  r   r   retvalr  s          rr   _run_tests_and_fixturesz"TestRunner._run_tests_and_fixtures  s      	655555 	2 	2T. 	2 	2&4 2 2 2 2 2 2 2ldF2#'ZZZZZZF "++-- 2))&111 &   !++-- 1%sx00$   !++-- 2,,S111%cI7G+HII     	 '5n	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2ss   DC*CC*A*C*
C	$B	C	AC	C*C	C*D*C.	.D1C.	2DD	Dr    Callable[P, Awaitable[T_Retval]]r   P.argsr  P.kwargsr   c                 K   | j         st          t          t          t                   t
          j        f                  d          \  | _        }|                                 	                    | 
                    |                    | _          ||i |}|                                                                 }| j                            ||f           | d {V S r  )r  rC   r  r   r.   r   r   r  r   r   r  r   send_nowait)r   r   r   r  r  r   r   s          rr   _call_in_runner_taskzTestRunner._call_in_runner_task  s         	0Kingn4511 1-D~ !% ; ;,,^<<! !D tT$V$$+/==??+H+H+J+J%%tVn555||||||rq   fixture_func,Callable[..., AsyncGenerator[T_Retval, Any]]Iterable[T_Retval]c              #  "  K    |di |}|                                                      |                     |j        d                     }|                                  |V  	 |                                                      |                     |j        d                      |                                                      |                                           t          d          # t          $ r |                                  Y d S w xY w)Nz$Async generator fixture did not stoprp   )r   r   r  asendr  r  r   StopAsyncIteration)r   r  r  asyncgenfixturevalues        rr   run_asyncgen_fixturezTestRunner.run_asyncgen_fixture  s     
  <))&))!%!C!C%%hnd;;"
 "
 	$$&&&	GMMOO..))(.$??   MMOO..x/@/@AAAEFFF	 " 	+ 	+ 	+((******	+s   $A C, ,DD,Callable[..., Coroutine[Any, Any, T_Retval]]c                    |                                                       | j        |fi |          }|                                  |S r   )r   r   r  r  )r   r  r  r  s       rr   run_fixturezTestRunner.run_fixture  sR    
 33%D%l==f==
 
 	$$&&&rq   	test_func'Callable[..., Coroutine[Any, Any, Any]]c                    	 |                                                       | j        |fi |           n1# t          $ r$}| j                            |           Y d }~nd }~ww xY w|                                  d S r   )r   r   r  r   r  r  r  )r   r  r  r  s       rr   run_testzTestRunner.run_test	  s    	)MMOO..)))>>v>>     	) 	) 	)##C((((((((	) 	$$&&&&&s   36 
A$ AA$)ru   rw   r  r  rv   rx   r   r   )r   r  r   r   )r   r  r   r  r   r   r   )r  r  r   r   )r   r  r   r  r  r  r   r   )r  r  r  r  r   r  )r  r  r  r  r   r   )r  r  r  r  r   r   )rj   rk   rl   r  r   r   r   r   r  r  r  r  r  r  r  rp   rq   rr   r  r  |  s        TTTT
 " ?C6 6 6 6 6 6*   
9 9 9 9' ' ' '4 4 4 4	 	 	 	2 2 2 26   (G G G G.	 	 	 	
' 
' 
' 
' 
' 
'rq   r  c                  z   e Zd Zedd
            Zedd            Zedd            Zedd            Zedd            Zedd            Z	edd            Z
edd            Zeej        dddd            Zedd            Zedd             Zedd"            Zedd%            Zed&dd'dd-            Zedd0            Ze	 	 ddd5            Zedd6            Zedd8            Zedd9            ZeddB            ZeddE            Ze	 dddL            ZeddP            ZeddT            ZeddU            Zedd[            Zedd`            Z edadadadadbddk            Z!e	 dddo            Z"eddr            Z#edds            Z$eddt            Z%eddu            Z&eddw            Z'eddy            Z(edd{            Z)edd}            Z*edd            Z+edd            Z,edd            Z-edd            Z.edd            Z/edd            Z0edd            Z1edd            Z2d&S )r  r   1Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]]r   r  r  r  optionsr   r   c                   t                    dfd            }|                    dd           }|                    dd           }|=|                    dd          r't          j        dk    rd	d l}|j        }nd	d l}	|	j        }t          ||
          5 }
|
                     |                      cd d d            S # 1 swxY w Y   d S )Nr   r   c                   K   t          t          j        t                                } |                     t                               t          d d           t          | <   	    d {V 	 t          | = S # t          | = w xY wr   )r1   r   r   r   set_namer  rB  r   )r   r   r   s    rr   wrapperz#AsyncIOBackend.run.<locals>.wrapper	  s      lnn55DMM+D11222!*4!6!6L'!T4[((((((( &&L&&&&&s   %
A9 9
Bru   rv   r  Fr  r   rt   r   r   )	r   r   r;  r  r  r   r  r]   r   )r/  r   r   r  r  r  ru   rv   r  r  runners    ``        rr   r   zAsyncIOBackend.run	  s4    
t	' 	' 	' 	' 	' 	' 
	' GT**{{>488GKKe$D$D|w&&%4&5%l;;; 	)v::ggii((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   CC	C	r,  c                    t                      S r   )r	   r-  s    rr   current_tokenzAsyncIOBackend.current_token8	  s    !!!rq   r)  c                B    t                                                      S r   )r	   rb  r-  s    rr   r  zAsyncIOBackend.current_time<	  s    !!&&(((rq   type[BaseException]c                    t           S r   )r   r-  s    rr   cancelled_exception_classz(AsyncIOBackend.cancelled_exception_class@	  s    rq   r   c                4   K   t          d           d {V  d S rP  r
   r-  s    rr   r  zAsyncIOBackend.checkpointD	  s!      Ahhrq   c                   K   t                      }|d S 	 t          |         j        }n# t          $ r Y d S w xY w|r1|j        rt          d           d {V  n|j        rd S |j        }|/d S d S rP  )r   r   r   rA  rh  r
   r(  r   )r/  r   r   s      rr   r  z&AsyncIOBackend.checkpoint_if_cancelledH	  s      ~~<F	'-:LL 	 	 	FF	  	:) :Ahh$ :+9  	: 	: 	: 	: 	:s   ) 
77c                   K   t          d          5  t          d           d {V  d d d            d S # 1 swxY w Y   d S )NTr  r   )rO   r
   r-  s    rr   r  z)AsyncIOBackend.cancel_shielded_checkpoint[	  s      %%% 	 	((NNNNNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   6::delayc                4   K   t          |           d {V  d S r   r  )r/  r  s     rr   r
   zAsyncIOBackend.sleep`	  s*      Ellrq   Fr&  r'  r(  r  rO   c               $    t          ||          S )Nr&  rN   r.  s      rr   create_cancel_scopez"AsyncIOBackend.create_cancel_scoped	  s     HV<<<<rq   c                0   t                      x}t          j        S 	 t          |         j        }n# t
          $ r t          j        cY S w xY wt          j        }|r;t          ||j                  }|j        rt          j         }n|j	        rn	|j
        }|;|S r   )r   r`  ra  r   r   rA  minr'  r4  r(  r   )r/  r   r   r'  s       rr   current_effective_deadlinez)AsyncIOBackend.current_effective_deadlinej	  s     NN"D+8O	'-:LL 	 	 	8OOO	 8 	:8\%:;;H* : H9$ :+9  	: s   1 A
	A
abc.TaskGroupc                    t                      S r   )r  r-  s    rr   create_task_groupz AsyncIOBackend.create_task_group	  s    {{rq   	abc.Eventc                    t                      S r   rF   r-  s    rr   create_eventzAsyncIOBackend.create_event	  s    wwrq   r9  abc.Lockc               "    t          |          S )Nr8  rH   r;  s     rr   create_lockzAsyncIOBackend.create_lock	  s    ....rq   NrM  rO  r  rN  r  abc.Semaphorec               &    t          |||          S )NrM  rL   rQ  s       rr   create_semaphorezAsyncIOBackend.create_semaphore	  s     ),WWWWrq   r_  abc.CapacityLimiterc                     t          |          S r   rD   ra  s     rr   create_capacity_limiterz&AsyncIOBackend.create_capacity_limiter	  s    |,,,rq   &Callable[[Unpack[PosArgsT]], T_Retval]abandon_on_cancellimiterabc.CapacityLimiter | Nonec           	     v  K   |                                   d {V  	 t                                          }t                                          }n`# t          $ rS t                      }t                      }t                              |           t                              |           Y nw xY w|p|                                 4 d {V  t          |           5 }t          j
        t                               }t                      }	|sht          |	||          }
|
                                 |                    |
           |	                    |
j        t%          j                               n|                                }
|                                 }|rh||d         j        z
  t          j        k     rnI|                                }|j                            |j                   |                                 |ht7                      }|                    t:          d            |s|j        |}n|j        }|
j                             |||||f           | d {V cd d d            cd d d           d {V  S # 1 swxY w Y   	 d d d           d {V  d S # 1 d {V swxY w Y   d S )Nr  r   r   )!r  r  r   r  LookupErrorr   r   current_default_thread_limiterrO   r   r   r   r   r  r   r?  r  r  r   r   r~  r  r  r  r  r   remove_done_callbackr   r   r:   r   r  r  )r/  r   r   r  r  r  r  rm  r   r   workernowexpired_workerr   worker_scopes                  rr   run_sync_in_worker_threadz(AsyncIOBackend.run_sync_in_worker_thread	  s      nn	-37799L)--//GG 	- 	- 	- 77LeeG$((666##G,,,,,		- Bc@@BB &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$(9$9::: %$e 133*,,	# .))WlKKFLLNNNKK'''//[-@-B-B 0     *--//F **,,C& .,q/"<<*89 9 ")5)=)=)?)?&0EE*/   '++--- ' . '..5t<<<$ 7(;(C#(LL#(#6L''$fl(STTT#||||||K%$ %$ %$ %$ %$ %$ %$&	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$%$ %$ %$ %$ %$ %$ %$ %$ %$&	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$ &	$sI   2A AB.-B.J(FJ	*J(	J	J(J	J((
J25J2c                    t           j        }|;|j        r t          dt	          |          d          |j        rd S |j        }|9d S d S )NzCancelled by cancel scope r   )r;   r  rh  r   rs  r(  r   )r/  rm  s     rr   check_cancelledzAsyncIOBackend.check_cancelled	  sg    $0$E" Q$%O"U))%O%O%OPPP| 'E rq   tokenc                   dfd}t          d|pt          j        j                  }|                                rt
          t                      }|                    t          d           t          t          dd           |                    t          j         |            |          }|                                S )	Nr   r   c                   K   d} Xt          t          j        t                                }t	          d           t
          |<   j                            |           	    d {V 	 j                            |           S S # t          $ r2}t          j        	                    t          |                    d d }~ww xY w# j                            |           w w xY wr  )r1   r   r   r   rB  r   r:  r?  r@  r   
concurrentfuturesr   )__tracebackhide__r   r  r   r   rm  s      rr   task_wrapperz:AsyncIOBackend.run_async_from_thread.<locals>.task_wrapper	  s	      $ GL,..99%.tU%;%;T"  &&&/!T4[((((((( $L((.... % " L L L (77CAAtKL $L((.... %s$   !
B
 

C-CCC	 	C(r   r   r  )r   r  )r1   r;   r  native_tokenr  r@   r   r   r:   r   r   run_coroutine_threadsafer  )	r/  r   r   r
  r  r   r   r  rm  s	    ``     @rr   run_async_from_threadz$AsyncIOBackend.run_async_from_thread	  s    	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ !Q,*D*Q
 
 >> 	#""..-y999&<dCC18,llnn4 2= 2
 2
 xxzzrq   c                (   t                    dfd            }t          d|pt          j        j                  }|                                rt          t                      |                    |           	                                S )Nr   r   c                     	 t          d                                            d S # t          $ r6}                     |            t	          | t
                    s Y d } ~ d S d } ~ ww xY w)Nr   )r:   r   r  r   r   r   )r  r   r  r   s    rr   r  z4AsyncIOBackend.run_sync_from_thread.<locals>.wrapper
  s    ))444TT4[)))))    $$$!#y11      s   ', 
A,+A''A,r   r   )
r   r1   r;   r  r  r  r@   r   r   r  )r/  r   r   r
  r  r   r  s    ``   @rr   run_sync_from_threadz#AsyncIOBackend.run_sync_from_thread
  s     
t	 	 	 	 	 	 	 
	 !Q,*D*Q
 
 >> 	#""17!!'***xxzzrq   command)StrOrBytesPath | Sequence[StrOrBytesPath]r.  int | IO[Any] | Noner2  r4  r.   r  c                 K   |                                   d {V  t          |t                    rt          j        |          }t          |t
          t          f          rt          j        |f|||d| d {V }nt          j	        ||||d| d {V }|j
        rt          |j
                  nd }|j        rt          |j                  nd }|j        rt          |j                  nd }	t          ||||	          S )N)r.  r2  r4  )r  r   r$   osfspathr   r  r   create_subprocess_shellcreate_subprocess_execr.  r	  r2  r  r4  r  )
r/  r  r.  r2  r4  r  r@  stdin_streamstdout_streamstderr_streams
             rr   open_processzAsyncIOBackend.open_process"
  sn      nngx(( 	)i((GgU|,, 	#;	 
        GG $:	 
        G >E]T*7=999PT?F~W+GN;;;SW?F~W+GN;;;SWwm]KKKrq   r  rB  c                    t          t          |          d           t                                          t	          t
          |                     d S )Nz AnyIO process pool shutdown taskr  )r   rD  r   r  r   rA  )r/  r  s     rr   #setup_process_pool_exit_at_shutdownz2AsyncIOBackend.setup_process_pool_exit_at_shutdownF
  s_    *7333	
 	
 	
 	
 	**;WEE	
 	
 	
 	
 	
rq   hostr   portlocal_addressIPSockAddrType | Noner  c           	       K   t          t          t          j        t          f         t                                          t          |||           d {V           \  }}|                                 t          ||          S )N)
local_addr)	r1   r  r   rQ  rF  r	   create_connectionr  rs  )r/  r%  r&  r'  rM  ru  s         rr   connect_tcpzAsyncIOBackend.connect_tcpP
  s       #'#^34"$$66d} 7        
 
	8 	!!!Ix000rq   pathstr | bytesabc.UNIXSocketStreamc                
  K   |                                   d {V  t                      t          j        t          j                                      d           	 	                     |           t                    S # t          $ rS t          j	                    }
                    |j        d            |                    fd           | d {V  Y n"t          $ r                                   w xY w)NFTc                .                                   S r   r  r  r   r  s    rr   r   z-AsyncIOBackend.connect_unix.<locals>.<lambda>i
  s    d.@.@.L.L rq   )r  r	   r  AF_UNIXr  connectr  r  r   r   r  r   r  r  r   )r/  r-  r  r   r  s      @@rr   connect_unixzAsyncIOBackend.connect_unix]
  s,     nn!!]6>22
u%%%	44""4((( (
333 #   $+N$4$4
AL$???##$L$L$L$L$LMMM      """	4s   "B AD"Dsockr~  rR   c                     t          |          S r   r  r/  r7  s     rr   create_tcp_listenerz"AsyncIOBackend.create_tcp_listenerq
  s     &&&rq   c                     t          |          S r   )r  r:  s     rr   create_unix_listenerz#AsyncIOBackend.create_unix_listeneru
  s    !$'''rq   familyr'   remote_address
reuse_portUDPSocket | ConnectedUDPSocketc                   K   t                                          t          ||||           d {V \  }}|j        r|                                 |j        |st          ||          S t          ||          S )N)r*  remote_addrr>  r@  )r	   create_datagram_endpointre  r   r   r  r  )r/  r>  r'  r?  r@  rM  ru  s          rr   create_udp_socketz AsyncIOBackend.create_udp_sockety
  s       %5$6$6$O$O$&! %P %
 %
 
 
 
 
 
 
	8  	%OO$$ 	;Y111%i:::rq   r  remote_pathstr | bytes | None8abc.UNIXDatagramSocket | abc.ConnectedUNIXDatagramSocketc                  K   |                                   d {V  t                      |r	 	                     |           t                    S # t          $ rS t          j                    }                    |j        d            |	                    fd           | d {V  Y n"t          $ r                                   w xY wt                    S )NTc                .                                   S r   r2  r3  s    rr   r   z<AsyncIOBackend.create_unix_datagram_socket.<locals>.<lambda>
  s    $2D2DZ2P2P rq   )r  r	   r5  r$  r  r   r   r  r   r  r  r   r  )r/  r  rF  r  r   s    `  @rr   create_unix_datagram_socketz*AsyncIOBackend.create_unix_datagram_socket
  s$      nn!! 	2CC&&{333 7zBBB '   (/(8(8AOOJdCCC''(P(P(P(P(PQQQGGGGGGGGG$   $$&&&C &j111s   A AC1Cr   r>  r  protor  bytes | str | Nonestr | int | Noneint | AddressFamilyr  int | SocketKindrM  r  uSequence[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]]]c               `   K   t                                          ||||||           d {V S )NrL  )r	   getaddrinfo)r/  r%  r&  r>  r  rM  r  s          rr   rT  zAsyncIOBackend.getaddrinfo
  sV      & &''33$vDU 4 
 
 
 
 
 
 
 
 	
rq   sockaddrrQ   tuple[str, str]c                V   K   t                                          ||           d {V S r   )r	   getnameinfo)r/  rU  r  s      rr   rX  zAsyncIOBackend.getnameinfo
  s6       &''33HeDDDDDDDDDrq   objrY   c                  	
K   	 t                                           	n,# t          $ r i 	t                               	           Y nw xY wt	          |t
                    r|n|                                	                              rt          d          t                      }|	                                d	
fd}	 |
                    |           |j        
n=# t          $ r0 ddlm}  |            }|
                    |           |j        
Y nw xY w	<   	  d {V }	 	=  
           n4# t          $ r Y n(w xY w# 	 	=  
           w # t          $ r Y w w xY wxY w|st           d S )Nrx  r   r   c                     	  =              n# t           $ r Y nw xY w	                     d           d S # t          j        $ r Y d S w xY wr  rA  r   r   r  )r  rB  r'  r  s   rr   r   z(AsyncIOBackend.wait_readable.<locals>.cb
  s    "O b!!!!    
t$$$$$,       
: AAr   get_selectorr   )r(  r   r   r   r   r  r  r=   r	   r   r  r  r;  $anyio._core._asyncio_selector_threadr_  rA  r>   )r/  rY  r   r   r_  selectorsuccessr  rB  r'  r  s          @@@@rr   wait_readablezAsyncIOBackend.wait_readable
  s/     	*&**,,KK 	* 	* 	*K[)))))	* sC((:SScjjll??2 	4#N333!!$($6$6$8$8	 	 	 	 	 	 	 	 			/OOB### !.MM # 	3 	3 	3IIIIII#|~~HB'''$2MMM	3 B	"iiiiiiG"O b!!!!    "O b!!!!    
  	&%%	& 	&c   " &A
A	C' '7D! D!*E 3E 
EEE3E#E3#
E0-E3/E00E3c                  	
K   	 t                                           
n,# t          $ r i 
t                               
           Y nw xY wt	          |t
                    r|n|                                
                              rt          d          t                      }|	                                d	
fd}	 |
                    |           |j        	n=# t          $ r0 ddlm}  |            }|
                    |           |j        	Y nw xY w
<   	  d {V }	 
=  	           n4# t          $ r Y n(w xY w# 	 
=  	           w # t          $ r Y w w xY wxY w|st           d S )Nry  r   r   c                     	  =              n# t           $ r Y nw xY w	                     d           d S # t          j        $ r Y d S w xY wr  r\  )r  rB  r  r)  s   rr   r   z(AsyncIOBackend.wait_writable.<locals>.cb
  s    " $ b!!!!    
t$$$$$,   r]  r   r^  r   )r*  r   r   r   r   r  r  r=   r	   r   r  r  r;  r`  r_  rA  r>   )r/  rY  r   r   r_  ra  rb  r  rB  r  r)  s          @@@@rr   wait_writablezAsyncIOBackend.wait_writable
  s4     	,(,,..LL 	, 	, 	,Ll+++++	, sC((:SScjjllB 	2#L111!!$($6$6$8$8	 	 	 	 	 	 	 	 			/OOB### !.MM # 	3 	3 	3IIIIII#|~~HB'''$2MMM	3 R	"iiiiiiG" $ b!!!!    " $ b!!!!    
  	&%%	& 	&rd  c                   t          |t                    r|n|                                }t                      }	 t                                          }	 |                    |          }	 |                    d           n# t          j	        $ r Y nw xY w	 |
                    |           nS# t          $ r& ddlm}  |            
                    |           Y n$w xY w# t          $ r Y nw xY w# t          $ r Y nw xY w	 t                                           }	 |                    |          }	 |                    d           n# t          j	        $ r Y nw xY w	 |                    |           d S # t          $ r' ddlm}  |                                |           Y d S w xY w# t          $ r Y d S w xY w# t          $ r Y d S w xY w)NFr   r^  )r   r  r  r	   r*  r   r~  r   r   r  r  r;  r`  r_  rA  r   r(  r  )r/  rY  r  r   r)  rB  r_  r'  s           rr   notify_closingzAsyncIOBackend.notify_closing0  se   sC((:SScjjll!!	5(,,..L5"&&r**NN5))))0   D5&&r***** 5 5 5QQQQQQ LNN00444445      	 	 	D	(	5&**,,K5!oob))NN5))))0   D5&&r****** 5 5 5QQQQQQ LNN004444445      	 	 	DD	s   C0 C  +B BBB- --CC 
C-,C-0
C=<C=F9 F( 1E EEE4 4-F%$F%(
F65F69
GGc                $   K   t          |          S r   r9  r:  s     rr   wrap_listener_socketz#AsyncIOBackend.wrap_listener_socketa  s       &&&rq   rs  c                   K   t                                          t          |           d {V \  }}t          ||          S N)r7  )r	   r+  rF  rs  r/  r7  rM  ru  s       rr   wrap_stream_socketz!AsyncIOBackend.wrap_stream_sockete  sa      $4$6$6$H$H %I %
 %
 
 
 
 
 
 
	8 Ix000rq   r  c                $   K   t          |          S r   )r  r:  s     rr   wrap_unix_stream_socketz&AsyncIOBackend.wrap_unix_stream_socketl  s      %%%rq   r  c                   K   t                                          t          |           d {V \  }}t          ||          S rm  )r	   rD  re  r  rn  s       rr   wrap_udp_socketzAsyncIOBackend.wrap_udp_socketp  sa      $4$6$6$O$O4 %P %
 %
 
 
 
 
 
 
	8 H---rq   r  c                   K   t                                          t          |           d {V \  }}t          ||          S rm  )r	   rD  re  r  rn  s       rr   wrap_connected_udp_socketz(AsyncIOBackend.wrap_connected_udp_socketw  sa      $4$6$6$O$O4 %P %
 %
 
 
 
 
 
 
	8 ")X666rq   r  c                $   K   t          |          S r   )r  r:  s     rr   wrap_unix_datagram_socketz(AsyncIOBackend.wrap_unix_datagram_socket~  s      !$'''rq   r$  c                $   K   t          |          S r   )r$  r:  s     rr   #wrap_connected_unix_datagram_socketz2AsyncIOBackend.wrap_connected_unix_datagram_socket  s       +4000rq   rE   c                    	 t                                           S # t          $ r. t          d          }t                               |           |cY S w xY w)N(   )r  r   r   rE   r   )r/  r  s     rr   r  z-AsyncIOBackend.current_default_thread_limiter  s^    	*..000 	 	 	%b))G#''000NNN	s    5AAr  r&   .AbstractContextManager[AsyncIterator[Signals]]c                     t          |          S r   )r  )r/  r  s     rr   open_signal_receiverz#AsyncIOBackend.open_signal_receiver  s     w'''rq   r7   c                8    t          t                                S r   )rJ  r   r-  s    rr   get_current_taskzAsyncIOBackend.get_current_task  s    |~~...rq   Sequence[TaskInfo]c                2    d t                      D             S )Nc                T    g | ]%}|                                 t          |          &S rp   )r   rJ  )r   r   s     rr   r   z4AsyncIOBackend.get_running_tasks.<locals>.<listcomp>  s-    QQQ$TYY[[Q%%QQQrq   )r   r-  s    rr   get_running_tasksz AsyncIOBackend.get_running_tasks  s    QQ)++QQQQrq   c                   K   |                                   d {V  t                      }	 t                      D ];}||u r|j        }||                                rt          d           d {V   n<d S M)NTg?)r  r   r   rg  r   r
   )r/  	this_taskr   rl  s       rr   wait_all_tasks_blockedz%AsyncIOBackend.wait_all_tasks_blocked  s      nn NN	
	! 	 	9$$)>V[[]]>**$$$$$$$E " 
	rq   r  c                    t          di |S )Nrp   )r  )r/  r  s     rr   create_test_runnerz!AsyncIOBackend.create_test_runner  s    $$G$$$rq   )
r   r  r   r  r  r  r  r  r   r   )r   r,  r  )r   r  r   )r  r)  r   r   r~  )r   r  )r   r  )r9  r  r   r  )rO  r  rN  r  r9  r  r   r  )r_  r)  r   r  )FN)
r   r  r   r  r  r  r  r  r   r   )r   r  r   r  r
  r,  r   r   )r   r  r   r  r
  r,  r   r   )r  r  r.  r  r2  r  r4  r  r  r.   r   r  r  rB  r   r   r   )r%  r   r&  r  r'  r(  r   r  )r-  r.  r   r/  )r7  r~  r   rR   )
r>  r'   r'  r(  r?  r(  r@  r  r   rA  )r  r~  rF  rG  r   rH  )r%  rN  r&  rO  r>  rP  r  rQ  rM  r  r  r  r   rR  )r   )rU  rQ   r  r  r   rV  )rY  rY   r   r   )r7  r~  r   rs  )r7  r~  r   r  )r7  r~  r   r  )r7  r~  r   r  )r7  r~  r   r  )r7  r~  r   r$  )r   rE   )r  r&   r   r|  )r   r7   )r   r  )r  r  r   r  )3rj   rk   rl   classmethodr   r  r  r  r  r  r  r
   r`  ra  r  r  r  r  r  r  r  r  r	  r  r  r"  r$  r,  r6  r;  r=  rE  rK  rT  rX  rc  rg  ri  rk  ro  rq  rs  ru  rw  ry  r  r~  r  r  r  r  rp   rq   rr   r  r  	  s$       ) ) ) [)B " " " [" ) ) ) [)    [    [ : : : [:$    [    [ "&(5= = = = = [=
    [,    [    [ / / / [/ 
 !%"X X X X X [X - - - [- 
 #(.2:$ :$ :$ :$ [:$x 	( 	( 	( [	(       [ D    [4 !L !L !L [!LF 
 
 
 [
 JN
1 
1 
1 
1 [
1 4 4 4 [4& ' ' ' [' ( ( ( [( ; ; ; [;. 2 2 2 [2.  '(!"
 
 
 
 
 [
, 45E E E E [E
 2& 2& 2& [2&h 2& 2& 2& [2&h .5 .5 .5 [.5` ' ' ' [' 1 1 1 [1 & & & [& . . . [. 7 7 7 [7 ( ( ( [( 1 1 1 [1
    [ ( ( ( [(
 / / / [/ R R R [R    [ % % % [% % %rq   r  )r   r   r   r   )r   r   )r   r   r   r   )r   r   r   r  )r  r   r   r  )r  r7  r  r,  r   r   r  )
__future__r   builtinsr  _pytest.assertion.rewrite	assertionrewriter  r  r   concurrent.futuresr  r   r`  r  r  r;  r   r  r   r   r   r   r   r	   r
   asyncio.base_eventsr   collectionsr   r   collections.abcr   r   r   r   r   r   r   r   r   
contextlibr   r   r   r   dataclassesr   r   	functoolsr   r   inspectr   r    r!   r"   ior#   r$   r  r%   r   r&   r'   r(   r)   typesr*   r+   typingr,   r-   r.   r/   r0   r1   r2   r  r4   r5   r6   r7   r8   _core._eventloopr9   r:   r;   _core._exceptionsr<   r=   r>   r?   r@   rA   _core._socketsrB   _core._streamsrC   _core._synchronizationrE   BaseCapacityLimiterrG   	BaseEventrI   BaseLockrJ   rK   rM   BaseSemaphore_core._tasksrO   BaseCancelScoperP   rQ   rR   rS   rT   abc._eventlooprU   lowlevelrV   streams.memoryrW   rX   	_typeshedrY   r,  r<  r]   r^   r_   enumr`   ra   rb   rc   exceptiongrouprd   typing_extensionsEnumrf   r   r   r   r   r   r   r   r  r   r  r  r  r$  rB  r   
TaskStatusr  eager_task_factoryr  r  r  r  r  _Retval_Queue_Typer  r  r  ByteReceiveStreamr  ByteSendStreamr	  r  rA  rD  ProtocolrF  re  rs  r  r  r  r  r  r  r  r$  r(  r*  r  r  rJ  r  r  backend_classrp   rq   rr   <module>r     s   " " " " " " "                         				  



                       7 6 6 6 6 6 * * * * * * * *	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 & % % % % % 7 7 7 7 7 7 7 7 - - - - - - - - ( ( ( ( ( ( ( ( $ $ $ $ $ $ $ $                                    , , , , , , , ,       ) ) ) ) ) ) ) )                & % % % % %                      
                3 2 2 2 2 2 8 8 8 8 8 8      8 7 7 7 7 7 5 5 5 5 5 5        @ ? ? ? ? ? 9 9 9 9 9 9              , + + + + +       N N N N N N N N  ,,,,,,,w+++++++++KKKMMM============11111166666666       
~& ~& ~& ~& ~& ~& ~& ~&@   ,   , 7:7:T222<
##IcNN*0&*>*>
 > > > >   >: : : : @Q?P?R?R	 R R R R
Y 
Y 
Y 
Y$   &h7 h7 h7 h7 h7/ h7 h7 h7`	
) 
) 
) 
) 
) 
) 
) 
) <M;L;N;N N N N N7 7 7 7 7 7 7 7$ w070J0SSSSSS#J J J J J J J Jb 8d?MD,@@A K K K K K6 K K K\ 9?9 9      288M1N1N  N N N N e* * * * *#/ * * * e* * * * *#, * * *< e6 6 6 6 6ck 6 6 6r< < < <2# # # #4# # # # #W% # # #L    w/   >R$ R$ R$ R$ R$3# R$ R$ R$j+3 +3 +3 +3 +3 +3 +3 +3\q; q; q; q; q;(< q; q; q;h9! 9! 9! 9! 9!* 9! 9! 9!x"! "! "! "! "!+ "! "! "!J-. -. -. -. -. -. -. -.`/- /- /- /- /-/ /- /- /-d! ! ! ! !#*@ ! ! !H! ! ! ! !/33R ! ! !H 9?}8M8M M M M M9?9O9O O O O O: : : : :I : : :.GL GL GL GL GL8 GL GL GLTN7 N7 N7 N7 N7 N7 N7 N7bu
 u
 u
 u
 u
) u
 u
 u
p 4:6:S3T3T  T T T T&, &, &, &, &, &, &, &,\    h   BV' V' V' V' V' V' V' V'r\
% \
% \
% \
% \
%\ \
% \
% \
%~ rq   