Format: application/x-python-code
⬇ Download File (43.2 KB)
   1  o
   2  
   3  ;'h��@s�UddlmZddlZddlZddlZddlZddlZddlZddlZddl	m
   4  Z
   5  mZmZm
   6  Z
   7  mZmZmZmZddlmZddlmZddlmZddlmZddlmZdd	lmZdd
   8  lmZddlmZm Z ddlm!Z!dd
   9  l"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*ddl+Z,ddl-Z,ddl.m/Z/m0Z0m1Z1ddl-m2Z2m3Z3m4Z4m5Z5ddl6m7Z8ddl9m:Z:ddl;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAddlBmCZCddlDmEZEmFZFmGZGmHZHddlImJZJddlKmLZLddlMmNZOddlMmPZQddlMmRZSddlMmTZTmUZUddlMmVZWddlXmYZZddlAm[Z[m\Z\m]Z]ddl^m_Z_m`Z`dd lambZbe$�r"dd!lcmdZdejed"k�r/dd#l"mfZfndd#lgmfZfejed$k�rDdd%l"mhZhmiZindd&ljmkZkdd%lgmhZhmiZie(d'�Zle(d(�Zme(d)ene[�Zoehd*�Zpefd+�Zqe,jrjsZsGd,d-�d-eZ�ZYGd.d/�d/eAjt�ZtGd0d1�d1eAju�Zued2d3�Gd4d5�d5eAjv��Zwed2d3�Gd6d7�d7eAjx��Zyed2d3�Gd8d9�d9eAjz��ZzGd:d;�d;e,jAj{�Z|esd<�Z}d=e~d<<dgdBdC�ZGdDdE�dEe&eo�Z�GdFdG�dGe�eAj��Z�GdHdI�dIe�eAj��Z�GdJdK�dKe�eAj��Z�GdLdM�dMe�eAj��Z�GdNdO�dOe�e[eAj��Z�GdPdQ�dQe�e[eAj��Z�GdRdS�dSe�eneAj��Z�GdTdU�dUe�eneAj��Z�GdVdW�dWeQ�ZPGdXdY�dYeS�ZRGdZd[�d[eW�ZVGd\d]�d]eO�ZNesd^�Z�d=e~d^<Gd_d`�d`�Z�Gdadb�dbeAj��Z�Gdcdd�dde?�Z�Gdedf�dfe_�Z�e�Z�dS)h�)�annotationsN)�AsyncGenerator�
  10  AsyncIterator�	Awaitable�Callable�
  11  Collection�	Coroutine�Iterable�Sequence)�Future)�AbstractContextManager)�	dataclass)�partial)�IOBase)�PathLike)�Signals)�
  12  AddressFamily�
  13  SocketKind)�
  14  TracebackType)�IO�
  15  TYPE_CHECKING�Any�Generic�NoReturn�TypeVar�cast�overload)�Error�Outcome�Value)�current_root_task�current_task�
  16  wait_readable�
  17  wait_writable)�
  18  SocketType)�run_sync�)�CapacityLimiterStatistics�EventStatistics�LockStatistics�TaskInfo�
  19  WouldBlock�abc)�claim_worker_thread)�BrokenResourceError�BusyResourceError�ClosedResourceError�EndOfStream)�convert_ipv6_sockaddr)�create_memory_object_stream��CapacityLimiter��Event��Lock)�
  20  ResourceGuard�SemaphoreStatistics��	Semaphore��CancelScope)�IPSockAddrType�
  21  UDPPacketType�UNIXDatagramPacketType)�AsyncBackend�StrOrBytesPath)�MemoryObjectSendStream)�	HasFileno)��
  22  )�	ParamSpec)rG�)�TypeVarTuple�Unpack)�BaseExceptionGroup�T�T_Retval�
  23  T_SockAddr�PosArgsT�Pc@s�eZdZ	d&d'dd�Zd&d(dd�Zd)d
  24  d�Zd*dd�Zd+dd�Zed,dd��Z	e	j
  25  d-dd��Z	ed.dd ��Zed.d!d"��Zed.d#d$��Z
  26  e
  27  j
  28  d/d%d$��Z
  29  dS)0r?N�original�trio.CancelScope | None�kwargs�object�returncK�
  30  t�|�S�N�rV�__new__)�clsrSrU�r]�KC:\Users\shubh\Videos\agent\nova\Lib\site-packages\anyio/_backends/_trio.pyr[vs
  31  zCancelScope.__new__r�NonecKs|p	tjdi|��|_dS�Nr])�trior?�_CancelScope__original)�selfrSrUr]r]r^�__init__{szCancelScope.__init__cCs|j��|SrY)rb�	__enter__�rcr]r]r^re~s
  32  zCancelScope.__enter__�exc_type�type[BaseException] | None�exc_val�BaseException | None�exc_tb�TracebackType | None�boolcC�|j�|||�SrY)rb�__exit__�rcrgrirkr]r]r^ro��zCancelScope.__exit__cC�|j��dSrY)rb�cancelrfr]r]r^rs��zCancelScope.cancel�floatcC�|jjSrY�rb�deadlinerfr]r]r^rx��zCancelScope.deadline�valuecC�||j_dSrYrw�rcrzr]r]r^rx��cCrvrY)rb�
  33  cancel_calledrfr]r]r^r~�ryzCancelScope.cancel_calledcCrvrY)rb�cancelled_caughtrfr]r]r^r�ryzCancelScope.cancelled_caughtcCrvrY�rb�shieldrfr]r]r^r��ryzCancelScope.shieldcCr{rYr�r|r]r]r^r��r}rY)rSrTrUrVrWr?)rSrTrUrrWr_)rWr?�rgrhrirjrkrlrWrm�rWr_�rWru�rzrurWr_�rWrm)rzrmrWr_)�__name__�
  34  __module__�__qualname__r[rdrerors�propertyrx�setterr~rr�r]r]r]r^r?us&�
  35  
  36  
  37  r?c@sJeZdZddd�Zddd�Zd dd�Zdd�d!dd�Zdd�d"dd�ZdS)#�	TaskGrouprWr_cCsd|_tjdd�|_d|_dS)NFT)Zstrict_exception_groups)�_activeraZopen_nursery�_nursery_manager�cancel_scoperfr]r]r^rd�s
  38  zTaskGroup.__init__c�s,�d|_|j��IdH|_t|jj�|_|S)NT)r�r��
  39  __aenter__�_nurseryr?r�rfr]r]r^r��s
  40  �zTaskGroup.__aenter__rgrhrirjrkrlrmc
  41  �sl�z.z|j�|||�IdHWW~~d|_Sty/}z|�tj�ds*tj��|��d}~ww~~d|_w)NF�)r��	__aexit__r�rM�splitra�	Cancelled�_create)rcrgrirk�excr]r]r^r��s����zTaskGroup.__aexit__N��name�func�,Callable[[Unpack[PosArgsT]], Awaitable[Any]]�args�Unpack[PosArgsT]r�rVcGs,|jstd��|jj|g|�Rd|i�dS�Nz;This task group is not active; no new tasks can be started.r�)r��RuntimeErrorr��
  42  start_soon�rcr�r�r�r]r]r^r��s
  43  �zTaskGroup.start_soon�Callable[..., Awaitable[Any]]rc�s0�|jstd��|jj|g|�Rd|i�IdHSr�)r�r�r��startr�r]r]r^r��s�� zTaskGroup.startr�)rWr�r�)r�r�r�r�r�rVrWr_)r�r�r�rVr�rVrWr)r�r�r�rdr�r�r�r�r]r]r]r^r��s
  44  
  45  
  46  ��r�cs2eZdZddd�Zd�fdd�Zddd�Z�ZS)�BlockingPortalrWcCrXrYrZ�r\r]r]r^r[��
  47  zBlockingPortal.__new__r_cst���tj��|_dSrY)�superrdra�lowlevel�current_trio_token�_tokenrf��	__class__r]r^rd�s
  48  zBlockingPortal.__init__r��<Callable[[Unpack[PosArgsT]], Awaitable[T_Retval] | T_Retval]r��tuple[Unpack[PosArgsT]]rU�dict[str, Any]r�rV�future�Future[T_Retval]c	Cs.tjjt|jj|d�|j|||||jd�dS)Nr�)Z
  49  trio_token)ra�from_threadr%rZ_task_groupr�Z
  50  _call_funcr�)rcr�r�rUr�r�r]r]r^�_spawn_task_from_thread�s
  51  �z&BlockingPortal._spawn_task_from_thread)rWr�r�)r�r�r�r�rUr�r�rVr�r�rWr_)r�r�r�r[rdr��
  52  __classcell__r]r]r�r^r��s
  53  r�F)�eqc@s,eZdZUded<d
  54  ddd	�Zddd�ZdS)�ReceiveStreamWrapperztrio.abc.ReceiveStream�_streamN�	max_bytes�
  55  int | NonerW�bytesc
  56  �sh�z|j�|�IdH}Wn!tjy}zt|j�d}~wtjy-}zt|j�d}~ww|r2|St�rY)r�Zreceive_somerar0�	__cause__r.r1�rcr��datar�r]r]r^�receive
  57  s����zReceiveStreamWrapper.receiver_c���|j��IdHdSrY�r��acloserfr]r]r^r���zReceiveStreamWrapper.acloserY)r�r�rWr�r�)r�r�r��__annotations__r�r�r]r]r]r^r�s
  58  
  59  r�c@s*eZdZUded<ddd�Zd
  60  d	d
  61  �ZdS)�SendStreamWrapperztrio.abc.SendStreamr��itemr�rWr_c
  62  �s^�z|j�|�IdHWdStjy}zt|j�d}~wtjy.}zt|j�d}~wwrY)r�Zsend_allrar0r�r.�rcr�r�r]r]r^�sends����zSendStreamWrapper.sendc�r�rYr�rfr]r]r^r�'r�zSendStreamWrapper.acloseN�r�r�rWr_r�)r�r�r�r�r�r�r]r]r]r^r�s
  63  
  64  r�c@s�eZdZUded<ded<ded<ded<d#d
  65  d�Zd$d
  66  d�Zd#dd�Zd#dd�Zd%dd�Ze	d$dd��Z
  67  e	d&dd��Ze	d'dd��Ze	d(dd��Z
  68  e	d(d d!��Zd"S))�Processztrio.Process�_process�abc.ByteSendStream | None�_stdin�abc.ByteReceiveStream | None�_stdout�_stderrrWr_c�s��tdd��)|jr|j��IdH|jr|j��IdH|jr(|j��IdHWd�n1s2wYz
  69  |��IdHWdStyi|��tdd��|��IdHWd��1scwY�w�NT)r�)r?r�r�r�r��wait�
  70  BaseException�killrfr]r]r^r�2s*���
  71  ���zProcess.aclose�intc���|j��IdHSrY)r�r�rfr]r]r^r�C��zProcess.waitcCrrrY)r��	terminaterfr]r]r^r�FrtzProcess.terminatecCrrrY)r�r�rfr]r]r^r�IrtzProcess.kill�signalrcC�|j�|�dSrY)r��send_signal)rcr�r]r]r^r�L�zProcess.send_signalcCrvrY)r��pidrfr]r]r^r�OryzProcess.pidr�cCrvrY)r��
  72  returncoderfr]r]r^r�SryzProcess.returncodecC�|jSrY)r�rfr]r]r^�stdinW�z
  73  Process.stdincCr�rY)r�rfr]r]r^�stdout[r�zProcess.stdoutcCr�rY)r�rfr]r]r^�stderr_r�zProcess.stderrNr��rWr�)r�rrWr_�rWr�)rWr�)rWr�)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r]r]r]r^r�+s(
  74  
  75  
  76  
  77  
  78  
  79  r�cseZdZd�fdd�Z�ZS)�_ProcessPoolShutdownInstrumentrWr_cst���dSrY)r��	after_runrfr�r]r^r�ertz(_ProcessPoolShutdownInstrument.after_runr�)r�r�r�r�r�r]r]r�r^r�dsr��&current_default_worker_process_limiterztrio.lowlevel.RunVar�workers�set[abc.Process]rWr_c�s��zt�tj�IdHWdStjyI|D]}|jdur"|��qtdd��|D]	}|��IdHq+Wd�YdS1sAwYYdSwr�)	ra�sleep�math�infr�r�r�r?r�)r��processr]r]r^�_shutdown_process_poolns�
  80  ��&��r�c@sBeZdZddd�Zddd�Zedd
  81  d��Zddd
  82  �Zddd�ZdS)�_TrioSocketMixin�trio_socket�TrioSocketTyperWr_cCs||_d|_dS�NF)�_trio_socket�_closed�rcr�r]r]r^rd�s
  83  z_TrioSocketMixin.__init__cCs |jrt�|j��dkrt�dS�Nr)r�r0r��filenor.rfr]r]r^�
  84  _check_closed�s
  85  �z_TrioSocketMixin._check_closed�
  86  socket.socketcCrvrY)r��_sockrfr]r]r^�_raw_socket�ryz_TrioSocketMixin._raw_socketc�s(�|j��dkrd|_|j��dSdS)NrT)r�r�r��closerfr]r]r^r��s
  87  ��z_TrioSocketMixin.acloser�r�rcCs@t|tj�r	t|�|j��dkr|jrtd�t|t�rt|�|�r�)�
  88  isinstancerar0r�r�r��OSErrorr.�rcr�r]r]r^�_convert_socket_error�s
  89  z&_TrioSocketMixin._convert_socket_errorN�r�r�rWr_r�)rWr�)r�r�rWr)	r�r�r�rdr�r�r�r�rr]r]r]r^r��s
  90  
  91  
  92  r�cs>eZdZd�fdd�Zdddd�Zddd�Zddd�Z�ZS)�SocketStreamr�r�rWr_c�$t��|�td�|_td�|_dS�N�reading from�
  93  writing to�r�rdr:�_receive_guard�_send_guardr�r�r]r^rd��
  94  zSocketStream.__init__�r�r�r�c�s~�|j�1z|j�|�IdH}Wnty'}z|�|�WYd}~nd}~ww|r3|Wd�St�1s8wYdSrY)rr��recvr�rr1r�r]r]r^r��s����	�zSocketStream.receiver�c�s��|j�Bt|�}|r>z|j�|�IdH}Wnty-}z|�|�WYd}~nd}~ww||d�}|sWd�dSWd�dS1sIwYdSrY)r	�
  95  memoryviewr�r�r�r)rcr��viewZ
  96  bytes_sentr�r]r]r^r��s�����"�zSocketStream.sendc�s�|j�tj�dSrY)r��shutdown�socket�SHUT_WRrfr]r]r^�send_eof�s�zSocketStream.send_eofr)r)r�r�rWr�r�r�)r�r�r�rdr�r�rr�r]r]r�r^r�s
  97  
  98  rc@s eZdZddd�Zdd
  99  d�ZdS)�UNIXSocketStream�msglenr��maxfdsrW�tuple[bytes, list[int]]c�sR�t|t�r
 100  |dkrtd��t|t�r|dkrtd��t�d�}tj��IdH|j�?	z|j�	|t
 101  �||j��IdH\}}}}Wnt
 102  yZ}z|�|�WYd}~nd}~ww|sa|sat�nq-Wd�n1smwY|D].\}	}
 103  }|	t
 104  jks�|
 105  t
 106  jkr�td|�d|	�d	|
 107  ����|�|dt|�t|�|j��qt|t|�fS)
 108  Nrz%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��
 109  ValueError�arrayrar��
 110  checkpointrr��recvmsgrZCMSG_LEN�itemsizer�rr1�
 111  SOL_SOCKET�
 112  SCM_RIGHTSr��	frombytes�len�list)rcrr�fds�messageZancdata�flags�addrr�Z
 113  cmsg_levelZ	cmsg_typeZ	cmsg_datar]r]r^�receive_fds�sD�
 114  ��������&zUNIXSocketStream.receive_fdsr#r�r"�Collection[int | IOBase]r_c�s��|std��|s
 115  td��g}|D]}t|t�r|�|�qt|t�r*|�|���qt�d|�}tj�	�IdH|j
 116  �6	z|j�|gt
 117  jt
 118  j|fg�IdHWntyh}z|�|�WYd}~nd}~wwq>Wd�dS1suwYdS)Nzmessage must not be emptyzfds must not be emptyr)rr�r��appendrr�rrar�rr	r��sendmsgrrrr�r)rcr#r"Zfilenos�fdZfdarrayr�r]r]r^�send_fds�sB�
 119  
 120  ���
 121  �
 122  ���"�zUNIXSocketStream.send_fdsN)rr�rr�rWr)r#r�r"r'rWr_)r�r�r�r&r+r]r]r]r^r�s
 123  !rc�(eZdZd	�fdd�Zd
 124  dd�Z�ZS)�TCPSocketListener�
 125  raw_socketr�c�"t��tj�|��td�|_dS�Nzaccepting connections from�r�rdrar�from_stdlib_socketr:�
 126  _accept_guard�rcr.r�r]r^rd�zTCPSocketListener.__init__rWrc�s��|j�,z|j��IdH\}}Wnty(}z|�|�WYd}~nd}~wwWd�n1s3wY|�tjtjd�t	|�S�Nr�)
 127  r3r��acceptr�r�
 128  setsockoptr�IPPROTO_TCP�TCP_NODELAYr�rcr�Z_addrr�r]r]r^r7s�����zTCPSocketListener.accept�r.r�)rWr�r�r�r�rdr7r�r]r]r�r^r-�r-cr,)�UNIXSocketListenerr.r�cr/r0r1r4r�r]r^rdr5zUNIXSocketListener.__init__rWrc�s��|j�9z|j��IdH\}}Wnty(}z|�|�WYd}~nd}~wwWd�t|�SWd�t|�S1s@wYt|�SrY)r3r�r7r�rrr;r]r]r^r7s ����
 129  ��
 130  ��zUNIXSocketListener.acceptr<)rWrr=r]r]r�r^r?r>r?cs2eZdZd�fdd�Zddd	�Zddd
 131  �Z�ZS)�	UDPSocketr�r�rWr_crrrr�r�r]r^rd#r
 132  zUDPSocket.__init__�tuple[bytes, IPSockAddrType]c�s��|j�:z|j�d�IdH\}}|t|�fWWd�Sty5}z|�|�WYd}~nd}~wwWd�dS1sAwYdS�Nr)rr��recvfromr2r�r�rcr�r%r�r]r]r^r�(s����"�zUDPSocket.receiver�rAc���|j�4z|jj|�IdHWnty'}z|�|�WYd}~n
 133  d}~wwWd�dSWd�dS1s;wYdSrY�r	r��sendtor�rr�r]r]r^r�0������"�zUDPSocket.sendr)rWrA)r�rArWr_�r�r�r�rdr�r�r�r]r]r�r^r@"�
 134  r@c�2eZdZd
 135  �fdd�Zddd	�Zddd�Z�ZS)�ConnectedUDPSocketr�r�rWr_crrrr�r�r]r^rd9r
 136  zConnectedUDPSocket.__init__r�c���|j�2z|j�d�IdHWWd�Sty-}z|�|�WYd}~nd}~wwWd�dS1s9wYdSrB�rr�rr�rr�r]r]r^r�>�����"�zConnectedUDPSocket.receiver�c���|j�4z|j�|�IdHWnty'}z|�|�WYd}~n
 137  d}~wwWd�dSWd�dS1s;wYdSrY�r	r�r�r�rr�r]r]r^r�ErHzConnectedUDPSocket.sendr�rWr�r�rIr]r]r�r^rL8s
 138  rLcrK)�UNIXDatagramSocketr�r�rWr_crrrr�r�r]r^rdNr
 139  zUNIXDatagramSocket.__init__rBc�s��|j�8z|j�d�IdH\}}||fWWd�Sty3}z|�|�WYd}~nd}~wwWd�dS1s?wYdSrB)rr�rCr�rrDr]r]r^r�Ss����"�zUNIXDatagramSocket.receiver�c�rErYrFr�r]r]r^r�[rHzUNIXDatagramSocket.sendr)rWrB)r�rBrWr_rIr]r]r�r^rSMrJrScrK)�ConnectedUNIXDatagramSocketr�r�rWr_crrrr�r�r]r^rdfr
 140  z$ConnectedUNIXDatagramSocket.__init__r�c�rMrBrNr�r]r]r^r�krOz#ConnectedUNIXDatagramSocket.receiver�c�rPrYrQr�r]r]r^r�rrHz ConnectedUNIXDatagramSocket.sendrrRr�rIr]r]r�r^rTcs
 141  rTc@sHeZdZddd�Zddd�Zddd	�Zdd
 142  d�Zdd
 143  d�Zddd�ZdS)r7rWcCrXrYrZr�r]r]r^r[�r�z
 144  Event.__new__r_cCst��|_dSrY)rar7�_Event__originalrfr]r]r^rd�rtzEvent.__init__rmcC�
 145  |j��SrY)rU�is_setrfr]r]r^rW�r�zEvent.is_setc�r�rY)rUr�rfr]r]r^r��r�z
 146  Event.waitr(cCs|j��}t|jd�S)N)�
 147  tasks_waiting)rU�
 148  statisticsr(rX�rc�orig_statisticsr]r]r^rY�s
 149  zEvent.statisticscCrrrY)rU�setrfr]r]r^r\�rtz	Event.setN)rWr7r�r�)rWr()	r�r�r�r[rdrWr�rYr\r]r]r]r^r7s
 150  
 151  
 152  
 153  
 154  r7c@sleZdZdd�ddd�Zdd�dd	d
 155  �Zedd
 156  d��Zddd�Zddd�Zddd�Z	ddd�Z
 157  d dd�ZdS)!r9F��fast_acquirer^rmrWcCrXrYrZ�r\r^r]r]r^r[�r�zLock.__new__r_cCs||_t��|_dSrY)�
 158  _fast_acquirerar9�_Lock__original)rcr^r]r]r^rd�sz
 159  Lock.__init__r�r�cCs|jdkr
 160  d|_dSdS)N)z*attempt to re-acquire an already held Lock)z)Attempted to acquire an already held Lock)r�)r�r]r]r^�_convert_runtime_error_msg�s
 161  
 162  �zLock._convert_runtime_error_msgc
 163  �s��|js"z|j��IdHWdSty!}z|�|��d}~wwtj��IdHz|j��WdStj	yF|jj
 164  ��IdHYdStyW}z|�|��d}~wwrY)r`ra�acquirer�rbrar��checkpoint_if_cancelled�acquire_nowaitr+�_lot�parkr�r]r]r^rc�s(��
 165  ��
 166  ��zLock.acquirec
 167  CsJz|j��WdStjytd�ty$}z|�|��d}~wwrY)rarerar+r�rbr�r]r]r^re�s
 168  ��zLock.acquire_nowaitcCrVrY)ra�lockedrfr]r]r^rh�r�zLock.lockedcCrrrY)ra�releaserfr]r]r^ri�rtzLock.releaser)cCs.|j��}|jr
 169  t|j�nd}t|j||j�SrY)rarY�owner�TrioTaskInfor)rhrX)rcr[rjr]r]r^rY�s
 170  
 171  
 172  �zLock.statisticsN�r^rmrWr9)r^rmrWr_)r�r�rWr_r�r�)rWr))r�r�r�r[rd�staticmethodrbrcrerhrirYr]r]r]r^r9�s
 173  
 174  
 175  	
 176  r9cs|eZdZddd�ddd�Zddd�d�fdd�Zddd�Zddd�Zed dd��Zed!dd��Z	ddd�Z
 177  d"dd�Z�ZS)#r=NF��	max_valuer^�
 178  initial_valuer�ror�r^rmrWcCrXrYrZ�r\rpror^r]r]r^r[�s
 179  zSemaphore.__new__r_cs&t�j|||d�tj||d�|_dS)Nrn)ro)r�rdrar=�_Semaphore__original)rcrpror^r�r]r^rd�szSemaphore.__init__c�sf�|js|j��IdHdStj��IdHz|j��WdStjy2|jj�	�IdHYdSwrY)
 180  r`rrrcrar�rdrer+rfrgrfr]r]r^rc�s��zSemaphore.acquirecCs(z|j��WdStjytd�wrY)rrrerar+rfr]r]r^re�s
 181  �zSemaphore.acquire_nowaitcCrvrY)rrrorfr]r]r^ro�ryzSemaphore.max_valuecCrvrY)rrrzrfr]r]r^rz�ryzSemaphore.valuecCrrrY)rrrirfr]r]r^ri�rtzSemaphore.releaser;cCs|j��}t|j�SrY)rrrYr;rXrZr]r]r^rY�s
 182  
 183  zSemaphore.statistics)rpr�ror�r^rmrWr=)rpr�ror�r^rmrWr_r�r�r�)rWr;)
 184  r�r�r�r[rdrcrer�rorzrirYr�r]r]r�r^r=�s�
 185  �
 186  
 187  
 188  
 189  r=c@s�eZdZ	d2dd�d3dd	�Z	d2dd�d4dd�Zd5d
 190  d�Zd6dd�Zed7dd��Zej	d8dd��Zed9dd��Z
 191  ed7dd ��Zd5d!d"�Zd:d%d&�Z
 192  d5d'd(�Zd:d)d*�Zd5d+d,�Zd:d-d.�Zd;d0d1�ZdS)<r5N�rS�total_tokens�float | NonerS�trio.CapacityLimiter | NonerWcCrXrYrZ)r\rtrSr]r]r^r[s
 193  zCapacityLimiter.__new__r_cCs.|dur	||_dS|dusJ�t�|�|_dSrY)�_CapacityLimiter__originalrar5)rcrtrSr]r]r^rds
 194  zCapacityLimiter.__init__c�r�rY)rwr�rfr]r]r^r�r�zCapacityLimiter.__aenter__rgrhrirjrkrlc�s�|j�|||�IdHdSrY)rwr�rpr]r]r^r�s�zCapacityLimiter.__aexit__rucCrvrY�rwrtrfr]r]r^rt"ryzCapacityLimiter.total_tokensrzcCr{rYrxr|r]r]r^rt&r}r�cCrvrY)rw�borrowed_tokensrfr]r]r^ry*ryzCapacityLimiter.borrowed_tokenscCrvrY)rw�available_tokensrfr]r]r^rz.ryz CapacityLimiter.available_tokenscCrrrY)rwrerfr]r]r^re2rtzCapacityLimiter.acquire_nowait�borrowerrVcCr�rY)rw�acquire_on_behalf_of_nowait�rcr{r]r]r^r|5r�z+CapacityLimiter.acquire_on_behalf_of_nowaitc�r�rY)rwrcrfr]r]r^rc8r�zCapacityLimiter.acquirec�s�|j�|�IdHdSrY)rw�acquire_on_behalf_ofr}r]r]r^r~;s�z$CapacityLimiter.acquire_on_behalf_ofcCrVrY)rwrirfr]r]r^ri>r�zCapacityLimiter.releasecCs|j�|�SrY)rw�release_on_behalf_ofr}r]r]r^rAsz$CapacityLimiter.release_on_behalf_ofr'cCs&|j��}t|j|jt|j�|jd�S)N)ryrt�	borrowersrX)rwrYr'ryrt�tupler�rX)rc�origr]r]r^rYDs
 195  �zCapacityLimiter.statisticsrY)rtrurSrvrWr5)rtrurSrvrWr_r�)rgrhrirjrkrlrWr_r�r�r�)r{rVrWr_)rWr')r�r�r�r[rdr�r�r�rtr�ryrzrer|rcr~rirrYr]r]r]r^r5s4��
 196  ��
 197  
 198  
 199  
 200  
 201  
 202  
 203  
 204  r5�_capacity_limiter_wrapperc@sHeZdZUded<ddd�Zddd	�Zddd�Zddd�Zddd�ZdS)�_SignalReceiverzAsyncIterator[int]�	_iterator�signals�tuple[Signals, ...]cCs
 205  ||_dSrY)�_signals)rcr�r]r]r^rdYr�z_SignalReceiver.__init__rWcCstj|j�|_|j��|_|SrY)ra�open_signal_receiverr��_cmrer�rfr]r]r^re\sz_SignalReceiver.__enter__rgrhrirjrkrl�bool | NonecCrnrY)r�rorpr]r]r^roarqz_SignalReceiver.__exit__cCs|SrYr]rfr]r]r^�	__aiter__isz_SignalReceiver.__aiter__rc�s�|j��IdH}t|�SrY)r��	__anext__r)rcZsignumr]r]r^r�ls�z_SignalReceiver.__anext__N)r�r�)rWr�)rgrhrirjrkrlrWr�)rWr)	r�r�r�r�rdreror�r�r]r]r]r^r�Vs
 206  
 207  
 208  
 209  
 210  r�c@s\eZdZd,dd�Zd-d
 211  d�Zd.dd�Zd/dd�Zd0dd�Zd1d"d#�Zd2d%d&�Z	d3d)d*�Z
 212  d+S)4�
 213  TestRunner�optionsrrWr_cKs$ddlm}|�|_d|_||_dS)Nr)�Queue)�queuer��_call_queue�_send_stream�_options)rcr�r�r]r]r^rdws
 214  zTestRunner.__init__rgrhrirjrk�types.TracebackType | NonecCs<|jr|j��|jdur|j���|jdus
 215  dSdSdSrY)r�r�r��getrpr]r]r^ro~s
 216  
 217  ��zTestRunner.__exit__c�s��td�\|_}|�=|2z03dHW\}}z|IdH}Wnty5}z
 218  |�t|��WYd}~q
 219  d}~ww|�t|��q
 220  6Wd�dS1sJwYdSr6)r3r�r�r(rr)rcZreceive_stream�coro�outcome_holder�retvalr�r]r]r^�_run_tests_and_fixtures�s����"�z"TestRunner._run_tests_and_fixtures�outcomerVcCs
 221  d|_dSrY)r�)rcr�r]r]r^�_main_task_finished�r�zTestRunner._main_task_finishedr�� Callable[P, Awaitable[T_Retval]]r��P.argsrU�P.kwargsrOcOs�|jdur'tjj|jf|jj|jd�|j��|jdur'|j�	��|jdusg}|j�
 222  ||i|��|f�|s@|j�	��|r8|d��S)N)Zrun_sync_soon_threadsafe�
 223  done_callbackr)r�rar�Zstart_guest_runr�r��putr�r�r�Zsend_nowait�unwrap)rcr�r�rUr�r]r]r^�_call_in_runner_task�s$
 224  ���
 225  
 226  ��zTestRunner._call_in_runner_task�fixture_func�,Callable[..., AsyncGenerator[T_Retval, Any]]r��Iterable[T_Retval]ccs`�|di|��}|�|jd�}|Vz	|�|jd�Wn
 227  ty%YdSw|�|j�td��)Nz$Async generator fixture did not stopr])r��asend�StopAsyncIterationr�r�)rcr�rU�asyncgenZfixturevaluer]r]r^�run_asyncgen_fixture�s��zTestRunner.run_asyncgen_fixture�,Callable[..., Coroutine[Any, Any, T_Retval]]cCs|j|fi|��SrY�r�)rcr�rUr]r]r^�run_fixture�szTestRunner.run_fixture�	test_func�'Callable[..., Coroutine[Any, Any, Any]]cCs|j|fi|��dSrYr�)rcr�rUr]r]r^�run_test�szTestRunner.run_testN)r�rrWr_)rgrhrirjrkr�rWr_r�)r�rVrWr_)r�r�r�r�rUr�rWrO)r�r�rUr�rWr�)r�r�rUr�rWrO)r�r�rUr�rWr_)r�r�r�rdror�r�r�r�r�r�r]r]r]r^r�vs
 228  
 229  
 230  
 231  
 232  
 233  
 234  r�cr,)rk�task�trio.lowlevel.TaskcsHd}|jr|jjrt|jj�}t��t|�||j|j�t�|�|_	dSrY)
 235  Zparent_nurseryZparent_task�idr�rdr�r��weakref�proxy�_task)rcr�Z	parent_idr�r]r^rd�s
 236  zTrioTaskInfo.__init__rWrmcCs"z|jjjWStyYdSwr�)r�Z_cancel_statusZeffectively_cancelled�ReferenceErrorrfr]r]r^�has_pending_cancellation�s
 237  �z%TrioTaskInfo.has_pending_cancellation)r�r�r�)r�r�r�rdr�r�r]r]r�r^rk�srkc@speZdZed�d
 238  d��Zed�d
 239  d��Zed�dd��Zed�dd��Zed�dd��Zed�dd��Z	ed�dd��Z
 240  ed�dd��Zeej
 241  dd �d�d%d&��Zed�d'd(��Zed�d*d+��Zed�d-d.��Zed�d1d2��Zed3dd4�d�d:d;��Zed�d>d?��Ze		3d�d�dDdE��Zed�dFdG��Zed�dIdJ��Zed�dKdL��Zed�dNdO��Zed�dXdY��Zed�d\d]��Ze	3d�d�ddde��Zed�didj��Zed�dndo��Zed�dpdq��Zed�dwdx��Z ee!d�d|d}���Z"ee!d�dd}���Z"ed�d�d}��Z"ed�d�d�d�d��d�d�d���Z#e	�d�d�d�d���Z$ed�d�d���Z%ed�d�d���Z&ed�d�d���Z'ed�d�d���Z(ed�d�d���Z)ed�d�d���Z*ed�d�d���Z+ed�d�d���Z,d3S)��TrioBackendr��1Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]]r�r�rUr�r�rWrOcCstj|g|�R�SrY)ra�run)r\r�r�rUr�r]r]r^r��szTrioBackend.runrVcCs
 242  tj��SrY)rar�r�r�r]r]r^�
 243  current_token��
 244  zTrioBackend.current_tokenrucC�t��SrY)ra�current_timer�r]r]r^r��ryzTrioBackend.current_time�type[BaseException]cCstjSrY)rar�r�r]r]r^�cancelled_exception_class�r�z%TrioBackend.cancelled_exception_classr_c���tj��IdHdSrY)rar�rr�r]r]r^r���zTrioBackend.checkpointc�r�rY)rar�rdr�r]r]r^rd�r�z#TrioBackend.checkpoint_if_cancelledc�r�rY)rar��cancel_shielded_checkpointr�r]r]r^r��r�z&TrioBackend.cancel_shielded_checkpoint�delayc�s�t�|�IdHdSrY)rar�)r\r�r]r]r^r�r�zTrioBackend.sleepF�rxr�rxr�rm�abc.CancelScopecCst||d�S)Nr�r>)r\rxr�r]r]r^�create_cancel_scopeszTrioBackend.create_cancel_scopecCr�rY)ra�current_effective_deadliner�r]r]r^r�ryz&TrioBackend.current_effective_deadline�
 245  abc.TaskGroupcC�t�SrY)r�r�r]r]r^�create_task_groupr�zTrioBackend.create_task_group�	abc.EventcCr�rYr6r�r]r]r^�create_eventr�zTrioBackend.create_eventr^r9cCs
 246  t|d�S)Nr]r8r_r]r]r^�create_lockr�zTrioBackend.create_lockNrnrpr�ror��
 247  abc.SemaphorecCst|||d�S)Nrnr<rqr]r]r^�create_semaphoreszTrioBackend.create_semaphorertr5cC�t|�SrYr4)r\rtr]r]r^�create_capacity_limiter&ryz#TrioBackend.create_capacity_limiter�&Callable[[Unpack[PosArgsT]], T_Retval]�abandon_on_cancel�limiter�abc.CapacityLimiter | Nonec�s8�d���fdd�}t���t||ttj|�d�IdHS)NrWrOcs6tt������Wd�S1swYdSrY)r-r�r]�r�r��tokenr]r^�wrapper2s$�z6TrioBackend.run_sync_in_worker_thread.<locals>.wrapper)r�r�)rWrO)r�r�r%rrar5)r\r�r�r�r�r�r]r�r^�run_sync_in_worker_thread*s�
 248  �z%TrioBackend.run_sync_in_worker_threadcCstj��dSrY)rar��check_cancelledr�r]r]r^r�=�zTrioBackend.check_cancelledr�cC�tjj|g|�R�SrY)rar�r��r\r�r�r�r]r]r^�run_async_from_threadA�z!TrioBackend.run_async_from_threadcCr�rY)rar�r%r�r]r]r^�run_sync_from_threadJr�z TrioBackend.run_sync_from_thread�abc.BlockingPortalcCr�rY)r�r�r]r]r^�create_blocking_portalSr�z"TrioBackend.create_blocking_portal�command�)StrOrBytesPath | Sequence[StrOrBytesPath]r��int | IO[Any] | Noner�r�rr�c
 249  �s��ddd��t|tttf�r#tjj�|�f|||dd�|��IdH}ntjj�fd	d
 250  �|D�f|||dd�|��IdH}|jrDt|j�nd}|j	rNt
 251  |j	�nd}|jrXt
 252  |j�nd}	t||||	�S)
 253  Nr�rDrW�strcSs"t�|�}t|t�r|St�|�SrY)�os�fspathr�r��fsdecode)r�Zstr_or_bytesr]r]r^�convert_itemas
 254  
 255  
 256  z.TrioBackend.open_process.<locals>.convert_itemT)r�r�r��shellcsg|]}�|��qSr]r])�.0r��r�r]r^�
 257  <listcomp>ssz,TrioBackend.open_process.<locals>.<listcomp>F)r�rDrWr�)
 258  r�r�r�rrar��open_processr�r�r�r�r�r�)
 259  r\r�r�r�r�rUr�Zstdin_streamZ
 260  stdout_streamZ
 261  stderr_streamr]r�r^r�Ws6�
 262  
 263  ���	���	zTrioBackend.open_processr�r�cCstj�t|�dSrY)rar�Zspawn_system_taskr�)r\r�r]r]r^�#setup_process_pool_exit_at_shutdown�sz/TrioBackend.setup_process_pool_exit_at_shutdown�hostr��port�
 264  local_address�IPSockAddrType | Nonerc�s��d|vrtjntj}tj�|�}|�tjtjd�|r$|�|�IdHz|�||f�IdHWt|�St	y?|�
 265  ��w)N�:r�)r�AF_INET6�AF_INETrar8r9r:�bind�connectr�r�r)r\r�r�r��familyr�r]r]r^�connect_tcp�s���zTrioBackend.connect_tcp�path�str | bytes�abc.UNIXSocketStreamc�sD�tj�tj�}z
 266  |�|�IdHWt|�Sty!|���wrY)rar�AF_UNIXr�r�r�r)r\r�r�r]r]r^�connect_unix�s���zTrioBackend.connect_unix�sockr��abc.SocketListenercCr�rY)r-�r\rr]r]r^�create_tcp_listener�ryzTrioBackend.create_tcp_listenercCr�rY)r?rr]r]r^�create_unix_listener�ryz TrioBackend.create_unix_listenerr��socket.AddressFamily�remote_address�
 267  reuse_port�UDPSocket | ConnectedUDPSocketc�sb�tjj|tjd�}|r|�tjtjd�|r|�|�IdH|r-|�|�IdHt|�St	|�S)N)r��typer�)
 268  rar�
 269  SOCK_DGRAMr8r�SO_REUSEPORTr�r�rLr@)r\r�r�r	r
 270  r�r]r]r^�create_udp_socket�s�zTrioBackend.create_udp_socketr.�remote_path�abc.UNIXDatagramSocketc���dSrYr]�r\r.rr]r]r^�create_unix_datagram_socket���z'TrioBackend.create_unix_datagram_socket�abc.ConnectedUNIXDatagramSocketc�rrYr]rr]r]r^r�r�str | bytes | None�8abc.UNIXDatagramSocket | abc.ConnectedUNIXDatagramSocketc�s2�tj�|�}|r|�|�IdHt|�St|�SrY)rarr2r�rTrS)r\r.rr�r]r]r^r�s�r)r�r�protor$�bytes | str | None�str | int | None�int | AddressFamilyr�int | SocketKindrr$�uSequence[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]]]c�s�tj�||||||�IdHSrY)rar�getaddrinfo)r\r�r�r�rrr$r]r]r^r�s�zTrioBackend.getaddrinfo�sockaddrr@�tuple[str, str]c�s�tj�||�IdHSrY)rar�getnameinfo)r\r r$r]r]r^r"�s�zTrioBackend.getnameinfo�obj�HasFileno | intc
 271  ��Z�z
 272  t|�IdHWdStjy }zt��|j�d�d}~wtjy,td�d�w)Nr)r"rar0�with_traceback�
 273  __traceback__r/�r\r#r�r]r]r^r"����
 274  �zTrioBackend.wait_readablec
 275  �r%)Nr)r#rar0r&r'r/r(r]r]r^r#�r)zTrioBackend.wait_writablecCs<zt��WStyttj��d�}t�|�|YSw)Nrs)r�r��LookupErrorr5ra�	to_thread�current_default_thread_limiterr\)r\r�r]r]r^r,s
 276  �
 277  �z*TrioBackend.current_default_thread_limiterr�r�.AbstractContextManager[AsyncIterator[Signals]]cGr�rY)r�)r\r�r]r]r^r�sz TrioBackend.open_signal_receiverr*cCst�}t|�SrY)r!rk)r\r�r]r]r^�get_current_taskszTrioBackend.get_current_task�Sequence[TaskInfo]cCsbt�}|sJ�t|�g}|j}|r/g}|D]}|jD]}|�t|��|�|j�qq|}|s|SrY)r rkZchild_nurseriesZchild_tasksr(�extend)r\Z	root_taskZ
 278  task_infosZ	nurseriesZ
 279  new_nurseriesZnurseryr�r]r]r^�get_running_taskss
 280  
 281  ��	zTrioBackend.get_running_tasksc�s�ddlm}|�IdHdS)Nr)�wait_all_tasks_blocked)Ztrio.testingr2)r\r2r]r]r^r2+s�z"TrioBackend.wait_all_tasks_blockedr�cCstdi|��Sr`)r�)r\r�r]r]r^�create_test_runner1r�zTrioBackend.create_test_runner)
 282  r�r�r�r�rUr�r�r�rWrO)rWrVr�)rWr�r�)r�rurWr_)rxrur�rmrWr�)rWr�)rWr�rl)rpr�ror�r^rmrWr�)rtrurWr5)FN)
 283  r�r�r�r�r�rmr�r�rWrO)r�r�r�r�r�rVrWrO)r�r�r�r�r�rVrWrO)rWr�)r�r�r�r�r�r�r�r�rUrrWr��r�r�rWr_rY)r�r�r�r�r�r�rWr)r�r�rWr)rr�rWr)
 284  r�rr�r�r	r�r
 285  rmrWr)r.r�rr_rWr)r.r�rr�rWr)r.r�rrrWr)r�rr�rr�rrrrr�r$r�rWr)r)r r@r$r�rWr!)r#r$rWr_)rWr5)r�rrWr-)rWr*)rWr/)r�r�rWr�)-r�r�r��classmethodr�r�r�r�rrdr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrr"r"r#r,r�r.r1r2r3r]r]r]r^r��s�	��	�(�
 286  ��
 287  r�r4)��
 288  __future__rrr�r�r�sys�typesr��collections.abcrrrrrrr	r
 289  �concurrent.futuresr�
 290  contextlibr�dataclassesr
 291  �	functoolsr�iorrr�rrrr�typingrrrrrrrrZtrio.from_threadraZ
 292  trio.lowlevelr�rrrr r!r"r#Ztrio.socketr$r�Ztrio.to_threadr%�r'r(r)r*r+r,Z_core._eventloopr-Z_core._exceptionsr.r/r0r1Z_core._socketsr2Z_core._streamsr3Z_core._synchronizationr5ZBaseCapacityLimiterr7Z	BaseEventr9ZBaseLockr:r;r=Z
 293  BaseSemaphoreZ_core._tasksr?ZBaseCancelScoper@rArBZabc._eventlooprCrDZstreams.memoryrEZ	_typeshedrF�version_inforIZtyping_extensionsrKrLZexceptiongrouprMrNrOr�rPrQrRr�ZRunVarr�r�ZByteReceiveStreamr�ZByteSendStreamr�r�Z
 294  Instrumentr�r�r�r�r�rrZSocketListenerr-r?r@rLrSrTr�r�r�rkr�Z
 295  backend_classr]r]r]r^�<module>s�(
 296  ( 6; 8�
 297  !C
 298  
 299  �86L WY