Viewing File: /opt/cloudlinux/venv/lib/python3.11/site-packages/_pytest/_code/__pycache__/source.cpython-311.pyc

�

�|oi���ddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddlm
Z
ddlmZddlmZddlm
Z
ddlmZdd	lmZGd
�d��Zdeeeeffd
�Zddededejfd�Zde	edeefd�Zdedejdeeeeffd�Z		ddedededeejdeejeeff
d�ZdS)�N)�bisect_right)�Iterable)�Iterator)�List)�Optional)�overload)�Tuple)�Unionc�*�eZdZdZddeddfd�Zdedefd�ZdZe	de
defd	���Ze	de
ddfd
���Zdee
e
fdeedffd�Zdeefd�Zde
fd
�Zdd�Zddeddfd�Zde
ddfd�Zde
dee
e
ffd�Zdd�Zdefd�ZdS)�SourcezvAn immutable object holding a source code fragment.

    When using Source(...), the source lines are deindented.
    N�obj�returnc�6�|s	g|_dSt|t��r|j|_dSt|ttf��r td�|D����|_dSt|t��r)t|�d����|_dS	t|��}tj
|��}n$#t$rtj
|��}YnwxYwt|�d����|_dS)Nc3�@K�|]}|�d��V��dS��
N��rstrip��.0�xs  �f/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/_pytest/_code/source.py�	<genexpr>z"Source.__init__.<locals>.<genexpr>s,����!>�!>�Q�!�(�(�4�.�.�!>�!>�!>�!>�!>�!>�r)�lines�
isinstancer�tuple�list�deindent�str�split�
getrawcode�inspect�	getsource�	TypeError)�selfr
�rawcode�srcs    r�__init__zSource.__init__s	���	3�$&�D�J�J�J�
��V�
$�
$�	3���D�J�J�J�
��e�T�]�
+�
+�
	3�!�!>�!>�#�!>�!>�!>�>�>�D�J�J�J�
��S�
!�
!�	3�!�#�)�)�D�/�/�2�2�D�J�J�J�
-�$�S�/�/���'��0�0�����
-�
-�
-��'��,�,����
-����!�#�)�)�D�/�/�2�2�D�J�J�Js�*#C�C/�.C/�otherc�Z�t|t��stS|j|jkS�N)rr�NotImplementedr)r&r*s  r�__eq__z
Source.__eq__(s)���%��(�(�	"�!�!��z�U�[�(�(r�keyc��dSr,��r&r/s  r�__getitem__zSource.__getitem__0����rc��dSr,r1r2s  rr3zSource.__getitem__4r4rc���t|t��r
|j|S|jdvrt	d���t��}|j|j|j�|_|S)N)N�z!cannot slice a Source with a step)r�intr�step�
IndexErrorr�start�stop)r&r/�	newsources   rr3zSource.__getitem__8sb���c�3���	��:�c�?�"��x�y�(�(� �!D�E�E�E����I�"�j���S�X�)=�>�I�O��rc�*�t|j��Sr,)�iterr�r&s r�__iter__zSource.__iter__Bs���D�J���rc�*�t|j��Sr,)�lenrr@s r�__len__zSource.__len__Es���4�:���rc��dt|��}}||krI|j|���s*|dz
}||kr|j|����*||krO|j|dz
���s-|dz}||kr"|j|dz
����-t��}|j||�|jdd�<|S)zGReturn new Source object with trailing and leading blank lines removed.rr7N)rCr�stripr)r&r;�end�sources    rrFzSource.stripHs�����D�	�	�s���c�k�k�$�*�U�"3�"9�"9�";�";�k��Q�J�E��c�k�k�$�*�U�"3�"9�"9�";�";�k��E�k�k�$�*�S�1�W�"5�";�";�"=�"=�k��1�H�C��E�k�k�$�*�S�1�W�"5�";�";�"=�"=�k������*�U�3�Y�/���Q�Q�Q���
r�    �indentc�T��t��}�fd�|jD��|_|S)z^Return a copy of the source object with all lines indented by the
        given indent-string.c���g|]}�|z��Sr1r1)r�linerJs  �r�
<listcomp>z!Source.indent.<locals>.<listcomp>Ws���B�B�B�t�F�T�M�B�B�Br)rr)r&rJr=s ` rrJz
Source.indentSs1����H�H�	�B�B�B�B�t�z�B�B�B�	���r�linenoc�F�|�|��\}}|||�S)zUReturn Source statement which contains the given linenumber
        (counted from 0).)�getstatementrange)r&rOr;rGs    r�getstatementzSource.getstatementZs)���+�+�F�3�3�
��s��E�#�I��rc��d|cxkrt|��ksntd���t||��\}}}||fS)zmReturn (start, end) tuple which spans the minimal statement region
        which containing the given lineno.rzlineno out of range)rCr:�getstatementrange_ast)r&rO�astr;rGs     rrQzSource.getstatementrange`sW���V�'�'�'�'�c�$�i�i�'�'�'�'��2�3�3�3�/���=�=���U�C��c�z�rc�^�t��}t|j��|jdd�<|S)z&Return a new Source object deindented.N)rrr)r&r=s  rrzSource.deindenths+���H�H�	�%�d�j�1�1�	�������rc�6�d�|j��S�Nr)�joinrr@s r�__str__zSource.__str__ns���y�y���$�$�$rr,)rr)rI)�__name__�
__module__�__qualname__�__doc__�objectr)�boolr.�__hash__rr8r r3�slicer
rrArDrFrJrRr	rQrrZr1rrrrs���������
3�3�F�3�d�3�3�3�3�")�F�)�t�)�)�)�)��H�
��s��s�����X����u�������X���u�S�%�Z�0��U�3��=�5I����� �(�3�-� � � � �������	�	�	�	���S��x������3��8���������c�3�h����������%��%�%�%�%�%�%rrrc��	tj|��\}}n#t$rYdSwxYwt��}d�|D��|_||fS)N)N���c�6�g|]}|�����Sr1r)rrMs  rrNzfindsource.<locals>.<listcomp>}s ��:�:�:�d�D�K�K�M�M�:�:�:r)r#�
findsource�	Exceptionrr)r
�sourcelinesrOrHs    rrfrfwsh���%�0��5�5���V�V�������x�x�����
�X�X�F�:�:�k�:�:�:�F�L��6�>�s��
(�(Tr
�trycallc���	|jS#t$rYnwxYw|r9t|dd��}|r&t|t��st|d���St
d|�����)z&Return code object for given function.�__call__NF)rizcould not get code object for )�__code__�AttributeError�getattrr�typer"r%)r
ri�calls   rr"r"�s���
��|����
�
�
���
�����3��s�J��-�-���	3�
�3��-�-�	3��d�E�2�2�2�2�
�<�S�<�<�
=�
=�=s�	�
�rc�t�tjd�|�������SrX)�textwrap�dedentrY�
splitlines)rs rrr�s*���?�4�9�9�U�+�+�,�,�7�7�9�9�9rrO�nodec��g}tj|��D]�}t|tjtjf��r�t|tjtjtjf��r'|jD]}|�	|j
dz
��� |�	|j
dz
��dD];}t||d��}|r&|�	|dj
dz
dz
���<��|���t||��}||dz
}|t|��krd}	n||}	||	fS)Nr7)�	finalbody�orelser)rU�walkr�stmt�
ExceptHandler�ClassDef�FunctionDef�AsyncFunctionDef�decorator_list�appendrOrn�sortrrC)
rOru�valuesr�d�name�val�insert_indexr;rGs
          r�get_statement_startend2r��sF���F�
�X�d�^�^�9�9���a�#�(�C�$5�6�7�7�	9��!�c�l�C�O�S�=Q�R�S�S�
0��)�0�0�A��M�M�!�(�Q�,�/�/�/�/��M�M�!�(�Q�,�'�'�'�/�
9�
9��07��4��0F�0F���9��M�M�#�a�&�-�!�"3�a�"7�8�8�8���
�K�K�M�M�M����/�/�L��<�!�#�$�E��s�6�{�{�"�"�����\�"���#�:�rFrH�	assertion�astnodec� �
�|�dt|��}tj��5tjd��t	j|dd��}ddd��n#1swxYwYt
||��\}}|�t|j��}||dzkr�tj
��}|j|d���|_d�|j||�D���
	tj�
fd���D]}|j|��
n1#tjt"f$r
|j|z}Ynt&$rYnwxYw|rB|j|dz
���}	|	�d��s|	s|dz}nn|�B|||fS)	N�ignorerH�execr7rc3� K�|]	}|dzV��
dSrr1rs  rrz(getstatementrange_ast.<locals>.<genexpr>�s&����
:�
:�Q�q�4�x�
:�
:�
:�
:�
:�
:rc�"��t���Sr,)�next)�its�r�<lambda>z'getstatementrange_ast.<locals>.<lambda>�s
����R���r�#)r �warnings�catch_warnings�simplefilterrU�parser�rCrr#�BlockFinder�isspace�started�tokenize�generate_tokens�
tokeneater�
EndOfBlock�IndentationError�lastrg�lstrip�
startswith)rOrHr�r��contentr;rG�block_finder�tokrMr�s          @rrTrT�s������f�+�+���
$�
&�
&�	;�	;��!�(�+�+�+��i���6�:�:�G�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�)���9�9�J�E�3�
�{��&�,����
�U�Q�Y����*�,�,��%�|�E�2�1�5�=�=�?�?���
:�
:�&�,�u�S�y�"9�
:�
:�
:��	��/�0@�0@�0@�0@�A�A�
.�
.��'��'��-�-�-�
.���"�$4�5�	,�	,�	,��#�e�+�C�C�C��	�	�	��D�	�������|�C�!�G�$�+�+�-�-���?�?�3���	�t�	��1�H�C�C�����E�3��s)�+A�A!�$A!�1$D� E�8	E�E)T)FN)rUr#rrr��typesr��bisectr�typingrrrrrr	r
rr8rfr_r`�CodeTyper"r r�ASTr�rTr1rr�<module>r�s'��
�
�
�
���������������������������������������������������������������������^%�^%�^%�^%�^%�^%�^%�^%�L�u�X�f�-�s�2�3�����
>�
>�F�
>�T�
>�U�^�
>�
>�
>�
>�:�H�S�M�:�d�3�i�:�:�:�:��C��s�w��5��h�s�m�AS�;T�����<�!%�	,�,��,��,��,��c�g�
�	,�
�3�7�C����,�,�,�,�,�,r
Back to Directory File Manager