
    zbj                   	   % S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKJrJrJrJrJrJrJr  S SKJr  S SKJrJr  S SKJrJrJrJrJrJrJrJ r   S SKJ!r!  S SK"J#r#J$r$  S S	K%J&r&J'r'  S S
K(J)r)J*r*  S SK+J,r,J-r-  S SK.J/r/J0r0J1r1  S SK2J3r3  S SKJ4r4  S SK5J6r6  S SK7J8r8  S SKJ9r9J:r:  S SK
J;r;  S SK<J=r=J>r>  S SK?J@r@JArAJBrBJCrCJDrDJErEJFrF  S SKJGrG  SSKHJIrIJJrJJKrKJLrLJMrM  SSKNJOrOJPrPJQrQ  SSKRJSrSJTrTJUrUJVrVJWrWJXrX  SSKYJZrZ  SSK[J\r\  SSK]J^r_  SSK]J`ra  SSK]Jbrc  SSK]JdrdJere  SS K]Jfrg  SS!KhJirj  SS"KhJkrk  SS#KMJlrlJmrmJnrnJoroJprp  SS$KqJrrrJsrsJtrt  SS%KuJvrvJwrw  \A(       a  S S&KxJyry  SS'KzJ{r{  SS(K|J}r}J~r~  O\ry\	GR                   S):  a  S S*KJr  S S+K?JrJrJr  ORS SK%r%S SKrS SK7r7S S,KJrJrJrJr  S S-KJr  S S+KJrJrJr   " S. S/\GR                  5      r " S0 S15      rSS2 jrSS3 jr\E" S45      r\E" S5S6S79r\E" S8S6S99r\" S:5      r\D" S;5      r\v" S<5      rS=\S<'   SS> jrSS? jrSS@ jr " SA SB\j5      ri " SC SD5      r\G" 5       rSE\SF'    " SG SH\MGR:                  \   5      r\	GR                   SI:  a  \GR>                  GR@                  rSJ\SK'   OSr " SL SM\MGRD                  5      r\\S-  \S-  4   r " SN SO\;5      r\v" SP5      rSQ\SP'   \v" SR5      rSS\SR'   \)" STSU9 " SV SW\MGRR                  5      5       r\)" STSU9 " SX SY\MGRV                  5      5       r\)" STSU9 " SZ S[\MGRZ                  5      5       r      SS\ jrSS] jr " S^ S_\GR`                  5      r " S` Sa\GRd                  5      r " Sb Sc\MGRf                  5      r " Sd Se5      r " Sf Sg\\MGRj                  5      r " Sh Si\MR                  5      r " Sj Sk\MR                  5      r " Sl Sm\MGRp                  5      r " Sn So\MGRr                  5      r " Sp Sq\\MGRt                  5      r " Sr Ss\\MGRv                  5      r\v" St5      rSu\Sv'   \v" Sw5      rSu\Sx'    " Sy Sz\a5      r` " S{ S|\c5      rb " S} S~\g5      rf " S S\_5      r^\v" S5      rS\S'    " S S5      r " S S\L5      r " S S\MGR                  5      r " S S\GR                  GR                  5      r " S S\l5      r\rg)    )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)IOBase)PathLike)Queue)Signals)AddressFamily
SocketKind)Thread)CodeTypeTracebackType)IOTYPE_CHECKINGAnyLiteral	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)
TaskHandle)AsyncBackendIPSockAddrTypeSocketListenerUDPPacketTypeUNIXDatagramPacketType)call_for_coroutineget_callable_nameget_coro_name)RunVar	_run_vars)FileDescriptorLike)StrOrBytesPath)MemoryObjectReceiveStreamMemoryObjectSendStream      )Runner)SelfTypeVarTupleUnpack)
coroutinesevents
exceptionstasks)BaseExceptionGroupc                       \ rS rSrSrSrSrSrg)_State}   createdinitializedclosed N)__name__
__module____qualname____firstlineno__CREATEDINITIALIZEDCLOSED__static_attributes__rq       ڔ/tmp/claude-0/-home-danvics-docker-quiz/c1e0577a-e42c-4a3d-b1ea-3edd61103a4e/scratchpad/stt/lib/python3.13/site-packages/anyio/_backends/_asyncio.pyrl   rl   }   s    #rz   rl   c                      \ rS rSrSSS.   SS jjrSS jr        SS jrSS jrSS jrSS	.SS
 jjr	SS jr
