o
    #6dSu                     @  s  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rd dlPmQZQ zd dl(mRZS W n eTy   d dl(mUZS d dlVmWZWmXZX Y n	w d dlYmWZWmXZX zeSjZZ[W n e\y   d dl(mZZ[ Y nw e$d Z]e$d!e^eNZ_e(j`Z`e(jRjaZbe(jRjcZce(jdZdG d"d# d#eMZLe(jeZfe(jRjgZge(jRjhZhe(jRjiZie(jjZje(jkZkG d$d% d%eBe(jlZAG d&d' d'e6jmZmd(dd)dd3d4Zndd8d9Zodd:d;ZpG d<d= d=e6jqZqe
d(d>G d?d@ d@e6jrZse
d(d>G dAdB dBe6jtZue
d(d>G dCdD dDe6jvZvddd(dEddRdSZZG dTdU dUe(j6jwZxecdVZydWezdV< dd[d\Z{dd]d^Z|G d_d` d`ee_ Z}G dadb dbe}e6j~Z~G dcdd dde~e6jZG dedf dfe}e6jZG dgdh dhe}e6jZG didj dje}eN e6jZG dkdl dle}eN e6jZ	dddsdtZddvdwZdd}d~Ze(jjZe(jjZdddZdddZG dd deIZHG dd deGZFecdZdWezd< dddZG dd de8d ZdddZdddZdddZdddZG dd 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)hazmat)wait_readablewait_writable)open_processT_Retval
T_SockAddrc                   @  s   e Zd Z	d&d'ddZd&d(ddZd)ddZd*ddZd+ddZed,ddZ	e	j
d-ddZ	ed.d!d"Zed.d#d$Zej
d/d%d$ZdS )0r2   Noriginaltrio.CancelScope | Nonekwargsobjectreturnc                 K  
   t | S Nr@   __new__)clsr=   r?    rG   lC:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\site-packages\anyio/_backends/_trio.pyrE   e   s   
