403Webshell
Server IP : 209.209.40.120  /  Your IP : 216.73.217.112
Web Server : Microsoft-IIS/10.0
System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586
User : NEWWWW$ ( 0)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python312/Lib/site-packages/_pytest/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python312/Lib/site-packages/_pytest/__pycache__/main.cpython-312.pyc
�

��Hg(����dZddlmZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlZddl
mZddl
mZddl
mZddl
mZdd	l
mZdd
l
mZddl
mZddl
mZdd
l
mZddl
mZddlZddlZddlmZddlZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddl$m%Z%ddl&m'Z'ddl(m)Z)ddl*m+Z+ddl*m,Z,ddl*m-Z-ddl*m.Z.ddl*m/Z/ddl0m1Z1ddl0m2Z2dd l3m4Z4dd!l3m5Z5dd"l6m7Z7erdd#l8m9Z9dd$l:m;Z;dDd%�Z<dEd&�Z=						dFd'�Z>dGd(�Z?dHd*�Z@dId+�ZAdJd,�ZBdKd-�ZCdLd.�ZD						dMd/�ZEdNd0�ZFGd1�d2�ZGGd3�d4eH�ZIGd5�d6eJ�ZKej�Gd7�d8eeeMf��ZNeGd9�d:ej���ZPeGd;�d)ej���ZRdOd<�ZSej�d=�>�Gd?�d@��ZTdAdB�							dPdC�ZUy)QzHCore implementation of the testing process: init, session, runtest loop.�)�annotationsN)�Path)�AbstractSet)�Callable)�Dict)�final)�Iterable)�Iterator)�Literal)�overload)�Sequence)�
TYPE_CHECKING)�nodes)�Config)�
directory_arg)�ExitCode)�hookimpl)�PytestPluginManager)�
UsageError)�Parser)�PathAwareHookProxy)�exit��absolutepath)�bestrelpath��
fnmatch_ex)�safe_exists)�scandir)�
CollectReport)�
TestReport)�collect_one_node)�
SetupState)�
PytestWarning)�Self)�FixtureManagerc
���|jdddgd���|jdddg��|jdd	�}|jd
ddd
dd��|jd�}|jdddd��|jddd��|jdddtd
dd� �|jd!d"d#��|jd$d"d%��|jd&d"d'��|jd(d)d*t
d+d,�-�|jd.d"d/d0d1�2�|jd3dd4d5�6�|jd7d8�}|jd9d:d;d"d<��|jd=d"d>��|jd?dd@dA�B�|jdCdd@dD�B�|jdEddFdG�B�|jdHdIddJt
jtdH�K�dL�M�|jdNd"dOd/dP�Q�|jdRdSd"dTd/dU�Q�|jdVd"dWd/dX�Q�|jdYdZgd[�d\d]�^�|jd_d`d/da�b�|jdcdd�}|jdedfdtdJdg�h�y)iN�
norecursedirsz)Directory patterns to avoid for recursion�args)	z*.eggz.*�_darcs�build�CVS�dist�node_modules�venvz{arch})�type�default�	testpathszZDirectories to search for tests when no files or directories are given on the command line�generalzRunning and selection optionsz-xz--exitfirst�store_const�maxfail�z,Exit instantly on first error or failed test)�action�dest�const�helpzpytest-warningsz-Wz--pythonwarnings�appendz<Set which warnings to report, see -W option of Python itself)r7r:�filterwarnings�linelistz_Each line specifies a pattern for warnings.filterwarnings. Processed after -W/--pythonwarnings.)r0r:z	--maxfail�num�storerz'Exit after first num failures or errors)�metavarr7r0r8r1r:z--strict-config�
store_truezbAny warnings encountered while parsing the `pytest` section of the configuration file raise errorsz--strict-markerszVMarkers not registered in the `markers` section of the configuration file raise errorsz--strictz&(Deprecated) alias to --strict-markersz-cz
--config-file�FILE�inifilenamezcLoad configuration from `FILE` instead of trying to locate one of the implicit configuration files.)r@r0r8r:z--continue-on-collection-errorsF�continue_on_collection_errorsz4Force test execution even if collection errors occur)r7r1r8r:z	--rootdir�rootdirz�Define root directory for tests. Can be relative path: 'root_dir', './root_dir', 'root_dir/another_dir/'; absolute path: '/home/user/root_dir'; path with variables: '$HOME/root_dir'.)r7r8r:�collect�
collectionz
--collectonlyz--collect-onlyz--coz&Only collect tests, don't execute themz--pyargsz1Try to interpret all arguments as Python packagesz--ignore�pathz-Ignore path during collection (multi-allowed))r7r@r:z
--ignore-globz5Ignore path pattern during collection (multi-allowed)z
--deselect�
nodeid_prefixzDDeselect item (via node id prefix) during collection (multi-allowed)z--confcutdir�
confcutdir�dir)�optnamez1Only load conftest.py's relative to specified dir)r8r1r@r0r:z--noconftest�
noconftestz Don't load any conftest.py files)r7r8r1r:z--keepduplicatesz--keep-duplicates�keepduplicateszKeep duplicate testsz--collect-in-virtualenv�collect_in_virtualenvz2Don't ignore tests in a local virtualenv directoryz
--import-mode�prepend)rPr;�	importlib�
importmodez\Prepend/append to sys.path when importing test modules and conftest files. Default: prepend.)r1�choicesr8r:�consider_namespace_packages�boolzEConsider namespace packages when resolving module names during import)r0r1r:�debugconfigz(test session debugging and configurationz
--basetemp�basetempz^Base temporary directory for this test run. (Warning: this directory is removed if it exists.))r8r1r0r@r:)
�addini�getgroup�
_addoption�	addoption�int�str�	functools�partialr�validate_basetemp)�parser�groups  �.C:\Python312\Lib\site-packages\_pytest/main.py�pytest_addoptionrd9s���
�M�M��3�
�

