
     @gSu                       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 n# eW$ r d dl(mXZS d dlYmUZUmVZV Y nw xY w	 eSjZ        Z[n# e\$ r	 d dl(mZZ[ Y nw xY w e$d           Z] e$d!e^eN          Z_e(j`        Z`e(jR        ja        Zbe(jR        jc        Zce(jd        Zd G d" d#eM          ZLe(je        Zfe(jR        jg        Zge(jR        jh        Zhe(jR        ji        Zie(jj        Zje(jk        Zk G d$ d%eBe(jl                  ZA G d& d'e6jm                  Zmd(dd)dd3Zndd7Zodd8Zp G d9 d:e6jq                  Zq e
d(;           G d< d=e6jr                              Zs e
d(;           G d> d?e6jt                              Zu e
d(;           G d@ dAe6jv                              Zvddd(dBddOZZ G dP dQe(j6        jw                  Zx ecdR          ZydSezdR<   ddWZ{ddXZ| G dY dZee_                   Z} G d[ d\e}e6j~                  Z~ G d] d^e~e6j                  Z G d_ d`e}e6j                  Z G da dbe}e6j                  Z G dc dde}eN         e6j                  Z G de dfe}eN         e6j                  Z	 dddmZddoZdduZe(j        j        Ze(j        j        ZddxZddyZ G dz d{eI          ZH G d| d}eG          ZF ecd~          ZdSezd~<   ddZ G d de8d                   ZddZddZddZddZ G d de6j                  ZdS )    )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dS )(r3   Noriginaltrio.CancelScope | Nonekwargsobjectreturnc                6    t                               |           S NrB   __new__)clsr?   rA   s      I/var/www/piapp/venv/lib/python3.11/site-packages/anyio/_backends/_trio.pyrG   zCancelScope.__new__e   s     ~~c"""    r   Nonec                6    |pt          j        di || _        d S )N )trior3   _CancelScope__original)selfr?   rA   s      rI   __init__zCancelScope.__init__j   s#    "@d&6&@&@&@&@rJ   c                8    | j                                          | S rE   )rO   	__enter__rP   s    rI   rS   zCancelScope.__enter__m   s    !!###rJ   exc_typetype[BaseException] | Noneexc_valBaseException | Noneexc_tbTracebackType | Nonebool | Nonec                :    | j                             |||          S rE   )rO   __exit__rP   rU   rW   rY   s       rI   r]   zCancelScope.__exit__q   s%     ''gv
 
 	
rJ   r'   c                \    | j                                          t          | j                  S rE   )rO   cancelr'   rT   s    rI   r`   zCancelScope.cancel|   s&       "4;///rJ   floatc                    | j         j        S rE   rO   deadlinerT   s    rI   rd   zCancelScope.deadline   s    ''rJ   valuec                    || j         _        d S rE   rc   rP   re   s     rI   rd   zCancelScope.deadline   s    #(   rJ   boolc                    | j         j        S rE   )rO   cancel_calledrT   s    rI   rj   zCancelScope.cancel_called   s    ,,rJ   c                    | j         j        S rE   rO   shieldrT   s    rI   rm   zCancelScope.shield   s    %%rJ   c                    || j         _        d S rE   rl   rg   s     rI   rm   zCancelScope.shield   s    !&rJ   rE   )r?   r@   rA   rB   rC   r3   )r?   r@   rA   r   rC   rK   )rC   r3   rU   rV   rW   rX   rY   rZ   rC   r[   rC   r'   rC   ra   re   ra   rC   rK   rC   rh   )re   rh   rC   rK   )__name__
__module____qualname__rG   rQ   rS   r]   r`   propertyrd   setterrj   rm   rM   rJ   rI   r3   r3   d   s.       15# # # # #
A A A A A   	
 	
 	
 	
0 0 0 0 ( ( ( X( _) ) ) _) - - - X- & & & X& ]' ' ' ]' ' 'rJ   r3   c                      e Zd ZdS )r.   N)rt   ru   rv   rM   rJ   rI   r.   r.      s        DrJ   r.   c                  B    e Zd ZddZddZddZddddZddddZdS )	TaskGrouprC   rK   c                R    d| _         t          j                    | _        d | _        d S NF)_activerN   open_nursery_nursery_managercancel_scoperT   s    rI   rQ   zTaskGroup.__init__   s(     $ 1 3 3 rJ   c                   K   d| _         | j                                         d {V | _        t	          | j        j                  | _        | S NT)r~   r   
__aenter___nurseryr3   r   rT   s    rI   r   zTaskGroup.__aenter__   sO      "3>>@@@@@@@@'(BCCrJ   rU   rV   rW   rX   rY   rZ   r[   c                   K   	 | j                             |||           d {V 	 d| _        S # t          j        $ r}t          |j                  d d }~ww xY w# d| _        w xY wr}   )r   	__aexit__r~   rN   
MultiErrorr.   
exceptions)rP   rU   rW   rY   excs        rI   r   zTaskGroup.__aexit__   s      	!.887FSSSSSSSSS !DLL  	; 	; 	; 00d:	; !DL    s    !. AAAA 	A#NnamefuncCallable[..., Awaitable[Any]]argsrB   r   c               ^    | j         st          d           | j        j        |g|R d|i d S Nz;This task group is not active; no new tasks can be started.r   )r~   RuntimeErrorr   
start_soonrP   r   r   r   s       rI   r   zTaskGroup.start_soon   sP     | 	M   	! 8888488888rJ   c               j   K   | j         st          d           | j        j        |g|R d|i d {V S r   )r~   r   r   startr   s       rI   r   zTaskGroup.start   s`       | 	M   )T](@@@@4@@@@@@@@@rJ   rC   rK   )rC   r{   ro   )r   r   r   rB   r   rB   rC   rK   )r   r   r   rB   r   rB   rC   rB   )rt   ru   rv   rQ   r   r   r   r   rM   rJ   rI   r{   r{      s        ! ! ! !
   ! ! ! ! RV9 9 9 9 9 9 RVA A A A A A A ArJ   r{   Fcancellablelimiterr   Callable[..., T_Retval]r   rB   r   rh   r   trio.CapacityLimiter | NonerC   c                   K   d fd}t                      }|                    t          j        j        d            t          |j        |||           d {V S )NrC   r<   c                 `    t          d          5     cd d d            S # 1 swxY w Y   d S )NrN   r(   )r   r   s   rI   wrapperz*run_sync_in_worker_thread.<locals>.wrapper   s~     (( 	 	4;	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   #''r   rC   r<   )r   runsniffiocurrent_async_library_cvarsetr    )r   r   r   r   r   contexts   `  `  rI   run_sync_in_worker_threadr      s            
 nnGKK26===W+w         rJ   fn"Callable[..., Awaitable[T_Retval]]r   c                     d fd}t                                          t          j        j        d           t
          j                            |          S )NrC   r<   c                    K   dfd} t          j                    4 d {V }                    |j        |            d d d           d {V  n# 1 d {V swxY w Y   d}S )NrC   rK   c                 &   K   d}    d {V d S r   rM   )__tracebackhide__r   r   retvals    rI   innerz5run_async_from_thread.<locals>.wrapper.<locals>.inner   s(       $2t9______FFFrJ   Tr   )rN   r   r   r   )r   nr   r   r   r   r   s      @rI   r   z&run_async_from_thread.<locals>.wrapper   s     	% 	% 	% 	% 	% 	% 	% 	%
 $&& 	- 	- 	- 	- 	- 	- 	-!KKe,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- !s   A
A!ArN   r   )r   r   r   r   r   rN   from_thread)r   r   r   r   s   `` @rI   run_async_from_threadr      si            nnGKK26???(((rJ   c                ~    t          j        j        t                      j        | g|R  }t          t          |          S rE   )rN   r   r    r   r   r   r<   )r   r   r   s      rI   run_sync_from_threadr     s6    &|~~'92EEEEF&!!!rJ   c                  0     e Zd ZddZd fdZddZ xZS )BlockingPortalrC   c                6    t                               |           S rE   rF   rH   s    rI   rG   zBlockingPortal.__new__	      ~~c"""rJ   rK   c                    t                                                       t          j                                        | _        d S rE   )superrQ   rN   r7   current_trio_token_tokenrP   	__class__s    rI   rQ   zBlockingPortal.__init__  s2    m6688rJ   r   r   r   tuplerA   dict[str, Any]r   rB   futurer   c           
     
   t                      }|                    t          j        j        d           t
          j                            |j        t          | j	        j
        |          | j        ||||| j                   d S )NrN   r   )
trio_token)r   r   r   r   r   rN   r   r    r   _task_groupr   
_call_funcr   )rP   r   r   rA   r   r   r   s          rI   _spawn_task_from_threadz&BlockingPortal._spawn_task_from_thread  s     ..G6:FCCC!!KD$/d;;;O{ 	" 		
 		
 		
 		
 		
rJ   )rC   r   r   )r   r   r   r   rA   r   r   rB   r   r   rC   rK   )rt   ru   rv   rG   rQ   r   __classcell__r   s   @rI   r   r     se        # # # #9 9 9 9 9 9
 
 
 
 
 
 
 
rJ   r   )eqc                  ,    e Zd ZU ded<   dddZdd
ZdS )ReceiveStreamWrapperztrio.abc.ReceiveStream_streamN	max_bytes
int | NonerC   bytesc                   K   	 | j                             |           d {V }nC# t          j        $ r}t          |j        d }~wt          j        $ r}t
          |j        d }~ww xY w|r|S t          rE   )r   receive_somerN   r,   	__cause__r*   r-   rP   r   datar   s       rI   receivezReceiveStreamWrapper.receive/  s      	9229========DD' 	9 	9 	9%3=8' 	9 	9 	9%3=8	9  	Ks     % A%AA%A  A%rK   c                H   K   | j                                          d {V  d S rE   r   acloserT   s    rI   r   zReceiveStreamWrapper.aclose<  2      l!!###########rJ   rE   )r   r   rC   r   r   )rt   ru   rv   __annotations__r   r   rM   rJ   rI   r   r   +  sO         ####    $ $ $ $ $ $rJ   r   c                  *    e Zd ZU ded<   d
dZddZd	S )SendStreamWrapperztrio.abc.SendStreamr   itemr   rC   rK   c                   K   	 | j                             |           d {V  d S # t          j        $ r}t          |j        d }~wt          j        $ r}t
          |j        d }~ww xY wrE   )r   send_allrN   r,   r   r*   rP   r   r   s      rI   sendzSendStreamWrapper.sendD  s      	9,''-----------' 	9 	9 	9%3=8' 	9 	9 	9%3=8	9s     & A&AA&A!!A&c                H   K   | j                                          d {V  d S rE   r   rT   s    rI   r   zSendStreamWrapper.acloseL  r   rJ   Nr   r   rC   rK   r   )rt   ru   rv   r   r   r   rM   rJ   rI   r   r   @  sJ             9 9 9 9$ $ $ $ $ $rJ   r   c                      e Zd ZU ded<   ded<   ded<   ded<   dd
ZddZddZddZddZe	dd            Z
e	dd            Ze	dd            Ze	dd            Ze	dd            ZdS )Processztrio.Process_processabc.ByteSendStream | None_stdinabc.ByteReceiveStream | None_stdout_stderrrC   rK   c                "  K   | j         r| j                                          d {V  | j        r| j                                         d {V  | j        r| j                                         d {V  |                                  d {V  d S rE   )r   r   r   r   waitrT   s    rI   r   zProcess.acloseW  s      ; 	'+$$&&&&&&&&&< 	(,%%'''''''''< 	(,%%'''''''''iikkrJ   intc                D   K   | j                                          d {V S rE   )r   r   rT   s    rI   r   zProcess.waita  s,      ]'')))))))))rJ   c                8    | j                                          d S rE   )r   	terminaterT   s    rI   r   zProcess.terminated  s    !!!!!rJ   c                8    | j                                          d S rE   )r   killrT   s    rI   r   zProcess.killg  s    rJ   signalr
   c                :    | j                             |           d S rE   )r   send_signal)rP   r   s     rI   r   zProcess.send_signalj  s    !!&)))))rJ   c                    | j         j        S rE   )r   pidrT   s    rI   r   zProcess.pidm  s    }  rJ   r   c                    | j         j        S rE   )r   
returncoderT   s    rI   r   zProcess.returncodeq  s    }''rJ   c                    | j         S rE   )r   rT   s    rI   stdinzProcess.stdinu  s
    {rJ   c                    | j         S rE   )r   rT   s    rI   stdoutzProcess.stdouty  
    |rJ   c                    | j         S rE   )r   rT   s    rI   stderrzProcess.stderr}  r   rJ   Nr   rC   r   )r   r
   rC   rK   )rC   r   )rC   r   )rC   r   )rt   ru   rv   r   r   r   r   r   r   rw   r   r   r   r   r  rM   rJ   rI   r   r   P  sJ        %%%%))))))))   * * * *" " " "   * * * * ! ! ! X! ( ( ( X(    X    X    X  rJ   r   )cwdenvstart_new_sessioncommand#str | bytes | Sequence[str | bytes]shellr   int | IO[Any] | Noner   r  r  str | bytes | PathLike | Noner  Mapping[str, str] | Noner  c          
       K   t          | |||||||           d {V }|j        rt          |j                  nd }	|j        rt	          |j                  nd }
|j        rt	          |j                  nd }t          ||	|
|          S )N)r   r   r  r  r  r  r  )trio_open_processr   r   r   r   r  r   )r  r  r   r   r  r  r  r  processstdin_streamstdout_streamstderr_streams               rI   r;   r;     s       &+	 	 	 	 	 	 	 	 	G 8?}N$W]333$L<CNT(888PTM<CNT(888PTM7L-GGGrJ   c                        e Zd Zd fdZ xZS )_ProcessPoolShutdownInstrumentrC   rK   c                H    t                                                       d S rE   )r   	after_runr   s    rI   r  z(_ProcessPoolShutdownInstrument.after_run  s    rJ   r   )rt   ru   rv   r  r   r   s   @rI   r  r    s=                 rJ   r  &current_default_worker_process_limiterRunVarworkersset[Process]rK   c                J  K   	 t          t          j                   d {V  d S # t          j        $ rn | D ]}|j        |                                 t          d          5  | D ]}|                                 d {V  	 d d d            Y d S # 1 swxY w Y   Y d S w xY w)NT)rm   )	sleepmathinfrN   	Cancelledr   r   r3   r   )r  r  s     rI   _shutdown_process_poolr    s,     	'DHoo> ' ' ' 	 	G!)%%% 	' 	'" ' 'nn&&&&&&&&&&'	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	''s3   % ?B"$ BB"B	B"B	B"!B"c                P    t           j                            t          |            d S rE   )rN   r7   spawn_system_taskr  )r  s    rI   #setup_process_pool_exit_at_shutdownr"    s!    M##$:GDDDDDrJ   c                  F    e Zd ZddZddZedd            Zdd	ZddZdS )_TrioSocketMixintrio_socketTrioSocketTyperC   rK   c                "    || _         d| _        d S r}   )_trio_socket_closed)rP   r%  s     rI   rQ   z_TrioSocketMixin.__init__  s    'rJ   c                j    | j         rt          | j                                        dk     rt          d S Nr   )r)  r,   r(  filenor*   rT   s    rI   _check_closedz_TrioSocketMixin._check_closed  s:    < 	&%%##%%))%% *)rJ   socket.socketc                    | j         j        S rE   )r(  _sockrT   s    rI   _raw_socketz_TrioSocketMixin._raw_socket  s     &&rJ   c                   K   | j                                         dk    r"d| _        | j                                          d S d S )Nr   T)r(  r,  r)  closerT   s    rI   r   z_TrioSocketMixin.aclose  sJ      ##%%**DL##%%%%% +*rJ   r   BaseExceptionr   c                    t          |t          j                  rt          || j                                        dk     r| j        rt          d t          |t                    rt          ||r+  )
isinstancerN   r,   r(  r,  r)  OSErrorr*   rP   r   s     rI   _convert_socket_errorz&_TrioSocketMixin._convert_socket_error  sg    c4344 	%3.%%''!+++%4/W%% 	%3.IrJ   Nr%  r&  rC   rK   r   )rC   r.  )r   r4  rC   r   )	rt   ru   rv   rQ   r-  rw   r1  r   r9  rM   rJ   rI   r$  r$    s           & & & & ' ' ' X'& & & &
     rJ   r$  c                  :     e Zd Zd fdZddd
ZddZddZ xZS )SocketStreamr%  r&  rC   rK   c                    t                                          |           t          d          | _        t          d          | _        d S Nreading from
writing tor   rQ   r2   _receive_guard_send_guardrP   r%  r   s     rI   rQ   zSocketStream.__init__  A    %%%+N;;(66rJ      r   r   r   c                   K   | j         5  	 | j                            |           d {V }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|r|cd d d            S t
          # 1 swxY w Y   d S rE   )rB  r(  recvr4  r9  r-   r   s       rI   r   zSocketStream.receive  s        		" 		"0!.33I>>>>>>>>  0 0 0**3////////0  "		" 		" 		" 		" 		" 		" 		" 		" "!		" 		" 		" 		" 		" 		" 		" 		" 		" 		"s<   A0 -A0
AAA0AA0)A00A47A4r   c                   K   | j         5  t          |          }|rZ	 | j                            |           d {V }n,# t          $ r}|                     |           Y d }~nd }~ww xY w||d          }|Zd d d            d S # 1 swxY w Y   d S rE   )rC  
memoryviewr(  r   r4  r9  )rP   r   view
bytes_sentr   s        rI   r   zSocketStream.send  s      	) 	)d##D )4'+'8'='=d'C'C!C!C!C!C!C!CJJ$ 4 4 4..s333333334 JKK(  )	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s7   B >B
A'A"B"A''BB
Bc                R   K   | j                             t          j                   d S rE   )r(  shutdownsocketSHUT_WRrT   s    rI   send_eofzSocketStream.send_eof  s%      ""6>22222rJ   r:  )rF  )r   r   rC   r   r   r   )rt   ru   rv   rQ   r   r   rQ  r   r   s   @rI   r<  r<    s~        7 7 7 7 7 7

" 
" 
" 
" 
"	) 	) 	) 	)3 3 3 3 3 3 3 3rJ   r<  c                      e Zd ZddZddZdS )UNIXSocketStreammsglenr   maxfdsrC   tuple[bytes, list[int]]c           	     \  K   t          |t                    r|dk     rt          d          t          |t                    r|dk     rt          d          t          j        d          }t	                       d {V  | j        5  	 	 | j                            |t          j	        ||j
        z                       d {V \  }}}}|s	|st          n-# t          $ r}|                     |           Y d }~nd }~ww xY wz	 d d d            n# 1 swxY w Y   |D ]\  }	}
}|	t          j        k    s|
t          j        k    rt!          d|d|	 d	|
           |                    |d t%          |          t%          |          |j
        z  z
                      |t'          |          fS )
Nr   z%msglen must be a non-negative integer   z!maxfds must be a positive integeriTz.Received unexpected ancillary data; message = z, cmsg_level = z, cmsg_type = )r6  r   
ValueErrorarray
checkpointrB  r(  recvmsgrO  CMSG_LENitemsizer-   r4  r9  
SOL_SOCKET
SCM_RIGHTSr   	frombyteslenlist)rP   rT  rU  fdsmessageancdataflagsaddrr   
cmsg_level	cmsg_type	cmsg_datas               rI   receive_fdszUNIXSocketStream.receive_fds  sn     &#&& 	F&1**DEEE&#&& 	B&1**@AAAk#ll  	 	
:>:K:S:S0E F F; ; 5 5 5 5 5 51GWeT # *7 *)) % 4 4 4..s333333334 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 18 	Y 	Y,J	9V...)v?P2P2P"JW J J$.J J>GJ J  
 MM)$Vc)nnI8U&V$VWXXXXS		!!s=   D	A C	D
C>C94D9C>>DDDrf  r   re  Collection[int | IOBase]rK   c                  K   |st          d          |st          d          g }|D ]i}t          |t                    r|                    |           -t          |t                    r'|                    |                                           jt          j        d|          }t                       d {V  | j        5  	 	 | j	        
                    |gt          j        t          j        |fg           d {V  n-# t          $ r}|                     |           Y d }~nd }~ww xY wi	 d d d            d S # 1 swxY w Y   d S )Nzmessage must not be emptyzfds must not be emptyrY  )rZ  r6  r   appendr   r,  r[  r\  rC  r(  sendmsgrO  r`  ra  r4  r9  )rP   rf  re  filenosfdfdarrayr   s          rI   send_fdszUNIXSocketStream.send_fds   s      	:8999 	64555 	, 	,B"c"" ,r""""B'' ,ryy{{++++c7++ll 	4 	444+33 	 !' 1 & 1 '	 	 	 	 	 	 	 	 	 $ 4 4 4..s3333333344 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s<   D<:D D<
D*D% D<%D**D<<E E N)rT  r   rU  r   rC   rV  )rf  r   re  rn  rC   rK   )rt   ru   rv   rm  ru  rM   rJ   rI   rS  rS    s=        " " " "B4 4 4 4 4 4rJ   rS  c                  (     e Zd Zd fdZddZ xZS )	TCPSocketListener
raw_socketr.  c                    t                                          t          j                            |                     t          d          | _        d S Nzaccepting connections fromr   rQ   rN   rO  from_stdlib_socketr2   _accept_guardrP   rx  r   s     rI   rQ   zTCPSocketListener.__init__B  B    77
CCDDD*+GHHrJ   rC   r<  c                X  K   | j         5  	 | j                                         d {V \  }}n,# t          $ r}|                     |           Y d }~nd }~ww xY wd d d            n# 1 swxY w Y   |                    t          j        t          j        d           t          |          S )NrX  )
r}  r(  acceptr4  r9  
setsockoptrO  IPPROTO_TCPTCP_NODELAYr<  rP   r%  _addrr   s       rI   r  zTCPSocketListener.acceptF  s      	0 	00+/+<+C+C+E+E%E%E%E%E%E%E"UU  0 0 0**3////////0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	v163EqIIIK(((6   A'"/A'
AAA'AA''A+.A+rx  r.  )rC   r<  rt   ru   rv   rQ   r  r   r   s   @rI   rw  rw  A  sW        I I I I I I) ) ) ) ) ) ) )rJ   rw  c                  (     e Zd Zd fdZddZ xZS )	UNIXSocketListenerrx  r.  c                    t                                          t          j                            |                     t          d          | _        d S rz  r{  r~  s     rI   rQ   zUNIXSocketListener.__init__R  r  rJ   rC   rS  c                  K   | j         5  	 | j                                         d {V \  }}n,# t          $ r}|                     |           Y d }~nd }~ww xY wd d d            n# 1 swxY w Y   t          |          S rE   )r}  r(  r  r4  r9  rS  r  s       rI   r  zUNIXSocketListener.acceptV  s       	0 	00+/+<+C+C+E+E%E%E%E%E%E%E"UU  0 0 0**3////////0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0  ,,,r  r  )rC   rS  r  r   s   @rI   r  r  Q  sW        I I I I I I- - - - - - - -rJ   r  c                  0     e Zd Zd fdZddZdd
Z xZS )	UDPSocketr%  r&  rC   rK   c                    t                                          |           t          d          | _        t          d          | _        d S r>  rA  rD  s     rI   rQ   zUDPSocket.__init__a  rE  rJ   tuple[bytes, IPSockAddrType]c                &  K   | j         5  	 | j                            d           d {V \  }}|t          |          fcd d d            S # t          $ r}|                     |           Y d }~nd }~ww xY w	 d d d            d S # 1 swxY w Y   d S NrF  )rB  r(  recvfromr/   r4  r9  )rP   r   ri  r   s       rI   r   zUDPSocket.receivef  s$       	0 	00#'#4#=#=e#D#DDDDDDD
d24888	0 	0 	0 	0 	0 	0 	0 	0 ! 0 0 0**3////////0/	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s4   B3A
A5A0+B0A55BB
B
r   r5   c                   K   | j         5  	  | j        j        |  d {V  n,# t          $ r}|                     |           Y d }~nd }~ww xY wd d d            d S # 1 swxY w Y   d S rE   )rC  r(  sendtor4  r9  r   s      rI   r   zUDPSocket.sendn  s       	0 	00.d'.555555555  0 0 0**3////////0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s6   A"A
AAAAAA"Ar:  )rC   r  )r   r5   rC   rK   rt   ru   rv   rQ   r   r   r   r   s   @rI   r  r  `  se        7 7 7 7 7 7
0 0 0 00 0 0 0 0 0 0 0rJ   r  c                  0     e Zd Zd
 fdZddZdd	Z xZS )ConnectedUDPSocketr%  r&  rC   rK   c                    t                                          |           t          d          | _        t          d          | _        d S r>  rA  rD  s     rI   rQ   zConnectedUDPSocket.__init__w  rE  rJ   r   c                   K   | j         5  	 | j                            d           d {V 	 cd d d            S # t          $ r}|                     |           Y d }~nd }~ww xY w	 d d d            d S # 1 swxY w Y   d S r  )rB  r(  rH  r4  r9  r8  s     rI   r   zConnectedUDPSocket.receive|  s       	0 	00!.33E:::::::::	0 	0 	0 	0 	0 	0 	0 	0 ! 0 0 0**3////////0/		0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s2   A39
A"AA3A""A33A7:A7r   c                   K   | j         5  	 | j                            |           d {V  n,# t          $ r}|                     |           Y d }~nd }~ww xY wd d d            d S # 1 swxY w Y   d S rE   )rC  r(  r   r4  r9  r   s      rI   r   zConnectedUDPSocket.send  s       	0 	00',,T2222222222  0 0 0**3////////0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s6   A& -A&
AAA&AA&&A*-A*r:  )rC   r   r   r  r   s   @rI   r  r  v  se        7 7 7 7 7 7
0 0 0 00 0 0 0 0 0 0 0rJ   r  hoststrportr   local_addressIPSockAddrType | Nonec                  K   d| v rt           j        nt           j        }t          j                              |          }|                    t           j        t           j        d           |r|                    |           d {V  	 |                    | |f           d {V  n## t          $ r |
                                  w xY wt          |          S )N:rX  )rO  AF_INET6AF_INETrN   r  r  r  bindconnectr4  r3  r<  )r  r  r  familyr%  s        rI   connect_tcpr    s       !$tV__F+$$V,,K6-v/A1EEE .}---------!!4,//////////    $$$s   B% % Cpathc                   K   t           j                            t          j                  }	 |                    |            d {V  n## t          $ r |                                  w xY wt          |          S rE   )rN   rO  AF_UNIXr  r4  r3  rS  )r  r%  s     rI   connect_unixr    s      +$$V^44K!!$''''''''''    K(((s   A	 	 A)r  socket.AddressFamilyremote_address
reuse_portUDPSocket | ConnectedUDPSocketc                f  K   t           j                            | t          j                  }|r+|                    t          j        t          j        d           |r|                    |           d {V  |r*|                    |           d {V  t          |          S t          |          S )N)r  typerX  )
rN   rO  
SOCK_DGRAMr  r`  SO_REUSEPORTr  r  r  r  )r  r  r  r  r%  s        rI   create_udp_socketr    s       +$$F9J$KKK Jv0&2EqIII .}--------- &!!.111111111!+...%%%rJ   sockr.  c                   K   	 t          |            d {V  d S # t          j        $ r,}t                                          |j                  d d }~wt          j        $ r t          d          d w xY w)Nr?  )r8   rN   r,   with_traceback__traceback__r+   r  r   s     rI   wait_socket_readabler    s      :D!!!!!!!!!!!# P P P!##2233DEE4O! : : ://T9:    A4'A#A4c                   K   	 t          |            d {V  d S # t          j        $ r,}t                                          |j                  d d }~wt          j        $ r t          d          d w xY w)Nr@  )r9   rN   r,   r  r  r+   r  s     rI   wait_socket_writabler    s      8D!!!!!!!!!!!# P P P!##2233DEE4O! 8 8 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dS )r1   rC   c                6    t                               |           S rE   rF   r   s    rI   rG   zEvent.__new__  r   rJ   rK   c                6    t          j                    | _        d S rE   )rN   r1   _Event__originalrT   s    rI   rQ   zEvent.__init__  s    *,,rJ   rh   c                4    | j                                         S rE   )r  is_setrT   s    rI   r  zEvent.is_set  s    %%'''rJ   c                D   K   | j                                          d {V S rE   )r  r   rT   s    rI   r   z
Event.wait  s,      _))+++++++++rJ   r#   c                ^    | j                                         }t          |j                  S )N)tasks_waiting)r  
statisticsr#   r  )rP   orig_statisticss     rI   r  zEvent.statistics  s)    /4466_-JKKKKrJ   r'   c                \    | j                                          t          | j                  S rE   )r  r   r'   rT   s    rI   r   z	Event.set  s&    "48,,,rJ   N)rC   r1   r   rs   )rC   r#   rp   )	rt   ru   rv   rG   rQ   r  r   r  r   rM   rJ   rI   r1   r1     s        # # # #' ' ' '( ( ( (, , , ,L L L L- - - - - -rJ   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d0d%ZdS )1r0   r   rB   rA   rC   c                6    t                               |           S rE   rF   )rH   r   rA   s      rI   rG   zCapacityLimiter.__new__  r   rJ   Nr?   r   r?   r   rK   c               0    |pt          j        | | _        d S rE   )rN   r0   _CapacityLimiter__original)rP   r?   r   s      rI   rQ   zCapacityLimiter.__init__  s     #Ad&:D&ArJ   c                D   K   | j                                          d {V S rE   )r  r   rT   s    rI   r   zCapacityLimiter.__aenter__  s,      _//111111111rJ   rU   rV   rW   rX   rY   rZ   c                N   K   | j                             |||           d {V  d S rE   )r  r   r^   s       rI   r   zCapacityLimiter.__aexit__  s:       o'''6BBBBBBBBBBBrJ   ra   c                    | j         j        S rE   r  total_tokensrT   s    rI   r  zCapacityLimiter.total_tokens  s    ++rJ   re   c                    || j         _        d S rE   r  rg   s     rI   r  zCapacityLimiter.total_tokens  s    ',$$$rJ   r   c                    | j         j        S rE   )r  borrowed_tokensrT   s    rI   r  zCapacityLimiter.borrowed_tokens
  s    ..rJ   c                    | j         j        S rE   )r  available_tokensrT   s    rI   r  z CapacityLimiter.available_tokens  s    //rJ   r'   c                \    | j                                          t          | j                  S rE   )r  acquire_nowaitr'   rT   s    rI   r  zCapacityLimiter.acquire_nowait  s'    &&((("4#6777rJ   borrowerc                ^    | j                             |           t          | j                  S rE   )r  acquire_on_behalf_of_nowaitr'   rP   r  s     rI   r  z+CapacityLimiter.acquire_on_behalf_of_nowait  s)    33H==="4#CDDDrJ   c                H   K   | j                                          d {V  d S rE   )r  acquirerT   s    rI   r  zCapacityLimiter.acquire  s2      o%%'''''''''''rJ   c                J   K   | j                             |           d {V  d S rE   )r  acquire_on_behalf_ofr  s     rI   r  z$CapacityLimiter.acquire_on_behalf_of  s4      o228<<<<<<<<<<<rJ   c                4    | j                                         S rE   )r  releaserT   s    rI   r  zCapacityLimiter.release   s    &&(((rJ   c                6    | j                             |          S rE   )r  release_on_behalf_ofr  s     rI   r  z$CapacityLimiter.release_on_behalf_of#  s    33H===rJ   r"   c                    | j                                         }t          |j        |j        |j        |j                  S )N)r  r  	borrowersr  )r  r  r"   r  r  r  r  )rP   origs     rI   r  zCapacityLimiter.statistics&  sC    ))++( 0*n,	
 
 
 	
rJ   )r   rB   rA   rB   rC   r0   )r   r   r?   r   rC   rK   r   )rU   rV   rW   rX   rY   rZ   rC   rK   rq   rr   r  rp   )r  rB   rC   r'   )r  rB   rC   rK   )rC   r"   )rt   ru   rv   rG   rQ   r   r   rw   r  rx   r  r  r  r  r  r  r  r  r  rM   rJ   rI   r0   r0     s       # # # # CGB B B B B B
2 2 2 2C C C C , , , X, - - - - / / / X/ 0 0 0 X08 8 8 8E E E E( ( ( (= = = =) ) ) )> > > >
 
 
 
 
 
rJ   r0   _capacity_limiter_wrapperc                     	 t                                           S # t          $ rK t          t          j                                                  } t                               |            | cY S w xY w)Nr  )r  getLookupErrorr0   rN   	to_threadcurrent_default_thread_limiterr   )r   s    rI   r  r  3  sx    (,,...   !^BBDD
 
 
 	"%%g...s    AA0/A0c                  B    e Zd ZU ded<   ddZddZddZddZddZdS )_SignalReceiverzAsyncIterator[int]	_iteratorsignalstuple[Signals, ...]c                    || _         d S rE   )_signals)rP   r  s     rI   rQ   z_SignalReceiver.__init__F  s    rJ   rC   c                r    t          j        | j         | _        | j                                        | _        | S rE   )rN   open_signal_receiverr  _cmrS   r  rT   s    rI   rS   z_SignalReceiver.__enter__I  s-    ,dm<++--rJ   rU   rV   rW   rX   rY   rZ   r[   c                :    | j                             |||          S rE   )r  r]   r^   s       rI   r]   z_SignalReceiver.__exit__N  s     x  7F;;;rJ   c                    | S rE   rM   rT   s    rI   	__aiter__z_SignalReceiver.__aiter__V  s    rJ   r
   c                b   K   | j                                          d {V }t          |          S rE   )r  	__anext__r
   )rP   signums     rI   r   z_SignalReceiver.__anext__Y  s7      ~//11111111vrJ   N)r  r  )rC   r  ro   )rC   r
   )	rt   ru   rv   r   rQ   rS   r]   r  r   rM   rJ   rI   r  r  C  s         !!!!          
< < < <        rJ   r  r  r
   c                      t          |           S rE   )r  )r  s    rI   r  r  ^  s    7###rJ   r$   c                     t          j                    } d }| j        r%| j        j        rt	          | j        j                  }t          t	          |           || j        | j                  S rE   )trio_lowlevelcurrent_taskparent_nurseryparent_taskidr$   r   coro)task	parent_ids     rI   get_current_taskr  g  s^    %''DI 8t2> 8t*677	BtHHiDI>>>rJ   list[TaskInfo]c            
        t          j                    } t          t          |           d | j        | j                  g}| j        }|r}g }|D ]t}|j        D ]j}|                    t          t          |          t          |j	                  |j        |j                             |
                    |j                   ku|}|}|S rE   )r  current_root_taskr$   r  r   r	  child_nurserieschild_tasksrp  r  extend)	root_task
task_infos	nurseriesnew_nurseriesnurseryr
  s         rI   get_running_tasksr  q  s    /11I2i==$		OOPJ)I
 	",.  	; 	;G+ ; ;!!RXXr'*='>'>	49UU   $$T%9::::	; "	  	" rJ   Awaitable[None]c                 <    dd l } | j                                        S r+  )trio.testingtestingwait_all_tasks_blocked)rN   s    rI   r  r    s"    <..000rJ   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d!S )+
TestRunneroptionsr   rC   rK   c                    ddl m} ddlm}  |            | _         |            | _        d | _        d | _        || _        d S )Nr   )deque)Queue)	collectionsr"  queuer#  _call_queue_result_queue_stop_eventr   _options)rP   r   r"  r#  s       rI   rQ   zTestRunner.__init__  s\    %%%%%%9>-2UWW.2-1rJ   c                   K   t          j                    | _        t          j                    4 d {V | _        | j                                         d {V  d d d           d {V  d S # 1 d {V swxY w Y   d S rE   )rN   r1   r(  r   r   r   rT   s    rI   
_trio_mainzTestRunner._trio_main  s     :<<$&& 	* 	* 	* 	* 	* 	* 	*$-"'')))))))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   %A,,
A69A6r    Callable[..., Awaitable[object]]r   r   rA   dictc                   K   	  ||i | d {V }| j                             t          |                     d S # t          $ r2}| j                             t	          |                     Y d }~d S d }~ww xY wrE   )r'  rp  r   r4  r   )rP   r   r   rA   r   r   s         rI   r   zTestRunner._call_func  s      	54000000000F %%eFmm44444  	2 	2 	2%%eCjj111111111	2s   ; 
A7'A22A7outcomerB   c                    d | _         d S rE   )r   )rP   r/  s     rI   _main_task_finishedzTestRunner._main_task_finished  s    rJ   trio.Nurseryc                    | j         bt          j        j        | j        f| j        j        | j        d| j         | j         ( | j        	                                             | j         (| j         S )N)run_sync_soon_threadsafedone_callback)
r   rN   r7   start_guest_runr+  r&  putr1  r)  r  rT   s    rI   _get_nurseryzTestRunner._get_nursery  s    = M))-)9)="6  -	   -'& $$&&((( -' }rJ   r   r<   c                   |                                                      | j        |||           | j        s( | j                                                     | j        (| j                                        }|                                S rE   )r8  r   r   r'  r&  r  popunwrap)rP   r   r   rA   r/  s        rI   _callzTestRunner._call  s     	&&tdFKKK$ 	%"D  ""$$$ $ 	% $((**~~rJ   c                    | j         rJ| j                                          | j        , | j                                                     | j        (d S d S d S rE   )r(  r   r   r&  r  rT   s    rI   r3  zTestRunner.close  sg     	)  """-+& $$&&((( -+++	) 	)++rJ   fixture_func,Callable[..., AsyncGenerator[T_Retval, Any]]r   Iterable[T_Retval]c              #      K   dfdt          j                                          fd          }|V                                   d S )Ntask_statusTaskStatus[T_Retval]rC   rK   c                X  K    di }|                     d            d {V }|                     |                                            d {V  	 |                     d            d {V  |                                 d {V  t	          d          # t
          $ r Y d S w xY w)Nz$Async generator fixture did not stoprM   )asendstartedr   r   r   StopAsyncIteration)rB  agenr   r>  rA   teardown_events      rI   fixture_runnerz7TestRunner.run_asyncgen_fixture.<locals>.fixture_runner  s      <))&))D::d++++++++F''' %%'''''''''Kjj&&&&&&&&& kkmm#######"#IJJJ	 &   s   B 
