
    +hSu                       U d dl mZ d dlZd dlZd dl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 d dlmZmZmZmZmZmZmZmZmZ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+m,Z, d dl-m.Z/ d dl0m1Z1 ddl2m3Z3m4Z4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z; ddl<m=Z=m>Z>m?Z?m@Z@ ddl<mAZB ddlCmDZD ddlEmFZG ddlEmHZI ddlEmJZJ ddlKmLZM ddl6mNZNmOZO erd dlPmQZQ 	 d dl(mRZS d dlTmUZUmVZV 	 eSj                  Z[ e$d       Z] e$d!e^eN      Z_e(j                  Z`e(j                  j                  Zbe(j                  j                  Zce(j                  Zd G d" d#eM      ZLe(j                  Zfe(j                  j                  Zge(j                  j                  Zhe(j                  j                  Zie(j                  Zje(j                  Zk G d$ d%eBe(j                        ZA G d& d'e6j                        Zmd(dd)	 	 	 	 	 	 	 	 	 d_d*Zn	 	 	 	 	 	 d`d+Zodad,Zp G d- d.e6j                        Zq e
d(/       G d0 d1e6j                               Zs e
d(/       G d2 d3e6j                               Zu e
d(/       G d4 d5e6j                               Zvddd(d6	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dbd7ZZ G d8 d9e(jl                  j                        Zx ecd:      Zyd;ezd:<   dcd<Z{dcd=Z| G d> d?ee_         Z} G d@ dAe}e6j                        Z~ G dB dCe~e6j                        Z G dD dEe}e6j                         Z G dF dGe}e6j                         Z G dH dIe}eN   e6j                        Z G dJ dKe}eN   e6j                        Z	 dd	 	 	 	 	 	 	 dedLZdfdMZ	 	 	 	 	 	 	 	 	 	 dgdNZe(j                  j                  Ze(j                  j                  ZdhdOZdhdPZ G dQ dReI      ZH G dS dTeG      ZF ecdU      Zd;ezdU<   didVZ G dW dXe8dX         ZdjdYZdkdZZdld[Zdmd\Z G d] d^e6j&                        Zy# eW$ r d dl(mXZS d dlYmUZUmVZV Y Gw xY w# e\$ r
 d dl(mZZ[ Y Lw xY w)n    )annotationsN)Future)copy_context)	dataclass)partial)IOBase)PathLike)Signals)TracebackType)IOTYPE_CHECKINGAnyAsyncGeneratorAsyncIterator	AwaitableCallable
Collection	CoroutineGenericIterableMappingNoReturnSequenceTypeVarcast)ErrorOutcomeValue)
SocketType)run_sync   )CapacityLimiterStatisticsEventStatisticsTaskInfoabc)DeprecatedAsyncContextManagerDeprecatedAwaitableclaim_worker_thread)BrokenResourceErrorBusyResourceErrorClosedResourceErrorEndOfStream)ExceptionGroup)convert_ipv6_sockaddr)CapacityLimiter)Event)ResourceGuard)CancelScope)IPSockAddrTypeUDPPacketType)
TaskStatus)lowlevel)wait_readablewait_writable)hazmat)open_processT_Retval
T_SockAddrc                      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j                  dd       Zy)r3   Nc                ,    t         j                  |       S Nobject__new__)clsoriginalkwargss      H/var/www/html/venv/lib/python3.12/site-packages/anyio/_backends/_trio.pyrC   zCancelScope.__new__e   s     ~~c""    c                @    |xs t        j                  di || _        y )N )trior3   _CancelScope__original)selfrE   rF   s      rG   __init__zCancelScope.__init__j   s    "@d&6&6&@&@rH   c                :    | j                   j                          | S r@   )rL   	__enter__rM   s    rG   rP   zCancelScope.__enter__m   s    !!#rH   c                <    | j                   j                  |||      S r@   )rL   __exit__rM   exc_typeexc_valexc_tbs       rG   rS   zCancelScope.__exit__q   s"     ''gv
 	