zCancelScope.__new__r   Nonec                 K  s   |p	t jdi || _d S )NrG   )trior2   _CancelScope__original)selfr=   r?   rG   rG   rH   __init__j   s   zCancelScope.__init__c                 C  s   | j   | S rC   )rK   	__enter__rL   rG   rG   rH   rN   m   s   
zCancelScope.__enter__exc_typetype[BaseException] | Noneexc_valBaseException | Noneexc_tbTracebackType | Nonebool | Nonec                 C     | j |||S rC   )rK   __exit__rL   rP   rR   rT   rG   rG   rH   rX   q   s   zCancelScope.__exit__r&   c                 C     | j   t| jS rC   )rK   cancelr&   rO   rG   rG   rH   r[   |      

zCancelScope.cancelfloatc                 C     | j jS rC   rK   deadlinerO   rG   rG   rH   r`         zCancelScope.deadlinevaluec                 C     || j _d S rC   r_   rL   rb   rG   rG   rH   r`         boolc                 C  r^   rC   )rK   cancel_calledrO   rG   rG   rH   rg      ra   zCancelScope.cancel_calledc                 C  r^   rC   rK   shieldrO   rG   rG   rH   ri      ra   zCancelScope.shieldc                 C  rc   rC   rh   rd   rG   rG   rH   ri      re   rC   )r=   r>   r?   r@   rA   r2   )r=   r>   r?   r   rA   rI   )rA   r2   rP   rQ   rR   rS   rT   rU   rA   rV   rA   r&   rA   r]   rb   r]   rA   rI   rA   rf   )rb   rf   rA   rI   )__name__
__module____qualname__rE   rM   rN   rX   r[   propertyr`   setterrg   ri   rG   rG   rG   rH   r2   d   s"    


r2   c                   @  s   e Zd ZdS )r-   N)ro   rp   rq   rG   rG   rG   rH   r-      s    r-   c                   @  sJ   e Zd ZdddZdddZdddZdddddZdddddZdS ) 	TaskGrouprA   rI   c                 C  s   d| _ t | _d | _d S NF)_activerJ   open_nursery_nursery_managercancel_scoperO   rG   rG   rH   rM      s   

zTaskGroup.__init__c                   s,   d| _ | j I d H | _t| jj| _| S NT)rv   rx   
__aenter___nurseryr2   ry   rO   rG   rG   rH   r{      s
   zTaskGroup.__aenter__rP   rQ   rR   rS   rT   rU   rV   c              
     sT   z$z| j |||I d H W W d| _S  tjy% } zt|jd d }~ww d| _w ru   )rx   	__aexit__rv   rJ   
MultiErrorr-   
exceptions)rL   rP   rR   rT   excrG   rG   rH   r}      s   zTaskGroup.__aexit__NnamefuncCallable[..., Awaitable[Any]]argsr@   r   c                G  s,   | 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   )rv   RuntimeErrorr|   
start_soonrL   r   r   r   rG   rG   rH   r      s
   zTaskGroup.start_soonc                  s0   | j std| jj|g|R d|iI d H S r   )rv   r   r|   startr   rG   rG   rH   r      s    zTaskGroup.startrA   rI   )rA   rt   rj   )r   r   r   r@   r   r@   rA   rI   )r   r   r   r@   r   r@   rA   r@   )ro   rp   rq   rM   r{   r}   r   r   rG   rG   rG   rH   rt      s    


rt   Fcancellablelimiterr   Callable[..., T_Retval]r   r@   r   rf   r   trio.CapacityLimiter | NonerA   c                  s@   d fdd}t  }|tjjd  t|j|||dI d H S )NrA   r;   c                     s4   t d   W  d    S 1 sw   Y  d S )NrJ   r'   rG   r   r   rG   rH   wrapper   s   
$z*run_sync_in_worker_thread.<locals>.wrapperr   rA   r;   )r   runsniffiocurrent_async_library_cvarsetr   )r   r   r   r   r   contextrG   r   rH   run_sync_in_worker_thread   s   
r   fn"Callable[..., Awaitable[T_Retval]]r   c                   s4   d fdd}t  tjjd tj|S )NrA   r;   c               	     sl   d fdd} t  4 I d H }|j|  W d   I d H  d} S 1 I d H s-w   Y  d} S )NrA   rI   c                    s   d}   I d H d S rz   rG   )__tracebackhide__)r   r   retvalrG   rH   inner   s   z5run_async_from_thread.<locals>.wrapper.<locals>.innerTr   )rJ   rw   r   r   )r   nr   r   r   r   )r   rH   r      s   z&run_async_from_thread.<locals>.wrapperrJ   r   )r   r   r   r   r   rJ   from_thread)r   r   r   rG   r   rH   run_async_from_thread   s   r   c                 G  s$   t jjt j| g|R  }tt|S rC   )rJ   r   r   r   r   r   r;   )r   r   r   rG   rG   rH   run_sync_from_thread  s   
r   c                      s2   e Zd ZdddZd fddZdddZ  ZS )BlockingPortalrA   c                 C  rB   rC   rD   rF   rG   rG   rH   rE   	     
zBlockingPortal.__new__rI   c                   s   t    tj | _d S rC   )superrM   rJ   r6   current_trio_token_tokenrO   	__class__rG   rH   rM     s   
zBlockingPortal.__init__r   r   r   tupler?   dict[str, Any]r   r@   futurer   c              
   C  sH   t  }|tjjd tjj|jt| j	j
|d| j||||| jd d S )NrJ   r   )Z
trio_token)r   r   r   r   r   rJ   r   r   r   Z_task_groupr   
_call_funcr   )rL   r   r   r?   r   r   r   rG   rG   rH   _spawn_task_from_thread  s   
z&BlockingPortal._spawn_task_from_thread)rA   r   r   )r   r   r   r   r?   r   r   r@   r   r   rA   rI   )ro   rp   rq   rE   rM   r   __classcell__rG   rG   r   rH   r     s    
r   )eqc                   @  s,   e Zd ZU ded< dddd	ZdddZdS )ReceiveStreamWrapperztrio.abc.ReceiveStream_streamN	max_bytes
int | NonerA   bytesc              
     sh   z| j |I d H }W n! tjy } zt|jd }~w tjy- } zt|jd }~ww |r2|S trC   )r   Zreceive_somerJ   r+   	__cause__r)   r,   rL   r   datar   rG   rG   rH   receive/  s   zReceiveStreamWrapper.receiverI   c                      | j  I d H  d S rC   r   acloserO   rG   rG   rH   r   <     zReceiveStreamWrapper.acloserC   )r   r   rA   r   r   )ro   rp   rq   __annotations__r   r   rG   rG   rG   rH   r   +  s   
 r   c                   @  s*   e Zd ZU ded< dddZdd	d
ZdS )SendStreamWrapperztrio.abc.SendStreamr   itemr   rA   rI   c              
     s^   z| j |I d H  W d S  tjy } zt|jd }~w tjy. } zt|jd }~ww rC   )r   Zsend_allrJ   r+   r   r)   rL   r   r   rG   rG   rH   sendD  s   zSendStreamWrapper.sendc                   r   rC   r   rO   rG   rG   rH   r   L  r   zSendStreamWrapper.acloseNr   r   rA   rI   r   )ro   rp   rq   r   r   r   rG   rG   rG   rH   r   @  s   
 
r   c                   @  s   e Zd ZU ded< ded< ded< ded< d#d
dZd$ddZd#ddZd#ddZd%ddZe	d$ddZ
e	d&ddZe	d'ddZe	d(ddZe	d(d d!Zd"S ))Processztrio.Process_processabc.ByteSendStream | None_stdinabc.ByteReceiveStream | None_stdout_stderrrA   rI   c                   sV   | j r| j  I d H  | jr| j I d H  | jr"| j I d H  |  I d H  d S rC   )r   r   r   r   waitrO   rG   rG   rH   r   W  s   zProcess.acloseintc                      | j  I d H S rC   )r   r   rO   rG   rG   rH   r   a     zProcess.waitc                 C     | j   d S rC   )r   	terminaterO   rG   rG   rH   r   d     zProcess.terminatec                 C  r   rC   )r   killrO   rG   rG   rH   r   g  r   zProcess.killsignalr	   c                 C  s   | j | d S rC   )r   send_signal)rL   r   rG   rG   rH   r   j  s   zProcess.send_signalc                 C  r^   rC   )r   pidrO   rG   rG   rH   r   m  ra   zProcess.pidr   c                 C  r^   rC   )r   
returncoderO   rG   rG   rH   r   q  ra   zProcess.returncodec                 C     | j S rC   )r   rO   rG   rG   rH   stdinu     zProcess.stdinc                 C  r   rC   )r   rO   rG   rG   rH   stdouty  r   zProcess.stdoutc                 C  r   rC   )r   rO   rG   rG   rH   stderr}  r   zProcess.stderrNr   rA   r   )r   r	   rA   rI   )rA   r   )rA   r   )rA   r   )ro   rp   rq   r   r   r   r   r   r   rr   r   r   r   r   r   rG   rG   rG   rH   r   P  s(   
 





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             
     sj   t | |||||||dI d H }|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   processZstdin_streamZstdout_streamZstderr_streamrG   rG   rH   r:     s   
r:   c                      s   e Zd Zd fddZ  ZS )_ProcessPoolShutdownInstrumentrA   rI   c                   s   t    d S rC   )r   	after_runrO   r   rG   rH   r     r   z(_ProcessPoolShutdownInstrument.after_runr   )ro   rp   rq   r   r   rG   rG   r   rH   r     s    r   &current_default_worker_process_limiterRunVarworkersset[Process]rI   c                   s   zt tjI d H  W d S  tjyH   | D ]}|jd u r!|  qtdd | D ]	}| I d H  q*W d    Y d S 1 s@w   Y  Y d S w )NT)ri   )	sleepmathinfrJ   	Cancelledr   r   r2   r   )r   r   rG   rG   rH   _shutdown_process_pool  s   
&r   c                 C  s   t jt|  d S rC   )rJ   r6   Zspawn_system_taskr   )r   rG   rG   rH   #setup_process_pool_exit_at_shutdown  s   r   c                   @  sB   e Zd ZdddZdddZedd
dZdddZdddZdS )_TrioSocketMixintrio_socketTrioSocketTyperA   rI   c                 C  s   || _ d| _d S ru   )_trio_socket_closedrL   r   rG   rG   rH   rM     s   
z_TrioSocketMixin.__init__c                 C  s    | j rt| j dk rtd S Nr   )r   r+   r   filenor)   rO   rG   rG   rH   _check_closed  s
   z_TrioSocketMixin._check_closedsocket.socketc                 C  r^   rC   )r   _sockrO   rG   rG   rH   _raw_socket  ra   z_TrioSocketMixin._raw_socketc                   s(   | j  dkrd| _| j   d S d S )Nr   T)r   r   r   closerO   rG   rG   rH   r     s
   z_TrioSocketMixin.acloser   BaseExceptionr   c                 C  s@   t |tjr	t|| j dk r| jrtd t |trt||r   )
isinstancerJ   r+   r   r   r   OSErrorr)   rL   r   rG   rG   rH   _convert_socket_error  s   
z&_TrioSocketMixin._convert_socket_errorNr   r   rA   rI   r   )rA   r   )r   r  rA   r   )	ro   rp   rq   rM   r   rr   r  r   r  rG   rG   rG   rH   r     s    


r   c                      s>   e Zd Zd fddZddddZdddZdddZ  ZS )SocketStreamr   r   rA   rI   c                   $   t  | td| _td| _d S Nreading from
writing tor   rM   r1   _receive_guard_send_guardr   r   rG   rH   rM        
zSocketStream.__init__   r   r   r   c                   s~   | j 1 z| j|I d H }W n ty' } z| | W Y d }~nd }~ww |r3|W  d    S t1 s8w   Y  d S rC   )r  r   recvr  r  r,   r   rG   rG   rH   r     s   	zSocketStream.receiver   c                   s   | j B t|}|r>z| j|I d H }W n ty- } z| | W Y d }~nd }~ww ||d  }|sW d    d S W d    d S 1 sIw   Y  d S rC   )r  
memoryviewr   r   r  r  )rL   r   viewZ
bytes_sentr   rG   rG   rH   r     s   "zSocketStream.sendc                   s   | j tj d S rC   )r   shutdownsocketSHUT_WRrO   rG   rG   rH   send_eof  s   zSocketStream.send_eofr  )r  )r   r   rA   r   r   r   )ro   rp   rq   rM   r   r   r  r   rG   rG   r   rH   r	    s
    
r	  c                   @  s    e Zd ZdddZdddZdS )UNIXSocketStreammsglenr   maxfdsrA   tuple[bytes, list[int]]c                   sN  t |tr
|dk rtdt |tr|dk rtdtd}t I d H  | j? 	 z| j|t	||j
 I d H \}}}}W n tyX } z| | W Y d }~nd }~ww |s_|s_tnq+W d    n1 skw   Y  |D ].\}	}
}|	tjks|
tjkrtd|d|	 d	|
 ||d t|t||j
    qr|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 = )r  r   
ValueErrorarray
checkpointr  r   recvmsgr  ZCMSG_LENitemsizer  r  r,   
SOL_SOCKET
SCM_RIGHTSr   	frombyteslenlist)rL   r  r  fdsmessageZancdataflagsaddrr   Z
cmsg_levelZ	cmsg_typeZ	cmsg_datarG   rG   rH   receive_fds  sD   
&zUNIXSocketStream.receive_fdsr+  r   r*  Collection[int | IOBase]rI   c                   s   |st d|st dg }|D ]}t|tr|| qt|tr*||  qtd|}t I d H  | j6 	 z| j	
|gtjtj|fgI d H  W n tyf } z| | W Y d }~nd }~ww q<W d    d S 1 ssw   Y  d S )Nzmessage must not be emptyzfds must not be emptyr  )r   r  r   appendr   r   r!  r"  r  r   sendmsgr  r%  r&  r  r  )rL   r+  r*  ZfilenosfdZfdarrayr   rG   rG   rH   send_fds   sB   



"zUNIXSocketStream.send_fdsN)r  r   r  r   rA   r  )r+  r   r*  r/  rA   rI   )ro   rp   rq   r.  r3  rG   rG   rG   rH   r    s    
!r  c                      (   e Zd Zd	 fddZd
ddZ  ZS )TCPSocketListener
raw_socketr   c                   "   t  tj| td| _d S Nzaccepting connections fromr   rM   rJ   r  Zfrom_stdlib_socketr1   _accept_guardrL   r6  r   rG   rH   rM   B     zTCPSocketListener.__init__rA   r	  c                   s   | j , z| j I d H \}}W n ty( } z| | W Y d }~nd }~ww W d    n1 s3w   Y  |tjtjd t	|S )Nr  )
r:  r   acceptr  r  
setsockoptr  IPPROTO_TCPTCP_NODELAYr	  rL   r   Z_addrr   rG   rG   rH   r=  F  s   zTCPSocketListener.acceptr6  r   )rA   r	  ro   rp   rq   rM   r=  r   rG   rG   r   rH   r5  A      r5  c                      r4  )UNIXSocketListenerr6  r   c                   r7  r8  r9  r;  r   rG   rH   rM   R  r<  zUNIXSocketListener.__init__rA   r  c                   s   | j 9 z| j I d H \}}W n ty( } z| | W Y d }~nd }~ww W d    t|S W d    t|S 1 s@w   Y  t|S rC   )r:  r   r=  r  r  r  rA  rG   rG   rH   r=  V  s    

zUNIXSocketListener.acceptrB  )rA   r  rC  rG   rG   r   rH   rE  Q  rD  rE  c                      s2   e Zd Zd fddZddd	ZdddZ  ZS )	UDPSocketr   r   rA   rI   c                   r
  r  r  r   r   rG   rH   rM   a  r  zUDPSocket.__init__tuple[bytes, IPSockAddrType]c                   s   | j : z| jdI d H \}}|t|fW W  d    S  ty5 } z| | W Y d }~nd }~ww W d    d S 1 sAw   Y  d S Nr  )r  r   recvfromr.   r  r  )rL   r   r-  r   rG   rG   rH   r   f  s   "zUDPSocket.receiver   r4   c                   s   | j 4 z| jj| I d H  W n ty' } z| | W Y d }~nd }~ww W d    d S W d    d S 1 s;w   Y  d S rC   )r  r   sendtor  r  r   rG   rG   rH   r   n     "zUDPSocket.sendr  )rA   rG  )r   r4   rA   rI   ro   rp   rq   rM   r   r   r   rG   rG   r   rH   rF  `  s    
rF  c                      s2   e Zd Zd fddZddd	ZdddZ  ZS )ConnectedUDPSocketr   r   rA   rI   c                   r
  r  r  r   r   rG   rH   rM   w  r  zConnectedUDPSocket.__init__r   c                   s   | j 2 z| jdI d H W W  d    S  ty- } z| | W Y d }~nd }~ww W d    d S 1 s9w   Y  d S rH  )r  r   r  r  r  r  rG   rG   rH   r   |  s   "zConnectedUDPSocket.receiver   c                   s   | j 4 z| j|I d H  W n ty' } z| | W Y d }~nd }~ww W d    d S W d    d S 1 s;w   Y  d S rC   )r  r   r   r  r  r   rG   rG   rH   r     rK  zConnectedUDPSocket.sendr  )rA   r   r   rL  rG   rG   r   rH   rM  v  s    