�	�� �M�M��	�
����
�O�O�I�'F�G�E�	������
��
;�
��
�O�O�-�.�E�	�O�O����
K�	���M�M��
�/���
������
�
��
6���
�����*���
��������
�����
5���

������
�
�(�
��
���)���
,�
C���
�����
��	��
�O�O�I�|�4�E�	�O�O�����
5���
�O�O���
@���

�O�O����
<�	��
�O�O����
D�	��
�O�O����
S�	��
�O�O��
���
�
�
�}�n�
E�
@�
��
�O�O���
��
/���
�O�O����
��
#�
��
�O�O�!��
$��
A���
�O�O���2�
�#����M�M�%�
��
T�	��
�O�O�M�+U�V�E�	�O�O��
��
��
A��
�c�x�d}|stj|��dd�}|tj�t|�j	��rtj|��|tj�j�t|�j��rtj|��|S)NzWbasetemp must not be empty, the current working directory or any parent directory of itc�*�||k(ry||jvS)z,Return whether query is an ancestor of base.T)�parents)�base�querys  rc�is_ancestorz&validate_basetemp.<locals>.is_ancestor�s���5�=������$�$re)rirrjr�returnrU)�argparse�ArgumentTypeErrorr�cwd�absolute�resolve)rH�msgrks   rcr`r`�s���
c�C���(�(��-�-�%��4�8�8�:�t�D�z�2�2�4�5��(�(��-�-��4�8�8�:�%�%�'��d��);�);�)=�>��(�(��-�-��Krec	�	�tj|�}tj|_d}		|j�d}|jj|��d}|||�xsd|_d}tIjJ|jL�|dk\r(	|jjO||j�
�|jQ�|jS#t$rtj|_�t$rtj|_Y��ttjf$r�tj j"j%�}tj&}t)|j*tj�rt|j*j,�|j*j,}|dkrCt.j0j3|j4�d|j*j6�d��|jj9|��||_Y���t:$�r
tj<|_tj j"j%�}	|j?||j@�t)|j*tB�r�t.j0j3d	�nu#tj$r_}|j,�|j,|_t.j0j3tE|�jF�d|�d��Yd}~nd}~wwxYwY���wxYw#tj$r`}|j,�|j,|_t.j0j3tE|�jF�d|�d��Yd}~���d}~wwxYw#d}tIjJ|jL�|dk\r�	|jjO||j�
�nu#tj$r_}|j,�|j,|_t.j0j3tE|�jF�d|�d��Yd}~nd}~wwxYw|jQ�wxYw)zSkeleton command line program.rr6��session�Nz: �
)�excinfoz(mainloop: caught unexpected SystemExit!
)ru�
exitstatus))�Session�from_configr�OKry�
_do_configure�hook�pytest_sessionstartr�USAGE_ERROR�Failed�TESTS_FAILED�KeyboardInterruptr�	Exception�_pytest�_code�
ExceptionInfo�from_current�INTERRUPTED�
isinstance�value�
returncode�sys�stderr�write�typenamerr�pytest_keyboard_interrupt�
BaseException�INTERNAL_ERROR�notify_exception�option�
SystemExitr0�__name__�os�chdir�	startpath�pytest_sessionfinish�_ensure_unconfigure)�config�doitru�	initstaterxry�excs       rc�wrap_sessionr�s����!�!�&�)�G�!���G���I�0%� 	R�� � �"��I��K�K�+�+�G�+�<��I�!%�f�g�!6�!;�!�G��>��
����"�"�#���>�
C����0�0�#��0B�0B�1��	�"�"�$������U�	�!)�!5�!5�G����	7�!)�!6�!6�G��!�4�>�>�2�		,��m�m�1�1�>�>�@�G�)1�)=�)=�J��'�-�-����8��=�=�+�+�7�!(���!9�!9�J��q�=��J�J�$�$��(8�(8�'9��G�M�M�<M�<M�;N�b�%Q�R��K�K�1�1�'�1�B�!+�G���	R�!)�!8�!8�G���m�m�1�1�>�>�@�G�
R��'�'�����?��g�m�m�Z�8��J�J�$�$�%P�Q��
�>�>�
C��>�>�-�),���G�&��
�
� � �D��I�$6�$6�#7�r�#��b�!A�B�B��
C��	R��,�>�>�
C��>�>�-�),���G�&��
�
� � �D��I�$6�$6�#7�r�#��b�!A�B�B��
C����
����"�"�#���>�
C����0�0�#��0B�0B�1����>�>�
C��>�>�-�),���G�&��
�
� � �D��I�$6�$6�#7�r�#��b�!A�B�B��
C��	�"�"�$�s��AC�'M�<L=�N6�DL=�$N6�'AL=�.K�
:L=�L6�AL1�,L=�1L6�6L=�9N6�<L=�=N6�N3�AN.�.N3�6'R�'P�R�Q8�AQ3�.R�3Q8�8Rc�"�t|t�S�N)r��_main�r�s rc�pytest_cmdline_mainr�Is�����&�&rerzc���|jj|��|jj|��|jrtj
S|jdk(rtjSy)z[Default command line protocol for initialization, session,
    running tests and reporting.rtrN)r~�pytest_collection�pytest_runtestloop�testsfailedrr��testscollected�NO_TESTS_COLLECTED)r�rus  rcr�r�Ms`���K�K�!�!�'�!�2�
�K�K�"�"�7�"�3�����$�$�$�	�	�	�1�	$��*�*�*�rec�$�|j�yr�)�perform_collectrts rcr�r�Zs�����rec��|jrX|jjjs8|j	d|j|jdk7r	dfz��dfz��|jjj
ryt
|j�D]�\}}|dzt|j�kr|j|dznd}|jjj||��|jr|j|j��|js��|j	|j��y)Nz%d error%s during collectionr6�s�T)�item�nextitem)r�r�r�rD�Interrupted�collectonly�	enumerate�items�lenr~�pytest_runtest_protocol�
shouldfailr��
shouldstop)ru�ir�r�s    rcr�r�^s&�����7�>�>�#8�#8�#V�#V��!�!�*��"�"�7�+>�+>�!�+C�C�L�
M�
�	
�IK�L�
M�
�	
�
�~�~���(�(���W�]�]�+�:���4�+,�q�5�3�w�}�}�3E�+E�7�=�=��Q��'�4�������0�0�d�X�0�N�����.�.��!3�!3�4�4�����%�%�g�&8�&8�9�9�
:�rec��	|jd�j�xs |jdd�j�S#t$rYywxYw)a�Attempt to detect if ``path`` is the root of a Virtual Environment by
    checking for the existence of the pyvenv.cfg file.

    [https://peps.python.org/pep-0405/]

    For regression protection we also check for conda environments that do not include pyenv.cfg yet --
    https://github.com/conda/conda/issues/13337 is the conda issue tracking adding pyenv.cfg.

    Checking for the `conda-meta/history` file per https://github.com/pytest-dev/pytest/issues/12652#issuecomment-2246336902.

    z
pyvenv.cfgz
conda-meta�historyF)�joinpath�is_file�OSError�rHs rc�_in_venvr�rsR����M�M�,�'�/�/�1�
@��}�}�\�9�5�=�=�?�	
������s�AA�	A�Ac�<���jdk(ry|jd�j��}|xsg}|jd�}|r|j	d�|D���|vry|jd�j��}|xsg}|jd�}|r|j	d	�|D��t�fd
�|D��ry|jd�}|st
��ry�j�r&|jd�}t�fd
�|D��ryy)N�__pycache__T�collect_ignorer��ignorec3�2K�|]}t|����y�wr�r��.0�xs  rc�	<genexpr>z(pytest_ignore_collect.<locals>.<genexpr>�s����@��L��O�@����collect_ignore_glob�ignore_globc3�2K�|]}t|����y�wr�rr�s  rcr�z(pytest_ignore_collect.<locals>.<genexpr>�s����D��L��O�D�r�c3�n�K�|],}tjt��t|�����.y�wr�)�fnmatchr])r��glob�collection_paths  �rcr�z(pytest_ignore_collect.<locals>.<genexpr>�s%�����
U��7�?�?�3��/��T��;�
U�s�25rOr(c3�6�K�|]}t|�����y�wr�r)r��patr�s  �rcr�z(pytest_ignore_collect.<locals>.<genexpr>�s�����M�C�z�#��/�M�s�)	�name�_getconftest_pathlist�parent�	getoption�extend�anyr��is_dir�getini)r�r��ignore_paths�
excludeopt�ignore_globs�excludeglobopt�
allow_in_venv�norecursepatternss`       rc�pytest_ignore_collectr��s$������}�,���/�/���5�5�0��L� �%�2�L��!�!�(�+�J�����@�Z�@�@��,�&���/�/��O�$:�$:�0��L� �%�2�L��%�%�m�4�N�����D�^�D�D�
�
U��
U�U���$�$�%<�=�M��X�o�6������"�M�M�/�:���M�;L�M�M��rec�0�tj||��S)Nr�)�Dir�from_parent�rHr�s  rc�pytest_collect_directoryr��s���?�?�6��?�-�-rec� �t|jd�xsg�}|syg}g}|D]@}|jj|�r|j	|��0|j	|��B|r"|j
j
|��||ddyy)N�deselect)r�)�tupler��nodeid�
startswithr;r~�pytest_deselected)r�r��deselect_prefixes�	remaining�
deselected�colitems      rc�pytest_collection_modifyitemsr��s����f�.�.�z�:�@�b�A�����I��J��&���>�>�$�$�%6�7����g�&����W�%�	&�����%�%�J�%�7���a��rec�(�eZdZ						dd�Zdd�Zy)�FSHookProxyc� �||_||_yr�)�pm�remove_mods)�selfr�r�s   rc�__init__zFSHookProxy.__init__�s��
���&��rec�r�|jj||j��}||j|<|S)N)�remove_plugins)r��subset_hook_callerr��__dict__)r�r�r�s   rc�__getattr__zFSHookProxy.__getattr__�s4���G�G�&�&�t�D�<L�<L�&�M����
�
�d���reN)r�rr�zAbstractSet[object]rl�None)r�r]rlzpluggy.HookCaller)r��
__module__�__qualname__r�r�rercr�r��s(��'��'�)�'�
�	'�rer�c��eZdZdZdZy)r�z*Signals that the test run was interrupted.�builtinsN�r�rr�__doc__rrercr�r��s
��4��Jrer�c��eZdZdZy)r�z"Signals a stop as failed test run.Nrrrercr�r��s��,rer�c�$�eZdZUdZded<dd�Zy)�_bestrelpath_cacher�rrHc�<�t|j|�}|||<|Sr�)rrH)r�rH�rs   rc�__missing__z_bestrelpath_cache.__missing__�s ����	�	�4�(����T�
��reN)rHrrlr])r�rr�	__slots__�__annotations__rrrercrr�s���I�
�J�rerc�B��eZdZdZe						d�fd��Zdd�Z�xZS)r�aCollector of files in a file system directory.

    .. versionadded:: 8.0

    .. note::

        Python directories with an `__init__.py` file are instead collected by
        :class:`~pytest.Package` by default. Both are :class:`~pytest.Directory`
        collectors.
    c�&��t�|�||��S)z�The public constructor.

        :param parent: The parent collector of this Dir.
        :param path: The directory's path.
        :type path: pathlib.Path
        )r�rH)�superr�)�clsr�rH�	__class__s   �rcr�zDir.from_parent�s����w�"�&�t�"�<�<rec#�:K�|j}|j}t|j�D]�}|j	�rat|j�}|jj|d��s|j||��r�Y|j||��}|��o|���t|j�s��t|j�}|jj|�s|j||��r��|j||��}|Ed{�����y7��w)NT��with_parents)r�r�r���	file_pathr�)r��ihookrrHr�rru�
isinitpathr�r�r��pytest_collect_file)r�r�r�direntryrH�col�colss       rcrFzDir.collects����������
�
����	�	�*�	 �H���� ��H�M�M�*���|�|�.�.�t�$�.�G��2�2�4�PV�2�W� ��4�4�$�t�4�L���?��I��!�!�#��H�M�M�*���|�|�.�.�t�4��2�2�4�PV�2�W� ��0�0�4��0�M�����!	 �  �s�BD�D�5AD�D�D)r��nodes.CollectorrHrrlr%)rlz&Iterable[nodes.Item | nodes.Collector])r�rrr	�classmethodr�rF�
__classcell__�rs@rcr�r��s=���	��=��=��	=�

�=��=� rer�c����eZdZUdZeZeZded<ded<ded<d �fd�Zed!d	��Z	d"d
�Z
ed#d��Zejd$d��Zed#d
��Zejd$d��Zed%d��Zd&d�Zed��d'd��Zed��d(d��ZeZdd�					d)d�Zd*d�Z						d+d�Ze	d,					d-d��Ze	d,					d.d��Z	d/					d.d�Z	d0					d1d�Zd2d�Zd3d�Z�xZS)4rzzoThe root of the collection tree.

    ``Session`` collects the initial paths given as arguments to pytest.
    r#�_setupstater&�_fixturemanager�int | ExitCoderyc	����t�|�d|jdd||d��d|_d|_d|_d|_|jjjd�|_t�|_t�|_g|_