rH   c                `    | j                   j                          t        | j                        S r@   )rL   cancelr'   rQ   s    rG   rY   zCancelScope.cancel|   s!     "4;;//rH   c                .    | j                   j                  S r@   rL   deadlinerQ   s    rG   r\   zCancelScope.deadline   s    '''rH   c                &    || j                   _        y r@   r[   rM   values     rG   r\   zCancelScope.deadline   s    #( rH   c                .    | j                   j                  S r@   )rL   cancel_calledrQ   s    rG   ra   zCancelScope.cancel_called   s    ,,,rH   c                .    | j                   j                  S r@   rL   shieldrQ   s    rG   rd   zCancelScope.shield   s    %%%rH   c                &    || j                   _        y r@   rc   r^   s     rG   rd   zCancelScope.shield   s    !&rH   r@   )rE   trio.CancelScope | NonerF   rB   returnr3   )rE   rf   rF   r   rg   None)rg   r3   rU   type[BaseException] | NonerV   BaseException | NonerW   TracebackType | Nonerg   zbool | Nonerg   r'   rg   floatr_   ro   rg   rh   rg   bool)r_   rr   rg   rh   )__name__
__module____qualname__rC   rN   rP   rS   rY   propertyr\   setterra   rd   rJ   rH   rG   r3   r3   d   s    15#.#AG#	#
A	
,	
 &	
 %		

 
	
0 ( ( __) ) - - & & ]]' 'rH   r3   c                      e Zd Zy)r.   N)rs   rt   ru   rJ   rH   rG   r.   r.      s    rH   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                R    d| _         t        j                         | _        d | _        y NF)_activerK   open_nursery_nursery_managercancel_scoperQ   s    rG   rN   zTaskGroup.__init__   s"     $ 1 1 3 rH   c                   K   d| _         | j                  j                          d {   | _        t	        | j                  j
                        | _        | S 7 /wNT)r}   r   
__aenter___nurseryr3   r   rQ   s    rG   r   zTaskGroup.__aenter__   sH     "33>>@@'(B(BC As   %AA0Ac                   K   	 | j                   j                  |||       d {   d| _        S 7 # t        j                  $ r}t        |j                        d d }~ww xY w# d| _        w xY wwr|   )r   	__aexit__r}   rK   
MultiErrorr.   
exceptions)rM   rU   rV   rW   excs        rG   r   zTaskGroup.__aexit__   sc     	!..887FSS !DL	 T 	; 0d:	; !DLs=   A/ 2 02 A/2 A AA  A# #	A,,A/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rM   funcr   argss       rG   r   zTaskGroup.start_soon   s;     ||M  	!  8848rH   c                  K   | j                   st        d       | j                  j                  |g|d|i d {   S 7 wr   )r}   r   r   startr   s       rG   r   zTaskGroup.start   sH      ||M  )T]]((@@4@@@@s   ;AAArg   rh   )rg   rz   ri   )r   Callable[..., Awaitable[Any]]r   rB   r   rB   rg   rh   )r   r   r   rB   r   rB   rg   rB   )rs   rt   ru   rN   r   r   r   r   rJ   rH   rG   rz   rz      s    !
!,! &! %	!
 
! RV919:@9HN9	9 RVA1A:@AHNA	ArH   rz   Fcancellablelimiterc                   K   d fd}t               }|j                  t        j                  j                  d        t        |j                  |||       d {   S 7 w)Nc                 P    t        d      5     cd d d        S # 1 sw Y   y xY w)NrK   r(   )r   r   s   rG   wrapperz*run_sync_in_worker_thread.<locals>.wrapper   s'     ( 	;	 	 	s   %r   rg   r<   )r   runsniffiocurrent_async_library_cvarsetr    )r   r   r   r   r   contexts   `  `  rG   run_sync_in_worker_threadr      sS     
 nGKK2266=W+w   s   AA#A!A#c                     d fd}t               j                  t        j                  j                  d       t
        j                  j                  |      S )Nc                    K   dfd} t        j                         4 d {   }j                  |j                  |        d d d       d {    d}S 7 47 
# 1 d {  7  sw Y   d}S xY ww)Nc                 0   K   d}    d {   y 7 wr   rJ   )__tracebackhide__r   fnretvals    rG   innerz5run_async_from_thread.<locals>.wrapper.<locals>.inner   s      $t9_F_s   Tr   )rK   r~   r   r   )r   nr   r   r   r   r   s      @rG   r   z&run_async_from_thread.<locals>.wrapper   sw     	%
 $$& 	- 	-!KKe,	- 	- !		- 	- 	- 	- 	- !sD   !A6AA6AA6A	A6A6A3$A'%A3,
A6rK   r   )r   r   r   r   r   rK   from_thread)r   r   r   r   s   `` @rG   run_async_from_threadr      sB     nGKK2266?((rH   c                    t        j                  j                  t               j                  | g| }t        t        |      S r@   )rK   r   r    r   r   r   r<   )r   r   r   s      rG   run_sync_from_threadr     s4    &&|~'9'92EEF&!!rH   c                  H     e Zd ZddZd fdZ	 	 	 	 	 	 	 	 	 	 	 	 ddZ xZS )BlockingPortalc                ,    t         j                  |       S r@   rA   rD   s    rG   rC   zBlockingPortal.__new__	      ~~c""rH   c                h    t         |           t        j                  j	                         | _        y r@   )superrN   rK   r7   current_trio_token_tokenrM   	__class__s    rG   rN   zBlockingPortal.__init__  s"    mm668rH   c           
     4   t               }|j                  t        j                  j                  d       t
        j                  j                  |j                  t        | j                  j                  |      | j                  ||||| j                         y )NrK   r   )
trio_token)r   r   r   r   r   rK   r   r    r   _task_groupr   
_call_funcr   )rM   r   r   rF   r   futurer   s          rG   _spawn_task_from_threadz&BlockingPortal._spawn_task_from_thread  su     .G66::FC!!KKD$$//d;OO{{ 	" 		
rH   )rg   r   r   )r   r   r   tuplerF   dict[str, Any]r   rB   r   r   rg   rh   )rs   rt   ru   rC   rN   r   __classcell__r   s   @rG   r   r     sL    #9

 
 	

 
 
 

rH   r   )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r@   )r   receive_somerK   r,   	__cause__r*   r-   rM   	max_bytesdatar   s       rG   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r@   r   acloserQ   s    rG   r   zReceiveStreamWrapper.aclose<       ll!!###   (&(r@   )r   
int | Nonerg   bytesr   )rs   rt   ru   __annotations__r   r   rJ   rH   rG   r   r   +  s    ##$rH   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r@   )r   send_allrK   r,   r   r*   rM   itemr   s      rG   sendzSendStreamWrapper.sendD  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r@   r   rQ   s    rG   r   zSendStreamWrapper.acloseL  r   r   Nr   r   rg   rh   r   )rs   rt   ru   r   r   r   rJ   rH   rG   r   r   @  s      9$rH   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                `  K   | j                   r"| j                   j                          d {    | j                  r"| j                  j                          d {    | j                  r"| j                  j                          d {    | j	                          d {    y 7 y7 M7 !7 wr@   )r   r   r   r   waitrQ   s    rG   r   zProcess.acloseW  s}     ;;++$$&&&<<,,%%'''<<,,%%'''iik '''sE   *B.B&-B.B(-B.B*	B. B,!B.(B.*B.,B.c                R   K   | j                   j                          d {   S 7 wr@   )r   r   rQ   s    rG   r   zProcess.waita  s     ]]''))))   '%'c                8    | j                   j                          y r@   )r   	terminaterQ   s    rG   r   zProcess.terminated  s    !rH   c                8    | j                   j                          y r@   )r   killrQ   s    rG   r   zProcess.killg  s    rH   c                :    | j                   j                  |       y r@   )r   send_signal)rM   signals     rG   r   zProcess.send_signalj  s    !!&)rH   c                .    | j                   j                  S r@   )r   pidrQ   s    rG   r   zProcess.pidm  s    }}   rH   c                .    | j                   j                  S r@   )r   
returncoderQ   s    rG   r   zProcess.returncodeq  s    }}'''rH   c                    | j                   S r@   )r   rQ   s    rG   stdinzProcess.stdinu  s    {{rH   c                    | j                   S r@   )r   rQ   s    rG   stdoutzProcess.stdouty      ||rH   c                    | j                   S r@   )r   rQ   s    rG   stderrzProcess.stderr}  r   rH   Nr   rg   int)r   r
   rg   rh   )rg   r   )rg   r   )rg   r   )rs   rt   ru   r   r   r   r   r   r   rv   r   r   r   r   r   rJ   rH   rG   r   r   P  s    %%))))*"* ! ! ( (      rH   r   )cwdenvstart_new_sessionc          
     2  K   t        | |||||||       d {   }|j                  rt        |j                        nd }	|j                  rt	        |j                        nd }
|j
                  rt	        |j
                        nd }t        ||	|
|      S 7 {w)N)r   r   r   shellr  r  r  )trio_open_processr   r   r   r   r   r   )commandr  r   r   r   r  r  r  processstdin_streamstdout_streamstderr_streams               rG   r;   r;     s      &+	 	G 8?}}$W]]3$L<CNN(8PTM<CNN(8PTM7L-GG	s   BBA<Bc                        e Zd Zd fdZ xZS )_ProcessPoolShutdownInstrumentc                "    t         |           y r@   )r   	after_runr   s    rG   r  z(_ProcessPoolShutdownInstrument.after_run  s    rH   r   )rs   rt   ru   r  r   r   s   @rG   r  r    s     rH   r  &current_default_worker_process_limiterRunVarc                T  K   	 t        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)NT)rd   )	sleepmathinfrK   	Cancelledr   r   r3   r   )workersr  s     rG   _shutdown_process_poolr    s     	'DHHo>> ' 	G!!)	 % 	'" 'nn&&&'	' 	' 	''sa   B(( &( B(( $B%B%+BB
BB%B(B!	B%B(!B%%B(c                L    t         j                  j                  t        |        y r@   )rK   r7   spawn_system_taskr  )r  s    rG   #setup_process_pool_exit_at_shutdownr    s    MM##$:GDrH   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)rM   trio_sockets     rG   rN   z_TrioSocketMixin.__init__  s    'rH   c                n    | j                   rt        | j                  j                         dk  rt        y Nr   )r   r,   r  filenor*   rQ   s    rG   _check_closedz_TrioSocketMixin._check_closed  s1    <<%%##%)%% *rH   c                .    | j                   j                  S r@   )r  _sockrQ   s    rG   _raw_socketz_TrioSocketMixin._raw_socket  s      &&&rH   c                   K   | j                   j                         dk\  r"d| _        | j                   j                          y y w)Nr   T)r  r$  r   closerQ   s    rG   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#  )
isinstancerK   r,   r  r$  r   OSErrorr*   rM   r   s     rG   _convert_socket_errorz&_TrioSocketMixin._convert_socket_error  sV    c4334%3.%%'!+%4/W%%3.IrH   Nr!  TrioSocketTyperg   rh   r   )rg   socket.socket)r   BaseExceptionrg   r   )	rs   rt   ru   rN   r%  rv   r(  r   r/  rJ   rH   rG   r  r    s*    & ' '&
rH   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   rN   r2   _receive_guard_send_guardrM   r!  r   s     rG   rN   zSocketStream.__init__  *    %+N;(6rH   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r@   )r;  r  recvr3  r/  r-   r   s       rG   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r@   )r<  
memoryviewr  r   r3  r/  )rM   r   view
bytes_sentr   s        rG   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r@   )r  shutdownsocketSHUT_WRrQ   s    rG   send_eofzSocketStream.send_eof  s     ""6>>2s   +-r0  )   )r   r   rg   r   r   r   )rs   rt   ru   rN   r   r   rI  r   r   s   @rG   r5  r5    s    7

"	)3rH   r5  c                      e Zd ZddZddZy)UNIXSocketStreamc           	     0  K   t        |t              r|dk  rt        d      t        |t              r|dk  rt        d      t        j                  d      }t	                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array
checkpointr;  r  recvmsgrG  CMSG_LENitemsizer-   r3  r/  
SOL_SOCKET
SCM_RIGHTSr   	frombyteslenlist)rM   msglenmaxfdsfdsmessageancdataflagsaddrr   
cmsg_level	cmsg_type	cmsg_datas               rG   receive_fdszUNIXSocketStream.receive_fds  s    &#&&1*DEE&#&&1*@AAkk#l   	
:>: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   A#F%E&F6F
9?E!8E9	E!
F
BFE!!	F*F ;F
 FF

FFc                p  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                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 emptyrO  )rP  r,  r   appendr   r$  rQ  rR  r<  r  sendmsgrG  rV  rW  r3  r/  )rM   r^  r]  filenosfdfdarrayr   s          rG   send_fdszUNIXSocketStream.send_fds   s-    899455 	,B"c"r"B'ryy{+		, ++c7+l 	44++33 	 !' 1 1 & 1 1 '	 	 	 	4 	4 		 % 4..s334 	4 	4sh   AD6AD6C>D6,D*/A D/D 0D5
D6 D	D&D!D*!D&&D**D3/D6N)r[  r   r\  r   rg   ztuple[bytes, list[int]])r^  r   r]  zCollection[int | IOBase]rg   rh   )rs   rt   ru   re  rl  rJ   rH   rG   rL  rL    s    "B4rH   rL  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   rN   rK   rG  from_stdlib_socketr2   _accept_guardrM   
raw_socketr   s     rG   rN   zTCPSocketListener.__init__B  -    77
CD*+GHrH   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)NrN  )
rs  r  acceptr3  r/  
setsockoptrG  IPPROTO_TCPTCP_NODELAYr5  rM   r!  _addrr   s       rG   rx  zTCPSocketListener.acceptF  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-ru  r2  )rg   r5  rs   rt   ru   rN   rx  r   r   s   @rG   rn  rn  A  s    I)rH   rn  c                  (     e Zd Zd fdZddZ xZS )UNIXSocketListenerc                ~    t         |   t        j                  j	                  |             t        d      | _        y rp  rq  rt  s     rG   rN   zUNIXSocketListener.__init__R  rv  rH   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r@   )rs  r  rx  r3  r/  rL  r|  s       rG   rx  zUNIXSocketListener.acceptV  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r~  )rg   rL  r  r   s   @rG   r  r  Q  s    I-rH   r  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 r7  r:  r=  s     rG   rN   zUDPSocket.__init__a  r>  rH   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NrJ  )r;  r  recvfromr/   r3  r/  )rM   r   ra  r   s       rG   r   zUDPSocket.receivef  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r@   )r<  r  sendtor3  r/  r   s      rG   r   zUDPSocket.sendn  sm      	00.d''..555	0 	05  0**3//0	0 	0sH   A0A$=;=	A0=	A!AA$A!!A$$A-)A0r0  )rg   ztuple[bytes, IPSockAddrType])r   r5   rg   rh   rs   rt   ru   rN   r   r   r   r   s   @rG   r  r  `  s    7
00rH   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 r7  r:  r=  s     rG   rN   zConnectedUDPSocket.__init__w  r>  rH   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  r@  r3  r/  r.  s     rG   r   zConnectedUDPSocket.receive|  sp        	00!..33E::	0 	0:  0**3//0/		0 	0 	0sN   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r@   )r<  r  r   r3  r/  r   s      rG   r   zConnectedUDPSocket.send  sk      	00'',,T222	0 	02  0**3//0	0 	0sH   A2A&?=?	A2?	A#AA&A##A&&A/+A2r0  )rg   r   r   r  r   s   @rG   r  r  v  s    7
00rH   r  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:rN  )rG  AF_INET6AF_INETrK   ry  rz  r{  bindconnectr3  r*  r5  )hostportlocal_addressfamilyr!  s        rG   connect_tcpr    s      !$tV__F++$$V,K6--v/A/A1E}---!!4,///
 $$ 	. 	0 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r@   )rK   rG  AF_UNIXr  r3  r*  rL  )pathr!  s     rG   connect_unixr    sf     ++$$V^^4K!!$'''
 K(( 	( s.   .A5A AA 
A5A A22A5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  typerN  )
rK   rG  
SOCK_DGRAMry  rV  SO_REUSEPORTr  r  r  r  )r  r  remote_address
reuse_portr!  s        rG   create_udp_socketr    s      ++$$F9J9J$KKv00&2E2EqI}---!!.111!+..%% 	. 	2s$   A7B39B/:B3B1B31B3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)Nr8  )r8   rK   r,   with_traceback__traceback__r+   sockr   s     rG   wait_socket_readabler    sf     :D!!!## P!#2233D3DE4O!! :/T9: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)Nr9  )r9   rK   r,   r  r  r+   r  s     rG   wait_socket_writabler    sf     8D!!!## P!#2233D3DE4O!! 8-478r  c                  <    e Zd ZddZd	dZd
dZd	dZddZddZy)r1   c                ,    t         j                  |       S r@   rA   r   s    rG   rC   zEvent.__new__  r   rH   c                6    t        j                         | _        y r@   )rK   r1   _Event__originalrQ   s    rG   rN   zEvent.__init__  s    **,rH   c                6    | j                   j                         S r@   )r  is_setrQ   s    rG   r  zEvent.is_set  s    %%''rH   c                R   K   | j                   j                          d {   S 7 wr@   )r  r   rQ   s    rG   r   z
Event.wait  s     __))++++r   c                b    | j                   j                         }t        |j                        S )N)tasks_waiting)r  
statisticsr#   r  )rM   orig_statisticss     rG   r  zEvent.statistics  s%    //446_-J-JKKrH   c                `    | j                   j                          t        | j                        S r@   )r  r   r'   rQ   s    rG   r   z	Event.set  s!    "488,,rH   N)rg   r1   r   rq   )rg   r#   rm   )	rs   rt   ru   rC   rN   r  r   r  r   rJ   rH   rG   r1   r1     s!    #'(,L-rH   r1   c                      e Zd ZddZ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)r0   c                ,    t         j                  |       S r@   rA   )rD   r   rF   s      rG   rC   zCapacityLimiter.__new__  r   rH   NrE   c               :    |xs t        j                  | | _        y r@   )rK   r0   _CapacityLimiter__original)rM   rE   r   s      rG   rN   zCapacityLimiter.__init__  s     #Ad&:&:D&ArH   c                R   K   | j                   j                          d {   S 7 wr@   )r  r   rQ   s    rG   r   zCapacityLimiter.__aenter__  s     __//1111r   c                Z   K   | j                   j                  |||       d {    y 7 wr@   )r  r   rT   s       rG   r   zCapacityLimiter.__aexit__  s$      oo'''6BBBs   !+)+c                .    | j                   j                  S r@   r  total_tokensrQ   s    rG   r  zCapacityLimiter.total_tokens  s    +++rH   c                &    || j                   _        y r@   r  r^   s     rG   r  zCapacityLimiter.total_tokens  s    ',$rH   c                .    | j                   j                  S r@   )r  borrowed_tokensrQ   s    rG   r  zCapacityLimiter.borrowed_tokens
  s    ...rH   c                .    | j                   j                  S r@   )r  available_tokensrQ   s    rG   r  z CapacityLimiter.available_tokens  s    ///rH   c                `    | j                   j                          t        | j                        S r@   )r  acquire_nowaitr'   rQ   s    rG   r  zCapacityLimiter.acquire_nowait  s#    &&("4#6#677rH   c                b    | j                   j                  |       t        | j                        S r@   )r  acquire_on_behalf_of_nowaitr'   rM   borrowers     rG   r  z+CapacityLimiter.acquire_on_behalf_of_nowait  s%    33H="4#C#CDDrH   c                T   K   | j                   j                          d {    y 7 wr@   )r  acquirerQ   s    rG   r  zCapacityLimiter.acquire  s     oo%%'''r   c                V   K   | j                   j                  |       d {    y 7 wr@   )r  acquire_on_behalf_ofr  s     rG   r  z$CapacityLimiter.acquire_on_behalf_of  s     oo228<<<s   )')c                6    | j                   j                         S r@   )r  releaserQ   s    rG   r  zCapacityLimiter.release   s    &&((rH   c                8    | j                   j                  |      S r@   )r  release_on_behalf_ofr  s     rG   r  z$CapacityLimiter.release_on_behalf_of#  s    33H==rH   c                    | j                   j                         }t        |j                  |j                  |j
                  |j                        S )N)r  r  	borrowersr  )r  r  r"   r  r  r  r  )rM   origs     rG   r  zCapacityLimiter.statistics&  sC    ))+( 00**nn,,	
 	