rM  hoststrportr   local_addressIPSockAddrType | Nonec                   s   d| v rt jnt j}tj  |}|t jt jd |r$||I d H  z|| |fI d H  W t|S  t	y?   |
   w )N:r  )r  AF_INET6AF_INETrJ   r>  r?  r@  bindconnectr  r  r	  )rN  rP  rQ  familyr   rG   rG   rH   connect_tcp  s   rY  pathc                   sD   t jtj}z|| I d H  W t|S  ty!   |   w rC   )rJ   r  AF_UNIXrW  r  r  r  )rZ  r   rG   rG   rH   connect_unix  s   r\  rX  socket.AddressFamilyremote_address
reuse_portUDPSocket | ConnectedUDPSocketc                   sb   t jj| tjd}|r|tjtjd |r||I d H  |r-||I d H  t|S t	|S )N)rX  typer  )
rJ   r  
SOCK_DGRAMr>  r%  SO_REUSEPORTrV  rW  rM  rF  )rX  rQ  r^  r_  r   rG   rG   rH   create_udp_socket  s   rd  sockr   c              
     Z   z
t | I d H  W d S  tjy  } zt |jd d }~w tjy,   tdd w )Nr  )r8   rJ   r+   with_traceback__traceback__r*   re  r   rG   rG   rH   wait_socket_readable     
rj  c              
     rf  )Nr  )r9   rJ   r+   rg  rh  r*   ri  rG   rG   rH   wait_socket_writable  rk  rl  c                   @  sH   e Zd ZdddZdddZddd	Zdd