g|_i|_g|_t#|j�|_|j&j(j+|d��y)Nr�)r�rH�fspathr�r�rur�rFrGru)r�)rr��rootpathr�r��_shouldstop�_shouldfail�trace�root�get�	frozenset�
_initialpaths�_initialpaths_with_parents�	_notfound�_initial_parts�_collection_cacher�r�_bestrelpathcacher��
pluginmanager�register)r�r�rs  �rcr�zSession.__init__-s����
������������	�	
�������',���',����\�\�&�&�*�*�<�8��
�.7�k���;D�;��'�FH���8:���GI���')��
�2D�V�_�_�2U������!�!�*�*�4�i�*�@rec�*�|j|��}|S)Nr�)�_create)rr�rus   rcr{zSession.from_configGs���;�;�f�;�5���rec��d|jj|jt|dd�|j|j
fzS)Nz6<%s %s exitstatus=%r testsfailed=%d testscollected=%d>ryz<UNSET>)rr�r��getattrr�r��r�s rc�__repr__zSession.__repr__LsG��G��N�N�#�#��I�I��D�,�	�2�������K
�
�	
rec��|jSr�)r-r?s rcr�zSession.shouldstopU������rec�t�|dur-|jr!tjtd�d��y||_y)NFzCsession.shouldstop cannot be unset after it has been set; ignoring.rv��
stacklevel)r-�warnings�warnr$�r�r�s  rcr�zSession.shouldstopY�<���E�>�d�.�.��M�M��Y���	
�
� ��rec��|jSr�)r.r?s rcr�zSession.shouldfailgrBrec�t�|dur-|jr!tjtd�d��y||_y)NFzCsession.shouldfail cannot be unset after it has been set; ignoring.rvrD)r.rFrGr$rHs  rcr�zSession.shouldfailkrIrec�B�|jjjS)zQThe path from which pytest was invoked.

        .. versionadded:: 7.0.0
        )r��invocation_paramsrKr?s rcr�zSession.startpathys���{�{�,�,�0�0�0rec� �|j|Sr�)r8)r��	node_paths  rc�_node_location_to_relpathz!Session._node_location_to_relpath�s���%�%�i�0�0reT)�tryfirstc��|jr|j|j��|jr|j|j��yr�)r�r�r�r�r?s rc�pytest_collectstartzSession.pytest_collectstart�s=���?�?��+�+�d�o�o�.�.��?�?��"�"�4�?�?�3�3�rec���|jret|d�sX|xjdz