rH   )r   rB   rF   rB   rg   r0   )r   r   rE   trio.CapacityLimiter | Nonerg   rh   r   )rU   rj   rV   rk   rW   rl   rg   rh   rn   rp   r   rm   )r  rB   rg   r'   )r  rB   rg   rh   )rg   r"   )rs   rt   ru   rC   rN   r   r   rv   r  rw   r  r  r  r  r  r  r  r  r  rJ   rH   rG   r0   r0     s    # CGBB$?B	B
2C,C &C %	C
 
C , , - - / / 0 08E(=)>
rH   r0   _capacity_limiter_wrapperc                     	 t         j                         S # t        $ rB t        t        j
                  j                               } t         j                  |        | cY S w xY w)Nr  )r  getLookupErrorr0   rK   	to_threadcurrent_default_thread_limiterr   )r   s    rG   r  r  3  sT    (,,.. !^^BBD
 	"%%g.s    AA! A!c                  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 r@   )_signals)rM   signalss     rG   rN   z_SignalReceiver.__init__F  s	    rH   c                    t        j                  | j                   | _        | j                  j	                         | _        | S r@   )rK   open_signal_receiverr  _cmrP   r  rQ   s    rG   rP   z_SignalReceiver.__enter__I  s1    ,,dmm<++-rH   c                <    | j                   j                  |||      S r@   )r  rS   rT   s       rG   rS   z_SignalReceiver.__exit__N  s     xx  7F;;rH   c                    | S r@   rJ   rQ   s    rG   	__aiter__z_SignalReceiver.__aiter__V  s    rH   c                h   K   | j                   j                          d {   }t        |      S 7 wr@   )r  	__anext__r
   )rM   signums     rG   r  z_SignalReceiver.__anext__Y  s*     ~~//11v 2s   202N)r  ztuple[Signals, ...])rg   r  ri   )rg   r
   )	rs   rt   ru   r   rN   rP   rS   r  r  rJ   rH   rG   r  r  C  sG    !! 