SS jrSrg)rb      Ndebugloop_factoryc               ~    [         R                  U l        Xl        X l        S U l        S U l        SU l        SU l        g )Nr   F)	rl   rv   _state_debug_loop_factory_loop_context_interrupt_count_set_event_loop)selfr   r   s      r{   __init__Runner.__init__   s8     !..DKK!-37DJ DM$%D!#(D rz   c                &    U R                  5         U $ N)
_lazy_initr   s    r{   	__enter__Runner.__enter__   s    OOKrz   c                $    U R                  5         g r   )closer   exc_typeexc_valexc_tbs       r{   __exit__Runner.__exit__   s     JJLrz   c                   U R                   nU R                  [        R                  Ld  Uc  g [	        U5        UR                  UR                  5       5        [        US5      (       a   UR                  UR                  5       5        OUR                  [        U5      5        U R                  (       a  [        R                  " S5        UR                  5         SU l         [        R                  U l        g! U R                  (       a  [        R                  " S5        UR                  5         SU l         [        R                  U l        f = f)zShutdown and close event loop.Nshutdown_default_executor)r   r   rl   rw   _cancel_all_tasksrun_until_completeshutdown_asyncgenshasattrr   _shutdown_default_executorr   rg   set_event_loopr   rx   r   loops     r{   r   Runner.close   s    ::D{{&"4"44,!$'''(?(?(AB4!<==++D,J,J,LM++,Ft,LM''))$/

!
$mm	 ''))$/

!
$mms   A5C8 8AEc                :    U R                  5         U R                  $ )zReturn embedded event loop.)r   r   r   s    r{   get_loopRunner.get_loop   s    OO::rz   contextc                  [         R                  " U5      (       d  [        SU< 35      e[        R                  " 5       b  [        S5      eU R                  5         Uc  U R                  nUR                  U R                  R                  U5      n[        R                  " 5       [        R                  " 5       L ap  [        R                  " [        R                   5      [        R"                  L a;  [%        U R&                  US9n [        R                  " [        R                   U5        OSnSU l         U R                  R+                  U5      Ub\  [        R                  " [        R                   5      UL a4  [        R                  " [        R                   [        R"                  5        $ $ $ ! [         a    Sn Nf = f! [,        R.                   a3    U R(                  S:  a!  [1        USS5      nUb  U" 5       S:X  a  [2        ee f = f! Ub\  [        R                  " [        R                   5      UL a4  [        R                  " [        R                   [        R"                  5        f f f = f)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)rf   iscoroutine
ValueErrorrg   _get_running_loopRuntimeErrorr   r   runr   r   	threadingcurrent_threadmain_threadsignal	getsignalSIGINTdefault_int_handlerr   
_on_sigintr   r   rh   r   getattrKeyboardInterrupt)r   coror   tasksigint_handlerr   s         r{   r   
Runner.run   s   ))$// #A$!JKK'')5"M  OO--;;tzz55t<D ((*i.C.C.EE$$V]]3v7Q7QQ!(D!I*MM&--@ "&$%D!Mzz44T: #.((7>IMM&--1K1KL J /' " * &*N	* ,, ((1,&tZ>H+
a// #.((7>IMM&--1K1KL J /s,   %F0 6G 0F?>F?AH		H A!I-c                <   U R                   [        R                  L a  [        S5      eU R                   [        R                  L a  g U R
                  cS  [        R                  " 5       U l        U R                  (       d'  [        R                  " U R                  5        SU l	        OU R                  5       U l        U R                  b%  U R                  R                  U R                  5        [        R                  " 5       U l        [        R                  U l         g )NzRunner is closedT)r   rl   rx   r   rw   r   rg   new_event_loopr   r   r   r   	set_debugcontextvarsr   r   r   s    r{   r   Runner._lazy_init   s    {{fmm+"#566{{f000!!)#224
++ ))$**5+/D(!//1
{{&

$$T[[1'446DM ,,DKrz   c                    U =R                   S-  sl         U R                   S:X  aB  UR                  5       (       d-  UR                  5         U R                  R	                  S 5        g [        5       e)N   c                     g r   rq   rq   rz   r{   <lambda>#Runner._on_sigint.<locals>.<lambda>   s    rz   )r   donecancelr   call_soon_threadsafer   )r   signumframer   s       r{   r   Runner._on_sigint   sW    !!Q&!$$))..2B2B  "

//=#%%rz   )r   r   r   r   r   r   r   )r   bool | Noner   &Callable[[], AbstractEventLoop] | Nonereturnrc   r   type[BaseException] | Noner   BaseException | Noner   TracebackType | Noner   Noner   r   r   r   )r   zCoroutine[T_Retval]r   T_Retval)r   asyncio.Taskr   r   )rr   rs   rt   ru   r   r   r   r   r   r   r   r   ry   rq   rz   r{   rb   rb      su    
 "&CG		) 	) A		)		0	 *	 )		
 		,&	
 =A .	M`	-&	&rz   rb   c                h   [         R                  " U 5      nU(       d  g U H  nUR                  5         M     U R                  [         R                  " USS065        U HP  nUR                  5       (       a  M  UR                  5       c  M-  U R                  SUR                  5       US.5        MR     g )Nreturn_exceptionsTz1unhandled exception during asyncio.run() shutdown)message	exceptionr   )ri   r   r   r   gather	cancelledr   call_exception_handler)r   	to_cancelr   s      r{   r   r     s    OOD)	DKKM  	i P4 PQD~~~~+++#V%)^^%5 $	 rz   c                  ^ #    SU 4S jjnST l         T R                  c  gT R                  5       n[        R                  " X4S9nUR                  5          UI Sh  vN   UR                  5         g N! UR                  5         f = f7f)z.Schedule the shutdown of the default executor.c                   >  TR                   R                  SS9  TR                  U R                  S 5        g ! [         a&  nTR                  U R
                  U5         S nAg S nAff = f)NT)wait)_default_executorshutdownr   
set_result	Exceptionset_exception)futureexr   s     r{   _do_shutdown0_shutdown_default_executor.<locals>._do_shutdown  sa    D&&//T/:))&*;*;TB D))&*>*>CCDs   59 
A)A$$A)TN)targetargs)r   zasyncio.futures.Futurer   r   )_executor_shutdown_calledr   create_futurer   r(   startjoin)r   r   r   threads   `   r{   r   r     sr     	D *.&!!)##%!!IF	LLKKM KKMs0   AB	A4 A2A4 !B	2A4 4BB	r   T_coT)	covariantT_contra)contravariantPosArgsTP
_root_taskz RunVar[asyncio.Task[Any] | None]c                    [         R                  S 5      n U b  U R                  5       (       d  U $ [        5        H  nUR                  (       d  M  UR                  5       (       a  M-  UR                   HN  u  p#U[
        L d  [        USS 5      S:X  d  M!  [         R                  U5        SS jnUR                  XCS9  Us  s  $    M     [        [        R                  [        5       5      n[        R                  U5      nU(       ai  UR                  nU(       a/  UR                  b"  UR                  nU(       a  UR                  b  M"  Ub$  [        [        R                  UR                   5      $ U$ )Nrs   zuvloop.loopc                    [         R                  " U R                  5       5      =n(       a  UR                  [        S 5        g g r   )rZ   getr   popr   )tvarss     r{   _unsetfind_root_task.<locals>._unsetF  s/    #,==#>>4> HHZ6 ?rz   r   )r  zasyncio.Task[Any]r   r   )r   r  r   r   
_callbacksr   r   setadd_done_callbackr1   asyncioTaskr   _task_statescancel_scope_parent_scope
_host_task)	root_taskr   cbr   r  stater  s          r{   find_root_taskr  7  s   t$IY^^%5%5 ???499;;#00r<6-GNN4(7 **6*CK!  / * ln-DT"E))|99E'55L |99E #l&=&=>>Krz   c                \    U R                  5       nUc   e[        U5      [        [        4;   $ )zBReturn ``True`` if the task has been started and has not finished.)get_coror!   r   r    )r   r   s     r{   _task_startedr  _  s0     ==?DT"|^&DDDrz   c                    U R                   (       aF  [        U R                   S   [        5      (       a$  U R                   S   R                  S5      (       a  g[        U R                  [
        5      (       a  U R                  n M  g)NTr   Cancelled via cancel scope F)r   
isinstancestr
startswith__context__r   excs    r{   is_anyio_cancellationr  m  s`     HH388A;,,&&'DEEcoo~66//Crz   c                     \ rS rSrSr\R                  SS.SS jjr\R                  S4SS jjrSS jr	        SS jr
\SS	 j5       r\SS
 j5       rSS jrSS jrSS jrSS jrSS S jjr\S!S j5       r\R(                  S"S j5       r\SS j5       r\SS j5       r\SS j5       r\R(                  S#S j5       rSrg)$rO   i  )_active_cancel_called_cancel_handle_cancel_reason_cancelled_caught_child_scopes	_deadliner  r  _pending_uncancellations_shield_tasks_timeout_handleFdeadlineshieldc               ,    [         R                  U 5      $ r   object__new__clsr-  r.  s      r{   r2  CancelScope.__new__      ~~c""rz   c                   Xl         X l        S U l        [        5       U l        SU l        S U l        SU l        SU l        S U l	        S U l
        [        5       U l        S U l        [        R                  S:  a  SU l        g S U l        g )NFr_   r   )r'  r)  r  r  r&  r"  r$  r%  r!  r+  r#  r*  r  sysversion_infor(  )r   r-  r.  s      r{   r   CancelScope.__init__  s{    !15/2u#*.!&;?59),/3w&89D),0D)rz   c                r   U R                   (       a  [        S5      e[        [        R                  [        5       5      =U l        nU R                  R                  U5         [        U   nUR                  U l        Xl
        U R                  bJ  U R                  R                  R                  U 5        U R                  R                  R                  U5        U R!                  5         SU l         U R"                  (       a  U R%                  U 5        U $ ! [         a    [        S U 5      nU[        U'    N\f = f)Nz;Each CancelScope may only be used for a single 'with' blockT)r!  r   r1   r
  r  r   r  r*  addr  r  r  r&  discardKeyError	TaskState_timeoutr"  _deliver_cancellation)r   	host_task
task_states      r{   r   CancelScope.__enter__  s    <<M  '+7<<&HH)	"	=%i0J
 ",!8!8D&*#!!- ""0044T:""))11)< &&t,'  	1"4.J&0L#	1s   "	D D65D6c                   AU R                   (       d  [        S5      e[        5       U R                  La  [        S5      eU R                  c   e[        R                  U R                  5      nUb  UR                  U La  [        S5      e SU l         U R                  (       a!  U R                  R                  5         S U l        U R                  R                  U R                  5        U R                  bT  U R                  R                  R                  U 5        U R                  R                  R                  U R                  5        U R                  Ul        U R                  5         U R                  (       a  U R                   (       d  U R"                  (       aB  U R                  R%                  5         U =R"                  S-  sl        U R"                  (       a  MB  ['        U[(        5      (       aD  UR+                  S 5      u  pVUc
   S U l        AgSU l        Uc
   S U l        AgUR.                  n Ue['        U[0        5      (       a!  [3        U5      (       a  SU l         S U l        Ag S U l        AgU R"                  (       aX  U R                  c   eU R                  R"                  c   eU R                  =R"                  U R"                  -  sl        SU l         S U l        Ag! Xvl        Af = f! S U l        Af = f)	NzThis cancel scope is not activezIAttempted to exit cancel scope in a different task than it was entered inzTAttempted to exit a cancel scope that isn't the current tasks's current cancel scopeFr   c                F    [        U [        5      =(       a    [        U 5      $ r   )r  r   r  r  s    r{   r   &CancelScope.__exit__.<locals>.<lambda>  s    &sN; ; 5c :;rz   Tr   )r!  r   r   r  r  r  r  r+  r   r*  remover  r&  r<  _restart_cancellation_in_parentr"  %_parent_cancellation_is_visible_to_usr(  r   r  rj   splitr%  r  r   r  )r   r   r   r   host_task_statecancelleds_caught	remainingr   s           r{   r   CancelScope.__exit__  s    ||@AA>0 
 ***&**4??;"o&B&B$&N' 
H	 DL##$$++-'+$KKt/!!-""0077=""))--doo>+/+=+=O( 002
 ""4+U+U33OO,,.11Q61 333
 g'9::3:==40% )0$F #DOE .2D* (#< #DO; (33G$ ( "'>::?T@ @ 26.# #DO  % #DO 00--999--FFRRR&&??55? 56D1"DO- 18-#( #DOs>   EK9 !,K9 
K9 +K9 8K- :,K9 :A)K9 -	K66K9 9
Lc                x    U nUb5  UR                   (       a  gUR                  (       a  gUR                  nUb  M5  gNTF)r"  r.  r  )r   r  s     r{   _effectively_cancelled"CancelScope._effectively_cancelled'  s=    +/&**""'55L & rz   c                    U R                   S L=(       a.    U R                  (       + =(       a    U R                   R                  $ r   )r  r.  rR  r   s    r{   rJ  1CancelScope._parent_cancellation_is_visible_to_us5  s9     d* :KK:""99	
rz   c                   U R                   [        R                  :w  af  [        5       nUR	                  5       U R                   :  a  U R                  S5        g UR                  U R                   U R                  5      U l        g g )Nzdeadline exceeded)	r'  mathinfr	   timer   call_atr@  r+  r   s     r{   r@  CancelScope._timeout=  sY    >>TXX%#%Dyy{dnn,/0'+||DNNDMM'R$ &rz   c                *   Sn[        5       nU R                   H  nUR                  5       (       a  M  SnUR                  (       a  M/  XCLd  M5  X@R                  L d  [        U5      (       d  MU  UR                  n[        U[        R                  5      (       a  UR                  5       (       a  M  UR                  UR                  5        XAR                  L d  M  UR                  c  M  U=R                  S-  sl        M     U R                   HC  nUR                  (       a  M  UR                  (       a  M)  UR!                  U5      =(       d    UnME     XL a9  U(       a+  [#        5       R%                  U R                   U5      U l        U$ SU l        U$ )a*  
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*  r   _must_cancelr  r  _fut_waiterr  r
  r   r   r$  r(  r&  r)  cancel_calledrA  r	   	call_soonr#  )r   originshould_retrycurrentr   waiterscopes          r{   rA  !CancelScope._deliver_cancellationE  s8    .KKDyy{{L   "(?=QUCVCV))!&'..99KK 5 56 1 11";;G771<7%  , ''E===)<)<)<$::6BRl (
 >&6&8&B&B..'#  '+#rz   c                    U R                   nUbT  UR                  (       a  UR                  c  UR                  U5        gUR                  (       a  gUR                   nUb  MS  gg)zR
Restart the cancellation effort in the closest directly cancelled parent scope.

N)r  r"  r#  rA  r)  )r   re  s     r{   rI  +CancelScope._restart_cancellation_in_parentw  sZ    
 ""##''///6 }}''E rz   c                    U R                   UL a  gU R                   b%  U R                   R                  R                  U 5        Xl         UR                  R                  U 5        U R	                  5         g)z
Move this active scope from its current parent to ``new_parent``.

Used by :meth:`TaskGroup.start` to move a task that has just called
``task_status.started()`` into the target task group's cancel scope.
N)r  r&  r=  r<  rI  )r   
new_parents     r{   	_reparentCancelScope._reparent  sc     +),,44T:'  $$T* 	,,.rz   Nc                   U R                   (       d  U R                  (       a!  U R                  R                  5         S U l        SU l         S[        U 5      S 3U l        [        5       =n(       a  U =R                  SU 3-  sl        U(       a  U =R                  SU 3-  sl        U R                  b  U R                  U 5        g g g )NTr  xz by z
; reason: )r"  r+  r   idr$  r   r  rA  )r   reasonr   s      r{   r   CancelScope.cancel  s    ""##$$++-'+$"&D$?4|"LD#~%t%##dV}4###F8'<<#***40 + #rz   c                    U R                   $ r   )r'  r   s    r{   r-  CancelScope.deadline  s    ~~rz   c                    [        U5      U l        U R                  b!  U R                  R                  5         S U l        U R                  (       a#  U R
                  (       d  U R                  5         g g g r   )floatr'  r+  r   r!  r"  r@  r   values     r{   r-  rs    sR    u+  '')#'D << 3 3MMO !4<rz   c                    U R                   $ r   )r"  r   s    r{   r_  CancelScope.cancel_called  s    """rz   c                    U R                   $ r   )r%  r   s    r{   cancelled_caughtCancelScope.cancelled_caught  s    %%%rz   c                    U R                   $ r   )r)  r   s    r{   r.  CancelScope.shield      ||rz   c                b    U R                   U:w  a  Xl         U(       d  U R                  5         g g g r   )r)  rI  rv  s     r{   r.  r~    s,    <<5  L446  !rz   )r-  ru  r.  boolr   rc   )r-  ru  r.  r  r   r   r   r   r   r   r   r   r  r   r  r   )ra  rO   r   r  )rj  rO   r   r   r   )rp  z
str | Noner   r   r   ru  rw  ru  r   r   )rw  r  r   r   )rr   rs   rt   ru   	__slots__rW  rX  r2  r   r   r   propertyrR  rJ  r@  rA  rI  rk  r   r-  setterr_  r{  r.  ry   rq   rz   r{   rO   rO     s"   I  +/((5 # *.% 1$>`,` &` %	`
 
`D   
 
S0d(&/(1"   __  # # & &   ]]7 7rz   rO   c                  &    \ rS rSrSrSrSS jrSrg)r?  i  z
Encapsulates auxiliary task information that cannot be added to the Task instance
itself because there are no guarantees about its implementation.
)__weakref__r  	parent_idc                    Xl         X l        g r   r  r  )r   r  r  s      r{   r   TaskState.__init__  s    "(rz   )r  r  N)r  
int | Noner  CancelScope | None)rr   rs   rt   ru   __doc__r  r   ry   rq   rz   r{   r?  r?    s    
 ;I)rz   r?  z*WeakKeyDictionary[asyncio.Task, TaskState]r  c                  <    \ rS rSr        SS jrSSS jjrSrg)	_AsyncioTaskStatusi  c                4    Xl         X l        X0l        X@l        g r   )_future
_parent_id_target_scope_spawn_scope)r   r   r  target_scopespawn_scopes        r{   r   _AsyncioTaskStatus.__init__  s     # *'rz   Nc                   [        [        R                  [        5       5      nU R                  [
        U   l        U R                  R                  5       (       a+  U R                  R                  5       (       d  [        S5      eg U R                  R                  U5        U R                  R                  U R                  5        g )Nz.called 'started' twice on the same task status)r1   r
  r  r   r  r  r  r  r   r   r   r   r  rk  r  )r   rw  r   s      r{   started_AsyncioTaskStatus.started  s    GLL,.1'+T$<<<<))++"#STT &##D$6$67rz   )r  r  r  r  )r   asyncio.Futurer  intr  rO   r  rO   r   )rw  zT_contra | Noner   r   )rr   rs   rt   ru   r   r  ry   rq   rz   r{   r  r    s7    (( ( "	(
 !(8 8rz   r  r`      zCodeType | None_eager_task_factory_codec                      \ rS rSrSS jrSS jr        SS jr S       SS jjrSSS.       SS jjrSS	S
.         SS jjr	Sr
g)	TaskGroupi  c                j    [        5       U l        SU l        / U l        [	        5       U l        S U l        g )NF)rO   r  _entered_exceptionsr  r*  _on_completed_futr   s    r{   r   TaskGroup.__init__  s,    )402),>Brz   c                   #    U R                   (       a  [        S5      eSU l         U R                  R                  5         U $ 7f)Nz*TaskGroup cannot be entered more than onceT)r  r   r  r   r   s    r{   
__aenter__TaskGroup.__aenter__  s6     ==KLL##%s   A Ac                ,  #     UbJ  U R                   R                  5         [        U[        5      (       d  U R                  R                  U5        [        5       n U R                  (       ai  [        5        nU R                  (       aD  UR                  5       U l
         U R                  I S h  vN   S U l
        U R                  (       a  MD  S S S 5        O[        R                  5       I S h  vN   U R                  (       a  [        SU R                  5      S eU(       a  Ue U R                   R#                  XU5      AAU ?$  N! [         aU  nSUl        U R                   R                  5         Ub%  [        U[        5      (       a  [        U5      (       d  Un S nANS nAff = f! , (       d  f       N= f N! [          aC  nU R                   R#                  [%        U5      XfR&                  5      (       a	   S nAAAU ?ge S nAff = f! AAU ?f = f7f)NTzunhandled errors in a TaskGroup)r  r   r  r   r  appendr	   r*  rO   r   r  r.  r  AsyncIOBackendcancel_shielded_checkpointrj   BaseExceptionr   type__traceback__)r   r   r   r   r   
wait_scoper  s          r{   	__aexit__TaskGroup.__aexit__   s    6	2"!!((*!'>::$$++G4#%D+;;$*"kk595G5G5ID22&*&<&< < <  6:D2) #kkk '2 )CCEEE##
 -94;K;K  !M  $$--hH!1Q !=#1 2 59
 1 $ 1 1 8 8 :
 $+?$.w$G$G,A#,F,F.1G2 '2 F ! $$--d3i>O>OPP !1	 	 !1s   HAH F; 7'F(E.E/E3F( F; -F9.5F; #H ?HE
F%AF F( F%%F((
F62F; ;
H4H9H =HHHH HHNc                V  ^ ^^ Ub  UR                   OS mS
U UU4S jjnTbr  [        [        5       5      n[        R	                  [        [        R                  [        5       5      5      nUb  UR                  b  UR                  nO8T R                  nO+[        T R                  R                  5      nT R                  nUb  UR                  OS n[        XUS9n	[        R                  " 5       n
U	R                  5       n U
R                  5       =n(       aI  [        USS 5      [         L a5  [        USS 5      =n(       a!  US   R"                  nU" XU	R$                  S9mOU
R'                  XR$                  S9m [/        XWS9[        T'   UR0                  R3                  T5        T R0                  R3                  T5        [4        R6                  S	:  aB  T R                  R                  b+  [        R8                  " TT R                  R                  5        TR;                  U5        U	$ ! [(         au    [+        [(        5         UR-                  5         S S S 5        O! , (       d  f       O= f[+        [(        5         UR-                  5         S S S 5        e ! , (       d  f       e = ff = f)Nc                   > [         R                  S:  aB  TR                  R                  b+  [        R
                  " U TR                  R                  5        [        U    nUR                  c   eXR                  R                  ;   d   eUR                  R                  R                  U 5        TR                  R                  T5        [        U 	 TR                  b-  TR                  (       d   TR                  R                  S 5         U R                  5       nUb  Tb  TR!                  5       (       a  g Tb  TR#                  5       (       ag  [        U[        5      (       d  TR$                  R'                  U5        TR                  R(                  (       d  TR                  R+                  5         g g TR-                  U5        g Tb1  TR#                  5       (       d  TR-                  [/        S5      5        g g g ! [        R                   a     GN
f = f! [         aY  n[        UR                  [        5      (       a-  UR                  n[        UR                  [        5      (       a  M-  Un S nAGN[S nAff = f)Nr`      z2Child exited without calling task_status.started())r8  r9  r  r  r
  future_discard_from_awaited_byr  r*  rH  r  r   InvalidStateErrorr   r   r  r  r   r   r  r  rR  r   r   r   )_taskrC  r  er   r   task_status_futures       r{   	task_done#TaskGroup._spawn.<locals>.task_donef  s	   7*t/@/@/K/K/W664,,77 &e,J**66633:::::##**11%8KKt$U#%%1$++**55d;oo'  &16H6R6R6T6T%-1C1H1H1J1J%c>::((//4,,CC))002 D '44S9#/8J8O8O8Q8Q"00 !UV 9R/5 00 
 "  ??A !?? 	s1   1G? H ?HH
I=$A
I80I88I=)r  __code____closure__r   )r   namer  r  r  )r  r   r   r   )r  ro  r   r  r  r1   r
  r  r  r  r  rP   r	   	_run_coroget_task_factoryr   r  cell_contentsr  r   r  r   r   r?  r*  r<  r8  r9  future_add_to_awaited_byr	  )r   r   r  task_statusr  r  caller_stateinitial_scoper  handler   wrapper_corofactoryclosurecustom_task_constructorr   r  s   `              @@r{   _spawnTaskGroup._spawn^  s4    5@4K[00QU-	 -	^ )<>*I'++D|~,NOL'L,E,E,Q , 9 9 !% 1 14,,778I --M2=2Ik..tD[A'')'')	 11333GZ6:RR ' EEWE*1!**B*B'. &++ '';;'G 'WT  &w&4+<+<+G+G+S,,T43D3D3O3OPy)#  	-(""$ )(( -(

 )  )( 	sC    AH)  H) )J(I	J(
I*	&J(<J	J(
J$	 J()r  r   c               l   [        U[        5      (       d"  [        SUR                  R                   35      eU R
                  (       a  U R                  R                  (       d  UR                  5         [        S5      e[        X5      nUb  UR                  U R                  XS9$ U R                  XS9$ )Nzexpected a coroutine, got ;This task group is not active; no new tasks can be started.r  )r  r   	TypeError	__class__rt   r  r  r!  r   r   rX   r   r  )r   r   r  r   
final_names        r{   r   TaskGroup.create_task  s     $	**89T9T8UVWW}}D$5$5$=$=JJLM  #4.
;;t{{D;BB;;t;55rz   F)r  return_handlec                 #    U R                   (       a  U R                  R                  (       d  [        S5      e[        R
                  " 5       n[        X5      n[        U[        U R                  R                  5      U R                  [        5       5      n[        XUS9nU R                  XU5      n	 UI S h  vN   U(       a  UR)                  5       U	l        U	$ UR)                  5       $  N2! [         av    U	R                  [        R                   R"                  L aM  U	R%                  5         [        SS9   U	R'                  5       I S h  vN    S S S 5        e ! , (       d  f       e = fe f = f7f)Nr  )r  Tr.  )r  r  r!  r   r
  r   rW   r  ro  r  rO   rV   r  r  statusrP   StatusPENDINGr   r   result_start_value)
r   funcr  r  r   r   r  r  r   r  s
             r{   r   TaskGroup.start  s#     }}D$5$5$=$=M  ")!1&t2
/ABt((334d6G6G0
 "$+FT{;		LL "(--/FM==?"  	}}
 1 1 9 99 - ++-'' .  .- E	sU   B1E14C. 9C,:C. >.E1,C. .A
E.8EEE	E.
E)	%	E..E1)r  r  r  r*  r  r   r   r  r   )r   Coroutine[Any, Any, T_co]r  r1  r  z_AsyncioTaskStatus | Noner   TaskHandle[T_co])r   r  r  r1  r   zContext | Noner   r  )
r  7Callable[[Unpack[PosArgsT]], Coroutine[Any, Any, T_co]]r   zUnpack[PosArgsT]r  r1  r  zLiteral[False, True]r   r-   )rr   rs   rt   ru   r   r  r  r  r   r   ry   rq   rz   r{   r  r    s    C<2,<2 &<2 %	<2
 
<2D 26	d'd d /	d
 
dT "&6'6 	6
  6 
66 .3/#E/#  /# 	/#
 ,/# 
/# /#rz   r  c                  n   ^  \ rS rSrSr      SU 4S jjr        S	S jrS
S jrSSS jjrSr	U =r
$ )WorkerThreadi  
   c                  > 0 n[         R                  S:  a  [        5       US'   [        TU ]  " SSS0UD6  Xl        X l        X0l        UR                  U l	        [        S5      U l        [        R                  5       U l        SU l        g )Nr  r   r  zAnyIO worker threadr3   Frq   )r8  r9  r   superr   r  workersidle_workersr   r   r$   queuer  current_time
idle_sincestopping)r   r  r  r  kwargsr  s        r{   r   WorkerThread.__init__  s~     "$w& '	F9>3>v>"(OO	 !H 	
 )557rz   c                V   [         R                  5       U l        U R                  (       d  U R                  R                  U 5        UR                  5       (       dO  Ub:  [        U[        5      (       a  [        S5      nX4l
        UnUR                  U5        g UR                  U5        g g )Nzcoroutine raised StopIteration)r  r  r  r  r  r  r   r  StopIterationr   	__cause__r   r   )r   r   r  r  new_excs        r{   _report_resultWorkerThread._report_result,  s     )557}}$$T*!!c=11*+KLG(+%!C$$S)!!&) "rz   c                r   [        [        U R                  5          U R                  R	                  5       nUc
   S S S 5        g Uu  p#pEnUR                  5       (       dS  S nS nU[        l         UR                  " U/UQ76 n[        ? U R                  R                  U R                  XWU5        AAU R                  R                  5         AAAAAAM  ! [         a  n	U	n S n	A	NcS n	A	ff = f! [        ?f = f! [         a#    U R                  R                  5       (       d  e  Ntf = f! , (       d  f       g = fr   )r9   r  r   r  r  r   r;   current_cancel_scoper   r  r   r  r   	is_closedr  )
r   itemr   r  r   r   r  r  r   r  s
             r{   r   WorkerThread.run>  s$    ;zz~~'< <; =A9t\''))!F6:I8DL5>!(T!9D!9 )="		66 // 	

$$&'4v|;  ) ($'	( )= ( "#yy2244!  5"/ <;sk    D(*D(/CD(	'C80$D(
C*C% C-%C**C--C55D(8*D%"D($D%%D((
D6c                    SU l         U R                  R                  S 5        U R                  R	                  U 5         U R
                  R                  U 5        g ! [         a     g f = fNT)r  r  
put_nowaitr  r=  r  rH  r   )r   fs     r{   stopWorkerThread.stop_  sX    

d#T"	$$T* 		s   A 
A('A()r  r  r   r  r  r  r  )r  r   r  zset[WorkerThread]r  zdeque[WorkerThread])r   r  r  r-   r  r   r   r   r   r   )r  zasyncio.Task | Noner   r   )rr   rs   rt   ru   MAX_IDLE_TIMEr   r  r   r  ry   __classcell__r  s   @r{   r  r    s_    M # *	**$*.1*8L*	*$DB rz   r  _threadpool_idle_workerszRunVar[deque[WorkerThread]]_threadpool_workerszRunVar[set[WorkerThread]]F)eqc                  8    \ rS rSr% S\S'   SS	S jjrS
S jrSrg)StreamReaderWrapperit  zasyncio.StreamReader_streamc                   #    US:  a  [        S5      eU R                  R                  U5      I S h  vN nU(       a  U$ [        e N7fNr   z$max_bytes must be a positive integer)r   r  readr?   )r   	max_bytesdatas      r{   receiveStreamReaderWrapper.receivex  sB     q=CDD\\&&y11K	 2s   0AAAc                   #    U R                   R                  [        5       5        [        R	                  5       I S h  vN   g  N7fr   )r  r   r>   r  
checkpointr   s    r{   acloseStreamReaderWrapper.aclose  s-     ""#6#89'')))s   ;AAArq   N   r  r  r   bytesr   )rr   rs   rt   ru   __annotations__r  r  ry   rq   rz   r{   r  r  t  s    !!*rz   r  c                  L    \ rS rSr% S\S'   \" SSS9rS\S'   SS jrSS	 jrS
r	g)StreamWriterWrapperi  zasyncio.StreamWriterr  F)initdefaultr  _closedc                  #    [         R                  5       I S h  vN   U R                  R                  R                  n U R                  R                  U5        U R                  R                  5       I S h  vN   U(       d  [         R                  5       I S h  vN   g g  N N+! [        [        [        4 aD  nU R                  (       a  [        UeU R                  R                  5       (       a  [        Uee S nAff = f Nf7fr   )r  checkpoint_if_cancelledr  	_protocol_pausedwritedrainConnectionResetErrorBrokenPipeErrorr   r#  r>   
is_closingr<   r  )r   r  stream_pausedr  s       r{   sendStreamWriterWrapper.send  s     44666..66	LLt$,,$$&&&  ;;=== ! 	7 '$o|D 		 ||)s2((**)s2		 >sQ   DB"$D 8B& 8B$9B& =DDD$B& &C?;?C::C??Dc                   #    SU l         U R                  R                  5         [        R	                  5       I S h  vN   g  N7fr  )r#  r  r   r  r  r   s    r{   r  StreamWriterWrapper.aclose  s.     '')))s   9AAA)r#  Nr  r  r   r   r   )
rr   rs   rt   ru   r  r   r#  r.  r  ry   rq   rz   r{   r   r     s#    !!ue4GT4>(*rz   r   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S\S'   SS jrSS jrSS jrSS jrSS jr	\
SS j5       r\
SS j5       r\
SS j5       r\
SS j5       r\
SS j5       rSrg)Processi  zasyncio.subprocess.Process_processzStreamWriterWrapper | None_stdinzStreamReaderWrapper | None_stdout_stderrasyncio.Event_exitedzasyncio.SubprocessTransport
_transportc                  #    [        SS9 nU R                  (       aT  U R                  R                  5       I S h  vN   U R                  R	                  S5      =n(       a  UR                  5         U R                  (       aT  U R                  R                  5       I S h  vN   U R                  R	                  S5      =n(       a  UR                  5         U R                  (       aT  U R                  R                  5       I S h  vN   U R                  R	                  S5      =n(       a  UR                  5         SUl         U R                  5       I S h  vN    S S S 5        g  GN+ N Ne N! [         a<    SUl        U R                  R                  5         U R                  5       I S h  vN    e f = f! , (       d  f       g = f7f)NTr  r   r   r3   F)rO   r6  r  r;  get_pipe_transportr   r7  r8  r.  r   r  )r   re  pipes      r{   r  Process.aclose  sH    % {{kk((***??==a@@4@JJL||ll))+++??==a@@4@JJL||ll))+++??==a@@4@JJL ELiik!!% &% + , , "  #%%'iik!!' &%s   
G	/F8E&A$F8 E)!A$F8E+=F8E/E-E/	G	&F8)F8+F8-E//>F5-F0.F55F88
GG	c                   #    U R                   R                  5       I S h  vN   U R                  R                  c   eU R                  R                  $  N37fr   )r:  r   r5  
returncoder   s    r{   r   Process.wait  sF     ll!!!}}''333}}''' 	"s   AA4Ac                8    U R                   R                  5         g r   )r5  	terminater   s    r{   rD  Process.terminate  s    !rz   c                8    U R                   R                  5         g r   )r5  killr   s    r{   rG  Process.kill  s    rz   c                :    U R                   R                  U5        g r   )r5  send_signal)r   r   s     r{   rJ  Process.send_signal  s    !!&)rz   c                .    U R                   R                  $ r   )r5  pidr   s    r{   rM  Process.pid  s    }}   rz   c                .    U R                   R                  $ r   )r5  rA  r   s    r{   rA  Process.returncode  s    }}'''rz   c                    U R                   $ r   )r6  r   s    r{   stdinProcess.stdin      {{rz   c                    U R                   $ r   )r7  r   s    r{   stdoutProcess.stdout  r  rz   c                    U R                   $ r   )r8  r   s    r{   stderrProcess.stderr  r  rz   rq   Nr   r   r  )r   r  r   r   r   r  )r   zabc.ByteSendStream | None)r   zabc.ByteReceiveStream | None)rr   rs   rt   ru   r  r  r   rD  rG  rJ  r  rM  rA  rR  rV  rY  ry   rq   rz   r{   r4  r4    s    ((&&''''++6(
"* ! ! ( (      rz   r4  c                `   Sn[         R                  S:  a$   [        R                  " 5       R	                  5       nU R                  5        H  nUR                  b  M  UR                  R                  R                  R                  5         UR                  R                  R                  R                  5         UR                  R                  R                  R                  5         UR                  5         U(       d  M  UR                  UR                   5        M     g! [
         a     Nf = f)zC
Forcibly shuts down worker processes belonging to this event loop.Nr  )r8  r9  r
  get_event_loop_policyget_child_watcherNotImplementedErrorcopyrA  r6  r  r;  r   r7  r8  rG  remove_child_handlerrM  )r  r  child_watcherprocesss       r{   '_forcibly_shutdown_process_pool_on_exitre    s    
 :>M
'!	#99;MMOM
 <<>)))//1**002**002=..w{{; "	 # 		s   #D   
D-,D-c                <  #     [        [        R                  5      I Sh  vN   g N! [        R                   a]    U R                  5       n U  H"  nUR                  b  M  UR                  5         M$     U  H  nUR                  5       I Sh  vN    M      gf = f7f)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
   rW  rX  r
  r   ra  rA  rG  r  )r  rd  s     r{   _shutdown_process_pool_on_exitrg    su     	#DHHo!! #,,.G!!)  G..""" #sC   B( &( B( 4B ,BB	BBBBc                      \ rS rSr% S\S'   S\S'   S\S'   SrS\S	'   S
rS\S'   SS jrSS jrSS jr	SS jr
SS jrSS jrSrg)StreamProtocoli   zdeque[bytes]
read_queuer9  
read_eventwrite_eventNException | Noner   Fr  	is_at_eofc                   [        5       U l        [        R                  " 5       U l        [        R                  " 5       U l        U R
                  R                  5         [        [        R                  U5      R                  S5        g Nr   )
r   rj  r
  rG   rk  rl  r  r1   	Transportset_write_buffer_limitsr   	transports     r{   connection_madeStreamProtocol.connection_made'  sS    '!--/"==?W	*BB1Erz   c                    U(       a  Xl         U R                  R                  5         U R                  R                  5         g r   )r   rk  r  rl  r   r  s     r{   connection_lostStreamProtocol.connection_lost.  s,     Nrz   c                    U R                   R                  [        U5      5        U R                  R	                  5         g r   )rj  r  r  rk  r  )r   r  s     r{   data_receivedStreamProtocol.data_received5  s(    uT{+rz   c                F    SU l         U R                  R                  5         gr  )rn  rk  r  r   s    r{   eof_receivedStreamProtocol.eof_received:  s    rz   c                8    [         R                  " 5       U l        g r   )r
  rG   rl  r   s    r{   pause_writingStreamProtocol.pause_writing?  s    "==?rz   c                8    U R                   R                  5         g r   rl  r  r   s    r{   resume_writingStreamProtocol.resume_writingB      rz   )r   rn  rk  rj  rl  rt  zasyncio.BaseTransportr   r   r  rm  r   r   )r  r  r   r   )r   r   r   )rr   rs   rt   ru   r  r   rn  ru  ry  r|  r  r  r  ry   rq   rz   r{   ri  ri     sH    "&I&ItF

+rz   ri  c                      \ rS rSr% S\S'   S\S'   S\S'   S\S'   SrS	\S
'   SS jrSS jrSS jrSS jr	SS jr
SS jrSrg)DatagramProtocoliF  z#deque[tuple[bytes, IPSockAddrType]]rj  r9  rk  rl  closed_eventNrm  r   c                    [        SS9U l        [        R                  " 5       U l        [        R                  " 5       U l        [        R                  " 5       U l        U R
                  R                  5         g )Nd   )maxlen)r   rj  r
  rG   rk  rl  r  r  rs  s     r{   ru   DatagramProtocol.connection_madeM  sI    s+!--/"==?#MMOrz   c                    U R                   R                  5         U R                  R                  5         U R                  R                  5         g r   )rk  r  rl  r  rx  s     r{   ry   DatagramProtocol.connection_lostT  s6    rz   c                    [        U5      nU R                  R                  X45        U R                  R	                  5         g r   )rB   rj  r  rk  r  )r   r  addrs      r{   datagram_received"DatagramProtocol.datagram_receivedY  s0    $T*|,rz   c                    Xl         g r   )r   rx  s     r{   error_receivedDatagramProtocol.error_received^  s    rz   c                8    U R                   R                  5         g r   )rl  clearr   s    r{   r  DatagramProtocol.pause_writinga  s     rz   c                8    U R                   R                  5         g r   r  r   s    r{   r  DatagramProtocol.resume_writingd  r  rz   )r  r   rk  rj  rl  r  r  )r  r  r  rR   r   r   )r  r   r   r   r   )rr   rs   rt   ru   r  r   ru  ry  r  r  r  r  ry   rq   rz   r{   r  r  F  sC    33"&I& 

!rz   r  c                  ^    \ rS rSrS
S jr\SS j5       rSSS jjrSS jrSS jr	SS jr
Srg	)SocketStreamih  c                j    Xl         X l        [        S5      U l        [        S5      U l        SU l        g Nreading from
writing toFr;  r&  rJ   _receive_guard_send_guardr#  r   rt  protocols      r{   r   SocketStream.__init__i  s-    #!+N;(6rz   c                8    U R                   R                  S5      $ Nsocketr;  get_extra_infor   s    r{   _raw_socketSocketStream._raw_socketp      --h77rz   c                L  #    US:  a  [        S5      eU R                     U R                  R                  R	                  5       (       d  U R
                  R                  5       (       d|  U R                  R                  (       da  U R
                  R                  5         U R                  R                  R                  5       I S h  vN   U R
                  R                  5         O[        R                  5       I S h  vN    U R                  R                  R                  5       n[+        U5      U:  a-  US U X!S  p2U R                  R                  R-                  U5        U R                  R                  (       d$  U R                  R                  R/                  5         S S S 5        U$  N N! [         aV    U R                   (       a  ["        S eU R                  R$                  (       a  [&        U R                  R$                  e[(        S ef = f! , (       d  f       W$ = f7fr  )r   r  r&  rk  is_setr;  r,  rn  resume_readingr   pause_readingr  r  rj  popleft
IndexErrorr#  r>   r   r<   r?   len
appendleftr  )r   r  chunkleftovers       r{   r  SocketStream.receivet  s    q=CDD  NN--4466224400..0nn//44666--/$//11101199; 5zI%"'
"3U:5Fx))44X> >>,,))//1= !@ 3 7 2  0<<-47^^---4>>3K3KK%4/0 ! @ s[   H$B%HF+6H<F-=H$F/&A;H!
H$+H-H/A HH
H!H$c                ,  #    U R                      [        R                  5       I S h  vN   U R                  (       a  [        eU R
                  R                  b  [        U R
                  R                  e U R                  R                  U5        U R
                  R                  R                  5       I S h  vN   S S S 5        g  N! [         a,  nU R                  R                  5       (       a  [        Uee S nAff = f NH! , (       d  f       g = f7fr   )r  r  r  r#  r>   r&  r   r<   r;  r(  r   r,  rl  r   )r   r  r  s      r{   r.  SocketStream.send  s      ++---||))))5)t~~/G/GG%%d+ ..,,11333! -   ??--//-36	 4! s]   DDCAD6C'D8D9D=	DD
C>'C99C>>D
DDc                b   #     U R                   R                  5         g ! [         a     g f = f7fr   )r;  	write_eofOSErrorr   s    r{   send_eofSocketStream.send_eof  s+     	OO%%' 		s   / /
,/,/c                B  #    SU l         U R                  R                  5       (       dc   U R                  R                  5         U R                  R                  5         [        S5      I S h  vN   U R                  R                  5         g g ! [         a     NUf = f N07fNTr   )r#  r;  r,  r  r  r   r
   abortr   s    r{   r  SocketStream.aclose  s     ))++))+ OO!!#(NNOO!!# ,   s4   'BB (B,B- B
BBBBr#  r&  r  r  r;  N)rt  zasyncio.Transportr  ri  r   socket.socketr  r  r2  r   )rr   rs   rt   ru   r   r  r  r  r.  r  r  ry   rq   rz   r{   r  r  h  s0     8 8$L4&
$rz   r  c                  r    \ rS rSr% SrS\S'   SrS\S'   SrSS jr\	SS j5       r
SS	 jrSS
 jrSS jrSrg)_RawSocketMixini  Nzasyncio.Future | None_receive_future_send_futureFc                P    Xl         [        S5      U l        [        S5      U l        g )Nr  r  )_RawSocketMixin__raw_socketrJ   r  r  r   
raw_sockets     r{   r   _RawSocketMixin.__init__  s"    &+N;(6rz   c                    U R                   $ r   )r  r   s    r{   r  _RawSocketMixin._raw_socket         rz   c                   ^ ^ SUU 4S jjn[         R                  " 5       =nT l        TR                  T R                  UR
                  S 5        UR                  U5        U$ )Nc                @   > T? TR                  TR                  5        g r   )r  remove_readerr  r  r   r   s    r{   callback6_RawSocketMixin._wait_until_readable.<locals>.callback  s    $t001rz   r  r1  r   r   )r
  r   r  
add_readerr  r   r	  r   r   r  r  s   ``  r{   _wait_until_readable$_RawSocketMixin._wait_until_readable  sP    	2 	2 $+>>#33D ))1<<>	H%rz   c                   ^ ^ SUU 4S jjn[         R                  " 5       =nT l        TR                  T R                  UR
                  S 5        UR                  U5        U$ )Nc                @   > T? TR                  TR                  5        g r   )r  remove_writerr  r  s    r{   r  6_RawSocketMixin._wait_until_writable.<locals>.callback  s    !t001rz   r  )r
  r   r  
add_writerr  r   r	  r  s   ``  r{   _wait_until_writable$_RawSocketMixin._wait_until_writable  sP    	2 	2 !( 00D))1<<>	H%rz   c                  #    U R                   (       d  SU l         U R                  R                  5       S:w  a  U R                  R                  5         U R                  (       a:  U R                  R                  5       (       d  U R                  R                  S 5        U R                  (       a<  U R                  R                  5       (       d  U R                  R                  S 5        g g g g 7f)NT)_closingr  filenor   r  r   r   r  r   s    r{   r  _RawSocketMixin.aclose  s     }} DM  '')R/!!'')##D,@,@,E,E,G,G$$//5  ):):)?)?)A)A!!,,T2 *B  s   C+C-)__raw_socketr  r  r  r  r  r  r  r  )r   asyncio.AbstractEventLoopr   r  r   )rr   rs   rt   ru   r  r  r  r  r   r  r  r  r  r  ry   rq   rz   r{   r  r    sE    -1O*1*.L'.H7
 ! !	3rz   r  c                  J    \ rS rSrS	S jrS
SS jjrSS jrSS jrSS jrSr	g)UNIXSocketStreami  c                   #    U R                      U R                  R                  [        R                  5        S S S 5        g ! , (       d  f       g = f7fr   )r  r  r   r  SHUT_WRr   s    r{   r  UNIXSocketStream.send_eof  s1     %%fnn5 s   A*A	A
AAc                  #    US:  a  [        S5      e[        5       n[        R                  5       I S h  vN   U R                       U R
                  R                  U5      nU(       d  [        eUsS S S 5        $  NF! [         a    U R                  U5      I S h  vN     O0[         a$  nU R                  (       a  [        S e[        UeS nAff = fM  ! , (       d  f       g = f7fr  )r   r	   r  r  r  r  recvr?   BlockingIOErrorr  r  r  r>   r<   )r   r  r   r  r  s        r{   r  UNIXSocketStream.receive  s     q=CDD!'')))   ++00;D  )) !  	*
 ' :33D999 ;}}1t;1s:	;  ! sc   3C'A<C'C	A>$C2C'>CBC"C$	C-CCC
C$ C'c                  #    [        5       n[        R                  5       I S h  vN   U R                     [	        U5      nU(       a)   U R
                  R                  U5      nX4S  nU(       a  M)  S S S 5        g  NU! [         a    U R                  U5      I S h  vN     N:[         a$  nU R                  (       a  [        S e[        UeS nAff = f! , (       d  f       g = f7fr   )r	   r  r  r  
memoryviewr  r.  r  r  r  r  r>   r<   )r   r  r   view
bytes_sentr  s         r{   r.  UNIXSocketStream.send
  s     !'')))d#D
-!%!1!1!6!6t!<J  ,D $  	* ' :33D999 ;}}1t;1s:	; sb   "C#A:C#C	A<$C1
C#<CBC C"	C+C

CC
C C#c           	       #    [        U[        5      (       a  US:  a  [        S5      e[        U[        5      (       a  US:  a  [        S5      e[        5       n[        R                  " S5      n[
        R                  5       I S h  vN   U R                       U R                  R                  U[        R                  " X$R                  -  5      5      u  pVpxU(       d  U(       d  [        e S S S 5        W Hy  u  pnU
[        R(                  :w  d  U[        R*                  :w  a  [-        SW< SU
 SU 35      eUR/                  US [1        U5      [1        U5      UR                  -  -
   5        M{     W[3        U5      4$  N! [         a    U R                  U5      I S h  vN     O0[          a$  n	U R"                  (       a  [$        S e[&        U	eS n	A	ff = fGMD  ! , (       d  f       N= f7f)	Nr   z%msglen must be a non-negative integerr   z!maxfds must be a positive integeriz.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   msglenmaxfdsr   fdsr   ancdata_flags_addrr  
cmsg_level	cmsg_type	cmsg_datas                r{   receive_fdsUNIXSocketStream.receive_fds  s    &#&&&1*DEE&#&&&1*@AA!kk#'')))  6:6F6F6N6N0E F73Gf #7))# !& 18,J9V...)v?P?P2P"DWK P$$.<~i[J 
 MM)$Vc)nI8U&VWX 18 S	!!; 	* ' :33D999 ;}}1t;1s:	;  ! sg   BG.FG.G?FG.BG.G"F%#G(G*	G3GGG
G+'G.c                   #    U(       d  [        S5      eU(       d  [        S5      e[        5       n/ nU Ha  n[        U[        5      (       a  UR	                  U5        M+  [        U[
        5      (       d  MB  UR	                  UR                  5       5        Mc     [        R                  " SU5      n[        R                  5       I S h  vN   U R                       U R                  R                  U/[        R                  [        R                  U4/5         S S S 5        g  NZ! [          a    U R#                  U5      I S h  vN     O0[$         a$  nU R&                  (       a  [(        S e[*        UeS nAff = fM  ! , (       d  f       g = f7f)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           r{   send_fdsUNIXSocketStream.send_fdsC  s>    899455!B"c""r"B''ryy{+	  ++c7+''))); $$,, 	V%6%68I8I7$S#T   	* ' :33D999 ;}}1t;1s:	;  sm   A1F7AFD#	FE==D%E=
F%E8EE8	E=	E8E33E88E==
FFrq   Nr   r  r  r2  )r  r  r  r  r   ztuple[bytes, list[int]])r   r  r  zCollection[int | IOBase]r   r   )
rr   rs   rt   ru   r  r  r.  r  r  ry   rq   rz   r{   r  r    s    6 .-$%"N;rz   r  c                  Z    \ rS rSr% SrS\S'   SrSS jr\SS j5       r	SS jr
SS	 jrS
rg)TCPSocketListenerie  Nr  _accept_scopeFc                ~    Xl         [        [        R                  [	        5       5      U l        [        S5      U l        g )Naccepting connections from)_TCPSocketListener__raw_socketr1   r
  BaseEventLoopr	   r   rJ   _accept_guardr  s     r{   r   TCPSocketListener.__init__i  s.    &'//1A1CD
*+GHrz   c                    U R                   $ r   )r"  r   s    r{   r  TCPSocketListener._raw_socketn  r  rz   c                J  #    U R                   (       a  [        eU R                     [        R	                  5       I S h  vN   [        5        U l         U R                  R                  U R                  5      I S h  vN u  p S U l         S S S 5        S S S 5        WR                  [         R"                  [         R$                  S5        U R                  R'                  [(        U5      I S h  vN u  p4[+        X45      $  N N! [        R                   aW     U R                  R                  U R                  5        O! [        [        4 a     Of = fU R                   (       a  [        S ee f = f! S U l        f = f! , (       d  f       N= f! , (       d  f       GN= f N7fNr   )r#  r>   r$  r  r  rO   r  r   sock_acceptr  r
  r   r  r   r`  
setsockoptr  IPPROTO_TCPTCP_NODELAYconnect_accepted_socketri  r  )r   client_sockr  rt  r  s        r{   acceptTCPSocketListener.acceptr  sJ    <<%% ++---$"4./3zz/E/EdFVFV/W)W&K *.D&   & 	v1163E3EqI$(JJ$F$FK%
 
	 I00- . *X-- 


001A1AB&(;<  ||1t;
 *.D&   (
s   $F#FD FE>(D<D=DE>FAF#.F!/F# FDE/%D?>E/?E	E/E	E//E22	E;;E>>
F	F
F	F#c                j  #    U R                   (       a  g SU l         U R                  (       aS   U R                  R                  U R                  5        U R                  R                  5         [        S5      I S h  vN   U R                  R                  5         g ! [
        [        4 a     NZf = f N57fr  )
r#  r  r   r  r  r   r`  r   r
   r   r   s    r{   r  TCPSocketListener.aclose  s     <<

(()9)9: %%'(NN   34  s4   +B3%B (B3;B1<B3B.+B3-B..B3)r  r$  r  r#  r   r  r  r   abc.SocketStreamr   )rr   rs   rt   ru   r  r  r#  r   r  r  r0  r  ry   rq   rz   r{   r  r  e  s6    (,M%,GI
 ! !1:!rz   r  c                  F    \ rS rSrSS jrS	S jrS
S jr\SS j5       rSr	g)UNIXSocketListeneri  c                \    Xl         [        5       U l        [        S5      U l        SU l        g )Nr!  F)_UNIXSocketListener__raw_socketr	   r   rJ   r$  r#  r  s     r{   r   UNIXSocketListener.__init__  s'    &%'
*+GHrz   c                R  ^ #    [         R                  5       I S h  vN   T R                       T R                  R	                  5       u  pUR                  S5        [        U5      sS S S 5        $  NT! [         ai    [        R                  " 5       nT R                  R                  T R                  UR                  S 5        UR                  U 4S j5        UI S h  vN     O0[         a$  nT R                  (       a  [         S e["        UeS nAff = fM  ! , (       d  f       g = f7f)NFc                N   > TR                   R                  TR                  5      $ r   )r   r  r9  )_r   s    r{   r   +UNIXSocketListener.accept.<locals>.<lambda>  s    $**":":4;L;L"Mrz   )r  r  r$  r9  r0  setblockingr  r  r
  r   r   r  r   r	  r  r#  r>   r<   )r   r/  r=  r  r  s   `    r{   r0  UNIXSocketListener.accept  s     '')));%)%6%6%=%=%?NK++E2+K8   	* ' (/(8AJJ))$*;*;Q\\4P''M GG ;||1t;1s:	;   s\   D'A0D'D7A2&D'2A*DCD"D$	D-DDD
D$ D'c                N   #    SU l         U R                  R                  5         g 7fr  )r#  r9  r   r   s    r{   r  UNIXSocketListener.aclose  s     !s   #%c                    U R                   $ r   )r9  r   s    r{   r  UNIXSocketListener._raw_socket  r  rz   )r  r$  r#  r   Nr  r4  r   r  )
rr   rs   rt   ru   r   r0  r  r  r  ry   rq   rz   r{   r7  r7    s%    ;*" ! !rz   r7  c                  X    \ rS rSr    S	S jr\S
S j5       rSS jrSS jrSS jr	Sr
g)	UDPSocketi  c                j    Xl         X l        [        S5      U l        [        S5      U l        SU l        g r  r  r  s      r{   r   UDPSocket.__init__  /     $!+N;(6rz   c                8    U R                   R                  S5      $ r  r  r   s    r{   r  UDPSocket._raw_socket  r  rz   c                   #    SU l         U R                  R                  5       (       d  U R                  R                  5         U R                  R
                  R                  5       I S h  vN   g  N7fr  r#  r;  r,  r   r&  r  r   r   s    r{   r  UDPSocket.aclose  K     ))++OO!!#nn))..000   A(A2*A0+A2c                P  #    U R                      [        R                  5       I S h  vN   U R                  R                  (       do  U R
                  R                  5       (       dP  U R                  R                  R                  5         U R                  R                  R                  5       I S h  vN    U R                  R                  R                  5       sS S S 5        $  N N4! [         a     U R                  (       a  [        S e[        S ef = f! , (       d  f       g = f7fr   r  r  r  r&  rj  r;  r,  rk  r  r   r  r  r#  r>   r<   r   s    r{   r  UDPSocket.receive  s        ++--- >>,,T__5O5O5Q5Q))//1nn//446668~~0088: ! -
 7  8<<-47-47	8 ! sQ   D&DC$B	D1C&2D7#C(
D&$D&D(*DD
D#D&c                  #    U R                      [        R                  5       I S h  vN   U R                  R                  R                  5       I S h  vN   U R                  (       a  [        eU R                  R                  5       (       a  [        eU R                  R                  " U6    S S S 5        g  N Ne! , (       d  f       g = f7fr   r  r  r  r&  rl  r   r#  r>   r;  r,  r<   sendtor   r  s     r{   r.  UDPSocket.send  s      ++---..,,11333||))++--))&&- -3 s?   CB;B7+B;B9AB;.	C7B;9B;;
C	Cr  Nrt  zasyncio.DatagramTransportr  r  r  r   )r   ztuple[bytes, IPSockAddrType])r  rT   r   r   rr   rs   rt   ru   r   r  r  r  r  r.  ry   rq   rz   r{   rF  rF    s:    2>N 8 818"	.rz   rF  c                  X    \ rS rSr    S	S jr\S
S j5       rSS jrSS jrSS jr	Sr
g)ConnectedUDPSocketi  c                j    Xl         X l        [        S5      U l        [        S5      U l        SU l        g r  r  r  s      r{   r   ConnectedUDPSocket.__init__  rI  rz   c                8    U R                   R                  S5      $ r  r  r   s    r{   r  ConnectedUDPSocket._raw_socket  r  rz   c                   #    SU l         U R                  R                  5       (       d  U R                  R                  5         U R                  R
                  R                  5       I S h  vN   g  N7fr  rM  r   s    r{   r  ConnectedUDPSocket.aclose  rO  rP  c                Z  #    U R                      [        R                  5       I S h  vN   U R                  R                  (       do  U R
                  R                  5       (       dP  U R                  R                  R                  5         U R                  R                  R                  5       I S h  vN    U R                  R                  R                  5       nUS   sS S S 5        $  N N9! [         a     U R                  (       a  [        S e[        S ef = f! , (       d  f       g = f7frp  rR  )r   packets     r{   r  ConnectedUDPSocket.receive  s        ++--- >>,,T__5O5O5Q5Q))//1nn//44666822::< !9! ! -
 7  8<<-47-47	8 ! sW   D+DC)B	D1C+2D7$C-D
D+)D+D-*DD
D($D+c                  #    U R                      [        R                  5       I S h  vN   U R                  R                  R                  5       I S h  vN   U R                  (       a  [        eU R                  R                  5       (       a  [        eU R                  R                  U5         S S S 5        g  N Ng! , (       d  f       g = f7fr   rU  rW  s     r{   r.  ConnectedUDPSocket.send   s      ++---..,,11333||))++--))&&t, -3 s?   CB=B9+B=B;AB=0	C9B=;B==
CCr  NrY  r  r   r   r  r2  rZ  rq   rz   r{   r\  r\    s:    2>N 8 81&	-rz   r\  c                  (    \ rS rSrSS jrSS jrSrg)UNIXDatagramSocketi,  c                  #    [        5       n[        R                  5       I S h  vN   U R                       U R                  R                  S5      nUsS S S 5        $  N9! [         a    U R                  U5      I S h  vN     O0[         a$  nU R                  (       a  [        S e[        UeS nAff = fM  ! , (       d  f       g = f7fNr  )r	   r  r  r  r  recvfromr  r  r  r  r>   r<   r   r   r  r  s       r{   r  UNIXDatagramSocket.receive-  s     !'')))  
 ++44U;D   !  	*
 ' :33D999 ;}}1t;1s:	;  ! a   "C	AC	B8A B8C	 B3>B?B3B8	B3B..B33B88
CC	c                  #    [        5       n[        R                  5       I S h  vN   U R                       U R                  R
                  " U6    S S S 5        g  N6! [         a    U R                  U5      I S h  vN     O0[         a$  nU R                  (       a  [        S e[        UeS nAff = fM~  ! , (       d  f       g = f7fr   )r	   r  r  r  r  rV  r  r  r  r  r>   r<   r   r  r   r  s       r{   r.  UNIXDatagramSocket.send>  s     !'')))
$$++T2   	*
 ' :33D999 ;}}1t;1s:	;  sa   "CACB5AB5
CB0;A><B0B5	B0B++B00B55
C?Crq   N)r   rU   )r  rU   r   r   rr   rs   rt   ru   r  r.  ry   rq   rz   r{   rj  rj  ,       "rz   rj  c                  (    \ rS rSrSS jrSS jrSrg)ConnectedUNIXDatagramSocketiP  c                  #    [        5       n[        R                  5       I S h  vN   U R                       U R                  R                  S5      nUsS S S 5        $  N9! [         a    U R                  U5      I S h  vN     O0[         a$  nU R                  (       a  [        S e[        UeS nAff = fM  ! , (       d  f       g = f7frl  )r	   r  r  r  r  r  r  r  r  r  r>   r<   rn  s       r{   r  #ConnectedUNIXDatagramSocket.receiveQ  s     !'')))  
 ++007D   !  	*
 ' :33D999 ;}}1t;1s:	;  ! rp  c                  #    [        5       n[        R                  5       I S h  vN   U R                       U R                  R                  U5         S S S 5        g  N8! [         a    U R                  U5      I S h  vN     O0[         a$  nU R                  (       a  [        S e[        UeS nAff = fM  ! , (       d  f       g = f7fr   )r	   r  r  r  r  r.  r  r  r  r  r>   r<   rr  s       r{   r.   ConnectedUNIXDatagramSocket.sendb  s     !'')))
$$))$/   	*
 ' :33D999 ;}}1t;1s:	;  sa   "CACB7AB7
CB2=B >B2B7	B2B--B22B77
CCrq   Nrh  r2  rt  rq   rz   r{   rw  rw  P  ru  rz   rw  read_eventsz'RunVar[dict[int, asyncio.Future[bool]]]_read_eventswrite_events_write_eventsc                  T    \ rS rSrSrS
S jrSS jrSS jrSS jrSS jr	SS jr
Srg	)rG   i}  )_eventc                ,    [         R                  U 5      $ r   r0  r4  s    r{   r2  Event.__new__  r6  rz   c                8    [         R                  " 5       U l        g r   )r
  rG   r  r   s    r{   r   Event.__init__  s    mmorz   c                8    U R                   R                  5         g r   )r  r  r   s    r{   r  	Event.set  s    rz   c                6    U R                   R                  5       $ r   )r  r  r   s    r{   r  Event.is_set  s    {{!!##rz   c                   #    U R                  5       (       a  [        R                  5       I S h  vN   g U R                  R	                  5       I S h  vN   g  N( N7fr   )r  r  r  r  r   r   s    r{   r   
Event.wait  s@     ;;== ++---++""$$$ .$s!   -AA"AAAAc                R    [        [        U R                  R                  5      5      $ r   )r5   r  r  _waitersr   s    r{   
statisticsEvent.statistics  s    s4;;#7#7899rz   Nr   r   r  )r   r5   )rr   rs   rt   ru   r  r2  r   r  r  r   r  ry   rq   rz   r{   rG   rG   }  s%    I#&$%:rz   rG   c                  n    \ rS rSrSrSS.SS jjrSS.SS jjrSS jrSS jrSS	 jr	SS
 jr
SS jrSrg)rI   i  )_fast_acquire_owner_taskr  Ffast_acquirec               ,    [         R                  U 5      $ r   r0  r4  r  s     r{   r2  Lock.__new__  r6  rz   c               <    Xl         S U l        [        5       U l        g r   )r  r  r   r  )r   r  s     r{   r   Lock.__init__  s    )04DIGrz   c                  #    [        [        R                  [        5       5      nU R                  cc  U R
                  (       dR  [        R                  5       I S h  vN   Xl        U R                  (       d   [        R                  5       I S h  vN   g g U R                  U:X  a  [        S5      e[        R                  " 5       nX4nU R
                  R                  U5         UI S h  vN   g  N Nb! [         a    U R                  5         e f = f N(! [         aT    UR                  5       (       a-   U R
                  R!                  U5        e ! ["         a     e f = fU R                  5         e f = f7fNz)Attempted to acquire an already held Lock)r1   r
  r  r   r  r  r  r%  r  r  r   releaser   r   r  r   rH  r   )r   r   futr  s       r{   acquireLock.acquire  s:    GLL,.1#DMM 88:::# %%(CCEEE
 t#JKK$+NN$4yT"	II+ ; F% LLN  		}}MM((.  "   		s   AE5C/E57C3 C1C3 AE5$D )D*D .E51C3 3DE5D E24EE2
EE2EE22E5c                    [        [        R                  [        5       5      nU R                  c  U R
                  (       d  Xl        g U R                  UL a  [        S5      e[        er  )r1   r
  r  r   r  r  r   rA   )r   r   s     r{   acquire_nowaitLock.acquire_nowait  sO    GLL,.1#DMM#t#JKKrz   c                    U R                   S L$ r   )r  r   s    r{   lockedLock.locked  s    t++rz   c                   U R                   [        5       :w  a  [        S5      eU R                  (       aK  U R                  R	                  5       u  pUR                  5       (       a  MD  Xl         UR                  S 5        g S U l         g )Nz)The current task is not holding this lock)r  r   r   r  r  r   r   )r   r   r  s      r{   r  Lock.release  sf    |~-JKK
 mm--/ID}}#NN4 rz   c                    U R                   (       a  [        U R                   5      OS n[        U R                  5       U[	        U R
                  5      5      $ r   )r  AsyncIOTaskInfor6   r  r  r  )r   	task_infos     r{   r  Lock.statistics  s:    9=9I9IOD$4$45t	dkkmYDMM8JKKrz   N)r  r  r   rc   )r  r  r   r   r   r  )r   r6   )rr   rs   rt   ru   r  r2  r   r  r  r  r  r  ry   rq   rz   r{   rI   rI     s5    :I-2 # 05 L
"H	, $Lrz   rI   c                     ^  \ rS rSrSrSSS.       SS jjrSSS.     SU 4S jjjrSS jrSS	 jrSS
 jr	\
SS j5       r\
SS j5       rSS jrSrU =r$ )rM   i  )r  
_max_value_valuer  NF	max_valuer  c               ,    [         R                  U 5      $ r   r0  r4  initial_valuer  r  s       r{   r2  Semaphore.__new__  s     ~~c""rz   c               b   > [         TU ]  XS9  Xl        X l        X0l        [        5       U l        g )N)r  )r  r   r  r  r  r   r  )r   r  r  r  r  s       r{   r   Semaphore.__init__  s.     	<##)5:Wrz   c                  #    U R                   S:  ar  U R                  (       da  [        R                  5       I S h  vN   U =R                   S-  sl         U R                  (       d   [        R                  5       I S h  vN   g g [        R                  " 5       nU R                  R                  U5         UI S h  vN   g  N ND! [         a    U R                  5         e f = f N(! [         aT    UR                  5       (       a-   U R                  R                  U5        e ! [         a     e f = fU R                  5         e f = f7fNr   r   )r  r  r  r%  r  r  r   r  r
  r   r  r   rH  r   r   r  s     r{   r  Semaphore.acquire  s    ;;?4== 88:::KK1K %%(CCEEE
 $+NN$4S!	II# ; F% LLN  		}}MM((-  "   		s   9EC*E'C >C?C 2E6C& ;C$<C&  EC C!!E$C& &ED"!E"
D/,E.D//EEc                Z    U R                   S:X  a  [        eU =R                   S-  sl         g r  )r  rA   r   s    r{   r  Semaphore.acquire_nowait"  s"    ;;!qrz   c                :   U R                   b%  U R                  U R                   :X  a  [        S5      eU R                  (       aC  U R                  R	                  5       nUR                  5       (       a  MB  UR                  S 5        g U =R                  S-  sl        g )Nz!semaphore released too many timesr   )r  r  r   r  r  r   r   r  s     r{   r  Semaphore.release(  sk    ??&4;;$//+I@AAmm--'')C}}NN4 qrz   c                    U R                   $ r   )r  r   s    r{   rw  Semaphore.value6  rT  rz   c                    U R                   $ r   )r  r   s    r{   r  Semaphore.max_value:  s    rz   c                >    [        [        U R                  5      5      $ r   )rK   r  r  r   s    r{   r  Semaphore.statistics>  s    "3t}}#566rz   )r  r  r  r  r  r  r   rc   )r  r  r  r  r  r  r   r[  r\  )r   rK   )rr   rs   rt   ru   r  r2  r   r  r  r  r  rw  r  r  ry   r  r  s   @r{   rM   rM     s    CI !%"## 	#
 # 
# !%"== 	=
 = =>    7 7rz   rM   c                     \ rS rSrSrSS jrSS jrSS jr        SS jr\	SS j5       r
\
R                  SS j5       r
\	SS	 j5       r\	SS
 j5       rSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSrg)rE   iB  )
_borrowers_total_tokens_wait_queuec                ,    [         R                  U 5      $ r   r0  r4  total_tokenss     r{   r2  CapacityLimiter.__new__E  r6  rz   c                Z    SU l         [        5       U l        [        5       U l        Xl        g rp  )r  r  r  r   r  r  )r   r  s     r{   r   CapacityLimiter.__init__H  s#    $%$'E<GM(rz   c                @   #    U R                  5       I S h  vN   g  N7fr   )r  r   s    r{   r  CapacityLimiter.__aenter__N  s     llns   c                ,   #    U R                  5         g 7fr   )r  r   s       r{   r  CapacityLimiter.__aexit__Q  s      	s   c                    U R                   $ r   )r  r   s    r{   r  CapacityLimiter.total_tokensY  s    !!!rz   c                   [        U[        5      (       d&  [        R                  " U5      (       d  [	        S5      eUS:  a  [        S5      eXl        U R                  (       a  [        U R                  5      U R                  :  a~  U R                  R                  SS9u  p#U R                  R                  U5        UR                  5         U R                  (       a&  [        U R                  5      U R                  :  a  M|  g g g g )Nz'total_tokens must be an int or math.infr   ztotal_tokens must be >= 0Flast)r  r  rW  isinfr  r   r  r  r  r  popitemr<  r  )r   rw  borrowerevents       r{   r  r  ]  s    %%%djj.?.?EFF19899" 3t#7$:L:L#L"..66E6BOHOO)IIK 3t#7$:L:L#L#Lrz   c                ,    [        U R                  5      $ r   )r  r  r   s    r{   borrowed_tokensCapacityLimiter.borrowed_tokensn  s    4??##rz   c                F    U R                   [        U R                  5      -
  $ r   )r  r  r  r   s    r{   available_tokens CapacityLimiter.available_tokensr  s    !!C$888rz   c                    U R                   (       ak  [        U R                  5      U R                  :  aG  U R                   R	                  SS9u  pU R                  R                  U5        UR                  5         ggg)z3Hand a free token to the next task in line, if any.Fr  N)r  r  r  r  r  r<  r  r   r  r  s      r{   _notify_next_waiter#CapacityLimiter._notify_next_waiterv  s`    DOO 4t7I7I I"..66E6BOHOO)IIK !Jrz   c                6    U R                  [        5       5        g r   )acquire_on_behalf_of_nowaitr   r   s    r{   r  CapacityLimiter.acquire_nowait}  s    ((8rz   c                    XR                   ;   a  [        S5      eU R                  (       d#  [        U R                   5      U R                  :  a  [
        eU R                   R                  U5        g )NzEthis borrower is already holding one of this CapacityLimiter's tokens)r  r   r  r  r  rA   r<  r   r  s     r{   r  +CapacityLimiter.acquire_on_behalf_of_nowait  sU    &W  s4??3t7I7IIH%rz   c                P   #    U R                  [        5       5      I S h  vN $  N7fr   )acquire_on_behalf_ofr   r   s    r{   r  CapacityLimiter.acquire  s     ..|~>>>>   &$&c                X  #    [         R                  5       I S h  vN    U R                  U5         [         R                  5       I S h  vN   g  N4 N! [         a    U R                  5         e f = f! [         a    [        R                  " 5       nX R                  U'    UR                  5       I S h  vN     g ! [         a^    U R                  R                  US 5        UR                  5       (       a+  U R                  R                  U5        U R                  5         e f = ff = f7fr   )r  r%  r  r  r  r  rA   r
  rG   r  r   r  r  r  r=  r  r  s      r{   r  $CapacityLimiter.acquire_on_behalf_of  s     44666	,,X6$??AAA# 	7" B    	MMOE).X&jjl""    $$Xt4<<>>OO++H5,,.	sn   D*AD*A2 A 	A
A D*A A//D*2-D' B;3B64B;9D*;A(D##D''D*c                6    U R                  [        5       5        g r   )release_on_behalf_ofr   r   s    r{   r  CapacityLimiter.release  s    !!,.1rz   c                     U R                   R                  U5        U R	                  5         g ! [         a    [        S5      S ef = f)Nz@this borrower isn't holding any of this CapacityLimiter's tokens)r  rH  r>  r   r  r  s     r{   r  $CapacityLimiter.release_on_behalf_of  sK    	OO""8, 	  "  	R	s	   . Ac                    [        U R                  U R                  [        U R                  5      [        U R                  5      5      $ r   )r4   r  r  tupler  r  r  r   s    r{   r  CapacityLimiter.statistics  s;    (  $//"  !	
 	
rz   )r  r  r  r  N)r  ru  r   rc   )r  ru  r   r   r  r  r[  )r  r1  r   r   )r   r4   )rr   rs   rt   ru   r  r2  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  ry   rq   rz   r{   rE   rE   B  s    <I#), & %	
 
 " "    $ $ 9 99	&?.2#
rz   rE   _default_thread_limiterzRunVar[CapacityLimiter]c                  `    \ rS rSrS
S jrSS jrSS jr        SS jrSS jrSS jr	Sr
g	)_SignalReceiveri  c                    Xl         [        5       U l        [        5       U l        [
        R                  " 5       U l        [        5       U l	        g r   )
_signalsr	   r   r   _signal_queuer
  r   r  r  _handled_signals)r   signalss     r{   r   _SignalReceiver.__init__  s3    %'
-2W'.~~'7.1erz   c                    U R                   R                  U5        U R                  R                  5       (       d  U R                  R	                  S 5        g g r   )r   r  r  r   r   )r   r   s     r{   _deliver_SignalReceiver._deliver  s@    !!&)||  ""LL##D) #rz   c                    [        U R                  5       HD  nU R                  R                  XR                  U5        U R
                  R                  U5        MF     U $ r   )r  r  r   add_signal_handlerr  r  r<  )r   sigs     r{   r   _SignalReceiver.__enter__  sH    t}}%CJJ))#}}cB!!%%c* & rz   c                `    U R                    H  nU R                  R                  U5        M      g r   )r  r   remove_signal_handler)r   r   r   r   r	  s        r{   r   _SignalReceiver.__exit__  s&     ((CJJ,,S1 )rz   c                    U $ r   rq   r   s    r{   	__aiter___SignalReceiver.__aiter__  s    rz   c                   #    [         R                  5       I S h  vN   U R                  (       d.  [        R                  " 5       U l        U R
                  I S h  vN   U R                  R                  5       $  N] N 7fr   )r  r  r   r
  r   r  r  r   s    r{   	__anext___SignalReceiver.__anext__  sZ     '')))!!">>+DL,,!!))++ 	* s!   A<A8>A<A:A<:A<)r  r  r   r   r  N)r  ztuple[Signals, ...])r   r%   r   r   r   r   )r   r  )r   r%   )rr   rs   rt   ru   r   r  r   r   r  r  ry   rq   rz   r{   r  r    sF    4*
2,2 &2 %	2
 
2,rz   r  c                  6   ^  \ rS rSrSU 4S jjrSS jrSrU =r$ )r  i  c                  > [         R                  U5      nUc  S nOUR                  nUR                  5       nUc   S5       e[        TU ]  [        U5      X1R                  5       U5        [        R                  " U5      U l
        g )Nz&created TaskInfo from a completed Task)r  r  r  r  r  r   ro  get_nameweakrefrefr  )r   r   rC  r  r   r  s        r{   r   AsyncIOTaskInfo.__init__  sq    !%%d+
I",,I}}I!IID9mmotD[[&
rz   c                ^   U R                  5       =n(       d  gUR                  (       dH  [        UR                  [        R
                  5      (       a   UR                  R                  5       (       a  g[        R                  U5      =n(       a  UR                  =n(       a  UR                  $ g)NFT)r  r]  r  r^  r
  r   r   r  r  r  rR  )r   r   rC  r  s       r{   has_pending_cancellation(AsyncIOTaskInfo.has_pending_cancellation  s    

$$t''88  **,,%))$//:/)666|6#:::rz   )r  )r   r   r  )rr   rs   rt   ru   r   r  ry   r  r  s   @r{   r  r    s    
' rz   r  c                  
   \ rS rSr% S\S'   SSSS.       SS jjrSS jr        SS	 jrSS
 jrSS jr	      SS jr
SS jr    SS jr        SS jr      SS jr      SS jr      SS jrSrg) 
TestRunneri	  zBMemoryObjectSendStream[tuple[Awaitable[Any], asyncio.Future[Any]]]_send_streamNF)r   
use_uvloopr   c                   U(       a8  Uc5  [         R                  S:w  a  SS KnUR                  nOSS KnUR                  n[        XS9U l        / U l        S U l        g )Nwin32r   r~   )	r8  platformuvloopr   winlooprb   _runnerr  _runner_task)r   r   r   r   r$  r%  s         r{   r   TestRunner.__init__	  sP     ,.||w&%44&55EE0215rz   c                    U R                   R                  5         U R                  5       R                  U R                  5        U $ r   )r&  r   r   set_exception_handler_exception_handlerr   s    r{   r   TestRunner.__enter__(	  s1     --d.E.EFrz   c                <    U R                   R                  XU5        g r   )r&  r   r   s       r{   r   TestRunner.__exit__-	  s     	h8rz   c                6    U R                   R                  5       $ r   )r&  r   r   s    r{   r   TestRunner.get_loop5	  s    ||$$&&rz   c                P     [         R                  " 5         g! [         a     gf = frQ  )r
  r	   r   r   s    r{   
is_runningTestRunner.is_running8	  s(    	$$& 		s    
%%c                    [        UR                  S5      [        5      (       a  U R                  R	                  US   5        g UR                  U5        g )Nr   )r  r  r   r  r  default_exception_handler)r   r   r   s      r{   r+  TestRunner._exception_handler?	  sA     gkk+.	::##GK$89**73rz   c                    U R                   (       a;  U R                   / sol         [        U5      S:X  a  US   eU(       a  [        SU5      eg g )Nr   r   z6Multiple exceptions occurred in asynchronous callbacks)r  r  rj   )r   rh   s     r{   _raise_async_exceptions"TestRunner._raise_async_exceptionsG	  sS    +/+;+;R(J(:!# m#(Lj  	 rz   c           	     P  #    SSK Jn  U   U R                     U  S h  vN u  p4 UI S h  vN nUR                  5       (       d  UR	                  U5        M>  M@   N; N0! [
         a4  nUR                  5       (       d  UR                  " UR                  6   e S nAf[         aI  nUR                  5       (       d  UR                  U5        [        U[        U45      (       d  e  S nAM  S nAff = f
 S S S 5        O! , (       d  f       O= fS S S 5        g ! , (       d  f       g = f7fNr   )OutcomeException)_pytest.outcomesr<  r  r   r   r   r   r   r  r   r  r   )r   receive_streamr<  r   r   retvalr  s          r{   _run_tests_and_fixtures"TestRunner._run_tests_and_fixturesR	  s      	6T..&4 2ld2#'ZF "++--))&1 .2'% !++--sxx0$ !++--,,S1%cI7G+HII J	 '5 /..^^^s   	D&DC;C1A
C1C;AA
A*C;C1A
C.	)/B	C.	%>C)	#C;)C.	.C;2	D;
D		D	D&
D#D&c                 #    U R                   (       dl  [        [        [        [           [
        R                  4      " S5      u  U l        nU R                  5       R                  U R                  U5      5      U l         U" U0 UD6nU R                  5       R                  5       nU R                  R                  XV45        UI S h  vN $  N7fr)  )r'  rC   r  r   r-   r
  r   r  r   r   r@  r   send_nowait)r   r  r   r  r>  r   r   s          r{   _call_in_runner_taskTestRunner._call_in_runner_taskm	  s        0Kingnn4511-D~ !% ; ;,,^<!D T$V$+/==?+H+H+J%%tn5||s   CCCCc              #    #    U" S0 UD6nU R                  5       R                  U R                  UR                  S 5      5      nU R	                  5         Uv    U R                  5       R                  U R                  UR                  S 5      5        U R                  5       R                  UR                  5       5        [        S5      e! [         a    U R	                  5          g f = f7f)Nz$Async generator fixture did not stoprq   )r   r   rD  asendr8  r  r   StopAsyncIteration)r   fixture_funcr  asyncgenfixturevalues        r{   run_asyncgen_fixtureTestRunner.run_asyncgen_fixture	  s     
  )&)!%!C!C%%hnnd;"
 	$$&	GMMO..))(..$? MMO..x/@AEFF	 " 	+((*	+s*   AC*9C
 8C*
C'$C*&C''C*c                    U R                  5       R                  U R                  " U40 UD65      nU R                  5         U$ r   )r   r   rD  r8  )r   rI  r  r?  s       r{   run_fixtureTestRunner.run_fixture	  s@    
 33%%l=f=
 	$$&rz   c                t   SSK Jn   U R                  5       R                  U R                  " U40 UD65        U R                  5         g ! [
         a%  nU R                  R                  U5         S nAN;S nAfU a    e [         a    U R                  b  U R                  R                  5       (       d  U R                  R                  5         U R                  R                  5          U R                  5       R                  U R                  5        O! [         a     Of = fS U l	        e ! S U l	        f = fe f = fr;  )r=  r<  r   r   rD  r   r  r  r  r'  r   r   r  r   r   r8  )r   	test_funcr  r<  r  s        r{   run_testTestRunner.run_test	  s    	6	MMO..)))>v>* 	$$&%  	)##C(( 	 	   ,T5F5F5K5K5M5M!!((*!!'')-MMO66t7H7HI%  )-D% )-D%	sN   0A	 	
D7A33A3D7')DD)
DD)DD)!D7)	D22D7)r  r&  r'  r  )r   r   r   r  r   r   r   r   r   r   r   r  )r   r  r   dict[str, Any]r   r   r   )r>  zOMemoryObjectReceiveStream[tuple[Awaitable[T_Retval], asyncio.Future[T_Retval]]]r   r   )r  z Callable[P, Awaitable[T_Retval]]r   zP.argsr  zP.kwargsr   r   )rI  z,Callable[..., AsyncGenerator[T_Retval, Any]]r  rU  r   zIterable[T_Retval])rI  z,Callable[..., Coroutine[Any, Any, T_Retval]]r  rU  r   r   )rR  z'Callable[..., Coroutine[Any, Any, Any]]r  rU  r   r   )rr   rs   rt   ru   r  r   r   r   r   r2  r+  r8  r@  rD  rL  rO  rS  ry   rq   rz   r{   r  r  	  sC   TT
 " ?C6 6 	6
 =6 
6*
9,9 &9 %	9
 
9'4-48F4	4	2
2
 
26. 	
  
(GBG G 
	G.	B	 	 
		'@'JX'	'rz   r  c                  @   ^  \ rS rSrSrSU 4S jjrSU 4S jjrSrU =r$ )_ProcessStreamProtocoli	  z
A subprocess protocol that allows us to be notified of ``process_exited``

asyncio's own ``Process.wait()`` only resolves once every pipe transport has
disconnected so to get same semantics as on trio and uvloop we need this.
c                |   > [         TU ]  S[        R                  " 5       S9  [        R                  " 5       U l        g )Nr  )limitr   )r  r   r
  r	   rG   exitedr   r  s    r{   r   _ProcessStreamProtocol.__init__	  s+    u7+C+C+EFmmorz   c                V   > [         TU ]  5         U R                  R                  5         g r   )r  process_exitedrZ  r  r[  s    r{   r^  %_ProcessStreamProtocol.process_exited	  s     rz   )rZ  r   )	rr   rs   rt   ru   r  r   r^  ry   r  r  s   @r{   rW  rW  	  s    &
 rz   rW  c                     \ rS rSr\          S6S j5       r\S7S j5       r\S8S j5       r\S9S j5       r\S:S j5       r	\S:S j5       r
\S:S j5       r\S;S	 j5       r\\R                  S
S.     S<S jj5       r\S8S j5       r\S=S j5       r\S>S j5       r\S?S j5       r\SS
S.       S@S jj5       r\SAS j5       r\  SB         SCS jj5       r\S:S j5       r\        SDS j5       r\        SES j5       r\            SFS j5       r\SGS j5       r\ SH       SIS jj5       r\SJS j5       r\SKS j5       r\SKS j5       r\          SLS j5       r \      SMS  j5       r!\S!S!S!S!S".             SNS# jj5       r"\ SO     SPS$ jj5       r#\SQS% j5       r$\SQS& j5       r%\SQS' j5       r&\SKS( j5       r'\SRS) j5       r(\SSS* j5       r)\STS+ j5       r*\SUS, j5       r+\SVS- j5       r,\    SWS. j5       r-\SXS/ j5       r.\    SYS0 j5       r/\SZS1 j5       r0\S[S2 j5       r1\S:S3 j5       r2\S\S4 j5       r3S5r4g)]r  i	  c                  ^^ [        T5      S	UU4S jj5       nUR                  SS 5      nUR                  SS 5      nUcL  UR                  SS5      (       a5  [        R                  S:w  a  SS KnUR
                  nOSS Kn	U	R
                  n[        XgS9 n
U
R                  U" 5       5      sS S S 5        $ ! , (       d  f       g = f)
Nc                    >#    [        [        R                  [        5       5      n U R	                  [        T5      5        [        S S 5      [        U '    T" T6 I S h  vN [        U 	 $  N! [        U 	 f = f7fr   )r1   r
  r  r   set_namerW   r?  r  )r   r   r  s    r{   wrapper#AsyncIOBackend.run.<locals>.wrapper	  s`     ln5DMM+D12!*4!6L'!4[( & ) &s0   AA6A* A(A*  A6(A* *	A33A6r   r   r   Fr"  r   r~   )r   r   )	r   r  r8  r#  r$  r   r%  rb   r   )r4  r  r   r  optionsrd  r   r   r$  r%  runners    ``        r{   r   AsyncIOBackend.run	  s     
t	' 
	' GT*{{>48GKKe$D$D||w&%44&55%;v::gi( <;;s   B66
Cc                    [        5       $ r   )r	   r  s    r{   current_tokenAsyncIOBackend.current_token	  s    !!rz   c                2    [        5       R                  5       $ r   )r	   rY  r  s    r{   r  AsyncIOBackend.current_time	  s    !&&((rz   c                    [         $ r   )r   r  s    r{   cancelled_exception_class(AsyncIOBackend.cancelled_exception_class	  s    rz   c                6   #    [        S5      I S h  vN   g  N7frp  r
   r  s    r{   r  AsyncIOBackend.checkpoint
  s     Ah   c                  #    [        5       nUc  g  [        U   R                  nU(       aM  UR                  (       a  [        S5      I S h  vN   OUR                  (       a  g UR                  nU(       a  ML  g g ! [         a     g f = f N>7frp  )r   r  r  r>  r_  r
   r.  r  )r4  r   r  s      r{   r%  &AsyncIOBackend.checkpoint_if_cancelled
  sy     ~<	'-::L ))Ah$$+99 l  		
 s9   BA: &BB
*B8B:
BBBBc                |   #    [        SS9   [        S5      I S h  vN   S S S 5        g  N! , (       d  f       g = f7f)NTr  r   )rO   r
   r  s    r{   r  )AsyncIOBackend.cancel_shielded_checkpoint
  s+     %(NN &% &%s    
<+)+	<+
9<c                6   #    [        U5      I S h  vN   g  N7fr   rr  )r4  delays     r{   r
   AsyncIOBackend.sleep
  s     Elrt  Fr,  c                   [        XS9$ )Nr,  rN   r3  s      r{   create_cancel_scope"AsyncIOBackend.create_cancel_scope"
  s     H<<rz   c                   [        5       =nc  [        R                  $  [        U   R                  n[        R                  nU(       ac  [        X2R                  5      nUR                  (       a  [        R                  * n U$ UR                  (       a   U$ UR                  nU(       a  Mc  U$ ! [
         a    [        R                  s $ f = fr   )r   rW  rX  r  r  r>  minr-  r"  r.  r  )r4  r   r  r-  s       r{   current_effective_deadline)AsyncIOBackend.current_effective_deadline(
  s     N"D+88O	'-::L 888%:%:;H** HH9  $$   ,99 l   	88O	s   B. .C
Cc                    [        5       $ r   )r  r  s    r{   create_task_group AsyncIOBackend.create_task_group?
  s
    {rz   c                    [        5       $ r   rF   r  s    r{   create_eventAsyncIOBackend.create_eventC
  s	    wrz   c                   [        US9$ )Nr  rH   r  s     r{   create_lockAsyncIOBackend.create_lockG
  s    ..rz   Nr  c                   [        XUS9$ )Nr  rL   r  s       r{   create_semaphoreAsyncIOBackend.create_semaphoreK
  s     ,WWrz   c                    [        U5      $ r   rD   r  s     r{   create_capacity_limiter&AsyncIOBackend.create_capacity_limiterU
  s    |,,rz   c           	     P  #    U R                  5       I S h  vN    [        R                  5       n[        R                  5       nU=(       d    U R                  5        IS h  vN   [        U(       + S9 n[        R                  [           " 5       n[        5       n	U(       dP  [        XU5      n
U
R                  5         UR                  U
5        U	R!                  U
R"                  [%        5       S9  OUR'                  5       n
U R)                  5       nU(       ar  XS   R*                  -
  [        R,                  :  a  ONUR/                  5       nUR0                  R3                  UR"                  5        UR#                  5         U(       a  Mr  [5        5       nUR7                  [8        S 5        U(       d  UR:                  c  UnOUR:                  nU
R<                  R?                  XX(U45        UI S h  vN sS S S 5        sS S S 5      IS h  vN   $  GN! [         aB    [        5       n[        5       n[        R                  U5        [        R                  U5         GNf = f GN Ns N\! , (       d  f       O= fS S S 5      IS h  vN    g ! , IS h  vN  (       d  f       g = f7f)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  remove_done_callbackr   r   r:   r  r  r  )r4  r  r   abandon_on_cancellimiterr  r  re  r   r  workernowexpired_workerr   worker_scopes                  r{   run_sync_in_worker_thread(AsyncIOBackend.run_sync_in_worker_threadY
  s     nn	-3779L)--/G Bc@@BBB(9$9:e 13*,	#))lKFLLNKK'//WY/O)--/F **,C&q/"<"<<*889 ")5)=)=)?&00EE*// '++- ', '.5t<$(;(;(C#(L#(#6#6L''l(ST#|G ;: CBB 	  	- 7LeG$((6##G,		- CH $I C:: CBBBBBs   J&HJ&(H J&!I""J&%J4DI)A&I)1I%2I)5	J>J&
I'J&AIJ&IJ&%I)'J&)
I7	3J:J&JJ&J#JJ#J&c                    [         R                  nUbM  UR                  (       a  [        S[	        U5      S 35      eUR
                  (       a  g UR                  nUb  ML  g g )Nr  rn  )r;   r  r_  r   ro  r.  r  )r4  re  s     r{   check_cancelledAsyncIOBackend.check_cancelled
  sR    $0$E$E""$'B2e9Q-%PQQ||''E rz   c                v  ^^^ SUUU4S jjn[        SU=(       d    [        R                  R                  5      nUR	                  5       (       a  [
        e[        5       nUR                  [        S5        [        [        SS 5      mUR                  [        R                  U" 5       US9nUR                  5       $ )Nc                   >#    Sn TbP  [        [        R                  [        5       5      n[	        S T5      [
        U'   TR                  R                  U5         T" T6 I S h  vN Tb  TR                  R                  W5        $ $  N#! [         a.  n[        R                  R                  [        U5      5      S eS nAff = f! Tb  TR                  R                  W5        f f = f7fr  )r1   r
  r  r   r?  r  r*  r<  r=  r   
concurrentfuturesr  )__tracebackhide__r   r  r   r  re  s      r{   task_wrapper:AsyncIOBackend.run_async_from_thread.<locals>.task_wrapper
  s      $ GLL,.9%.tU%;T"  &/!4[( $LL((. %	 )! L ((77CAtKL $LL((. %sH   AC'B "B#B & C'B 
C )B;;C  C !C$$C'r   r
  r  )r   )r   r   )r1   r;   rj  native_tokenr  r@   r   r   r:   r   r
  run_coroutine_threadsafer  )	r4  r  r   tokenr  r   r   r  re  s	    ``     @r{   run_async_from_thread$AsyncIOBackend.run_async_from_thread
  s    	/ 	/ !Q,*D*D*Q*Q
 >>"".-y9&<dC-4[[,,ln4 .9 .
 xxzrz   c                  ^^^ [        T5      SUUU4S jj5       n[        SU=(       d    [        R                  R                  5      nUR                  5       (       a  [        e[        5       mUR                  U5        TR                  5       $ )Nc                    >  [        S5        TR                  T" T6 5        g ! [         a1  n TR                  U 5        [	        U [
        5      (       d  e  S n A g S n A ff = f)Nr
  )r:   r   r  r   r  r   )r  r   r  r  s    r{   rd  4AsyncIOBackend.run_sync_from_thread.<locals>.wrapper
  sQ    ))4T4[)  $!#y11 2s   # 
A'AAr   r   )
r   r1   r;   rj  r  r  r@   r   r   r  )r4  r  r   r  rd  r   r  s    ``   @r{   run_sync_from_thread#AsyncIOBackend.run_sync_from_thread
  sx     
t	 	 
	 !Q,*D*D*Q*Q
 >>""17!!'*xxzrz   c                  #    U R                  5       I S h  vN   [        U[        5      (       a  [        R                  " U5      n[
        R                  " 5       n[        U[        [        45      (       a'  UR                  " [        U4UUUS.UD6I S h  vN u  pxO(UR                  " [        /UQ7UUUS.UD6I S h  vN u  px[
        R                  R                  XxU5      n	U	R                  (       a  [        U	R                  5      OS n
U	R                   (       a  [#        U	R                   5      OS nU	R$                  (       a  [#        U	R$                  5      OS n[        U	U
UUUR&                  U5      $  GNa N N7f)N)rR  rV  rY  )r  r  r#   osfspathr
  r	   r  r  subprocess_shellrW  subprocess_exec
subprocessr4  rR  r   rV  r  rY  rZ  )r4  commandrR  rV  rY  r  r   rt  r  rd  stdin_streamstdout_streamstderr_streams                r{   open_processAsyncIOBackend.open_process
  s`     nngx((ii(G
 '')gU|,,(,(=(=&) ) ) #Ix )-(<(<&)) ) ) #I $$,,Y$G=D]]*7==9PT?F~~+GNN;SW?F~~+GNN;SWOO
 	
? 	##s5   E>E7A>E>E:(E>>E<?B9E>:E><E>c                x    [        [        U5      SS9  [        5       R                  [	        [
        U5      5        g )Nz AnyIO process pool shutdown taskr  )r   rg  r  r	  r   re  )r4  r  s     r{   #setup_process_pool_exit_at_shutdown2AsyncIOBackend.setup_process_pool_exit_at_shutdown  s3    *733	
 	**;WE	
rz   c           
        #    [        [        [        R                  [        4   [        5       R                  [        XUS9I S h  vN 5      u  pEUR                  5         [        XE5      $  N%7f)N)
local_addr)	r1   r  r
  rq  ri  r	   create_connectionr  r  )r4  hostportlocal_addressrt  r  s         r{   connect_tcpAsyncIOBackend.connect_tcp  sg      #'##^34"$66} 7  
	 	!I00s   AA,A*
&A,c                  ^^#    U R                  5       I S h  vN   [        5       m[        R                  " [        R                  5      mTR	                  S5          TR                  U5        [        T5      $  Na! [         aV    [        R                  " 5       nTR                  TUR                  S 5        UR                  UU4S j5        UI S h  vN     O[         a    TR                  5         e f = fM  7f)NFc                &   > TR                  T5      $ r   r  r=  r   r  s    r{   r   -AsyncIOBackend.connect_unix.<locals>.<lambda>3  s    d.@.@.Lrz   )r  r	   r  AF_UNIXr?  connectr  r  r
  r   r  r   r	  r  r   )r4  pathr  r   r  s      @@r{   connect_unixAsyncIOBackend.connect_unix'  s     nn!]]6>>2
u%4""4( (
33! 	 # $+NN$4
ALL$?##$LM    " sA   C;A:AC;A< /C;<AC6CC6C;C66C;c                    [        U5      $ r   )r  r4  socks     r{   create_tcp_listener"AsyncIOBackend.create_tcp_listener;  s     &&rz   c                    [        U5      $ r   )r7  r  s     r{   create_unix_listener#AsyncIOBackend.create_unix_listener?  s    !$''rz   c                   #    [        5       R                  [        UUUUS9I S h  vN u  pVUR                  (       a  UR	                  5         UR                  eU(       d  [        XV5      $ [        XV5      $  NP7f)N)r  remote_addrfamily
reuse_port)r	   create_datagram_endpointr  r   r   rF  r\  )r4  r  r  remote_addressr  rt  r  s          r{   create_udp_socket AsyncIOBackend.create_udp_socketC  sv      %5$6$O$O$&! %P %
 
	 OO$$$Y11%i::
s   #A8A6AA8c                  ^^#    U R                  5       I S h  vN   [        5       mU(       a    TR                  U5        [        T5      $ [        T5      $  N>! [         aV    [
        R                  " 5       nTR                  TUR                  S 5        UR                  UU4S j5        UI S h  vN     O[         a    TR                  5         e f = fM  7f)Nc                &   > TR                  T5      $ r   r  r  s    r{   r   <AsyncIOBackend.create_unix_datagram_socket.<locals>.<lambda>i  s    $2D2DZ2Prz   )r  r	   r  rw  r  r
  r   r  r   r	  r  r   rj  )r4  r  remote_pathr  r   s    `  @r{   create_unix_datagram_socket*AsyncIOBackend.create_unix_datagram_socket[  s      nn!C&&{3 7zBB%j11% 	 ' (/(8AOOJdC''(PQGG$ $$& s?   CACA CAC0B31C6C8CCr   r  r  protoflagsc          	     P   #    [        5       R                  XX4XVS9I S h  vN $  N7f)Nr  )r	   getaddrinfo)r4  r  r  r  r  r  r  s          r{   r  AsyncIOBackend.getaddrinfos  s3     & &'33v 4 
 
 	
 
r  c                P   #    [        5       R                  X5      I S h  vN $  N7fr   )r	   getnameinfo)r4  sockaddrr  s      r{   r  AsyncIOBackend.getnameinfo  s!      &'33HDDDDr  c                  ^^^	^
#     [         R                  5       m	[	        U[
        5      (       a  UOUR                  5       mT	R                  T5      (       a  [        S5      e[        5       nUR                  5       mSUUU	U
4S jjn UR                  TU5        UR                  m
TT	T'    TI S h  vN n T	T	 T
" T5        U(       d  [         eg ! [         a    0 m	[         R                  T	5         Nf = f! [         a.    SSKJn  U" 5       nUR                  TU5        UR                  m
 Nf = f N! [         a     N~f = f!  T	T	 T
" T5        f ! [         a     f f = f= f7f)Nr  c                    >  TT 	 T" T 5         TR                  S5        g ! [          a     Nf = f! [        R                   a     g f = fr  r>  r   r
  r  )r  r  r|  r  s   r{   r  (AsyncIOBackend.wait_readable.<locals>.cb  sW    "O b!t$   ,,    ! 1 
..AAr   get_selectorr   )r}  r  r  r  r  r  r  r=   r	   r   r  r  r`  $anyio._core._asyncio_selector_threadr  r>  r>   )r4  objr   r  r  selectorsuccessr  r  r|  r  s          @@@@r{   wait_readableAsyncIOBackend.wait_readable  sc    	*&**,K
 sC((Scjjl??2#N33!$($6$6$8	 			/OOB# !..MB	"iG"O b!%% ]  	*K[)	*4 # 	3I#~HB'$22M	3    "O b!     E'C A-E'
C9 E'.E 3D44E 9D6 <E'!C63E'5C66E'95D1.E'0D11E'4E 6
E E'EE'E$E	E$
E!E$ E!!E$$E'c                  ^^^	^
#     [         R                  5       m
[	        U[
        5      (       a  UOUR                  5       mT
R                  T5      (       a  [        S5      e[        5       nUR                  5       mSUUU	U
4S jjn UR                  TU5        UR                  m	TT
T'    TI S h  vN n T
T	 T	" T5        U(       d  [         eg ! [         a    0 m
[         R                  T
5         Nf = f! [         a.    SSKJn  U" 5       nUR                  TU5        UR                  m	 Nf = f N! [         a     N~f = f!  T
T	 T	" T5        f ! [         a     f f = f= f7f)Nr  c                    >  TT 	 T" T 5         TR                  S5        g ! [          a     Nf = f! [        R                   a     g f = fr  r  )r  r  r  r~  s   r{   r  (AsyncIOBackend.wait_writable.<locals>.cb  sX    " $ b!t$   ,, r  r   r  r   )r  r  r  r  r  r  r  r=   r	   r   r  r  r`  r  r  r>  r>   )r4  r  r   r  r  r  r  r  r  r  r~  s          @@@@r{   wait_writableAsyncIOBackend.wait_writable  sh    	,(,,.L
 sC((ScjjlB#L11!$($6$6$8	 			/OOB# !..MR	"iG" $ b!%% ]  	,Ll+	,4 # 	3I#~HB'$22M	3    " $ b!  r   c                *   [        U[        5      (       a  UOUR                  5       n[        5       n [        R                  5       n UR                  U5      n UR                  S5         UR                  U5         [         R                  5       n UR                  U5      n UR                  S5         UR#                  U5        g ! [        R                   a     Ntf = f! [         a    SSKJn  U" 5       R                  U5         Nf = f! [         a     Nf = f! [         a     Nf = f! [        R                   a     Nf = f! [         a    SSKJn  U" 5       R#                  U5         g f = f! [         a     g f = f! [         a     g f = f)NFr   r  )r  r  r  r	   r  r  r  r   r
  r  r  r`  r  r  r>  r  r}  r  )r4  r  r  r   r~  r  r  r|  s           r{   notify_closingAsyncIOBackend.notify_closing  s   sC((Scjjl!	5(,,.L5"&&r*NN5)5&&r*	5&**,K5!oob)NN5)5&&r*5 00 
 + 5Q N0045    		@ 00 
 + 5Q N0045    		s   D D C	 ,C# >F E5 %D/ 7E	 	C C #&DD
DD
D,+D,/EE	&E21E25
FF
FFc                   #    [        [        S5      (       a)  UR                  [        R                  :X  a  [	        U5      $ [        U5      $ 7f)Nr  )r   r  r  r  r7  r  r  s     r{   wrap_listener_socket#AsyncIOBackend.wrap_listener_socket+  s7     69%%$++*G%d++ &&s   A
Ac                p   #    [        5       R                  [        US9I S h  vN u  p#[        X#5      $  N7fN)r  )r	   r  ri  r  r4  r  rt  r  s       r{   wrap_stream_socket!AsyncIOBackend.wrap_stream_socket2  s=     $4$6$H$H %I %
 
	 I00
    646c                    #    [        U5      $ 7fr   )r  r  s     r{   wrap_unix_stream_socket&AsyncIOBackend.wrap_unix_stream_socket9  s     %%   c                p   #    [        5       R                  [        US9I S h  vN u  p#[        X#5      $  N7fr  )r	   r  r  rF  r  s       r{   wrap_udp_socketAsyncIOBackend.wrap_udp_socket=  s=     $4$6$O$O4 %P %
 
	 --
r  c                p   #    [        5       R                  [        US9I S h  vN u  p#[        X#5      $  N7fr  )r	   r  r  r\  r  s       r{   wrap_connected_udp_socket(AsyncIOBackend.wrap_connected_udp_socketD  s=     $4$6$O$O4 %P %
 
	 ")66
r  c                    #    [        U5      $ 7fr   )rj  r  s     r{   wrap_unix_datagram_socket(AsyncIOBackend.wrap_unix_datagram_socketK  s     !$''r  c                    #    [        U5      $ 7fr   )rw  r  s     r{   #wrap_connected_unix_datagram_socket2AsyncIOBackend.wrap_connected_unix_datagram_socketO  s      +400r  c                     [         R                  5       $ ! [         a%    [        S5      n[         R	                  U5        Us $ f = f)N(   )r  r  r  rE   r  )r4  r  s     r{   r  -AsyncIOBackend.current_default_thread_limiterU  sB    	*..00 	%b)G#''0N	s    ,AAc                    [        U5      $ r   )r  )r4  r  s     r{   open_signal_receiver#AsyncIOBackend.open_signal_receiver^  s     w''rz   c                (    [        [        5       5      $ r   )r  r   r  s    r{   get_current_taskAsyncIOBackend.get_current_taskd  s    |~..rz   c                    [        5        Vs/ s H$  oR                  5       (       a  M  [        U5      PM&     sn$ s  snf r   )r   r   r  )r4  r   s     r{   get_running_tasks AsyncIOBackend.get_running_tasksh  s*    2;+Q+$YY[%%+QQQs   ;;c                   #    U R                  5       I S h  vN   [        5       n [        5        HB  nX!L a  M	  UR                  nUb  UR	                  5       (       d  M/  [        S5      I S h  vN     O   g MS   Nb N7f)Ng?)r  r   r   r^  r   r
   )r4  	this_taskr   rd  s       r{   wait_all_tasks_blocked%AsyncIOBackend.wait_all_tasks_blockedl  sr     nn N	!$))>V[[]]*$$ $   	 %s(   A=A9AA=A=-A;.A=;A=c                    [        S0 UD6$ )Nrq   )r  )r4  rf  s     r{   create_test_runner!AsyncIOBackend.create_test_runner|  s    $G$$rz   rq   )
r  z1Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]]r   tuple[Unpack[PosArgsT]]r  rU  rf  rU  r   r   )r   r1  r  )r   ztype[BaseException]r   )rz  ru  r   r   )r-  ru  r.  r  r   rO   )r   zabc.TaskGroup)r   	BaseEvent)r  r  r   BaseLock)r  r  r  r  r  r  r   BaseSemaphore)r  ru  r   BaseCapacityLimiter)FN)
r  &Callable[[Unpack[PosArgsT]], T_Retval]r   r5  r  r  r  zBaseCapacityLimiter | Noner   r   )r  r  r   r5  r  r1  r   r   )r  r:  r   r5  r  r1  r   r   )r  z)StrOrBytesPath | Sequence[StrOrBytesPath]rR  int | IO[Any] | NonerV  r;  rY  r;  r  r-   r   r4  r  zset[abc.Process]r   r   r   )r  r  r  r  r  IPSockAddrType | Noner   r5  )r  zstr | bytesr   zabc.UNIXSocketStream)r  r  r   rS   )
r  r&   r  r=  r  r=  r  r  r   zUDPSocket | ConnectedUDPSocket)r  r  r  zstr | bytes | Noner   z8abc.UNIXDatagramSocket | abc.ConnectedUNIXDatagramSocket)r  zbytes | str | Noner  zstr | int | Noner  zint | AddressFamilyr  zint | SocketKindr  r  r  r  r   zuSequence[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]]])r   )r  rR   r  r  r   ztuple[str, str])r  r[   r   r   )r  r  r   r  )r  r  r   r  )r  r  r   rF  )r  r  r   r\  )r  r  r   rj  )r  r  r   rw  )r   rE   )r  r%   r   z.AbstractContextManager[AsyncIterator[Signals]])r   r7   )r   zSequence[TaskInfo])rf  rU  r   r  )5rr   rs   rt   ru   classmethodr   rj  r  ro  r  r%  r  r
   rW  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,  r0  r3  ry   rq   rz   r{   r  r  	  s   )?) &) 	)
  ) 
) )B " " ) )     : :$     "&((5==48=	= =
  ,     / / 
 !%"XX 	X
 X 
X X - - 
 #(.28$48$ &8$  	8$
 ,8$ 
8$ 8$t 	( 	(  E  &  	 
 
   D 4 & 	
 
 4 /
:/
 $	/

 %/
 %/
 /
 
/
 /
b 
 
 JN
1
1!
12G
1	
1 
1 4 4& ' ' ( ( ;; -; .	;
 ; 
(; ;. 2&25G2	A2 2.  '(!"
 
 

 $
 
 
 


 
, 45E%E.1E	E E
 2& 2&h 2& 2&h .5 .5` ' ' 1 1 & & . . 7 7 ( ( 1 1	$1 1
   ((	7( (
 / / R R   % %rz   r  )r   r   r   r   )r   r   )r   r   r   r  )r  r   r   r  )r  zset[Process]r  r1  r   r   r<  )
__future__r   r  r
  concurrent.futuresr  rW  r  r  r8  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   r   dataclassesr   r   	functoolsr   r   inspectr   r    r!   ior"   r#   r  r$   r   r%   r&   r'   r(   typesr)   r*   typingr+   r,   r-   r.   r/   r0   r1   r2    r4   r5   r6   r7   r8   _core._eventloopr9   r:   r;   _core._exceptionsr<   r=   r>   r?   r@   rA   _core._socketsrB   _core._streamsrC   _core._synchronizationrE   r9  rG   r6  rI   r7  rJ   rK   rM   r8  _core._tasksrO   BaseCancelScoperP   rQ   rR   rS   rT   rU   
abc._tasksrV   rW   rX   lowlevelrY   rZ   	_typeshedr[   abc._eventloopr\   streams.memoryr]   r^   r1  r9  rb   rc   rd   re   enumrf   rg   rh   ri   exceptiongrouprj   typing_extensionsEnumrl   r   r   r   r   r   r   r   r   r  r  r  r  r?  r  
TaskStatusr  eager_task_factoryr  r  r  r  r  _Retval_Queue_Typer  r	  r
  ByteReceiveStreamr  ByteSendStreamr   r4  re  rg  Protocolri  r  r  r  r  r  r7  rF  r\  rj  rw  r}  r  r  r  r  r  r  SubprocessStreamProtocolrW  r  backend_classrq   rz   r{   <module>rd     s   "     	  
     7 *	 	 	 & 7 - ( $ 
     ,  )   &  
  3 8 8 5 @ 9 %  N M (,/RRw11==1<< 
~& ~&@,, :v&:T2
#cN/5l/C
, C%PE&N7/ N7l

) 
) <M;N8 N81 8< w070J0J0S0SoS#{# {#D 8d?MD,@@A R6 Rj 9?9 5  288M1N . N e*#// * *$ e*#,, * *< eCckk C CL<<"(<	<2#4#W%% #Lw// DU$3## U$p+3 +3\t;(<(< t;n9!** 9!x"!++ "!J/. /.d1-// 1-h!#*@*@ !H!/33R3R !H 9?}8M5 M9?9O6 O:I :2QL8 QLhU7 U7pv
) v
r 4::S3T 0 T&, &,\h >n' n'bW//HH $k
%\ k
%\ rz   