
    n i                       U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
mZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZm Z  d dlm!Z! d dl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* d dl+Z,d dl-Z,d dl.m/Z/m0Z0m1Z1 d dl-m2Z2m3Z3m4Z4m5Z5m6Z6 d dl7m8Z9 d dl:m;Z; ddl<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZC ddlDmEZE ddlFmGZGmHZHmIZImJZJ ddlKmLZL ddlMmNZN ddlOmPZQ ddlOmRZS ddlOmTZU ddlOmVZVmWZW ddlOmXZY ddlZm[Z\ ddlCm]Z]m^Z^m_Z_ ddl`maZambZb dd lcmdZd e$rd d!lemfZf ejg        d"k    rd d#l"mhZh nd d#limhZh ejg        d$k    r	d d%l"mjZjmkZk nd d&llmmZm d d%limjZjmkZk  e(d'          Zn e(d(          Zo e(d)epe]          Zq ejd*          Zr ehd+          Zse,jt        ju        Zu G d, d-e\          Z[ G d. d/eCjv                  Zv G d0 d1eCjw                  Zw ed23           G d4 d5eCjx                              Zy ed23           G d6 d7eCjz                              Z{ ed23           G d8 d9eCj|                              Z| G d: d;e,jC        j}                  Z~ eud<          Zd=ed<<   dfdBZ G dC dDe&eq                   Z G dE dFeeCj                  Z G dG dHeeCj                  Z G dI dJeeCj                  Z G dK dLeeCj                  Z G dM dNee]         eCj                  Z G dO dPee]         eCj                  Z G dQ dReep         eCj                  Z G dS dTeep         eCj                  Z G dU dVeS          ZR G dW dXeU          ZT G dY dZeY          ZX G d[ d\eQ          ZP eud]          Zd=ed]<    G d^ d_          Z G d` daeCj                  Z G db dceA          Z G dd deea          ZeZdS )g    )annotationsN)AsyncGeneratorAsyncIterator	AwaitableCallable
Collection	CoroutineIterableSequence)Future)AbstractContextManager)	dataclass)partial)IOBase)PathLike)Signals)AddressFamily
SocketKind)TracebackType)IOTYPE_CHECKINGAnyGenericNoReturnTypeVarcastoverload)ErrorOutcomeValue)current_root_taskcurrent_tasknotify_closingwait_readablewait_writable)
SocketType)run_sync   )CapacityLimiterStatisticsEventStatisticsLockStatisticsRunFinishedErrorTaskInfo
WouldBlockabc)claim_worker_thread)BrokenResourceErrorBusyResourceErrorClosedResourceErrorEndOfStream)convert_ipv6_sockaddr)create_memory_object_streamCapacityLimiterEventLock)ResourceGuardSemaphoreStatistics	SemaphoreCancelScope)IPSockAddrTypeUDPPacketTypeUNIXDatagramPacketType)AsyncBackendStrOrBytesPath)MemoryObjectSendStream)FileDescriptorLike)   
   )	ParamSpec)rJ      )TypeVarTupleUnpack)BaseExceptionGroupTT_Retval
T_SockAddrPosArgsTPc                      e Zd Z	 dd dZdd!d
Zd"dZd#dZdd$dZed%d            Z	e	j
        d&d            Z	ed'd            Zed'd            Zed'd            Zej
        d(d            ZdS ))rB   Noriginaltrio.CancelScope | Nonekwargsobjectreturnc                6    t                               |           S NrZ   __new__)clsrW   rY   s      L/var/www/findabus/venv/lib/python3.11/site-packages/anyio/_backends/_trio.pyr_   zCancelScope.__new__x   s     ~~c"""    r   Nonec                6    |pt          j        di || _        d S N )triorB   _CancelScope__original)selfrW   rY   s      ra   __init__zCancelScope.__init__}   s#    "@d&6&@&@&@&@rb   c                8    | j                                          | S r]   )rh   	__enter__ri   s    ra   rl   zCancelScope.__enter__   s    !!###rb   exc_typetype[BaseException] | Noneexc_valBaseException | Noneexc_tbTracebackType | Noneboolc                :    | j                             |||          S r]   )rh   __exit__ri   rn   rp   rr   s       ra   rv   zCancelScope.__exit__   s     '''6BBBrb   reason
str | Nonec                :    | j                             |           d S r]   )rh   cancel)ri   rx   s     ra   r{   zCancelScope.cancel   s    v&&&&&rb   floatc                    | j         j        S r]   rh   deadlinerm   s    ra   r   zCancelScope.deadline   s    ''rb   valuec                    || j         _        d S r]   r~   ri   r   s     ra   r   zCancelScope.deadline   s    #(   rb   c                    | j         j        S r]   )rh   cancel_calledrm   s    ra   r   zCancelScope.cancel_called   s    ,,rb   c                    | j         j        S r]   )rh   cancelled_caughtrm   s    ra   r   zCancelScope.cancelled_caught       //rb   c                    | j         j        S r]   rh   shieldrm   s    ra   r   zCancelScope.shield   s    %%rb   c                    || j         _        d S r]   r   r   s     ra   r   zCancelScope.shield   s    !&rb   r]   )rW   rX   rY   rZ   r[   rB   )rW   rX   rY   r   r[   rc   )r[   rB   rn   ro   rp   rq   rr   rs   r[   rt   )rx   ry   r[   rc   r[   r|   r   r|   r[   rc   r[   rt   )r   rt   r[   rc   )__name__
__module____qualname__r_   rj   rl   rv   r{   propertyr   setterr   r   r   rf   rb   ra   rB   rB   w   sW       15# # # # #
A A A A A   C C C C' ' ' ' ' ( ( ( X( _) ) ) _) - - - X- 0 0 0 X0 & & & X& ]' ' ' ]' ' 'rb   rB   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 )	TaskGroupr[   rc   c                V    d| _         t          j        d          | _        d | _        d S )NFT)strict_exception_groups)_activerg   open_nursery_nursery_managercancel_scoperm   s    ra   rj   zTaskGroup.__init__   s-     $ 1$ O O O rb   c                   K   d| _         | j                                         d {V | _        t	          | j        j                  | _        | S )NT)r   r   
__aenter___nurseryrB   r   rm   s    ra   r   zTaskGroup.__aenter__   sO      "3>>@@@@@@@@'(BCCrb   rn   ro   rp   rq   rr   rs   rt   c                *  K   	 | j                             |||           d {V 	 ~~d| _        S # t          $ rJ}|                    t
          j                  d         st
          j                                        | d }~ww xY w# ~~d| _        w xY w)NF   )r   	__aexit__r   rP   splitrg   	Cancelled_create)ri   rn   rp   rr   excs        ra   r   zTaskGroup.__aexit__   s      
	!.887FSSSSSSSSS  DLL " 	 	 	99T^,,Q/ 8n,,..C7		  DL    s!   !0 
BAA??BB BNnamefunc,Callable[[Unpack[PosArgsT]], Awaitable[Any]]argsUnpack[PosArgsT]r   rZ   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ri   r   r   r   s       ra   r   zTaskGroup.start_soon   sP     | 	M   	! 8888488888rb   Callable[..., Awaitable[Any]]r   c               j   K   | j         st          d           | j        j        |g|R d|i d {V S r   )r   r   r   startr   s       ra   r   zTaskGroup.start   s`       | 	M   )T](@@@@4@@@@@@@@@rb   r[   rc   )r[   r   r   )r   r   r   r   r   rZ   r[   rc   )r   r   r   rZ   r   rZ   r[   r   )r   r   r   rj   r   r   r   r   rf   rb   ra   r   r      s        ! ! ! !
   ! ! ! !, 	9 9 9 9 9 9 RVA A A A A A A Arb   r   c                  0     e Zd ZddZd fdZddZ xZS )BlockingPortalr[   c                6    t                               |           S r]   r^   r`   s    ra   r_   zBlockingPortal.__new__       ~~c"""rb   rc   c                    t                                                       t          j                                        | _        d S r]   )superrj   rg   lowlevelcurrent_trio_token_tokenri   	__class__s    ra   rj   zBlockingPortal.__init__   s2    m6688rb   r   <Callable[[Unpack[PosArgsT]], Awaitable[T_Retval] | T_Retval]r   tuple[Unpack[PosArgsT]]rY   dict[str, Any]r   rZ   futureFuture[T_Retval]c           	         t           j                            t          | j        j        |          | j        ||||| j                   d S )Nr   )