<,< &< %	<
 
<rH   r  c                     t        |       S r@   )r  )r  s    rG   r  r  ^  s    7##rH   c                    t        j                         } d }| j                  r5| j                  j                  rt	        | j                  j                        }t        t	        |       || j                  | j                        S r@   )trio_lowlevelcurrent_taskparent_nurseryparent_taskidr$   r   coro)task	parent_ids     rG   get_current_taskr  g  s_    %%'DIt22>>t**667	BtHiDII>>rH   c            
        t        j                         } t        t        |       d | j                  | j
                        g}| j                  }|rg }|D ]{  }|j                  D ]j  }|j                  t        t        |      t        |j                        |j                  |j
                               |j                  |j                         l } |}|r|S r@   )r  current_root_taskr$   r  r   r  child_nurserieschild_tasksrg  r  extend)	root_task
task_infos	nurseriesnew_nurseriesnurseryr  s         rG   get_running_tasksr  q  s    //1I2i=$		OPJ))I
,.  	;G++ ;!!RXr'*=*='>		499U $$T%9%9:	;	; "	  rH   c                 >    dd l } | j                  j                         S r#  )trio.testingtestingwait_all_tasks_blocked)rK   s    rG   r  r    s    <<..00rH   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
	 	 	 	 	 	 dd	Z	 	 	 	 	 	 dd