dZdddZdddZdS )r0   rA   c                 C  rB   rC   rD   r   rG   rG   rH   rE     r   zEvent.__new__rI   c                 C  s   t  | _d S rC   )rJ   r0   _Event__originalrO   rG   rG   rH   rM     r   zEvent.__init__rf   c                 C  
   | j  S rC   )rm  is_setrO   rG   rG   rH   ro    r   zEvent.is_setc                   r   rC   )rm  r   rO   rG   rG   rH   r     r   z
Event.waitr"   c                 C  s   | j  }t|jdS )N)tasks_waiting)rm  
statisticsr"   rp  )rL   Zorig_statisticsrG   rG   rH   rq    s   
zEvent.statisticsr&   c                 C  rZ   rC   )rm  r   r&   rO   rG   rG   rH   r     r\   z	Event.setN)rA   r0   r   rn   )rA   r"   rk   )	ro   rp   rq   rE   rM   ro  r   rq  r   rG   rG   rG   rH   r0     s    




r0   c                   @  s   e Zd Zd4ddZddd5ddZd6ddZd7ddZed8ddZej	d9ddZed:dd Z
ed8d!d"Zd;d$d%Zd<d'd(Zd6d)d*Zd=d+d,Zd6d-d.Zd=d/d0Zd>d2d3ZdS )?r/   r   r@   r?   rA   c                 O  rB   rC   rD   )rF   r   r?   rG   rG   rH   rE     r   zCapacityLimiter.__new__Nr=   r   r=   r   rI   c                G  s   |pt j| | _d S rC   )rJ   r/   _CapacityLimiter__original)rL   r=   r   rG   rG   rH   rM     s   zCapacityLimiter.__init__c                   r   rC   )rs  r{   rO   rG   rG   rH   r{     r   zCapacityLimiter.__aenter__rP   rQ   rR   rS   rT   rU   c                   s   | j |||I d H  d S rC   )rs  r}   rY   rG   rG   rH   r}     s   zCapacityLimiter.__aexit__r]   c                 C  r^   rC   rs  total_tokensrO   rG   rG   rH   ru    ra   zCapacityLimiter.total_tokensrb   c                 C  rc   rC   rt  rd   rG   rG   rH   ru    re   r   c                 C  r^   rC   )rs  borrowed_tokensrO   rG   rG   rH   rv  
  ra   zCapacityLimiter.borrowed_tokensc                 C  r^   rC   )rs  available_tokensrO   rG   rG   rH   rw    ra   z CapacityLimiter.available_tokensr&   c                 C  rZ   rC   )rs  acquire_nowaitr&   rO   rG   rG   rH   rx    r\   zCapacityLimiter.acquire_nowaitborrowerc                 C  s   | j | t| jS rC   )rs  acquire_on_behalf_of_nowaitr&   rL   ry  rG   rG   rH   rz    s   