c_|jj	d�}|r%|j|k\rd|jz|_yyyyy)N�wasxfailr6r5zstopping after %d failures)�failed�hasattrr�r��getvaluer�)r��reportr5s   rc�pytest_runtest_logreportz Session.pytest_runtest_logreport�sg���=�=����!<�����!���k�k�*�*�9�5�G��4�+�+�w�6�">�$�BR�BR�"S���7�w�"=�=reFrc�x�t|t�r|n
t|�}|r||jvS||jvS)a>Is path an initial path?

        An initial path is a path explicitly given to pytest on the command
        line.

        :param with_parents:
            If set, also return True if the path is a parent of an initial path.

        .. versionchanged:: 8.0
            Added the ``with_parents`` parameter.
        )r�rr4r3)r�rHr�path_s    rcrzSession.isinitpath�s=��$#�4��.��D��J����D�;�;�;�;��D�.�.�.�.rec�"�t|t�r|n
t|�}|jj}|j	|�}|j
j
|�}|rtt||��}|S|jj}|Sr�)
r�rr�r9�_getconftestmodules�_conftest_plugins�
differencerr�r~)r�r+rHr��my_conftestmodulesr��proxys       rc�gethookproxyzSession.gethookproxy�s���#�F�D�1�v�t�F�|��
�[�[�
&�
&�� �3�3�D�9���*�*�5�5�6H�I���&�{�2�{�'C�D�E����K�K�$�$�E��rec��||vr||S|j�r6|j|j�}|j||��}|�|fnd}n7|j	�r%|j|�}|j||��}nd}|||<|S)z�Create a Collector for the given path.

        `path_cache` makes it so the same Collectors are returned for the same
        path.
        r�rr)r�rcr�r�r�r)r�rH�
path_cacherr r!s      rc�
_collect_pathzSession._collect_path�s����:���d�#�#��;�;�=��%�%�d�k�k�2�E�*/�*H�*H��$�+I�+�C�9<��s�f�R�D�
�\�\�^��%�%�d�+�E��,�,�t�D�,�I�D��D��
�4���rec��yr�r�r�r)�genitemss   rcr�zSession.perform_collect�s�� #rec��yr�rrhs   rcr�zSession.perform_collect�s��25rec�N�|�|jj}|jd||�|jjxjdz
c_|jj
}g|_g|_i|_g|_	|j}	g}g}|D]�}t|jjj||jjj��}|jj|�|j|j �|j|j �|j#|j j$���t'|�|_t'|�|_t-|�}	|j.j1|	��|jjxjdzc_|jrMg}
|jD]4\}}|r|
jd|�d|�d���!|
jd|����6t3|
��|s
|	j4}nG|	j6r;|	j4D],}|jj#|j9|���.|jj:j=�|j?||j|�	�g|_g|_i|_|jA|�
�|rtC|�|_"|S#g|_g|_i|_|jA|�
�wxYw)a�Perform the collection phase for this session.

        This is called by the default :hook:`pytest_collection` hook
        implementation; see the documentation of this hook for more details.
        For testing purposes, it may also be called directly on a fresh
        ``Session``.

        This function normally recursively expands any collectors collected
        from the session to their items, and only items are returned. For
        testing purposes, this may be suppressed by passing ``genitems=False``,
        in which case the return value contains these collectors unexpanded,
        and ``session.items`` is empty.
        r�r6��	as_pypath�rYznot found: z