Zy)
TestRunnerc                v    ddl m} ddlm}  |       | _         |       | _        d | _        d | _        || _        y )Nr   )deque)Queue)	collectionsr  queuer  _call_queue_result_queue_stop_eventr   _options)rM   optionsr  r  s       rG   rN   zTestRunner.__init__  s2    %9>-2W.2-1rH   c                  K   t        j                         | _        t        j                         4 d {   | _        | j                  j                          d {    d d d       d {    y 7 <7 7 	# 1 d {  7  sw Y   y xY wwr@   )rK   r1   r  r~   r   r   rQ   s    rG   
_trio_mainzTestRunner._trio_main  so     ::<$$& 	* 	*$-""'')))	* 	* 	*)	* 	* 	* 	*sV   2BA1B#A7A3A7 B+A5,B3A75B7B	=B >B	Bc                   K   	  ||i | d {   }| j                   j                  t        |             y 7 )# t        $ r.}| j                   j                  t	        |             Y d }~y d }~ww xY wwr@   )r  rg  r   r3  r   )rM   r   r   rF   r   r   s         rG   r   zTestRunner._call_func  sf     	5000F %%eFm4	 1 	2%%eCj11	2s7   A5; 9; %A5; 	A2$A-(A5-A22A5c                    d | _         y r@   )r   )rM   outcomes     rG   _main_task_finishedzTestRunner._main_task_finished  s	    rH   c                L   | j                   t        j                  j                  | j                  f| j
                  j                  | j                  d| j                   | j                   , | j
                  j                                 | j                   ,| j                   S )N)run_sync_soon_threadsafedone_callback)
