
    ՟ff                    H   U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
mZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZm Z  d dlm!Z! d dl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z) d dl*Z+d dl,Z+d dl-m.Z.m/Z/m0Z0 d dl,m1Z1m2Z2m3Z3m4Z4 d dl5m6Z7 d dl8m9Z9 ddl:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@ ddlAmBZB ddlCmDZDmEZEmFZFmGZG ddlHmIZI ddlJmKZK ddlLmMZN ddlLmOZP ddlLmQZR ddlLmSZSmTZT ddlLmUZV ddlWmXZY ddl@mZZZm[Z[m\Z\ ddl]m^Z^m_Z_ dd l`maZa ej                  d!k\  rd d"l"mcZc nd d"ldmcZc ej                  d#k\  r	d d$l"meZemfZf nd d%lgmhZh d d$ldmeZemfZf  e'd&      Zi e'd'      Zj e'd(ekeZ      Zl eed)      Zm ecd*      Zne+j                  j                  Zp G d+ d,eY      ZX G d- d.e@j                        Zq G d/ d0e@j                        Zr ed12       G d3 d4e@j                               Zt ed12       G d5 d6e@j                               Zv ed12       G d7 d8e@j                               Zw G d9 d:e+j                  j                        Zy epd;      Zzd<e{d;<   dad=Z| G d> d?e%el         Z} G d@ dAe}e@j                        Z~ G dB dCe~e@j                        Z G dD dEe}e@j                         Z G dF dGe}e@j                         Z G dH dIe}eZ   e@j                        Z G dJ dKe}eZ   e@j                        Z G dL dMe}ek   e@j
                        Z G dN dOe}ek   e@j                        Z G dP dQeP      ZO G dR dSeR      ZQ G dT dUeV      ZU G dV dWeN      ZM epdX      Zd<e{dX<    G dY dZ      Z G d[ d\e@j                        Z G d] d^e>      Z G d_ d`e^      ZeZy)b    )annotationsN)AsyncGeneratorAsyncIterator	AwaitableCallable
Collection	CoroutineIterableSequence)Future)AbstractContextManager)	dataclass)partial)IOBase)PathLike)Signals)AddressFamily
SocketKind)TracebackType)IOAnyGenericNoReturnTypeVarcastoverload)ErrorOutcomeValue)current_root_taskcurrent_taskwait_readablewait_writable)
SocketType)run_sync   )CapacityLimiterStatisticsEventStatisticsLockStatisticsTaskInfo
WouldBlockabc)claim_worker_thread)BrokenResourceErrorBusyResourceErrorClosedResourceErrorEndOfStream)convert_ipv6_sockaddr)create_memory_object_streamCapacityLimiterEventLock)ResourceGuardSemaphoreStatistics	SemaphoreCancelScope)IPSockAddrTypeUDPPacketTypeUNIXDatagramPacketType)AsyncBackendStrOrBytesPath)MemoryObjectSendStream)   
   )	ParamSpec)rF      )TypeVarTupleUnpack)BaseExceptionGroupTT_Retval