(no match in any of �)zfound no collectors for )rur�r�rt)#r�r)r/r0�indentr~r5r6r7r��resolve_collection_argumentrMrKr��pyargsr;rHr�rhr2r3r4r"r�pytest_collectreportr�result�passedrir9�
check_pendingr��pytest_collection_finishr�r�)
r�r)rir~r��initialpaths�initialpaths_with_parents�arg�collection_argument�rep�errors�
collectors�nodes
             rcr�zSession.perform_collect�s��� �<��;�;�#�#�D��
�
�$�d�D�1��
�
�����!�#���{�{������� ���!#�����
�8<�
�
��.	8�')�L�46�%��	
S��&A��K�K�1�1�5�5��"�k�k�0�0�7�7�'�#�
�#�#�*�*�+>�?��#�#�$7�$<�$<�=�)�0�0�1D�1I�1I�J�)�0�0�1D�1I�1I�1Q�1Q�R�	
S�"+�<�!8�D��.7�8Q�.R�D�+�"�4�(�C��J�J�+�+�3�+�7��J�J�O�O�"�"�a�'�"��~�~���'+�~�~�H�O�C��!��
�
�)�#��.D�Z�N�RS�T���
�
�(@���&F�G�
H�!�&�)�)���
�
���:�:� #�
�
�?���
�
�)�)�$�-�-��*=�>�?�
�K�K�%�%�3�3�5��.�.��T�[�[��
/�
� �D�N�"$�D��%'�D�"��)�)�$�)�7��"%�e�*�D����� �D�N�"$�D��%'�D�"��)�)�$�)�7�s
�H,K;�;)L$c��||jvr|r|j|}|dfSt|�}||j|<|dfS)NTF)r7r")r�r�handle_dupesr|s    rc�_collect_one_nodezSession._collect_one_node:sR��
�4�)�)�)�l��(�(��.�C���9��"�4�(�C�+.�D�"�"�4�(���:�rec#�K�i}|jj}|jD�]�}|jd|�|jjxj
dz
c_|j}|j}|j}|j�r|rJd||f����|g}|�7|jD]'}|j|�sny|jd|��)nd|jd�}	t|jd�D]:\}
}|
t|	�kDs|j |	|
k7rn|jd|��<d}g}|g|�|�fg}
|
�r9|
j#�\}}|s|��d}�t%|t&j(�s�:t%|t*�r+t%|dt,�sJ�|j/|d|�}n�t|�dk(xr(t%|dt,�xr|dj1�}|j3||�\}}|s(|j4s|j6j9|�	�|j4s��|j:}d}t=|�D�]}t%|dt,�r�|j|dk(}t>j@d
k(r�|s�tBjjE|j|d�}|xrLtBjjG|j�tBjjG|d�k(}n8|jH|dk(xs$|jHjd�d|dk(}|s��|
jK||ddf�d}��|s|jK|�|
r��9|s;djMtO|�g|���}|jPjK||f�|jjxj
dzc_���y�w)
Nzprocessing argumentr6zinvalid arg r�.rvFTrn�win32�[�::))r�r9r6r/r0rprH�parts�module_namer�rh�_is_in_confcutdir�insert�splitr�r��stem�popr�r�	Collectorrzrrfr�r�rurrsrt�reversedr��platformr��samefile�islinkr�r;�joinr]r5)r�rer�r{�argpath�namesr��pathsrH�module_name_partsr��any_matched_in_initial_part�notfound_collectors�work�	matchnode�
matchparts�subnodesr�r|�	duplicate�any_matched_in_collectorr�is_match�	same_file�
report_args                         rcrFzSession.collectGs�����=?�
�
�[�[�
&�
&��#'�#6�#6�o	(���J�J�,�.A�B��J�J�O�O�"�"�a�'�"�)�.�.�G�'�-�-�E�-�9�9�K��~�~�� �E�L�'�5�1A�0D�"E�E�y��I�E��"�#�O�O�*�D��/�/��5���L�L��D�)�*�%0�$5�$5�c�$:�!�(����!�<�*�G�A�t��3�0�1�1�T�Y�Y�BS�UV�TV�BW�5W���L�L��D�)�*�+0�'�"$���'��'��'�(�Q�D��(,���
�%�	�:�"�#�O�26�/��"�)�U�_�_�=���i��1�%�j��m�T�:�:�:�(�6�6�z�!�}�j�Q�H�
�J��1�,�4�&�z�!�}�d�;�4�&�q�M�1�1�3�$�L�
&*�%;�%;�I�|�%T�N�C��$�S�Z�Z�"���<�<�C�<�H��:�:� �"�z�z�H�,1�(�$�X�.�8�D�!�*�Q�-��6�#'�9�9�
�1�
�#=���<�<�7�2�8�)+���(8�(8����J�q�M�(R�I�(1�(� "�����t�y�y� 9�#%�7�7�>�>�*�Q�-�#@�!A�%�!�I�I��A��6�H�#�y�y���s�3�A�6�*�Q�-�G�!� ����T�:�a�b�>�$:�;�37�0�38�60�'�.�.�y�9�I�L/�!�Y�Y��G��'=�u�'=�>�
����%�%�z�3F�&G�H��J�J�O�O�"�"�a�'�"�_o	(�s�MO;�0O;�A*O;c#�4K�|jd|�t|tj�r!|jj|��|��yt|tj�sJ�|jjd�}|xrt|tj�}|j||�\}}|r|sy|jr*|jD]}|j|�Ed{����|s|jj|��yy7�&�w)Nri)r�rNrn)r/r�r�Itemr�pytest_itemcollectedr�r�r��Filer�rurtrirs)r�rrNr�r|r��subnodes       rcrizSession.genitems�s������
�
�:�t�$��d�E�J�J�'��J�J�+�+��+�6��J��d�E�O�O�4�4�4�!�[�[�2�2�3C�D�N� .� O�:�d�E�J�J�3O�P�L�!�3�3�D�,�G�N�C������z�z�"�z�z�6�G�#�}�}�W�5�5�5�6���
�
�/�/�s�/�;��6�s�C-D�/D�0'D)r�rrlr)r�rrlrz)rlr])rl�
bool | str)r�r�rlr)rlr)rOrrlr])rlr)rYzTestReport | CollectReportrlr)rHzstr | os.PathLike[str]rrUrlrU)r+zos.PathLike[str]rlzpluggy.HookRelay)rHrrez%dict[Path, Sequence[nodes.Collector]]rlzSequence[nodes.Collector])..)r)�Sequence[str] | Noneriz
Literal[True]rlzSequence[nodes.Item])r)r�rirUrlz&Sequence[nodes.Item | nodes.Collector])NT)T)rr"r�rUrlztuple[CollectReport, bool])rlz&Iterator[nodes.Item | nodes.Collector])rznodes.Item | nodes.CollectorrlzIterator[nodes.Item])r�rrr	r�r�rr�r#r{r@�propertyr��setterr�r�rPrrSrZrsrrcrfrr�r�rFrir$r%s@rcrzrzs�����
�K�
�F���#�#���A�4����
�� �� ����!��!�� �� ����!��!��1��1�1��t��4��4��t��T��T�4��#�	/�$�/��	/�

�/�0�"���:��
#�	�>�JM�#�(�#�:G�#�	�#��#��AD�5�(�5�:>�5�	/�5��5�
CG�P�(�P�;?�P�	/�P�j"������
$�	�w(�r<rec�4�	tjj|�}|�|j�|jdk(ry|jr)tjj|j�S|jS#ttt
f$rYywxYw)zaSearch sys.path for the given a dotted module name, and return its file
    system path if found.N�	namespace)rQ�util�	find_spec�AttributeError�ImportError�
ValueError�origin�submodule_search_locationsr�rH�dirname)r��specs  rc�
search_pypathr��s~����~�~�'�'��4���|�t�{�{�*�d�k�k�[�.H��	
�	(�	(��w�w���t�{�{�+�+��{�{���
�K��4����s�B�B�BT)�frozenc�0�eZdZUdZded<ded<ded<y)	�CollectionArgumentzA resolved collection argument.rrHz
Sequence[str]r��
str | Noner�N)r�rrr	rrrercr�r��s��)�
�J����rer�Frlc��t|�jd�\}}}|jd�^}}|r|d�|�|��|d<d}|rt|�}	|	�|}|	}||z}
t	|
�}
t|
�s!|rdnd}t
|j|����|r1|
j�r!|rdnd	}t
|j|����t|
||�
�S)a�Parse path arguments optionally containing selection parts and return (fspath, names).

    Command-line arguments can point to files and/or directories, and optionally contain
    parts for specific tests selection, for example:

        "pkg/tests/test_foo.py::TestClass::test_foo"

    This function ensures the path exists, and returns a resolved `CollectionArgument`:

        CollectionArgument(
            path=Path("/full/path/to/pkg/tests/test_foo.py"),
            parts=["TestClass", "test_foo"],
            module_name=None,
        )

    When as_pypath is True, expects that the command-line argument actually contains
    module paths instead of file-system paths:

        "pkg.tests.test_foo::TestClass::test_foo"

    In which case we search sys.path for a matching module, and then return the *path* to the
    found module, which may look like this:

        CollectionArgument(
            path=Path("/home/u/myvenv/lib/site-packages/pkg/tests/test_foo.py"),
            parts=["TestClass", "test_foo"],
            module_name="pkg.tests.test_foo",
        )

    If the path doesn't exist, raise UsageError.
    If the path is a directory and selection parts are present, raise UsageError.
    r�r����Nz9module or package not found: {arg} (missing __init__.py?)z"file or directory not found: {arg})rzz9package argument cannot contain :: selection parts: {arg}z;directory argument cannot contain :: selection parts: {arg})rHr�r�)