B)(B)c                 R                                                                    S rE   )r8  r   )rJ  rP   s   rI   <lambda>z1TestRunner.run_asyncgen_fixture.<locals>.<lambda>  s!    4+<+<+>+>+D+D^+T+T rJ   )rB  rC  rC   rK   )rN   r1   r<  r   )rP   r>  rA   fixture_valuerJ  rI  s   ``` @@rI   run_asyncgen_fixturezTestRunner.run_asyncgen_fixture  s      
	K 	K 	K 	K 	K 	K 	K 	K 

#T#T#T#T#TUUrJ   ,Callable[..., Coroutine[Any, Any, T_Retval]]c                     | j         |fi |S rE   r<  )rP   r>  rA   s      rI   run_fixturezTestRunner.run_fixture  s    
 tz,11&111rJ   	test_func'Callable[..., Coroutine[Any, Any, Any]]c                "     | j         |fi | d S rE   rQ  )rP   rS  rA   s      rI   run_testzTestRunner.run_test  s$     	
9'''''''rJ   N)r   r   rC   rK   r   )r   r,  r   r   rA   r-  rC   rK   )r/  rB   rC   rK   )rC   r2  )r   r   r   rB   rA   rB   rC   r<   )r>  r?  rA   r   rC   r@  )r>  rO  rA   r   rC   r<   )rS  rT  rA   r   rC   rK   )rt   ru   rv   rQ   r+  r   r1  r8  r<  r3  rN  rR  rV  rM   rJ   rI   r  r    s               * * * *
5 5 5 5             ) ) ) )   .2 2 2 2( ( ( ( ( (rJ   r  )
r   r   r   rB   r   rh   r   r   rC   r<   )r   r   r   r   rC   r<   )r   r   r   r   rC   r<   )r  r  r  rh   r   r	  r   r	  r  r	  r  r
  r  r  r  rh   rC   r   )r  r  rC   rK   rE   )r  r  r  r   r  r  rC   r<  )r  r  rC   rS  )
r  r  r  r  r  r  r  rh   rC   r  )r  r.  rC   rK   )rC   r0   )r  r
   rC   r  )rC   r$   )rC   r  )rC   r  )
__future__r   r[  r  rO  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_threadrN   r/  r   r   r   trio.socketr   r&  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<   r  r=   r   r   current_tokenr  r  r  CancelledErrorr\  checkpoint_if_cancelledcancel_shielded_checkpointcurrent_effective_deadlinecurrent_timer   r{   r   r   r   r   ByteReceiveStreamr   ByteSendStreamr   r   
Instrumentr  r  r   r  r"  r$  r<  rS  SocketListenerrw  r  r  r  r  r  r  getaddrinfogetnameinfor  r  r  r  r  r  r  r  r  r  rM   rJ   rI   <module>r     s
   " " " " " " "    % % % % % % $ $ $ $ $ $ ! ! ! ! ! !                                                                 &      ) ) ) ) ) ) ) ) ) ) 4 4 4 4 4 4 # # # # # # H H H H H H H H H H H H N N N N N N N N 2 2 2 2 2 2            E D D D D D 2 2 2 2 2 2 K K K K K K 7 7 7 7 7 7 2 2 2 2 2 2 9 9 9 9 9 9 / / / / / / / / '&&&&&&;......
 ;::::::::	  9 9 9,,,,,,88888888889%2           7:W\377
 h0		 	
.' .' .' .' .'/ .' .' .'b ]%
-? !]E !<  	 	 	 	 	' 	 	 	+A +A +A +A +A +A +A +Al +/	     &) ) ) )," " " "
 
 
 
 
S' 
 
 
F e$ $ $ $ $30 $ $ $( e$ $ $ $ $* $ $ $ e. . . . .ck . . .p *.$(#H H H H H H6    TX%8   
 28,2 2 &    
' ' ' 'E E E E    wz*   >3 3 3 3 3#S%5 3 3 3B@4 @4 @4 @4 @4|S%9 @4 @4 @4F) ) ) ) )(#*< ) ) ) - - - - -)3+= - - -0 0 0 0 0 0#- 0 0 0,0 0 0 0 0).93;Q 0 0 0, BF% % % % %$) ) ) )& & & &* k%k%: : : :8 8 8 8- - - - -I - - -,?
 ?
 ?
 ?
 ?
) ?
 ?
 ?
D %+F+F$G$G  G G G G        34EF   6$ $ $ $? ? ? ?   $1 1 1 1[( [( [( [( [( [( [( [( [( [(s$   !C0 0DD
D D D 