T_SockAddrPosArgsTPc                      e Zd Z	 d	 	 	 	 	 ddZdddZddZ	 	 	 	 	 	 	 	 ddZddZedd       Z	e	j                  dd       Z	edd	       Zedd
       Zedd       Zej                  dd       Zy)r?   Nc                ,    t         j                  |       S Nobject__new__)clsoriginalkwargss      P/var/www/cvtools/html/venv/lib/python3.12/site-packages/anyio/_backends/_trio.pyrW   zCancelScope.__new__r   s     ~~c""    c                @    |xs t        j                  di || _        y N )trior?   _CancelScope__original)selfrY   rZ   s      r[   __init__zCancelScope.__init__w   s    "@d&6&6&@&@r\   c                :    | j                   j                          | S rT   )ra   	__enter__rb   s    r[   re   zCancelScope.__enter__z   s    !!#r\   c                <    | j                   j                  |||      S rT   )ra   __exit__rb   exc_typeexc_valexc_tbs       r[   rh   zCancelScope.__exit__~   s     '''6BBr\   c                8    | j                   j                          y rT   )ra   cancelrf   s    r[   rn   zCancelScope.cancel   s     r\   c                .    | j                   j                  S rT   ra   deadlinerf   s    r[   rq   zCancelScope.deadline   s    '''r\   c                &    || j                   _        y rT   rp   rb   values     r[   rq   zCancelScope.deadline   s    #( r\   c                .    | j                   j                  S rT   )ra   cancel_calledrf   s    r[   rv   zCancelScope.cancel_called   s    ,,,r\   c                .    | j                   j                  S rT   )ra   cancelled_caughtrf   s    r[   rx   zCancelScope.cancelled_caught       ///r\   c                .    | j                   j                  S rT   ra   shieldrf   s    r[   r|   zCancelScope.shield   s    %%%r\   c                &    || j                   _        y rT   r{   rs   s     r[   r|   zCancelScope.shield   s    !&r\   rT   )rY   trio.CancelScope | NonerZ   rV   returnr?   )rY   r~   rZ   r   r   None)r   r?   rj   type[BaseException] | Nonerk   BaseException | Nonerl   TracebackType | Noner   zbool | Noner   r   r   floatrt   r   r   r   r   bool)rt   r   r   r   )__name__
__module____qualname__rW   rc   re   rh   rn   propertyrq   setterrv   rx   r|   r_   r\   r[   r?   r?   q   s    15#.#AG#	#
AC,C &C %	C
 
C! ( ( __) ) - - 0 0 & & ]]' 'r\   r?   c                  l    e Zd ZddZd	dZ	 	 	 	 	 	 	 	 d
dZdd	 	 	 	 	 	 	 ddZdd	 	 	 	 	 	 	 ddZy)	TaskGroupc                V    d| _         t        j                  d      | _        d | _        y )NFT)strict_exception_groups)_activer`   open_nursery_nursery_managercancel_scoperf   s    r[   rc   zTaskGroup.__init__   s$     $ 1 1$ O r\   c                   K   d| _         | j                  j                          d {   | _        t	        | j                  j
                        | _        | S 7 /w)NT)r   r   
__aenter___nurseryr?   r   rf   s    r[   r   zTaskGroup.__aenter__   sH     "33>>@@'(B(BC As   %AA0Ac                .  K   	 | j                   j                  |||       d {   d| _        S 7 # t        $ rK}|j	                  t
        j                        \  }}|s!t
        j                  j                         }|| d }~ww xY w# d| _        w xY wwNF)r   	__aexit__r   rL   splitr`   	Cancelled_create)rb   rj   rk   rl   exc_restcancelled_excs           r[   r   zTaskGroup.__aexit__   s     
	!..887FSS !DL T! 	ii/GAt $ 6 6 8#,	 !DLs=   B 2 02 B2 	BABBB	 		BBNnamec               r    | j                   st        d       | j                  j                  |g|d|i y Nz;This task group is not active; no new tasks can be started.r   )r   RuntimeErrorr   
start_soonrb   funcr   argss       r[   r   zTaskGroup.start_soon   s;     ||M  	!  8848r\   c                  K   | j                   st        d       | j                  j                  |g|d|i d {   S 7 wr   )r   r   r   startr   s       r[   r   zTaskGroup.start   sH      ||M  )T]]((@@4@@@@s   ;AAAr   )r   r   r   )r   z,Callable[[Unpack[PosArgsT]], Awaitable[Any]]r   zUnpack[PosArgsT]r   rV   r   r   )r   zCallable[..., Awaitable[Any]]r   rV   r   rV   r   r   )r   r   r   rc   r   r   r   r   r_   r\   r[   r   r      s    !
!,! &! %	!
 
!, 	9:9  9 	9
 
9 RVA1A:@AHNA	Ar\   r   c                  H     e Zd ZddZd fdZ	 	 	 	 	 	 	 	 	 	 	 	 ddZ xZS )BlockingPortalc                ,    t         j                  |       S rT   rU   rX   s    r[   rW   zBlockingPortal.__new__       ~~c""r\   c                h    t         |           t        j                  j	                         | _        y rT   )superrc   r`   lowlevelcurrent_trio_token_tokenrb   	__class__s    r[   rc   zBlockingPortal.__init__   s"    mm668r\   c           	         t         j                  j                  t        | j                  j
                  |      | j                  ||||| j                         y )Nr   )
trio_token)r`   from_threadr%   r   _task_groupr   
_call_funcr   )rb   r   r   rZ   r   futures         r[   _spawn_task_from_threadz&BlockingPortal._spawn_task_from_thread   sM     	!!D$$//d;OO{{ 	" 	
r\   )r   r   r   )r   z<Callable[[Unpack[PosArgsT]], Awaitable[T_Retval] | T_Retval]r   tuple[Unpack[PosArgsT]]rZ   dict[str, Any]r   rV   r   zFuture[T_Retval]r   r   )r   r   r   rW   rc   r   __classcell__r   s   @r[   r   r      sL    #9
J
 &
 	

 
 !
 

r\   r   F)eqc                  *    e Zd ZU ded<   dddZddZy)	ReceiveStreamWrapperztrio.abc.ReceiveStream_streamNc                  K   	 | j                   j                  |       d {   }|r|S t        7 # t        j                  $ r}t        |j                  d }~wt        j
                  $ r}t
        |j                  d }~ww xY wwrT   )r   receive_somer`   r0   	__cause__r.   r1   rb   	max_bytesdatar   s       r[   receivezReceiveStreamWrapper.receive  ss     	9229==D K >'' 	9%3==8'' 	9%3==8	9s=   B3 13 
B3 BAB-A>>BBc                T   K   | j                   j                          d {    y 7 wrT   r   acloserf   s    r[   r   zReceiveStreamWrapper.aclose       ll!!###   (&(rT   )r   
int | Noner   bytesr   )r   r   r   __annotations__r   r   r_   r\   r[   r   r     s    ##$r\   r   c                  (    e Zd ZU ded<   ddZddZy)SendStreamWrapperztrio.abc.SendStreamr   c                   K   	 | j                   j                  |       d {    y 7 # t        j                  $ r}t        |j                  d }~wt        j
                  $ r}t
        |j                  d }~ww xY wwrT   )r   send_allr`   r0   r   r.   rb   itemr   s      r[   sendzSendStreamWrapper.send  s_     	9,,''---'' 	9%3==8'' 	9%3==8	9s<   A=* (* A=* A:AA:$A55A::A=c                T   K   | j                   j                          d {    y 7 wrT   r   rf   s    r[   r   zSendStreamWrapper.aclose$  r   r   Nr   r   r   r   r   )r   r   r   r   r   r   r_   r\   r[   r   r     s      9$r\   r   c                      e Zd ZU ded<   ded<   ded<   ded<   ddZdd	Zdd
ZddZddZe	dd       Z
e	dd       Ze	dd       Ze	dd       Ze	dd       Zy)Processztrio.Process_processabc.ByteSendStream | None_stdinabc.ByteReceiveStream | None_stdout_stderrc                T  K   t        d      5  | j                  r"| j                  j                          d {    | j                  r"| j                  j                          d {    | j                  r"| j                  j                          d {    d d d        	 | j                          d {    y 7 7 V7 *# 1 sw Y   )xY w7 # t        $ rL | j                          t        d      5  | j                          d {  7   d d d         # 1 sw Y    xY ww xY wwNT)r|   )r?   r   r   r   r   waitBaseExceptionkillrf   s    r[   r   zProcess.aclose/  s     % 	,{{kk((***||ll))+++||ll))+++	,	))+ +++	, 	,  	IIKD) "iik!!""		s   D(*CB<-C'B>(-CC CD(#C 6C7C ;D(<C>C CCD(C %D%5D	D
D	D%D!	D%%D(c                R   K   | j                   j                          d {   S 7 wrT   )r   r   rf   s    r[   r   zProcess.wait@  s     ]]''))))   '%'c                8    | j                   j                          y rT   )r   	terminaterf   s    r[   r   zProcess.terminateC  s    !r\   c                8    | j                   j                          y rT   )r   r   rf   s    r[   r   zProcess.killF  s    r\   c                :    | j                   j                  |       y rT   )r   send_signal)rb   signals     r[   r   zProcess.send_signalI  s    !!&)r\   c                .    | j                   j                  S rT   )r   pidrf   s    r[   r   zProcess.pidL  s    }}   r\   c                .    | j                   j                  S rT   )r   
returncoderf   s    r[   r   zProcess.returncodeP  s    }}'''r\   c                    | j                   S rT   )r   rf   s    r[   stdinzProcess.stdinT  s    {{r\   c                    | j                   S rT   )r   rf   s    r[   stdoutzProcess.stdoutX      ||r\   c                    | j                   S rT   )r   rf   s    r[   stderrzProcess.stderr\  r   r\   Nr   r   int)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   (  s    %%))))"*"* ! ! ( (      r\   r   c                        e Zd Zd fdZ xZS )_ProcessPoolShutdownInstrumentc                "    t         |           y rT   )r   	after_runr   s    r[   r	  z(_ProcessPoolShutdownInstrument.after_runb  s    r\   r   )r   r   r   r	  r   r   s   @r[   r  r  a  s     r\   r  &current_default_worker_process_limiterztrio.lowlevel.RunVarc                h  K   	 t        j                  t        j                         d {    y 7 # t         j                  $ rj | D ]  }|j
                  |j                          ! t        d      5  | D ]  }|j                          d {  7    	 d d d        Y y # 1 sw Y   Y y xY ww xY wwr   )	r`   sleepmathinfr   r   r   r?   r   )workersprocesss     r[   _shutdown_process_poolr  k  s     	'jj""">> ' 	G!!)	 % 	'" 'nn&&&'	' 	' 	''sa   B2&2 02 B22 $B/B/5B!B
B!B/B2!B+	&B/)B2+B//B2c                  >    e Zd ZddZddZed	d       ZddZd
dZy)_TrioSocketMixinc                     || _         d| _        y r   )_trio_socket_closed)rb   trio_sockets     r[   rc   z_TrioSocketMixin.__init__~  s    'r\   c                n    | j                   rt        | j                  j                         dk  rt        y Nr   )r  r0   r  filenor.   rf   s    r[   _check_closedz_TrioSocketMixin._check_closed  s1    <<%%##%)%% *r\   c                .    | j                   j                  S rT   )r  _sockrf   s    r[   _raw_socketz_TrioSocketMixin._raw_socket  s      &&&r\   c                   K   | j                   j                         dk\  r"d| _        | j                   j                          y y w)Nr   T)r  r  r  closerf   s    r[   r   z_TrioSocketMixin.aclose  s;     ##%*DL##% +s   AAc                    t        |t        j                        rt        || j                  j	                         dk  r| j
                  rt        d t        |t              rt        ||r  )
isinstancer`   r0   r  r  r  OSErrorr.   rb   r   s     r[   _convert_socket_errorz&_TrioSocketMixin._convert_socket_error  sV    c4334%3.%%'!+%4/W%%3.Ir\   Nr  TrioSocketTyper   r   r   )r   socket.socket)r   r   r   r   )	r   r   r   rc   r  r   r  r   r%  r_   r\   r[   r  r  }  s*    & ' '&
r\   r  c                  :     e Zd Zd fdZdddZddZd	dZ xZS )
SocketStreamc                d    t         |   |       t        d      | _        t        d      | _        y Nreading from
writing tor   rc   r:   _receive_guard_send_guardrb   r  r   s     r[   rc   zSocketStream.__init__  *    %+N;(6r\   c                   K   | j                   5  	 | j                  j                  |       d {   }r|cd d d        S t
        7 # t        $ r}| j	                  |       Y d }~4d }~ww xY w# 1 sw Y   y xY wwrT   )r0  r  recvr   r%  r1   r   s       r[   r   zSocketStream.receive  s|        		"0!..33I>> 		" 		" "! ?  0**3//0		" 		"sY   A<A0A	AA	A0
A<A0A			A-A(#A0(A--A00A95A<c                  K   | j                   5  t        |      }|r,	 | j                  j                  |       d {   }|d  }|r,d d d        y 7 # t        $ r}| j                  |       Y d }~2d }~ww xY w# 1 sw Y   y xY wwrT   )r1  
memoryviewr  r   r   r%  )rb   r   view
bytes_sentr   s        r[   r   zSocketStream.send  s      	)d#D4'+'8'8'='=d'C!CJ JK( 	) 	) "D$ 4..s334	) 	)sU   BA;AAAA;		BA	A8A3.A;3A88A;;B Bc                ^   K   | j                   j                  t        j                         y wrT   )r  shutdownsocketSHUT_WRrf   s    r[   send_eofzSocketStream.send_eof  s     ""6>>2s   +-r&  )   )r   r  r   r   r   r   )r   r   r   rc   r   r   r>  r   r   s   @r[   r*  r*    s    7

"	)3r\   r*  c                      e Zd ZddZddZy)UNIXSocketStreamc           	     X  K   t        |t              r|dk  rt        d      t        |t              r|dk  rt        d      t        j                  d      }t        j
                  j                          d {    | j                  5  	 	 | j                  j                  |t        j                  ||j                  z               d {   \  }}}}|s|st        	 d d d        D ]v  \  }	}
}|	t        j                   k7  s|
t        j"                  k7  rt%        dd|	 d|
       |j'                  |d t)        |      t)        |      |j                  z  z
          x t+        |      fS 7 7 # t        $ r}| j                  |       Y d }~nd }~ww xY w# 1 sw Y   xY ww)	Nr   z%msglen must be a non-negative integer   z!maxfds must be a positive integeriz.Received unexpected ancillary data; message = z, cmsg_level = z, cmsg_type = )r"  r  
ValueErrorarrayr`   r   
checkpointr0  r  recvmsgr<  CMSG_LENitemsizer1   r   r%  
SOL_SOCKET
SCM_RIGHTSr   	frombyteslenlist)rb   msglenmaxfdsfdsmessageancdataflagsaddrr   
cmsg_level	cmsg_type	cmsg_datas               r[   receive_fdszUNIXSocketStream.receive_fds  s    &#&&1*DEE&#&&1*@AAkk#mm&&(((   	
:>:K:K:S:S0E F; 51GWeT #7))	 18 	Y,J	9V...)v?P?P2P"DWK P$$.<~i[J 
 MM)$Vc)nI8U&VWX	Y S	!!1 	)5 % 4..s334 	 	sg   A7F*9E1:F*
F?E5E3	E5
F!BF*3E55	F>FFFFF'#F*c                  K   |st        d      |st        d      g }|D ]T  }t        |t              r|j                  |       %t        |t              s6|j                  |j                                V t        j                  d|      }t        j                  j                          d {    | j                  5  	 	 | j                  j                  |gt        j                  t        j                  |fg       d {    	 d d d        y 7 b7 # t         $ r}| j#                  |       Y d }~nd }~ww xY w|# 1 sw Y   y xY ww)Nzmessage must not be emptyzfds must not be emptyrD  )rE  r"  r  appendr   r  rF  r`   r   rG  r1  r  sendmsgr<  rK  rL  r   r%  )rb   rS  rR  filenosfdfdarrayr   s          r[   send_fdszUNIXSocketStream.send_fds  s8    899455 	,B"c"r"B'ryy{+		, ++c7+mm&&((( 	44++33 	 !' 1 1 & 1 1 '	 	 	 	4 	4 	)	 % 4..s334 	4 	4sh   AE
AE
/D0E
 D>A DDD	
E
D	D:D50D>5D::D>>EE
N)rP  r  rQ  r  r   ztuple[bytes, list[int]])rS  r   rR  zCollection[int | IOBase]r   r   )r   r   r   rZ  ra  r_   r\   r[   rA  rA    s    "B4r\   rA  c                  (     e Zd Zd fdZddZ xZS )TCPSocketListenerc                ~    t         |   t        j                  j	                  |             t        d      | _        y Nzaccepting connections fromr   rc   r`   r<  from_stdlib_socketr:   _accept_guardrb   
raw_socketr   s     r[   rc   zTCPSocketListener.__init__  -    77
CD*+GHr\   c                ^  K   | j                   5  	 | j                  j                          d {   \  }}d d d        j                  t        j                  t        j                  d       t        |      S 7 I# t        $ r}| j	                  |       Y d }~cd }~ww xY w# 1 sw Y   lxY wwNrC  )
rh  r  acceptr   r%  
setsockoptr<  IPPROTO_TCPTCP_NODELAYr*  rb   r  _addrr   s       r[   rn  zTCPSocketListener.accept  s      	00+/+<+<+C+C+E%E"U	0 	v1163E3EqIK(( &F  0**3//0	0 	0sO   B-B!A:A8A:AB-8A::	BBB!BB!!B*&B-rj  r(  )r   r*  r   r   r   rc   rn  r   r   s   @r[   rc  rc     s    I)r\   rc  c                  (     e Zd Zd fdZddZ xZS )UNIXSocketListenerc                ~    t         |   t        j                  j	                  |             t        d      | _        y re  rf  ri  s     r[   rc   zUNIXSocketListener.__init__  rk  r\   c                  K   | j                   5  	 | j                  j                          d {   \  }}d d d        t              S 7 # t        $ r}| j	                  |       Y d }~4d }~ww xY w# 1 sw Y   t              S xY wwrT   )rh  r  rn  r   r%  rA  rr  s       r[   rn  zUNIXSocketListener.accept  s      	00+/+<+<+C+C+E%E"U	0  ,,	 &F  0**3//0	0  ,,sN   BA2AA	AB	A	A/A*%A2*A//A22B7Brt  )r   rA  ru  r   s   @r[   rw  rw    s    I-r\   rw  c                  0     e Zd Zd fdZddZddZ xZS )	UDPSocketc                d    t         |   |       t        d      | _        t        d      | _        y r,  r/  r2  s     r[   rc   zUDPSocket.__init__   r3  r\   c                  K   | j                   5  	 | j                  j                  d       d {   \  }}|t        |      fcd d d        S 7 # t        $ r}| j                  |       Y d }~nd }~ww xY w	 d d d        y # 1 sw Y   y xY wwNr?  )r0  r  recvfromr2   r   r%  rb   r   rV  r   s       r[   r   zUDPSocket.receive%  s        	00#'#4#4#=#=e#DD
d2488	0 	0D  0**3//0/	0 	0 	0sU   BB AAA
BA	A3A.)B .A33B 7	B B	Bc                   K   | j                   5  	  | j                  j                  |  d {    d d d        y 7 # t        $ r}| j	                  |       Y d }~*d }~ww xY w# 1 sw Y   y xY wwrT   r1  r  sendtor   r%  r   s      r[   r   zUDPSocket.send-  m      	00.d''..555	0 	05  0**3//0	0 	0H   A0A$=;=	A0=	A!AA$A!!A$$A-)A0r&  )r   ztuple[bytes, IPSockAddrType])r   rA   r   r   r   r   r   rc   r   r   r   r   s   @r[   r{  r{        7
00r\   r{  c                  0     e Zd Zd fdZddZddZ xZS )ConnectedUDPSocketc                d    t         |   |       t        d      | _        t        d      | _        y r,  r/  r2  s     r[   rc   zConnectedUDPSocket.__init__6  r3  r\   c                   K   | j                   5  	 | j                  j                  d       d {   cd d d        S 7 # t        $ r}| j	                  |       Y d }~nd }~ww xY w	 d d d        y # 1 sw Y   y xY wwr~  r0  r  r5  r   r%  r$  s     r[   r   zConnectedUDPSocket.receive;  p        	00!..33E::	0 	0:  0**3//0/		0 	0 	0N   A<A0?=?
A<?	A#AA0A##A0'	A<0A95A<c                   K   | j                   5  	 | j                  j                  |       d {    d d d        y 7 # t        $ r}| j	                  |       Y d }~*d }~ww xY w# 1 sw Y   y xY wwrT   r1  r  r   r   r%  r   s      r[   r   zConnectedUDPSocket.sendB  k      	00'',,T222	0 	02  0**3//0	0 	0H   A2A&?=?	A2?	A#AA&A##A&&A/+A2r&  r   r   r   r  r   s   @r[   r  r  5  s    7
00r\   r  c                  0     e Zd Zd fdZddZddZ xZS )UNIXDatagramSocketc                d    t         |   |       t        d      | _        t        d      | _        y r,  r/  r2  s     r[   rc   zUNIXDatagramSocket.__init__K  r3  r\   c                
  K   | j                   5  	 | j                  j                  d       d {   \  }}||fcd d d        S 7 # t        $ r}| j	                  |       Y d }~nd }~ww xY w	 d d d        y # 1 sw Y   y xY wwr~  )r0  r  r  r   r%  r  s       r[   r   zUNIXDatagramSocket.receiveP  s}        	00#'#4#4#=#=e#DD
dTz	0 	0D  0**3//0/	0 	0 	0sT   BA7AA
A
BA	A*A% A7%A**A7.	B7B <Bc                   K   | j                   5  	  | j                  j                  |  d {    d d d        y 7 # t        $ r}| j	                  |       Y d }~*d }~ww xY w# 1 sw Y   y xY wwrT   r  r   s      r[   r   zUNIXDatagramSocket.sendX  r  r  r&  )r   rB   )r   rB   r   r   r  r   s   @r[   r  r  J  r  r\   r  c                  0     e Zd Zd fdZddZddZ xZS )ConnectedUNIXDatagramSocketc                d    t         |   |       t        d      | _        t        d      | _        y r,  r/  r2  s     r[   rc   z$ConnectedUNIXDatagramSocket.__init__c  r3  r\   c                   K   | j                   5  	 | j                  j                  d       d {   cd d d        S 7 # t        $ r}| j	                  |       Y d }~nd }~ww xY w	 d d d        y # 1 sw Y   y xY wwr~  r  r$  s     r[   r   z#ConnectedUNIXDatagramSocket.receiveh  r  r  c                   K   | j                   5  	 | j                  j                  |       d {    d d d        y 7 # t        $ r}| j	                  |       Y d }~*d }~ww xY w# 1 sw Y   y xY wwrT   r  r   s      r[   r   z ConnectedUNIXDatagramSocket.sendo  r  r  r&  r  r   r  r   s   @r[   r  r  `  s    7
00r\   r  c                  <    e Zd ZddZd	dZd
dZd	dZddZd	dZy)r7   c                ,    t         j                  |       S rT   rU   r   s    r[   rW   zEvent.__new__}  r   r\   c                6    t        j                         | _        y rT   )r`   r7   _Event__originalrf   s    r[   rc   zEvent.__init__  s    **,r\   c                6    | j                   j                         S rT   )r  is_setrf   s    r[   r  zEvent.is_set      %%''r\   c                R   K   | j                   j                          d {   S 7 wrT   )r  r   rf   s    r[   r   z
Event.wait  s     __))++++r   c                b    | j                   j                         }t        |j                        S )N)tasks_waiting)r  
statisticsr(   r  rb   orig_statisticss     r[   r  zEvent.statistics  s%    //446_-J-JKKr\   c                8    | j                   j                          y rT   )r  setrf   s    r[   r  z	Event.set  s    r\   N)r   r7   r   r   )r   r(   )	r   r   r   rW   rc   r  r   r  r  r_   r\   r[   r7   r7   |  s!    #'(,Lr\   r7   c                  P    e Zd ZddddZddddZddZddZddZddZdd	Z	y
)r9   Ffast_acquirec               ,    t         j                  |       S rT   rU   rX   r  s     r[   rW   zLock.__new__  r   r\   c               D    || _         t        j                         | _        y rT   )_fast_acquirer`   r9   _Lock__original)rb   r  s     r[   rc   zLock.__init__  s    )))+r\   c                  K   | j                   s#| j                  j                          d {    y t        j                  j                          d {    	 | j                  j                          y 7 G7 "# t        j                  $ r0 | j                  j                  j                          d {  7   Y y w xY wwrT   )
r  r  acquirer`   r   checkpoint_if_cancelledacquire_nowaitr+   _lotparkrf   s    r[   r  zLock.acquire       !!//))+++ mm33555	.OO**, , 	6  	.//&&++---	.Q   *B>A4&B>A6B>A8 3B>6B>8:B;2B53B;8B>:B;;B>c                v    	 | j                   j                          y # t        j                  $ r t        d w xY wrT   )r  r  r`   r+   rf   s    r[   r  zLock.acquire_nowait  2    	'OO**, 	'$&	'    8c                6    | j                   j                         S rT   )r  lockedrf   s    r[   r  zLock.locked  r  r\   c                8    | j                   j                          y rT   )r  releaserf   s    r[   r  zLock.release      !r\   c                    | j                   j                         }|j                  rt        |j                        nd }t	        |j
                  ||j                        S rT   )r  r  ownerTrioTaskInfor)   r  r  )rb   r  r  s      r[   r  zLock.statistics  sO    //4467F7L7L_223RV""E?+H+H
 	
r\   Nr  r   r   r9   )r  r   r   r   r   r   )r   r)   )
r   r   r   rW   rc   r  r  r  r  r  r_   r\   r[   r9   r9     s-    -2 # 05 &
.'("
r\   r9   c                       e Zd Zddd	 	 	 	 	 	 	 ddZddd	 	 	 	 	 	 	 d fdZddZddZedd       Zedd	       Z	dd
Z
ddZ xZS )r=   NF	max_valuer  c               ,    t         j                  |       S rT   rU   rX   initial_valuer  r  s       r[   rW   zSemaphore.__new__  s     ~~c""r\   c               b    t         |   |||       t        j                  ||      | _        y )Nr  )r  )r   rc   r`   r=   _Semaphore__original)rb   r  r  r  r   s       r[   rc   zSemaphore.__init__  s+     	),W..)Lr\   c                  K   | j                   s#| j                  j                          d {    y t        j                  j                          d {    	 | j                  j                          y 7 G7 "# t        j                  $ r0 | j                  j                  j                          d {  7   Y y w xY wwrT   )
r  r  r  r`   r   r  r  r+   r  r  rf   s    r[   r  zSemaphore.acquire  r  r  c                v    	 | j                   j                          y # t        j                  $ r t        d w xY wrT   )r  r  r`   r+   rf   s    r[   r  zSemaphore.acquire_nowait  r  r  c                .    | j                   j                  S rT   )r  r  rf   s    r[   r  zSemaphore.max_value  s    (((r\   c                .    | j                   j                  S rT   )r  rt   rf   s    r[   rt   zSemaphore.value  s    $$$r\   c                8    | j                   j                          y rT   )r  r  rf   s    r[   r  zSemaphore.release  r  r\   c                `    | j                   j                         }t        |j                        S rT   )r  r  r;   r  r  s     r[   r  zSemaphore.statistics  s%    //446"?#@#@AAr\   )r  r  r  r   r  r   r   r=   )r  r  r  r   r  r   r   r   r   r  r  )r   r;   )r   r   r   rW   rc   r  r  r   r  rt   r  r  r   r   s   @r[   r=   r=     s    
 !%"## 	#
 # 
# !%"MM 	M
 M 
M
.' ) ) % %"Br\   r=   c                      e Zd Z	 ddd	 	 	 	 	 ddZ	 ddd	 	 	 	 	 ddZddZ	 	 	 	 	 	 	 	 ddZedd       Zej                  dd       Zedd	       Z
edd
       ZddZddZddZddZddZddZddZy)r5   NrY   c               ,    t         j                  |       S rT   rU   )rX   total_tokensrY   s      r[   rW   zCapacityLimiter.__new__  s     ~~c""r\   c               T    ||| _         y |J t        j                  |      | _         y rT   )_CapacityLimiter__originalr`   r5   )rb   r  rY   s      r[   rc   zCapacityLimiter.__init__  s/     &DO+++"22<@DOr\   c                R   K   | j                   j                          d {   S 7 wrT   )r  r   rf   s    r[   r   zCapacityLimiter.__aenter__  s     __//1111r   c                Z   K   | j                   j                  |||       d {    y 7 wrT   )r  r   ri   s       r[   r   zCapacityLimiter.__aexit__  s$      oo'''6BBBs   !+)+c                .    | j                   j                  S rT   r  r  rf   s    r[   r  zCapacityLimiter.total_tokens  s    +++r\   c                &    || j                   _        y rT   r  rs   s     r[   r  zCapacityLimiter.total_tokens  s    ',$r\   c                .    | j                   j                  S rT   )r  borrowed_tokensrf   s    r[   r  zCapacityLimiter.borrowed_tokens  s    ...r\   c                .    | j                   j                  S rT   )r  available_tokensrf   s    r[   r  z CapacityLimiter.available_tokens  ry   r\   c                8    | j                   j                          y rT   )r  r  rf   s    r[   r  zCapacityLimiter.acquire_nowait  s    &&(r\   c                :    | j                   j                  |       y rT   )r  acquire_on_behalf_of_nowaitrb   borrowers     r[   r  z+CapacityLimiter.acquire_on_behalf_of_nowait"  s    33H=r\   c                T   K   | j                   j                          d {    y 7 wrT   )r  r  rf   s    r[   r  zCapacityLimiter.acquire%  s     oo%%'''r   c                V   K   | j                   j                  |       d {    y 7 wrT   )r  acquire_on_behalf_ofr  s     r[   r  z$CapacityLimiter.acquire_on_behalf_of(  s     oo228<<<s   )')c                6    | j                   j                         S rT   )r  r  rf   s    r[   r  zCapacityLimiter.release+  s    &&((r\   c                8    | j                   j                  |      S rT   )r  release_on_behalf_ofr  s     r[   r  z$CapacityLimiter.release_on_behalf_of.  s    33H==r\   c                    | j                   j                         }t        |j                  |j                  t        |j                        |j                        S )N)r  r  	borrowersr  )r  r  r'   r  r  tupler  r  )rb   origs     r[   r  zCapacityLimiter.statistics1  sH    ))+( 00**DNN+,,	
 	
r\   rT   )r  float | NonerY   trio.CapacityLimiter | Noner   r5   )r  r  rY   r  r   r   r   )rj   r   rk   r   rl   r   r   r   r   r   r  )r  rV   r   r   )r   r'   )r   r   r   rW   rc   r   r   r   r  r   r  r  r  r  r  r  r  r  r  r_   r\   r[   r5   r5     s    &*# 15	#"# .	#
 