z+CapacityLimiter.acquire_on_behalf_of_nowaitc                   r   rC   )rs  acquirerO   rG   rG   rH   r|    r   zCapacityLimiter.acquirec                   s   | j |I d H  d S rC   )rs  acquire_on_behalf_ofr{  rG   rG   rH   r}    s   z$CapacityLimiter.acquire_on_behalf_ofc                 C  rn  rC   )rs  releaserO   rG   rG   rH   r~     r   zCapacityLimiter.releasec                 C  s   | j |S rC   )rs  release_on_behalf_ofr{  rG   rG   rH   r  #  s   z$CapacityLimiter.release_on_behalf_ofr!   c                 C  s"   | j  }t|j|j|j|jdS )N)rv  ru  	borrowersrp  )rs  rq  r!   rv  ru  r  rp  )rL   origrG   rG   rH   rq  &  s   
zCapacityLimiter.statistics)r   r@   r?   r@   rA   r/   )r   r   r=   r   rA   rI   r   )rP   rQ   rR   rS   rT   rU   rA   rI   rl   rm   r   rk   )ry  r@   rA   r&   )ry  r@   rA   rI   )rA   r!   )ro   rp   rq   rE   rM   r{   r}   rr   ru  rs   rv  rw  rx  rz  r|  r}  r~  r  rq  rG   rG   rG   rH   r/     s*    








