← back to Atmos Game

assets/gen/.venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/_trio.cpython-312.pyc

277 lines

�

c�bj����UddlmZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
mZmZm
Z
mZmZmZmZddlmZddlmZddlmZddlmZmZddlmZdd	lmZdd
lmZddlm Z m!Z!ddlm"Z"dd
l#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-ddl.Z/ddl0Z/ddl1m2Z2m3Z3m4Z4ddl0m5Z5m6Z6m7Z7m8Z8m9Z9ddl:m;Z<ddl=m>Z>ddl?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFddlGmHZHddlImJZJmKZKmLZLmMZMddlNmOZOddlPmQZQddlRmSZTddlRmUZVddlRmWZXddlRmYZYmZZZddlRm[Z\ddl]m^Z_ddl]m`Z`ddlFmaZambZbmcZcdd ldmeZemfZfdd!lgmhZhmiZimjZjdd"lkmlZle%rdd#lmmnZnej�d$k\r	dd%l#mpZpmqZqndd&lrmsZsdd%ltmpZpmqZqe+d'�Zue+d(�Zve+d)d*�+�Zwe+d,exea�Zyepd-�Zze*d.�Z{				dfd/�Z|e/j�j�Z~Gd0�d1e_�Z^e�Z�Gd2�d3e'eheF�jeh�Z�Gd4�d5eF�j�Z�ed6�7�Gd8�d9eF�j��Z�ed6�7�Gd:�d;eF�j��Z�ed6�7�Gd<�d=eF�j��Z�Gd>�d?e/j��j�Z�e~d@�Z�dAe�d@<dgdB�Z�GdC�dDe'ey�Z�GdE�dFe�eF�j�Z�GdG�dHe�eF�j �Z�GdI�dJe�eF�j"�Z�GdK�dLe�eF�j"�Z�GdM�dNe�eaeF�j(�Z�GdO�dPe�eaeF�j*�Z�GdQ�dRe�exeF�j,�Z�GdS�dTe�exeF�j.�Z�GdU�dVeV�ZUGdW�dXeX�ZWGdY�dZe\�Z[Gd[�d\eT�ZSe~d]�Z�dAe�d]<Gd^�d_�Z�Gd`�daeF�j4�Z�Gdb�dceD�Z�Gdd�deee�Z�e�Z�y)h�)�annotationsN)�AsyncGenerator�
AsyncIterator�	Awaitable�Callable�
Collection�	Coroutine�Iterable�Sequence)�AbstractContextManager)�Context)�	dataclass)�partial�wraps)�IOBase)�PathLike)�Signals)�
AddressFamily�
SocketKind)�
TracebackType)
�IO�
TYPE_CHECKING�Any�Generic�Literal�NoReturn�	ParamSpec�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)�
TaskHandle)�IPSockAddrType�
UDPPacketType�UNIXDatagramPacketType)�AsyncBackend�StrOrBytesPath)�T_contra�call_for_coroutine�get_callable_name)�MemoryObjectSendStream)�FileDescriptorLike)��)�TypeVarTuple�Unpack)�BaseExceptionGroup�T�T_Retval�T_coT)�	covariant�
T_SockAddr�PosArgsT�Pc�0��t��d�fd��}|S)Nc�����|i|���t�t�r�St�t�s�St��d�fd��}|�S)Nc��$�K���d{���S7��w�N�)�	awaitables��l/Users/macstudio3/Projects/atmos-game/assets/gen/.venv/lib/python3.12/site-packages/anyio/_backends/_trio.py�
inner_wrapperz;ensure_returns_coro.<locals>.wrapper.<locals>.inner_wrapperzs�����&��&��s�����returnrW)�
isinstancer	rr)�args�kwargsrdrb�funcs   @�rc�wrapperz$ensure_returns_coro.<locals>.wrappernsV����$�)�&�)�	��i��+����I�y�1����4�[�
'��
'�!�?�"�)rh�P.argsri�P.kwargsrfzCoroutine[Any, Any, T_Retval])r)rjrks` rc�ensure_returns_cororoks"����4�[�#��#�"�Nrlc���eZdZdZ	d					dd�Zddd�Zdd�Z								dd�Zddd�Ze	dd��Z
e
jdd	��Z
e	dd
��Ze	dd��Z
e	dd��Zejdd
��Zy)rE��
__originalNc�,�tj|�Sr`��object�__new__)�cls�originalris   rcrvzCancelScope.__new__�s���~�~�c�"�"rlc�@�|xstjdi|��|_y�Nra)�triorE�_CancelScope__original)�selfrxris   rc�__init__zCancelScope.__init__�s��"�@�d�&6�&6�&@��&@��rlc�:�|jj�|Sr`)r|�	__enter__�r}s rcr�zCancelScope.__enter__�s�����!�!�#��rlc�<�|jj|||�Sr`)r|�__exit__�r}�exc_type�exc_val�exc_tbs    rcr�zCancelScope.__exit__�s�����'�'��'�6�B�Brlc�:�|jj|�yr`)r|�cancel)r}�reasons  rcr�zCancelScope.cancel�s�������v�&rlc�.�|jjSr`�r|�deadliner�s rcr�zCancelScope.deadline�s�����'�'�'rlc�&�||j_yr`r��r}�values  rcr�zCancelScope.deadline�s��#(���� rlc�.�|jjSr`)r|�
cancel_calledr�s rcr�zCancelScope.cancel_called�s�����,�,�,rlc�.�|jjSr`)r|�cancelled_caughtr�s rcr�zCancelScope.cancelled_caught�������/�/�/rlc�.�|jjSr`�r|�shieldr�s rcr�zCancelScope.shield�s�����%�%�%rlc�&�||j_yr`r�r�s  rcr�zCancelScope.shield�s��!&����rlr`)rx�trio.CancelScope | NonerirurfrE)rxr�rirrf�None)rfrE�r��type[BaseException] | Noner��BaseException | Noner��TracebackType | Nonerf�bool)r�z
str | Nonerfr��rf�float�r�r�rfr��rfr�)r�r�rfr�)�__name__�
__module__�__qualname__�	__slots__rvr~r�r�r��propertyr��setterr�r�r�rarlrcrErE�s����I�26�#�.�#�AG�#�	�#�
A��C�,�C�&�C�%�	C�

�C�'��(��(��_�_�)��)��-��-��0��0��&��&��]�]�'��'rlrEc�4�eZdZUeZded<dZded<ddd�Zy)	�_TrioTaskStatuszT_contra | object�early_start_valueNz'trio.TaskStatus[T_contra | None] | None�real_task_statusc��|j�%|jturtd��||_y|jj	|�y)Nz.called 'started' twice on the same task status)r�r��empty_start_value�RuntimeError�startedr�s  rcr�z_TrioTaskStatus.started�sE��� � �(��%�%�->�>�"�#S�T�T�%*�D�"��!�!�)�)�%�0rlr`)r�zT_contra | Nonerfr�)r�r�r�r�r��__annotations__r�r�rarlrcr�r��s��+<��(�<�@D��=�D�1rlr�c�~�eZdZdd�Zdd�Z								d
d�Zddd�Zddd�							dd�Zddd	�									dd
�Zy)�	TaskGroupc�d�d|_d|_tjd��|_d|_y)NFT)�strict_exception_groups)�_entered�_activer{�open_nursery�_nursery_manager�cancel_scoper�s rcr~zTaskGroup.__init__�s+����
���� $� 1� 1�$� O��� ��rlc���K�|jrtd��d|_d|_|jj	��d{���|_t
|j
j�|_|S7�/�w)Nz*TaskGroup cannot be entered more than onceT)r�r�r�r��
__aenter__�_nurseryrEr�r�s rcr�zTaskGroup.__aenter__�sb�����=�=��K�L�L���
����"�3�3�>�>�@�@��
�'��
�
�(B�(B�C�����A�s�AA7�A5�0A7c��.K�	|jj|||��d{���~~d|_S7�
#t$rG}|j	t
j�dst
jj�|��d}~wwxYw#~~d|_wxYw�w)NF�)r��	__aexit__r�rU�splitr{�	Cancelled�_create)r}r�r�r��excs     rcr�zTaskGroup.__aexit__�s�����
	!��.�.�8�8��7�F�S�S��� �D�L�T��!�	��9�9�T�^�^�,�Q�/��n�n�,�,�.�C�7���		���� �D�L�s=�B� 4�2�4�
B�4�	B�AA?�?B�B�B�BNc�V�|js|�|j�td��y)Nz;This task group is not active; no new tasks can be started.)r��closer�)r}�coros  rc�
_check_activezTaskGroup._check_active�s-���|�|����
�
���M��
�	rl)�name�contextc��t|t�s"td|jj����|j|�t
||�}|�G|jt|jj|j|j���|S|jj|j|j��|S)Nzexpected a coroutine, got �r�)
rgr	�	TypeError�	__class__r�r�rF�runrr��
start_soon�	_run_coror�)r}r�r�r��handles     rc�create_taskzTaskGroup.create_tasks����$�	�*��8����9T�9T�8U�V�W�W����4� ��D�$�'�����K�K���
�
�0�0�&�2B�2B����U�
��
�
�M�M�$�$�V�%5�%5�F�K�K�$�H��
rlF)r��
return_handlec�������K�				d����fd�}|j�t���}|jj||���d{���}|r	|�_�S|S7��w)Nc����K�t�}t��|��}|jtur|j	|j�n||_t
|����j��d{���y7��w)N)�task_status)r�rMr�r�r�r�rFr�)r��wrapper_task_statusr�rhrjr�r�s   ����rc�run_coro_with_task_statusz2TaskGroup.start.<locals>.run_coro_with_task_status!sl�����#2�"3��%�d�D�>Q�R�D�"�4�4�<M�M��#�#�$7�$I�$I�J�7B�#�4���d�+�F��"�"�$�$�$�s�A-A8�0A6�1A8r�)r�ztrio.TaskStatus[Any]rfr�)r�rNr��start�_start_value)	r}rjr�r�rhr��
final_name�start_valuer�s	 `` `   @rcr�zTaskGroup.starts{�����	%�0�	%�
�	%�	%�	
����&�t�T�2�
� �M�M�/�/�%�J�0�
�
���"-�F���M���
�s�A
A$�A"�A$�rfr�)rfr�r�r`)r�zCoroutine | Nonerfr�)r�zCoroutine[Any, Any, T_co]r�rur�zContext | NonerfzTaskHandle[T_co])
rj�7Callable[[Unpack[PosArgsT]], Coroutine[Any, Any, T_co]]rhzUnpack[PosArgsT]r�rur�zLiteral[False] | Literal[True]rfr)	r�r�r�r~r�r�r�r�r�rarlrcr�r��s���!��!�,�!�&�!�%�	!�

�!�$��"&��'���	�
 ��
�
�2�8=� �E� � � ��	 �
6� �

�
 rlr�F)�eqc�*�eZdZUded<ddd�Zdd�Zy)	�ReceiveStreamWrapperztrio.abc.ReceiveStream�_streamNc��FK�|�|dkrtd��	|jj|��d{���}|rt|�St�7�#tj$r}t|j
�d}~wtj$r}t|j
�d}~wwxYw�w�Nr�z$max_bytes must be a positive integer)	�
ValueErrorr��receive_somer{r6�	__cause__r4�bytesr7�r}�	max_bytes�datar�s    rc�receivezReceiveStreamWrapper.receiveDs������ �Y��]��C�D�D�	9����2�2�9�=�=�D����;����>���'�'�	9�%�3�=�=�8���'�'�	9�%�3�=�=�8��	9�sC�B!�A�A�A�B!�A�B�!A2�2B�B�B�B!c��TK�|jj��d{���y7��wr`�r��acloser�s rcr�zReceiveStreamWrapper.acloseT������l�l�!�!�#�#�#���(�&�(r`)r��
int | Nonerfr�r�)r�r�r�r�r�r�rarlrcr�r�@s��
#�#�� $rlr�c�(�eZdZUded<dd�Zdd�Zy)�SendStreamWrapperztrio.abc.SendStreamr�c���K�	|jj|��d{���y7�#tj$r}t|j�d}~wtj
$r}t
|j�d}~wwxYw�wr`)r��send_allr{r6r�r4�r}�itemr�s   rc�sendzSendStreamWrapper.send\s_����	9��,�,�'�'��-�-�-���'�'�	9�%�3�=�=�8���'�'�	9�%�3�=�=�8��	9�s<�A=�*�(�*�A=�*�A:�A�A:�$A5�5A:�:A=c��TK�|jj��d{���y7��wr`r�r�s rcr�zSendStreamWrapper.aclosedr�r�N�r�r�rfr�r�)r�r�r�r�r�r�rarlrcr�r�Xs��
 � �9�$rlr�c��eZdZUded<ded<ded<ded<dd�Zdd	�Zdd