trio_token)rg   from_threadr'   r   _task_groupr   
_call_funcr   )ri   r   r   rY   r   r   s         ra   _spawn_task_from_threadz&BlockingPortal._spawn_task_from_thread   sZ     	!!D$/d;;;O{ 	" 	
 	
 	
 	
 	
rb   )r[   r   r   )r   r   r   r   rY   r   r   rZ   r   r   r[   rc   )r   r   r   r_   rj   r   __classcell__r   s   @ra   r   r      se        # # # #9 9 9 9 9 9
 
 
 
 
 
 
 
rb   r   F)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 | Noner[   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t          |          S t          r]   )r   receive_somerg   r3   	__cause__r1   r   r4   ri   r   datar   s       ra   receivezReceiveStreamWrapper.receive  s      	9229========DD' 	9 	9 	9%3=8' 	9 	9 	9%3=8	9  	;;s     % A%AA%A  A%rc   c                H   K   | j                                          d {V  d S r]   r   acloserm   s    ra   r   zReceiveStreamWrapper.aclose  2      l!!###########rb   r]   )r   r   r[   r   r   )r   r   r   __annotations__r   r   rf   rb   ra   r   r     sO         ####    $ $ $ $ $ $rb   r   c                  *    e Zd ZU ded<   d
dZddZd	S )SendStreamWrapperztrio.abc.SendStreamr   itemr   r[   rc   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r]   )r   send_allrg   r3   r   r1   ri   r   r   s      ra   sendzSendStreamWrapper.send!  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 r]   r   rm   s    ra   r   zSendStreamWrapper.aclose)  r   rb   Nr   r   r[   rc   r   )r   r   r   r   r   r   rf   rb   ra   r   r     sJ             9 9 9 9$ $ $ $ $ $rb   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_stderrr[   rc   c                >  K   t          d          5  | j        r| j                                         d {V  | j        r| j                                         d {V  | j        r| j                                         d {V  d d d            n# 1 swxY w Y   	 |                                  d {V  d S # t          $ rX |                                  t          d          5  |                                  d {V  d d d            n# 1 swxY w Y    w xY wNT)r   )rB   r   r   r   r   waitBaseExceptionkillrm   s    ra   r   zProcess.aclose4  s     %%% 	, 	,{ +k((*********| ,l))+++++++++| ,l))+++++++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,	))++ 	 	 	IIKKKD))) " "iikk!!!!!!!" " " " " " " " " " " " " " "		sB   A3BBBB: :.D(DDD	DD	Dintc                D   K   | j                                          d {V S r]   )r   r   rm   s    ra   r   zProcess.waitE  s,      ]'')))))))))rb   c                8    | j                                          d S r]   )r   	terminaterm   s    ra   r   zProcess.terminateH  s    !!!!!rb   c                8    | j                                          d S r]   )r   r   rm   s    ra   r   zProcess.killK  s    rb   signalr   c                :    | j                             |           d S r]   )r   send_signal)ri   r   s     ra   r   zProcess.send_signalN  s    !!&)))))rb   c                    | j         j        S r]   )r   pidrm   s    ra   r   zProcess.pidQ  s    }  rb   r   c                    | j         j        S r]   )r   
returncoderm   s    ra   r  zProcess.returncodeU  s    }''rb   c                    | j         S r]   )r   rm   s    ra   stdinzProcess.stdinY  s
    {rb   c                    | j         S r]   )r   rm   s    ra   stdoutzProcess.stdout]  
    |rb   c                    | j         S r]   )r   rm   s    ra   stderrzProcess.stderra  r  rb   Nr   r[   r   )r   r   r[   rc   r[   r   )r[   r   )r[   r   )r   r   r   r   r   r   r   r   r   r   r   r  r  r  r	  rf   rb   ra   r   r   -  sJ        %%%%))))))))   "* * * *" " " "   * * * * ! ! ! X! ( ( ( X(    X    X    X  rb   r   c                        e Zd Zd fdZ xZS )_ProcessPoolShutdownInstrumentr[   rc   c                H    t                                                       d S r]   )r   	after_runr   s    ra   r  z(_ProcessPoolShutdownInstrument.after_rung  s    rb   r   )r   r   r   r  r   r   s   @ra   r  r  f  s=                 rb   r  &current_default_worker_process_limiterztrio.lowlevel.RunVarworkersset[abc.Process]r[   rc   c                T  K   	 t          j        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r   )	rg   sleepmathinfr   r  r   rB   r   )r  processs     ra   _shutdown_process_poolr  p  s0     	'j"""""""""""> ' ' ' 	 	G!)%%% 	' 	'" ' 'nn&&&&&&&&&&'	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	''s3   $* ?B') B
B'B	B'B	 B'&B'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TrioSocketTyper[   rc   c                "    || _         d| _        d S NF)_trio_socket_closed)ri   r  s     ra   rj   z_TrioSocketMixin.__init__  s    'rb   c                j    | j         rt          | j                                        dk     rt          d S Nr   )r   r3   r  filenor1   rm   s    ra   _check_closedz_TrioSocketMixin._check_closed  s:    < 	&%%##%%))%% *)rb   socket.socketc                    | j         j        S r]   )r  _sockrm   s    ra   _raw_socketz_TrioSocketMixin._raw_socket  s     &&rb   c                   K   | j                                         dk    r"d| _        | j                                          d S d S )Nr   T)r  r#  r   closerm   s    ra   r   z_TrioSocketMixin.aclose  sJ      ##%%**DL##%%%%% +*rb   r   r   r   c                    t          |t          j                  rt          || j                                        dk     r| j        rt          d t          |t                    rt          ||r"  )
isinstancerg   r3   r  r#  r   OSErrorr1   ri   r   s     ra   _convert_socket_errorz&_TrioSocketMixin._convert_socket_error  sg    c4344 	%3.%%''!+++%4/W%% 	%3.Irb   Nr  r  r[   rc   r   )r[   r%  )r   r   r[   r   )	r   r   r   rj   r$  r   r(  r   r/  rf   rb   ra   r  r    s           & & & & ' ' ' X'& & & &
     rb   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  r[   rc   c                    t                                          |           t          d          | _        t          d          | _        d S Nreading from
writing tor   rj   r=   _receive_guard_send_guardri   r  r   s     ra   rj   zSocketStream.__init__  A    %%%+N;;(66rb      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 r]   )r8  r  recvr   r/  r4   r   s       ra   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 r]   )r9  
memoryviewr  r   r   r/  )ri   r   view
bytes_sentr   s        ra   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 r]   )r  shutdownsocketSHUT_WRrm   s    ra   send_eofzSocketStream.send_eof  s%      ""6>22222rb   r0  )r<  )r   r   r[   r   r   r   )r   r   r   rj   r   r   rG  r   r   s   @ra   r2  r2    s~        7 7 7 7 7 7

" 
" 
" 
" 
"	) 	) 	) 	)3 3 3 3 3 3 3 3rb   r2  c                      e Zd ZddZddZdS )UNIXSocketStreammsglenr   maxfdsr[   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          j                                         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 integerr   z!maxfds must be a positive integeriTz.Received unexpected ancillary data; message = z, cmsg_level = z, cmsg_type = )r,  r   
ValueErrorarrayrg   r   
checkpointr8  r  recvmsgrE  CMSG_LENitemsizer4   r   r/  
SOL_SOCKET
SCM_RIGHTSr   	frombyteslenlist)ri   rJ  rK  fdsmessageancdataflagsaddrr   
cmsg_level	cmsg_type	cmsg_datas               ra   receive_fdszUNIXSocketStream.receive_fds  sx     &#&& 	F&1**DEEE&#&& 	B&1**@AAAk#m&&(((((((((  	 	
:>: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%
D/D	D	DDD#&D#r[  r   rZ  Collection[int | IOBase]rc   c                  K   |st          d          |st          d          g }|D ]i}t          |t                    r|                    |           -t          |t                    r'|                    |                                           jt          j        d|          }t          j        	                                 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 emptyrN  )rO  r,  r   appendr   r#  rP  rg   r   rQ  r9  r  sendmsgrE  rU  rV  r   r/  )ri   r[  rZ  filenosfdfdarrayr   s          ra   send_fdszUNIXSocketStream.send_fds  s      	:8999 	64555 	, 	,B"c"" ,r""""B'' ,ryy{{++++c7++m&&((((((((( 	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<   E:DE
D:D50E5D::EEEN)rJ  r   rK  r   r[   rL  )r[  r   rZ  rc  r[   rc   )r   r   r   rb  rj  rf   rb   ra   rI  rI    s=        " " " "B4 4 4 4 4 4rb   rI  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   rj   rg   rE  from_stdlib_socketr=   _accept_guardri   rm  r   s     ra   rj   zTCPSocketListener.__init__  B    77
CCDDD*+GHHrb   r[   r2  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 Nr   )
rr  r  acceptr   r/  
setsockoptrE  IPPROTO_TCPTCP_NODELAYr2  ri   r  _addrr   s       ra   rw  zTCPSocketListener.accept
  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+rm  r%  )r[   r2  r   r   r   rj   rw  r   r   s   @ra   rl  rl    sW        I I I I I I) ) ) ) ) ) ) )rb   rl  c                  (     e Zd Zd fdZddZ xZS )	UNIXSocketListenerrm  r%  c                    t                                          t          j                            |                     t          d          | _        d S ro  rp  rs  s     ra   rj   zUNIXSocketListener.__init__  rt  rb   r[   rI  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 r]   )rr  r  rw  r   r/  rI  r{  s       ra   rw  zUNIXSocketListener.accept  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~  )r[   rI  r  r   s   @ra   r  r    sW        I I I I I I- - - - - - - -rb   r  c                  0     e Zd Zd fdZddZdd
Z xZS )	UDPSocketr  r  r[   rc   c                    t                                          |           t          d          | _        t          d          | _        d S r4  r7  r:  s     ra   rj   zUDPSocket.__init__%  r;  rb   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 Nr<  )r8  r  recvfromr5   r   r/  ri   r   r^  r   s       ra   r   zUDPSocket.receive*  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   rD   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 r]   r9  r  sendtor   r/  r   s      ra   r   zUDPSocket.send2         	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 	06   A"A
AAAAAA"Ar0  )r[   r  )r   rD   r[   rc   r   r   r   rj   r   r   r   r   s   @ra   r  r  $  e        7 7 7 7 7 7
0 0 0 00 0 0 0 0 0 0 0rb   r  c                  0     e Zd Zd
 fdZddZdd	Z xZS )ConnectedUDPSocketr  r  r[   rc   c                    t                                          |           t          d          | _        t          d          | _        d S r4  r7  r:  s     ra   rj   zConnectedUDPSocket.__init__;  r;  rb   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  r8  r  r>  r   r/  r.  s     ra   r   zConnectedUDPSocket.receive@         	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 	02   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 r]   r9  r  r   r   r/  r   s      ra   r   zConnectedUDPSocket.sendG         	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 	06   A& -A&