r/   _capacity_limiter_wrapperc                  C  s<   zt  W S  ty   ttj d} t |  |  Y S w )Nrr  )r  getLookupErrorr/   rJ   	to_threadcurrent_default_thread_limiterr   )r   rG   rG   rH   r  3  s   

r  c                   @  sH   e Zd ZU ded< dddZddd	ZdddZdddZdddZdS )_SignalReceiverzAsyncIterator[int]	_iteratorsignalstuple[Signals, ...]c                 C  s
   || _ d S rC   )_signals)rL   r  rG   rG   rH   rM   F  r   z_SignalReceiver.__init__rA   c                 C  s   t j| j | _| j | _| S rC   )rJ   open_signal_receiverr  _cmrN   r  rO   rG   rG   rH   rN   I  s   z_SignalReceiver.__enter__rP   rQ   rR   rS   rT   rU   rV   c                 C  rW   rC   )r  rX   rY   rG   rG   rH   rX   N  s   z_SignalReceiver.__exit__c                 C  s   | S rC   rG   rO   rG   rG   rH   	__aiter__V  s   z_SignalReceiver.__aiter__r	   c                   s   | j  I d H }t|S rC   )r  	__anext__r	   )rL   ZsignumrG   rG   rH   r  Y  s   z_SignalReceiver.__anext__N)r  r  )rA   r  rj   )rA   r	   )	ro   rp   rq   r   rM   rN   rX   r  r  rG   rG   rG   rH   r  C  s   
 