r   rK   r7   start_guest_runr  r  putr  r  r  rQ   s    rG   _get_nurseryzTestRunner._get_nursery  s    == MM)))-)9)9)=)="66 --	 --'&  $$&( --' }}rH   c                   | j                         j                  | j                  |||       | j                  s, | j                  j                                 | j                  s,| j                  j                         }|j                         S r@   )r$  r   r   r  r  r  popunwrap)rM   r   r   rF   r  s        rG   _callzTestRunner._call  ss     	&&tdFK$$"D  "$ $$ $$((*~~rH   c                    | j                   rT| j                   j                          | j                  - | j                  j	                                 | j                  ,y y y r@   )r  r   r   r  r  rQ   s    rG   r*  zTestRunner.close  sO      "--+&  $$&( --+ rH   c              #      K   dfdt        j                          j                   fd      }| j                          y w)Nc                H  K    di }|j                  d        d {   }| j                  |       j                          d {    	 |j                  d        d {    |j                          d {    t	        d      7 j7 C7 +7 # t
        $ r Y y w xY ww)Nz$Async generator fixture did not stoprJ   )asendstartedr   r   r   StopAsyncIteration)task_statusagenr   fixture_funcrF   teardown_events      rG   fixture_runnerz7TestRunner.run_asyncgen_fixture.<locals>.fixture_runner  s     )&)D::d++F' %%'''Kjj&&& kkm##"#IJJ ,'& $ & si   B"B(B"	B