AAA&AA&&A*-A*r0  r[   r   r   r  r   s   @ra   r  r  :  se        7 7 7 7 7 7
0 0 0 00 0 0 0 0 0 0 0rb   r  c                  0     e Zd Zd
 fdZddZdd	Z xZS )UNIXDatagramSocketr  r  r[   rc   c                    t                                          |           t          d          | _        t          d          | _        d S r4  r7  r:  s     ra   rj   zUNIXDatagramSocket.__init__P  r;  rb   rE   c                  K   | j         5  	 | j                            d           d {V \  }}||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 r  )r8  r  r  r   r/  r  s       ra   r   zUNIXDatagramSocket.receiveU  s       	0 	00#'#4#=#=e#D#DDDDDDD
dTz	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   A9&?
A(	A#A9#A((A99A= A=r   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 r]   r  r   s      ra   r   zUNIXDatagramSocket.send]  r  r  r0  )r[   rE   )r   rE   r[   rc   r  r   s   @ra   r  r  O  r  rb   r  c                  0     e Zd Zd
 fdZddZdd	Z xZS )ConnectedUNIXDatagramSocketr  r  r[   rc   c                    t                                          |           t          d          | _        t          d          | _        d S r4  r7  r:  s     ra   rj   z$ConnectedUNIXDatagramSocket.__init__h  r;  rb   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  r  r.  s     ra   r   z#ConnectedUNIXDatagramSocket.receivem  r  r  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 r]   r  r   s      ra   r   z ConnectedUNIXDatagramSocket.sendt  r  r  r0  r  r   r  r   s   @ra   r  r  e  se        7 7 7 7 7 7
0 0 0 00 0 0 0 0 0 0 0rb   r  c                  >    e Zd ZddZddZddZddZdd	Zdd
ZdS )r:   r[   c                6    t                               |           S r]   r^   r   s    ra   r_   zEvent.__new__  r   rb   rc   c                6    t          j                    | _        d S r]   )rg   r:   _Event__originalrm   s    ra   rj   zEvent.__init__  s    *,,rb   rt   c                4    | j                                         S r]   )r  is_setrm   s    ra   r  zEvent.is_set      %%'''rb   c                D   K   | j                                          d {V S r]   )r  r   rm   s    ra   r   z
Event.wait  s,      _))+++++++++rb   r*   c                ^    | j                                         }t          |j                  S )N)tasks_waiting)r  
statisticsr*   r  ri   orig_statisticss     ra   r  zEvent.statistics  s)    /4466_-JKKKKrb   c                8    | j                                          d S r]   )r  setrm   s    ra   r  z	Event.set  s    rb   N)r[   r:   r   r   )r[   r*   )	r   r   r   r_   rj   r  r   r  r  rf   rb   ra   r:   r:     s        # # # #' ' ' '( ( ( (, , , ,L L L L     rb   r:   c                  j    e Zd ZddddZddddZedd            ZddZddZddZ	ddZ
ddZdS )r<   Ffast_acquirer  rt   r[   c               6    t                               |           S r]   r^   r`   r  s     ra   r_   zLock.__new__  r   rb   rc   c               D    || _         t          j                    | _        d S r]   )_fast_acquirerg   r<   _Lock__original)ri   r  s     ra   rj   zLock.__init__  s    ))++rb   r   r   c                .    | j         dk    r	d| _         d S d S )N)z*attempt to re-acquire an already held Lock)z)Attempted to acquire an already held Lock)r   )r   s    ra   _convert_runtime_error_msgzLock._convert_runtime_error_msg  s$    8FFFECHHH GFrb   c                  K   | j         sK	 | j                                         d {V  n(# t          $ r}|                     |            d }~ww xY wd S t
          j                                         d {V  	 | j                                         d S # t
          j	        $ r( | j        j
                                         d {V  Y d S t          $ r}|                     |            d }~ww xY wr]   )r  r  acquirer   r  rg   r   checkpoint_if_cancelledacquire_nowaitr.   _lotparkr.  s     ra   r  zLock.acquire  s?     ! 	o--//////////   //444 F m33555555555	O**,,,,, 	. 	. 	./&++------------ 	 	 	++C000	s2   + 
AAA:B 3C/	C/C**C/c                    	 | j                                          d S # t          j        $ r	 t          d t          $ r}|                     |            d }~ww xY wr]   )r  r  rg   r.   r   r  r.  s     ra   r  zLock.acquire_nowait  ss    	O**,,,,, 	' 	' 	'$& 	 	 	++C000	s     AAAc                4    | j                                         S r]   )r  lockedrm   s    ra   r  zLock.locked  r  rb   c                8    | j                                          d S r]   )r  releaserm   s    ra   r  zLock.release      !!!!!rb   r+   c                    | j                                         }|j        rt          |j                  nd }t	          |j        ||j                  S r]   )r  r  ownerTrioTaskInfor+   r  r  )ri   r  r  s      ra   r  zLock.statistics  sR    /44667F7LV_2333RV"E?+H
 
 	
rb   Nr  rt   r[   r<   )r  rt   r[   rc   )r   r   r[   rc   r   r   )r[   r+   )r   r   r   r_   rj   staticmethodr  r  r  r  r  r  rf   rb   ra   r<   r<     s        -2 # # # # # # 05 & & & & & & F F F \F   (   ( ( ( (" " " "
 
 
 
 
 
rb   r<   c                       e Zd ZdddddZdddd fdZddZddZedd            Zedd            Z	ddZ
ddZ xZS )r@   NF	max_valuer  initial_valuer   r  r   r  rt   r[   c               6    t                               |           S r]   r^   r`   r  r  r  s       ra   r_   zSemaphore.__new__  s     ~~c"""rb   rc   c                   t                                          |||           t          j        ||          | _        d S )Nr  )r  )r   rj   rg   r@   _Semaphore__original)ri   r  r  r  r   s       ra   rj   zSemaphore.__init__  s>     	),WWW.)LLLrb   c                J  K   | j         s!| j                                         d {V  d S t          j                                         d {V  	 | j                                         d S # t          j        $ r( | j        j        	                                 d {V  Y d S w xY wr]   )
r  r  r  rg   r   r  r  r.   r  r  rm   s    ra   r  zSemaphore.acquire  s      ! 	/))+++++++++F m33555555555	.O**,,,,, 	. 	. 	./&++------------	.s   A+ +3B"!B"c                p    	 | j                                          d S # t          j        $ r	 t          d w xY wr]   )r  r  rg   r.   rm   s    ra   r  zSemaphore.acquire_nowait  sF    	'O**,,,,, 	' 	' 	'$&	's    5c                    | j         j        S r]   )r  r  rm   s    ra   r  zSemaphore.max_value  s    ((rb   c                    | j         j        S r]   )r  r   rm   s    ra   r   zSemaphore.value  s    $$rb   c                8    | j                                          d S r]   )r  r  rm   s    ra   r  zSemaphore.release  r  rb   r>   c                \    | j                                         }t          |j                  S r]   )r  r  r>   r  r  s     ra   r  zSemaphore.statistics  s&    /4466"?#@AAArb   )r  r   r  r   r  rt   r[   r@   )r  r   r  r   r  rt   r[   rc   r   r  r
  )r[   r>   )r   r   r   r_   rj   r  r  r   r  r   r  r  r   r   s   @ra   r@   r@     s       
 !%"# # # # # # !%"M M M M M M M M
. 
. 
. 
.' ' ' ' ) ) ) X) % % % X%" " " "B B B B B B B Brb   r@   c                      e Zd Z	 d$ddd%dZ	 d$ddd&d
Zd'dZd(dZed)d            Zej	        d*d            Zed+d            Z
ed)d            Zd'dZd,dZd'dZd,dZd'd Zd,d!Zd-d#ZdS ).r8   NrW   total_tokensfloat | NonerW   trio.CapacityLimiter | Noner[   c               6    t                               |           S r]   r^   )r`   r  rW   s      ra   r_   zCapacityLimiter.__new__  s     ~~c"""rb   rc   c               V    |	|| _         d S |J t          j        |          | _         d S r]   )_CapacityLimiter__originalrg   r8   )ri   r  rW   s      ra   rj   zCapacityLimiter.__init__  s7     &DOOO+++"2<@@DOOOrb   c                D   K   | j                                          d {V S r]   )r  r   rm   s    ra   r   zCapacityLimiter.__aenter__  s,      _//111111111rb   rn   ro   rp   rq   rr   rs   c                N   K   | j                             |||           d {V  d S r]   )r  r   rw   s       ra   r   zCapacityLimiter.__aexit__  s:       o'''6BBBBBBBBBBBrb   r|   c                    | j         j        S r]   r  r  rm   s    ra   r  zCapacityLimiter.total_tokens$  s    ++rb   r   c                    || j         _        d S r]   r  r   s     ra   r  zCapacityLimiter.total_tokens(  s    ',$$$rb   r   c                    | j         j        S r]   )r  borrowed_tokensrm   s    ra   r  zCapacityLimiter.borrowed_tokens,  s    ..rb   c                    | j         j        S r]   )r  available_tokensrm   s    ra   r  z CapacityLimiter.available_tokens0  r   rb   c                8    | j                                          d S r]   )r  r  rm   s    ra   r  zCapacityLimiter.acquire_nowait4  s    &&(((((rb   borrowerrZ   c                :    | j                             |           d S r]   )r  acquire_on_behalf_of_nowaitri   r  s     ra   r  z+CapacityLimiter.acquire_on_behalf_of_nowait7  s    33H=====rb   c                H   K   | j                                          d {V  d S r]   )r  r  rm   s    ra   r  zCapacityLimiter.acquire:  s2      o%%'''''''''''rb   c                J   K   | j                             |           d {V  d S r]   )r  acquire_on_behalf_ofr  s     ra   r  z$CapacityLimiter.acquire_on_behalf_of=  s4      o228<<<<<<<<<<<rb   c                4    | j                                         S r]   )r  r  rm   s    ra   r  zCapacityLimiter.release@  s    &&(((rb   c                6    | j                             |          S r]   )r  release_on_behalf_ofr  s     ra   r  z$CapacityLimiter.release_on_behalf_ofC  s    33H===rb   r)   c                    | j                                         }t          |j        |j        t          |j                  |j                  S )N)r  r  	borrowersr  )r  r  r)   r  r  tupler  r  )ri   origs     ra   r  zCapacityLimiter.statisticsF  sK    ))++( 0*DN++,	
 
 
 	
rb   r]   )r  r  rW   r  r[   r8   )r  r  rW   r  r[   rc   r   )rn   ro   rp   rq   rr   rs   r[   rc   r   r   r
  )r  rZ   r[   rc   )r[   r)   )r   r   r   r_   rj   r   r   r   r  r   r  r  r  r  r  r  r  r  r  rf   rb   ra   r8   r8     s        &*# 15	# # # # # # &*
A 15	
A 
A 
A 
A 
A 
A2 2 2 2C C C C , , , X, - - - - / / / X/ 0 0 0 X0) ) ) )> > > >( ( ( (= = = =) ) ) )> > > >
 
 
 
 
 
rb   r8   _capacity_limiter_wrapperc                  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 r]   )_signals)ri   r  s     ra   rj   z_SignalReceiver.__init__[  s    rb   r[   c                r    t          j        | j         | _        | j                                        | _        | S r]   )rg   open_signal_receiverr  _cmrl   r  rm   s    ra   rl   z_SignalReceiver.__enter__^  s-    ,dm<++--rb   rn   ro   rp   rq   rr   rs   bool | Nonec                :    | j                             |||          S r]   )r  rv   rw   s       ra   rv   z_SignalReceiver.__exit__c  s     x  7F;;;rb   c                    | S r]   rf   rm   s    ra   	__aiter__z_SignalReceiver.__aiter__k  s    rb   r   c                b   K   | j                                          d {V }t          |          S r]   )r  	__anext__r   )ri   signums     ra   r  z_SignalReceiver.__anext__n  s7      ~//11111111vrb   N)r  r  )r[   r  )rn   ro   rp   rq   rr   rs   r[   r  )r[   r   )	r   r   r   r   rj   rl   rv   r  r  rf   rb   ra   r  r  X  s         !!!!          
< < < <        rb   r  c                  N    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#S ),
TestRunneroptionsr   r[   rc   c                L    ddl m}  |            | _        d | _        || _        d S )Nr   )Queue)queuer  _call_queue_send_stream_options)ri   r  r  s      ra   rj   zTestRunner.__init__y  s5    8=;?rb   rn   ro   rp   rq   rr   types.TracebackType | Nonec                    | j         rJ| j                                          | j         , | j                                                     | j         (d S d S d S r]   )r  r*  r  getrw   s       ra   rv   zTestRunner.__exit__  sk      	)##%%%#/& $$&&((( #///	) 	)//rb   c                T  K   t          d          \  | _        }|5  |2 3 d {V \  }}	 | d {V }|                    t          |                     6# t          $ r,}|                    t          |                     Y d }~gd }~ww xY w6 	 d d d            d S # 1 swxY w Y   d S rv  )r6   r  re  r    r   r   )ri   receive_streamcorooutcome_holderretvalr   s         ra   _run_tests_and_fixturesz"TestRunner._run_tests_and_fixtures  s8     ,G,J,J)> 	9 	9.< 9 9 9 9 9 9 9*dN9#'ZZZZZZF #))%--8888 % 6 6 6"))%**555555556 /=n	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9sC   BBBA#B
B"BBBBB!$B!outcomerZ   c                    d | _         d S r]   )r  )ri   r%  s     ra   _main_task_finishedzTestRunner._main_task_finished  s     rb   r    Callable[P, Awaitable[T_Retval]]r   P.argsrY   P.kwargsrR   c                   | j         bt          j        j        | j        f| j        j        | j        d| j         | j         ( | j        	                                             | j         (g }| j         
                     ||i ||f           |s# | j        	                                             |#|d                                         S )N)run_sync_soon_threadsafedone_callbackr   )r  rg   r   start_guest_runr$  r  putr'  r  r  send_nowaitunwrap)ri   r   r   rY   r"  s        ra   _call_in_runner_taskzTestRunner._call_in_runner_task  s     $M),)-)9)="6  -	   #+& $$&&((( #+ )+%%ttT'<V'<'<n&MNNN  	%"D  ""$$$ ! 	% a '')))rb   fixture_func,Callable[..., AsyncGenerator[T_Retval, Any]]r   Iterable[T_Retval]c              #     K    |di |}|                      |j        d           }|V  	 |                      |j        d            |                      |j                   t          d          # t          $ r Y d S w xY w)Nz$Async generator fixture did not stoprf   )r2  asendr   r   StopAsyncIteration)ri   r3  rY   asyncgenfixturevalues        ra   run_asyncgen_fixturezTestRunner.run_asyncgen_fixture  s      
  <))&))!%!:!:8>4!P!P	G%%hnd;;; %%ho666EFFF	 " 	 	 	DD	s   A/ /
A=<A=,Callable[..., Coroutine[Any, Any, T_Retval]]c                     | j         |fi |S r]   r2  )ri   r3  rY   s      ra   run_fixturezTestRunner.run_fixture  s    
 )t(@@@@@rb   	test_func'Callable[..., Coroutine[Any, Any, Any]]c                "     | j         |fi | d S r]   r>  )ri   r@  rY   s      ra   run_testzTestRunner.run_test  s%     	"!)66v66666rb   N)r  r   r[   rc   )rn   ro   rp   rq   rr   r  r[   rc   r   )r%  rZ   r[   rc   )r   r(  r   r)  rY   r*  r[   rR   )r3  r4  rY   r   r[   r5  )r3  r<  rY   r   r[   rR   )r@  rA  rY   r   r[   rc   )r   r   r   rj   rv   r$  r'  r2  r;  r?  rC  rf   rb   ra   r  r  x  s               	) 	) 	) 	)	9 	9 	9 	9! ! ! !* * * *.G G G G$A A A A7 7 7 7 7 7rb   r  c                  (     e Zd Zd fdZddZ xZS )	r  tasktrio.lowlevel.Taskc                   d }|j         r%|j         j        rt          |j         j                  }t                                          t          |          ||j        |j                   t          j        |          | _	        d S r]   )
parent_nurseryparent_taskidr   rj   r   r!  weakrefproxy_task)ri   rE  	parent_idr   s      ra   rj   zTrioTaskInfo.__init__  sp    	 	<4#6#B 	<4.:;;ID9diCCC]4((


rb   r[   rt   c                H    	 | j         j        j        S # t          $ r Y dS w xY wr  )rM  _cancel_statuseffectively_cancelledReferenceErrorrm   s    ra   has_pending_cancellationz%TrioTaskInfo.has_pending_cancellation  s9    	:,BB 	 	 	 55	s    
!!)rE  rF  r   )r   r   r   rj   rS  r   r   s   @ra   r  r    sQ        ) ) ) ) ) )       rb   r  c                     e Zd Zedd
            Zedd            Zedd            Zedd            Zedd            Zedd            Z	edd            Z
edd            Zeej        dddd            Zedd            Zedd             Zedd"            Zedd%            Zed&dd'dd-            Zedd0            Ze	 	 ddd5            Zedd6            Zedd8            Zedd9            Zedd;            ZeddD            ZeddG            Ze	 dddN            ZeddR            ZeddV            ZeddW            Zedd]            Z ee!dda                        Z"ee!ddc                        Z"eddf            Z"edgdgdgdgdhddq            Z#e	 dddu            Z$eddx            Z%eddy            Z&eddz            Z'edd{            Z(edd|            Z)edd~            Z*edd            Z+edd            Z,edd            Z-edd            Z.edd            Z/edd            Z0edd            Z1edd            Z2edd            Z3edd            Z4d&S )TrioBackendr   1Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]]r   r   rY   r   r  r[   rR   c                &    t          j        |g|R  S r]   )rg   run)r`   r   r   rY   r  s        ra   rX  zTrioBackend.run  s     x$t$$$$rb   rZ   c                >    t           j                                        S r]   )rg   r   r   r   s    ra   current_tokenzTrioBackend.current_token  s    }//111rb   r|   c                (    t          j                    S r]   )rg   current_timer   s    ra   r\  zTrioBackend.current_time  s     """rb   type[BaseException]c                    t           j        S r]   )rg   r   r   s    ra   cancelled_exception_classz%TrioBackend.cancelled_exception_class  s
    ~rb   rc   c                R   K   t           j                                         d {V  d S r]   )rg   r   rQ  r   s    ra   rQ  zTrioBackend.checkpoint  s2      m&&(((((((((((rb   c                R   K   t           j                                         d {V  d S r]   )rg   r   r  r   s    ra   r  z#TrioBackend.checkpoint_if_cancelled  s2      m3355555555555rb   c                R   K   t           j                                         d {V  d S r]   )rg   r   cancel_shielded_checkpointr   s    ra   rc  z&TrioBackend.cancel_shielded_checkpoint   s2      m6688888888888rb   delayc                >   K   t          j        |           d {V  d S r]   )rg   r  )r`   rd  s     ra   r  zTrioBackend.sleep  s.      jrb   Fr   r   r   r   rt   abc.CancelScopec               $    t          ||          S )Nrf  rA   )r`   r   r   s      ra   create_cancel_scopezTrioBackend.create_cancel_scope  s     HV<<<<rb   c                (    t          j                    S r]   )rg   current_effective_deadliner   s    ra   rk  z&TrioBackend.current_effective_deadline  s    .000rb   abc.TaskGroupc                    t                      S r]   )r   r   s    ra   create_task_groupzTrioBackend.create_task_group  s    {{rb   	abc.Eventc                    t                      S r]   r9   r   s    ra   create_eventzTrioBackend.create_event  s    wwrb   r  r<   c               "    t          |          S )Nr  r;   r  s     ra   create_lockzTrioBackend.create_lock  s    ....rb   Nr  r  r   r  r   abc.Semaphorec               &    t          |||          S )Nr  r?   r  s       ra   create_semaphorezTrioBackend.create_semaphore  s     ),WWWWrb   r  r8   c                     t          |          S r]   r7   )r`   r  s     ra   create_capacity_limiterz#TrioBackend.create_capacity_limiter(  s    |,,,rb   &Callable[[Unpack[PosArgsT]], T_Retval]abandon_on_cancellimiterabc.CapacityLimiter | Nonec                   K   dfd}t                                           t          ||t          t          j        |                     d {V S )Nr[   rR   c                 l    t          t                    5     cd d d            S # 1 swxY w Y   d S r]   )r0   rU  )r   r   tokens   ra   wrapperz6TrioBackend.run_sync_in_worker_thread.<locals>.wrapper4  s    $[%88 # #tT{# # # # # # # # # # # # # # # # # #s   )--)rz  r{  )r[   rR   )rU  rZ  r'   r   rg   r8   )r`   r   r   rz  r{  r  r  s    ``   @ra   run_sync_in_worker_threadz%TrioBackend.run_sync_in_worker_thread,  s      	# 	# 	# 	# 	# 	# 	# 	# ))++/-w77
 
 
 
 
 
 
 
 
 	
rb   c                B    t           j                                         d S r]   )rg   r   check_cancelledr   s    ra   r  zTrioBackend.check_cancelled?  s    ((*****rb   r  c                    t          d|          }	 t          j        j        |g|R d|iS # t          j        $ r	 t          d w xY wNztrio.lowlevel.TrioToken | Noner   )r   rg   r   rX  r,   r`   r   r   r  r   s        ra   run_async_from_threadz!TrioBackend.run_async_from_threadC  sc     :EBB
	-#'KtKKK
KKK$ 	- 	- 	-",	-	   , Ac                    t          d|          }	 t          j        j        |g|R d|iS # t          j        $ r	 t          d w xY wr  )r   rg   r   r'   r,   r  s        ra   run_sync_from_threadz TrioBackend.run_sync_from_threadP  sc     :EBB
	-#,TPDPPPZPPP$ 	- 	- 	-",	-r  abc.BlockingPortalc                    t                      S r]   )r   r   s    ra   create_blocking_portalz"TrioBackend.create_blocking_portal]  s    rb   command)StrOrBytesPath | Sequence[StrOrBytesPath]r  int | IO[Any] | Noner  r	  r   r   c                 
K   d
d
t          |t          t          t          f          r,t	          j        j         
|          f|||dd| d {V }n.t	          j        j        
fd|D             f|||d	d| d {V }|j        rt          |j                  nd }|j	        rt          |j	                  nd }|j        rt          |j                  nd }	t          ||||	          S )Nr   rG   r[   strc                    t          j        |           }t          |t                    r|S t          j        |          S r]   )osfspathr,  r  fsdecode)r   str_or_bytess     ra   convert_itemz.TrioBackend.open_process.<locals>.convert_itemk  s7    9T??L,,, 1##{<000rb   T)r  r  r	  shellc                &    g | ]} |          S rf   rf   ).0r   r  s     ra   
<listcomp>z,TrioBackend.open_process.<locals>.<listcomp>}  s#    888d##888rb   F)r   rG   r[   r  )r,  r  r   r   rg   r   open_processr  r   r  r   r	  r   )r`   r  r  r  r	  rY   r  stdin_streamstdout_streamstderr_streamr  s             @ra   r  zTrioBackend.open_processa  so     	1 	1 	1 	1 gUH566 	 M6W%%         GG !M68888888         G <C=R(777d@GX,W^<<<TX@GX,W^<<<TXwm]KKKrb   r  r  c                P    t           j                            t          |           d S r]   )rg   r   spawn_system_taskr  )r`   r  s     ra   #setup_process_pool_exit_at_shutdownz/TrioBackend.setup_process_pool_exit_at_shutdown  s!    ''(>HHHHHrb   hostr  portlocal_addressIPSockAddrType | Noner2  c                  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:r   )rE  AF_INET6AF_INETrg   rx  ry  rz  bindconnectr   r*  r2  )r`   r  r  r  familyr  s         ra   connect_tcpzTrioBackend.connect_tcp  s       %(4KKV^k((00v163EqIII 	2""=111111111	%%tTl3333333333 	 	 		 K(((s   B% % Cpathstr | bytesabc.UNIXSocketStreamc                   K   t           j                            t          j                  }	 |                    |           d {V  n## t          $ r |                                  w xY wt          |          S r]   )rg   rE  AF_UNIXr  r   r*  rI  )r`   r  r  s      ra   connect_unixzTrioBackend.connect_unix  s      k((88	%%d++++++++++ 	 	 		  ,,,s   A	 	 A)sockr%  abc.SocketListenerc                     t          |          S r]   rl  r`   r  s     ra   create_tcp_listenerzTrioBackend.create_tcp_listener  s     &&&rb   c                     t          |          S r]   )r  r  s     ra   create_unix_listenerz TrioBackend.create_unix_listener  s    !$'''rb   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  typer   )
rg   rE  
SOCK_DGRAMrx  rU  SO_REUSEPORTr  r  r  r  )r`   r  r  r  r  r  s         ra   create_udp_socketzTrioBackend.create_udp_socket  s       k((V=N(OO 	N""6#4f6I1MMM 	2""=111111111 	*%%n555555555%k222[)))rb   rm  remote_pathabc.UNIXDatagramSocketc                
   K   d S r]   rf   r`   rm  r  s      ra   create_unix_datagram_socketz'TrioBackend.create_unix_datagram_socket  s       "%rb   abc.ConnectedUNIXDatagramSocketc                
   K   d S r]   rf   r  s      ra   r  z'TrioBackend.create_unix_datagram_socket  s       +.#rb   str | bytes | None8abc.UNIXDatagramSocket | abc.ConnectedUNIXDatagramSocketc                   K   t           j                            |          }|r*|                    |           d {V  t	          |          S t          |          S r]   )rg   rE  rq  r  r  r  )r`   rm  r  r  s       ra   r  z'TrioBackend.create_unix_datagram_socket  sg       k44Z@@ 	3%%k222222222.{;;;%k222rb   r   )r  r  protor]  bytes | str | Nonestr | int | Noneint | AddressFamilyr  int | SocketKindr  r]  uSequence[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]]]c               Z   K   t           j                            ||||||           d {V S r]   )rg   rE  getaddrinfo)r`   r  r  r  r  r  r]  s          ra   r  zTrioBackend.getaddrinfo  s:      & [,,T4ueTTTTTTTTTrb   sockaddrrC   tuple[str, str]c                R   K   t           j                            ||           d {V S r]   )rg   rE  getnameinfo)r`   r  r]  s      ra   r  zTrioBackend.getnameinfo  s2       [,,Xu=========rb   objrI   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)Nr5  )r$   rg   r3   with_traceback__traceback__r2   r`   r  r   s      ra   r$   zTrioBackend.wait_readable  s      	>$$$$$$$$$$$' 	T 	T 	T%''66s7HIItS% 	> 	> 	>#N33=	>    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)Nr6  )r%   rg   r3   r  r  r2   r  s      ra   r%   zTrioBackend.wait_writable  s      	<$$$$$$$$$$$' 	T 	T 	T%''66s7HIItS% 	< 	< 	<#L11t;	<r  c                $    t          |           d S r]   )r#   )r`   r  s     ra   r#   zTrioBackend.notify_closing  s    srb   c                $   K   t          |          S r]   r  r  s     ra   wrap_listener_socketz TrioBackend.wrap_listener_socket  s       &&&rb   c                b   K   t           j                            |          }t          |          S r]   )rg   rE  rq  r2  r`   r  	trio_socks      ra   wrap_stream_socketzTrioBackend.wrap_stream_socket  s)      K22488	I&&&rb   rI  c                b   K   t           j                            |          }t          |          S r]   )rg   rE  rq  rI  r  s      ra   wrap_unix_stream_socketz#TrioBackend.wrap_unix_stream_socket  s)      K22488		***rb   r  c                b   K   t           j                            |          }t          |          S r]   )rg   rE  rq  r  r  s      ra   wrap_udp_socketzTrioBackend.wrap_udp_socket   s)      K22488	###rb   r  c                b   K   t           j                            |          }t          |          S r]   )rg   rE  rq  r  r  s      ra   wrap_connected_udp_socketz%TrioBackend.wrap_connected_udp_socket%  )      K22488	!),,,rb   r  c                b   K   t           j                            |          }t          |          S r]   )rg   rE  rq  r  r  s      ra   wrap_unix_datagram_socketz%TrioBackend.wrap_unix_datagram_socket*  r  rb   r  c                b   K   t           j                            |          }t          |          S r]   )rg   rE  rq  r  r  s      ra   #wrap_connected_unix_datagram_socketz/TrioBackend.wrap_connected_unix_datagram_socket/  s+       K22488	*9555rb   c                    	 t                                           S # t          $ rK t          t          j                                                  }t                               |           |cY S w xY w)Nr  )r  r  LookupErrorr8   rg   	to_threadcurrent_default_thread_limiterr  )r`   r{  s     ra   r  z*TrioBackend.current_default_thread_limiter6  sx    	,00222 	 	 	%FFHH  G &))'222NNN	s    AA0/A0r  r   .AbstractContextManager[AsyncIterator[Signals]]c                     t          |          S r]   )r  )r`   r  s     ra   r
  z TrioBackend.open_signal_receiverA  s     w'''rb   r-   c                <    t                      }t          |          S r]   )r"   r  )r`   rE  s     ra   get_current_taskzTrioBackend.get_current_taskG  s    ~~D!!!rb   Sequence[TaskInfo]c                    t                      }|sJ t          |          g}|j        }|rQg }|D ]H}|j        D ]>}|                    t          |                     |                    |j                   ?I|}|Q|S r]   )r!   r  child_nurserieschild_tasksre  extend)r`   	root_task
task_infos	nurseriesnew_nurseriesnurseryrE  s          ra   get_running_taskszTrioBackend.get_running_tasksL  s    %''	"9--.
-	 	&02M$ ? ?#/ ? ?D%%l4&8&8999!(()=>>>>? &I  	& rb   c                6   K   ddl m}  |             d {V  d S )Nr   )wait_all_tasks_blocked)trio.testingr
  )r`   r
  s     ra   r
  z"TrioBackend.wait_all_tasks_blocked]  s?      777777$$&&&&&&&&&&&rb   r  c                    t          di |S re   )r  )r`   r  s     ra   create_test_runnerzTrioBackend.create_test_runnerc  s    $$G$$$rb   )
r   rV  r   r   rY   r   r  r   r[   rR   )r[   rZ   r   )r[   r]  r   )rd  r|   r[   rc   )r   r|   r   rt   r[   rg  )r[   rl  )r[   ro  r  )r  r   r  r   r  rt   r[   rt  )r  r|   r[   r8   )FN)
r   ry  r   r   rz  rt   r{  r|  r[   rR   )r   rV  r   r   r  rZ   r[   rR   )r   ry  r   r   r  rZ   r[   rR   )r[   r  )r  r  r  r  r  r  r	  r  rY   r   r[   r   r  r  r[   rc   r]   )r  r  r  r   r  r  r[   r2  )r  r  r[   r  )r  r%  r[   r  )
r  r  r  r  r  r  r  rt   r[   r  )rm  r%  r  rc   r[   r  )rm  r%  r  r  r[   r  )rm  r%  r  r  r[   r  )r  r  r  r  r  r  r  r  r  r   r]  r   r[   r  )r   )r  rC   r]  r   r[   r  )r  rI   r[   rc   )r  r%  r[   r2  )r  r%  r[   rI  )r  r%  r[   r  )r  r%  r[   r  )r  r%  r[   r  )r  r%  r[   r  )r[   r8   )r  r   r[   r  )r[   r-   )r[   r  )r  r   r[   r  )5r   r   r   classmethodrX  rZ  r\  r_  rQ  r  rc  r  r  r  ri  rk  rn  rq  rs  rv  rx  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r$   r%   r#   r  r  r  r  r  r  r  r  r
  r  r  r
  r  rf   rb   ra   rU  rU    s       % % % [% 2 2 2 [2 # # # [#    [ ) ) ) [) 6 6 6 [6 9 9 9 [9       [  "&(5= = = = = [=
 1 1 1 [1    [    [ / / / [/ 
 !%"X X X X X [X - - - [- 
 #(.2
 
 
 
 [
$ + + + [+ 
- 
- 
- [
- 
- 
- 
- [
-       [  &L &L &L [&LP I I I [I JN) ) ) ) [)" - - - [- ' ' ' [' ( ( ( [( * * * [** % % % X [% . . . X [. 	3 	3 	3 [	3  '(!"U U U U U [U( 45> > > > [>
 > > > [> < < < [<    [ ' ' ' [' ' ' ' [' + + + [+ $ $ $ [$ - - - [- - - - [- 6 6 6 [6    [ ( ( ( [(
 " " " ["    [  ' ' ' ['
 % % % [% % %rb   rU  r  )
__future__r   rP  r  r  rE  systypesrK  collections.abcr   r   r   r   r   r	   r
   r   concurrent.futuresr   
contextlibr   dataclassesr   	functoolsr   ior   r   r   r   r   r   r   typingr   r   r   r   r   r   r   r   trio.from_threadrg   trio.lowlevelr%  r   r   r    r!   r"   r#   r$   r%   trio.socketr&   r  trio.to_threadr'    r)   r*   r+   r,   r-   r.   r/   _core._eventloopr0   _core._exceptionsr1   r2   r3   r4   _core._socketsr5   _core._streamsr6   _core._synchronizationr8   BaseCapacityLimiterr:   	BaseEventr<   BaseLockr=   r>   r@   BaseSemaphore_core._tasksrB   BaseCancelScoperC   rD   rE   abc._eventlooprF   rG   streams.memoryrH   	_typeshedrI   version_inforL   typing_extensionsrN   rO   exceptiongrouprP   rQ   rR   r  rS   rT   rU   r   RunVarr   r   ByteReceiveStreamr   ByteSendStreamr   r   
Instrumentr  r  r   r  r  r2  rI  SocketListenerrl  r  r  r  r  r  r  r  r  r  rU  backend_classrf   rb   ra   <module>r6     sT
   " " " " " " "   				  



  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 & % % % % % - - - - - - ! ! ! ! ! !                         , , , , , , , ,      	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	         ) ) ) ) ) ) ) ) ) )              5 4 4 4 4 4 # # # # # #                  3 2 2 2 2 2            3 2 2 2 2 2 8 8 8 8 8 8      8 7 7 7 7 7 5 5 5 5 5 5        @ ? ? ? ? ? 9 9 9 9 9 9 G G G G G G G G G G 9 9 9 9 9 9 9 9 3 3 3 3 3 3 -,,,,,,w       ++++++w+++++++++11111166666666GCLL7:W\377
<
##IcNN 
	.' .' .' .' .'/ .' .' .'l3A 3A 3A 3A 3A 3A 3A 3Av
 
 
 
 
S' 
 
 
@ e$ $ $ $ $30 $ $ $( e$ $ $ $ $* $ $ $ e5 5 5 5 5ck 5 5 5p    TX%8   
 @Fv,@ @ &    

' 
' 
' 
'$    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*0 0 0 0 0)#.0F 0 0 0,0 0 0 0 0S3:0 0 08    I   *5
 5
 5
 5
 5
8 5
 5
 5
p3B 3B 3B 3B 3B 3B 3B 3BlI
 I
 I
 I
 I
) I
 I
 I
X 39&9T2U2U  U U U U       @T7 T7 T7 T7 T7 T7 T7 T7n    8   $D% D% D% D% D%, D% D% D%N rb   