Your IP : 216.73.216.213


Current Path : /opt/alt/python311/lib64/python3.11/test/support/__pycache__/
Upload File :
Current File : //opt/alt/python311/lib64/python3.11/test/support/__pycache__/__init__.cpython-311.opt-2.pyc

�

�0�i�)����	edkred���ddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
	ddlmZn
#e$rdZYnwxYwgd�ZdZdZdZd	Zej�ej�e����Zej�e��Zej�e��Zej�e��ZGd
�de��ZGd�d
e��ZGd�de��Z Gd�de��Z!Gd�dej"��Z#d�Z$d�Z%d�Z&dZ'dZ(da)da*dZ+dZ,da-d�Z.d�Z/d�Z0d�Z1d�Z2d�d�Z3d�d �Z4d!�Z5d"�Z6d#�Z7d$�Z8d�d%�Z9dddd&�d'�Z:d�dddd&�d(�Z;e:d)�*��Z<d+�Z=d,�Z>d-Z?d.Z@ejAeB�Cd/���Dd0��d1��ZEd�d3�ZFd�d5�ZGd�d7�ZHd�d9�ZId:�ZJd�d<�ZKejAed=��ZLejMd>kZNejM�Dd?��ZOePed@��ZQejMdAvreQrdBndCZRndZRejMdDkZSejMdEkZTePedF��oeSoeTZUdG�ZVeSoeTZWdH�ZXeSoeTZYddI�dJ�ZZdZ[ejMd>kr!	e
j\dK��dKkZ[n#e]$rYnwxYwdLZ^dZ_dZ`ej�aedM��ZbdN�Zcd�dO�ZddP�Zed�dddR�dS�ZfdT�ZgejhdU���ZidV�ZjdW�ZkdX�ZldY�ZmejhdZ���Znd[�Zod\�Zpd]Zqd^ZrePed_��rd`eqzZqdaZreqdbzZsdc�Ztdd�ZudeZvdfZwdg�Zxddh�di�Zyejhdj���Zzdk�Z{dlZ|dme|zZ}dne}zZ~doe}zZej�Z�dpe�dqe�fdr�Z�dpe�dqdfds�Z�Gdt�du��Z�d�dv�Z�dw�Z�dx�Z�dy�Z�dz�Z�d�d{�Z�d|�Z�d}�Z�d~�Z�d�Z�d��Z�e���oejMd>koe	j�d���Z�e�j�duoe�Z�ejAe�d���Z�d��Z�d��Z�ej�e�_�da�d��Z�ejhd����Z�ejhd����Z�d��Z�d��Z�Gd��d�e���Z�da�d��Z�Gd��d���Z�d��Z�d�d��d��Z�		d�d��Z�d�d��Z�Gd��d���Z�d��Z�ejhd����Z�d��Z�d�d��Z�gfd��Z�da�d��Z�ejhd����Z�Gd��d���Z�d��Z�Gd��d���Z�e���Z�Gd��d���Z�e���Z�ej�Gd��d�����Z�e���Z�ej�Gd��d�����Z�e���Z�d��Z�ej�j�Z�d��Z�Gd��d���Z�dd��d��Z�d��Z�d��Z�d��Z�d��Z�ejhd����Z�d�d��Z�d�e�d�e�dqe�fd��Z�d�e�dqdfd��Z�d��Z�ePed���Z�d�d)d��d��Z�d�d�d�d)d��d„Z�ejhdÄ��Z�e�d�d�h��Z�dƄZ�ej�ePedǦ�oej���j�d�kdɦ�Z�dqe�e�fdʄZ�dS)�ztest.supportz.support must be imported from the test package�N)�unicode_legacy_string)J�
PIPE_MAX_SIZE�verbose�
max_memuse�
use_resources�failfast�Error�
TestFailed�
TestDidNotRun�ResourceDenied�record_original_stdout�get_original_stdout�captured_stdout�captured_stdin�captured_stderr�is_resource_enabled�requires�requires_freebsd_version�requires_linux_version�requires_mac_ver�check_syntax_error�
requires_gzip�requires_bz2�
requires_lzma�
bigmemtest�bigaddrspacetest�cpython_only�
get_attribute�requires_IEEE_754�
requires_zlib�has_fork_support�
requires_fork�has_subprocess_support�requires_subprocess�has_socket_support�requires_working_socket�anticipate_failure�load_package_tests�detect_api_mismatch�check__all__�skip_if_buggy_ucrt_strfptime�check_disallow_instantiation�check_sanitizer�skip_if_sanitizer�
MS_WINDOWS�	is_jython�
is_android�
is_emscripten�is_wasi�check_impl_detail�
unix_shell�setswitchinterval�open_urlresource�
reap_children�run_with_locale�	swap_item�findfile�infinite_recursion�	swap_attr�Matcher�set_memlimit�SuppressCrashReport�sortdict�run_with_tz�PGO�missing_compiler_executable�	ALWAYS_EQ�NEVER_EQ�LARGEST�SMALLEST�LOOPBACK_TIMEOUT�INTERNET_TIMEOUT�
SHORT_TIMEOUT�LONG_TIMEOUT�
skip_on_s390xg$@gN@g>@g�r@c��eZdZdS)r	N��__name__�
__module__�__qualname__���</opt/alt/python311/lib64/python3.11/test/support/__init__.pyr	r	js������4�4rTr	c�,��eZdZ	dd��fd�
Zd�Z�xZS)r
N��statsc�X��||_||_t��j|g|�R�dS�N)�msgrX�super�__init__)�selfr[rX�args�	__class__s    �rUr]zTestFailed.__init__os6��������
�������$�t�$�$�$�$�$�$rTc��|jSrZ)r[�r^s rU�__str__zTestFailed.__str__ts	���x�rT)rPrQrRr]rc�
__classcell__�r`s@rUr
r
msW��������)-�%�%�%�%�%�%�%�
������rTr
c� ��eZdZ	�fd�Z�xZS)�TestFailedWithDetailsc�n��||_||_t���||||���dS)NrW)�errors�failuresr\r])r^r[rirjrXr`s     �rUr]zTestFailedWithDetails.__init__ys8������ ��
�
������f�h�e��<�<�<�<�<rT)rPrQrRr]rdres@rUrgrgws;��������=�=�=�=�=�=�=�=�=rTrgc��eZdZdS)rNrOrSrTrUrr~s������(�(rTrc��eZdZdS)rNrOrSrTrUrr�s�������rTrc�&�	|rtjSd�S)Nc��|SrZrS)�fs rU�<lambda>z$anticipate_failure.<locals>.<lambda>�s��Q�rT)�unittest�expectedFailure)�	conditions rUr'r'�s"���
�(��'�'��;�rTc�x�	|�d}t}|�|||���}|�|��|S)Nztest*)�	start_dir�
top_level_dir�pattern)�
STDLIB_DIR�discover�addTests)�pkg_dir�loader�standard_testsrw�top_dir�
package_testss      rUr(r(�sT��������G��O�O�g�29�,3�$�5�5�M����M�*�*�*��rTc�z�		t||��}|S#t$rtjd|�d|�����wxYw)Nzobject z has no attribute )�getattr�AttributeErrorrq�SkipTest)�obj�name�	attributes   rUrr�sa��I���C��&�&�	�����O�O�O����3�3�3��� M�N�N�N�O���s��%:�Fc�
�|adSrZ)�_original_stdout)�stdouts rUr
r
�s�����rTc�(�tptjSrZ)r��sysr�rSrTrUrr�s���)�s�z�)rTc�v�	||�S#t$r/}tdkrt|jj�d|�����d}~wt
$rp}tdkr7t|jj�d|����td|j�|����t
j|tj	��||�cYd}~Sd}~wwxYw)N��: zre-run )
�FileNotFoundErrorr�printr`rP�OSError�os�chmod�stat�S_IRWXU)�path�funcr_�errs    rU�
_force_runr��s�����t�T�{��������a�<�<��c�m�4�4�4�c�c�:�;�;�;�
����������a�<�<��c�m�4�4�4�c�c�:�;�;�;��E�4�=�=�$�$�7�8�8�8�
���t�|�$�$�$��t�T�{��������������s%��
B8�*;�
B8�A%B3�-B8�3B8c	�&���ttd��rtjSddl}d}tj�d��r|���rd}�n�tj�d��r�ddl�ddl�d}d}G�fd�d�j	��}�j
j}|���}|s��
���|��}�j���}|�||��|����|����|����}	|	s��
���t'|j|z��sd}n�tjd	kr�dd
lm}
m�m}m	}ddlm}
|
�|
d����}|���dkrd
}nYG�fd�d|��}|��}||��}|�|��dks|�|��dkrd}|s�	ddlm}|��}|� ��|�!��|�"��nn#tF$ra}tI|��}tK|��dkr
|dd�dz}d�&tO|��j(|��}Yd}~nd}~wwxYw|t_)|t_tjS)N�resultr�winz(gui is not available on Windows IoT Corer�c�b��eZdZd�jjfd�jjfd�jjfgZdS)�*_is_gui_available.<locals>.USEROBJECTFLAGS�fInherit�	fReserved�dwFlagsN)rPrQrR�wintypes�BOOL�DWORD�_fields_)�ctypess�rU�USEROBJECTFLAGSr��s=�������#�V�_�%9�:�$�f�o�&:�;�"�F�O�$9�:�<�H�H�HrTr�z,gui not available (WSF_VISIBLE flag not set)�darwin)�cdll�c_int�pointer�	Structure)�find_library�ApplicationServicesz0gui tests cannot run without OS X window managerc� ��eZdZd�fd�fgZdS)�._is_gui_available.<locals>.ProcessSerialNumber�
highLongOfPSN�lowLongOfPSNN)rPrQrRr�)r�s�rU�ProcessSerialNumberr�s&�������,�e�4�+�U�3�5���rTr�z#cannot run without OS X gui process)�Tk�2z [...]zTk unavailable due to {}: {})*�hasattr�_is_gui_availabler��platformr��
startswith�win32_is_iotr��ctypes.wintypesr��windll�user32�GetProcessWindowStation�WinErrorr�r��GetUserObjectInformationW�byref�sizeof�boolr�r�r�r��ctypes.utilr��LoadLibrary�CGMainDisplayID�GetCurrentProcess�SetFrontProcess�tkinterr��withdraw�update�destroy�	Exception�str�len�format�typerP�reason)r�r��	UOI_FLAGS�WSF_VISIBLEr��dll�h�uof�needed�resr�r�r�r��app_servicesr��psn�psn_pr��root�e�
err_stringr�r�s                      @@rUr�r��s������ �(�+�+�(� �'�'��O�O�O�
�F�
�|���u�%�%�2?�(�*?�*?�*A�*A�2?�;���	��	 �	 ��	'�	'�0?�	�
�
�
������	���	<�	<�	<�	<�	<�	<�	<�f�.�	<�	<�	<��m�"���'�'�)�)���	$��/�/�#�#�#��o������&�&�(�(���+�+�A���L�L�����M�M�#����L�L�� � �	"�"��
�	$��/�/�#�#�#��C�K�+�-�.�.�	D�C�F��	���	!�	!�	;�:�:�:�:�:�:�:�:�:�:�:�,�,�,�,�,�,��'�'���5J�(K�(K�L�L���'�'�)�)�Q�.�.�G�F�F�
5�
5�
5�
5�
5�
5�
5�i�
5�
5�
5�&�%�'�'�C��G�C�L�L�E��1�1�%�8�8�1�<�<��/�/��6�6��:�:�>���G�	G�"�"�"�"�"�"��2�4�4�D��M�M�O�O�O��K�K�M�M�M��L�L�N�N�N�N���	G�	G�	G��Q���J��:����#�#�'����_�x�7�
�3�:�:�4��7�7�;K�;E�G�G�F�F�F�F�F�F�����		G���� &���#)�z����#�#s�3AJ�
K+�
AK&�&K+c�(�	tdup|tvSrZ)r��resources rUrr s���
�D� �=�H�
�$=�=rTc���	t|��s|�d|z}t|���|dvrtstd���|dkr't��sttj���dSdS)Nz"Use of the %r resource not enabled>�network�urlfetchzNo socket support�gui)rrr%r�r�)r�r[s  rUrr(s���J��x�(�(�"��;�6��A�C��S�!�!�!��*�*�*�3E�*��0�1�1�1��5���!2�!4�!4���.�5�6�6�6����rT�Linuxc�(�ddl}|���|krdS|����dd��d}	t	tt|�d������S#t$rYdSwxYw)Nr�-r��.)r��system�release�split�tuple�map�int�
ValueError)�sysnamer��version_txts   rU�_get_kernel_versionr�3s����O�O�O������G�#�#��t��"�"�$�$�*�*�3��2�2�1�5�K���S��k�/�/��4�4�5�5�6�6�6�������t�t����s�4B�
B�Bc���	ddl}d�tt|����}|����dd��d}|���|krO	ttt|�d������}||k}n#t$rd}YnwxYwd}tj||�d|�d|����S)Nrr�r�r�Fz	 version � or higher required, not )r��joinr�r�r�r�r�r�r�r�rq�skipIf)r��min_versionr��min_version_txtr��version�skips       rU�_requires_unix_versionr�=s
����O�O�O��h�h�s�3��4�4�5�5�O��"�"�$�$�*�*�3��2�2�1�5�K������G�#�#�	)��C��[�%6�%6�s�%;�%;�<�<�=�=�G��[�(�D�D���	�	�	��D�D�D�	����
���?���	�	�_�	�	��	�	���s�55B1�1C�?Cc�$�	td|��S)N�FreeBSD�r��r�s rUrrXs���"�)�[�9�9�9rTc�$�	td|��S)Nr�rrs rUrras���"�'�;�7�7�7rTc���	�fd�}|S)Nc�X���tj�����fd���}�|_|S)Nc���tjdkr�ddl}|���d}	tt	t
|�d������}|�krBd�t	t�����}tj
d|�d|�����n#t$rYnwxYw�|i|��S)Nr�rr�z	Mac OS X r�)r�r��mac_verr�r�r�r�r�r�rqr�r�)r_�kwr�r�r�r�r�r�s      ��rU�wrapperz4requires_mac_ver.<locals>.decorator.<locals>.wrapperrs�����|�x�'�'�����&�.�.�0�0��3��	>�#�C��[�->�->�s�-C�-C�$D�$D�E�E�G���,�,�*-�(�(�3�s�K�3H�3H�*I�*I��&�/�/�.�����=�>�>�>�-��"�����D������4��$��$�$�$s�5B/�/
B<�;B<)�	functools�wrapsr�)r�r	r�s` �rU�	decoratorz#requires_mac_ver.<locals>.decoratorqsF����	���	�	�	%�	%�	%�	%�	%�
�	�	%�*����rTrS)r�rs` rUrrjs)���������&�rTc��	ddl}|sd}	|������dk}n>#ttf$r*}tjd|�d�t��d}Yd}~nd}~wwxYwtj	||��S)Nrznot suitable for buildbots�buildbotzgetpass.getuser() failed r�F)
�getpass�getuser�lower�KeyError�EnvironmentError�warnings�warn�RuntimeWarningrqr�)r�r�
isbuildbotr�s    rU�skip_if_buildbotr�s���>��N�N�N��.�-����_�_�&�&�,�,�.�.�*�<�
�
���&�'�����
�8�#�8�8�8�.�I�I�I��
�
�
�
�
�
����������?�:�v�.�.�.s�*6�A1� A,�,A1��address�memory�ubc���	|s|s|std���tjd��pd}tjd��pd}d|vpd|v}d|vpd|v}d	|vpd
|v}|r|p|o|p|o|S)Nz3At least one of address, memory, or ub must be True�CFLAGS��CONFIG_ARGSz-fsanitize=memoryz--with-memory-sanitizerz-fsanitize=addressz--with-address-sanitizerz-fsanitize=undefinedz#--with-undefined-behavior-sanitizer)r��	sysconfig�get_config_var)rrr�cflags�config_args�memory_sanitizer�address_sanitizer�ub_sanitizers        rUr-r-�s���C��P�v�P��P��N�O�O�O��
%�h�
/�
/�
5�2�F��*�=�9�9�?�R�K��v�%�	1�!�[�0��
	��&�	2�"�k�1��
	�&�(�	=�-��<��

�	$�$�	�	�	&�&�	�	�	��rTc�Z�	|sd}t|||���}tj||��S)Nz"not working with sanitizers activer)r-rqr�)r�rrrr�s     rUr.r.�s8��H��6�5���7�6�b�A�A�A�D��?�4��(�(�(rTT)rc�J�dD]}||vr||xxd|��z
cc<�|||<� dS)N)�ASAN_OPTIONS�MSAN_OPTIONS�
UBSAN_OPTIONS�:rS)�env�optionr�s   rU�set_sanitizer_env_varr0�sM��A�����3�;�;���I�I�I��V���%�I�I�I�I��C��I�I�	�rTc�H��	tj����fd���}|S)Nc���	�|i|��dS#t$r+}dt|��vrtjd����d}~wwxYw)N�CERTIFICATE_VERIFY_FAILEDz.system does not contain necessary certificates)r�r�rqr�)r_�kwargsr�ros   �rU�decz&system_must_validate_cert.<locals>.dec�st���	�
�A�t��v��������	�	�	�*�c�!�f�f�4�4��'�)A�B�B�B������		���s�
�
A�&=�A)r
r)ror5s` rU�system_must_validate_certr6�s;���?��_�Q�����������JrTi@i�double�IEEEztest requires IEEE 754 doubles�
requires zlibc�\�	ddl}n#t$rd}YnwxYwtj||��S�Nr)�zlib�ImportErrorrq�
skipUnless)r�r<s  rUr r ��I�����������������������t�V�,�,�,�����
requires gzipc�\�	ddl}n#t$rd}YnwxYwtj||��Sr;)�gzipr=rqr>)r�rCs  rUrr�r?r@�requires bz2c�\�	ddl}n#t$rd}YnwxYwtj||��Sr;)�bz2r=rqr>)r�rFs  rUrr�sI����
�
�
�
����������������s�F�+�+�+r@�
requires lzmac�\�	ddl}n#t$rd}YnwxYwtj||��Sr;)�lzmar=rqr>)r�rIs  rUrr�r?r@c��	ddl}n"#t$rtjd���wxYw|���}t|d��S)Nr�_testinternalcapi required�code_debug_ranges)�_testinternalcapir=rqr��
get_configr�)rM�configs  rU�has_no_debug_rangesrP�sk��>� � � � � ���>�>�>��� <�=�=�=�>����
�
)�
)�
+�
+�F��F�.�/�0�0�0�0���&�$requires co_positions / debug_rangesc�D�tjt��|��SrZ)rqr�rP)r�s rU�requires_debug_rangesrTs���?�.�0�0�&�9�9�9rTzrequires legacy Unicode C API�win32�java�getandroidapilevel)rU�vxworksz/system/bin/shz/bin/sh�
emscripten�wasi�forkc�6�tjtd��S)Nzrequires working os.fork())rqr>r!rSrTrUr"r"s����/�1M�N�N�NrTc�8�	tjtd��S)Nzrequires subprocess support)rqr>r#rSrTrUr$r$#s��=���5�7T�U�U�UrT)�modulec�z�	d}|rtstj|���dStjt|��S)Nzrequires socket support)r%rqr�r>)r^r[s  rUr&r&*sO���$�C�
�<�!�	)��#�C�(�(�(�	)�	)��"�#5�s�;�;�;rTz%4Yzhttp://www.pythontest.net�datac��	tjdkrdSddl}d}|�d�}|���\}}t	|�|d����t	|��t	d|z��dS)Nr�rz NOTICE z� may generate "malloc can't allocate region"
warnings on macOS systems. This behavior is known. Do not
report a bug unless tests are also failing. See bpo-40928.r�)r�r��shutil�get_terminal_sizer��center)�	test_namerbr[�detail�padding�_s      rU�darwin_malloc_err_warningriOs����
�|�x������M�M�M�
�C��K�K�K�F��)�)�+�+�J�G�Q�	�#�*�*�W�c�
"�
"�#�#�#�	�&�M�M�M�	�#��-�����rTc�H�	tj�|��r|S|� tj�||��}tgt
jz}|D]E}tj�||��}tj�|��r|cS�F|SrZ)r�r��isabsr��
TEST_HOME_DIRr��exists)�filename�subdirr��dn�fns     rUr;r;as����
�w�}�}�X������
���7�<�<���1�1���?�S�X�%�D��)�)��
�W�\�\�"�h�
'�
'��
�7�>�>�"���(�b�y�y�y�(��OrTc��	t|�����}d�|D��}d�|��}d|zS)Nc��g|]}d|z��S)z%r: %rrS)�.0�pairs  rU�
<listcomp>zsortdict.<locals>.<listcomp>ws��3�3�3�T��D��3�3�3rTz, z{%s})�sorted�itemsr�)�dictrx�	reprpairs�
withcommass    rUrArAtsI��+��4�:�:�<�<� � �E�3�3�U�3�3�3�I����9�%�%�J��J��rTr)�lineno�offsetc�|�|�t|��5}t|dd��ddd��n#1swxYwY|j}|�|j��|�|�|j|��|�|j��|�|�|j|��dSdS)Nz
<test string>�exec)�assertRaisesRegex�SyntaxError�compile�	exception�assertIsNotNoner|�assertEqualr})�testcase�	statement�errtextr|r}�cmr�s       rUrr{s���	�	#�	#�K��	9�	9�4�R��	�?�F�3�3�3�4�4�4�4�4�4�4�4�4�4�4����4�4�4�4�
�,�C����S�Z�(�(�(�
�����S�Z��0�0�0����S�Z�(�(�(�
�����S�Z��0�0�0�0�0��s
�:�>�>c����
�ddl}ddl}ddlm}	ddl}n#t
$rd}YnwxYw��dd���
|j�|��d�	d��d}tj�t|��}��
�fd�}tj�|��r||��}	|	�|	S||��td	��t r t#d
|zt%�����|j���}
|r|
j�d��|
�|t0�
��}	|r4|	j�d��dkr|�|	���}		t/|d��5}|	���}|r+|�|��|	���}|�+ddd��n#1swxYwY|	���n#|	���wxYw||��}	|	�|	St?d|z���)Nrr�)�unlink�checkr��/���c���t|g��Ri���}��|S�|��r|�d��|S|���dSr;)�open�seek�close)rqror_r�rs  ���rU�check_valid_filez*open_urlresource.<locals>.check_valid_file�s_�����!�d�!�!�!�b�!�!���=��H�
�U�1�X�X�	�
�F�F�1�I�I�I��H�	���	�	�	�	�	rTr�z	fetching %s ...��file)zAccept-EncodingrC��timeoutzContent-EncodingrC)�fileobj�wbzinvalid resource %r) �urllib.request�urllib.parse�	os_helperr�rCr=�pop�parse�urlparser�r�r�r��
TEST_DATA_DIRrmrrr�r�request�build_opener�
addheaders�appendr�rJ�headers�get�GzipFile�read�writer�r
)�urlr_r�urllibr�rCrnrqr�ro�opener�out�sr�s ``          @rUr7r7�s������'�'�'�'�'�'�'�'�!�!�!�!�!�!��������������������
�F�F�7�D�!�!�E��|�$�$�S�)�)�!�,�2�2�3�7�7��;�H�	����m�X�	.�	.�B��������
�w�~�~�b������R� � ���=��H���r�
�
�
�
�Z�����E�
�!�C�'�.A�.C�.C�D�D�D�D�
�^�
(�
(�
*�
*�F��>��� � �!<�=�=�=����C�!1��2�2�A��%��	�
�
�0�1�1�V�;�;��M�M�!�M�$�$���
�"�d�^�^�	�s������A��
��	�	�!�����F�F�H�H���
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
���	�	�	�	�����	�	�	�	���������A��}���
�*�R�/�
0�
0�0s=��'�'�H�,AG:�.H�:G>�>H�G>�H�H0c#� K�	ddl}tt|��}tt||�����	tt|��V�tt||��dS#tt||��wxYwr;)�ior�r��setattr�StringIO)�stream_namer��orig_stdouts   rU�captured_outputr��s�����O�
�I�I�I��#�{�+�+�K��C��b�k�k�m�m�,�,�,�/��c�;�'�'�'�'�'���[�+�.�.�.�.�.����[�+�.�.�.�.���s�A5�5B
c�"�	td��S)Nr��r�rSrTrUrr������8�$�$�$rTc�"�	td��S)N�stderrr�rSrTrUrr�r�rTc�"�	td��S)N�stdinr�rSrTrUrr�s����7�#�#�#rTc��	ddl}|���trtjd��|���|���dS)Nrg�������?)�gc�collectr0�time�sleep)r�s rU�
gc_collectr��sR����I�I�I��J�J�L�L�L����
�3�����J�J�L�L�L��J�J�L�L�L�L�LrTc#��K�ddl}|���}|���	dV�|r|���dSdS#|r|���wwxYwr;)r��	isenabled�disable�enable)r��have_gcs  rU�
disable_gcr��sy����
�I�I�I��l�l�n�n�G��J�J�L�L�L��
�����	��I�I�K�K�K�K�K�	�	��7�	��I�I�K�K�K�K�	���s�A�A'c���	tjd��pd}d}|���D]}|�d��r|}�tjd��dkrd}nd}||vS)N�	PY_CFLAGSrz-O�CC�gcc)r�-O0z-Og)rr�)r!r"r�r�)r#�	final_opt�opt�non_optss    rU�python_is_optimizedr�s}��6�
�
%�k�
2�
2�
8�b�F��I��|�|�~�~�����>�>�$���	��I�����%�%��.�.�%������H�$�$rTc����tjd��pd�gd�}tjd��}|r|�|��t�fd�|D����S)N�PY_CFLAGS_NODISTr)z
-fprofile-usez-fprofile-instr-usez	-prof-use�PGO_PROF_USE_FLAGc3� �K�|]}|�vV��	dSrZrS)rtr/�
cflags_nodists  �rU�	<genexpr>z#check_cflags_pgo.<locals>.<genexpr>#s(�����A�A�6�v��&�A�A�A�A�A�ArT)r!r"r��any)�pgo_optionsr�r�s  @rU�check_cflags_pgor�s�����,�-?�@�@�F�B�M����K�"�0�1D�E�E���.����,�-�-�-��A�A�A�A�[�A�A�A�A�A�ArT�nP�0n�
getobjects�2P�0P�nc�T�ddl}|�t|ztz��Sr;)�struct�calcsize�_header�_align��fmtr�s  rU�calcobjsizer�-s&���M�M�M��?�?�7�S�=�6�1�2�2�2rTc�T�ddl}|�t|ztz��Sr;)r�r��_vheaderr�r�s  rU�calcvobjsizer�1s&���M�M�M��?�?�8�c�>�F�2�3�3�3rTi@ic��	ddl}n"#t$rtjd���wxYwt	j|��}t
|��tkr|jtzs4t
|��tkr&t
|��jtzr
||j
z
}dt
|��||fz}|�|||��dS)NrrKz&wrong size for %s: got %d, expected %d)rMr=rqr�r��	getsizeofr��	__flags__�_TPFLAGS_HEAPTYPE�_TPFLAGS_HAVE_GC�SIZEOF_PYGC_HEADr�)�test�o�sizerMr�r[s      rU�check_sizeofr�9s���>� � � � � ���>�>�>��� <�=�=�=�>����
�]�1�
�
�F�	
�a���D���q�{�->�>��
�q�'�'�T�/�/��Q��� 1�4D� D�/��!�2�2��
2��A�w�w���%�&�C����V�T�3�'�'�'�'�'rQ)�_do_cleanupsc�������	d�t�t��r=��dd������t	���dkrd�t��������fd�}|S)NF�,� r�Tc����t�t��rtd���tj��������fd���}|S)Nz1subTests() can only decorate methods, not classesc�����D]m}�	r|f}tt�|����}|jdi|��5�|g|�Ri|�|��ddd��n#1swxYwY�r|����ndS)NrS)ry�zip�subTest�
doCleanups)
r^r_r4�values�subtest_kwargsr��	arg_names�
arg_valuesr��single_params
     �����rUr	z,subTests.<locals>.decorator.<locals>.wrapperSs����$�
&�
&���'�$�Y�F�!%�c�)�V�&<�&<�!=�!=��!�T�\�3�3�N�3�3�B�B��D��A��A�A�A��A�.�A�A�A�B�B�B�B�B�B�B�B�B�B�B����B�B�B�B��&��O�O�%�%�%��
&�
&s�A�A	�A	)�
isinstancer��	TypeErrorr
r)r�r	r�rrrs` ����rUrzsubTests.<locals>.decoratorPso�����d�D�!�!�	Q��O�P�P�P�	���	�	�	&�	&�	&�	&�	&�	&�	&�	&�
�	�	&��rT)rr��replacer�r�r�)rrr�rrs``` @rU�subTestsrGs���������L��)�S�!�!� ��%�%�c�#�.�.�4�4�6�6�	��y�>�>�Q����L��z�"�"�J�
�
�
�
�
�
�
�
��rTc'�ZK�	ddl}t||��}|�|��}|D]!}	|�||��n#Y�xYwn#t$r�dx}}YnxYw	dV�|r|r|�||��dSdSdS#|r|r|�||��wwwxYwr;)�localer��	setlocaler�)�catstr�localesr	�category�orig_locale�locs      rUr9r9ds&������
�
�
��6�6�*�*���&�&�x�0�0���	�	�C�
�� � ��3�/�/�/����
������������
�$�#�#��������4�
�����	4�k�	4����X�{�3�3�3�3�3�	4�	4�	4�	4��6�	4�k�	4����X�{�3�3�3�3�	4�	4���s"�)A�A
�
A�A$�(B�B*c����fd�}|S)Nc�F�����fd�}�j|_�j|_|S)Nc���	tj}n"#t$rtjd���wxYwdt
jvrt
jd}nd}�t
jd<|��	�|i|��|�t
jd=n|t
jd<tj��S#|�t
jd=n|t
jd<tj��wxYw)Nztzset required�TZ)r��tzsetr�rqr�r��environ)r_�kwdsr�orig_tzr��tzs    ��rU�innerz-run_with_tz.<locals>.decorator.<locals>.inner�s����
:��
����!�
:�
:�
:��'�(8�9�9�9�
:�����r�z�!�!��*�T�*�����!�B�J�t���E�G�G�G�
��t�T�*�T�*�*��?��
�4�(�(�'.�B�J�t�$��
������	�?��
�4�(�(�'.�B�J�t�$��
�������s��/�/B)�)4C)rP�__doc__)r�rrs` �rUrzrun_with_tz.<locals>.decorator�s;����	�	�	�	�	�	�,�������
��rTrS)rrs` rUrBrB�s$��������4�rTi�r���limit�returnc�p�dttdtzd�}tjd|tjtjz��}|�t
d|�����tt|�	d����||�	d���
��z��S)Nr)�k�m�g�tz(\d+(?:\.\d+)?) (K|M|G|T)b?$zInvalid memory limit: r�r�)�_1M�_1G�re�match�
IGNORECASE�VERBOSEr�r��float�groupr)r�sizesr!s   rU�_parse_memlimitr-�s���
�
�
�
�#�X�	
�
�E�	��0�%�����+�	-�	-�A��y��;�%�;�;�<�<�<��u�Q�W�W�Q�Z�Z� � �5�������)9�)9�);�);�#<�<�=�=�=rTc��t|��}|tdz
krtd���|at	|t
��}|adS)Nr�z+Memory limit {limit!r} too low to be useful)r-�_2Gr��real_max_memuse�min�MAX_Py_ssize_tr)r�memlimits  rUr?r?�sL���u�%�%�H��#��'����F�G�G�G��O��8�^�,�,�H��J�J�JrTc�"�eZdZ	d�Zd�Zd�ZdS)�_MemoryWatchdogc�l�d�tj�����|_d|_dS)Nz/proc/{pid}/statm)�pidF)r�r��getpid�procfile�startedrbs rUr]z_MemoryWatchdog.__init__�s+��+�2�2�r�y�{�{�2�C�C��
�����rTc��ddl}	t|jd��}n_#t$rR}|jd�|��t��tj�	��Yd}~dSd}~wwxYwddl
}|5td��}|�tj
|g||j���|_ddd��n#1swxYwYd|_dS)Nr�rz!/proc not available for stats: {}zmemory_watchdog.py)r�r�T)rr�r9r�rr�rr�r��flush�
subprocessr;�Popen�
executable�DEVNULL�mem_watchdogr:)r^rror�r>�watchdog_scripts      rU�startz_MemoryWatchdog.start�sS������	��T�]�C�(�(�A�A���	�	�	��H�M�=�D�D�Q�G�G�(�
*�
*�
*��J�������F�F�F�F�F�����		����	����
�	L�	L�&�';�<�<�O� *� 0� 0�#�.�/�1R�78�8B�8J�!1�!L�!L�D��	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L����	L�	L�	L�	L�
����s'��
A8�AA3�3A8�>C�C�Cc�|�|jr4|j���|j���dSdSrZ)r:rB�	terminate�waitrbs rU�stopz_MemoryWatchdog.stop�sF���<�	%���'�'�)�)�)���"�"�$�$�$�$�$�	%�	%rTN)rPrQrRr]rDrHrSrTrUr5r5�sF�������������$%�%�%�%�%rTr5c�����	���fd�}|S)Nc�6�������fd����_��_�S)Nc�����j}�j}tsd}n|}ts�s+t||zkrtjd||zdzz���trat
rZt
��t
d�||zdz�����t��}|�	��nd}	�||��|r|�
��SS#|r|�
��wwxYw)Ni�'not enough memory: %.1fG minimum needed�@z* ... expected peak memory use: {peak:.1f}G)�peak)r��memuser0rqr�rr�r�r5rDrH)r^r�rO�maxsize�watchdog�dry_runror	s     ���rUr	z.bigmemtest.<locals>.decorator.<locals>.wrapper�s)����<�D��^�F�"�
������ �
5��
5�#�g��&6�6�6��'�=��f�}�	�2�4�5�5�5��
 �7�
 ������B��v�4�&�=�I�#>�v�?�?�A�A�A�*�,�,����� � � � ���
$��q��w�'�'��$��M�M�O�O�O�O�$��8�$��M�M�O�O�O�O�$���s�;C�C7)r�rO)ror	rRrOr�s`@���rUrzbigmemtest.<locals>.decorator�s=�����	$�	$�	$�	$�	$�	$�	$�:�������rTrS)r�rOrRrs``` rUrr�s6������ � � � � � � �B�rTc���	�fd�}|S)Nc����ttkrItdkrtdkrtjd���tjdtdzz����|��S)Nl����lz-not enough memory: try a 32-bit build insteadrLrM)rr2rqr�)r^ros �rUr	z!bigaddrspacetest.<locals>.wrapperst�����&�&���*�*�z�U�/B�/B��'�C�E�E�E��'�=�%��3�5�6�6�6��1�T�7�7�NrTrS)ror	s` rUrrs&���:�
�
�
�
�
��NrTc��|SrZrS)r�s rU�_idrV(s���JrTc���|dkr,t��stjtj��St	|��rt
Stjd�|����S)Nr�zresource {0!r} is not enabled)r�rqr�r�rrVr�r�s rU�requires_resourcerX+sb���5���!2�!4�!4���}�.�5�6�6�6��8�$�$�O��
��}�<�C�C�H�M�M�N�N�NrTc�6�	td���|��S)NT)�cpython)�impl_detail�r�s rUrr3s$���%�;�t�$�$�$�T�*�*�*rTc��tdi|��rtS|�bt|��\}}|rd}nd}t|�����}|�d�|����}tj|��S)Nz*implementation detail not available on {0}z%implementation detail specific to {0}z or rS)	r4rV�
_parse_guardsrw�keysr�r�rqr�)r[�guards�
guardnames�defaults    rUr[r[9s����"�"�6�"�"���
�
�{�+�F�3�3��
�G��	:�>�C�C�9�C��J�O�O�-�-�.�.�
��j�j����Z�0�0�1�1���=����rTc�j�|sddidfSt|�����d}||fS)NrZTFr)�listr�)r`�is_trues  rUr^r^FsA���*��D�!�5�)�)��6�=�=�?�?�#�#�A�&�G���K� � rTc�r�	t|��\}}|�tjj|��SrZ)r^r�r��implementationr�)r`rbs  rUr4r4Ps4���$�F�+�+�O�F�G��:�:�c�(�-�w�7�7�7rTc�v��	ttd��s�Stj����fd���}|S)N�gettracec���tj��}	tjd���|i|��tj|��S#tj|��wxYwrZ)r�ri�settrace)r_r4�original_tracer�s   �rUr	zno_tracing.<locals>.wrapper`s^��� �\�^�^�N�
-���T�"�"�"��t�T�,�V�,�,���^�,�,�,�,����^�,�,�,�,���s�A�A)r�r�r
r)r�r	s` rU�
no_tracingrm[sR���O��3�
�#�#����	���	�	�	-�	-�	-�	-�
�	�	-��rTc�<�	tt|����SrZ)rmrr\s rU�
refcount_testroks����l�4�(�(�)�)�)rTc��dSrZrSrSrTrU�_check_docstringsrq|s��6�6rT�WITH_DOC_STRINGSztest requires docstringsc��tj�tj���tj� tj���dSdSrZ)r�r�r=r�rSrTrU�flush_std_streamsrt�sH��
�z���
������
�z���
���������rTc��t��tj}|���D]}t	d|��|����|���dS)NzWarning -- r�)rt�
print_warning�orig_stderr�
splitlinesr�r=)r[�stream�lines   rUrvrv�s_������
�
&�F���� � �1�1��
�"�D�"�"��0�0�0�0�0�
�L�L�N�N�N�N�NrTc��	ttd��rttd��sdStsdS		tjdtj��\}}n#t
$rYdSwxYw|dkrdSt
d|����da�R)N�waitpid�WNOHANGTr�rz%reap_children() reaped child process )r�r�r#r|r}r�rv�environment_altered)r7�statuss  rUr8r8�s����
�B�	�"�"��w�r�9�'=�'=����
#����#�	��*�R���4�4�K�C�����	�	�	��E�E�	�����!�8�8��E��C�c�C�C�D�D�D�"��#s�"A�
A*�)A*c#�K�	t||��rOt||��}t|||��	|V�t|||��dS#t|||��wxYwt|||��	dV�t||��rt||��dSdS#t||��rt||��wwxYwrZ)r�r�r��delattr)r��attr�new_val�real_vals    rUr=r=�s�����
��s�D���
#��3��%�%����T�7�#�#�#�	)��N�N�N��C��x�(�(�(�(�(��G�C��x�(�(�(�(������T�7�#�#�#�	#��E�E�E��s�D�!�!�
#���T�"�"�"�"�"�
#�
#��w�s�D�!�!�
#���T�"�"�"�"�
#���s�A
�
A �5B�#Cc#�K�	||vr#||}|||<	|V�|||<dS#|||<wxYw|||<	dV�||vr||=dSdS#||vr||=wxYwrZrS)r��itemr�r�s    rUr:r:�s�����
��s�{�{��t�9����D�	�	!��N�N�N� �C��I�I�I���C��I� � � � ���D�	�	��E�E�E��s�{�{���I�I�I��{��t�s�{�{���I�
�
�
�
s�!�(�A�	A	c�4�	ddl}|���Sr;)r>�_args_from_interpreter_flags�r>s rU�args_from_interpreter_flagsr�s%��2������2�2�4�4�4rTc�4�	ddl}|���Sr;)r>�"_optim_args_from_interpreter_flagsr�s rU�!optim_args_from_interpreter_flagsr�s%��+������8�8�:�:�:rTc��eZdZdZd�Zd�ZdS)r>)r[�messagec��	d}|D]:}||}|�|��}|�|||��sd}n�;|S)NTF)r��match_value)r^�dr4r�r �v�dvs       rU�matcheszMatcher.matchesse��	����	�	�A��q�	�A����q���B��#�#�A�r�1�-�-�
�����
��
rTc���	t|��t|��krd}n?t|��tus	||jvr||k}n|�|��dk}|S)NFr)r�r��_partial_matches�find)r^r r�r�r�s     rUr�zMatcher.match_value'sh��	���7�7�d�2�h�h����F�F�
�"�X�X�S�
 �
 �A�T�-B�$B�$B��2�g�F�F��W�W�Q�Z�Z�1�_�F��
rTN)rPrQrRr�r�r�rSrTrUr>r>s8������)�����"
�
�
�
�
rTr>c��	ddl}t�Itjdkr7|���dkrtj��jdkrdandatrtj	d��|��n|S)NrrU�cp65001rTFz!buggy MSVC UCRT strptime/strftime)
r	�_buggy_ucrtr�r��getencodingr��	localtime�tm_zonerqr�)r�r	s  rUr+r+5s�����M�M�M����<�7�"�"��"�"�$�$�	�1�1��� � �(�B�.�.��K�K��K�GR�\�=�8�=�<�=�=�d�C�C�C�X\�\rTc�f�eZdZ	d
d�Zejdkrd�Znd�Zd�Zd�Zd�Z	d	d
�d�Z
d	d
�d�ZdS)�
PythonSymlinkNc��ddlm}|ptj�|��|_g|_tj�tj	��|_
g|_d|_|�
��dS)Nr�)�TESTFN)r�r�r�r��abspath�link�_linked�realpathr�r@�real�
_also_link�_env�_platform_specific)r^r�r�s   rUr]zPythonSymlink.__init__Lst��%�%�%�%�%�%��3�B�G�O�O�F�3�3��	�����G�$�$�S�^�4�4��	������	����!�!�!�!�!rTrUc
�b�ddl}ddl}tj�|j��r>tj�|j��s|�d��|_|�tj	��}tj�
|��}tj�
|j��}|j�
|tj�|tj�|����f��|�tj�|�|��d����D]Y}|j�
|tj�|tj�|����f���Zd�tjD��|_tj�
|j��|jd<t'j��rt*|jd<dSdS)Nrzvcruntime*.dllc�\�i|])}|���tj|����*SrS)�upperr��getenv)rtr s  rU�
<dictcomp>z4PythonSymlink._platform_specific.<locals>.<dictcomp>os*��E�E�E�Q������B�I�a�L�L�E�E�ErT�
PYTHONHOME�
PYTHONPATH)�glob�_winapir�r��lexistsr�rm�GetModuleFileNamer��	dllhandle�dirnamer�r�r�r��basename�escaperr�r!�is_python_buildrx)r^r�r�r��src_dir�dest_dir�runtimes       rUr�z PythonSymlink._platform_specificYs����K�K�K��N�N�N��w���t�y�)�)�
9�"�'�.�.���2K�2K�
9�$�5�5�a�8�8��	��+�+�C�M�:�:�C��g�o�o�c�*�*�G��w���t�y�1�1�H��O�"�"������X�r�w�'7�'7��'<�'<�=�=�$�
�
�
� �9�9�R�W�\�\�$�+�+�g�2F�2F�HX�%Y�%Y�Z�Z�
�
����&�&���G�L�L��2�7�+;�+;�G�+D�+D�E�E�(�����
F�E�"�*�E�E�E�D�I�&(�g�o�o�d�i�&@�&@�D�I�l�#��(�*�*�
5�*4��	�,�'�'�'�
5�
5rTc��dSrZrSrbs rUr�z PythonSymlink._platform_specificts���DrTc��tj|j|j��|j�|j��|jD]4\}}tj||��|j�|���5|SrZ)r��symlinkr�r�r�r�r�)r^r�r�s   rU�	__enter__zPythonSymlink.__enter__wsu��
�
�4�9�d�i�(�(�(�����D�I�&�&�&��/�	&�	&�J�D�$��J�t�T�"�"�"��L����%�%�%�%��rTc���|jD]X}	tj|���#t$r4}tr#td�||����Yd}~�Qd}~wwxYwdS)Nzfailed to clean up {}: {})r�r��remove�IOErrorrr�r�)r^�exc_type�	exc_value�exc_tbr��exs      rU�__exit__zPythonSymlink.__exit__s����L�	H�	H�D�
H��	�$�������
H�
H�
H��H��5�<�<�T�2�F�F�G�G�G����������
H����	H�	Hs� �
A�*A�Ac��ddl}|g|�}|�||j|j|���}|���}|j|kr~t
rPt
t|d����t
t|d��tj	���td�|j�����|S)Nr)r�r�r.r�r�z'unexpected return code: {0} (0x{0:08X}))r>r?�PIPE�communicate�
returncoderr��reprr�r��RuntimeErrorr�)	r^�pythonr_r.r�r>�cmd�pr<s	         rU�_callzPythonSymlink._call�s��������o��o�����S���$.�O��
�
>�
>��
�M�M�O�O���<�:�%�%��
3��d�1�Q�4�j�j�!�!�!��d�1�Q�4�j�j�s�z�2�2�2�2��9�@�@���N�N�P�P�
P��rTr)r�c�<�|�|j|d|��SrZ)r�r��r^r�r_s   rU�	call_realzPythonSymlink.call_real�s���z�z�$�)�T�4��<�<�<rTc�F�|�|j||j|��SrZ)r�r�r�r�s   rU�	call_linkzPythonSymlink.call_link�s���z�z�$�)�T�4�9�j�A�A�ArTrZ)rPrQrRr]r�r�r�r�r�r�r�r�rSrTrUr�r�Js�������=�
"�
"�
"�
"��|�w���	5�	5�	5�	5�6	�	�	����H�H�H����+,�=�=�=�=�=�+,�B�B�B�B�B�B�BrTr�c�h�	tpt}d}|r|ntj|��|��S)Nz#Not run for (non-extended) PGO task)rC�PGO_EXTENDEDrqr�)r��okr[s   rU�skip_if_pgo_taskr��s:��E�
��	 �L�B�
/�C��3�4�4�-�8�=��-�-�d�3�3�3rTrS)�ignorec���	tt|����tt|����z
}|r|t|��z}td�|D����}|S)Nc3�nK�|]0}|�d��r|�d���,|V��1dS)rh�__N)r��endswith)rtr!s  rUr�z&detect_api_mismatch.<locals>.<genexpr>�sd����F�F�a� �|�|�C�0�0�F�45�J�J�t�4D�4D�F��F�F�F�F�F�FrT)�set�dir)�ref_api�	other_apir��
missing_itemss    rUr)r)�s~�����G���%�%��C�	�N�N�(;�(;�;�M�
�%���V���$�
��F�F�=�F�F�F�F�F�M��rTc��	|�	|jf}nt|t��r|f}t|��}t	|��D]~}|�d��s||vr�t
||��}t
|dd��|vs*t|d��s/t|tj	��s|�
|���|�|j|��dS)NrhrQ)
rPrr�r�r�r�r�r��types�
ModuleType�add�assertCountEqual�__all__)�	test_caser^�name_of_module�extra�not_exported�expectedr�r�s        rUr*r*�s���%�N�� �/�,���	�N�C�	(�	(�,�(�+���5�z�z�H��F�������?�?�3���	�4�<�#7�#7���f�d�#�#���C��t�,�,��>�>��S�,�/�/�
?���U�%5�6�6�
?�
�L�L������
���v�~�x�8�8�8�8�8rTc��	ddl}n#t$rYdSwxYw|�|j|jz|jz|jz��t|d��rf|j|j	|j
fD]S}|r7|�||j��|�
||j���;|�|d���RdSdS)Nr�CrtSetReportMode)�msvcrtr=�SetErrorMode�SEM_FAILCRITICALERRORS�SEM_NOALIGNMENTFAULTEXCEPT�SEM_NOGPFAULTERRORBOX�SEM_NOOPENFILEERRORBOXr��CRT_WARN�	CRT_ERROR�
CRT_ASSERTr��CRTDBG_MODE_FILE�CrtSetReportFile�CRTDBG_FILE_STDERR)rr�r!s   rU�suppress_msvcrt_assertsr�s����
�
�
�
�����������������5� �;�<� �6�7�!�7�8�9�9�9��v�)�*�*�.��/�6�#3�V�5F�G�	.�	.�A��
.��'�'��6�+B�C�C�C��'�'��6�+D�E�E�E�E��'�'��1�-�-�-�-�
.�.�	.�	.s��
�c�$�eZdZ	dZdZd�Zd�ZdS)r@Nc�<�	tj�d��r�	ddl}n#t$rYdSwxYw|���|_|�|j|jz��t|d��r`i|_
|j|j|j
fD]D}|�||j��}|�||j��}||f|j
|<�E�n7	ddl}||_n#t$r
d|_YnwxYw|j�t	|j�|jj��|_|j�|jjd|jdf��n#t,t.f$rYnwxYwtjdkr�ddl}gd�}|�||j|j���}|5|���d}	ddd��n#1swxYwY|	���dkrt;d	d
d���|S)
Nr�rr�r�r�)z/usr/bin/defaultsr�zcom.apple.CrashReporter�
DialogType)r�r�s	developerz:this test triggers the Crash Reporter, that is intentionalrT)�endr=)r�r�r�r�r=�GetErrorMode�	old_valuer�r�r��	old_modesr�r�r�r�r�r�r�r��	getrlimit�RLIMIT_CORE�	setrlimitr�r�r>r?r�r��stripr�)
r^r��report_type�old_mode�old_filer�r>r��procr�s
          rUr�zSuppressCrashReport.__enter__s���	��<�"�"�5�)�)�7	E�
��
�
�
�
���
�
�
����
����$�0�0�2�2�D�N�������1M� M�N�N�N��v�1�2�2�	
E�!#���$*�O�$*�$4�$*�$5�$7�E�E�K� &�6�6�{�"�3� 5� 5�H�%�6�6�{�"�5� 7� 7�H�2:�H�2D�D�N�;�/�/��
%����� (��
�
���
%�
%�
%� $��
�
�
�
%�����}�(��%)�]�%<�%<�T�]�=V�%W�%W�D�N��M�+�+�D�M�,E�-.���q�0A�,B�D�D�D�D��"�G�,�����D������|�x�'�'�!�!�!�!�@�@�@��!�'�'��/9��/9��(�@�@���3�3�!�-�-�/�/��2�F�3�3�3�3�3�3�3�3�3�3�3����3�3�3�3��<�<�>�>�\�1�1��0�57�t�E�E�E�E��sC�'�
5�5�&C2�2D�D�AE-�-F�F�G'�'G+�.G+c���	|j�dStj�d��rwddl}|�|j��|jrN|j���D]6\}\}}|�||��|�	||���5dSdS|j
�E	|j
�|j
j|j��dS#ttf$rYdSwxYwdS)Nr�r)rr�r�r�r�r�rrxr�r�r�r
r	r�r�)r^�
ignore_excr�rr
rs      rUr�zSuppressCrashReport.__exit__Ms'��O��>�!��F��<�"�"�5�)�)�
	��M�M�M������/�/�/��~�
C�9=��9M�9M�9O�9O�C�C�5�K�!5�(�H��+�+�K��B�B�B��+�+�K��B�B�B�B�
C�
C�C�C��}�(���M�+�+�D�M�,E�t�~�V�V�V�V�V��"�G�,�����D�D�����)�(s�)*C�C*�)C*)rPrQrRrrr�r�rSrTrUr@r@sG�������
�I��I�@�@�@�D����rTr@c������	t����d�	�j��d�n(#ttf$rt��d���YnwxYw����fd�}|�|��t��|��dS)NFTc�R���rt�����dSt����dSrZ)r�r�)�
attr_is_local�	attr_name�object_to_patchrs����rU�cleanupzpatch.<locals>.cleanupxs9����	0��O�Y�	�:�:�:�:�:��O�Y�/�/�/�/�/rT)r��__dict__r�r�
addCleanupr�)�
test_instancerr�	new_valuerrrs ``  @@rU�patchrbs���������O�Y�'�'�'��M��#�,�Y�7�	��
�
��
�H�%�>�>�>��O�Y��=�=�	�	�	�>����0�0�0�0�0�0�0�0����W�%�%�%��O�Y�	�2�2�2�2�2s�
)�"A�
Ac#�PK�		|dd�}dV�||dd�<dS#||dd�<wxYwrZrS)�orig�saveds  rU�
patch_listr �sJ����7���Q�Q�Q���
������Q�Q�Q�����%��Q�Q�Q�����s��	%c��		ddl}|���rtjd���n#t$rYnwxYwddl}|�|��S)NrzUrun_in_subinterp() cannot be used if tracemalloc module is tracing memory allocations)�tracemalloc�
is_tracingrqr�r=�	_testcapi�run_in_subinterp)�coder"r$s   rUr%r%�s����;������!�!�#�#�	;��#�%:�;�;�
;�	;���
�
�
���
���������%�%�d�+�+�+s�0�
=�=c�����G��fd�d|��}d�|||����|�tt���t��|����dS)Nc���eZdZ��fd�ZdS)�%check_free_after_iterating.<locals>.Ac�N��d�	t���dS#t$rYdSwxYw�NT)�next�
StopIteration)r^�done�its ��rU�__del__z-check_free_after_iterating.<locals>.A.__del__�s>����D�
��R������� �
�
�
����
���s��
$�$N)rPrQrRr0)r.r/s��rU�Ar)�s3�������	�	�	�	�	�	�	�	rTr1F)�assertRaisesr-r,r��
assertTrue)r��iter�clsr_r1r.r/s     @@rU�check_free_after_iteratingr6�s�������������C�����D�	
��a�a��h���B����m�T�2�.�.�.��L�L�L��O�O�D�����rTc�d�	ddlm}m}m}m}|���}|j|��|jdkr'	|���n#|j	$rYdSwxYw|j
D]D}|r||vr�	t||��}|rn|s�|�|d���
|dcS�EdS)Nr)�	ccompilerr!�spawnri�msvc)
�	distutilsr8r!r9ri�new_compiler�customize_compiler�
compiler_type�
initialize�DistutilsPlatformError�executablesr��find_executable)�	cmd_namesr8r!r9ri�compilerr�r�s        rUrDrD�s"���>�=�=�=�=�=�=�=�=�=�=�=��%�%�'�'�H� �I� ��*�*�*����'�'�	����!�!�!�!���,�	�	�	��6�6�	�����$�
�
���	��Y�.�.���h��%�%���	�	��	��� � ��Q��(�(�0��q�6�M�M�M�1�
�
s�A�
A!� A!c���d}trG||krAt�1ddl}|�ddg�����dkatr|}tj|��S)Ng�h㈵��>r�getpropzro.kernel.qemu�1)r1�_is_android_emulatorr>�check_outputrr�r6)�interval�minimum_intervalr>s   rUr6r6�s}�����(�h�!1�1�1��'�����$.�$;�$;� )�+;�<�%>�%>�>C�e�g�g��%N� ��	(�'�H�� ��*�*�*rTc#�K�ddl}tj���}|���}	|���dV�|r|�|d���dSdS#|r|�|d���wwxYw)NrT)r��all_threads)�faulthandlerr��
__stderr__�fileno�
is_enabledr�r�)rN�fdrQs   rU�disable_faulthandlerrS�s���������


��	�	�	 �	 �B��(�(�*�*�J�;�������
�����	;����R�T��:�:�:�:�:�	;�	;��:�	;����R�T��:�:�:�:�	;���s�A/�/Bc�"�eZdZ	d�Zd�Zd�ZdS)�SaveSignalsc���ddl}||_|���|_dD]>}	t||��}n#t$rY� wxYw|j�|���?i|_dS)Nr)�SIGKILL�SIGSTOP)�signal�
valid_signals�signalsr�r�r��handlers)r^rY�signame�signums    rUr]zSaveSignals.__init__s����
�
�
�����+�+�-�-���-�	(�	(�G�
� ���1�1����!�
�
�
���
�����L����'�'�'�'���
�
�
s�;�
A�Ac�h�|jD])}|j�|��}|��||j|<�*dSrZ)r[rY�	getsignalr\�r^r^�handlers   rU�savezSaveSignals.save
sK���l�		,�		,�F��k�+�+�F�3�3�G����$+�D�M�&�!�!�		,�		,rTc�z�|j���D] \}}|j�||���!dSrZ)r\rxrYras   rU�restorezSaveSignals.restoresH��#�}�2�2�4�4�	0�	0�O�F�G��K���v�w�/�/�/�/�	0�	0rTN)rPrQrRr]rcrerSrTrUrUrU�sF����������
,�
,�
,�0�0�0�0�0rTrUc��ddl}|jSr;)r$�
WITH_PYMALLOC)r$s rU�
with_pymallocrhs�������"�"rTc��eZdZ	d�Zd�ZdS)�
_ALWAYS_EQc��dSr+rS�r^�others  rU�__eq__z_ALWAYS_EQ.__eq__'����trTc��dS�NFrSrls  rU�__ne__z_ALWAYS_EQ.__ne__)����urTN)rPrQrRrnrrrSrTrUrjrj#s7��������������rTrjc�"�eZdZ	d�Zd�Zd�ZdS)�	_NEVER_EQc��dSrqrSrls  rUrnz_NEVER_EQ.__eq__2rsrTc��dSr+rSrls  rUrrz_NEVER_EQ.__ne__4rorTc��dS)Nr�rSrbs rU�__hash__z_NEVER_EQ.__hash__6s���qrTN)rPrQrRrnrrryrSrTrUruru.sF�����������������rTruc��eZdZ	d�Zd�ZdS)�_LARGESTc�,�t|t��SrZ)rr{rls  rUrnz_LARGEST.__eq__@s���%��*�*�*rTc��dSrqrSrls  rU�__lt__z_LARGEST.__lt__BrsrTN)rPrQrRrnr~rSrTrUr{r{;s7�������+�+�+�����rTr{c��eZdZ	d�Zd�ZdS)�	_SMALLESTc�,�t|t��SrZ)rr�rls  rUrnz_SMALLEST.__eq__Ls���%��+�+�+rTc��dSrqrSrls  rU�__gt__z_SMALLEST.__gt__NrsrTN)rPrQrRrnr�rSrTrUr�r�Gs7�������,�,�,�����rTr�c�$�	ddl}|jjSr;)�asyncio.events�events�_event_loop_policy)�asyncios rU�maybe_get_event_loop_policyr�Ss��N������>�,�,rTc��||}}ddl}|���5}|���dz}t|d��|_|�|��}|dz
|z|z}||z}	||	z
}
||
z
}||dz
z|dz
|z|zz|	d|	z
zz}t
|��t
|�����fcddd��S#1swxYwYdS)Nrr��r�)�decimal�localcontext�
bit_length�max�prec�Decimalr*�sqrt)
�nbins�nballsr�r r��ctx�bitsrp�p1empty�	meanempty�occupied�
collisions�vars
             rU�collision_statsr�`s6���&�q�A�$�N�N�N�	�	�	�	�	�4�3��|�|�~�~��!���t�R�=�=���
�_�_�Q�
�
����F�b�=�Q�&����K�	��y�=����\�
��"�Q�$�i�"�Q�$���Q��&��a�)�m�)D�D���Z� � �%����
�
�"3�"3�3�4�4�4�4�4�4�4�4�4�4�4�4����4�4�4�4�4�4s�B(C�C�Cc�(�eZdZ	d�Zd�Zd�Zd�ZdS)�catch_unraisable_exceptionc�"�d|_d|_dSrZ)�
unraisable�	_old_hookrbs rUr]z#catch_unraisable_exception.__init__�s���������rTc��||_dSrZ)r�)r^r�s  rU�_hookz catch_unraisable_exception._hook�s��%����rTc�J�tj|_|jt_|SrZ)r��unraisablehookr�r�rbs rUr�z$catch_unraisable_exception.__enter__�s���+���!�Z����rTc�,�|jt_|`dSrZ)r�r�r�r�)r^�exc_infos  rUr�z#catch_unraisable_exception.__exit__�s��!�^����O�O�OrTN)rPrQrRr]r�r�r�rSrTrUr�r��sU�������0���%�%�%�
���
����rTr�r�c	��	tjdkr�ddl}|�t}t	j��}t
|d���D],}tj|tj��\}}|dkrno�-	tj	||j
��tj|d��n#t$rYnwxYwt	j��|z
}td|�d|d�d����ntj|d��\}}tj
|��}	|	|krtd|�d	|	�d
|�d����||krtd|�d
|�����dS)N�ntrF��errorzprocess z is still running after �.1fz secondsz exited with code z, but exit code z is expectedzpid z != pid )r�r�rYrLr��	monotonic�sleeping_retryr|r}�killrWr��AssertionError�waitstatus_to_exitcode)
r7�exitcoder�rY�
start_timerh�pid2r�dt�	exitcode2s
          rU�wait_processr��s���	�
�w�$����
�
�
��?�"�G��^�%�%�
���u�5�5�5�	<�	<�A��:�c�2�:�6�6�L�D�&��q�y�y����
����V�^�,�,�,��
�3��"�"�"�"���
�
�
���
������!�!�J�.�B� �";�C�";�";�*,�!:�";�";�";�<�<�
<���z�#�q�)�)���f��)�&�1�1�I��H����E��E�E�y�E�E�.6�E�E�E�F�F�	F��s�{�{��7�D�7�7�#�7�7�8�8�8��{s�1/B!�!
B.�-B.c���	ddlm}|d��|d��}tjdkrB	|�d���dS#t
$r}t
jd|�����d}~wwxYwdS)Nr�)�
import_module�_multiprocessingzmultiprocessing.synchronize�linux)r�z broken multiprocessing SemLock: )�
import_helperr�r�r��Lockr�rqr�)r��synchronize�excs   rU�*skip_if_broken_multiprocessing_synchronizer��s����
-�,�,�,�,�,��M�$�%�%�%� �-� =�>�>�K�
�|�w���	P�
�����&�&�&�&�&���	P�	P�	P��#�$N�s�$N�$N�O�O�O�����	P����
�s�A�
A-�A(�(A-c��	|j}|j}|dkr|�d|��}n|�}dtj|���d�}|jt
||g|�Ri|��dS)N�builtinsr�zcannot create 'z' instances)rQrPr&r�r�r)r��tpr_r�modr��qualnamer[s        rUr,r,�s����

�-�C�
�;�D�
�j����?�?�D�?�?����9��
<�B�I�h�/�/�
<�
<�
<�C��H��y�#�r�A�D�A�A�A�D�A�A�A�A�ArTc��		ddl}|���}nN#ttf$r:}	d}t	j��}|�|dz
}|j}|�d}n#d}wxYwYd}~nd}~wwxYwt|dz
d��S)Nrr�)rM�get_recursion_depthr=�RecursionErrorr��	_getframe�f_backr�)rM�depthr��frames    rUr�r�s����
� � � � �!�5�5�7�7������(�
�
�
�	��E��M�O�O�E��#���
������#�
�E�E��D�E�L�L�L�L�E�E�E�E�E�����
�����u�q�y�!���s&��A'�%A�A"�A�A"�"A'c��	tj��}t��}	ddlm}n#t
$rd}YnwxYw|rt
||z
dz
d��S||z
S)Nr)�USE_STACKCHECKFr�)r��getrecursionlimitr�r$r�r=r�)rr�r�s   rU�get_recursion_availabler�s����

�!�#�#�E��!�!�E��,�,�,�,�,�,�,�����������������5�5�=�1�$�a�(�(�(��u�}�s�+�:�:c#�K�	tj��}	tj|��dV�tj|��dS#tj|��wxYwrZ)r�r��setrecursionlimit)r�original_limits  rU�set_recursion_limitr�/sd����1��*�,�,�N�.���e�$�$�$�
������n�-�-�-�-�-����n�-�-�-�-�����A�A�dc��	|dkrtd���t��}t|dz
d��}||z}t|��S)Nrz-max_depth must be at least 4, got {max_depth}r�)r�r�r�r�)�	max_depthr�rs   rUr<r<9sW���
�1�}�}��H�I�I�I��!�!�E����	�1���E��I��E��u�%�%�%rTr^�likec
��t��}tjdt||dt	|���d�z���|S)Nr��
(?#support�))r
r^r�)�objectr�filterwarnings�DeprecationWarning�id)r^r��tokens   rU�ignore_deprecations_fromr�FsO���H�H�E����#���1�R��Y�Y�1�1�1�1�	�����LrT�tokensc��|std���g}td�|D����}tjD]m\}}}}}|dkrE|tur<t|tj��r|j}n|pd}|�	|��r�S|�
|||||f���ntj|kr&|tjdd�<tj��dSdS)Nz<Provide token or tokens returned by ignore_deprecations_fromc3�<K�|]}dt|���d�V��dS)r�r�N)r�)rtr�s  rUr�z-clear_ignored_deprecations.<locals>.<genexpr>Us4����D�D�E�/�2�e�9�9�/�/�/�D�D�D�D�D�DrTr�r)r�r�r�filtersr�rr&�Patternrwr�r��_filters_mutated)	r��new_filtersr��actionr�r
r^r|r[s	         rU�clear_ignored_deprecationsr�Ps���Y��W�X�X�X��K��D�D�V�D�D�D�D�D�H�5=�5E�H�H�1����6�6��X���(�.@�"@�"@��'�2�:�.�.�
$��o����m����|�|�H�%�%�
�����F�G�X�v�v�F�G�G�G�G���;�&�&�)��������!�#�#�#�#�#�'�&rTc��	ddl}n%#t$rtjdd��cYSwxYw	ddl}n#t$rd}YnwxYwtj|d��S)NrTzvenv: ensurepip requires zlibzvenv: pip requires ctypes)r<r=rqr�r�r>)r<r�s  rU�requires_venv_with_pipr�es���F��������F�F�F���t�%D�E�E�E�E�E�F����
��
�
�
�
����������������v�'B�C�C�Cs��)�)�2�A�A�gettotalrefcountr�c#�K�	|dkrtd���tj��}||z}	dV�tj��|krn�|r5tj��|z
}d|d�d�}|r|�d|��}t|���dS)Nrz!timeout must be greater than zeroTz	timeout (r�z	 seconds)r�)r�r�r�r�)r��err_msgr�r��deadliner�r[s       rU�
busy_retryr�zs������*�!�|�|��<�=�=�=���!�!�J��G�#�H��
�����>���x�'�'��	�
�"�
�^�
�
�
�
*��+�"�+�+�+�+���	&��%�%�G�%�%�C��S�!�!�!�"�"rTg{�G�z�?g�?)�
init_delay�	max_delayr�c#�K�	|}t|||���D]-}dV�tj|��t|dz|��}�.dS)Nr�r�)r�r�r�r1)r�r�r�r�r��delayrhs       rUr�r��sh�����0
�E�
����
6�
6�
6�*�*��
�����
�5�����E�A�I�y�)�)���	*�*rTc#�K�	tj��}	tj|��dV�tj|��dS#tj|��wxYwrZ)r��get_int_max_str_digits�set_int_max_str_digits)�
max_digits�currents  rU�adjust_int_max_str_digitsr��sd����H��(�*�*�G�,��"�:�.�.�.�
�����"�7�+�+�+�+�+���"�7�+�+�+�+���r�z.git�__pycache__c�~�t}tj�|��dkr|ddhz}n
d|vr|dhz}|S)N�Doc�build�venv�Modules)� _BASE_COPY_SRC_DIR_IGNORED_NAMESr�r�r�)r��names�ignoreds   rU�copy_python_src_ignorer�s_��.�G�	�w�������&�&����	
�	
���
�e�	�	���
�	
���NrT�uname�s390xzskipped on s390xc�@�	d�tdd��D��dgzS)Nc�,�g|]}t|����SrS)�chr)rt�cs  rUrvz)control_characters_c0.<locals>.<listcomp>�s��.�.�.�q�C��F�F�.�.�.rTr� �)�rangerSrTrU�control_characters_c0r�s.���/�.�E�$��-�-�.�.�.�&��9�9rTrZ)r�)r9)rA)rD)rG)rR)r)T)NrSrS)F)rS)r�)�rPr=�
contextlib�dataclassesr
r�r&r�r�r!r�r�rqrr$rr�rIrJrKrLr�r�r��__file__�TEST_SUPPORT_DIRrlrx�	REPO_ROOTr�r	r
rgrr�rr'r(rrrrr0�junit_xml_listrr�r
rr�r�rrr�r�rrrrr-r.�HAVE_ASAN_FORK_BUGr0r6r�
SOCK_MAX_SIZEr>r*�
__getformat__r�rr rrrrPrT�requires_legacy_unicode_capir�r/r0r�r1r5r2r3r!r"r#r$r%r&�has_strftime_extensions�strftimer��
TEST_HTTP_URLrCr�r�r�rir;rArr7�contextmanagerr�rrrr�r�r�r�r�r�r�r�r�r�r�r�rr9rBr$r%r/�_4GrPr2r�r�r-r?r5rrrVrXrr[r^r4rmrorqr"�MISSING_C_DOCSTRINGSr�HAVE_DOCSTRINGS�requires_docstringsrtrvr�rwr~r8r=r:r�r�r�r>r�r+r�r�r)r*rr@rr r%r6rDrHr6rSrUrhrjrErurF�total_orderingr{rGr�rHr��	hash_info�width�	NHASHBITSr�r�r�r�r,r�r�r�r<r�r�r��Py_DEBUGr�r�r��	frozensetrrr�r�machinerMrdrrSrTrU�<module>r*sj��=��~���
�+�F�
G�
G�G�������������	�	�	�	�	�	�	�	�����
�
�
�
���������������������!�/�/�/�/�/�/�/���!�!�!� ����!����#�#�#��^�����
����7�?�?�2�7�?�?�8�#<�#<�=�=������ 0�1�1�
�
�W�_�_�]�
+�
+�
��G�O�O�J�'�'�	�5�5�5�5�5�I�5�5�5����������=�=�=�=�=�J�=�=�=�)�)�)�)�)�E�)�)�)������X�&����������$������
�
�
�������
�����*�*�*�
�
�
�"K$�K$�K$�Z>�>�>�	7�	7�	7�	7��������6:�:�:�8�8�8����:
/�
/�
/�
/� %�U�u������6)�e�E�e�)�)�)�)�)�%�_�T�2�2�2��������$$�
�%�
�(�H�'�	����!�!�,�,�V�4�4�$�&�&��-�-�-�-�-�-�-�-�,�,�,�,�-�-�-�-�1�1�1�:�:�:�:� 3�x�2�3H�7� 9� 9���l�g�%�
��L�#�#�F�+�+�	�
�W�S�.�
/�
/�
��<�+�+�+�%/�>�!�!�Y�J�J��J����,�
�

�,�&�
 ���7�2�v�&�&�L�}�+<�L�W���O�O�O�+�*�:�7�{��V�V�V�
'�&�6�w�;��&+�
<�
<�
<�
<�
<� ���<�7���
�"/�$�-��"6�"6�%�"?�����
�
�
���
����
,�
���������]�F�3�3�
����$����&���	1�$�t�	1�	1�	1�	1�	1�41�41�41�n��	/�	/���	/�%�%�%�%�%�%�
$�
$�
$����"�������%�%�%�B�B�B�$��	
��
�7�3������W�n�G�
�F��S�=��3�3�3�4�4�4�
����(�(�(�8=������:��4�4���4�:���F��
�S�j���#�g���#�g�����>�3�>�3�>�>�>�>�	��	��	�	�	�	�%�%�%�%�%�%�%�%�B.�.�.�.�`
�
�
�$���O�O�O�+�+�+�����!�!�!�8�8�8�
�
�
� *�*�*�"7�7�7�*�)�+�+�I����/�I�4�I�4�5G�H�H�H��%�,�D�8�,�+�+��*�h�)�/�*D�F�F�������� �J�
����#�#�#�<��#�#���#�<�������<5�5�5�;�;�;������f����D��]�]�]�*OB�OB�OB�OB�OB�OB�OB�OB�d4�4�4�79������@B� �89�89�89�89�v.�.�.�.�*]�]�]�]�]�]�]�]�@3�3�3�D�������,�,�,�(����&+-�����@��+�+�+���;�;���;�"$0�$0�$0�$0�$0�$0�$0�$0�N#�#�#�
��������
�J�L�L�	�	�	�	�	�	�	�	�	��9�;�;��
�������������(�*�*��
�������������9�;�;��-�-�-�
�M��	�4�4�4�D)�)�)�)�)�)�)�)�X,0�-9�-9�-9�-9�-9�^P�P�P�2
B�
B�
B����.���&��.�.���.�&�&�&�&��S��3��6�����$��$�4�$�$�$�$�*
D�
D�
D�$�7�3�*�+�+��'"�$�'"�'"�'"�'"�'"�T*�#(�C�t�*�*�*�*�*�D��,�,���,�$-�9�
��	.�$�$� ����& ������G� 4� 4� V������9K�w�9V� 2�4�4�
�:�t�C�y�:�:�:�:�:�:s$�A�A�A�J�J!� J!