403Webshell
Server IP : 46.101.140.223  /  Your IP : 216.73.217.61
Web Server : nginx/1.22.1
System : Linux debian-s-1vcpu-1gb-fra1-01 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
User : deploy-others ( 1001)
PHP Version : 8.2.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/_pytest/assertion/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/_pytest/assertion/__pycache__/util.cpython-311.pyc
�

��cYF�
�<�UdZddlZddlZddlZddlmZddlmZddlmZddlm	Z	ddlm
Z
ddlmZdd	lmZdd
lm
Z
ddlmZddlZddlmZdd
lmZddlmZddlmZddlmZdZeeeeegeefed<dZeeeeegdfed<dZeeed<dedefd�Z dede
efd�Z!de
ede
efd�Z"dede#fd�Z$dede#fd�Z%dede#fd�Z&dede#fd�Z'dede#fd �Z(dede#fd!�Z)dede#fd"�Z*dede#fd#�Z+dede#fd$�Z,	d8d&ed'ed(ed)e#dee
ef
d*�Z-d9d'ed(ed+ede
efd,�Z.d9d'ed(ed+ede
efd-�Z/de
eddfd.�Z0	d9d'e	ed(e	ed+ede
efd/�Z1	d9d'e
ed(e
ed+ede
efd0�Z2	d9d'eed(eed+ede
efd1�Z3	d9d'eeefd(eeefd+ede
efd2�Z4d'ed(ed+ede
efd3�Z5d9d4ed5ed+ede
efd6�Z6de#fd7�Z7dS):z"Utilities for assertion debugging.�N)�AbstractSet)�Any)�Callable)�Iterable)�List)�Mapping)�Optional)�Sequence)�	normalize)�outcomes)�_pformat_dispatch)�saferepr)�saferepr_unlimited)�Config�_reprcompare�_assertion_pass�_config�explanation�returnc�h�t|��}t|��}d�|��S)a�Format an explanation.

    Normally all embedded newlines are escaped, however there are
    three exceptions: \n{, \n} and \n~.  The first two are intended
    cover nested explanations, see function and attribute explanations
    for examples (.visit_Call(), visit_Attribute()).  The last one is
    for when one explanation needs to span multiple lines, e.g. when
    displaying diffs.
    �
)�_split_explanation�
_format_lines�join)r�lines�results   �8/usr/lib/python3/dist-packages/_pytest/assertion/util.py�format_explanationr$s0��
�{�+�+�E�
�5�
!�
!�F��9�9�V����c���|pd�d��}|dg}|dd�D]7}|r |ddvr|�|���$|dxxd|zz
cc<�8|S)	z�Return a list of individual lines in the explanation.

    This will return a list of lines split on '\n{', '\n}' and '\n~'.
    Any other newlines will be escaped and appear in the line as the
    literal '\n' characters.
    �rr�N)�{�}�~�>���z\n)�split�append)r�	raw_linesr�valuess    rrr3s����"��)�)�$�/�/�I�
�q�\�N�E��A�B�B�-�(�(���	(�f�Q�i�#7�7�7��L�L�� � � � ��"�I�I�I����'�I�I�I�I��Lrrc�r�t|dd���}dg}dg}|dd�D�]x}|�d��r�|drd}nd}|�t|����|dxxdz
cc<|�d��|�dd	t|��dz
zz|z|dd�z����|�d
��rH|���|���||dxx|dd�z
cc<��|ddvsJ�|dxxdz
cc<|�d��rt|��nt|��dz
}|�d	|z|dd�z����zt|��dksJ�|S)
aFormat the individual lines.

    This will replace the '{', '}' and '~' characters of our mini formatting
    language with the proper 'where ...', 'and ...' and ' + ...' text, taking
    care of indentation along the way.

    Return a list of formatted lines.
    Nr"rr#r'zand   zwhere z +�  r$)r%r&r%)�list�
startswithr)�len�pop)rr�stack�stackcnt�line�s�indents       rrrDs����%����)�_�_�F�
�C�E��s�H��a�b�b�	�4�4���?�?�3���	4���|�
�������L�L��V���%�%�%��R�L�L�L�A��L�L�L��O�O�A�����M�M�$���U���a��!8�8�1�<�t�A�B�B�x�G�H�H�H�H�
�_�_�S�
!�
!�	4��I�I�K�K�K��L�L�N�N�N��5��9�����a�b�b��)�������7�j�(�(�(�(��"�I�I�I��N�I�I�I�#'�?�?�3�#7�#7�K�S��Z�Z�Z�S��Z�Z�!�^�F��M�M�$��-�$�q�r�r�(�2�3�3�3�3��u�:�:��?�?�?�?��Mr�xc�l�t|tjj��ot|t��S�N)�
isinstance�collections�abcr
�str�r7s r�
issequencer?gs)���a���1�2�2�M�:�a��;M�;M�7M�Mrc�,�t|t��Sr9)r:r=r>s r�istextrAks���a����rc�,�t|t��Sr9)r:�dictr>s r�isdictrDos���a����rc�:�t|ttf��Sr9)r:�set�	frozensetr>s r�issetrHss���a�#�y�)�*�*�*r�objc�R�t|t��ot|dd��duS)N�_fields)r:�tuple�getattr�rIs r�isnamedtuplerOws(���c�5�!�!�O�g�c�9�d�&C�&C�4�&O�Orc�(�t|dd��duS)N�__dataclass_fields__�rMrNs r�	isdataclsrS{s���3�.��5�5�T�A�Arc�(�t|dd��duS)N�__attrs_attrs__rRrNs r�isattrsrVs���3�)�4�0�0��<�<rc�d�	t|��t|��S#t$rYdSwxYw)NF)�iterrA�	TypeErrorrNs r�
isiterablerZ�sB����S�	�	�	��#�;�;���������u�u����s�!�
/�/c��t|jd��rDt|jjd��r*|jjj}t	|��rd|vS|dkSdS)a�Check if an instance of an object contains the default eq

    First, we check if the object's __eq__ attribute has __code__,
    if so, we check the equally of the method code filename (__code__.co_filename)
    to the default one generated by the dataclass and attr module
    for dataclasses the default co_filename is <string>, for attrs class, the __eq__ should contain "attrs eq generated"
    �__code__�co_filenamezattrs generated eqz<string>T)�hasattr�__eq__r\r]rV)rI�
code_filenames  r�has_default_eqra�sd���s�z�:�&�&�+�7�3�:�3F�
�+V�+V�+��
�+�7�
��3�<�<�	9�'�=�8�8��
�*�*��4rF�op�left�right�	use_asciic�*�|�d��}t|t��o6t|t��o!td|��td|��k}|dkr#t	||���}t	||���}n<dt|��z
dz
dz}t
|||���}t
|||���}|�d|�d|��}	d	}
	|d
krt|||��}
n5|dkr/t|��r t|��rt|||��}
ni#tj$r�t$rMd�
tjj��������d
g}
YnwxYw|
sd	S|	g|
zS)z<Return specialised explanations for some operators/operands.�verbose�NFDr")re�A�)�maxsizere� Nz==znot inz?(pytest_assertion plugin: representation of details failed: {}.z+ Probably an object has a faulty __repr__.))�	getoptionr:r=rrr0r�_compare_eq_anyrA�_notin_textr�Exit�	Exception�format�_pytest�_code�
ExceptionInfo�from_current�
_getreprcrash)�configrbrcrdrerg�	left_repr�
right_reprrk�summaryrs           r�assertrepr_comparer|�s������y�)�)�G�
	�4����	>��u�c�"�"�	>��e�T�"�"�i��u�&=�&=�=����{�{�&�t�y�A�A�A�	�'���C�C�C�
�
�

�c�"�g�g���!�
����T�7�i�H�H�H�	��e�W�	�J�J�J�
��.�.�R�.�.�*�.�.�G��K�
�
��:�:�)�$��w�?�?�K�K�
�8�^�^��d�|�|�
@��u�
�
�
@�)�$��w�?�?�����=����
��
�
�
�M�T�T��
�+�8�8�:�:�H�H�J�J�
�
�
:�	
����
�������t��9�{�"�"s�A
D"�"A#F�Frgc��g}t|��r"t|��rt|||��}�n�ddlm}t	||��st	||��r>t	||��r|n|}t	||��r|n|}|�|��}n�t
|��t
|��kr?t|��st|��st|��rt|||��}n�t|��r!t|��rt|||��}n_t|��r!t|��rt|||��}n/t|��r t|��rt!|||��}t#|��r5t#|��r&t%|||��}|�|��|S)Nr)�
ApproxBase)rA�
_diff_text�_pytest.python_apir~r:�
_repr_compare�typerSrVrO�_compare_eq_clsr?�_compare_eq_sequencerH�_compare_eq_setrD�_compare_eq_dictrZ�_compare_eq_iterable�extend)rcrdrgrr~�approx_side�
other_side�expls        rrnrn�s����K�
�d�|�|�%��u�
�
�%� ��u�g�6�6���1�1�1�1�1�1��d�J�'�'�	A�:�e�Z�+H�+H�	A�",�T�:�">�">�I�$�$�E�K�",�T�:�">�">�H���D�J�%�3�3�J�?�?�K�K�
�$�Z�Z�4��;�;�
&�
&��d�O�O�'�&�t�}�}�'�0<�T�0B�0B�'�*�$��w�?�?�K�K�
��
�
�	A�*�U�"3�"3�	A�.�t�U�G�D�D�K�K�
�4�[�[�	A�U�5�\�\�	A�)�$��w�?�?�K�K�
�D�\�\�	A�f�U�m�m�	A�*�4���@�@�K��d���	%�
�5� 1� 1�	%�'��e�W�=�=�D����t�$�$�$��rc�z�ddlm}g}|dk�rd}ttt	|��t	|������D]}||||krn�|dkr|dz}d|zg}||d�}||d�}t	|��t	|��krott	|����D]}||||krn�|dkr4|dz}|d�|��gz
}|d|�}|d|�}d	}|���s|���r>tt|����}tt|����}|d
gz
}|d�||�	|��|�	|����D��z
}|S)z�Return the explanation for the diff between text.

    Unless --verbose is used this will skip leading and trailing
    characters which are identical to keep the diff minimal.
    r)�ndiffr"�*�
z@Skipping %s identical leading characters in diff, use -v to showNzASkipping {} identical trailing characters in diff, use -v to showTz;Strings contain only whitespace, escaping them using repr()c�8�g|]}|�d����S)r)�strip��.0r4s  r�
<listcomp>z_diff_text.<locals>.<listcomp> s4������	
�
�
�4�����r)
�difflibr��range�minr0rr�isspace�reprr=�
splitlines)rcrdrgr�r�i�keependss       rrr�s���������K���{�{�
���s�3�t�9�9�c�%�j�j�1�1�2�2�	�	�A��A�w�%��(�"�"���#��r�6�6�
��G�A�R�UV�V��K�����8�D��!�"�"�I�E��t�9�9��E�
�
�"�"��3�t�9�9�%�%�
�
�����8�u�a�R�y�(�(��E�)��2�v�v��R����9�9?����� ����C�a�R�C�y���c��r�c�
���H��|�|�~�~�W������W��C��I�I�����S��Z�Z� � ���U�V�V������E�%�*�*�8�4�4�d�o�o�h�6O�6O�P�P�����K��rc���|ddd�}|dvr!d|ddd�z|d<|g|z|dd�<|ddd�}|dvr#|ddd�dz|d<||gz|dd�<dSdS)	z6Move opening/closing parenthesis/bracket to own lines.rNr")�(�[r#rlr')�)�]r$�,�)r�opening�closings   r� _surrounding_parens_on_own_linesr�'s����A�h�r��r�l�G��/�!�!���q��!�"�"��%��a���9�u�$��a�a�a���B�i����n�G��/�!�!��"�I�c�r�c�N�S�(��b�	��G�9�$��a�a�a����"�!rc�`�|dkrt��sdgSddl}tj|�����}tj|�����}t|��}t|��}||krBt
|�����}t
|�����}|dks|dkrt|��t|��dg}|�d�|�	||��D����|S)NrzUse -v to get more diffr"z
Full diff:c3�>K�|]}|���V��dSr9)�rstripr�s  r�	<genexpr>z'_compare_eq_iterable.<locals>.<genexpr>Ls;����������
�
������r)
�
running_on_cir��pprint�pformatr�r0r
r�r�r�)	rcrdrgr��left_formatting�right_formatting�
lines_left�lines_rightrs	         rr�r�3s;���!�|�|�M�O�O�|�)�*�*��N�N�N��n�T�*�*�5�5�7�7�O��~�e�,�,�7�7�9�9���_�%�%�J��&�'�'�K��[� � �+�D�1�1�<�<�>�>��,�U�3�3�>�>�@�@���A�~�~��q���(��9�9�9�(�)9�:�:�:��.�K������")�-�-�0@�/�"R�"R��������rc�@�t|t��ot|t��}g}t|��}t|��}tt	||����D]R}||||kr>|r|||dz�}|||dz�}	n||}||}	|d|�d|�d|	��gz
}n�S|r|S||z
}
|
rX|
dkrd}t||��}nd|
z
}
d}t||��}|
dkr||�d|��gz
}n|d	||
|fzgz
}|S)
Nr"z	At index z diff: � != r�Left�Rightz contains one more item: z/%s contains %d more items, first extra item: %s)r:�bytesr0r�r�r)
rcrdrg�comparing_bytesr�len_left�	len_rightr��
left_value�right_value�len_diff�
dir_with_more�extras
             rr�r�Rs���!��u�-�-�J�*�U�E�2J�2J�O��K��4�y�y�H��E�
�
�I�
�3�x��+�+�
,�
,������7�e�A�h����

'�"�!�a�!�e�)�_�
�#�A��A��I�.���!�!�W�
�#�A�h���S��S�S�*�S�S�K�S�S�T�T�K��E�#�&�����)�#�H����a�<�<�"�M��T�)�_�-�-�E�E��8�|�H�#�M��U�8�_�-�-�E��q�=�=��}�N�N�u�N�N�O�O�K�K��A� �(�E�2�3��
�K��rc��g}||z
}||z
}|r<|�d��|D]$}|�t|�����%|r<|�d��|D]$}|�t|�����%|S)NzExtra items in the left set:zExtra items in the right set:)r)r)rcrdrgr�	diff_left�
diff_right�items       rr�r��s����K��u��I����J��/����9�:�:�:��	/�	/�D����x��~�~�.�.�.�.��/����:�;�;�;��	/�	/�D����x��~�~�.�.�.�.��rc�����g}t���}t���}|�|��}��fd�|D��}|r|dkr|dt|��zgz
}n1|r/|dgz
}|tj|�����z
}��fd�|D��}|rA|dgz
}|D]8}	|t
|	�|	i��dzt
|	�|	i��zgz
}�9||z
}
t|
��}|rg|�d||d	krd
ndfz��|�tj�fd�|
D���������||z
}t|��}
|
rg|�d
|
|
d	krd
ndfz��|�tj�fd�|D���������|S)Nc�F��i|]}�|�|k�|�|��Sr�r��r��krcrds  ��r�
<dictcomp>z$_compare_eq_dict.<locals>.<dictcomp>�s1���>�>�>�1�$�q�'�U�1�X�*=�*=�A�t�A�w�*=�*=�*=rrj�,Omitting %s identical items, use -vv to showz
Common items:c�8��h|]}�|�|k�|��Sr�r�r�s  ��r�	<setcomp>z#_compare_eq_dict.<locals>.<setcomp>�s+���5�5�5�!��a��E�!�H�!4�!4�A�!4�!4�!4rzDiffering items:r�zLeft contains %d more item%s:r"r!r5c�"��i|]}|�|��Sr�r�)r�r�rcs  �rr�z$_compare_eq_dict.<locals>.<dictcomp>�s���;�;�;�1�A�t�A�w�;�;�;rzRight contains %d more item%s:c�"��i|]}|�|��Sr�r�)r�r�rds  �rr�z$_compare_eq_dict.<locals>.<dictcomp>�s���=�=�=�A�A�u�Q�x�=�=�=r)	rF�intersectionr0r�r�r�rr)r�)rcrdrgr�set_left�	set_right�common�same�diffr��
extra_left�len_extra_left�extra_right�len_extra_rights``            rr�r��sr���� �K��4�y�y�H��E�
�
�I�
�
"�
"�9�
-�
-�F�>�>�>�>�>��>�>�>�D��9��!����F��T���R�S�S���	
�9���(�(���v�~�d�+�+�6�6�8�8�8��5�5�5�5�5�v�5�5�5�D��W��*�+�+���	W�	W�A��H�a��a��\�2�2�V�;�h��5�QR�8�}�>U�>U�U�V�V�K�K��I�%�J���_�_�N��
����+��^�q�%8�%8�r�r�c�B�
C�	
�	
�	
�	����N�;�;�;�;�
�;�;�;�<�<�G�G�I�I�	
�	
�	
��h�&�K��+�&�&�O��
����,��o��&:�&:����D�
E�	
�	
�	
�	����N�=�=�=�=��=�=�=�>�>�I�I�K�K�	
�	
�	
��rc
���t|��sgSt|��r&ddl}|�|��}d�|D��}n<t	|��r|j}d�|D��}nt
|��r|j}nJ�d�g}g}|D]O}t||��t||��kr|�	|���:|�	|���Pg}	|s|r|	dgz
}	|r,|dkr&|	�	dt|��z��n1|r/|	d	gz
}	|	tj|���
��z
}	|r�|	d
gz
}	|	tj|���
��z
}	|D]W}t||��}
t||��}|	dd|z��|�d|
�d
|��gz
}	|	�fd�t|
||��D��z
}	�X|	S)Nrc�*�g|]}|j�	|j��Sr�)�compare�name)r��infos  rr�z#_compare_eq_cls.<locals>.<listcomp>�s!��L�L�L��t�|�L�4�9�L�L�Lrc�<�g|]}t|d���|j��S)�eq)rMr�)r��fields  rr�z#_compare_eq_cls.<locals>.<listcomp>�s*��V�V�V�%���PT�AU�AU�V�5�:�V�V�VrFr-r!rjr�zMatching attributes:zDiffering attributes:z'Drill down into differing attribute %s:z: r�c���g|]}�|z��Sr�r�)r�r4r6s  �rr�z#_compare_eq_cls.<locals>.<listcomp>�s-���������
���r)rarS�dataclasses�fieldsrVrUrOrKrMr)r0r�r�r�rn)
rcrdrgr��
all_fields�fields_to_checkr�r�r�r�
field_left�field_rightr6s
            @rr�r��sq����$�����	���������� �'�'��-�-�
�L�L��L�L�L���	������)�
�V�V�:�V�V�V���	�d�	�	���,�����
�F�
�D�
�D� �����4����7�5�%�#8�#8�8�8��K�K�������K�K�������K���t����t����9��!������I�C�PT�I�I�U�V�V�V�V�	
�9��.�/�/���v�~�d�+�+�6�6�8�8�8�����/�0�0���v�~�d�+�+�6�6�8�8�8���	�	�E� ��u�-�-�J�!�%��/�/�K���9�E�A�&,�f�e�e�e�Z�Z�Z���M��
�K�

�����+�J��W�M�M����
�K�K��r�term�textc���|�|��}|d|�}||t|��zd�}||z}t|||��}dt|d���zg}|D]y}	|	�d��r�|	�d��r�.|	�d��r!|�d|	dd�z���d|�|	���z|S)	Nz%s is contained here:r�)rk�Skippingz- z+ r-rj)�findr0rrr/r))
r�r�rg�index�head�tail�correct_textr��newdiffr4s
          rroro�s����I�I�d�O�O�E�����<�D����D�	�	�!�#�#�$�D��$�;�L��d�L�'�2�2�D�&��$��)C�)C�)C�C�D�G��!�!���?�?�:�&�&�	���?�?�4� � �	���?�?�4� � �	!��N�N�4�$�q�r�r�(�?�+�+�+�+��N�N�4� � � � ��Nrc�<�ddg}td�|D����S)z0Check if we're currently running on a CI system.�CI�BUILD_NUMBERc3�2K�|]}|tjvV��dSr9)�os�environ)r��vars  rr�z running_on_ci.<locals>.<genexpr>
s)����5�5�S�s�b�j� �5�5�5�5�5�5r)�any)�env_varss rr�r�s)���n�%�H��5�5�H�5�5�5�5�5�5r)F)r)8�__doc__�collections.abcr;r�r��typingrrrrrrr	r
�unicodedatar�
_pytest._codersr�_pytest._io.safereprr
rr�_pytest.configrrr=�object�__annotations__r�intrrrr�boolr?rArDrHrOrSrVrZrar|rnrr�r�r�r�r�r�ror�r�rr�<module>rs��(�(�(�����	�	�	�	�
�
�
�
�������������������������������������������������!�!�!�!�!�!�����������2�2�2�2�2�2�)�)�)�)�)�)�3�3�3�3�3�3�!�!�!�!�!�!�JN��h�x��f�f� 5�x��}� D�E�F�M�M�M�>B���(�C��c�?�D�#8�9�:�A�A�A�!���&�	� � � ��C��C������C��D��I�����" ��#�� �4��9� � � � �FN�#�N�$�N�N�N�N��c��d������c��d�����+�S�+�T�+�+�+�+�P�c�P�d�P�P�P�P�B�3�B�4�B�B�B�B�=��=��=�=�=�=��C��D������	��	�����,?D�1#�1#��1#��1#�'*�1#�7;�1#�
�d�3�i��1#�1#�1#�1#�h � �#� �c� �C� ��S�	� � � � �F-�-�S�-��-�s�-�4��9�-�-�-�-�`	%�D��I�	%�$�	%�	%�	%�	%�?@���
�3�-�� (��
��8;��	�#�Y�����@?@�2�2�
�3�-�2� (��
�2�8;�2�	�#�Y�2�2�2�2�lEF���
�c�
��#.�s�#3��>A��	�#�Y�����$GH�&�&�
�#�s�(�
�&�$+�C��H�$5�&�@C�&�	�#�Y�&�&�&�&�R0�#�0�c�0�C�0�D��I�0�0�0�0�f��c����s��4��9�����&6�t�6�6�6�6�6�6r

Youez - 2016 - github.com/yon3zu
LinuXploit