B"B #B$B (B";B<B"B"B B"	BB"BB"c                 B    j                         j                         S r@   )r$  r   )r3  rM   s   rG   <lambda>z1TestRunner.run_asyncgen_fixture.<locals>.<lambda>  s    4+<+<+>+D+D^+T rH   )r/  zTaskStatus[T_Retval]rg   rh   )rK   r1   r(  r   )rM   r1  rF   fixture_valuer3  r2  s   ``` @@rG   run_asyncgen_fixturezTestRunner.run_asyncgen_fixture  s;     
	K 

#TUs   AAc                (     | j                   |fi |S r@   r(  )rM   r1  rF   s      rG   run_fixturezTestRunner.run_fixture  s    
 tzz,1&11rH   c                *     | j                   |fi | y r@   r9  )rM   	test_funcrF   s      rG   run_testzTestRunner.run_test  s     	

9''rH   N)r  r   rg   rh   r   )r   z Callable[..., Awaitable[object]]r   r   rF   dictrg   rh   )r  rB   rg   rh   )rg   ztrio.Nursery)r   "Callable[..., Awaitable[T_Retval]]r   rB   rF   rB   rg   r<   )r1  z,Callable[..., AsyncGenerator[T_Retval, Any]]rF   r   rg   zIterable[T_Retval])r1  z,Callable[..., Coroutine[Any, Any, T_Retval]]rF   r   rg   r<   )r<  z'Callable[..., Coroutine[Any, Any, Any]]rF   r   rg   rh   )rs   rt   ru   rN   r  r   r  r$  r(  r*  r7  r:  r=  rJ   rH   rG   r  r    s     *
545<A5KO5	5 6 ?E QW 	 )B  
	.2B2 2 
	2(@(JX(	(rH   r  )
r   Callable[..., T_Retval]r   rB   r   rr   r   r  rg   r<   )r   r?  r   r   rg   r<   )r   r@  r   r   rg   r<   )r  z#str | bytes | Sequence[str | bytes]r  rr   r   int | IO[Any] | Noner   rA  r   rA  r  zstr | bytes | PathLike | Noner  zMapping[str, str] | Noner  rr   rg   r   )r  zset[Process]rg   rh   r@   )r  strr  r   r  IPSockAddrType | Nonerg   r5  )r  rB  rg   rL  )
r  zsocket.AddressFamilyr  rC  r  rC  r  rr   rg   zUDPSocket | ConnectedUDPSocket)r  r2  rg   rh   )rg   r0   )r  r
   rg   r  )rg   r$   )rg   zlist[TaskInfo])rg   zAwaitable[None])
