Your IP : 216.73.216.213


Current Path : /opt/alt/python312/lib64/python3.12/test/support/__pycache__/
Upload File :
Current File : //opt/alt/python312/lib64/python3.12/test/support/__pycache__/__init__.cpython-312.opt-2.pyc

�

�#�j�O���
�	edk7red��ddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZgd�ZdZdZdZdZej*j-ej*j/e��Zej*j-e�Zej*j-e�Zej*j-e�ZGd	�d
e�ZGd�de�ZGd
�de�Z Gd�de�Z!Gd�dejD�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#�Z9ddddd$�d%�Z:d�ddddd$�d&�Z;e:d'�(�Z<d)�Z=d*�Z>d+Z?d,Z@ej�eBj�d-�j�d.�d/�ZEd�d0�ZFd�d1�ZGd�d2�ZHd�d3�ZId4�ZJd�d5�ZKd6�ZLe	j�d7k(ZNe	j�j�d8�ZOePe	d9�ZQe	j�d:vreQrd;nd<ZRndZRe	j�d=k(ZSe	j�d>k(ZTe	j�d?vZUeUxse	j�d@k(ZVePedA�xreSxseTxseUZWdB�ZXeSxseTxseUZYdC�ZZeSxseTZ[ddD�dE�Z\dZ]e	j�d7k7r	ej�dF�dFk7Z]dGZ`dZadZbej*j�edH�ZddI�Zed�dJ�ZfdK�ZgdLehdMeiehejffdN�Zkd�dddO�dP�ZldQ�Zmej�dR��ZodS�ZpdT�ZqdU�ZrdV�Zsej�dW��ZtdX�ZudY�ZvdZZwd[ZxePe	d\�rd]ewzZwd^Zxewd_zZyd`�Zzda�Z{db�Z|dcZ}ddZ~de�Zddf�dg�Z�ej�dh��Z�di�Z�dj�Z�dkZ�dle�zZ�dme�zZ�dne�zZ�e	�jZ�doehdMe�fdp�Z�doehdMdfdq�Z�Gdr�ds�Z�d�dt�Z�du�Z�dv�Z�dw�Z�dx�Z�d�dy�Z�dz�Z�d{�Z�d|�Z�d}�Z�d~�Z�d�Z�d��Z�e��xr%e	j�d7k7xre
�j6d��Z�e��j:duxre�Z�ej�e�d��Z�d��Z�d��Z�e	�jDe�_�da�d��Z�ej�d���Z�ej�d���Z�d��Z�d��Z�Gd��d�ej�Z�da�d��Z�Gd��d��Z�d��Z�d�d��d��Z�		d�d��Z�d�d��Z�Gd��d��Z�d��Z�ej�d���Z�d��Z�dd��d��Z�d��Z�d�d��Z�gfd��Z�da�d��Z�d��Z�ej�d���Z�Gd��d��Z�d��Z�Gd��d��Z�e��Z�Gd��d��Z�e«Z�e�j�Gd��d���Z�eūZ�e�j�Gd��d���Z�eǫZ�d��Z�e	�j��j�Z�d��Z�Gd��d��Z�dd��d��Z�d��Z�d��Z�d��Z�d��Z�ej�d���Z�d�d��Z�d�ehd�ehdMejfd��Z�d�ejdMdfd��Z�d��Z�e�j�d���Z�ej�d���Z�ePe	d��Z�d„Z�d�d'dÜdĄZ�d�d�d�d'dǜdȄZ�ej�dɄ�Z�d�Z�e�reTrd�Z�n`d�Z�n]eTrd�Z�nXePedͫr#e�j���j�d�k(rd�Z�n,e	j�j�dЫrd�Z�ne:d'�(�rd�Z�nd�Z�ePedͫxr e�j���j�d�k(Z�e�j�e�dԫZ�e�d�d�h�Z�dׄZ�d؄Z�dلZ�Gdڄd۫Z�dMe�ehfd܄Z�y#e_$rY��9wxYw)�ztest.supportz.support must be imported from the test package�N)R�
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�requires_limited_api�requires_specialization�
MS_WINDOWS�	is_jython�
is_android�
is_emscripten�is_wasi�is_apple_mobile�check_impl_detail�
unix_shell�setswitchinterval�get_pagesize�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�Py_DEBUG�EXCEEDS_RECURSION_LIMIT�C_RECURSION_LIMIT�
skip_on_s390x�
BrokenIterg$@gN@g>@g�r@c��eZdZy)rN��__name__�
__module__�__qualname__���</opt/alt/python312/lib64/python3.12/test/support/__init__.pyrrls��4r[rc�,��eZdZ	dd��fd�
Zd�Z�xZS)r	N��statsc�B��||_||_t�|�|g|���y�N)�msgr_�super�__init__)�selfrbr_�args�	__class__s    �r\rdzTestFailed.__init__qs#��������
�
����$�t�$r[c��|jSra)rb�res r\�__str__zTestFailed.__str__vs���x�x�r[)rWrXrYrdrj�
__classcell__�rgs@r\r	r	os����)-�%�
r[r	c� ��eZdZ	�fd�Z�xZS)�TestFailedWithDetailsc�H��||_||_t�|�
||||��y)Nr^)�errors�failuresrcrd)rerbrprqr_rgs     �r\rdzTestFailedWithDetails.__init__{s'������ ��
�
����f�h�e��<r[)rWrXrYrdrkrls@r\rnrnys����=�=r[rnc��eZdZy)r
NrVrZr[r\r
r
�s��(r[r
c��eZdZy)rNrVrZr[r\rr�s��r[rc�.�	|rtjSd�S)Nc��|SrarZ)�fs r\�<lambda>z$anticipate_failure.<locals>.<lambda>�s��Qr[)�unittest�expectedFailure)�	conditions r\r&r&�s���
��'�'�'��r[c�f�	|�d}t}|j|||��}|j|�|S)Nztest*)�	start_dir�
top_level_dir�pattern)�
STDLIB_DIR�discover�addTests)�pkg_dir�loader�standard_testsr~�top_dir�
package_testss      r\r'r'�sI��������G��O�O�g�29�,3�$�5�M����M�*��r[c�r�		t||�}|S#t$rtjd|�d|����wxYw)Nzobject z has no attribute )�getattr�AttributeErrorrx�SkipTest)�obj�name�	attributes   r\rr�sG��I���C��&�	�����O����3�� M�N�N�O�s��%6�Fc��|ayra)�_original_stdout)�stdouts r\rr�s���r[c�2�txstjSra)r��sysr�rZr[r\r
r
�s���)�s�z�z�)r[c��	||�S#t$r3}tdk\r$t|jj�d|����d}~wt
$rz}tdk\r>t|jj�d|���td|j�|���t
j|tj�||�cYd}~Sd}~wwxYw)N��: zre-run )
�FileNotFoundErrorr�printrgrW�OSError�os�chmod�stat�S_IRWXU)�path�funcrf�errs    r\�
_force_runr��s�����T�{������a�<��c�m�m�4�4�c�:�;�
�����a�<��c�m�m�4�4�c�:�;��4�=�=�$�7�8�
����t�|�|�$��T�{����s%��	C�.>�C�
A/B?�9C�?Cc	�D��ttd�rtjSddl}d}tjjd�r|j
�rd}�nmtjjd�r�ddl�ddl�d}d}G�fd�d�j�}�jj}|j�}|s�j��|�}�jj�}|j!||�j#|��j%|��j#|��}	|	s�j��t'|j(|z�sfd}nctjd	k(rPddl}
	|
j-d
dgdd�
�}|j.j1d�j3�}|dk7rd|�d�}	|s>	ddlm}
|
�}|j;�|j=�|j?�|t_&|t_tjS#|
j4$rd}Y�zwxYw#t@$rP}tC|�}tE|�dkDr|dddz}djGtI|�jJ|�}Yd}~��d}~wwxYw)N�resultr�winz(gui is not available on Windows IoT Corer�c���eZdZdW�jjfdW�jjfdW�jj
fgZy)�*_is_gui_available.<locals>.USEROBJECTFLAGS�fInherit�	fReserved�dwFlagsN)rWrXrY�wintypes�BOOL�DWORD�_fields_)�ctypess�r\�USEROBJECTFLAGSr��s@���#�V�_�_�%9�%9�:�$�f�o�o�&:�&:�;�"�F�O�O�$9�$9�:�<�Hr[r�z,gui not available (WSF_VISIBLE flag not set)�darwin�	launchctl�managernameT)�capture_output�checkzutf-8�Aquazmanagername=z' -- can only run in a macOS GUI sessionz*unable to detect macOS launchd job manager)�Tk�2z [...]zTk unavailable due to {}: {})'�hasattr�_is_gui_availabler��platformr��
startswith�win32_is_iotr��ctypes.wintypes�	Structure�windll�user32�GetProcessWindowStation�WinErrorr�r��GetUserObjectInformationW�byref�sizeof�boolr��
subprocess�runr��decode�strip�CalledProcessError�tkinterr��withdraw�update�destroy�	Exception�str�len�format�typerW�reason)r�r��	UOI_FLAGS�WSF_VISIBLEr��dll�h�uof�needed�resr��rcr�r��root�e�
err_stringr�s                 @r\r�r��sY���� �(�+� �'�'�'��
�F�
�|�|���u�%�(�*?�*?�*A�;��	���	 �	 ��	'�	���	���	<�f�.�.�	<��m�m�"�"���'�'�)����/�/�#�#�������&�&�(���+�+�A���L�L����M�M�#���L�L�� �	"��
��/�/�#�#��C�K�K�+�-�.�C�F�	����	!�	�	R�����m� <�/3�4� �A�B��)�)�*�*�7�3�9�9�;�K��f�$�(�K�>�)P�Q���	G�"��4�D��M�M�O��K�K�M��L�L�N� &���#)�z����#�#�#��1�,�,�	B�A�F�	B���	G��Q��J��:���#�'���_�x�7�
�3�:�:�4��7�;K�;K�;E�G�F��		G�s+�=?H/�=I�/I�I�	J�AJ�Jc�(�	tduxs|tvSra)r��resources r\rrs���
�D� �=�H�
�$=�=r[c��	t|�s|�d|z}t|��|dvrtstd��|dk(r$t�sttj��yy)Nz"Use of the %r resource not enabled>�network�urlfetchzNo socket support�gui)rrr$r�r�)r�rbs  r\rr$sg��J��x�(��;�6��A�C��S�!�!��*�*�3E��0�1�1��5��!2�!4��.�5�5�6�6�"5�r[c���ddl}|j�|k7ry|j�jdd�d}	t	tt|jd���S#t$rYywxYw)Nr�-r��.)r��system�release�split�tuple�map�int�
ValueError)�sysnamer��version_txts   r\�_get_kernel_versionr�/sk�������G�#���"�"�$�*�*�3��2�1�5�K���S��k�/�/��4�5�6�6������s�'A%�%	A1�0A1c�v�	ddl}djtt|��}|j	�jdd�d}|j
�|k(r/	ttt|jd���}||k}nd}tj||�d|�d|���S#t$rd}Y�+wxYw)Nrr�r�r�Fz	 version � or higher required, not )r��joinr�r�r�r�r�r�r�r�rx�skipIf)r��min_versionr��min_version_txtr��version�skips       r\�_requires_unix_versionr�9s������h�h�s�3��4�5�O��"�"�$�*�*�3��2�1�5�K�����G�#�	)��C��[�%6�%6�s�%;�<�=�G��[�(�D����?�?���)�9�_�-�-F��-�	�����	��D�	�s�(B*�*B8�7B8c��	td|�S)N�FreeBSD�r��r�s r\rrTs���"�)�[�9�9r[c��	td|�S)N�Linuxrrs r\rr]s���"�'�;�7�7r[c���	�fd�}|S)Nc�T���tj����fd��}�|_|S)Nc�V��tjdk(rddl}|j�d}	tt	t
|j
d���}|�kr:djt	t���}tjd|�d|�����|i|��S#t$rY�wxYw)Nr�rr�z	Mac OS X r�)r�r��mac_verr�r�r�r�r�r�rxr�r�)rf�kwr�r�r�r�r�r�s      ��r\�wrapperz4requires_mac_ver.<locals>.decorator.<locals>.wrapperns�����|�|�x�'��&�.�.�0��3��	>�#�C��[�->�->�s�-C�$D�E�G���,�*-�(�(�3�s�K�3H�*I��&�/�/�.��=�>�>���$��$�$��"����s�(B�	B(�'B()�	functools�wrapsr�)r�r	r�s` �r\�	decoratorz#requires_mac_ver.<locals>.decoratorms-���	����	�	%�
�	%�*����r[rZ)r�rs` r\rrfs�����&�r[c��	ddl}|sd}	|j�j�dk(}tj||�S#ttf$r*}tjd|�d�t�d}Yd}~�Jd}~wwxYw)Nrznot suitable for buildbots�buildbotzgetpass.getuser() failed r�F)
�getpass�getuser�lower�KeyErrorr��warnings�warn�RuntimeWarningrxr�)r�r�
isbuildbotr�s    r\�skip_if_buildbotr�sv��>���-����_�_�&�,�,�.�*�<�
��?�?�:�v�.�.��
�g����
�
�1�#��a�8�.�I��
���s�!A�A;� A6�6A;��address�memory�ub�threadc��	|s|s|s
|std��tjd�xsd}tjd�xsd}d|vxsd|v}d|vxsd|v}d	|vxsd
|v}d|vxsd|v}	|xr|xs|xr|xs|xr|xs|xr|	S)
Nz:At least one of address, memory, ub or thread must be True�CFLAGS��CONFIG_ARGSz-fsanitize=memoryz--with-memory-sanitizerz-fsanitize=addressz--with-address-sanitizerz-fsanitize=undefinedz#--with-undefined-behavior-sanitizerz-fsanitize=threadz--with-thread-sanitizer)r��	sysconfig�get_config_var)
rrrr�cflags�config_args�memory_sanitizer�address_sanitizer�ub_sanitizer�thread_sanitizers
          r\r,r,�s���C��v��v��U�V�V��
%�
%�h�
/�
5�2�F��*�*�=�9�?�R�K��v�%�	1�!�[�0��
	��&�	2�"�k�1��
	�&�(�	=�-��<��
	�v�%�	1�!�[�0��

�	$�$�	&�	�	&�&�	&�	�	��	&�
�	$�$�	r[c�V�	|sd}t||||��}tj||�S)Nz"not working with sanitizers activer)r,rxr�)r�rrrrr�s      r\r-r-�s.��H��5���7�6�b��P�D��?�?�4��(�(r[T)rc�F�dD]}||vr||xxd|��z
cc<�|||<�y)N)�ASAN_OPTIONS�MSAN_OPTIONS�
UBSAN_OPTIONS�TSAN_OPTIONS�:rZ)�env�optionr�s   r\�set_sanitizer_env_varr2�s1��Q���3�;���I�1�V�H��%�I��C��I�	Rr[c�D��	tj���fd��}|S)Nc���	�|i|��y#t$r(}dt|�vrtjd���d}~wwxYw)N�CERTIFICATE_VERIFY_FAILEDz.system does not contain necessary certificates)r�r�rxr�)rf�kwargsr�rvs   �r\�decz&system_must_validate_cert.<locals>.dec�sO���	�
�t��v����	�*�c�!�f�4��'�'�)A�B�B���		�s��	=�#8�=�r
r)rvr7s` r\�system_must_validate_certr9�s(���?��_�_�Q������Jr[i@i�double�IEEEztest requires IEEE 754 doublesc�Z�	ddl}tj||�S#t$rd}Y�#wxYw�Nr)�zlib�ImportErrorrx�
skipUnless)r�r>s  r\rr��5�������t�V�,�,����������*�*c�Z�	ddl}tj||�S#t$rd}Y�#wxYwr=)�gzipr?rxr@)r�rDs  r\rr�rArBc�Z�	ddl}tj||�S#t$rd}Y�#wxYwr=)�bz2r?rxr@)r�rFs  r\rr�s5�������s�F�+�+�������rBc�Z�	ddl}tj||�S#t$rd}Y�#wxYwr=)�lzmar?rxr@)r�rHs  r\rr�rArBc��	ddl}|j	�}t|d�S#t$rtjd��wxYw)Nr�_testinternalcapi required�code_debug_ranges)�_testinternalcapir?rxr��
get_configr�)rL�configs  r\�has_no_debug_rangesrO�sQ��>� ��
)�
)�
+�F��F�.�/�0�0�0���>���� <�=�=�>�s	�%�Ac�>�tjt�|�Sra)rxr�rO)r�s r\�requires_debug_rangesrQs���?�?�.�0�&�9�9r[c�^�	ddlm}tj|d�S#t$rd}Y�#wxYw)Nr��unicode_legacy_stringzrequires legacy Unicode C API)�	_testcapirTr?rxr@rSs r\�requires_legacy_unicode_capirV
s>��%�3����4�>�@�@���%� $��%�s��,�,�win32�java�getandroidapilevel>�ios�tvosrW�vxworks�watchosz/system/bin/shz/bin/sh�
emscripten�wasi>rZr[r]r��forkc�6�tjtd�S)Nzrequires working os.fork())rxr@r rZr[r\r!r!/s�����/�1M�N�Nr[c�8�	tjtd�S)Nzrequires subprocess support)rxr@r"rZr[r\r#r#8s��=����5�7T�U�Ur[)�modulec�x�	d}|rtstj|��ytjt|�S)Nzrequires socket support)r$rxr�r@)rcrbs  r\r%r%Bs@���$�C�
�!��#�#�C�(�(�"��"�"�#5�s�;�;r[z%4Yzhttp://www.pythontest.net�datac���	tjdk7ryddl}d}|�d�}|j�\}}t	|j|d��t	|�t	d|z�y)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 https://github.com/python/cpython/issues/85100r�)r�r��shutil�get_terminal_sizer��center)�	test_namergrb�detail�padding�_s      r\�darwin_malloc_err_warningrngsk���
�|�|�x����
�C���C�C�F�
�)�)�+�J�G�Q�	�#�*�*�W�c�
"�#�	�&�M�	�#��-�r[c�R�	tjj|�r|S|� tjj||�}tgt
jz}|D]E}tjj||�}tjj
|�s�C|cS|Sra)r�r��isabsr��
TEST_HOME_DIRr��exists)�filename�subdirr��dn�fns     r\r>r>zs����
�w�w�}�}�X����
���7�7�<�<���1���?�S�X�X�%�D���
�W�W�\�\�"�h�
'��
�7�7�>�>�"��b�y���Or[c��	t|j��}|D�cgc]}d|z��	}}dj|�}d|zScc}w)Nz%r: %rz, z{%s})�sorted�itemsr�)�dictry�pair�	reprpairs�
withcommass     r\rDrD�sK��+��4�:�:�<� �E�-2�3�U�T��D��U�I�3����9�%�J��J����4s�A�code�returnc�J�	i}ttj|�|�|Sra)�exec�textwrap�dedent)r~�nss  r\�run_coder��s"��R�	�B������	��#�
�Ir[)�lineno�offsetc�r�|jt|�5}t|dd�ddd�j}|j	|j
�|�|j
|j
|�|j	|j�|�|j
|j|�yy#1swY��xYw)Nz
<test string>r�)�assertRaisesRegex�SyntaxError�compile�	exception�assertIsNotNoner��assertEqualr�)�testcase�	statement�errtextr�r��cmr�s       r\rr�s���	�	#�	#�K��	9�R��	�?�F�3�
:�
�,�,�C����S�Z�Z�(�
�����S�Z�Z��0����S�Z�Z�(�
�����S�Z�Z��0��
:�	9�s�B-�-B6c����
�ddl}ddl}ddlm}	ddl}�j
dd��
|jj|�djd�d}tjjt|�}��
�fd�}tjj|�r||�}	|	�|	S||�td	�t rt#d
|zt%���|j&j)�}
|r|
j*j-d�|
j/|t0�
�}	|r0|	j2j5d�dk(r|j7|	��}		t/|d�5}|	j9�}|r$|j;|�|	j9�}|r�$ddd�|	j=�||�}	|	�|	St?d|z��#t
$rd}Y���wxYw#1swY�ExYw#|	j=�wxYw)Nrr�)�unlinkr�r��/���c���t|g���i���}��|S�|�r|jd�|S|j�yr=)�open�seek�close)rvrvrfr�rs  ���r\�check_valid_filez*open_urlresource.<locals>.check_valid_file�sA�����!�d�!�b�!���=��H�
�1�X�
�F�F�1�I��H�	���	r[r�z	fetching %s ...��file)zAccept-EncodingrD��timeoutzContent-EncodingrD)�fileobj�wbzinvalid resource %r) �urllib.request�urllib.parse�	os_helperr�rDr?�pop�parse�urlparser�r�r�r��
TEST_DATA_DIRrrrrr�r
�request�build_opener�
addheaders�appendr�rM�headers�get�GzipFile�read�writer�r	)�urlrfr�urllibr�rDrsrvr�rv�opener�out�sr�s ``          @r\r:r:�s����'�!���
�F�F�7�D�!�E��|�|�$�$�S�)�!�,�2�2�3�7��;�H�	�����m�X�	.�B��
�w�w�~�~�b���R� ���=��H��r�
�
�Z���
�!�C�'�.A�.C�D�
�^�^�
(�
(�
*�F����� � �!<�=����C�!1��2�A���	�	�
�
�0�1�V�;��M�M�!�M�$���
�"�d�^�s�����A���	�	�!���F�F�H����	
���	����A��}���
�*�R�/�
0�0��_������H�^��	
���	�s5�G�!G4�-6G(�$G4�G%�$G%�(G1�-G4�4Hc#��K�	ddl}tt|�}tt||j	��	tt|���tt||�y#tt||�wxYw�wr=)�ior�r��setattr�StringIO)�stream_namer��orig_stdouts   r\�captured_outputr��sW����O�
��#�{�+�K��C��b�k�k�m�,�/��c�;�'�'���[�+�.����[�+�.�s�5A2�A�
A2�A/�/A2c��	td�S)Nr��r�rZr[r\rr������8�$�$r[c��	td�S)N�stderrr�rZr[r\rr�r�r[c��	td�S)N�stdinr�rZr[r\rr�s����7�#�#r[c�n�	ddl}|j�|j�|j�yr=)�gc�collect)r�s r\�
gc_collectr�
s'�����J�J�L��J�J�L��J�J�Lr[c#�K�ddl}|j�}|j�	d��|r|j�yy#|r|j�wwxYw�wr=)r��	isenabled�disable�enable)r��have_gcs  r\�
disable_gcr�sG����
��l�l�n�G��J�J�L��
���I�I�K���7��I�I�K��s�%A�A�A�A�Ac���	tjd�xsd}d}|j�D]}|jd�s�|}�tjd�dk(rd}||vSd}||vS)N�	PY_CFLAGSrz-O�CC�gcc)r�-O0z-Og)rr�)r!r"r�r�)r#�	final_opt�opt�non_optss    r\�python_is_optimizedr�%sy��6�
�
%�
%�k�
2�
8�b�F��I��|�|�~���>�>�$���I������%��.�%���H�$�$����H�$�$r[c���tjd�xsd�gd�}tjd�}|r|j|�t�fd�|D��S)N�PY_CFLAGS_NODISTr)z
-fprofile-usez-fprofile-instr-usez	-prof-use�PGO_PROF_USE_FLAGc3�&�K�|]}|�v���
y�wrarZ)�.0r1�
cflags_nodists  �r\�	<genexpr>z#check_cflags_pgo.<locals>.<genexpr>Bs�����A�[�6�v��&�[�s�)r!r"r��any)�pgo_optionsr�r�s  @r\�check_cflags_pgor�3sY����,�,�-?�@�F�B�M��K�"�0�0�1D�E������,�-��A�[�A�A�Ar[�nP�0n�
getobjects�2P�0P�nc�J�trytjd�xsd}d|vS)NFr rz
--enable-bolt)r4r!r")r$s r\�check_bolt_optimizedr�Ls*�����*�*�=�9�?�R�K��k�)�)r[c�H�ddl}|jt|ztz�Sr=)�struct�calcsize�_header�_align��fmtr�s  r\�calcobjsizer�Us����?�?�7�S�=�6�1�2�2r[c�H�ddl}|jt|ztz�Sr=)r�r��_vheaderr�r�s  r\�calcvobjsizer�Zs����?�?�8�c�>�F�2�3�3r[i@ic��	ddl}t	j
|�}t
|�tk(r|jtzs.t
|�tk7r+t
|�jtzr||jz
}dt
|�||fz}|j|||�y#t$rtjd��wxYw)NrrJz&wrong size for %s: got %d, expected %d)rLr?rxr�r��	getsizeofr��	__flags__�_TPFLAGS_HEAPTYPE�_TPFLAGS_HAVE_GC�SIZEOF_PYGC_HEADr�)�test�o�sizerLr�rbs      r\�check_sizeofr�bs���>� ��]�]�1�
�F�	
�a��D��q�{�{�->�>�
�q�'�T�/��Q�� 1� 1�4D� D��!�2�2�2��
2��A�w���%�&�C����V�T�3�'���>���� <�=�=�>�s�B"�"C)�_do_cleanupsc������	d�t�t�r0�jdd�j��t	��dk(rd�t�������fd�}|S)NF�,� r�Tc����t�t�rtd��tj�������fd��}|S)Nz1subTests() can only decorate methods, not classesc�����D]X}�	r|f}tt�|��}|jdi|��5�|g|��i|�|��ddd��s�I|j��Zy#1swY�xYw)NrZ)rz�zip�subTest�
doCleanups)
rerfr6�values�subtest_kwargsr��	arg_names�
arg_valuesr��single_params
     �����r\r	z,subTests.<locals>.decorator.<locals>.wrapper|sk���$���$�Y�F�!%�c�)�V�&<�!=��!�T�\�\�3�N�3���A��A��A�.�A�4���O�O�%�%�4�3�s�A � A)	)�
isinstancer��	TypeErrorr
r)r�r	r�r
rrs` ����r\rzsubTests.<locals>.decoratorys;����d�D�!��O�P�P�	����	�	&�
�	&��r[)r
r��replacer�r�r�)r
rr�rrs``` @r\�subTestsrpsZ�����L��)�S�!��%�%�c�#�.�4�4�6�	��y�>�Q���L��z�"�J�
��r[c'��K�	ddl}t||�}|j|�}|D]}	|j||�nd|vrt	j
d|����	d��|r|r|j|�yyy#|j$rY�dwxYw#t$r�t$r dx}}d|vrt	j
d��Y�dwxYw#|r|r|j|�wwwxYw�w)Nrrzno locales z
no locales)�localer��	setlocalerrxr�r�r�)�catstr�localesr�category�orig_locale�locs      r\r<r<�s����A���6�6�*���&�&�x�0���C�
�� � ��3�/����� ��'�'�+�g�Y�(?�@�@�4�
��k����X�{�3�"�6���<�<�
��
����
��2�#�#���
�W���#�#�L�1�1��2��&�k����X�{�3�"�6�sa�C!�!B�C!�A:�C!�C�!C!�:B�	C!�B�C!�/C�>C!�C�C!�C�C!c������fd�}|S)Nc�H���tj�����fd��}|S)Nc�4��d�
v}	ddl}t|��}|j|�}	�
D]>}|j|��5	|j||�d}�	|g|��i|��ddd��@	|j||�|r(|jd��5�	|g|��i|��ddd�yy#|j$r|jd|���Y�mwxYw#1swY��xYw#|j||�wxYw#t$r�t$rY��wxYw#1swYyxYw)Nrr)rFz
no locale )rr�rrr�skipTestr�r�)rerfr6�dry_runrrrrrr�rs        ���r\r	z/run_with_locales.<locals>.deco.<locals>.wrapper�s4����G�m�G�
<��"�6�6�2��$�.�.�x�8��<�&��!�\�\��\�5�<� &� 0� 0��3� ?�+0�� $�T� ;�D� ;�F� ;�6�5� '��$�$�X�{�;���\�\��\�.���/��/��/�/�.���$*�<�<�D� $�
�
�
�3�'�.B� C�D��6�5���$�$�X�{�;��%"�
���
��
��&/�.�sd�!C6�C�C�B*�C�"
C�
D�*#C�
C�C�C�C	�C�C3�6D�
D�Dr8)r�r	rrs` ��r\�decozrun_with_locales.<locals>.deco�s%���	����	�	0�
�	0�<�r[rZ)rrrs`` r\�run_with_localesr�s��� �B�Kr[c����fd�}|S)Nc�Z�����fd�}�j|_�j|_|S)Nc���	tj}dt
jvrt
jd}nd}�t
jd<|�	�|i|��|�t
jd=n|t
jd<tj�S#t$rtjd��wxYw#|�t
jd=n|t
jd<tj�wxYw)Nztzset required�TZ)�time�tzsetr�rxr�r��environ)rf�kwdsr%�orig_tzr��tzs    ��r\�innerz-run_with_tz.<locals>.decorator.<locals>.inner�s����
:��
�
���r�z�z�!��*�*�T�*����!�B�J�J�t���G�
��T�*�T�*��?��
�
�4�(�'.�B�J�J�t�$��
�
���#"�
:��'�'�(8�9�9�
:���?��
�
�4�(�'.�B�J�J�t�$��
�
��s�B�B;�B8�;=C8)rW�__doc__)r�r*r)s` �r\rzrun_with_tz.<locals>.decorator�s%���	�,���������
��r[rZ)r)rs` r\rErE�s����4�r[i�r���limitc�F�dttdtzd�}tjd|tjtj
z�}|�t
d|����tt|jd��||jd�j�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.�sizesr1s   r\�_parse_memlimitr=s���
�
�
�
�#�X�	
�E�	���0�%�������+�	-�A��y��1�%��;�<�<��u�Q�W�W�Q�Z� �5������)9�)9�);�#<�<�=�=r[c�p�t|�}|tdz
krtd��|at	|t
�}|ay)Nr�z+Memory limit {limit!r} too low to be useful)r=�_2Gr��real_max_memuse�min�MAX_Py_ssize_tr)r.�memlimits  r\rBrBs<���u�%�H��#��'���F�G�G��O��8�^�,�H��Jr[c� �eZdZ	d�Zd�Zd�Zy)�_MemoryWatchdogc�d�djtj���|_d|_y)Nz/proc/{pid}/statm)�pidF)r�r��getpid�procfile�startedris r\rdz_MemoryWatchdog.__init__ s$��+�2�2�r�y�y�{�2�C��
���r[c��ddl}	t|jd�}ddl
}|5td�}|jtj|g||j��|_ddd�d|_y#t$rN}|jdj|�t�tjj�Yd}~yd}~wwxYw#1swYd|_yxYw)Nr�rz!/proc not available for stats: {}zmemory_watchdog.py)r�r�T)rr�rIr�rr�rr�r��flushr�r>�Popen�
executable�DEVNULL�mem_watchdogrJ)rerrvr�r��watchdog_scripts      r\�startz_MemoryWatchdog.start$s����	��T�]�]�C�(�A�	�
�&�';�<�O� *� 0� 0�#�.�.�/�1R�78�8B�8J�8J�!1�!L�D���
�����	��H�M�M�=�D�D�Q�G�(�
*��J�J������		���
���s#�A1�?C�1	C�:AC�C�Cc��|jr5|jj�|jj�yyra)rJrQ�	terminate�waitris r\�stopz_MemoryWatchdog.stop6s2���<�<����'�'�)����"�"�$�r[N)rWrXrYrdrSrWrZr[r\rErEs�����$%r[rEc�����	���fd�}|S)Nc�6�������fd����_��_�S)Nc����j}�j}tsd}n|}ts�s*t||zkrtjd||zdzz��trLt
rFt
�t
dj||zdz���t�}|j�nd}	�||�|r|j�SS#|r|j�wwxYw)Ni�'not enough memory: %.1fG minimum needed�@z* ... expected peak memory use: {peak:.1f}G)�peak)r��memuser@rxr�rr�r�rErSrW)rer�r^�maxsize�watchdogrrvr	s     ���r\r	z.bigmemtest.<locals>.decorator.<locals>.wrapperJs�����<�<�D��^�^�F�"����� ��#�g��&6�6��'�'�=��f�}�	�2�4�5�5��7����B��v�4�&�=�I�#>�v�?�A�*�,����� ���
$���w�'���M�M�O���8��M�M�O��s�,C�C)r�r^)rvr	rr^r�s`@���r\rzbigmemtest.<locals>.decoratorIs���	$�:�������r[rZ)r�r^rrs``` r\rr<s���� �B�r[c���	�fd�}|S)Nc���ttkrFtdk\rtdk\rtjd��tjdtdzz���|�S)Nl����lz-not enough memory: try a 32-bit build insteadr[r\)rrBrxr�)rervs �r\r	z!bigaddrspacetest.<locals>.wrappernsb�����&���*�z�U�/B��'�'�C�E�E��'�'�=�%��3�5�6�6��T�7�Nr[rZ)rvr	s` r\rrls���:�
��Nr[c��|SrarZ)r�s r\�_idrd~s���Jr[c���|dk(r-t�s#tjtj�St	|�rt
Stjdj
|��S)Nr�zresource {0!r} is not enabled)r�rxr�r�rrdr�r�s r\�requires_resourcerf�sN���5��!2�!4��}�}�.�5�5�6�6��8�$��
��}�}�<�C�C�H�M�N�Nr[c�(�	td��|�S)NT)�cpython)�impl_detail�r�s r\rr�s���%�;�t�$�T�*�*r[c���tdi|��rtS|�Nt|�\}}|rd}nd}t|j	��}|jdj
|��}tj|�S)Nz*implementation detail not available on {0}z%implementation detail specific to {0}z or rZ)	r6rd�
_parse_guardsrx�keysr�r�rxr�)rb�guards�
guardnames�defaults    r\riri�sj���"�6�"��
�
�{�+�F�3��
�G��>�C�9�C��J�O�O�-�.�
��j�j����Z�0�1���=�=���r[c�T�|sddidfSt|j��d}||fS)NrhTFr)�listr)rn�is_trues  r\rlrl�s7����D�!�5�)�)��6�=�=�?�#�A�&�G���K� � r[c�t�	t|�\}}|jtjj|�Sra)rlr�r��implementationr�)rnrps  r\r6r6�s4���$�F�+�O�F�G��:�:�c�(�(�-�-�w�7�7r[c�h��	ttd�s�Stj���fd��}|S)N�gettracec����tj�}	tjd��|i|��tj|�S#tj|�wxYwra)r�rw�settrace)rfr6�original_tracer�s   �r\r	zno_tracing.<locals>.wrapper�sE��� �\�\�^�N�
-����T�"��T�,�V�,����^�,�����^�,�s�A	�	A )r�r�r
r)r�r	s` r\�
no_tracingr{�s7���O��3�
�#���	����	�	-�
�	-��r[c�,�	tt|��Sra)r{rrjs r\�
refcount_testr}�s����l�4�(�)�)r[c��	ddl}tj|j
d�|�S#t$rtjd�|�cYSwxYw)Nrzneeds _testcapi modulezneeds Limited API support)rUr?rxr�r@�LIMITED_API_AVAILABLE)r�rUs  r\r.r.�sa��=��F�8����'�'�)D�F�FJ�L�L���=�6�x�}�}�5�6�t�<�<�=�s�,�$A�Ac�V�tjtjd�|�S)Nzrequires specialization)rxr@�opcode�ENABLE_SPECIALIZATIONrjs r\r/r/�s1��A�8����$�$�&?�A�AE�G�Gr[c��yrarZrZr[r\�_check_docstringsr��s��6r[�WITH_DOC_STRINGSztest requires docstringsc��tj�tjj�tj�tjj�yyra)r�r�rMr�rZr[r\�flush_std_streamsr��s;��
�z�z���
�
����
�z�z���
�
����r[c��t�tj}|j�D]}t	d|��|���|j�y)NzWarning -- r�)r��
print_warning�orig_stderr�
splitlinesr�rM)rb�stream�lines   r\r�r��s>����
�
&�
&�F���� ��
��D�6�"��0�!�
�L�L�Nr[c���	ttd�rttd�sytsy		tjdtj�\}}|dk(ryt
d|���da�?#t
$rYywxYw)N�waitpid�WNOHANGTr�rz%reap_children() reaped child process )r�r�r"r�r�r�r��environment_altered)rG�statuss  r\r;r;s����
�B�	�"�w�r�9�'=��
#���	��*�*�R����4�K�C���!�8���=�c�U�C�D�"�����	��	�s�'A*�*	A6�5A6c#�4K�	t||�r,t||�}t|||�	|��t|||�yt|||�	d��t||�r
t||�yy#t|||�wxYw#t||�r
t||�wwxYw�wra)r�r�r��delattr)r��attr�new_val�real_vals    r\r@r@*s�����
��s�D���3��%����T�7�#�	)��N��C��x�(���T�7�#�	#���s�D�!���T�"�"��

�C��x�(���s�D�!���T�"�"�s3�'B�A(�B�
A:�B�(A7�7B�:B�Bc#�K�	||vr||}|||<	|��|||<y|||<	d��||vr||=yy#|||<wxYw#||vr||=wwxYw�wrarZ)r��itemr�r�s    r\r=r=Is����
��s�{��t�9����D�	�	!��N� �C��I���D�	�	���s�{���I���
!�C��I���s�{���I��s+�A�0�A�:�	A�7�A�
A�Ac�,�	ddl}|j�Sr=)r��_args_from_interpreter_flags�r�s r\�args_from_interpreter_flagsr�hs��2���2�2�4�4r[c�,�	ddl}|j�Sr=)r��"_optim_args_from_interpreter_flagsr�s r\�!optim_args_from_interpreter_flagsr�ns��+���8�8�:�:r[c��eZdZdZd�Zd�Zy)rA)rb�messagec�v�	d}|D]0}||}|j|�}|j|||�r�-d}|S|S)NTF)r��match_value)re�dr6r�r0�v�dvs       r\�matcheszMatcher.matchesysT��	����A��q�	�A����q��B��#�#�A�r�1�-�����
�
��
r[c��	t|�t|�k7rd}|St|�tus||jvr||k(}|S|j|�dk\}|S)NFr)r�r��_partial_matches�find)rer0r�r�r�s     r\r�zMatcher.match_value�sh��	���7�d�2�h���F�
�
�	�"�X�S�
 �A�T�-B�-B�$B��2�g�F��
��W�W�Q�Z�1�_�F��
r[N)rWrXrYr�r�r�rZr[r\rArAus��)���"
r[rAc��	ddl}t�Ltjdk(r7|j	�dk(r$tj�jdk(rdandatrtjd�|�S|S)NrrW�cp65001rTFz!buggy MSVC UCRT strptime/strftime)
r�_buggy_ucrtr�r��getencodingr$�	localtime�tm_zonerxr�)r�rs  r\r*r*�sn�������<�<�7�"��"�"�$�	�1���� �(�(�B�.��K��K�GR�=�8�=�=�<�=�d�C�\�X\�\r[c�l�eZdZ	d
d�Zej
dk(rd�Znd�Zd�Zd�Zd�Z	d	d
�d�Z
d	d
�d�Zy)�
PythonSymlinkNc��ddlm}|xstjj	|�|_g|_tjjtj�|_
g|_d|_|j�y)Nr�)�TESTFN)r�r�r�r��abspath�link�_linked�realpathr�rO�real�
_also_link�_env�_platform_specific)rer�r�s   r\rdzPythonSymlink.__init__�sY��%��3�B�G�G�O�O�F�3��	�����G�G�$�$�S�^�^�4��	������	����!r[rWc
���ddl}ddl}tjj	|j
�r?tjj
|j
�s|jd�|_|jtj�}tjj|�}tjj|j�}|jj|tjj|tjj|��f�|jtjj|j!|�d��D]Z}|jj|tjj|tjj|��f��\tj"D�cic]&}|j%�tj&|���(c}|_tjj|j
�|j(d<t+j,�rt.|j(d<yycc}w)Nrzvcruntime*.dll�
PYTHONHOME�
PYTHONPATH)�glob�_winapir�r��lexistsr�rr�GetModuleFileNamer��	dllhandle�dirnamer�r�r�r��basename�escaper&�upper�getenvr�r!�is_python_buildr)rer�r�r��src_dir�dest_dir�runtimer0s        r\r�z PythonSymlink._platform_specific�s������w�w���t�y�y�)�"�'�'�.�.����2K�$�5�5�a�8��	��+�+�C�M�M�:�C��g�g�o�o�c�*�G��w�w���t�y�y�1�H��O�O�"�"�������X�r�w�w�'7�'7��'<�=�$�
� �9�9�R�W�W�\�\�$�+�+�g�2F�HX�%Y�Z�����&�&���G�G�L�L��2�7�7�+;�+;�G�+D�E�(��[�;=�*�*�E�*�Q�����B�I�I�a�L�0�*�E�D�I�&(�g�g�o�o�d�i�i�&@�D�I�I�l�#��(�(�*�*4��	�	�,�'�+��Fs�+I/c��yrarZris r\r�z PythonSymlink._platform_specific����r[c�.�tj|j|j�|jj|j�|jD]6\}}tj||�|jj|��8|Sra)r��symlinkr�r�r�r�r�)rer�r�s   r\�	__enter__zPythonSymlink.__enter__�sg��
�
�
�4�9�9�d�i�i�(������D�I�I�&��/�/�J�D�$��J�J�t�T�"��L�L����%�*��r[c��|jD]}	tj|��y#t$r+}trtdj
||��Yd}~�Kd}~wwxYw)Nzfailed to clean up {}: {})r�r��remove�IOErrorrr�r�)re�exc_type�	exc_value�exc_tbr��exs      r\�__exit__zPythonSymlink.__exit__�sO���L�L�D�
H��	�	�$��!���
H���5�<�<�T�2�F�G���
H�s�)�	A�!A�Ac�x�ddl}|g|�}|j||j|j|��}|j�}|j|k7rht
r>t
t|d��t
t|d�tj��tdj|j���|S)Nr)r�r�r0r�r�z'unexpected return code: {0} (0x{0:08X}))r�rN�PIPE�communicate�
returncoderr��reprr�r��RuntimeErrorr�)	re�pythonrfr0r�r��cmd�prLs	         r\�_callzPythonSymlink._call�s�����o��o�����S����$.�O�O��
�
>��
�M�M�O���<�<�:�%���d�1�Q�4�j�!��d�1�Q�4�j�s�z�z�2��9�@�@����N�P�
P��r[r)r�c�>�|j|j|d|�Sra)r�r��rer�rfs   r\�	call_realzPythonSymlink.call_real�s���z�z�$�)�)�T�4��<�<r[c�R�|j|j||j|�Sra)r�r�r�r�s   r\�	call_linkzPythonSymlink.call_link�s���z�z�$�)�)�T�4�9�9�j�A�Ar[ra)rWrXrYrdr�r�r�r�r�r�r�r�rZr[r\r�r��sG��=�
"��|�|�w��	5�6	��H��+,�=�+,�Br[r�c�d�	txst}d}|r|Stj|�|�S)Nz#Not run for (non-extended) PGO task)rF�PGO_EXTENDEDrxr�)r��okrbs   r\�skip_if_pgo_taskr��s4��E�
��	 �L�B�
/�C��4�3�-�8�=�=��-�d�3�3r[rZ)�ignorec��	tt|��tt|��z
}|r|t|�z}td�|D��}|S)Nc3�dK�|](}|jd�r|jd�r|���*y�w)rm�__N)r��endswith)r�r1s  r\r�z&detect_api_mismatch.<locals>.<genexpr>s.����F�=�a� �|�|�C�0�A�J�J�t�4D��=�s�.0)�set�dir)�ref_api�	other_apir��
missing_itemss    r\r(r(sU�����G��%��C�	�N�(;�;�M�
���V��$�
��F�=�F�F�M��r[c��	|�|jf}nt|t�r|f}t|�}t	|�D]l}|jd�s||vr�t
||�}t
|dd�|vs(t|d�r�At|tj�r�\|j|��n|j|j|�y)NrmrX)
rWr
r�r�r�r�r�r��types�
ModuleType�add�assertCountEqual�__all__)�	test_caserc�name_of_module�extra�not_exported�expectedr�r�s        r\r)r)s���%�N�� �/�/�,��	�N�C�	(�(�+���5�z�H��F����?�?�3��4�<�#7���f�d�#���C��t�,��>��S�,�/���U�%5�%5�6��L�L�������v�~�~�x�8r[c��	ddl}|j|j|jz|j
z|jz�t|d�rv|j|j|jfD]O}|r9|j||j�|j||j��>|j|d��Qyy#t$rYywxYw)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)rrr1s   r\�suppress_msvcrt_assertsrPs���������5�5� �;�;�<� �6�6�7�!�7�7�8�9��v�)�*��/�/�6�#3�#3�V�5F�5F�G�A���'�'��6�+B�+B�C��'�'��6�+D�+D�E��'�'��1�-�H�+������s�C�	C�Cc�"�eZdZ	dZdZd�Zd�Zy)rCNc��	tjjd�r�	ddl}|j�|_|j|j|jz�t|d�rxi|_
|j|j|jfD]K}|j||j�}|j!||j"�}||f|j|<�M|S	ddl}||_|j$�t	|j$j'|j$j(�|_|j$j+|j$j(d|jdf�tjdk(roddl}gd�}|j3||j4|j4��}|5|j7�d}	ddd�	j9�dk(rt;d	d
d��|S#t$rYywxYw#t$rd|_Y��&wxYw#t,t.f$rY��wxYw#1swY�gxYw)
Nr�rrr�r�)z/usr/bin/defaultsr�zcom.apple.CrashReporter�
DialogType)r�r�s	developerz:this test triggers the Crash Reporter, that is intentionalrT)�endrM)r�r�r�rr?�GetErrorMode�	old_valuerr
r��	old_modesrr
rrrrrr��	getrlimit�RLIMIT_CORE�	setrlimitr�r�r�rNr�r�r�r�)
rer�report_type�old_mode�old_filer�r�r��procr�s
          r\r�zSuppressCrashReport.__enter__ns��	��<�<�"�"�5�)�
��$�0�0�2�D�N��������1M�1M� M�N��v�1�2�!#���$*�O�O�$*�$4�$4�$*�$5�$5�$7�K� &�6�6�{�"�3�3� 5�H�%�6�6�{�"�5�5� 7�H�2:�H�2D�D�N�N�;�/�$7�T��A
%�� (��
��}�}�(��%)�]�]�%<�%<�T�]�]�=V�=V�%W�D�N��M�M�+�+�D�M�M�,E�,E�-.����q�0A�,B�D�
�|�|�x�'�!�@��!�'�'��/9���/9���(�@���!�-�-�/��2�F���<�<�>�\�1��0�57�t�E����k�
��
��0�
%� $��
�
%��#�G�,����� �T�sB�G9�*H�A3H�:H4�9	H�H�H�H�H1�0H1�4H=c��	|j�ytjjd�rvddl}|j|j�|jrJ|jj�D],\}\}}|j||�|j||��.yy|j�<	|jj|jj|j�yy#ttf$rYywxYw)Nr�r)rr�r�r�rrrryrrr�rrr�r�)re�
ignore_excrrrrs      r\r�zSuppressCrashReport.__exit__�s���O��>�>�!���<�<�"�"�5�)��������/��~�~�9=���9M�9M�9O�5�K�!5�(�H��+�+�K��B��+�+�K��B�:P��
�}�}�(���M�M�+�+�D�M�M�,E�,E�t�~�~�V�)��#�G�,����s�1:C-�-C?�>C?)rWrXrYrrr�r�rZr[r\rCrCes���
�I��I�@�Dr[rCc�������	t���d�	�j��d�����fd�}|j	|�t��|�y#ttf$rt��d��Y�EwxYw)NFTc�>���rt����yt���yra)r�r�)�
attr_is_local�	attr_name�object_to_patchrs����r\�cleanupzpatch.<locals>.cleanup�s�����O�Y�	�:��O�Y�/r[)r��__dict__r�r�
addCleanupr�)�
test_instancer'r&�	new_valuer(r%rs ``  @@r\�patchr-�s~�����O�Y�'��M��#�,�,�Y�7�	��
�0����W�%��O�Y�	�2��
�H�%�>��O�Y��=�	�>�s�A
�
A,�+A,c#�@K�		|dd}d��||ddy#|ddwxYw�wrarZ)�orig�saveds  r\�
patch_listr1�s,����7���Q���
���Q���%��Q��s��	���c�B�	t�ddl}|j|�Sr=)�_check_tracemallocrU�run_in_subinterp)r~rUs  r\r4r4�s#�������%�%�d�+�+r[)�own_gilc�\�	t�ddl}|�	|rdnd|d<|j|fi|��S)Nrr�r��gil)r3rU�run_in_subinterp_with_config)r~r5rNrUs    r\r8r8�s=��������$��!��u�
�1�9�1�1�$�A�&�A�Ar[c�v�	ddl}|j�rtjd��y#t$rYywxYw)NrzUrun_in_subinterp() cannot be used if tracemalloc module is tracing memory allocations)�tracemalloc�
is_tracingrxr�r?)r:s r\r3r3sI��;���!�!�#��#�#�%:�;�
;�$���
��
�s�,�	8�8c����G��fd�d|�}d�|||���|jtt��t�|j	��y)Nc���eZdZ��fd�Zy)�%check_free_after_iterating.<locals>.Ac�@��d�	t��y#t$rYywxYw�NT)�next�
StopIteration)re�done�its ��r\�__del__z-check_free_after_iterating.<locals>.A.__del__s&����D�
��R��� �
��
�s��	�N)rWrXrYrE)rCrDs��r\�Ar>s���	r[rFF)�assertRaisesrBrAr��
assertTrue)r��iter�clsrfrFrCrDs     @@r\�check_free_after_iteratingrKsF����C���D�	
�a��h��B����m�T�2�.��L��O�O�D�r[c�b�	ddlm}m}ddlm}ddl}|j
�}|j|�|jdk(r	|j�|jD]6}|r||vr�
t||�}|rn|s�|j|d���1|dcSy#|j$rYywxYw)Nr)�	ccompilerr!)rp�msvc)�setuptools._distutilsrMr!�
setuptoolsrprg�new_compiler�customize_compiler�
compiler_type�
initialize�
PlatformError�executablesr��which)�	cmd_namesrMr!rprg�compilerr�r�s        r\rGrG)s����;�!���%�%�'�H� �I� � ��*�����'�	����!��$�$����Y�.���h��%������<�<��A���'��q�6�M�%���#�#�	��	�s�B�B.�-B.c��d}tr;||kr6t�(ddl}|jddg�j	�dk(atr|}tj|�S)Ng�h㈵��>r�getpropzro.kernel.qemu�1)r2�_is_android_emulatorr��check_outputr�r�r8)�interval�minimum_intervalr�s   r\r8r8Ls`�����h�!1�1��'��$.�$;�$;� )�+;�<�%>�>C�e�g��%N� ��'�H�� � ��*�*r[c��		tjd�}|S#ttf$r3	tjd�}Y|S#ttf$rd}YY|SwxYwwxYw)N�SC_PAGESIZE�SC_PAGE_SIZEi)r��sysconfr�r�)�	page_sizes r\r9r9[sr��&���J�J�}�-�	����
��'��	��
�
�>�2�I�����N�+�	��I���	���s&��A�A�A�A�A�Ac#�K�ddl}tjj�}|j	�}	|j�d��|r|j
|d��yy#|r|j
|d��wwxYw�w)NrT)r��all_threads)�faulthandlerr��
__stderr__�fileno�
is_enabledr�r�)rh�fdrks   r\�disable_faulthandlerrmgsu�����


���	�	�	 �B��(�(�*�J�;�����
�����R�T��:���:����R�T��:��s�3A<�A!�
A<�!A9�9A<c� �eZdZ	d�Zd�Zd�Zy)�SaveSignalsc���ddl}||_|j�|_dD]*}	t||�}|jj|��,i|_y#t$rY�@wxYw)Nr)�SIGKILL�SIGSTOP)�signal�
valid_signals�signalsr�r�r��handlers)rers�signame�signums    r\rdzSaveSignals.__init__�sh�������+�+�-���-�G�
� ���1��
�L�L����'�.���
��"�
��
�s�A�	A$�#A$c��|jD]/}|jj|�}|��!||j|<�1yra)rurs�	getsignalrv�rerx�handlers   r\�savezSaveSignals.save�s<���l�l�F��k�k�+�+�F�3�G����$+�D�M�M�&�!�#r[c��|jj�D]!\}}|jj||��#yra)rvryrsr{s   r\�restorezSaveSignals.restore�s1��#�}�}�2�2�4�O�F�G��K�K���v�w�/� 5r[N)rWrXrYrdr}rrZr[r\roroys����
,�0r[roc�"�ddl}|jSr=)rU�
WITH_PYMALLOC)rUs r\�
with_pymallocr��s����"�"�"r[c��eZdZ	d�Zd�Zy)�
_ALWAYS_EQc��yr@rZ�re�others  r\�__eq__z_ALWAYS_EQ.__eq__����r[c��y�NFrZr�s  r\�__ne__z_ALWAYS_EQ.__ne__����r[N)rWrXrYr�r�rZr[r\r�r��s����r[r�c� �eZdZ	d�Zd�Zd�Zy)�	_NEVER_EQc��yr�rZr�s  r\r�z_NEVER_EQ.__eq__�r�r[c��yr@rZr�s  r\r�z_NEVER_EQ.__ne__�r�r[c��y)Nr�rZris r\�__hash__z_NEVER_EQ.__hash__�s��r[N)rWrXrYr�r�r�rZr[r\r�r��s�����r[r�c��eZdZ	d�Zd�Zy)�_LARGESTc�"�t|t�Sra)r
r�r�s  r\r�z_LARGEST.__eq__�s���%��*�*r[c��yr�rZr�s  r\�__lt__z_LARGEST.__lt__�r�r[N)rWrXrYr�r�rZr[r\r�r��s���+�r[r�c��eZdZ	d�Zd�Zy)�	_SMALLESTc�"�t|t�Sra)r
r�r�s  r\r�z_SMALLEST.__eq__�s���%��+�+r[c��yr�rZr�s  r\�__gt__z_SMALLEST.__gt__�r�r[N)rWrXrYr�r�rZr[r\r�r��s���,�r[r�c�8�	ddl}|jjSr=)�asyncio.events�events�_event_loop_policy)�asyncios r\�maybe_get_event_loop_policyr��s��N���>�>�,�,�,r[c�~�||}}ddl}|j�5}|j�dz}t|d�|_|j|�}|dz
|z|z}||z}	||	z
}
||
z
}||dz
z|dz
|z|zz|	d|	z
zz}t
|�t
|j��fcddd�S#1swYyxYw)Nrr��r�)�decimal�localcontext�
bit_length�max�prec�Decimalr:�sqrt)
�nbins�nballsr�r0r��ctx�bitsru�p1empty�	meanempty�occupied�
collisions�vars
             r\�collision_statsr��s����&�q�A�$�	�	�	�	�3��|�|�~��!���t�R�=���
�_�_�Q�
����F�b�=�Q�&����K�	��y�=����\�
��"�Q�$�i�"�Q�$���Q��&��a�)�m�)D�D���Z� �%����
�"3�3�
 �	�	�s�BB3�3B<c�&�eZdZ	d�Zd�Zd�Zd�Zy)�catch_unraisable_exceptionc� �d|_d|_yra)�
unraisable�	_old_hookris r\rdz#catch_unraisable_exception.__init__s�������r[c��||_yra)r�)rer�s  r\�_hookz catch_unraisable_exception._hook!s��%��r[c�Z�tj|_|jt_|Sra)r��unraisablehookr�r�ris r\r�z$catch_unraisable_exception.__enter__&s ���+�+���!�Z�Z����r[c�2�|jt_|`yra)r�r�r�r�)re�exc_infos  r\r�z#catch_unraisable_exception.__exit__+s��!�^�^����Or[N)rWrXrYrdr�r�r�rZr[r\r�r�s���0�%�
�
r[r�r�c	��	tjdk7r�ddl}|�t}t	j
�}t
|d��D]0}tj|tj�\}}|dk7s�0n{	tj||j�tj|d�t	j
�|z
}td|�d|d�d���tj|d�\}}tj|�}	|	|k7rtd|�d	|	�d
|�d���||k7rtd|�d
|����y#t$rY��wxYw)N�ntrF��errorzprocess z is still running after �.1fz secondsz exited with code z, but exit code z is expectedzpid z != pid )r�r�rsrOr$�	monotonic�sleeping_retryr�r��killrqr��AssertionError�waitstatus_to_exitcode)
rG�exitcoder�rs�
start_timerm�pid2r��dt�	exitcode2s
          r\�wait_processr�0sU��	�
�w�w�$����?�"�G��^�^�%�
���u�5�A��:�:�c�2�:�:�6�L�D�&��q�y��6�
�����V�^�^�,��
�
�3��"�
���!�J�.�B� �8�C�5�1*�*,�S���";�<�
<��z�z�#�q�)���f��)�)�&�1�I��H���x��u�,>�y�k�J.�.6�Z�|�E�F�	F��s�{��t�D�6��#��7�8�8���#�
��
�s�66D5�5	E�Ec���	ddlm}|d�|d�}tjdk(r	|j	d��yy#t
$r}t
jd|����d}~wwxYw)Nr�)�
import_module�_multiprocessingzmultiprocessing.synchronize�linux)r�z broken multiprocessing SemLock: )�
import_helperr�r�r��Lockr�rxr�)r��synchronize�excs   r\�*skip_if_broken_multiprocessing_synchronizer�_s{���
-��$�%� � =�>�K�
�|�|�w��	P�
�����&����	P��#�#�&F�s�g�$N�O�O��	P�s�A�	A&�	A!�!A&c��	|j}|j}|dk7r|�d|��}n|�}dtj|��d�}|jt
||g|��i|��y)N�builtinsr�zcannot create 'z' instances)rXrWr6r�r�r)r��tprfr'�modr��qualnamerbs        r\r+r+xso���

�-�-�C�
�;�;�D�
�j���U�!�D�6�?���V���B�I�I�h�/�0��
<�C��H���y�#�r�A�D�A�D�Ar[c���		ddl}|j�}t|dz
d�S#ttf$rA}	d}t	j
�}|�|dz
}|j}|��d}n#d}wxYwYd}~�Zd}~wwxYw)Nrr�)rL�get_recursion_depthr?�RecursionErrorr��	_getframe�f_backr�)rL�depthr��frames    r\r�r��s����
� �!�5�5�7���u�q�y�!����
��(�
�	��E��M�M�O�E��#���
�������#�
�E��D�E��E��
�s&�&�A6�+A%�"A1�%A)�)A1�1A6c�J�	tj�}t�}||z
Sra)r��getrecursionlimitr�)r.r�s  r\�get_recursion_availabler��s)���

�!�!�#�E��!�E��5�=�r[c#��K�	tj�}	tj|�d��tj|�y#tj|�wxYw�wra)r�r��setrecursionlimit)r.�original_limits  r\�set_recursion_limitr��sI����1��*�*�,�N�.����e�$�
����n�-�����n�-���A"�A�A"�A�A"c�~�|�d}n|dkrtd��t�}t|dz
d�}||z}t|�S)Ni N�z-max_depth must be at least 3, got {max_depth}r�)r�r�r�r�)�	max_depthr�r.s   r\r?r?�sO�����	�	�Q���H�I�I��!�E����	�1��E��I��E��u�%�%r[rc�likec
�t�t�}tjdt||dt	|��d�z��|S)Nr��
(?#support�))rrcr�)�objectr�filterwarnings�DeprecationWarning�id)rcr��tokens   r\�ignore_deprecations_fromr��s<���H�E�����#���*�R��Y�K�q�1�1�	��Lr[�tokensc��|std��g}td�|D��}tjD]j\}}}}}|dk(rG|tur?t|tj�r
|j}n|xsd}|j|�r�U|j|||||f��ltj|k7r(|tjddtj�yy)Nz<Provide token or tokens returned by ignore_deprecations_fromc3�:K�|]}dt|��d����y�w)r�r�N)r�)r�r�s  r\r�z-clear_ignored_deprecations.<locals>.<genexpr>�s����D�V�E�
�2�e�9�+�Q�/�V�s�r�r)r�r�r�filtersr�r
r6�Patternr~r�r��_filters_mutated)	r��new_filtersr��actionr�rrcr�rbs	         r\�clear_ignored_deprecationsr�s�����W�X�X��K��D�V�D�D�H�5=�5E�5E�1����6�6��X��(�.@�"@��'�2�:�:�.��o�o���m����|�|�H�%�����F�G�X�v�v�F�G�6F����;�&�)�������!�!�#�'r[c��	ddl}	ddl}tj
|d�S#t$rtjdd�cYSwxYw#t$rd}Y�HwxYw)NrTzvenv: ensurepip requires zlibzvenv: pip requires ctypes)r>r?rxr�r�r@)r>r�s  r\�requires_venv_with_pipr�sc��F�������v�'B�C�C���F����t�%D�E�E�F�������s �!�A�A�A�A�Ac��	tjd�xs$tjj	t
d�}tj|�}t|d��}|D]L}|jd�s�|dz}|j|�s�,tjj	||�cStd|�d|����)	N�
WHEEL_PKG_DIR�	wheeldataT)�reversez.whlr�z
No wheel for z
 found in )r!r"r�r�r�rq�listdirrxr�r�r�)�pkgname�	wheel_dir�	filenamesrs�prefixs     r\�
_findwheelr�s����
�(�(��9��R�W�W�\�\��{�>�I��
�
�9�%�I��y�$�/�I���� � ��(���3������v�&��7�7�<�<�	�8�4�4�
��m�G�9�J�y�k�J�
K�Kr[c#�K�ddl}ddlm}|�5}tjdddd|g}t
r%t
�t
dd	j|��|j|d
��tjj||�}tjjtj�}tjdk(r"tjj|d
|�}n!tjj|d|�}|dddddtd�td�f}t
r%t
�t
dd	j|��|j|d
��|��ddd�y#1swYyxYw�w)Nrr�)�temp_cwdz-X�devz-m�venvzRun:rT)r�rW�Scripts�bin�pip�installrP�wheel)r�r�rr�rOrr�r�r�r�r�r�r�r)�venv_dirr�r�temp_dirr�r�
python_exer�s        r\�$setup_venv_with_pip_setuptools_wheelr	s�����#�	��x��~�~�t�U�D�&�(�C����G��&�#�(�(�3�-�(����s�$��'��w�w�|�|�H�h�/���W�W�%�%�c�n�n�5�
��<�<�7�"��W�W�\�\�$�	�:�>�F��W�W�\�\�$��z�:�F��t�U��U�I��,�'��'�"�$����G��&�#�(�(�3�-�(����s�$��'���5
���s�E?�EE3�*	E?�3E<�8E?�gettotalrefcountc���	|g}|j|�ddl}d�}||_|j|�t	t
d�r!d�}||_tj|��yy)Nrc��yrarZ)�encodings r\�search_funcz"late_deletion.<locals>.search_funcE	r�r[�register_at_forkc��yrarZrZr[r\�atfork_funcz"late_deletion.<locals>.atfork_funcL	r�r[)�before)r��codecs�	reference�registerr�r�r#)r��	ref_cycler'r"r%s     r\�
late_deletionr+-	sg��	�$��I�
���Y����%�K��
�O�O�K� ��r�%�&�	� )���
���;�/�'r[r�c#�K�	|dkrtd��tj�}||z}	d��tj�|k\rn�|r2tj�|z
}d|d�d�}|r|�d|��}t|��y�w)Nrz!timeout must be greater than zeroz	timeout (r�z	 seconds)r�)r�r$r�r�)r��err_msgr�r��deadliner�rbs       r\�
busy_retryr/R	s������*�!�|��<�=�=����!�J��G�#�H�
�
��>�>��x�'��	�
�
�^�^�
�
�
*���"�S���+����E��G�9�%�C��S�!�!�
�s�A>Bg{�G�z�?g�?)�
init_delay�	max_delayr�c#�K�	|}t|||��D]*}d��tj|�t|dz|�}�,y�w)Nr�r�)r/r$�sleeprA)r�r-r0r1r��delayrms       r\r�r�|	sD�����0
�E�
����
6��
��
�
�5���E�A�I�y�)��	7�s�AAc#��K�	tj�}	tj|�d��tj|�y#tj|�wxYw�wra)r��get_int_max_str_digits�set_int_max_str_digits)�
max_digits�currents  r\�adjust_int_max_str_digitsr:�	sI����H��(�(�*�G�,��"�"�:�.�
��"�"�7�+���"�"�7�+�r�i��i��uname�s390xi r�i�i�i'zskipped on s390xz.git�__pycache__c�|�t}tjj|�dk(r	|ddhz}|Sd|vr|dhz}|S)N�Doc�buildr�Modules)� _BASE_COPY_SRC_DIR_IGNORED_NAMESr�r�r�)r��names�ignoreds   r\�copy_python_src_ignorerF�	s]��.�G�	�w�w������&����	
�	
���N�
�e�	���
�	
���Nr[c#�K�tj�D])}t|t�s�|}|jdk7r�&|���+y�w)Nr�)�__builtins__rr
r�rX)r�rJs  r\�iter_builtin_typesrI�	s?�����"�"�$���#�t�$�����>�>�Z�'���	�
%�s�AAc#���K��fd�}t��}t|�}t��D]f}||vr|j|�	t	�|�}|jd�r|jd�s|||�s||vs�U�V||vr|df���a|df���h|D]}||}|�||�s�|df���y#t
$r$||vr||||�r|j
|�Y��wxYw�w)Nc�<��t|tj�syy)NFT)r
r��WrapperDescriptorType)r��valuerJs  �r\�is_slot_wrapperz+iter_slot_wrappers.<locals>.is_slot_wrapper�	s����%��!<�!<�=��r[r�TF)	�varsr�r�r�r�r�r�r�r�)rJrNr��unusedr�rMs`     r\�iter_slot_wrappersrQ�	s�������
�c��B�
��W�F��C����2�:��M�M�$��	��C��&�E����t�$�D�M�M�$�,?��t�U�+��r�z��r�z��D�j� ��E�k�!�/�2���4����3��e�,���*����'�	��r�z�o�d�B�t�H�=��
�
�4� ��	�s5�?C!�B1�/C!�?(C!�(	C!�1*C�C!�C�C!c� �eZdZdd�Zd�Zd�Zy)rTc�.�|rddz||_||_y�Nr�r)�next_raises�iter_raises)re�init_raisesrUrVs    r\rdzBrokenIter.__init__
s���
�a�C�&���&��r[c�(�|jrddzyyrT)rUris r\�__next__zBrokenIter.__next__
s�����
�a�C�r[c�(�|jrddz|SrT)rVris r\�__iter__zBrokenIter.__iter__
s�����
�a�C��r[N)FFF)rWrXrYrdrYr[rZr[r\rTrT
s��'��r[rTc�\�	tdd�D�cgc]
}t|���c}dgzScc}w)Nr� �)�range�chr)�cs r\�control_characters_c0rb$
s5���"�$��-�.�-�q�C��F�-�.�&��9�9��.s�)ra)r)z
requires zlib)z
requires gzip)zrequires bz2)z
requires lzma)z$requires co_positions / debug_ranges)r)T)NrZrZ)F)rZ)�rWr?�
contextlib�dataclassesr
r�r�r6r�r�r!r�r$r�rxrr�rLrMrNrOr�r�r��__file__�TEST_SUPPORT_DIRrqr�	REPO_ROOTr�rr	rnr
r�rr&r'rrrrr@�junit_xml_listrr�rr
r�r�rrr�r�rrrrr,r-�HAVE_ASAN_FORK_BUGr2r9r�
SOCK_MAX_SIZEr@r:�
__getformat__r�rrrrrrOrQrVr�r0r1r�r2r7r3r4r5�is_appler r!r"r#r$r%�has_strftime_extensions�strftimer��
TEST_HTTP_URLrFr�r�r�rnr>rDr�rzr�r�rr:�contextmanagerr�rrrr�r�r�r�r�r�r�r�r�r�r�r�r�rr<rrEr4r5r?�_4Gr_rBr�r=rBrErrrdrfrrirlr6r{r}r.r/r�r"�MISSING_C_DOCSTRINGSr+�HAVE_DOCSTRINGS�requires_docstringsr�r�r�r�r�r;r@r=r�r�rAr�r*r�r�r(r)rrCr-r1r4r8r3rKrGr]r8r9rmror�r�rHr�rI�total_orderingr�rJr�rKr��	hash_info�width�	NHASHBITSr�r�r�r�r+r�r�r�r?r�rr�cacherrrPr+r/r�r:rQrRr<�machine�is_s390xr�rS�	frozensetrCrFrIrQrTrrrbrZr[r\�<module>r}so	��=��~��
�F�
G�G����
�	�	��
�������(��h�����
����7�7�?�?�2�7�7�?�?�8�#<�=������� 0�1�
�
�W�W�_�_�]�
+�
��G�G�O�O�J�'�	�5�I�5����=�J�=�)�E�)��X�&�&����$����
�
�
�������
���*�
�"E$�N>�	7���6:�8��:
/� %�U�u�U��@)�e�E�e�TY�)�%�T�2����$$�
�%�
�(�H�'�'�	����!�,�,�V�4�$�&��-�-�,�-�1�:�@��l�l�g�%�
�
�L�L�#�#�F�+�	�
�S�.�
/�
��<�<�E�E�%/�!�Y�J��J�����,�
�

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