# &*
A 15	
A"
A .	
A
 

A2C,C &C %	C
 
C , , - - / / 0 0)>(=)>
r\   r5   _capacity_limiter_wrapperc                  P    e Zd ZU ded<   d	dZd
dZ	 	 	 	 	 	 	 	 ddZd
dZddZy)_SignalReceiverzAsyncIterator[int]	_iteratorc                    || _         y rT   )_signals)rb   signalss     r[   rc   z_SignalReceiver.__init__F  s	    r\   c                    t        j                  | j                   | _        | j                  j	                         | _        | S rT   )r`   open_signal_receiverr  _cmre   r  rf   s    r[   re   z_SignalReceiver.__enter__I  s1    ,,dmm<++-r\   c                <    | j                   j                  |||      S rT   )r   rh   ri   s       r[   rh   z_SignalReceiver.__exit__N  s     xx  7F;;r\   c                    | S rT   r_   rf   s    r[   	__aiter__z_SignalReceiver.__aiter__V  s    r\   c                h   K   | j                   j                          d {   }t        |      S 7 wrT   )r  	__anext__r   )rb   signums     r[   r  z_SignalReceiver.__anext__Y  s*     ~~//11v 2s   202N)r  ztuple[Signals, ...])r   r  r   )r   r   )	r   r   r   r   rc   re   rh   r  r  r_   r\   r[   r  r  C  sG    !! 
<,< &< %	<
 
<r\   r  c                      e Zd Zd
dZ	 	 	 	 	 	 	 	 ddZddZddZ	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZ		 	 	 	 	 	 ddZ
y	)
TestRunnerc                D    ddl m}  |       | _        d | _        || _        y )Nr   )Queue)queuer
  _call_queue_send_stream_options)rb   optionsr
  s      r[   rc   zTestRunner.__init__d  s    8=;?r\   c                    | j                   rT| j                   j                          | j                   - | j                  j                                 | j                   ,y y y rT   )r  r   r  getri   s       r[   rh   zTestRunner.__exit__k  sU     ##%##/&  $$&( ##/ r\   c                4  K   t        d      \  | _        }|5  |2 3 d {   \  }}	 | d {   }|j                  t        |             27 -7 !# t        $ r$}|j                  t        |             Y d }~^d }~ww xY w6 	 d d d        y # 1 sw Y   y xY wwrm  )r3   r  r\  r   r   r   )rb   receive_streamcorooutcome_holderretvalr   s         r[   _run_tests_and_fixturesz"TestRunner._run_tests_and_fixturesv  s     ,G,J)> 	9.< 9 9*dN9#'ZF #))%-89'$ 6"))%*556 /=	9 	9 	9sn   BBBABBAAABBA	A>A94B9A>>B	BBBc                    d | _         y rT   )r  )rb   outcomes     r[   _main_task_finishedzTestRunner._main_task_finished  s
     r\   c                   | j                   t        j                  j                  | j                  f| j
                  j                  | j                  d| j                   | j                   , | j
                  j                                 | j                   ,g }| j                   j                   ||i ||f       |s" | j
                  j                                 |s"|d   j                         S )N)run_sync_soon_threadsafedone_callbackr   )r  r`   r   start_guest_runr  r  putr  r  r  send_nowaitunwrap)rb   r   r   rZ   r  s        r[   _call_in_runner_taskzTestRunner._call_in_runner_task  s     $MM)),,)-)9)9)=)="66 --	 ##+&  $$&( ##+ )+%%tT'<V'<n&MN "D  "$ ! a ''))r\   c              #     K    |di |}| j                  |j                  d       }| 	 | j                  |j                  d        | j                  |j                         t        d      # t        $ r Y y w xY ww)Nz$Async generator fixture did not stopr_   )r"  asendr   r   StopAsyncIteration)rb   fixture_funcrZ   asyncgenfixturevalues        r[   run_asyncgen_fixturezTestRunner.run_asyncgen_fixture  s~     
  )&)!%!:!:8>>4!P	G%%hnnd; %%hoo6EFF	 " 		s(   )A=A. &A=.	A:7A=9A::A=c                (     | j                   |fi |S rT   r"  )rb   r&  rZ   s      r[   run_fixturezTestRunner.run_fixture  s    
 )t((@@@r\   c                *     | j                   |fi | y rT   r+  )rb   	test_funcrZ   s      r[   run_testzTestRunner.run_test  s     	"!!)6v6r\   N)r  r   r   r   )rj   r   rk   r   rl   ztypes.TracebackType | Noner   r   r   )r  rV   r   r   )r   z Callable[P, Awaitable[T_Retval]]r   zP.argsrZ   zP.kwargsr   rN   )r&  z,Callable[..., AsyncGenerator[T_Retval, Any]]rZ   r   r   zIterable[T_Retval])r&  z,Callable[..., Coroutine[Any, Any, T_Retval]]rZ   r   r   rN   )r.  z'Callable[..., Coroutine[Any, Any, Any]]rZ   r   r   r   )r   r   r   rc   rh   r  r  r"  r)  r,  r/  r_   r\   r[   r  r  c  s     	),	) &	) +		)
 
	)	9!*.* * 	*
 