r  r  r	   c                  G  s   t | S rC   )r  )r  rG   rG   rH   r  ^  s   r  r#   c                  C  s<   t  } d }| jr| jjrt| jj}tt| || j| jS rC   )trio_lowlevelcurrent_taskZparent_nurseryparent_taskidr#   r   coro)taskZ	parent_idrG   rG   rH   get_current_taskg  s
   r  list[TaskInfo]c               	   C  s~   t  } tt| d | j| jg}| j}|r=g }|D ]}|jD ]}|tt|t|j	|j|j |
|j qq|}|s|S rC   )r  Zcurrent_root_taskr#   r  r   r  Zchild_nurseriesZchild_tasksr0  r  extend)Z	root_taskZ
task_infosZ	nurseriesZnew_nurseriesZnurseryr  rG   rG   rH   get_running_tasksq  s   
r  Awaitable[None]c                  C  s   dd l } | j S r   )Ztrio.testingtestingwait_all_tasks_blocked)rJ   rG   rG   rH   r    s   
r  c                   @  sp   e Zd Zd,ddZd-ddZd.ddZd/ddZd0ddZd1ddZd-ddZ	d2d"d#Z
d3d%d&Zd4d)d*Zd+S )5
TestRunneroptionsr   rA   rI   c                 K  s>   ddl m} ddlm} | | _| | _d | _d | _|| _d S )Nr   )deque)Queue)	collectionsr  queuer  _call_queue_result_queue_stop_eventr|   _options)rL   r  r  r  rG   rG   rH   rM     s   
zTestRunner.__init__c              	     s`   t  | _t  4 I d H | _| j I d H  W d   I d H  d S 1 I d H s)w   Y  d S rC   )rJ   r0   r  rw   r|   r   rO   rG   rG   rH   
_trio_main  s
   
.zTestRunner._trio_mainr    Callable[..., Awaitable[object]]r   r   r?   dictc              
     sf   z||i |I d H }W n t y( } z| jt| W Y d }~d S d }~ww | jt| d S rC   )r  r  r0  r   r   )rL   r   r   r?   r   r   rG   rG   rH   r     s   zTestRunner._call_funcoutcomer@   c                 C  s
   d | _ d S rC   )r|   )rL   r  rG   rG   rH   _main_task_finished  r   zTestRunner._main_task_finishedtrio.Nurseryc                 C  sT   | j d u r'tjj| jf| jj| jd| j | j d u r'| j	   | j d u s| j S )N)Zrun_sync_soon_threadsafedone_callback)
r|   rJ   r6   Zstart_guest_runr  r  putr  r  r  rO   rG   rG   rH   _get_nursery  s   


zTestRunner._get_nurseryr   r;   c                 O  s@   |   | j||| | js| j   | jr| j }| S rC   )r  r   r   r  r  r  popunwrap)rL   r   r   r?   r  rG   rG   rH   _call  s   
zTestRunner._callc                 C  s<   | j r| j   | jd ur| j   | jd usd S d S d S rC   )r  r   r|   r  r  rO   rG   rG   rH   r    s   

zTestRunner.closefixture_func,Callable[..., AsyncGenerator[T_Retval, Any]]r   Iterable[T_Retval]c                 #  sB    d	 fddt  fdd}|V    d S )
Ntask_statusTaskStatus[T_Retval]rA   rI   c                   sx    di }| d I d H }| |  I d H  z
| d I d H  W n
 ty0   Y d S w | I d H  td)Nz$Async generator fixture did not stoprG   )asendstartedr   StopAsyncIterationr   r   )r  agenr   )r  r?   teardown_eventrG   rH   fixture_runner  s   
z7TestRunner.run_asyncgen_fixture.<locals>.fixture_runnerc                     s      S rC   )r  r   rG   )r  rL   rG   rH   <lambda>  s    z1TestRunner.run_asyncgen_fixture.<locals>.<lambda>)r  r  rA   rI   )rJ   r0   r  r   )rL   r  r?   Zfixture_valuerG   )r  r  r?   rL   r  rH   run_asyncgen_fixture  s   zTestRunner.run_asyncgen_fixture,Callable[..., Coroutine[Any, Any, T_Retval]]c                 C  s   | j |fi |S rC   r  )rL   r  r?   rG   rG   rH   run_fixture  s   zTestRunner.run_fixture	test_func'Callable[..., Coroutine[Any, Any, Any]]c                 C  s   | j |fi | d S rC   r  )rL   r  r?   rG   rG   rH   run_test  s   zTestRunner.run_testN)r  r   rA   rI   r   )r   r  r   r   r?   r  rA   rI   )r  r@   rA   rI   )rA   r  )r   r   r   r@   r?   r@   rA   r;   )r  r  r?   r   rA   r  )r  r  r?   r   rA   r;   )r  r  r?   r   rA   rI   )ro   rp   rq   rM   r  r   r  r  r  r  r  r  r  rG   rG   rG   rH   r    s    











r  )
r   r   r   r@   r   rf   r   r   rA   r;   )r   r   r   r   rA   r;   )r   r   r   r   rA   r;   )r   r   r   rf   r   r   r   r   r   r   r   r   r   r   r   rf   rA   r   )r   r   rA   rI   rC   )rN  rO  rP  r   rQ  rR  rA   r	  )rZ  rO  rA   r  )
rX  r]  rQ  rR  r^  rR  r_  rf   rA   r`  )re  r   rA   rI   )rA   r/   )r  r	   rA   r  )rA   r#   )rA   r  )rA   r  )
__future__r   r!  r   r  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   Ztrio.from_threadrJ   r  r   r   r   Ztrio.socketr   r   Ztrio.to_threadr    r!   r"   r#   r$   Z_core._compatr%   r&   Z_core._eventloopr(   Z_core._exceptionsr)   r*   r+   r,   r-   ZBaseExceptionGroupZ_core._socketsr.   Z_core._synchronizationr/   ZBaseCapacityLimiterr0   Z	BaseEventr1   Z_core._tasksr2   ZBaseCancelScoper3   r4   Ztrio_typingr5   r6   r  ImportErrorr7   Ztrio.hazmatr8   r9   Ztrio.lowlevelr:   r   AttributeErrorr;   rO  r<   r   r   current_tokenr   r   r   CancelledErrorr"  Zcheckpoint_if_cancelledZcancel_shielded_checkpointZcurrent_effective_deadlinecurrent_timer~   rt   r   r   r   r   ZByteReceiveStreamr   ZByteSendStreamr   r   Z
Instrumentr   r   r   r   r   r   r	  r  ZSocketListenerr5  rE  rF  rM  rY  r\  rd  getaddrinfogetnameinforj  rl  r  r  r  r  r  r  r  r  rG   rG   rG   rH   <module>   s    H
16

#8

	!C



	B


	