__future__r   rQ  r  rG  concurrent.futuresr   contextvarsr   dataclassesr   	functoolsr   ior   osr	   r   r
   typesr   typingr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   trio.from_threadrK   r  r   r   r   trio.socketr   r1  trio.to_threadr     r"   r#   r$   r%   _core._compatr&   r'   _core._eventloopr)   _core._exceptionsr*   r+   r,   r-   r.   BaseExceptionGroup_core._socketsr/   _core._synchronizationr0   BaseCapacityLimiterr1   	BaseEventr2   _core._tasksr3   BaseCancelScoper4   r5   trio_typingr6   r7   r  trio.lowlevelr8   r9   ImportErrorr:   trio.hazmatr;   r  AttributeErrorr<   rB  r=   r   r   current_tokenr  r  r  CancelledErrorrR  checkpoint_if_cancelledcancel_shielded_checkpointcurrent_effective_deadlinecurrent_timer   rz   r   r   r   r   ByteReceiveStreamr   ByteSendStreamr   r   
Instrumentr  r  r   r  r  r  r5  rL  SocketListenerrn  r  r  r  r  r  r  getaddrinfogetnameinfor  r  r  r  r  r  r  r  r  r  rJ   rH   rG   <module>rl     s   "    % $ !         &   ) ) 4 # H H N 2  E 2 K 7 2 9 /&;.
 ;%22 :\37
 hh00			 	

.'/ .'b ]]%%
--?? !]]EE !<<   	' 	+A +Al +/	
!  )	
 &)*)36)),"
S'' 
F e$300 $ $( e$** $ $ e.ckk . .p *.$(#H0H H  	H
 !H !H 
'H 
"H H H6TXX%8%8 
 28,2 & 
'Ewz* >3#S%5%5 3B@4|S%9%9 @4F)(#*<*< ) -)3+=+= -0 0#-- 0,0).93;Q;Q 0, BF%
%%)>%%$)& &(& *& 	&
 $&* kk%%kk%%:8-I -,?
) ?
D %++F$G 6 G 34EF 6$?$1[( [(Y  9,889   s$   !P  0P:  P76P7:Q	Q	