*.GBG G 
	G$ABA A 
	A7@7JX7	7r\   r  c                  (     e Zd Zd fdZddZ xZS )r  c                   d }|j                   r5|j                   j                  rt        |j                   j                        }t        |   t        |      ||j
                  |j                         t        j                  |      | _	        y rT   )
parent_nurseryparent_taskidr   rc   r   r  weakrefproxy_task)rb   task	parent_idr   s      r[   rc   zTrioTaskInfo.__init__  sd    	4#6#6#B#B4..::;ID9diiC]]4(
r\   c                b    	 | j                   j                  j                  S # t        $ r Y yw xY wr   )r7  _cancel_statuseffectively_cancelledReferenceErrorrf   s    r[   has_pending_cancellationz%TrioTaskInfo.has_pending_cancellation  s1    	::,,BBB 	 	s   " 	..)r8  ztrio.lowlevel.Taskr   )r   r   r   rc   r>  r   r   s   @r[   r  r    s    )r\   r  c                     e Zd Ze	 	 	 	 	 	 	 	 	 	 d/d       Zed0d       Zed1d       Zed2d       Zed3d       Zed3d       Z	ed3d       Z
ed4d       Zeej                  d	d
	 	 	 	 	 d5d       Zed1d       Zed6d       Zed7d       Zed8d       Zedd	d	 	 	 	 	 	 	 d9d       Zed:d       Ze	 	 d;	 	 	 	 	 	 	 	 	 d<d       Zed3d       Ze	 	 	 	 	 	 	 	 d=d       Ze	 	 	 	 	 	 	 	 d>d       Zed?d       Ze	 	 	 	 	 	 	 	 	 	 	 	 d@d       ZedAd       Ze	 dB	 	 	 	 	 	 	 dCd       ZedDd       ZedEd       ZedEd       Ze	 	 	 	 	 	 	 	 	 	 dFd       Z ee!	 	 	 	 	 	 dGd               Z"ee!	 	 	 	 	 	 dHd!              Z"e	 	 	 	 	 	 dId"       Z"ed#d#d#d#d$	 	 	 	 	 	 	 	 	 	 	 	 	 dJd%       Z#e	 dK	 	 	 	 	 dLd&       Z$edMd'       Z%edMd(       Z&edNd)       Z'e	 	 	 	 dOd*       Z(edPd+       Z)edQd,       Z*ed3d-       Z+edRd.       Z,y)STrioBackendc                .    t        j                  |g| S rT   )r`   run)rX   r   r   rZ   r  s        r[   rB  zTrioBackend.run  s     xx$t$$r\   c                >    t         j                  j                         S rT   )r`   r   r   r   s    r[   current_tokenzTrioBackend.current_token  s    }}//11r\   c                *    t        j                         S rT   )r`   current_timer   s    r[   rF  zTrioBackend.current_time  s      ""r\   c                "    t         j                  S rT   )r`   r   r   s    r[   cancelled_exception_classz%TrioBackend.cancelled_exception_class  s    ~~r\   c                \   K   t         j                  j                          d {    y 7 wrT   )r`   r   rG  r   s    r[   rG  zTrioBackend.checkpoint  s     mm&&(((   ",*,c                \   K   t         j                  j                          d {    y 7 wrT   )r`   r   r  r   s    r[   r  z#TrioBackend.checkpoint_if_cancelled  s     mm33555rJ  c                \   K   t         j                  j                          d {    y 7 wrT   )r`   r   cancel_shielded_checkpointr   s    r[   rM  z&TrioBackend.cancel_shielded_checkpoint  s     mm66888rJ  c                J   K   t        j                  |       d {    y 7 wrT   )r`   r  )rX   delays     r[   r  zTrioBackend.sleep  s     jjs   #!#Frq   r|   c                   t        ||      S )NrP  r>   )rX   rq   r|   s      r[   create_cancel_scopezTrioBackend.create_cancel_scope  s     HV<<r\   c                *    t        j                         S rT   )r`   current_effective_deadliner   s    r[   rT  z&TrioBackend.current_effective_deadline  s    ..00r\   c                    t               S rT   )r   r   s    r[   create_task_groupzTrioBackend.create_task_group  s
    {r\   c                    t               S rT   r6   r   s    r[   create_eventzTrioBackend.create_event  s	    wr\   c                   t        |      S )Nr  r8   r  s     r[   create_lockzTrioBackend.create_lock  s    ..r\   Nr  c                   t        |||      S )Nr  r<   r  s       r[   create_semaphorezTrioBackend.create_semaphore	  s     ),WWr\   c                    t        |      S rT   r4   )rX   r  s     r[   create_capacity_limiterz#TrioBackend.create_capacity_limiter  s    |,,r\   c                   K   dfd}t         j                         t        ||t        t        j
                  |             d {   S 7 w)Nc                 Z    t        t              5     cd d d        S # 1 sw Y   y xY wrT   )r-   r@  )r   r   tokens   r[   wrapperz6TrioBackend.run_sync_in_worker_thread.<locals>.wrapper  s)    $[%8 #T{# # #s   !*)abandon_on_cancellimiter)r   rN   )r@  rD  r%   r   r`   r5   )rX   r   r   rc  rd  rb  ra  s    ``   @r[   run_sync_in_worker_threadz%TrioBackend.run_sync_in_worker_thread  sI     	# ))+/--w7
 
 	
 
s   AAAAc                @    t         j                  j                          y rT   )r`   r   check_cancelledr   s    r[   rg  zTrioBackend.check_cancelled*  s    ((*r\   c                B    t        j                  j                  |g| S rT   )r`   r   rB  rX   r   r   ra  s       r[   run_async_from_threadz!TrioBackend.run_async_from_thread.  s      ##D0400r\   c                B    t        j                  j                  |g| S rT   )r`   r   r%   ri  s       r[   run_sync_from_threadz TrioBackend.run_sync_from_thread7  s      ((555r\   c                    t               S rT   )r   r   s    r[   create_blocking_portalz"TrioBackend.create_blocking_portal@  s    r\   c               2  K   dd}t        |t        t        t        f      r4t	        j
                  j                   ||      f|||dd| d {   }nAt	        j
                  j                  |D cg c]
  } ||       c}f|||dd| d {   }|j                  rt        |j                        nd }	|j                  rt        |j                        nd }
