← back to Atmos Game

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

90 lines

�

c�bj)5��r�UddlmZddlZddlZddlZddlmZmZmZddl	m
Z
mZddlm
Z
mZmZddlmZmZddlZddlmZmZddlmZdd	lmZdd
lmZddlmZdd
lm Z m!Z!m"Z"m#Z#ddl$m%Z%ddl&m'Z'ejPdkrddl)m*Z*da+de,d<da-de,d<da.d.d�Z/e						d/d��Z0d0d�Z1d1d�Z2ejfd��d2d��Z4ejfd��								d3d��Z5d4d �Z6ejfd��d5d!��Z7ejpd"e��#�d6d$��Z9ejpd7d%��Z:ejpd8d&��Z;Gd'�d(�Z<ejpd�)�d9d*��Z=ejpd�)�d9d+��Z>ejpd:d,��Z?ejpd;d-��Z@y)<�)�annotationsN)�Callable�	Generator�Iterator)�	ExitStack�contextmanager)�isasyncgenfunction�iscoroutinefunction�ismethod)�Any�cast)�FuncFixtureInfo�
SubRequest)�Exit)�	CallSpec2)�Scope�)�get_available_backends)�current_async_library�get_async_backend�reset_current_async_library�set_current_async_library)�iterate_exceptions)�
TestRunner)��)�ExceptionGroupzTestRunner | None�_current_runnerzExitStack | None�
_runner_stackc��t|t�r|ifSt|t�r^t|�dk(rPt|dt�r=t|dt�r*ttttttff|�Std��)N�rrz@anyio_backend must be either a string or tuple of (string, dict))�
isinstance�str�tuple�len�dictr
r�	TypeError)�backends �j/Users/macstudio3/Projects/atmos-game/assets/gen/.venv/lib/python3.12/site-packages/anyio/pytest_plugin.py�extract_backend_and_optionsr*#sq���'�3����{��	�G�U�	#��G���(9��g�a�j�#�&�:�g�a�j�$�+G���c�4��S��>�1�2�G�<�<�
�V�
W�W�c#��K�t�nt|�}t�at	��%t|�}tj
t|�|xsi}tj|j|��atdz
a
	t��tdza
ts!t�J�tj�dxaayy#tdza
ts!t�J�tj�dxaawwxYw�w�Nr)rrrrrr�callbackr�
enter_context�create_test_runner�_runner_leases�close)�backend_name�backend_options�asynclib�tokens    r)�
get_runnerr7-s�����
��$�\�2��!��
� �"�*�.�l�;�E��"�"�#>��F�)�/�R��'�5�5��'�'��8�
���a��N�3����!���� �,�,�,����!�.2�2�M�O���	�!���� �,�,�,����!�.2�2�M�O��s�A>C/�B:�	1C/�:2C,�,C/c�,�|jddd��y)N�
anyio_mode�strictz-AnyIO plugin mode (either "strict" or "auto"))�default�help)�addini)�parsers r)�pytest_addoptionr?Ks��
�M�M���
<��r+c���|jdd�|jd�dk(rW|jjd�r;|jd�dk(r&|j	tjd�d�yyyy)	N�markerszManyio: mark the (coroutine function) test to be run asynchronously via anyio.r9�auto�asyncio�asyncio_modezlAnyIO auto mode has been enabled together with pytest-asyncio auto mode. This may cause unexpected behavior.r)�addinivalue_line�getini�
pluginmanager�
has_plugin�issue_config_time_warning�pytest�PytestConfigWarning)�configs r)�pytest_configurerMSs���
����W��
	�
�
�l�#�v�-�� � �+�+�I�6��M�M�.�)�V�3��(�(��&�&�<�
�
�	
�
4�
7�	.r+T)�hookwrapperc#����K�d���fd�}|j�t��st��r~d|jvrp||_|j}d|jvx�s|xjdz
c_d|jvx�s|xjdz
c_	d���|_||_Sd��S#�|_||_wxYw�w)N�
anyio_backend�requestc;��K�|jr[t��rPt�j�t|j�ur&�jj|j�}n�}t
|�\}}�r||d<�	r||d<t||�5}|j�rtd��t|�r|j||�Ed{���n|j||���ddd�y7�"#1swYyxYw�w)NrPrQz�Cannot schedule a coroutine in the test runner while another is already running; likely caused by request.getfixturevalue() on an async fixture.)
�instancer�type�__self__�__func__�__get__r*r7�
is_running�RuntimeErrorr	�run_asyncgen_fixture�run_fixture)
rPrQ�kwargs�
local_funcr3r4�runner�func�has_backend_arg�has_request_args
       ���r)�wrapperz%pytest_fixture_setup.<locals>.wrapperhs������
�������T�]�]�#�t�G�,<�,<�'=�=����.�.�w�/?�/?�@�J��J�(C�M�(R�%��o��&3�F�?�#�� '�F�9��
��o�
6�&�� � �"�"�V���
"�*�-�!�6�6�z�6�J�J�J��(�(��V�<�<�!7�
6�K��7�
6�s0�BD�<C6�C4�C6�+	D�4C6�6C?�;D�rP�rQ)rPrrQrr\r�returnr)r_r	r
�fixturenames�argnames)�
fixturedefrQrb�original_argnamer_r`ras    @@@r)�pytest_fixture_setuprjfs������"=�L�?�?�D��$��#6�t�#<��g�2�2�2�%�J�O�)�2�2��'6�*�:M�:M�'M�M�O�M��#�#�'9�9�#�'0�J�4G�4G�'G�G�O�G��#�#�|�3�#�
7��"&�
��&6�
�#��N��#'�
��&6�
�#�s�BC�B2�C�2C�C)�tryfirstc�x�|j||�r�t|d�r|jjn|}t	|�rx|j
j
d�dk(}|jd�}t|dd�}|s|std�|D��r%tjjd�|�yyyy)	N�
hypothesisr9rB�anyio�
pytestmark�c3�:K�|]}|jdk(���y�w)rnN)�name)�.0�markers  r)�	<genexpr>z,pytest_pycollect_makeitem.<locals>.<genexpr>�s����H�K�&�v�{�{�g�-�K�s�rP)
�istestfunction�hasattrrm�
inner_testr
rLrF�get_closest_marker�getattr�anyrJ�mark�usefixtures)�	collectorrr�obj�
inner_func�anyio_auto_modert�own_markerss       r)�pytest_pycollect_makeitemr��s�������T�*�29�#�|�2L�S�^�^�.�.�RU�
��z�*�'�.�.�5�5�l�C�v�M�O��1�1�'�:�F�!�#�|�R�8�K����H�K�H�H����'�'��8��=�I�+�+r+�sessionc�P�ttt|j���D�]�\}}t	|t
j�s�"t|j�s�8|jd���Jd|jvs�Yg}	tjt�D�chc]}|j��}}tt#��D�](\}}d|vr&td|id|idt$j&i|gg��}n&tid|id|idt$j&i|gg��}|j(}	t|	j*�}
d|
vr|
j-d�t/|	j0|	j2|
|	j4��}t
jj7|j8|j:�d|�d�||j<||j>|j:�	�}|j-|���+||j||d
z���ycc}w#t$rt!�}Y��pwxYw)NrnrP�
_arg2scope)�params�indicesr��_idlist�marks)�funcargsr�r��	arg2scope�idlistr�)rg�initialnames�
names_closure�name2fixturedefs�[�])rr�callspec�callobj�fixtureinfo�keywords�originalnamer) �reversed�list�	enumerate�itemsr"rJ�Functionr
�functionryrf�dataclasses�fieldsrrrr'�setrr�Module�_fixtureinfor��appendrrgr�r��from_parent�parentr�rr�)
r��i�item�	new_items�f�	cs_fields�param_indexr(r��fi�new_names_closure�new_fixtureinfo�new_items
             r)�pytest_collection_finishr��s���D��7�=�=�!9�:�;���4��t�V�_�_�-�#�D�M�M�2��'�'��0�<��t�'8�'8�8��I�
"�-8�-?�-?�	�-J�K�-J��Q�V�V�-J�	�K�)2�2H�2J�(K�$��W��9�,�(� /��9�!0�+� >�$3�U�\�\�#B�!(�	� � �H� )�!#� /��9�!0�+� >�#2�E�L�L�"A� '�y� �
 �H��&�&��$(��)9�)9�$:�!�"�*;�;�%�,�,�_�=�"1��[�[�!#���"3�%'�%8�%8�	#��"�?�?�6�6��K�K� �-�-�.�a��y��:�%� �H�H� /�!�]�]�!%�!2�!2�7���� � ��*�O)L�R(1�G�M�M�!�a�!�e�$�m<��L���
"��E�	�
"�s$�H�H	�2H�	H�H%�$H%c	���	�
��d�	�
�fd�}|jjd�}|�rt|�\�	�
t|jd�r`|jj
j��j|jk7r&t��r||jj
_yt|j�rg|j}|jjD�cic]}|||��
}}t�	�
�5}	|j|j|�	ddd�yycc}w#t$r4}t|�D] }t|t t"t$f�s�||��d}~wwxYw#1swYyxYw)Nc�l��t���5}|j�|�ddd�y#1swYyxYw�N)r7�run_test)r\r^r3r4�
original_funcs  ���r)�run_with_hypothesisz/pytest_pyfunc_call.<locals>.run_with_hypothesis�s)���
��o�
6�&��O�O�M�6�2�7�
6�
6�s�*�3rPrmT)r\rre�None)r��getr*rwrrmrx�__qualname__r
r�rgr7r�rrr"r�KeyboardInterrupt�
SystemExit)�
pyfuncitemr�r(r��arg�testargsr^�excgrp�excr3r4r�s         @@@r)�pytest_pyfunc_callr��sJ���3��!�!�%�%�o�6�G��(C�G�(L�%��o��:�>�>�<�0�&�N�N�5�5�@�@�M��)�)�-@�-M�-M�M�&�}�5�;N�J�N�N�-�-�8���z�~�~�.�!�*�*�H�6@�6M�6M�6V�6V�W�6V�s��X�c�]�*�6V�H�W��L�/�:�f���O�O�J�N�N�H�=�;����X��&��1�&�9��%�c�D�2C�Z�+P�Q�"%�6�1� :�����;��s6�'
D+�E0�D0�0	E-�9)E(�#E(�(E-�-E0�0E9�module)�scoper�c��|jSr�)�paramrds r)rPrPs���=�=�r+c�0�t|t�r|S|dS)Nr�r"r#rcs r)�anyio_backend_namer�s���-��%����Q��r+c�0�t|t�riS|dSr-r�rcs r)�anyio_backend_optionsr�!s���-��%��	��Q��r+c�4�eZdZdZdd�Zedd��Zdd	d�Zy)
�FreePortFactoryaO
    Manages port generation based on specified socket kind, ensuring no duplicate
    ports are generated.

    This class provides functionality for generating available free ports on the
    system. It is initialized with a specific socket kind and can generate ports
    for given address families while avoiding reuse of previously generated ports.

    Users should not instantiate this class directly, but use the
    ``free_tcp_port_factory`` and ``free_udp_port_factory`` fixtures instead. For simple
    uses cases, ``free_tcp_port`` and ``free_udp_port`` can be used instead.
    c�>�||_tt�|_yr�)�_kindr��int�
_generated)�self�kinds  r)�__init__zFreePortFactory.__init__7s����
��c�(�*��r+c��|jS)z�
        The type of socket connection (e.g., :data:`~socket.SOCK_STREAM` or
        :data:`~socket.SOCK_DGRAM`) used to bind for checking port availability

        )r�)r�s r)r�zFreePortFactory.kind;s���z�z�r+Nc�J�|�|g}n@tjg}tjr|jtj�	d}t�5}|D]r}|j
tj||j��}|tjk(rdnd}	|j||f�|r�`|j�d}�t||jvr&|jj|�|cddd�Sddd���#t$rY�wxYw#1swY�xYw)z�
        Return an unbound port for the given address family.

        :param family: if omitted, both IPv4 and IPv6 addresses will be tried
        :return: a port number

        Nrz::1z	127.0.0.1r)
�socket�AF_INET�has_ipv6r��AF_INET6rr/r��bind�OSError�getsocknamer��add)r��family�families�port�stack�sock�addrs       r)�__call__zFreePortFactory.__call__Ds������x�H����'�H����������0���D����&�F� �.�.�v�}�}�V�T�Z�Z�/P�Q�D�$*�f�o�o�$=�5�;�D���	�	�4��,�/� �#�/�/�1�!�4��'��4�?�?�2����+�+�D�1�#������#�����
��s7�AD�!D	�4D�7?D�		D�D�D�D�D")r��socket.SocketKindrer�)rer�r�)r�zsocket.AddressFamily | Nonerer�)�__name__�
__module__r��__doc__r��propertyr�r�rpr+r)r�r�)s%���%�����$r+r�)r�c�4�ttj�Sr�)r�r��SOCK_STREAMrpr+r)�free_tcp_port_factoryr�fs���6�-�-�.�.r+c�4�ttj�Sr�)r�r��
SOCK_DGRAMrpr+r)�free_udp_port_factoryr�ks���6�,�,�-�-r+c��|�Sr�rp)r�s r)�
free_tcp_portr�p��� �"�"r+c��|�Sr�rp)r�s r)�
free_udp_portr�ur�r+)r(�objectreztuple[str, dict[str, Any]])r3r#r4�dict[str, Any]rezIterator[TestRunner])r>z
pytest.Parserrer�)rLz
pytest.Configrer�)rhrrQrrezGenerator[Any])r~zpytest.Module | pytest.Classrrr#rr�rer�)r�zpytest.Sessionrer�)r�rrezbool | None)rQrrer)rPrrer#)rPrrer�)rer�)r��Callable[[], int]rer�)r�r�rer�)A�
__future__rr�r��sys�collections.abcrrr�
contextlibrr�inspectr	r
r�typingrr
rJ�_pytest.fixturesrr�_pytest.outcomesr�_pytest.pythonr�
_pytest.scoper�r�_core._eventlooprrrr�_core._exceptionsr�abcr�version_info�exceptiongrouprr�__annotations__rr1r*r7r?rM�hookimplrjr�r�r��fixturerPr�r�r�r�r�r�r�rpr+r)�<module>rs��"��
�
�9�9�0�E�E��
�8�!�$��$���2�����g��-�%)��"�)�"&�
��&���X��3��3�(6�3��3��3�:�
�&����T�"�9�#�9�x����$��>�+�>�36�>�=C�>�	�>� �>�"71�t����$��!� �!�H����h�'=�'?�@��A����� �� ���� �� �:$�:$�z����i� �/�!�/�����i� �.�!�.����#��#����#��#r+