�Zdd�Zdd�Ze	dd
��Z
e	dd��Ze	dd��Ze	dd��Z
e	dd��Zy)�Processztrio.Process�_process�abc.ByteSendStream | None�_stdin�abc.ByteReceiveStream | None�_stdout�_stderrc��TK�td��5|jr"|jj��d{���|jr"|jj��d{���|jr"|jj��d{���ddd�	|j��d{���y7��7�V7�*#1swY�)xYw7�#t$rL|j�td��5|j��d{���7ddd��#1swY�xYwwxYw�w�NT)r�)rErr�rr�wait�
BaseException�killr�s rcr�zProcess.acloseos�����
��
%��{�{��k�k�(�(�*�*�*��|�|��l�l�)�)�+�+�+��|�|��l�l�)�)�+�+�+�
&�	��)�)�+���+��+��+��
&�
%��
���	��I�I�K��D�)��i�i�k�!�!�*��*���		�s��
D(�*C�B<�-C�'B>�(-C�C�C�D(�#C�6C�7C�;D(�<C�>C�C�C�D(�C�%D%�5D�	D�
D�	D%�D!	�D%�%D(c��RK�|jj��d{���S7��wr`)rr	r�s rcr	zProcess.wait�s�����]�]�'�'�)�)�)�)���'�%�'c�8�|jj�yr`)r�	terminater�s rcrzProcess.terminate�s���
�
���!rlc�8�|jj�yr`)rrr�s rcrzProcess.kill�s���
�
���rlc�:�|jj|�yr`)r�send_signal)r}�signals  rcrzProcess.send_signal�s���
�
�!�!�&�)rlc�.�|jjSr`)r�pidr�s rcrzProcess.pid�s���}�}� � � rlc�.�|jjSr`)r�
returncoder�s rcrzProcess.returncode�s���}�}�'�'�'rlc��|jSr`)rr�s rc�stdinz
Process.stdin�s���{�{�rlc��|jSr`)rr�s rc�stdoutzProcess.stdout�����|�|�rlc��|jSr`)rr�s rc�stderrzProcess.stderr�rrlNr��rf�int)rrrfr��rfr�)rfr)rfr)r�r�r�r�r�r	rrrr�rrrrrrarlrcrrhs�����%�%�
)�)�
)�)��"*�"��*��!��!��(��(������������rlrc� ��eZdZd�fd�Z�xZS)�_ProcessPoolShutdownInstrumentc�"��t�|��yr`)�super�	after_run)r}r�s �rcr&z(_ProcessPoolShutdownInstrument.after_run�s���
���rlr�)r�r�r�r&�
__classcell__�r�s@rcr#r#�s
����rlr#�&current_default_worker_process_limiterztrio.lowlevel.RunVarc��hK�	tjtj��d{���y7�#tj$rj|D]}|j
��|j
��!td��5|D]}|j��d{���7�	ddd�Yy#1swYYyxYwwxYw�wr)	r{�sleep�math�infr�rrrEr�)�workers�processs  rc�_shutdown_process_poolr0�s�����	'��j�j����"�"�"���>�>�'��G��!�!�)��������
%�"���n�n�&�&�&�#�&�
%�
%��'�sa�B2�&2�0�2�B2�2�$B/�B/�5B!�B
�B!�B/�B2�!B+	�&B/�)B2�+B/�/B2c�>�eZdZdd�Zdd�Zed	d��Zdd�Zd
d�Zy)�_TrioSocketMixinc� �||_d|_y�NF)�_trio_socket�_closed)r}�trio_sockets  rcr~z_TrioSocketMixin.__init__�s��'�����rlc�n�|jrt�|jj�dkrt�y�Nr)r6r6r5�filenor4r�s rc�
_check_closedz_TrioSocketMixin._check_closed�s1���<�<�%�%����#�#�%��)�%�%�*rlc�.�|jjSr`)r5�_sockr�s rc�_raw_socketz_TrioSocketMixin._raw_socket�s��� � �&�&�&rlc��K�|jj�dk\r"d|_|jj�yy�w)NrT)r5r:r6r�r�s rcr�z_TrioSocketMixin.aclose�s;�������#�#�%��*��D�L����#�#�%�+�s�AAc���t|tj�rt|�|jj	�dkr|j
rtd�t|t�rt|�|�r9)rgr{r6r5r:r6�OSErrorr4�r}r�s  rc�_convert_socket_errorz&_TrioSocketMixin._convert_socket_error�sV���c�4�3�3�4�%�3�.�
�
�
�
%�
%�
'�!�
+����%�4�/�
��W�
%�%�3�.��IrlN�r7�TrioSocketTyperfr�r�)rf�
socket.socket)r�r
rfr)	r�r�r�r~r;r�r>r�rCrarlrcr2r2�s*���&��'��'�&�
rlr2c�:��eZdZd�fd�Zddd�Zdd�Zd	d�Z�xZS)
�SocketStreamc�d��t�|�|�td�|_td�|_y�N�reading from�
writing to�r%r~r@�_receive_guard�_send_guard�r}r7r�s  �rcr~zSocketStream.__init__��*���
����%�+�N�;���(��6��rlc��K�|dkrtd��|j5	|jj|��d{���}r|cddd�St�7�#t$r}|j|�Yd}~�4d}~wwxYw#1swYyxYw�wr�)r�rNr5�recvr
rCr7r�s    rcr�zSocketStream.receive�s������q�=��C�D�D�
�
 �
 �
0�!�.�.�3�3�I�>�>����!�
 �"�!�?�� �
0��*�*�3�/�/��
0��!�
 �s\�B�B�A�A�A�B�
B�B�A�	A=�"A8�3B�8A=�=B�B	�Bc��K�|j5t|�}|r,	|jj|��d{���}|d}|r�,ddd�y7�#t$r}|j|�Yd}~�2d}~wwxYw#1swYyxYw�wr`)rO�
memoryviewr5r�r
rC)r}r��view�
bytes_sentr�s     rcr�zSocketStream.send�s�����
�
�
��d�#�D��4�'+�'8�'8�'=�'=�d�'C�!C�J��J�K�(��
��
�"D��$�4��.�.�s�3�3��4���
�sU�
B�A;�A�A�A�A;�		B�A�	A8�A3�.A;�3A8�8A;�;B�Bc��^K�|jjtj�y�wr`)r5�shutdown�socket�SHUT_WRr�s rc�send_eofzSocketStream.send_eof�s�������"�"�6�>�>�2���+-rD)�)r�r rfr�r�r�)r�r�r�r~r�r�r\r'r(s@rcrHrH�s���7�

"�	)�3rlrHc��eZdZdd�Zdd�Zy)�UNIXSocketStreamc	��XK�t|t�r|dkrtd��t|t�r|dkrtd��tjd�}tj
j
��d{���|j5		|jj|tj||jz���d{���\}}}}|s|st�	ddd�D]v\}	}
}|	tj k7s|
tj"k7rt%d�d|	�d|
����|j'|dt)|�t)|�|jzz
��xt+|�fS7��7��#t$r}|j|�Yd}~nd}~wwxYw��#1swY��xYw�w)	Nrz%msglen must be a non-negative integerr�z!maxfds must be a positive integer�iz.Received unexpected ancillary data; message = z, cmsg_level = z, cmsg_type = )rgr r��arrayr{�lowlevel�
checkpointrNr5�recvmsgrZ�CMSG_LEN�itemsizer7r
rC�
SOL_SOCKET�
SCM_RIGHTSr��	frombytes�len�list)r}�msglen�maxfds�fds�message�ancdata�flags�addrr��
cmsg_level�	cmsg_type�	cmsg_datas            rc�receive_fdszUNIXSocketStream.receive_fdss������&�#�&�&�1�*��D�E�E��&�#�&�&�1�*��@�A�A��k�k�#����m�m�&�&�(�(�(�
�
 �
 ��
�:>�:K�:K�:S�:S���������0E� F�;�5�1�G�W�e�T�#�7�)�)��!�18�,�J�	�9��V�.�.�.�)�v�?P�?P�2P�"�D�W�K�P$�$.�<�~�i�[�J���

�M�M�)�$V�c�)�n��I�����8U�&V�W�X�18���S�	�!�!�1	)��5��%�4��.�.�s�3�3��4���!�
 �sg�A7F*�9E1�:F*�
F�
?E5�E3�
	E5�
F�!BF*�3E5�5	F�>F�F�F�F�F'�#F*c��K�|std��|std��g}|D]T}t|t�r|j|��%t|t�s�6|j|j���Vt
jd|�}tjj��d{���|j5		|jj|gtjtj|fg��d{���	ddd�y7�b7�#t $r}|j#|�Yd}~nd}~wwxYw�|#1swYyxYw�w)Nzmessage must not be emptyzfds must not be emptyrb)r�rgr �appendrr:rcr{rdrerOr5�sendmsgrZrirjr
rC)r}rqrp�filenos�fd�fdarrayr�s       rc�send_fdszUNIXSocketStream.send_fds"s*������8�9�9���4�5�5����B��"�c�"����r�"��B��'����r�y�y�{�+�	��+�+�c�7�+���m�m�&�&�(�(�(�
�
�
��
4��+�+�3�3� �	�!'� 1� 1� &� 1� 1� '���	�	�	���
�	)��	��%�4��.�.�s�3�3��4����
�sh�AE
�AE
�/D�0E
�D>�AD�D�D�	
E
�D�	D:�D5�0D>�5D:�:D>�>E�E
N)rnr ror rfztuple[bytes, list[int]])rqr�rpzCollection[int | IOBase]rfr�)r�r�r�rxrrarlrcr`r`s
��"�B4rlr`c�(��eZdZd�fd�Zdd�Z�xZS)�TCPSocketListenerc�~��t�|�tjj	|��td�|_y�Nzaccepting connections from�r%r~r{rZ�from_stdlib_socketr@�
_accept_guard�r}�
raw_socketr�s  �rcr~zTCPSocketListener.__init__D�-���
������7�7�
�C�D�*�+G�H��rlc��^K�|j5	|jj��d{���\}}ddd�jtjtjd�t|�S7�I#t$r}|j	|�Yd}~�cd}~wwxYw#1swY�lxYw�w�Nr�)
r�r5�acceptr
rC�
setsockoptrZ�IPPROTO_TCP�TCP_NODELAYrH�r}r7�_addrr�s    rcr�zTCPSocketListener.acceptHs�����
�
�
�
0�+/�+<�+<�+C�+C�+E�%E�"��U� �	���v�1�1�6�3E�3E�q�I��K�(�(�&F�� �
0��*�*�3�/�/��
0�� �
�sO�
B-�B!�A:�A8�A:�AB-�8A:�:	B�B�B!�B�B!�!B*�&B-�r�rF)rfrH�r�r�r�r~r�r'r(s@rcr�r�Cs���I�)rlr�c�(��eZdZd�fd�Zdd�Z�xZS)�UNIXSocketListenerc�~��t�|�tjj	|��td�|_yr�r�r�s  �rcr~zUNIXSocketListener.__init__Tr�rlc��K�|j5	|jj��d{���\}}ddd�t�S7�#t$r}|j	|�Yd}~�4d}~wwxYw#1swYt�SxYw�wr`)r�r5r�r
rCr`r�s    rcr�zUNIXSocketListener.acceptXs{����
�
�
�
0�+/�+<�+<�+C�+C�+E�%E�"��U� � ��,�,�	&F�� �
0��*�*�3�/�/��
0�� � ��,�,�sN�
B�A2�A�A	�A�B�	A�	A/�A*�%A2�*A/�/A2�2B�7Br�)rfr`r�r(s@rcr�r�Ss���I�-rlr�c�0��eZdZd�fd�Zdd�Zdd�Z�xZS)�	UDPSocketc�d��t�|�|�td�|_td�|_yrJrMrPs  �rcr~zUDPSocket.__init__crQrlc��K�|j5	|jjd��d{���\}}|t|�fcddd�S7�#t$r}|j|�Yd}~nd}~wwxYw	ddd�y#1swYyxYw�w�Nr^)rNr5�recvfromr8r
rC�r}r�rtr�s    rcr�zUDPSocket.receivehsy����
�
 �
 �
0�#'�#4�#4�#=�#=�e�#D�D�
��d��2�4�8�8�!�
 �D�� �
0��*�*�3�/�/��
0��/�!�
 �
 �sU�
B�B�A�A
�A�
B�
A�	A3�A.�)B�.A3�3B�7	B�B	�Bc���K�|j5	|jj|��d{���ddd�y7�
#t$r}|j	|�Yd}~�*d}~wwxYw#1swYyxYw�wr`�rOr5�sendtor
rCr�s   rcr�zUDPSocket.sendp�d����
�
�
�
0�.�d�'�'�.�.��5�5�5��
�5�� �
0��*�*�3�/�/��
0���
��H�
A0�A$�=�;�=�	A0�=�	A!�A�A$�A!�!A$�$A-�)A0rD)rfztuple[bytes, IPSockAddrType])r�rHrfr��r�r�r�r~r�r�r'r(s@rcr�r�b����7�
0�0rlr�c�0��eZdZd�fd�Zdd�Zdd�Z�xZS)�ConnectedUDPSocketc�d��t�|�|�td�|_td�|_yrJrMrPs  �rcr~zConnectedUDPSocket.__init__yrQrlc���K�|j5	|jjd��d{���cddd�S7�
#t$r}|j	|�Yd}~nd}~wwxYw	ddd�y#1swYyxYw�wr��rNr5rSr
rCrBs  rcr�zConnectedUDPSocket.receive~�e����
�
 �
 �
0�!�.�.�3�3�E�:�:�!�
 �:�� �
0��*�*�3�/�/��
0��/�	!�
 �
 ��N�
A<�A0�?�=�?�
A<�?�	A#�A�A0�A#�#A0�'	A<�0A9�5A<c���K�|j5	|jj|��d{���ddd�y7�
#t$r}|j	|�Yd}~�*d}~wwxYw#1swYyxYw�wr`�rOr5r�r
rCr�s   rcr�zConnectedUDPSocket.send��b����
�
�
�
0��'�'�,�,�T�2�2�2��
�2�� �
0��*�*�3�/�/��
0���
��H�
A2�A&�?�=�?�	A2�?�	A#�A�A&�A#�#A&�&A/�+A2rD�rfr�r�r�r(s@rcr�r�xs���7�
0�0rlr�c�0��eZdZd�fd�Zdd�Zdd�Z�xZS)�UNIXDatagramSocketc�d��t�|�|�td�|_td�|_yrJrMrPs  �rcr~zUNIXDatagramSocket.__init__�rQrlc��
K�|j5	|jjd��d{���\}}||fcddd�S7�#t$r}|j	|�Yd}~nd}~wwxYw	ddd�y#1swYyxYw�wr�)rNr5r�r
rCr�s    rcr�zUNIXDatagramSocket.receive�sr����
�
 �
 �
0�#'�#4�#4�#=�#=�e�#D�D�
��d��T�z�!�
 �D�� �
0��*�*�3�/�/��
0��/�!�
 �
 �sT�
B�A7�A�A�
A�
B�A�	A*�A%� A7�%A*�*A7�.	B�7B�<Bc���K�|j5	|jj|��d{���ddd�y7�
#t$r}|j	|�Yd}~�*d}~wwxYw#1swYyxYw�wr`r�r�s   rcr�zUNIXDatagramSocket.send�r�r�rD)rfrI)r�rIrfr�r�r(s@rcr�r��r�rlr�c�0��eZdZd�fd�Zdd�Zdd�Z�xZS)�ConnectedUNIXDatagramSocketc�d��t�|�|�td�|_td�|_yrJrMrPs  �rcr~z$ConnectedUNIXDatagramSocket.__init__�rQrlc���K�|j5	|jjd��d{���cddd�S7�
#t$r}|j	|�Yd}~nd}~wwxYw	ddd�y#1swYyxYw�wr�r�rBs  rcr�z#ConnectedUNIXDatagramSocket.receive�r�r�c���K�|j5	|jj|��d{���ddd�y7�
#t$r}|j	|�Yd}~�*d}~wwxYw#1swYyxYw�wr`r�r�s   rcr�z ConnectedUNIXDatagramSocket.send�r�r�rDr�r�r�r(s@rcr�r��s���7�
0�0rlr�c�@�eZdZdZd	d�Zd
d�Zdd�Zd
d�Zdd�Zd
d�Z	y)
r=rqc�,�tj|�Sr`rt�rws rcrvz
Event.__new__�����~�~�c�"�"rlc�6�tj�|_yr`)r{r=�_Event__originalr�s rcr~zEvent.__init__�s���*�*�,��rlc�6�|jj�Sr`)r��is_setr�s rcr�zEvent.is_set�������%�%�'�'rlc��RK�|jj��d{���S7��wr`)r�r	r�s rcr	z
Event.wait�s�����_�_�)�)�+�+�+�+�r
c�b�|jj�}t|j��S)N)�
tasks_waiting)r��
statisticsr-r��r}�orig_statisticss  rcr�zEvent.statistics�s%���/�/�4�4�6���_�-J�-J�K�Krlc�8�|jj�yr`)r��setr�s rcr�z	Event.set�s�������rlN)rfr=r�r�)rfr-)
r�r�r�r�rvr~r�r	r�r�rarlrcr=r=�s&���I�#�'�(�,�L�rlr=c�f�eZdZdZdd�d
d�Zdd�dd�Zedd��Zdd�Zdd�Z	dd	�Z
dd
�Zdd�Zy)r?)�
_fast_acquirerrF��fast_acquirec�,�tj|�Sr`rt�rwr�s  rcrvzLock.__new__�r�rlc�D�||_tj�|_yr`)r�r{r?�_Lock__original)r}r�s  rcr~z
Lock.__init__�s��)����)�)�+��rlc�2�|jdk(rd|_yy)N)z*attempt to re-acquire an already held Lock)z)Attempted to acquire an already held Lock)rh)r�s rc�_convert_runtime_error_msgzLock._convert_runtime_error_msg�s���8�8�F�F�E�C�H�Grlc��K�|js$	|jj��d{���yt
jj��d{���	|jj�y7�G#t$r}|j	|��d}~wwxYw7�E#t
j$r0|jjj��d{���7Yyt$r}|j	|��d}~wwxYw�wr`)r�r��acquirer�r�r{rd�checkpoint_if_cancelled�acquire_nowaitr1�_lot�parkrBs  rcr�zLock.acquire�s������!�!�
��o�o�-�-�/�/�/�

��m�m�3�3�5�5�5�	��O�O�*�*�,�0���
��/�/��4���
��	6�����	.��/�/�&�&�+�+�-�-�-��	��+�+�C�0���	�s�
D�A7�A5�A7�"D�B�D�B�4D�5A7�7	B�B�B�D�:C=�C�C=�D�C=�&C8�8C=�=Dc��	|jj�y#tj$rtd�t$r}|j|��d}~wwxYwr`)r�r�r{r1r�r�rBs  rcr�zLock.acquire_nowait�sL��	��O�O�*�*�,�����	'��$�&��	��+�+�C�0���	�s��"A�A�Ac�6�|jj�Sr`)r��lockedr�s rcr�zLock.lockedr�rlc�8�|jj�yr`)r��releaser�s rcr�zLock.release��������!rlc��|jj�}|jrt|j�nd}t	|j
||j�Sr`)r�r��owner�TrioTaskInfor.r�r�)r}r�r�s   rcr�zLock.statisticssO���/�/�4�4�6��7F�7L�7L��_�2�2�3�RV����"�"�E�?�+H�+H�
�	
rlN�r�r�rfr?)r�r�rfr�)r�r�rfr�r�r�)rfr.)
r�r�r�r�rvr~�staticmethodr�r�r�r�r�r�rarlrcr?r?�sH��-�I�-2�#�05�&��F��F��(�(�"�
rlr?c���eZdZdZddd�							d
d�Zddd�							d�fd�Zdd�Zdd�Zedd	��Z	edd
��Z
dd�Zdd�Z�xZ
S)rCrqNF��	max_valuer�c�,�tj|�Sr`rt�rw�
initial_valuer�r�s    rcrvzSemaphore.__new__s���~�~�c�"�"rlc�b��t�|�|||��tj||��|_y)Nr�)r�)r%r~r{rC�_Semaphore__original)r}r�r�r�r�s    �rcr~zSemaphore.__init__s+���	����)�,��W��.�.��)�L��rlc��K�|js#|jj��d{���ytjj��d{���	|jj
�y7�G7�"#tj$r0|jjj��d{���7YywxYw�wr`)
r�r�r�r{rdr�r�r1r�r�r�s rcr�zSemaphore.acquire&s������!�!��/�/�)�)�+�+�+���m�m�3�3�5�5�5�	.��O�O�*�*�,�

,��	6�����	.��/�/�&�&�+�+�-�-�-�	.�sQ�*B>�A4�&B>�A6�B>�A8�3B>�6B>�8:B;�2B5�3B;�8B>�:B;�;B>c�v�	|jj�y#tj$rtd�wxYwr`)r�r�r{r1r�s rcr�zSemaphore.acquire_nowait2�2��	'��O�O�*�*�,�����	'��$�&�	'����8c�.�|jjSr`)r�r�r�s rcr�zSemaphore.max_value8s�����(�(�(rlc�.�|jjSr`)r�r�r�s rcr�zSemaphore.value<s�����$�$�$rlc�8�|jj�yr`)r�r�r�s rcr�zSemaphore.release@r�rlc�`�|jj�}t|j�Sr`)r�r�rAr�r�s  rcr�zSemaphore.statisticsCs%���/�/�4�4�6��"�?�#@�#@�A�Arl)r�r r�r�r�r�rfrC)r�r r�r�r�r�rfr�r�r!r)rfrA)r�r�r�r�rvr~r�r�r�r�r�r�r�r'r(s@rcrCrCs�����I�!%�"�#��#��	#�
�#�
�
#�!%�"�M��M��	M�
�M�
�
M�
.�'��)��)��%��%�"�BrlrCc���eZdZdZ	ddd�					dd�Z	ddd�					dd�Zdd�Z								dd�Zedd��Z	e	jdd	��Z	edd
��Zedd��Zdd�Z
dd
�Zdd�Zdd�Zdd�Zdd�Zdd�Zy)r;rqN�rxc�,�tj|�Sr`rt)rw�total_tokensrxs   rcrvzCapacityLimiter.__new__Ks���~�~�c�"�"rlc�T�|�||_y|�J�tj|�|_yr`)�_CapacityLimiter__originalr{r;)r}r�rxs   rcr~zCapacityLimiter.__init__Ss/����&�D�O��+�+�+�"�2�2�<�@�D�Orlc��RK�|jj��d{���S7��wr`)r�r�r�s rcr�zCapacityLimiter.__aenter___s�����_�_�/�/�1�1�1�1�r
c��ZK�|jj|||��d{���y7��wr`)r�r�r�s    rcr�zCapacityLimiter.__aexit__bs$�����o�o�'�'��'�6�B�B�B�s�!+�)�+c�.�|jjSr`�r�r�r�s rcr�zCapacityLimiter.total_tokensjs�����+�+�+rlc�&�||j_yr`rr�s  rcr�zCapacityLimiter.total_tokensns��',����$rlc�.�|jjSr`)r��borrowed_tokensr�s rcrzCapacityLimiter.borrowed_tokensrs�����.�.�.rlc�.�|jjSr`)r��available_tokensr�s rcrz CapacityLimiter.available_tokensvr�rlc�v�	|jj�y#tj$rtd�wxYwr`)r�r�r{r1r�s rcr�zCapacityLimiter.acquire_nowaitzr�r�c�x�	|jj|�y#tj$rtd�wxYwr`)r��acquire_on_behalf_of_nowaitr{r1�r}�borrowers  rcr	z+CapacityLimiter.acquire_on_behalf_of_nowait�s4��	'��O�O�7�7��A�����	'��$�&�	'�s��9c��TK�|jj��d{���y7��wr`)r�r�r�s rcr�zCapacityLimiter.acquire�s�����o�o�%�%�'�'�'�r�c��VK�|jj|��d{���y7��wr`)r��acquire_on_behalf_ofr
s  rcrz$CapacityLimiter.acquire_on_behalf_of�s�����o�o�2�2�8�<�<�<�s�)�'�)c�6�|jj�Sr`)r�r�r�s rcr�zCapacityLimiter.release�s�����&�&�(�(rlc�8�|jj|�Sr`)r��release_on_behalf_ofr
s  rcrz$CapacityLimiter.release_on_behalf_of�s�����3�3�H�=�=rlc��|jj�}t|j|jt|j�|j��S)N)rr��	borrowersr�)r�r�r,rr��tuplerr�)r}�origs  rcr�zCapacityLimiter.statistics�sH�����)�)�+��(� �0�0��*�*��D�N�N�+��,�,�	
�	
rlr`)r��float | Nonerx�trio.CapacityLimiter | Nonerfr;)r�rrxrrfr�r�)r�r�r�r�r�r�rfr�r�r�r)rrurfr�)rfr,)r�r�r�r�rvr~r�r�r�r�r�rrr�r	r�rr�rr�rarlrcr;r;Hs���I�&*�#�15�	#�"�#�.�	#�

�#�&*�
A�15�	
A�"�
A�.�	
A�

�
A�2�C�,�C�&�C�%�	C�

�C��,��,����-��-��/��/��0��0�'�'�(�=�)�>�
rlr;�_capacity_limiter_wrapperc�P�eZdZUded<d	d�Zd
d�Z								dd�Zd
d�Zdd�Zy)
�_SignalReceiverzAsyncIterator[int]�	_iteratorc��||_yr`)�_signals)r}�signalss  rcr~z_SignalReceiver.__init__�s	����
rlc��tj|j�|_|jj	�|_|Sr`)r{�open_signal_receiverr�_cmr�rr�s rcr�z_SignalReceiver.__enter__�s1���,�,�d�m�m�<������+�+�-����rlc�<�|jj|||�Sr`)r!r�r�s    rcr�z_SignalReceiver.__exit__�s���x�x� � ��7�F�;�;rlc��|Sr`rar�s rc�	__aiter__z_SignalReceiver.__aiter__�s���rlc��hK�|jj��d{���}t|�S7��wr`)r�	__anext__r)r}�signums  rcr&z_SignalReceiver.__anext__�s*�����~�~�/�/�1�1���v���2�s�2�0�2N)rztuple[Signals, ...])rfr)r�r�r�r�r�r�rfzbool | None)rfr)	r�r�r�r�r~r�r�r$r&rarlrcrr�sG��!�!� ��
<�,�<�&�<�%�	<�

�<��rlrc��eZdZdd�Z								dd�Zd
d�Zdd�Zdd�Z								dd�Z						dd�Z							dd�Z
						dd	�Zy
)�
TestRunnerc�D�ddlm}|�|_d|_||_y)Nr)�Queue)�queuer+�_call_queue�_send_stream�_options)r}�optionsr+s   rcr~zTestRunner.__init__�s%���8=����
�	
�� ��
rlc���|jrT|jj�|j�-|jj��|j��,yyyr`)r.r�r-�getr�s    rcr�zTestRunner.__exit__�sU��������#�#�%��#�#�/�&�� � �$�$�&�(��#�#�/�rlc�>�tjj�Sr`)r{rd�in_trio_taskr�s rc�
is_runningzTestRunner.is_running�s���}�}�)�)�+�+rlc��xK�tttttt
fd�\|_}|5|23d{���\}}	|�d{���}|jt|���27�-7�!#t$r$}|jt|��Yd}~�^d}~wwxYw6	ddd�y#1swYyxYw�wr�)r9rrrrmr"r.rzr#r
r!)r}�receive_streamrb�outcome_holder�retvalr�s      rc�_run_tests_and_fixturesz"TestRunner._run_tests_and_fixtures�s�����,G��)�C�.�$�w�-�/�0�-
�
�-
�)���>��3A�
9�/�i��9�#,�_�F�#�)�)�%��-�8�

9��,��$�6�"�)�)�%��*�5�5��6��4B��^�^�su�8B:�B.�B#�A/�B#�B.�
A3�A1�A3�B.�/B#�1A3�3	B �<B�B.�B � B.�%	B:�.B7�3B:c��d|_yr`)r.)r}�outcomes  rc�_main_task_finishedzTestRunner._main_task_finished�s
�� ��rlc���|j��tjj|jf|j
j|jd�|j��|j�,|j
j��|j��,g}|jj||i|��|f�|s"|j
j��|s�"|dj�S)N)�run_sync_soon_threadsafe�
done_callbackr)r.r{rd�start_guest_runr:r-�putr=r/r2�send_nowait�unwrap)r}rjrhrir8s     rc�_call_in_runner_taskzTestRunner._call_in_runner_task�s������$��M�M�)�)��,�,�
�)-�)9�)9�)=�)=�"�6�6�
��-�-�	
��#�#�+�&�� � �$�$�&�(��#�#�+�)+�����%�%�t�T�'<�V�'<�n�&M�N� �"�D��� � �"�$�!��a� �'�'�)�)rlc#��K�|di|��}|j|jd�}|��	|j|jd�|j|j�td��#t$rYywxYw�w)Nz$Async generator fixture did not stopra)rE�asendr�r��StopAsyncIteration)r}�fixture_funcri�asyncgen�fixturevalues     rc�run_asyncgen_fixturezTestRunner.run_asyncgen_fixtures~����
 �)�&�)��!%�!:�!:�8�>�>�4�!P����	G��%�%�h�n�n�d�;�
�%�%�h�o�o�6��E�F�F��	"�	��	�s(�)A=�A.�&A=�.	A:�7A=�9A:�:A=c�(�|j|fi|��Sr`�rE)r}rIris   rc�run_fixturezTestRunner.run_fixtures��
)�t�(�(��@��@�@rlc�*�|j|fi|��yr`rN)r}�	test_funcris   rc�run_testzTestRunner.run_tests��	"��!�!�)�6�v�6rlN)r0rrfr�)r�r�r�r�r�ztypes.TracebackType | Nonerfr�r�r�)r<rurfr�)rj� Callable[P, Awaitable[T_Retval]]rhrmrirnrfrW)rIz,Callable[..., AsyncGenerator[T_Retval, Any]]ri�dict[str, Any]rfzIterable[T_Retval])rIz,Callable[..., Coroutine[Any, Any, T_Retval]]rirTrfrW)rQz'Callable[..., Coroutine[Any, Any, Any]]rirTrfr�)r�r�r�r~r�r5r:r=rErLrOrRrarlrcr)r)�s��� �	)�,�	)�&�	)�+�		)�

�	)�,�9�!�*�.�*��	*�
�*�
�
*�0G�B�G��G�
�	G�$A�B�A��A�
�	A�7�@�7�JX�7�	
�7rlr)c�(��eZdZd�fd�Zdd�Z�xZS)r�c���d}|jr5|jjrt|jj�}t�|�t|�||j
|j�tj|�|_	yr`)
�parent_nursery�parent_task�idr%r~r�r��weakref�proxy�_task)r}�task�	parent_idr�s   �rcr~zTrioTaskInfo.__init__$sd����	����4�#6�#6�#B�#B��4�.�.�:�:�;�I�
����D��9�d�i�i����C��]�]�4�(��
rlc�b�	|jjjS#t$rYywxYwr4)r\�_cancel_status�effectively_cancelled�ReferenceErrorr�s rc�has_pending_cancellationz%TrioTaskInfo.has_pending_cancellation,s1��	��:�:�,�,�B�B�B���	��	�s�"�	.�.)r]ztrio.lowlevel.Taskr�)r�r�r�r~rcr'r(s@rcr�r�#s
���)�rlr�c��eZdZe										d6d��Zed7d��Zed8d��Zed9d��Zed:d��Zed:d��Z	ed:d��Z
ed;d��Zeejd	d
�					d<d��Zed8d��Zed=d
��Zed>d��Zed?d��Zedd	d�							d@d��ZedAd��Ze		dB									dCd��Zed:d��Ze								dDd��Ze								dEd��Ze												dFd��ZedGd��Ze	dH							dId��ZedJd��ZedKd��ZedKd��Ze										dLd��Zee 						dMd���Z!ee 						dNd ���Z!e						dOd!��Z!ed"d"d"d"d#�													dPd$��Z"e	dQ					dRd%��Z#edSd&��Z$edSd'��Z%edSd(��Z&edKd)��Z'edTd*��Z(edUd+��Z)edVd,��Z*edWd-��Z+edXd.��Z,e				dYd/��Z-edZd0��Z.e				d[d1��Z/ed\d2��Z0ed]d3��Z1ed:d4��Z2ed^d5��Z3y)_�TrioBackendc�X�|rJd��tjt|�g|��i|��S)Nz&unreachable, and not supported by Trio)r{r�ro)rwrjrhrir0s     rcr�zTrioBackend.run6s1���C�C�C�z��x�x�+�D�1�D�D�D�G�D�Drlc�>�tjj�Sr`)r{rd�current_trio_tokenr�s rc�
current_tokenzTrioBackend.current_tokenAs���}�}�/�/�1�1rlc�*�tj�Sr`)r{�current_timer�s rcrkzTrioBackend.current_timeEs��� � �"�"rlc�"�tjSr`)r{r�r�s rc�cancelled_exception_classz%TrioBackend.cancelled_exception_classIs���~�~�rlc��\K�tjj��d{���y7��wr`)r{rdrer�s rcrezTrioBackend.checkpointMs�����m�m�&�&�(�(�(���",�*�,c��\K�tjj��d{���y7��wr`)r{rdr�r�s rcr�z#TrioBackend.checkpoint_if_cancelledQs�����m�m�3�3�5�5�5�roc��\K�tjj��d{���y7��wr`)r{rd�cancel_shielded_checkpointr�s rcrrz&TrioBackend.cancel_shielded_checkpointUs�����m�m�6�6�8�8�8�roc��JK�tj|��d{���y7��wr`)r{r+)rw�delays  rcr+zTrioBackend.sleepYs�����j�j�����s�#�!�#F�r�r�c��t||��S)NrurD)rwr�r�s   rc�create_cancel_scopezTrioBackend.create_cancel_scope]s���H�V�<�<rlc�*�tj�Sr`)r{�current_effective_deadliner�s rcryz&TrioBackend.current_effective_deadlinecs���.�.�0�0rlc��t�Sr`)r�r�s rc�create_task_groupzTrioBackend.create_task_groupgs
���{�rlc��t�Sr`r<r�s rc�create_eventzTrioBackend.create_eventks	���w�rlc��t|��S)Nr�r>r�s  rc�create_lockzTrioBackend.create_lockos
����.�.rlNr�c��t|||��S)Nr�rBr�s    rc�create_semaphorezTrioBackend.create_semaphoress����)�,�W�Wrlc��t|�Sr`r:)rwr�s  rc�create_capacity_limiterz#TrioBackend.create_capacity_limiter}s
���|�,�,rlc�����K�d���fd�}tj��t||ttj
|����d{���S7��w)Nc�Z��tt��5���cddd�S#1swYyxYwr`)r3re)rhrj�tokens���rcrkz6TrioBackend.run_sync_in_worker_thread.<locals>.wrapper�s ���$�[�%�8��T�{�9�8�8�s�!�*)�abandon_on_cancel�limiterre)rerir*rr{r;)rwrjrhr�r�rkr�s ``   @rc�run_sync_in_worker_threadz%TrioBackend.run_sync_in_worker_thread�sI�����	#��)�)�+����/���-�-�w�7�
�
�	
�
�s�AA�A�Ac�@�tjj�yr`)r{�from_thread�check_cancelledr�s rcr�zTrioBackend.check_cancelled�s�����(�(�*rlc��td|�}	tjj|g|��d|i�S#tj$rtd�wxYw�Nztrio.lowlevel.TrioToken | None�
trio_token)rr{r�r�r/�rwrjrhr�r�s     rc�run_async_from_threadz!TrioBackend.run_async_from_thread�sT���:�E�B�
�	-��#�#�'�'��K�t�K�
�K�K���$�$�	-�"��,�	-��	�"1�Ac��td|�}	tjj|g|��d|i�S#tj$rtd�wxYwr�)rr{r�r*r/r�s     rc�run_sync_from_threadz TrioBackend.run_sync_from_thread�sT���:�E�B�
�	-��#�#�,�,�T�P�D�P�Z�P�P���$�$�	-�"��,�	-�r�c��2K�dd�}t|tttf�r4t	j
j||�f|||dd�|���d{���}nAt	j
j|D�cgc]
}||���c}f|||dd�|���d{���}|jrt|j�nd}	|jrt|j�nd}
|jrt|j�nd}t||	|
|�S7��cc}w7���w)Nc�z�tj|�}t|t�r|Stj|�Sr`)�os�fspathrg�str�fsdecode)r��str_or_bytess  rc�convert_itemz.TrioBackend.open_process.<locals>.convert_item�s.���9�9�T�?�L��,��,�#�#��{�{�<�0�0rlT)rrr�shellF)r�rKrfr�)
rgr�r�rr{rd�open_processrr�rr�rr)rw�commandrrrrir�r/r��stdin_stream�
stdout_stream�
stderr_streams            rcr�zTrioBackend.open_process�s����	1��g��U�H�5�6� �M�M�6�6��W�%��������
��G�!�M�M�6�6�07�8����d�#��8��������
��G�<C�=�=�(����7�d��@G���,�W�^�^�<�TX�
�@G���,�W�^�^�<�TX�
��w��m�]�K�K�+��9��s1�AD�D�"D�3D�D�D�A<D�Dc�L�tjjt|�yr`)r{rd�spawn_system_taskr0)rwr.s  rc�#setup_process_pool_exit_at_shutdownz/TrioBackend.setup_process_pool_exit_at_shutdown�s���
�
�'�'�(>��Hrlc��K�d|vrtjntj}tjj|�}|j	tj
tjd�|r|j|��d{���	|j||f��d{���t|�S7�+7�#t$r|j��wxYw�w)N�:r�)rZ�AF_INET6�AF_INETr{r�r�r��bind�connectr
r�rH)rw�host�port�
local_address�familyr7s      rc�connect_tcpzTrioBackend.connect_tcp�s�����%(�4�K����V�^�^���k�k�(�(��0�����v�1�1�6�3E�3E�q�I���"�"�=�1�1�1�	��%�%�t�T�l�3�3�3�
�K�(�(�
2��
4���	������	�s<�B	C�B7�C�B;�'B9�(B;�,C�9B;�;C�Cc���K�tjjtj�}	|j|��d{���t
|�S7�#t$r|j��wxYw�wr`)r{rZ�AF_UNIXr�r
r�r`)rw�pathr7s   rc�connect_unixzTrioBackend.connect_unix�sf�����k�k�(�(����8��	��%�%�d�+�+�+�
 ��,�,�
,���	������	�s.�.A5�A�A�A�
A5�A�A2�2A5c��t|�Sr`)r��rw�socks  rc�create_tcp_listenerzTrioBackend.create_tcp_listener�s
�� ��&�&rlc��t|�Sr`)r�r�s  rc�create_unix_listenerz TrioBackend.create_unix_listeners
��!�$�'�'rlc��jK�tjj|tj��}|r/|jtjtj
d�|r|j
|��d{���|r$|j|��d{���t|�St|�S7�57��w)N)r��typer�)
r{rZ�
SOCK_DGRAMr�ri�SO_REUSEPORTr�r�r�r�)rwr�r��remote_address�
reuse_portr7s      rc�create_udp_socketzTrioBackend.create_udp_sockets������k�k�(�(��V�=N�=N�(�O����"�"�6�#4�#4�f�6I�6I�1�M���"�"�=�1�1�1���%�%�n�5�5�5�%�k�2�2��[�)�)�

2��
6�s$�A7B3�9B/�:B3�B1�B3�1B3c��K�y�wr`ra�rwr��remote_paths   rc�create_unix_datagram_socketz'TrioBackend.create_unix_datagram_sockets����"%���c��K�y�wr`rar�s   rcr�z'TrioBackend.create_unix_datagram_socket s����+.�r�c��K�tjj|�}|r$|j|��d{���t	|�St|�S7��wr`)r{rZr�r�r�r�)rwr�r�r7s    rcr�z'TrioBackend.create_unix_datagram_socket&sN�����k�k�4�4�Z�@����%�%�k�2�2�2�.�{�;�;�%�k�2�2�
3�s�6A�A�Ar)r�r��protorsc��fK�tjj||||||��d{���S7��wr`)r{rZ�getaddrinfo)rwr�r�r�r�r�rss       rcr�zTrioBackend.getaddrinfo2s-����&�[�[�,�,�T�4���u�e�T�T�T�T�s�(1�/�1c��^K�tjj||��d{���S7��wr`)r{rZ�getnameinfo)rw�sockaddrrss   rcr�zTrioBackend.getnameinfoGs%�����[�[�,�,�X�u�=�=�=�=�s�$-�+�-c���K�	t|��d{���y7�#tj$r)}t�j|j�d�d}~wtj
$r
td�d�wxYw�w)NrK)r'r{r6�with_traceback�
__traceback__r5�rw�objr�s   rcr'zTrioBackend.wait_readableMsf����	>���$�$�$���'�'�	T�%�'�6�6�s�7H�7H�I�t�S���%�%�	>�#�N�3��=�	>��0�A7����A7��A4�$A�#A4�4A7c���K�	t|��d{���y7�#tj$r)}t�j|j�d�d}~wtj
$r
td�d�wxYw�w)NrL)r(r{r6r�r�r5r�s   rcr(zTrioBackend.wait_writableVsf����	<���$�$�$���'�'�	T�%�'�6�6�s�7H�7H�I�t�S���%�%�	<�#�L�1�t�;�	<�r�c��t|�yr`)r&)rwr�s  rcr&zTrioBackend.notify_closing_s
���s�rlc��K�ttd�r(|jtjk(rt	|�St|�S�w)Nr�)�hasattrrZr�r�r�r�r�s  rc�wrap_listener_socketz TrioBackend.wrap_listener_socketcs5�����6�9�%�$�+�+����*G�%�d�+�+� ��&�&�s�AAc��^K�tjj|�}t|�S�wr`)r{rZr�rH�rwr��	trio_socks   rc�wrap_stream_socketzTrioBackend.wrap_stream_socketjs%�����K�K�2�2�4�8�	��I�&�&�r]c��^K�tjj|�}t|�S�wr`)r{rZr�r`r�s   rc�wrap_unix_stream_socketz#TrioBackend.wrap_unix_stream_socketos%�����K�K�2�2�4�8�	��	�*�*�r]c��^K�tjj|�}t|�S�wr`)r{rZr�r�r�s   rc�wrap_udp_socketzTrioBackend.wrap_udp_socketts%�����K�K�2�2�4�8�	���#�#�r]c��^K�tjj|�}t|�S�wr`)r{rZr�r�r�s   rc�wrap_connected_udp_socketz%TrioBackend.wrap_connected_udp_sockety�%�����K�K�2�2�4�8�	�!�)�,�,�r]c��^K�tjj|�}t|�S�wr`)r{rZr�r�r�s   rc�wrap_unix_datagram_socketz%TrioBackend.wrap_unix_datagram_socket~r�r]c��^K�tjj|�}t|�S�wr`)r{rZr�r�r�s   rc�#wrap_connected_unix_datagram_socketz/TrioBackend.wrap_connected_unix_datagram_socket�s'�����K�K�2�2�4�8�	�*�9�5�5�r]c���	tj�S#t$rBttj
j
���}tj|�|cYSwxYw)Nr�)rr2�LookupErrorr;r{�	to_thread�current_default_thread_limiterr�)rwr�s  rcr�z*TrioBackend.current_default_thread_limiter�sT��	�,�0�0�2�2���	�%����F�F�H��G�
&�)�)�'�2��N�	�s��AA!� A!c��t|�Sr`)r)rwrs  rcr z TrioBackend.open_signal_receiver�s���w�'�'rlc�,�t�}t|�Sr`)r%r�)rwr]s  rc�get_current_taskzTrioBackend.get_current_task�s���~���D�!�!rlc���t�}|sJ�t|�g}|j}|rTg}|D]H}|jD]7}|j	t|��|j|j��9�J|}|r�T|Sr`)r$r��child_nurseries�child_tasksrz�extend)rw�	root_task�
task_infos�	nurseries�
new_nurseries�nurseryr]s       rc�get_running_taskszTrioBackend.get_running_tasks�s���%�'�	���y�"�9�-�.�
��-�-�	��02�M�$��#�/�/�D��%�%�l�4�&8�9�!�(�(��)=�)=�>�0�%�
&�I���rlc��:K�ddlm}|��d{���y7��w)Nr)�wait_all_tasks_blocked)�trio.testingr�)rwr�s  rcr�z"TrioBackend.wait_all_tasks_blocked�s����7�$�&�&�&�s���c��tdi|��Srz)r))rwr0s  rc�create_test_runnerzTrioBackend.create_test_runner�s���$�G�$�$rl)
rjz1Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]]rh�tuple[Unpack[PosArgsT]]rirTr0rTrfrW)rfrur�)rfztype[BaseException]r�)rtr�rfr�)r�r�r�r�rfzabc.CancelScope)rfz
abc.TaskGroup)rfz	abc.Eventr�)r�r r�r�r�r�rfz
abc.Semaphore)r�r�rfr;)FN)
rj�&Callable[[Unpack[PosArgsT]], T_Retval]rhr�r�r�r�zabc.CapacityLimiter | NonerfrW)rjr�rhr�r�rurfrX)rjrrhr�r�rurfrW)r�z)StrOrBytesPath | Sequence[StrOrBytesPath]r�int | IO[Any] | Nonerrrrrirrfr�r.zset[abc.Process]rfr�r`)r�r�r�r r��IPSockAddrType | NonerfrH)r��str | bytesrfzabc.UNIXSocketStream)r�rFrfzabc.SocketListener)
r�zsocket.AddressFamilyr�rr�rr�r�rfzUDPSocket | ConnectedUDPSocket)r�rFr�r�rfzabc.UNIXDatagramSocket)r�rFr�rrfzabc.ConnectedUNIXDatagramSocket)r�rFr�zstr | bytes | Nonerfz8abc.UNIXDatagramSocket | abc.ConnectedUNIXDatagramSocket)r�zbytes | str | Noner�zstr | int | Noner�zint | AddressFamilyr�zint | SocketKindr�r rsr rfzuSequence[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]]])r)r�rGrsr rfztuple[str, str])r�rPrfr�)r�rFrfrH)r�rFrfr`)r�rFrfr�)r�rFrfr�)r�rFrfr�)r�rFrfr�)rfr;)rrrfz.AbstractContextManager[AsyncIterator[Signals]])rfr0)rfzSequence[TaskInfo])r0rTrfr))4r�r�r��classmethodr�rirkrmrer�rrr+r,r-rwryr{r}rr�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�rarlrcrere5sB���E�?�E�&�E��	E�
 �E�
�
E��E��2��2��#��#������)��)��6��6��9��9�� �� ��"&�(�(�5�=��=�48�=�	�=��=�
�1��1����������/��/��
!%�"�X��X��	X�
�X�
�
X��X��-��-��
#(�.2�
�4�
�&�
� �	
�
,�
�
�

��
�$�+��+��
-�E�
-�&�
-��	
-�

�
-��
-��
-�4�
-�&�
-��	
-�

�
-��
-��&L�:�&L�$�	&L�
%�&L�%�
&L��&L�
�&L��&L�P�I��I��JN�)��)�!�)�2G�)�	�)��)�"�-��-��'��'��(��(��*�$�*�-�*�.�	*�
�*�
(�
*��*�*�
�%�&�%�59�%�	�%���%��
�.�&�.�5@�.�	(�.���.��	3�&�	3�5G�	3�	A�	3��	3��'(�!"���U� �U��U�
$�U��
U��U��U�
�U��U�(�45�>�%�>�.1�>�	�>��>�
�>��>��<��<������'��'��'��'��+��+��$��$��-��-��-��-��6� �6�	$�6��6������(��(�	7�(��(�
�"��"����� �'��'�
�%��%rlre)rjrSrfz*Callable[P, Coroutine[Any, Any, T_Retval]]r)��
__future__rrcr,r�rZ�sys�typesrZ�collections.abcrrrrrr	r
r�
contextlibr�contextvarsr
�dataclassesr�	functoolsrr�iorrrrrrr�typingrrrrrrrrrr �trio.from_threadr{�
trio.lowlevelr<r!r"r#r$r%r&r'r(�trio.socketr)rE�trio.to_threadr*�r,r-r.r/r0r1r2�_core._eventloopr3�_core._exceptionsr4r5r6r7�_core._socketsr8�_core._streamsr9�_core._synchronizationr;�BaseCapacityLimiterr=�	BaseEventr?�BaseLockr@rArC�
BaseSemaphore�_core._tasksrE�BaseCancelScoperFrGrHrI�abc._eventlooprJrK�
abc._tasksrLrMrN�streams.memoryrO�	_typeshedrP�version_inforSrT�exceptiongrouprU�typing_extensionsrVrWrXr�rZr[r\rord�RunVarrur��
TaskStatusr�r��ByteReceiveStreamr��ByteSendStreamr�r�
Instrumentr#r)r�r0r2rHr`�SocketListenerr�r�r�r�r�r�rrr)r�re�
backend_classrarlrc�<module>r.s���"���	�
�
���	�	�	�.��!�$����,�������)�)���5�#����3���3�8��8�5��@�9�%�G�G�9�H�H�3��,����w��+�+�1�6��C�L���:����v��&��
�\�3��
7�
��
�#��
�c�N���
*��/��8
���	�	��0'�/�0'�n�H��1�g�h�'�����)A�1�a��
�
�a�R�e��$�3�0�0�$��$�.�e��$��*�*�$��$��e��5�c�k�k�5��5�p�T�X�X�%8�%8��
@F�,�@�&�(<��

'�$�w�z�*��>!3�#�S�%5�%5�!3�H@4�|�S�%9�%9�@4�F
)�(�#�*<�*<�
)� -�)�3�+=�+=�-�0� ��0�#�-�-�0�,0�)�.�9�3�;Q�;Q�0�*0�)�#�.��0F�0F�0�,0��S��3�:�:�0�8�I��.7
�8�7
�t5B�
�5B�pQ
�)�Q
�h39�9T�2U��/�U���@\7����\7�~�8��$D%�,�D%�N�
rl