|j                  rt        |j                        nd }t        ||	|
|      S 7 c c}w 7 w)Nc                z    t        j                  |       }t        |t              r|S t        j                  |      S rT   )osfspathr"  strfsdecode)r   str_or_bytess     r[   convert_itemz.TrioBackend.open_process.<locals>.convert_itemN  s.    99T?L,,##{{<00r\   T)r   r   r  shellF)r   rD   r   rs  )r"  rs  r   r   r`   r   open_processr   r   r   r   r  r   )rX   commandr   r   r  rZ   rv  r  r   stdin_streamstdout_streamstderr_streams               r[   rx  zTrioBackend.open_processD  s    	1 gUH56 MM66W%  G !MM66078d#8  G <C==(7d@G,W^^<TX@G,W^^<TXwm]KK+ 9s1   ADD"D3DDDA<DDc                L    t         j                  j                  t        |       y rT   )r`   r   spawn_system_taskr  )rX   r  s     r[   #setup_process_pool_exit_at_shutdownz/TrioBackend.setup_process_pool_exit_at_shutdownm  s    ''(>Hr\   c                  K   d|v rt         j                  nt         j                  }t        j                   j                  |      }|j	                  t         j
                  t         j                  d       |r|j                  |       d {    	 |j                  ||f       d {    t        |      S 7 +7 # t        $ r |j                           w xY ww)N:rC  )r<  AF_INET6AF_INETr`   ro  rp  rq  bindconnectr   r   r*  )rX   hostportlocal_addressfamilyr  s         r[   connect_tcpzTrioBackend.connect_tcpq  s      %(4KV^^kk((0v1163E3EqI""=111	%%tTl333
 K(( 2 4 		s<   B	CB7CB; 'B9(B; ,C9B; ;CCc                   K   t         j                  j                  t        j                        }	 |j                  |       d {    t        |      S 7 # t        $ r |j                           w xY wwrT   )r`   r<  AF_UNIXr  r   r   rA  )rX   pathr  s      r[   connect_unixzTrioBackend.connect_unix  sf     kk((8	%%d+++
  ,, , 		s.   .A5A AA 
A5A A22A5c                    t        |      S rT   )rc  rX   socks     r[   create_tcp_listenerzTrioBackend.create_tcp_listener  s     &&r\   c                    t        |      S rT   )rw  r  s     r[   create_unix_listenerz TrioBackend.create_unix_listener  s    !$''r\   c                j  K   t         j                  j                  |t        j                        }|r/|j                  t        j                  t        j
                  d       |r|j                  |       d {    |r$|j                  |       d {    t        |      S t        |      S 7 57 w)N)r  typerC  )
r`   r<  
SOCK_DGRAMro  rK  SO_REUSEPORTr  r  r  r{  )rX   r  r  remote_address
reuse_portr  s         r[   create_udp_socketzTrioBackend.create_udp_socket  s      kk((V=N=N(O""6#4#4f6I6I1M""=111%%n555%k22[)) 2 6s$   A7B39B/:B3B1B31B3c                   K   y wrT   r_   rX   rj  remote_paths      r[   create_unix_datagram_socketz'TrioBackend.create_unix_datagram_socket  s      "%   c                   K   y wrT   r_   r  s      r[   r  z'TrioBackend.create_unix_datagram_socket  s      +.r  c                   K   t         j                  j                  |      }|r$|j                  |       d {    t	        |      S t        |      S 7 wrT   )r`   r<  rg  r  r  r  )rX   rj  r  r  s       r[   r  z'TrioBackend.create_unix_datagram_socket  sN      kk44Z@%%k222.{;;%k22 3s   6AAAr   )r  r  protorU  c               f   K   t         j                  j                  ||||||       d {   S 7 wrT   )r`   r<  getaddrinfo)rX   r  r  r  r  r  rU  s          r[   r  zTrioBackend.getaddrinfo  s-     & [[,,T4ueTTTTs   (1/1c                ^   K   t         j                  j                  ||       d {   S 7 wrT   )r`   r<  getnameinfo)rX   sockaddrrU  s      r[   r  zTrioBackend.getnameinfo  s%      [[,,Xu====s   $-+-c                   K   	 t        |       d {    y 7 # t        j                  $ r)}t               j                  |j                        d d }~wt        j
                  $ r t        d      d w xY ww)Nr-  )r"   r`   r0   with_traceback__traceback__r/   rX   r  r   s      r[   wait_socket_readablez TrioBackend.wait_socket_readable  sf     	>%%%'' 	T%'66s7H7HItS%% 	>#N3=	>0   A7  A7 A4$A#A44A7c                   K   	 t        |       d {    y 7 # t        j                  $ r)}t               j                  |j                        d d }~wt        j
                  $ r t        d      d w xY ww)Nr.  )r#   r`   r0   r  r  r/   r  s      r[   wait_socket_writablez TrioBackend.wait_socket_writable  sf     	<%%%'' 	T%'66s7H7HItS%% 	<#L1t;	<r  c                    	 t         j                         S # t        $ rB t        t        j
                  j                               }t         j                  |       |cY S w xY w)Nr  )r  r  LookupErrorr5   r`   	to_threadcurrent_default_thread_limiterr  )rX   rd  s     r[   r  z*TrioBackend.current_default_thread_limiter  sT    	,0022 	%FFHG &))'2N	s    AA! A!c                    t        |      S rT   )r  )rX   r  s     r[   r  z TrioBackend.open_signal_receiver  s     w''r\   c                ,    t               }t        |      S rT   )r!   r  )rX   r8  s     r[   get_current_taskzTrioBackend.get_current_task  s    ~D!!r\   c                    t               }|sJ t        |      g}|j                  }|rTg }|D ]H  }|j                  D ]7  }|j	                  t        |             |j                  |j                         9 J |}|rT|S rT   )r    r  child_nurserieschild_tasksr\  extend)rX   	root_task
task_infos	nurseriesnew_nurseriesnurseryr8  s          r[   get_running_taskszTrioBackend.get_running_tasks  s    %'	y"9-.
--	02M$ ?#// ?D%%l4&89!(()=)=>??
 &I  r\   c                :   K   ddl m}  |        d {    y 7 w)Nr   )wait_all_tasks_blocked)trio.testingr  )rX   r  s     r[   r  z"TrioBackend.wait_all_tasks_blocked  s     7$&&&s   c                    t        di |S r^   )r  )rX   r  s     r[   create_test_runnerzTrioBackend.create_test_runner  s    $G$$r\   )
r   1Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]]r   r   rZ   r   r  r   r   rN   )r   rV   r   )r   ztype[BaseException]r   )rO  r   r   r   )rq   r   r|   r   r   zabc.CancelScope)r   zabc.TaskGroup)r   z	abc.Eventr  )r  r  r  r   r  r   r   zabc.Semaphore)r  r   r   r5   )FN)
r   &Callable[[Unpack[PosArgsT]], T_Retval]r   r   rc  r   rd  zabc.CapacityLimiter | Noner   rN   )r   r  r   r   ra  rV   r   rN   )r   r  r   r   ra  rV   r   rN   )r   zabc.BlockingPortal)ry  z)StrOrBytesPath | Sequence[StrOrBytesPath]r   int | IO[Any] | Noner   r  r  r  rZ   r   r   r   r  zset[abc.Process]r   r   rT   )r  rs  r  r  r  IPSockAddrType | Noner   r*  )r  str | bytesr   zabc.UNIXSocketStream)r  r(  r   zabc.SocketListener)
r  zsocket.AddressFamilyr  r  r  r  r  r   r   zUDPSocket | ConnectedUDPSocket)rj  r(  r  r   r   zabc.UNIXDatagramSocket)rj  r(  r  r  r   zabc.ConnectedUNIXDatagramSocket)rj  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  rU  r  r   z]list[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int]]])r   )r  r@   rU  r  r   ztuple[str, str])r  r(  r   r   )r   r5   )r  r   r   z.AbstractContextManager[AsyncIterator[Signals]])r   r*   )r   zSequence[TaskInfo])r  r   r   r  )-r   r   r   classmethodrB  rD  rF  rH  rG  r  rM  r  r  r  rR  rT  rV  rX  rZ  r\  r^  re  rg  rj  rl  rn  rx  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r_   r\   r[   r@  r@    s   %?% &% 	%
  % 
% % 2 2 # #   ) ) 6 6 9 9     "&((5==48=	= =
 1 1     / / 
 !%"XX 	X
 X 
X X - - 
 #(.2
4
 &
  	

 ,
 

 
$ + + 1?1 &1 	1
 
1 1 646 &6 	6
 
6 6     &L:&L $	&L
 %&L %&L &L 
&L &LP I I JN))!)2G)	) )" - - ' ' ( ( *$* -* .	*
 * 
(* ** %&%59%	%  % .&.5@.	(.  . 	3&	35G	3	A	3 	3  '(!"U U U
 $U U U U
U U( 45>%>.1>	> >
 > > < <   ((	7( (
 " "    ' '
 % %r\   r@  r  )
__future__r   rF  r  rq  r<  systypesr5  collections.abcr   r   r   r   r   r	   r
   r   concurrent.futuresr   
contextlibr   dataclassesr   	functoolsr   ior   r   r   r   r   r   r   typingr   r   r   r   r   r   r   trio.from_threadr`   trio.lowlevelr  r   r   r   r    r!   r"   r#   trio.socketr$   r'  trio.to_threadr%    r'   r(   r)   r*   r+   r,   _core._eventloopr-   _core._exceptionsr.   r/   r0   r1   _core._socketsr2   _core._streamsr3   _core._synchronizationr5   BaseCapacityLimiterr7   	BaseEventr9   BaseLockr:   r;   r=   BaseSemaphore_core._tasksr?   BaseCancelScoper@   rA   rB   abc._eventlooprC   rD   streams.memoryrE   version_inforH   typing_extensionsrJ   rK   exceptiongrouprL   rM   rN   rs  rO   rP   rQ   r   RunVarr   r   ByteReceiveStreamr   ByteSendStreamr   r   
Instrumentr  r
  r   r  r  r*  rA  SocketListenerrc  rw  r{  r  r  r  r  r  r  r  r@  backend_classr_   r\   r[   <module>r     sg   "   	  
  	 	 	 & - !     ,      ) )  5 #  3  3 8 8 5 @ 9 G G 9 3w +w++16CL:\37

#cN 
		/'/ /'n3A 3Av
S'' 
@ e$300 $ $( e$** $ $ e5ckk 5 5pTXX%8%8 
 @F,@ &(< 

'$wz* >3#S%5%5 3B@4|S%9%9 @4F)(#*<*< ) -)3+=+= -0 0#-- 0,0).93;Q;Q 0*0)#.0F0F 0,0S3::08I *%
8 %
P3B 3BlI
) I
X 399T2U / U @T7 T7n8 $T%, T%n
 r\   