r]�	partitionr�r�rrr�formatr�r�)�invocation_pathrzrmri�squacket�rest�strpathr�r��
pyarg_strpathr+rrs            rcrqrq�s��F�s�8�-�-�c�2��D�(�D��j�j��&�O�G�e���R�y�k�(��D�6�2��b�	��K��%�g�.�
��$�!�K�#�G�
�w�
&�F�
�&�
!�F��v���
H�5�	�
������,�-�-�������
H�N�	�
������,�-�-��
����re)rarrlr)rHr]rlr])r�rr�z2Callable[[Config, Session], int | ExitCode | None]rlr))r�rrlr))r�rrurzrlzint | ExitCode | None)rurzrlr)rurzrlrU)rHrrlrU)r�rr�rrlzbool | None)rHrr�r"rlznodes.Collector | None)r�zlist[nodes.Item]r�rrlr)r�r]rlr�)r�rrzr]rmrUrlr�)Vr	�
__future__rrm�dataclassesr�r^rQ�importlib.utilr��pathlibrr��typingrrrrr	r
rrr
rrF�pluggyr�r�
_pytest._code�_pytest.configrrrrrr�_pytest.config.argparsingr�_pytest.config.compatr�_pytest.outcomesr�_pytest.pathlibrrrrr�_pytest.reportsr r!�_pytest.runnerr"r#�_pytest.warning_typesr$�typing_extensionsr%�_pytest.fixturesr&rdr`r�r�r�r�r�r�r�r�r�r�r�r�r�r��	dataclassr]r�	Directoryr�r�rzr�r�rqrrerc�<module>r�s���N�"�������	��
���������� ��
���!�(�#�#�.�%�,�4�!�(�'�&�'�#�)�&�+�%�/��&�/�y�x�28��8�L�8��8�v'�
���(�*#�L.�
�.�'�.��.��$���#��-�Y�-�
�����d�C�i������0 �%�/�/�0 ��0 �f�r<�e�o�o�r<��r<�j
�$����d�#���$��;@�A��A� #�A�37�A��Are

Youez - 2016 - github.com/yon3zu
LinuXploit