Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python311/lib64/python3.11/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python311/lib64/python3.11/test/__pycache__/test_sys.cpython-311.pyc

�

�0�i]	��$�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
ZddlmZddl
m
Z
ddlmZmZddl
mZddl
mZddl
mZddlZddlZddlZdadZGd	�d
ej��ZGd�dej��ZGd
�dej��ZGd�dej��ZejjGd�dej����ZejjGd�dej����Z e!dkrej"��dSdS)�N)�support)�	os_helper)�assert_python_ok�assert_python_failure)�threading_helper)�
import_helper)�skip_if_sanitizer�n2BI2nc� �eZdZd�Zd�Zd�ZdS)�DisplayHookTestc��tj}tj��5}|d��ddd��n#1swxYwY|�|���d��|�tjd��t`tj��5}|d��ddd��n#1swxYwY|�|���d��|�ttd����|�
t|��tj}	t`|�
t|d��|t_dS#|t_wxYw)N�*z42
��_)�sys�__displayhook__r�captured_stdout�assertEqual�getvalue�builtinsr�
assertTrue�hasattr�assertRaises�	TypeError�stdout�RuntimeError)�self�dh�outrs    �4/opt/alt/python311/lib64/python3.11/test/test_sys.py�test_original_displayhookz)DisplayHookTest.test_original_displayhooks���
�
 ��
�
$�
&�
&�	�#��B�r�F�F�F�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
���������0�0�0������R�(�(�(��J�
�
$�
&�
&�	�#��B�t�H�H�H�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
���������,�,�,����G�H�c�2�2�2�3�3�3�	
���)�R�(�(�(����	 ��
����l�B��3�3�3��C�J�J�J���C�J����s*�8�<�<�%B=�=C�C�#E2�2Fc���tj}	t`tddd��}|�tt
|��|t_dS#|t_wxYw)N�42�<string>�single)r�displayhook�compilerr�eval)rr&�codes   r �test_lost_displayhookz%DisplayHookTest.test_lost_displayhook:sZ���o��	*����4��X�6�6�D����l�D�$�7�7�7�)�C�O�O�O��k�C�O�)�)�)�)s�9A�A#c���d�}tjtd|��5tddd��}|�t
t|��ddd��dS#1swxYwYdS)Nc��t��N��
ValueError)�objs r �baddisplayhookz?DisplayHookTest.test_custom_displayhook.<locals>.baddisplayhookD�����r&r#r$r%)r�	swap_attrrr'rr/r()rr1r)s   r �test_custom_displayhookz'DisplayHookTest.test_custom_displayhookCs���	�	�	��
�s�M�>�
B�
B�	6�	6��4��X�6�6�D����j�$��5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�	6�	6s�3A�A#�&A#N)�__name__�
__module__�__qualname__r!r*r5�r3r rrsA������ � � �6*�*�*�6�6�6�6�6r3rc�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�ActiveExceptionTestsc�T�|�tj��d��dS)N�NNN)rr�exc_info�rs r �test_exc_info_no_exceptionz/ActiveExceptionTests.test_exc_info_no_exceptionLs%���������);�<�<�<�<�<r3c�T�|�tj��d��dSr-)rr�	exceptionr?s r �test_sys_exception_no_exceptionz4ActiveExceptionTests.test_sys_exception_no_exceptionOs$���������$�/�/�/�/�/r3c�n�d�}	|��n,#t$r}|}tj��}Yd}~nd}~wwxYw|�|t��|�|dt��|�|d|��|�|d|j��dS)Nc� �td����Nrr.r9r3r �fzEActiveExceptionTests.test_exc_info_with_exception_instance.<locals>.fS����R�.�.� r3r����	Exceptionrr>�assertIsInstancer/�assertIs�
__traceback__�rrG�e_�er>s     r �%test_exc_info_with_exception_instancez:ActiveExceptionTests.test_exc_info_with_exception_instanceRs���	!�	!�	!�	&�
�A�C�C�C�C���	&�	&�	&��A��|�~�~�H�H�H�H�H�H�����	&����	
���a��,�,�,��
�
�h�q�k�:�.�.�.��
�
�h�q�k�1�%�%�%��
�
�h�q�k�1�?�3�3�3�3�3��
�
9�4�9c�n�d�}	|��n,#t$r}|}tj��}Yd}~nd}~wwxYw|�|t��|�|dt��|�|d|��|�|d|j��dS)Nc��t�r-r.r9r3r rGzAActiveExceptionTests.test_exc_info_with_exception_type.<locals>.fbr2r3rrIrJrKrPs     r �!test_exc_info_with_exception_typez6ActiveExceptionTests.test_exc_info_with_exception_typeas���	�	�	�	&�
�A�C�C�C�C���	&�	&�	&��A��|�~�~�H�H�H�H�H�H�����	&����	
���a��,�,�,��
�
�h�q�k�:�.�.�.��
�
�h�q�k�1�%�%�%��
�
�h�q�k�1�?�3�3�3�3�3rTc���d�}	|��n,#t$r}|}tj��}Yd}~nd}~wwxYw|�|t��|�||��dS)Nc� �td���rFr.r9r3r rGzJActiveExceptionTests.test_sys_exception_with_exception_instance.<locals>.fqrHr3�rLrrBrMr/rN�rrGrQrR�excs     r �*test_sys_exception_with_exception_instancez?ActiveExceptionTests.test_sys_exception_with_exception_instanceps���	!�	!�	!�	"�
�A�C�C�C�C���	"�	"�	"��A��-�/�/�C�C�C�C�C�C�����	"����	
���a��,�,�,��
�
�c�1�����rTc���d�}	|��n,#t$r}|}tj��}Yd}~nd}~wwxYw|�|t��|�||��dS)Nc��t�r-r.r9r3r rGzFActiveExceptionTests.test_sys_exception_with_exception_type.<locals>.f~r2r3rZr[s     r �&test_sys_exception_with_exception_typez;ActiveExceptionTests.test_sys_exception_with_exception_type}s���	�	�	�	"�
�A�C�C�C�C���	"�	"�	"��A��-�/�/�C�C�C�C�C�C�����	"����	
���a��,�,�,��
�
�c�1�����rTN)	r6r7r8r@rCrSrWr]r`r9r3r r;r;Ksn������=�=�=�0�0�0�
4�
4�
4�
4�
4�
4��������r3r;c� �eZdZd�Zd�Zd�ZdS)�ExceptHookTestc��	td���#t$rT}tj��5}tjtj���ddd��n#1swxYwYYd}~nd}~wwxYw|�|����d����|�	ttj��dS)Nr�ValueError: 42
)r/r�captured_stderrr�__excepthook__r>rr�endswithrr�rr\�errs   r �test_original_excepthookz'ExceptHookTest.test_original_excepthook�s���	4��R�.�.� ���	4�	4�	4��(�*�*�
4�c��"�C�L�N�N�3�3�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4����
4�
4�
4�
4����������	4����	
��������/�/�0B�C�C�D�D�D����)�S�%7�8�8�8�8�8s7��
A/�A*� A�A*�A	�A*�!A	�"A*�*A/c�D�tj��5tjdt��	t	dd���#t$rT}tj��5}tjtj	���ddd��n#1swxYwYYd}~nd}~wwxYwddd��n#1swxYwY|�
��}|�d|��|�d|��|�|�
d����dS)N�ignore�msg)sbytes_filename�{r�textz%  File "b'bytes_filename'", line 123
z	    text
zSyntaxError: msg
)�warnings�catch_warnings�simplefilter�BytesWarning�SyntaxErrorrrerrfr>r�assertInrrgrhs   r �test_excepthook_bytes_filenamez-ExceptHookTest.test_excepthook_bytes_filename�s����
$�
&�
&�	8�	8��!�(�L�9�9�9�
8�!�%�)L�M�M�M���
8�
8�
8��,�.�.�8�#��&�����7�7�8�8�8�8�8�8�8�8�8�8�8����8�8�8�8����������
8����	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8��l�l�n�n���
�
�B�C�H�H�H��
�
�&��,�,�,�������%9�:�:�;�;�;�;�;sX�B-�A�
B�
B� B	�=B�	B
�
B�B
�B�B-�B�B-�-B1�4B1c���tj�d��5}tjddd��ddd��n#1swxYwY|�d|���v��dS)N�stderrrI�1zETypeError: print_exception(): Exception expected for value, str found)�testr�captured_outputr�
excepthookrr)rrxs  r �test_excepthookzExceptHookTest.test_excepthook�s���
�\�
)�
)�(�
3�
3�	&�v��N�1�c�1�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&����,�/5���/@�/@�A�	B�	B�	B�	B�	Bs�A�A�
AN)r6r7r8rjrvr}r9r3r rbrb�sF������	9�	9�	9�<�<�<�"B�B�B�B�Br3rbc�f�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
jjd���Z
d	�Zd
�Zejeed��d��d
���Ze
jjd���Zd�Zejej��d�����Zeddd���ejej��ej��ejd��d�����������Zejej��d�����Z d�Z!d�Z"ejej#d��d���Z$d�Z%d�Z&d�Z'd�Z(d�Z)d �Z*d!�Z+e
jjd"���Z,ej-��d#���Z.eje/j0d$��ejej1��e2j3d%��kd&��ej-��d'�������Z4ej5ej6ej7kd(��ej-��d)�����Z8dDd+�Z9d,�Z:dEd-�Z;d.�Z<ej-��d/���Z=ej-��d0���Z>d1�Z?e
jjd2���Z@ejeed3��d4��d5���ZAd6�ZBd7�ZCd8�ZDejeed9��d:��d;���ZEej-��d<���ZFd=�ZGejeed>��d?��d@���ZHej-��dA���ZIdB�ZJdC�ZKd*S)F�
SysModuleTestc�B�tj���dSr-)rzr�
reap_childrenr?s r �tearDownzSysModuleTest.tearDown�s����"�"�$�$�$�$�$r3c�����ttjdd����t��5}tj��ddd��n#1swxYwY��|jj��tdd��\}}}��	|d����	|d����	|d����t��5}tjd��ddd��n#1swxYwY��	|jjd����t��5}tjd��ddd��n#1swxYwY��	|jjd����t��5}tjd��ddd��n#1swxYwY��	|jjd����t��5}tjd��ddd��n#1swxYwY��	|jjd��tdd	��\}}}��	|d
����	|d����	|d���fd�}|dd
��|dd��|ddd���dS)Nr�-czimport sys; sys.exit()rr3)r�exit)��zraise SystemExit(47)�/c���td|fi|��\}}}��|d����|d����|�|��t	|���dt	|������dS)Nr�rIr3z doesn't start with )rrr�
startswith�ascii)r)�expected�env_vars�rcrrirs      �r �check_exit_messagez3SysModuleTest.test_exit.<locals>.check_exit_message�s����0��t�H�H�x�H�H�L�B��S����R��#�#�#����S�#�&�&�&��O�O�C�N�N�8�4�4�.3�C�j�j�j�j�%��/�/�/�J�
L�
L�
L�
L�
Lr3z?import sys; sys.stderr.write("unflushed,"); sys.exit("message")sunflushed,messagez)import sys; sys.exit("surrogates:\uDCFF")ssurrogates:\udcffzimport sys; sys.exit("h\xe9")sh�zlatin-1)�PYTHONIOENCODING)rrrr��
SystemExit�assertIsNonerBr)rrr)r�cmr�rrir�s`     r �	test_exitzSysModuleTest.test_exit�s)������)�S�X�r�2�6�6�6��
�
�z�
*�
*�	�b��H�J�J�J�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	����"�,�+�,�,�,�'��.F�G�G���C������Q��������c�"�"�"�����c�"�"�"��
�
�z�
*�
*�	�b��H�R�L�L�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	������*�B�/�/�/��
�
�z�
*�
*�	�b��H�U�O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	������*�B�/�/�/��
�
�z�
*�
*�	�b��H�V����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	������*�F�3�3�3��
�
�z�
*�
*�	�b��H�X����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	������*�H�5�5�5�-�T�3I�J�J���C������R� � � �����c�"�"�"�����c�"�"�"�	L�	L�	L�	L�	L�	��N� �	"�	"�	"�	��8�!�	#�	#�	#�	��,��y�	2�	2�	2�	2�	2�	2sZ�A#�#A'�*A'�=D�D"�%D"�#F�F�F�	G*�*G.�1G.�/I�I�Ic��|�ttjd��|�tj��t
��dSrF)rrr�getdefaultencodingrM�strr?s r �test_getdefaultencodingz%SysModuleTest.test_getdefaultencoding�sB�����)�S�%;�R�@�@�@����c�4�6�6��<�<�<�<�<r3c�t�|�ttj��|�ttjd��|�ttjd��|�ttjd��tj��}|�|dk|��	ddd|fD]=}tj|��|�tj��|���>	tj|��dS#tj|��wxYw)N�ag�gg�?g�h㈵��>g�������?g@)rrr�setswitchintervalr/�getswitchintervalr�assertAlmostEqual)r�orig�ns   r �test_switchintervalz!SysModuleTest.test_switchintervals�����)�S�%:�;�;�;����)�S�%:�C�@�@�@����*�c�&;�T�B�B�B����*�c�&;�S�A�A�A��$�&�&������s�
�D�)�)�)�	(��d�C��-�
C�
C���%�a�(�(�(��&�&�s�'<�'>�'>��B�B�B�B�
C�
�!�$�'�'�'�'�'��C�!�$�'�'�'�'���s
�AD!�!D7c���tj��}|�|t��|�|d��|�ttjd��dS)NrIr)r�getrecursionlimitrM�int�
assertGreaterrr)r�limits  r �test_getrecursionlimitz$SysModuleTest.test_getrecursionlimits]���%�'�'�����e�S�)�)�)����5�!�$�$�$����)�S�%:�B�?�?�?�?�?r3c��tj��}	tjd��|�tj��d��|�t
tj��|�ttjd��tj|��dS#tj|��wxYw)Ni'i���)rr��setrecursionlimitrrrr/)r�	old_limits  r �test_setrecursionlimitz$SysModuleTest.test_setrecursionlimits����)�+�+�	�	-��!�&�)�)�)����S�2�4�4�f�=�=�=����i��)>�?�?�?����j�#�*?��E�E�E��!�)�,�,�,�,�,��C�!�)�,�,�,�,���s�BB1�1Cc�V��ttd��r(tj��r|�d��tj��}�fd��	dD]�}	tj|��n#t$rY�$wxYw|�t��5���ddd��n#1swxYwY|�t��5���ddd��n#1swxYwY��	tj|��dS#tj|��wxYw)N�gettracez(fatal error if run with a trace functionc������dSr-r9)rGs�r rGz5SysModuleTest.test_recursionlimit_recovery.<locals>.f(s���
�A�C�C�C�C�Cr3)�2�K�d���)rrr��skipTestr�r��RecursionErrorr)rr��depthrGs   @r �test_recursionlimit_recoveryz*SysModuleTest.test_recursionlimit_recovery#s�����3�
�#�#�	F�����	F��M�M�D�E�E�E��)�+�+�	�	�	�	�	�	�	-�1�

�

����)�%�0�0�0�0��%�����H������&�&�~�6�6����A�C�C�C��������������������&�&�~�6�6����A�C�C�C��������������������

�
�!�)�,�,�,�,�,��C�!�)�,�,�,�,���sx�D�A2�1D�2
A?�<D�>A?�?D�B3�'D�3B7	�7D�:B7	�;D�C/�#D�/C3	�3D�6C3	�7D�D(c�f�tj��}	tj��}|�tj��|���5tj|dz��tj|��|�t��5}tj|dz��ddd��n#1swxYwY|�t|j
��d��ddd��n#1swxYwYtj|��dS#tj|��wxYw)N)r�r�rJrIz\cannot set the recursion limit to [0-9]+ at the recursion depth [0-9]+: the limit is too low)rr�r�get_recursion_depth�subTestr�rr��assertRegexr�rB)rr�r�r�s    r �test_setrecursionlimit_to_depthz-SysModuleTest.test_setrecursionlimit_to_depth<s���
�)�+�+�	�	-��/�1�1�E����C�$9�$;�$;�5��I�I�
9�
9��%�e�a�i�0�0�0��%�i�0�0�0��&�&�~�6�6�5�"��)�%�!�)�4�4�4�5�5�5�5�5�5�5�5�5�5�5����5�5�5�5�� � ��R�\�!2�!2�"8�9�9�9�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9����
9�
9�
9�
9�
�!�)�,�,�,�,�,��C�!�)�,�,�,�,���sT�;D�AC9�B:�.C9�:B>	�>C9�B>	�+C9�-D�9C=�=D�C=�D�D0c��tj�td��tj��}|�t
|��d��|�|dt��|�|dt��|�|dt��|�|dt��|�|dt��|�
ttj
|d��|�|jt��|�|jt��|�|jt��|�|jt��|�|jt��|�|jt��|�|jt��|�|jt��|�|jt��|�|d|j��|�|d|j��|�|d|j��|�|d|j��|�|d|j��tj��\}}}}}dS)N�getwindowsversion�rrIrJ��)rzr�
get_attributerr�r�lenrMr�r�r�
IndexError�operator�getitem�major�minor�build�platform�service_pack�service_pack_minor�service_pack_major�
suite_mask�product_type)r�v�maj�min�buildno�plat�csds       r �test_getwindowsversionz$SysModuleTest.test_getwindowsversionTsi����"�"�3�(;�<�<�<��!�#�#������Q����#�#�#����a��d�C�(�(�(����a��d�C�(�(�(����a��d�C�(�(�(����a��d�C�(�(�(����a��d�C�(�(�(����*�h�&6��1�=�=�=����a�g�s�+�+�+����a�g�s�+�+�+����a�g�s�+�+�+����a�j�#�.�.�.����a�n�c�2�2�2����a�2�C�8�8�8����a�2�C�8�8�8����a�l�C�0�0�0����a�n�c�2�2�2�����1��q�w�'�'�'�����1��q�w�'�'�'�����1��q�w�'�'�'�����1��q�z�*�*�*�����1��q�~�.�.�.�(+�'<�'>�'>�$��S�'�4���r3c�^�|�ttjtd��dS)NrJ)rrr�call_tracing�typer?s r �test_call_tracingzSysModuleTest.test_call_tracingrs%�����)�S�%5�t�Q�?�?�?�?�?r3�setdlopenflagsztest needs sys.setdlopenflags()c��|�ttd����|�ttjd��tj��}|�ttj��tj|dz��|�tj��|dz��tj|��dS)N�getdlopenflagsrrI)rrrrrr�r�r)r�oldflagss  r �test_dlopenflagszSysModuleTest.test_dlopenflagsus���	
�����%5�6�6�7�7�7����)�S�%7��<�<�<��%�'�'�����)�S�%7�8�8�8���8�A�:�&�&�&�����+�-�-�x��z�:�:�:���8�$�$�$�$�$r3c��|�ttj��tjd��}da|�tjd��|dz��b|�tjd��|��t
td��r.|�tj��t��dSdS)NrI�gettotalrefcount)
rrr�getrefcountr�rrrMr�r�)r�cs  r �
test_refcountzSysModuleTest.test_refcount�s���	
���)�S�_�5�5�5��O�D�!�!����������.�.��!��4�4�4�
�������.�.��2�2�2��3�*�+�+�	?��!�!�#�"6�"8�"8�#�>�>�>�>�>�	?�	?r3c��|�ttjdd��|�ttjd��|�tjjtj��j	u��dS)Nri�5w)
rrr�	_getframer/rr�
test_getframe�__code__�f_coder?s r r�zSysModuleTest.test_getframe�sr�����)�S�]�B��;�;�;����*�c�m�Z�@�@�@�����'�0��}���%�
&�	
�	
�	
�	
�	
r3c�������ddl�ddl}����������g��fd�}����fd����|���}|�������|�t���d���d}tj	��}|D]3}|�
|t��|�|d���4��
��}|�||��|�||��|�|��}|�|tj��u��|�|��}|�|��}	t'|	��D]\}
\}}}
}|
dkrn�|�d��|�|d��|	|
dz\}}}
}|�|
d	��|�|d
dg������|���dS)Nrc������dSr-r9��g456s�r �f123z/SysModuleTest.test_current_frames.<locals>.f123������D�F�F�F�F�Fr3c�������������������dSr-)�append�	get_ident�set�wait��	entered_g�leave_g�thread_info�	threadings����r r�z/SysModuleTest.test_current_frames.<locals>.g456�sA������y�2�2�4�4�5�5�5��M�M�O�O�O��L�L�N�N�N�N�Nr3��targetrIr��)didn't find f123() on thread's call stack�g456()r�zleave_g.wait()zentered_g.set())r��	traceback�Event�Thread�startr�rr�r�_current_framesrMr�r�r�ru�poprr��
extract_stack�	enumerate�failr��join)rr�r��t�	thread_id�d�tid�main_id�frame�stack�i�filename�lineno�funcname�
sourceliner�r�r�r�r�s               @@@@@r �test_current_framesz!SysModuleTest.test_current_frames�s��������	��������
�O�O�%�%�	��/�/�#�#����	�	�	�	�	�	�	�	�	�	�	�	�	�

���D��)�)��	���	�	�	�������
	
����[�)�)�1�-�-�-���N�	���!�!���	'�	'�C��!�!�#�s�+�+�+����s�A�&�&�&�&��%�%�'�'���
�
�g�q�!�!�!��
�
�i��#�#�#����g������������0�1�1�1�
���i� � ���'�'��.�.��;D�U�;K�;K�	C�	C�7�A�7��&�(�J��6�!�!���"�
�I�I�A�B�B�B�����X�.�.�.�27�q��s��.��&�(�J�����6�*�*�*��
�
�j�#3�5F�"G�H�H�H�	���
�
�
�	�������r3Tz4Test too slow when the address sanitizer is enabled.)�memory�address�reason�cpuc���ddl}ddl}ddl}Gd�d����fd�}d}d}tj��}|rM	tj|dt
j���dS#t$rtj	||j
���wxYwg}t|��D]C}	|�||f�	��}
|�
|
��|
����D|D]}|����tjd��dS)
zF
        Reproduce the bug raised in GH-106883 and GH-116969.
        rNc��eZdZd�Zd�ZdS)�ISysModuleTest.test_current_frames_exceptions_deadlock.<locals>.MockObjectc��ttd����|_tj��|_tj��|_dS)Ni')�list�range�_listrr�_trace�_current_exceptions�_exceptionsr?s r �__init__zRSysModuleTest.test_current_frames_exceptions_deadlock.<locals>.MockObject.__init__�s>��!�%��,�,�/�/��
�!�1�3�3���#&�#:�#<�#<�� � � r3c��dSr-r9r?s r �__del__zQSysModuleTest.test_current_frames_exceptions_deadlock.<locals>.MockObject.__del__�s	���r3N)r6r7r8r"r$r9r3r �
MockObjectr�s2������
=�
=�
=�

�

�

�

�

r3r%c�D��d}t|��D]}���}�
dSr-)r)�num_objectsr0rr%s   �r �thread_functionzNSysModuleTest.test_current_frames_exceptions_deadlock.<locals>.thread_functions6����C��;�'�'�
#�
#�� �j�l�l���
#�
#r3r�rJ)�exitcode�timeout)r��args)r��time�signal�os�forkr�wait_process�
SHORT_TIMEOUT�KeyboardInterrupt�kill�SIGTERMrr�r�rr�_exit)
rr�r,r-r(�NUM_OBJECTS�NUM_THREADS�pid�threadsr�threadrr%s
            @r �'test_current_frames_exceptions_deadlockz5SysModuleTest.test_current_frames_exceptions_deadlock�sn���	���������
�
�
�	�	�	�	�	�	�	�	�.	#�	#�	#�	#�	#������g�i�i���	�
��$�S�1�g�>S�T�T�T�T�T�T��$�
�
�
����V�^�,�,�,��
�����G��;�'�'�
�
��"�)�)�*�+��*�������v�&�&�&���������
�
����������H�Q�K�K�K�K�Ks�!A�&Bc�������ddl�ddl}����������g��fd�}����fd����|���}|�������|�t���d���d}tj	��}|D]3}|�
|t��|�|d���4��
��}|�||��|�||��|�d|�|����|�|��\}}	}
|�|
j��}t%|��D]\}\}
}}}|dkrn�|�d��|�|d	��||dz\}
}}}|�|d
��|�|�d��������|���dS)Nrc������dSr-r9r�s�r r�z3SysModuleTest.test_current_exceptions.<locals>.f123-r�r3c���������������		td���#t$r&��t
j���rYdSYnwxYw�D)NT�oops)r*)r�r�r�r/r�r�LONG_TIMEOUTr�s����r r�z3SysModuleTest.test_current_exceptions.<locals>.g4560s�������y�2�2�4�4�5�5�5��M�M�O�O�O�
��$�V�,�,�,��!�����|�|�G�,@�|�A�A�����������
s�A�*A>�=A>r�rIr=r�r�r�r�zif leave_g.wait()r�r�r�r�rr�rr�rr rMr�r�r�rurr�tb_framerrrr�r�r)rr�r�rrr	r
r�exc_type�	exc_value�exc_tbr
rrrrrr�r�r�r�r�s                 @@@@@r �test_current_exceptionsz%SysModuleTest.test_current_exceptions s��������	��������
�O�O�%�%�	��/�/�#�#����	�	�	�	�	�	�	�	�	�	�	�	�	�
���D��)�)��	���	�	�	�������
	
����[�)�)�1�-�-�-���N�	��#�%�%���	'�	'�C��!�!�#�s�+�+�+����s�A�&�&�&�&��%�%�'�'���
�
�g�q�!�!�!��
�
�i��#�#�#����+�Q�U�U�7�^�^�<�<�<�
'(�e�e�I�&6�&6�#��)�V��'�'���8�8��;D�U�;K�;K�	C�	C�7�A�7��&�(�J��6�!�!���"�
�I�I�A�B�B�B�����X�.�.�.�27�q��s��.��&�(�J�����6�*�*�*����
�-�-�.@�A�A�B�B�B�	���
�
�
�	�������r3c�\�|�tjt��|�tjt
��tjD]}|�|t���|�tjt
��tjD]}|�|t���|�tj	d��|�tj
t��|�tjt��|�tj
t��|�tjt��|�tjt��|�t#tj��d��|�tjjd��|�t#tj��d��|�tjjdzdk��|�tjjdk��|�tjjd��|�tjjd	��|�tjjtjj��|�t9tjj��t��|�t9tjj��t��|�tjjt��|�tjjt��|�tjt��|�t#tj��d
��|�tjj dtjj!z��tEdd	��D]k}|�tG|tjj dz
tjj ��dd�$tjj �����l|�tjj%t��|�tjj&t��|�tjj't��tQj)d��}tjj*d
vr�|�tjj+ddh��|�tjj,hd���|dkr&|�tjj*d��n�|dkr&|�tjj*d��nj|dkr&|�tjj*d��n>|�tjj*hd
���n|�|d��|�tjj-d��|�tjj-d��|�tj.t��|�tj/t��|�tj/d��|�tj0t��|�tj1t��|�tj2t��|�tj3t��|�tj4t��tj5}|�|dd�t��|�t#|��d��|�|dt��|�|dt��|�|dt��|�|dd��|�|dt��|�|j6t��|�|j7t��|�|j8t��|�|j9d��|�|j:t��|�|d|j6��|�|d|j7��|�|d|j8��|�|d|j9��|�|d|j:��|�|dk��|�tj;t��|�tj;d��tj0�<d��s'|�tj=t��dSdS)N)�little�big�rJr�r�rrIi�r��	z'sys.hash_info.modulus {} is a non-prime�Py_HASH_ALGORITHM>�fnv�	siphash13�	siphash24� �@>rOrP�rNrLr�rM�i����alpha�beta�	candidate�final)rIrr)�short�legacy�win)>rMr�api_versionr��argvrr��	orig_argvru�	byteorder�builtin_module_names�tuple�	copyright�exec_prefix�base_exec_prefix�
executablerr��
float_info�radix�int_infor�bits_per_digit�sizeof_digit�assertGreaterEqual�default_max_str_digits�str_digits_check_thresholdr�r��
hexversion�	hash_info�
assertLess�modulus�widthr�pow�format�inf�nan�imag�	sysconfig�get_config_var�	algorithm�	hash_bits�	seed_bits�cutoff�maxsize�
maxunicoder��prefix�base_prefix�
platlibdir�version�version_infor�r��micro�releaselevel�serial�float_repr_styler��abiflags)r�arg�x�algo�vis     r �test_attributeszSysModuleTest.test_attributesds�����c�o�s�3�3�3����c�h��-�-�-��8�	,�	,�C��!�!�#�s�+�+�+�+����c�m�T�2�2�2��=�	,�	,�C��!�!�#�s�+�+�+�+��
�
�c�m�%6�7�7�7����c�6��>�>�>����c�m�S�1�1�1����c�o�s�3�3�3����c�2�C�8�8�8����c�n�c�2�2�2�����S�^�,�,�b�1�1�1������-�q�1�1�1�����S�\�*�*�A�.�.�.������3�a�7�1�<�=�=�=������1�Q�6�7�7�7������ C�S�I�I�I������ G��M�M�M����3�<�>��<�B�	D�	D�	D�����c�l�9�:�:�C�@�@�@�����c�l�7�8�8�#�>�>�>����c�l�A�3�G�G�G����c�l�E�s�K�K�K����c�n�c�2�2�2�����S�]�+�+�Q�/�/�/�����
�-�q�#�-�2E�/E�F�F�F��q�#���	�	�A�����A�s�}�,�Q�.��
�0E�F�F��9�@�@��M�)�+�+�
�
�
�
�	
���c�m�/��5�5�5����c�m�/��5�5�5����c�m�0�#�6�6�6��'�(;�<�<���=�"�&G�G�G��M�M�#�-�1�B��8�<�<�<��M�M�#�-�1�=�=�=�A�A�A��q�y�y�� � ���!8�+�F�F�F�F������ � ���!8�%�@�@�@�@������ � ���!8�+�F�F�F�F��
�
�c�m�5�7X�7X�7X�Y�Y�Y�Y�
���T�1�%�%�%�����
� 4�a�8�8�8�����
�,�a�0�0�0����c�k�3�/�/�/����c�n�c�2�2�2�������2�2�2����c�l�C�0�0�0����c�j�#�.�.�.����c�o�s�3�3�3����c�n�c�2�2�2����c�k�3�/�/�/�
�
�����b����e�U�+�+�+�����R���!�$�$�$����b��e�S�)�)�)����b��e�S�)�)�)����b��e�S�)�)�)��
�
�b��e�D�E�E�E����b��e�S�)�)�)����b�h��,�,�,����b�h��,�,�,����b�h��,�,�,��
�
�b�o�'N�O�O�O����b�i��-�-�-�����A����)�)�)�����A����)�)�)�����A����)�)�)�����A����0�0�0�����A���	�*�*�*�����W��%�%�%����c�2�C�8�8�8��
�
�c�*�,?�@�@�@��|�&�&�u�-�-�	5��!�!�#�,��4�4�4�4�4�	5�	5r3c�Z�tj}|�t|��d��|�|jd��|�|jd��tj�d��r|�|jd��dStjdkr|�|jd��dStjdkr|�|jdd	h��dStjd
kr|�|jd	��dSdS)Nr�)�nt�pthread�
pthread-stubs�solarisN)�	semaphorez
mutex+condN)�linux�freebsdr��win32r��
emscriptenr��wasi)	rr�rr�ru�name�lockr�r�)r�infos  r �test_thread_infozSysModuleTest.test_thread_info�s���������T���A�&�&�&��
�
�d�i�!T�U�U�U��
�
�d�i�!B�C�C�C��<�"�"�#7�8�8�	9����T�Y�	�2�2�2�2�2�
�\�W�
$�
$����T�Y��-�-�-�-�-�
�\�\�
)�
)��M�M�$�)�i��%A�B�B�B�B�B�
�\�V�
#�
#����T�Y��8�8�8�8�8�$�
#r3zonly available on Emscriptenc���|�ttj��d��|�tjjt��|�tjjttd��f��|�tjj
t��|�tjjt��dS)Nr�)
rr�r�_emscripten_inforM�emscripten_versionr`�runtimer�r��pthreads�bool�
shared_memoryr?s r �test_emscripten_infoz"SysModuleTest.test_emscripten_info�s�������S�1�2�2�A�6�6�6����c�2�E�u�M�M�M����c�2�:�S�$�t�*�*�<M�N�N�N����c�2�;�T�B�B�B����c�2�@�$�G�G�G�G�Gr3c�n�|�tjjtjj��dSr-)rr�
__stdout__�encoding�
__stderr__r?s r �
test_43581zSysModuleTest.test_43581�s*��	
�����0�#�.�2I�J�J�J�J�Jr3c��tdz
a|�ttj��dtt��z}|�tj|��|u��|������}|�tj|��|u��Gd�dt
��}|�ttj|d����dS)NrIznever interned beforec��eZdZd�ZdS)�$SysModuleTest.test_intern.<locals>.Sc��dS)Nrnr9r?s r �__hash__z-SysModuleTest.test_intern.<locals>.S.__hash__�����sr3N)r6r7r8r�r9r3r �Sr���#������
�
�
�
�
r3r��abc)�INTERN_NUMRUNSrrr�internr�r�swapcase)r�s�s2r�s    r �test_internzSysModuleTest.test_intern�s����!������)�S�Z�0�0�0�#�c�.�&9�&9�9������
�1�
�
��*�+�+�+�
�Z�Z�\�\�
"�
"�
$�
$������
�2���!�+�,�,�,�	�	�	�	�	��	�	�	�	
���)�S�Z���5���:�:�:�:�:r3c	�d�|�tj��d}|D]~}|�ttj|��|��|dvrtnt
}|�tttj|����||���|�ttj����|�ttj��t|����|�tjjhd���dS)N)�debug�inspect�interactive�optimize�dont_write_bytecode�no_user_site�no_site�ignore_environment�verbose�
bytes_warning�quiet�hash_randomization�isolated�dev_mode�	utf8_mode�warn_default_encoding�	safe_path�int_max_str_digits)r�r�>rrIrJ)
rr�flagsrr�r�rr��getattr�reprr�rur�)r�attrs�attr�	attr_types    r �test_sys_flagszSysModuleTest.test_sys_flags�s�������	�"�"�"�M���	N�	N�D��O�O�G�C�I�t�4�4�d�;�;�;� $�(A� A� A���s�I����T�'�#�)�T�":�":�;�;�Y��M�M�M�M�����S�Y���(�(�(�����S�Y����U���4�4�4��
�
�c�i�)�9�9�9�5�5�5�5�5r3c�4�|}t|��}|�t��5||��ddd��n#1swxYwY|�t��5|�||��ddd��dS#1swxYwYdSr-)r�rr�__new__)r�sys_attrr�r�s    r �assert_raise_on_new_sys_typez*SysModuleTest.assert_raise_on_new_sys_types������N�N�	�
�
�
�y�
)�
)�	�	��I�c�N�N�N�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	.�	.����i��-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	.�	.s#�A�A�A�)B
�
B�Bc�D�|�tj��dSr-)r�rr�r?s r �test_sys_flags_no_instantiationz-SysModuleTest.test_sys_flags_no_instantiation
s���)�)�#�)�4�4�4�4�4r3c�D�|�tj��dSr-)r�rr�r?s r �&test_sys_version_info_no_instantiationz4SysModuleTest.test_sys_version_info_no_instantiations���)�)�#�*:�;�;�;�;�;r3c��tj�td��|�tj����dS)Nr�)rzrr�rr�r�r?s r �+test_sys_getwindowsversion_no_instantiationz9SysModuleTest.test_sys_getwindowsversion_no_instantiations>����"�"�3�(;�<�<�<��)�)�#�*?�*A�*A�B�B�B�B�Br3c�,�tj��dSr-)r�_clear_type_cacher?s r �test_clear_type_cachez#SysModuleTest.test_clear_type_caches��������r3c��ttj��}d|d<tjt
jddgtj|���}|���d�	��}dtj
z�d��}|�||��d|d<tjt
jddgtj|���}|���d�	��}|�|d	��d
|d<tjt
jddgtjtj|���}|���\}}|�|d��|�
d
|��|�
d|��d|d<tjt
jddgtjtj|���}|���\}}|�|d��|�
d
|��|�
d|��d|d<tjt
jddgtj|���}|���d�	��}|�|d��dS)N�cp424r�r�zprint(chr(0xa2))�r�envr�¢z
ascii:replace�?r�)rrxr�r3sUnicodeEncodeError:s'\xa2'zascii:z:surrogateescapezprint(chr(0xdcbd))��)�dictr.�environ�
subprocess�Popenrrd�PIPE�communicate�strip�linesep�encoderru)rr��prr�ris      r �test_ioencodingzSysModuleTest.test_ioencodings����2�:����
#*������c�n�d�4F�G�&0�o�3�
@�
@�
@���m�m�o�o�a� �&�&�(�(���R�Z�'�/�/��8�8������h�'�'�'�"1������c�n�d�4F�G�&0�o�3�
@�
@�
@���m�m�o�o�a� �&�&�(�(������d�#�#�#�")������c�n�d�4F�G�$.�O�J�O�!$�
&�
&�
&���=�=�?�?���S�����c�"�"�"��
�
�,�c�2�2�2��
�
�j�#�&�&�&�"*������c�n�d�4F�G�$.�O�J�O�!$�
&�
&�
&���=�=�?�?���S�����c�"�"�"��
�
�,�c�2�2�2��
�
�j�#�&�&�&�"4������c�n�d�4H�I�$.�O��
>�
>�
>���m�m�o�o�a� �&�&�(�(������g�&�&�&�&�&r3z*requires OS support of non-ASCII encodingsFz$requires FS encoding to match localec�t�ttj��}d|d<tjt
jddtjzgtj	|���}|�
��d���}|�|tj
tj����dS)Nrr�r�z	print(%a)r�r)r�r.r�r�r�rrdr�FS_NONASCIIr�r�r�r�fsencode)rr�r�rs    r �test_ioencoding_nonasciiz&SysModuleTest.test_ioencoding_nonasciiHs����2�:����"$������c�n�d� +�i�.C� C�E�'1��C�
A�
A�
A���m�m�o�o�a� �&�&�(�(������b�k�)�*?�@�@�A�A�A�A�Ar3zTest is not venv-compatiblec
��|�tj�tj��tj��tj�tj�tj����}tj	gd�tjtj
|���}|���d}|����
d��}|���|�|dt!tj�dd����g��dS)N)�nonexistentr�zEimport sys; print(sys.executable.encode("ascii", "backslashreplace")))rdr�cwdr�ASCIIzb''r��backslashreplace)rr.�path�abspathrrd�dirname�realpathr�r�r�r�r��decoder�rur�r�)r�
python_dirr�rrds     r �test_executablezSysModuleTest.test_executableWs��
	
���������8�8�#�.�I�I�I��W�_�_�R�W�%5�%5�c�n�%E�%E�F�F�
���
V�
V�
V��~�j�o�:�
O�
O�
O��������#���\�\�^�^�*�*�7�3�3�
�	�������
�
�j�5�$�s�~�/D�/D�W�N`�/a�/a�*b�*b�"c�d�d�d�d�dr3Nc��|�|��tj|��|r|�||��dSdSr-)�assertIsNotNone�codecs�lookupr�r�fs_encodingr�s   r �check_fsencodingzSysModuleTest.check_fsencodingnsT�����[�)�)�)��
�k�"�"�"��	4����[�(�3�3�3�3�3�	4�	4r3c��tj��}tjdkrd}nd}|�||��dS)N�darwinzutf-8)r�getfilesystemencodingr�rrs   r �test_getfilesystemencodingz(SysModuleTest.test_getfilesystemencodingtsE���/�1�1���<�8�#�#��H�H��H����k�8�4�4�4�4�4r3c��tj���}||d<d|d<d�d��}tjddd|g}|r|�d	��|�||d
<n|�d
d��tj	|tj
tj|d���}|���\}}	|S)
N�LC_ALL�0�PYTHONCOERCECLOCALE�
)�
import syszdef dump(name):z    std = getattr(sys, name)z(    print("%s: %s" % (name, std.errors))z
dump("stdin")zdump("stdout")zdump("stderr")�-Xzutf8=0r��-Ir�T)rrxr��universal_newlines)
r.r��copyrrrdr�rr�r�r��STDOUTr�)
r�localer�r�r�r)r+r�rrxs
          r �c_locale_get_error_handlerz(SysModuleTest.c_locale_get_error_handler|s����j�o�o������H�
�%(��!�"��y�y�
�������h��d�;���	��K�K�������&.�C�"�#�#��G�G�&��-�-�-���T�%/�_�%/�%6�"%�15�	
7�
7�
7��
���������
r3c�"�|�|d���}|�|d��|�|d���}|�|d��|�|d���}|�|d��|�|d	���}|�|d��|�|d
���}|�|d��|�|d���}|�|d��dS)NT)r�zHstdin: surrogateescape
stdout: surrogateescape
stderr: backslashreplace
z:ignore)r�z6stdin: ignore
stdout: ignore
stderr: backslashreplace
z	iso8859-1z6stdin: strict
stdout: strict
stderr: backslashreplace
z
iso8859-1:�:r)rr)rrrs   r �check_locale_surrogateescapez*SysModuleTest.check_locale_surrogateescape�s`���-�-�f�t�-�D�D������6�	7�	7�	7��-�-�f�y�-�I�I������6�	7�	7�	7��-�-�f�{�-�K�K������6�	7�	7�	7��-�-�f�|�-�L�L������6�	7�	7�	7��-�-�f�s�-�C�C������6�	7�	7�	7��-�-�f�r�-�B�B������6�	7�	7�	7�	7�	7r3c�0�|�d��dS)N�C�rr?s r �test_c_locale_surrogateescapez+SysModuleTest.test_c_locale_surrogateescape�s���)�)�#�.�.�.�.�.r3c�0�|�d��dS)N�POSIXrr?s r �!test_posix_locale_surrogateescapez/SysModuleTest.test_posix_locale_surrogateescape�s���)�)�'�2�2�2�2�2r3c�@�ddddd�}|�ttjd����|�ttjd����|�ttjd����|�ttjd	����tjj}|�|dd
�|j|jf��|jdz|jdzz|jd
zz||j	dzz|j
dzz}|�tjj|��|�tjjtjj�
����dS)N�
rI��rSr�r�rm�	cache_tagrJ��rRr�r)rrr�implementationr�rr�r�r�r�r�rmr��lower)r�levelsr�rms    r �test_implementationz!SysModuleTest.test_implementation�sn����#��L�L������� 2�F�;�;�<�<�<������ 2�I�>�>�?�?�?������ 2�L�A�A�B�B�B������ 2�K�@�@�A�A�A��$�,�������!���w�}�g�m�&D�E�E�E��m�r�)�G�M�R�,?�?��m�q�(�)�+1�'�2F�+G�1�+L�M��n��)�*�
�	
����+�6�
�C�C�C�	
����+�0��+�0�6�6�8�8�	:�	:�	:�	:�	:r3c�z�ddlm}ddg}||�\}}}tjdkrqt	jd��}t	jd��}|r|�d|��|r|�d	|��|s|s|�|��|�ttj
d
��dS)Nr)rr�z#import sys; sys._debugmallocstats()r��WITH_FREELISTS�
WITH_PYMALLOCsfree PyDictObjectssSmall block thresholdT)�test.support.script_helperrrr�rwrxru�assertFalserr�_debugmallocstats)rrr+�retrri�with_freelists�
with_pymallocs        r �test_debugmallocstatsz#SysModuleTest.test_debugmallocstats�s���	@�?�?�?�?�?��;�<��(�(�$�/�
��S�#��<�7�"�"�&�5�6F�G�G�N�%�4�_�E�E�M��
:��
�
�3�S�9�9�9��
=��
�
�6��<�<�<�!�
&�-�
&�� � ��%�%�%�	
���)�S�%:�D�A�A�A�A�Ar3�getallocatedblocksz0sys.getallocatedblocks unavailable on this buildc��	ddl}	|���}|dv}n<#t$r}d}Yd}~n+d}~wwxYw#t$rt	j��}YnwxYwt
j��}|�t|��t��|r|�|d��n|�|d��	|�
|t
j����n#t$rYnwxYwt!j��t
j��}|�||��t!j��t
j��}|�|t)|dz
|dz����dS)Nr)�pymalloc�pymalloc_debugTr�)�	_testcapi�pymem_getallocatorsnamer�ImportErrorrr7rr9rNr�r�r�rjror��AttributeError�gc�collect�assertLessEqualrur)rr=�
alloc_namer7r\r��br�s        r �test_getallocatedblocksz%SysModuleTest.test_getallocatedblocks�s���	O�����
O�&�>�>�@�@�
�
",�/M�!M�
�
��	 �
%�
%�
%� $�
�
�
�
�
�
�����
%������	4�	4�	4�#�1�3�3�M�M�M�	4����
�"�$�$���
�
�d�1�g�g�s�#�#�#��	*����q�!�$�$�$�$�

�#�#�A�q�)�)�)�	�
�O�O�A�s�3�5�5�6�6�6�6���	�	�	��D�	����	�
�����"�$�$�����Q��"�"�"�
�
�����"�$�$���
�
�a��q�2�v�q�2�v�.�.�/�/�/�/�/s1�9� �
6�1�6�A�A�'C/�/
C<�;C<c���|�tj��d��d}td|��\}}}|�|���d��dS)NFa�if 1:
            import sys

            class AtExit:
                is_finalizing = sys.is_finalizing
                print = print

                def __del__(self):
                    self.print(self.is_finalizing(), flush=True)

            # Keep a reference in the __main__ module namespace, so the
            # AtExit destructor will be called at Python exit
            ref = AtExit()
        r�sTrue)rNr�
is_finalizingrr�rstrip�rr)r�rrxs     r �test_is_finalizingz SysModuleTest.test_is_finalizingsb���
�
�c�'�)�)�5�1�1�1�
��.�d�D�9�9���F�F���������'�2�2�2�2�2r3c���d}td|��\}}}|���}|�d|d��|�d|d��dS)Nz�if 1:
            import sys
            class A:
                def __del__(self, sys=sys):
                    print(sys.flags)
                    print(sys.float_info)
            a = A()
            r�s	sys.flagsrssys.float_inforI)r�
splitlinesru�rr)r�rris     r �test_issue20602zSysModuleTest.test_issue206021sf����(��d�3�3���C���n�n�����
�
�l�C��F�+�+�+��
�
�'��Q��0�0�0�0�0r3c��d}td|��\}}}|�|d��|�|���d��|�|���d��dS)Nz�if 1:
            import struct, sys

            class C:
                def __init__(self):
                    self.pack = struct.pack
                def __del__(self):
                    self.pack('I', -42)

            sys.x = C()
            r�rr3)rrrIrJs     r �&test_sys_ignores_cleaning_up_user_dataz4SysModuleTest.test_sys_ignores_cleaning_up_user_data@sy��
��.�d�D�9�9���F�F�����Q������������#�.�.�.���������#�.�.�.�.�.r3�getandroidapilevelzneed sys.getandroidapilevel()c��tj��}|�|t��|�|d��dS)Nr)rrRrMr�r�)r�levels  r �test_getandroidapilevelz%SysModuleTest.test_getandroidapilevelQsD���&�(�(�����e�S�)�)�)����5�!�$�$�$�$�$r3c�|���d���fd�}gd�}|d|��|d|��|d|dd�|dd�z��|d|dd�|dd�z��|d|d	g��|d	|d	g��|dd
z|��|d	d
z|d	g��|d|��dS)Nz�if 1:
            import sys
            def f1():
                1 / 0
            def f2():
                f1()
            sys.tracebacklimit = %r
            f2()
        c����tjtjd�|zgtj���}|���d}��|���|��dS)Nr�)rxrI)r�r�rrdr�r�rrM)�tracebacklimitr�r�rr)rs    ��r �checkz4SysModuleTest.test_sys_tracebacklimit.<locals>.checkcsg���� �#�.�$��~�8M�!N�(2��9�9�9�A��-�-�/�/�!�$�C����S�^�^�-�-�x�8�8�8�8�8r3)s"Traceback (most recent call last):s&  File "<string>", line 8, in <module>s   File "<string>", line 6, in f2s   File "<string>", line 4, in f1s#ZeroDivisionError: division by zeror%r�rJrIr���r�r9)rrYr�r)s`  @r �test_sys_tracebacklimitz%SysModuleTest.test_sys_tracebacklimitXs(������	9�	9�	9�	9�	9�	9�
�
�
�	�	��b�)����
��a�����
��a��2�A�2���1�2�2��.�/�/�/�
��a��2�A�2���1�2�2��.�/�/�/�
��a�)�B�-��!�!�!�
��b�9�R�=�/�"�"�"�
��a��g�y�!�!�!�
��b�$�h��2���(�(�(�
��d�I�����r3c��|�ttj��tt	tj������dSr-)rr�r�	meta_pathr�r?s r �test_no_duplicates_in_meta_pathz-SysModuleTest.test_no_duplicates_in_meta_pathzs:������S�]�+�+�S��S�]�1C�1C�-D�-D�E�E�E�E�Er3�_enablelegacywindowsfsencodingz*needs sys._enablelegacywindowsfsencoding()c���d}tdd�|����\}}}|�dd�����}|�|d��dS)N)rz$sys._enablelegacywindowsfsencoding()zCprint(sys.getfilesystemencoding(), sys.getfilesystemencodeerrors())r�z; r��replacezmbcs replace)rrr�rIrrNs     r �#test__enablelegacywindowsfsencodingz1SysModuleTest.test__enablelegacywindowsfsencoding}sf��W��(��d�i�i��o�o�>�>���C���j�j��)�,�,�3�3�5�5������n�-�-�-�-�-r3c�D�tjd��}tjdddd|dg}t	j|ddd���}t
ddg��t
|��g}|�|j�	���
��||��dS)	Nz]
            import sys
            print(sys.argv)
            print(sys.orig_argv)
        rr�utf8r�r�T)rY�capture_outputro)�textwrap�dedentrrdr��runr�rrrIrM)rr)r+�procr�s     r �test_orig_argvzSysModuleTest.test_orig_argv�s����� �
�
��
���d�F�D�$��F���~�d�$�t�$�O�O�O���$�������J�J�
��	
�����+�+�-�-�8�8�:�:�H��	�	�	�	�	r3c��|�tjt��tjD]}|�|t���dSr-)rMr�stdlib_module_names�	frozensetr�)rr�s  r �test_module_nameszSysModuleTest.test_module_names�sP�����c�5�y�A�A�A��+�	-�	-�D��!�!�$��,�,�,�,�	-�	-r3c�h�tjd��}t|dd��}|r|j�|��sd}|r|j�|��nd}|�|j�tj	��|j�|����dS)Nr.�__file__)
r�import_fresh_moduler�r��existsr�r�normpathr�_stdlib_dir)rr.�markerr�s    r �test_stdlib_dirzSysModuleTest.test_stdlib_dir�s���
�
.�t�
4�
4����Z��.�.���	�"�'�.�.��0�0�	��F�.4�>�2�7�?�?�6�*�*�*�$�������)�)�#�/�:�:���)�)�(�3�3�	5�	5�	5�	5�	5r3r-)FN)Lr6r7r8r�r�r�r�r�r�r�rzr�cpython_onlyr�r�r��unittest�
skipUnlessrrr��
refcount_testr�r�r�reap_threads�requires_working_threadingrr	�
requires_fork�requires_resourcer;rEr�r��
is_emscriptenr�r�r�r�r�r�r�r�r��requires_subprocessr�rr�rr�getpreferredencodingr��skipIfr�rrrrrrr r#r.r8rFrKrOrQrUr[r^rbrjrnrvr9r3r rr�sj������%�%�%�@2�@2�@2�D=�=�=�
(�
(�
(�@�@�@�	-�	-�	-�-�-�-�2
�\��-�-���-�.?�?�?�<@�@�@��X�����&6�7�7�:�<�<�%�%�<�<�%�
�\��
?�
?� ��
?�
�
�
��"�0��0�2�2�>�>�3�2�#�"�>�@��d�D�;@�A�A�A��"�0��0�2�2��W�����W��u�%�%�=�=�&�%���3�2�#�"�A�A�=�~�"�0��0�2�2�@�@�3�2�#�"�@�D]5�]5�]5�~9�9�9��X���.�0N�O�O�H�H�P�O�H�K�K�K�
;�;�;�(6�6�6�".�.�.�5�5�5�<�<�<�C�C�C�

�\�� � ��� �!�W� �"�"�)'�)'�#�"�)'�V�X���.�E�G�G��X��2��2�4�4�8S��8S�TY�8Z�8Z�Z�?�A�A� �W� �"�"�B�B�#�"�A�A�G�G�
B��X�_�S�_��
�2�2�4�4� �W� �"�"�e�e�#�"�4�4�e�(4�4�4�4�5�5�5�����:$7�$7�$7�L!�W� �"�"�/�/�#�"�/�!�W� �"�"�3�3�#�"�3�:�:�:�,
�\��B�B���B�*�X�����&:�;�;�K�M�M�%0�%0�M�M�%0�N3�3�3�*
1�
1�
1�/�/�/�"�X�����&:�;�;�8�:�:�%�%�:�:�%�
!�W� �"�"���#�"��BF�F�F��X�����&F�G�G�E�G�G�.�.�G�G�.�!�W� �"�"�
�
�#�"�
�-�-�-�
5�5�5�5�5r3rc�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�UnraisableHookTestc��ddl}ddl}d|��}	|�|||��|�t	|��||j||���d}S#d}wxYw)Nr�Exception ignored )rBrC�
exc_traceback�err_msg�object)r=�types�write_unraisable_exc�SimpleNamespacer�rO)rr\r�r0r=r��err_msg2s       r r�z'UnraisableHookTest.write_unraisable_exc�s�����������1��1�1��		��*�*�3���=�=�=��(�(�$�s�)�)�36�7:�7H�19�03�	)�5�5��C�C��$�C�J�J�J�Js�AA�Ac	��dD�]P}|�|���5d}tj�d��5}tj�t
dt
j��5|�td��||��ddd��n#1swxYwYddd��n#1swxYwY|�	��}|�|�
d|�d|�d	�|��n|�
d
|�d	�|��|�
d|��|�
d|��ddd��n#1swxYwY��RdS)
N)Nz
original hook)r�z	an objectrx�unraisablehookrr�z: rzException ignored in: �#Traceback (most recent call last):
rd)r�rzrr{r4r�__unraisablehook__r�r/rru)rr�r0rxris     r �test_original_unraisablehookz/UnraisableHookTest.test_original_unraisablehook�s7��.�	7�	7�G����g��.�.�
7�
7�!���\�1�1�(�;�;�P�v���/�/��5E�03�0F�H�H�P�P��1�1�*�R�.�.�'�3�O�O�O�P�P�P�P�P�P�P�P�P�P�P����P�P�P�P�P�P�P�P�P�P�P�P�P�P�P����P�P�P�P�
�o�o�'�'���&��M�M�"K�w�"K�"K�#�"K�"K�"K�S�Q�Q�Q�Q��M�M�"D�3�"D�"D�"D�c�J�J�J��
�
�D�c�J�J�J��
�
�0�#�6�6�6�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7����
7�
7�
7�
7��	7�	7sY�"E�1B7�/%B 	�B7� B$
�$B7�'B$
�(B7�+E�7B;�;E�>B;�?A=E�E	�E	c	����Gd�d��}Gd�dt���G�fd�d��}||fD�]�}|�|��5|��}tj���5}tj�tdtj��5~ddd��n#1swxYwYddd��n#1swxYwY|���}|�	d|��|�	|j
j|��|�	d	|��|�	d
|��||ur-|�	d|��|�	d|��n,|�	d|��|�	d
|��|�|�
d����ddd��n#1swxYwY���dS)Nc��eZdZd�ZdS)�FUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenDelc�$�td��}|�)N�
del is brokenr.�rr\s  r r$zNUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenDel.__del__�s�� ��1�1���	r3N�r6r7r8r$r9r3r �	BrokenDelr��s#������
�
�
�
�
r3r�c��eZdZd�ZdS)�OUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenStrExceptionc� �td���)Nzstr() is broken�rLr?s r �__str__zWUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenStrException.__str__�s��� 1�2�2�2r3N)r6r7r8r�r9r3r �BrokenStrExceptionr��s#������
3�
3�
3�
3�
3r3r�c���eZdZ�fd�ZdS)�OUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenExceptionDelc������}|�r-r9)rr\r�s  �r r$zWUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenExceptionDel.__del__�s���(�(�*�*���	r3Nr�)r�s�r �BrokenExceptionDelr��s.�������
�
�
�
�
�
�
r3r�r�zException ignoredztest_sys.pyz	raise excz<exception str() failed>r/r�r)rLr�rzrrer4rr�rrur$r8rrg)rr�r��
test_classr0rx�reportr�s       @r � test_original_unraisablehook_errz3UnraisableHookTest.test_original_unraisablehook_err�s����	�	�	�	�	�	�	�	�	3�	3�	3�	3�	3��	3�	3�	3�	�	�	�	�	�	�	�	�	�	�%�&8�9�	7�	7�J����j�)�)�
7�
7� �j�l�l���\�1�1�3�3��v��\�+�+�C�1A�,/�,B�D�D����	������������������������������������ ���*�*���
�
�1�6�:�:�:��
�
�j�0�=�v�F�F�F��
�
�m�V�4�4�4��
�
�k�6�2�2�2��!3�3�3��M�M�"6��?�?�?��M�M�"<�f�E�E�E�E��M�M�,��7�7�7��M�M�/�6�:�:�:�������� 5� 5�6�6�6�'
7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7����
7�
7�
7�
7��	7�	7s[�
)G�61C�'B5	�)C�5B9
�9C�<B9
�=C�G�C�G�C�C>G�G"	�%G"	c	���Gd�d��}dD�]^}|�|���5||jj_tj���5}tj�tdtj	��5|�
|j���dd��}ddd��n#1swxYwYddd��n#1swxYwY|���}|�|jjj
|��|dvr|�|d	z|��n|�|d	z|��ddd��n#1swxYwY��`dS)
Nc�(�eZdZGd�d��ZdS)�MUnraisableHookTest.test_original_unraisablehook_exception_qualname.<locals>.Ac�*�eZdZGd�de��ZdS)�OUnraisableHookTest.test_original_unraisablehook_exception_qualname.<locals>.A.Bc��eZdZdS)�QUnraisableHookTest.test_original_unraisablehook_exception_qualname.<locals>.A.B.XN�r6r7r8r9r3r �Xr��s�������Dr3r�N)r6r7r8rLr�r9r3r �Br��s>�����������	�����r3r�N)r6r7r8r�r9r3r �Ar��s<������
�
�
�
�
�
�
�
�
�
r3r�)r�__main__�some_module)�
moduleNamer�rmr0)rr��.)r�r�r�r7rzrrer4rr�r�rrur8�assertNotIn)rr�r�rxr�r�s      r �/test_original_unraisablehook_exception_qualnamezBUnraisableHookTest.test_original_unraisablehook_exception_qualname�s2��
	�	�	�	�	�	�	�	�
@�	<�	<�J������4�4�

<�

<�#-���� ��\�1�1�3�3��v�t�|�?U�?U��)�3�+A�@�@��� $�8�8��������� � �H������������������������������������� ���*�*���
�
�a�c�e�0�&�9�9�9��!9�9�9��$�$�Z�#�%5�v�>�>�>�>��M�M�*�s�"2�F�;�;�;�

<�

<�

<�

<�

<�

<�

<�

<�

<�

<�

<����

<�

<�

<�

<��	<�	<sZ�0E#�1C�
/C	�9C�C	
�	C�C	
�
C�E#�C � E#�#C �$A3E#�#E'	�*E'	c�B�td��}tj�tdtj��5|�t��5t	j|��ddd��n#1swxYwYddd��dS#1swxYwYdS)Nrr�)	r/rzrr4rr�rrr�r�s  r �'test_original_unraisablehook_wrong_typez:UnraisableHookTest.test_original_unraisablehook_wrong_types����n�n��
�\�
#�
#�C�)9�$'�$:�<�<�	(�	(��"�"�9�-�-�
(�
(��"�3�'�'�'�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(����
(�
(�
(�
(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(s6�B�A<�0B�<B	�B�B	�B�B�Bc	���d��fd�}t��}	tj�td|��5|�t
d��d|��}d���D]7}|�t�|��t||���|f���8	ddd��n#1swxYwYd}d�dS#d}d�wxYw)Nc���|�dSr-r9)r+�	hook_argss �r �	hook_funcz@UnraisableHookTest.test_custom_unraisablehook.<locals>.hook_funcs����I�I�Ir3r�rzcustom hookz/exc_type exc_value exc_traceback err_msg object)
r�rzrr4rr�r/�splitrr�)rr�r0r�r�r�s     @r �test_custom_unraisablehookz-UnraisableHookTest.test_custom_unraisablehooksL����	�	�	�	�	�	��h�h��	���'�'��-=�y�I�I�
<�
<��4�4�Z��^�^�5B�C�I�I��M�S�S�U�U�<�<�D��$�$�W�Y��%=�%=�%,�X�t�%<�%<�&/��%:�<�<�<�<�<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<����
<�
<�
<�
<��H��I�I�I���H��I����s/�&C
�A1B<�0C
�<C�C
�C�C
�
Cc���d�}tj�d��5}tj�td|��5|�t
d��dd��ddd��n#1swxYwYddd��n#1swxYwY|���}|�d|�d�|��|�d|��|�d	|��dS)
Nc� �td���)Nzhook_func failedr�)r+s r r�zEUnraisableHookTest.test_custom_unraisablehook_fail.<locals>.hook_func(s���.�/�/�/r3rxr�rzcustom hook failz)Exception ignored in sys.unraisablehook: rr�zException: hook_func failed
)	rzrr{r4rr�r/rru)rr�rxris    r �test_custom_unraisablehook_failz2UnraisableHookTest.test_custom_unraisablehook_fail's���	0�	0�	0��\�
)�
)�(�
3�
3�	D�v���'�'��-=�y�I�I�
D�
D��)�)�*�R�.�.�*<�d�D�D�D�
D�
D�
D�
D�
D�
D�
D�
D�
D�
D�
D����
D�
D�
D�
D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�
�o�o�����
�
�)�"�)�)�)��	�	�	�	
�
�
�<�c�B�B�B��
�
�5�s�;�;�;�;�;s5�'B�
%A;�/B�;A?	�?B�A?	�B�B�BN)
r6r7r8r�r�r�r�r�r�r�r9r3r r�r��s~������
�
�
�7�7�7�$&7�&7�&7�P<�<�<�4(�(�(����*<�<�<�<�<r3r�c�l��eZdZd�ZejjZd�Zd�Zd�Z	�fd�Z
d�Zd�Zd�Z
d	�Zd
�Z�xZS)�
SizeofTestc��tjd��|_tjj|_ddl}|j|_	dS)N�Pr)
�struct�calcsizer�rrgri�	longdigit�_testinternalcapi�SIZEOF_PYGC_HEAD�gc_headsize)rr�s  r �setUpzSizeofTest.setUp;s<�����%�%�����2��� � � � �,�=����r3c��tjj}|j}|�tjd��|d��|jz��|�tjg��|d��|z��dS)NTr�Pn)rzr�calcvobjsizer�rr�	getsizeofr�)r�vsize�gc_header_sizes   r �test_gc_head_sizezSizeofTest.test_gc_head_sizeCsv����)���)�������t�,�,�e�e�B�i�i�$�.�.H�I�I�I������r�*�*�E�E�$�K�K�.�,H�I�I�I�I�Ir3c��Gd�d��}|�ttj|����Gd�d��}|�ttj|����dg}|�tj|��|��|��Gd�d��}|�ttj|����|�tj|��|��|��Gd�d	t��}|�tj|tj����tj|j	z��|�t��5tj|tjd
z����ddd��n#1swxYwY|�t��5tj|d����ddd��n#1swxYwY|�ttf��5tj|tjd
z
����ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�)SizeofTest.test_errors.<locals>.BadSizeofc��t�r-r.r?s r �
__sizeof__z4SizeofTest.test_errors.<locals>.BadSizeof.__sizeof__Ns�� � r3N�r6r7r8r�r9r3r �	BadSizeofr�M�#������
!�
!�
!�
!�
!r3r�c��eZdZd�ZdS)�-SizeofTest.test_errors.<locals>.InvalidSizeofc��dSr-r9r?s r r�z8SizeofTest.test_errors.<locals>.InvalidSizeof.__sizeof__Ss���tr3Nr�r9r3r �
InvalidSizeofr�Rs#������
�
�
�
�
r3r��sentinelc��eZdZd�ZdS)�+SizeofTest.test_errors.<locals>.FloatSizeofc��dS)Ng@r9r?s r r�z6SizeofTest.test_errors.<locals>.FloatSizeof.__sizeof__Zr�r3Nr�r9r3r �FloatSizeofr�Yr�r3r�c��eZdZd�ZdS)�.SizeofTest.test_errors.<locals>.OverflowSizeofc� �t|��Sr-)r�r?s r r�z9SizeofTest.test_errors.<locals>.OverflowSizeof.__sizeof__`s���4�y�y� r3Nr�r9r3r �OverflowSizeofr�_r�r3r�rIrZ)rr/rr�rrNr�rr}r��
OverflowError)rr�r�r�r�r�s      r �test_errorszSizeofTest.test_errorsLsH��	!�	!�	!�	!�	!�	!�	!�	!�	
���*�c�m�Y�Y�[�[�A�A�A�	�	�	�	�	�	�	�	�	
���)�S�]�M�M�O�O�D�D�D��<���
�
�c�m�M�M�O�O�X�>�>��I�I�I�	�	�	�	�	�	�	�	�	
���)�S�]�K�K�M�M�B�B�B��
�
�c�m�K�K�M�M�8�<�<�h�G�G�G�	!�	!�	!�	!�	!�S�	!�	!�	!�	
�����~�~�c�k�'B�'B�C�C���t�'7�7�	9�	9�	9�
�
�
�}�
-�
-�	;�	;��M�.�.���q��9�9�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�
�
�
�z�
*�
*�	.�	.��M�.�.��,�,�-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�
�
�
�
�M�:�
;�
;�	<�	<��M�.�.�#�+���)9�:�:�;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	<�	<s6�+G�G�G�-H�H�H�,I<�<J�Jc��tjj}|�t	jd��|d��|jz��|�t	jdd��|d��|jz��dS)NTrrZ)rzrr�rrr�r�)r�sizes  r �test_defaultzSizeofTest.test_defaultksr���|�(�������t�,�,�d�d�2�h�h���.G�H�H�H������t�R�0�0�$�$�r�(�(�T�^�2K�L�L�L�L�Lr3c	�x���!�"�#�tj}tjj�#tjj}�j�!�!d|d���jz���!d|d���jz���!t�#d����dddzg}|D];}t|��}�!||d��|�
��z���<�!tt�����#d	�����!d|d
��dz���!d|d
��d
z��d�}�!|��jd�#d�����fd�}||��j
�#d����||j
�#d����d�}||j
�#d��|d
��z���!tdd���#d�����!tj�#d����ddl}	�!|	jj�#d����ddl}
�!|
jj�#d�����!t.j�#d�����!ij�#d�����!i�#d�����!ddi�#d��|t4��zdzd|d��zz��d�t7d��D��}�!|�#d��|t4��zdzd|d��zz���!ddi�#d��|t4��zdzd|d ��zz��dd!d"d#dd$d%dd&�}�!|�#d��|t4��zdzd|d ��zz���!i����#d�����!i����#d�����!i����#d�����!ti���#d'�����!ti������#d'�����!ti������#d'�����!ti������#d'����Gd(�d)t>��}�!|j �#d�����!tC���#d*�����!tEddddd���#d+�����!tGddddd���#d+�����!tIdddd���#d+�����!tJ�#d����ddl&}
ddl'}|
j(|j)j*��}�!|�#d,�����!tWg���#d-�����!tYd���#d	�����!t[d���#d.�����!t\j/|d���j0tt\j/��zz��d/�}|��}�!|�#d0����d1�}�!|�#d2����G�!�#fd3�d4��}d5�}�!|���#d6�����!td7���#d8����ddl1}�!|�2dd���#d�����!tgg��|d9�����!tgdg��|d9��d!�j0zz���!tgdd!g��|d9��d!�j0zz���!tggd:���|d9��d#�j0zz���!tg���#d8�����!tYg���#d	�����!d|d���jz���!d|d���jz���!d;|d���jz��d!t\j4j5z}�!t/|��|d��d!�jzz���!t/|d!zdz
��|d��d!�jzz���!t/|d!z��|d��d"�jzz���!tl�#d<�����!d�#d�����!tn�#d�����!t?���#d����G�!�#fd=�d)t>��}�!tt7d�����#d>�����!tYd���#d	�����!t7d���#d?�����!t7d@���#d?����d}gt7d��t7dA��g}�#dB|d	zzdCz��}|D]�}t|��}|dkrd}|d!z}|}||kr|dz}||k�|dkr3�!tq|��|���!ts|��|���j�!tq|��|||d	��zz���!ts|��|||d	��zz�����!ttq�����#dD�����!tud���#dE�����!twt.���#dE�����!dF|d�����!d:|d��d"�j0zz��dG}|d|z��}�!t.|��||dHz��}GdI�dJt>���"�!�"||t4��zdKzdL|d��zz���"fdM�t7dN��D���!�"��j �#d���j0z���"��}dx|_<x|_=x|_>x|_?x|_@x|_Ax|_B|_C�!�"||t4��zdKzdL|d��zz���!�"��j �#d���j0z��gdO�}dP}|dQz}|dz}|D]�}t�t�|����}|dRkr�#|��t|��zdz}nn|dSkr�#|��t|��zdz}nI|dTkr"�#|��d!t|��dzzz}n!�#|��d#t|��dzzz}�!||����t�dU��}�!|�#|��d#z��t�|dVdW���!|�#|��d#zd#z��ddlH} �!| �It.���#dX�����!| �Jt.���#dX����dS)YNTrF�5Pr3�ui���n2Pi�nPr�rIs
xxxxxxxxxxrIc���d��fd�}|S)Nrc����Sr-r9�r�s�r �innerz<SizeofTest.test_objecttypes.<locals>.get_cell.<locals>.inner������r3r9)r�r�s @r �get_cellz-SizeofTest.test_objecttypes.<locals>.get_cell�s&����A�
�
�
�
�
��Lr3rr�c�X����tj|��|��dSr-)rjrr�)r��
expected_sizers  �r �check_code_sizez4SizeofTest.test_objecttypes.<locals>.check_code_size�s)����#�#�C�M�!�$4�$4�m�D�D�D�D�Dr3�6i13Pc����fd�}|S)Nc����Sr-r9r�s�r r�z=SizeofTest.test_objecttypes.<locals>.get_cell2.<locals>.inner�r�r3r9)r�r�s` r �	get_cell2z.SizeofTest.test_objecttypes.<locals>.get_cell2�s!���
�
�
�
�
��Lr3�2d�3PPP�3PP�3P2P�2P�nQ2Pr�rRr�c�.�i|]}t|��|��Sr9)r�)�.0rs  r �
<dictcomp>z/SizeofTest.test_objecttypes.<locals>.<dictcomp>�s ��0�0�0�!�C��F�F�A�0�0�0r3r*r%�n2PrJr�r���)rIrJr�r�r�rr
rR�P2nPnc��eZdZdS)�&SizeofTest.test_objecttypes.<locals>.CNr�r9r3r rr���������r3r�6Pbz	6Pb 2P2nP�32B2iB�n4Pr	c�(�tj��Sr-)rr�r9r3r �funcz)SizeofTest.test_objecttypes.<locals>.func�s���=�?�?�"r3z3Pi3c7P2ic??2Pc��dSr-r9r9r3r rz)SizeofTest.test_objecttypes.<locals>.func�s���r3�14Pic���eZdZed���Zed���Z�e�d�����e�d����dS)�&SizeofTest.test_objecttypes.<locals>.cc��dSr-r9r9r3r �fooz*SizeofTest.test_objecttypes.<locals>.c.foo�����r3c��dSr-r9)�clss r �barz*SizeofTest.test_objecttypes.<locals>.c.bar�rr3�PPN)r6r7r8�staticmethodr�classmethodr �rYr�s��r r�r�sy�������
�
�
��\�
�
�
�
��[�
�
�E�#�t�t�D�z�z�"�"�"��E�#�t�t�D�z�z�"�"�"�"�"r3r�c3�K�dV�dS)NrIr9r9r3r �get_genz,SizeofTest.test_objecttypes.<locals>.get_gen�s����Q�w�w�w�w�wr3zP2P4P4c7P2ic??Pr��lPr�)rIrJr�rZ�PnPPPc�h��eZdZd�Zd�Zd�Zeeeed��Z�e�d����dS)rc��|jSr-��_C__xr?s r �getxz+SizeofTest.test_objecttypes.<locals>.C.getxs��4�8�Or3c��||_dSr-r+)r�values  r �setxz+SizeofTest.test_objecttypes.<locals>.C.setxs��e�4�8�8�8r3c�
�|`dSr-r+r?s r �delxz+SizeofTest.test_objecttypes.<locals>.C.delxs
�����r3r�5PiN)r6r7r8r-r0r2�propertyr�r$s��r rz&SizeofTest.test_objecttypes.<locals>.Cs[�������+�+�+�3�3�3�(�(�(����t�T�2�.�.�A��E�!�T�T�%�[�[�!�!�!�!�!r3�4l�4Pi�r��3nP�2nP�P3n�3Pr9�P2nPI13Pl4Pn9Pn12PIP�4P36P3P10P2P6P1Pc��eZdZdS)�2SizeofTest.test_objecttypes.<locals>.newstyleclassNr�r9r3r �
newstyleclassr>Mrr3r?rPrc�$��g|]}�����
Sr9r9)r	rr?s  �r �
<listcomp>z/SizeofTest.test_objecttypes.<locals>.<listcomp>Qs���-�-�-�Q�����-�-�-r3r�)�d1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111udÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuPĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀu,￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿ux𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀u�􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿�nnbP�nPnrQ�ii@z<stdin>r(�2Pn3P)Kr�r�rzr�calcobjsizer��check_sizeofr�r��	bytearray�	__alloc__�iter�__closure__r��complexr�r,�datetime�	timedelta�days�collections�defaultdict�default_factoryr��__add__�__iter__�DICT_KEY_STRUCT_FORMATr�keys�values�itemsr��__dict__�
BaseException�UnicodeEncodeError�UnicodeDecodeError�UnicodeTranslateError�Ellipsisr�encodings.iso8859_3�
charmap_build�	iso8859_3�decoding_tabler�reversed�floatrrer��re�finditerrrgrhrx�NotImplementedr�rm�slice�superr�rEr�r	rRrG�g�h�ord�max�chrr'�weakref�ref�proxy)%rr�r��samples�sampler�r�r�rrNrQ�longdictrr�	encodingsrr�r&rf�PyLong_BASE�
PySet_MINSIZEr��minused�tmp�newsize�fmt�o�asciifields�
compactfields�
unicodefields�maxchar�LrprYr?r��	__class__s%`                                @@@�r �test_objecttypeszSizeofTest.test_objecttypespsr��������?���|�'����)���!��
��d�E�E�"�I�I���.�/�/�/�
��e�U�U�2�Y�Y���/�0�0�0�	��c�4�4��:�:������V��$���	4�	4�F��&�!�!�A��E�!�U�U�6�]�]�Q�[�[�]�]�2�3�3�3�3�
��d�9�;�;�����d���,�,�,�
��c�5�5��:�:��>�"�"�"�
��i���s���b��)�)�)�	�	�	�
	��h�h�j�j�$�Q�'���c���3�3�3�	E�	E�	E�	E�	E�����
�
�+�T�T�'�]�]�;�;�;����)�4�4��=�=�9�9�9�	�	�	�	��	�*�D�D��M�M�H�H�S�M�M�,I�J�J�J�
��g�a��l�l�D�D��J�J�'�'�'�
��c�i���f���&�&�&�	����
��h� �%�t�t�E�{�{�3�3�3�����
��k�%�5�t�t�E�{�{�C�C�C�
��c�k�4�4��<�<�(�(�(�
��b�k�4�4��:�:�&�&�&�
��b�$�$�v�,�,����
��s�A�h���V���x�x�0F�'G�'G�G�!�K�v�W_�W_�`d�We�We�Ne�e�f�f�f�0�0�u�Q�x�x�0�0�0��
��h���V���x�x�0F�'G�'G�G�"�L�PW�Ya�Ya�bf�Yg�Yg�Og�g�h�h�h�
��q�!�f�d�d�6�l�l�X�X�.D�%E�%E�E��I�V�U]�U]�^c�Ud�Ud�Ld�d�e�e�e��1��Q�!�q�A��;�;��
��h���V���x�x�0F�'G�'G�G�"�L�PW�Ya�Ya�bg�Yh�Yh�Oh�h�i�i�i�
��b�g�g�i�i���c���#�#�#�
��b�i�i�k�k�4�4��9�9�%�%�%�
��b�h�h�j�j�$�$�s�)�)�$�$�$�
��d�2�h�h���W�
�
�&�&�&�
��d�2�7�7�9�9�o�o�t�t�G�}�}�-�-�-�
��d�2�9�9�;�;�����g���/�/�/�
��d�2�8�8�:�:�����W�
�
�.�.�.����������
��a�j�$�$�s�)�)�$�$�$�
��m�o�o�t�t�E�{�{�+�+�+�
�� ��R��A�r�2�2�D�D��4E�4E�F�F�F�
�� ��S�!�Q��3�3�T�T�+�5F�5F�G�G�G�
��#�B��1�b�1�1�4�4��3D�3D�E�E�E�
��h���R���!�!�!�*�*�*�*�*�*�*�*� �F� ��!4�!C�D�D��
��a���h��� � � �
��i��m�m�T�T�%�[�[�)�)�)�
��h�r�l�l�D�D��J�J�'�'�'�
��e�A�h�h���S�	�	�"�"�"�
��c�n�e�e�B�i�i�$�&�3�s�~�3F�3F�*F�F�G�G�G�	#�	#�	#��D�F�F��
��a���&�'�'�(�(�(����
��d�D�D��L�L�!�!�!�
	#�
	#�
	#�
	#�
	#�
	#�
	#�
	#�
	#�
	#�
	#�	���
��g�g�i�i���/�0�0�1�1�1�
��d�5�k�k�4�4��:�:�&�&�&��	�	�	�
��b�k�k�"�R� � �$�$�t�*�*�-�-�-�
��d�2�h�h���d���$�$�$�
��d�A�3�i�i���t���q���x�/�0�0�0�
��d�A�q�6�l�l�E�E�$�K�K�!�D�F�(�2�3�3�3�
��d�9�9�9�o�o�u�u�T�{�{�Q�t�v�X�5�6�6�6�	��d�2�h�h���T�
�
�#�#�#�
��h�r�l�l�D�D��J�J�'�'�'�
��a���r���T�^�+�,�,�,�
��a���r���T�^�+�,�,�,�
��b�%�%��)�)�d�n�,�-�-�-����4�4��
��c�+�����b�	�	�A�d�n�,<� <�=�=�=�
��c�+�q�.��"�#�#�U�U�2�Y�Y��4�>�1A�%A�B�B�B�
��c�+�q�.�!�!�5�5��9�9�q���/?�#?�@�@�@�
��h���W�
�
�&�&�&�
��d�D�D��H�H����
��n�d�d�2�h�h�'�'�'�
��f�h�h���R���!�!�!�	"�	"�	"�	"�	"�	"�	"�	"��	"�	"�	"�	��d�5��8�8�n�n�d�d�4�j�j�)�)�)�
��h�r�l�l�D�D��J�J�'�'�'�
��e�A�h�h���T�
�
�#�#�#�
��e�E�l�l�D�D��J�J�'�'�'��
��u�R�y�y�%��)�)�,���D���t�+�+�e�3�4�4���	E�	E�F��&�k�k�G��!�|�|�1�S��a�i�G�#�G��W�$�$�!�Q�,���W�$�$��!�|�|���c�&�k�k�1�%�%�%���i��'�'��+�+�+�+���c�&�k�k�1�w�x�x��~�~�'=�#=�>�>�>���i��'�'��W�X�X�d�^�^�-C�)C�D�D�D�D�
��d�3�5�5�k�k�4�4��;�;�'�'�'�
��e�A�h�h���T�
�
�#�#�#�
��e�C�j�j�$�$�t�*�*�%�%�%�
��b�%�%��)�)����
��g�u�u�R�y�y�1�T�V�8�+�,�,�,�%���E�$��*����
��c�1�
�
�
��E�#���
�
��	*�)�)�)�)�F�)�)�)�
��m�Q���*@�!A�!A�A�B�F��H�H�UY�N�N�IZ�Z�[�[�[�-�-�-�-�%��*�*�-�-�-�-�
��m�m�o�o�&���V���t�v�(=�>�>�>��M�O�O��89�9���9�a�c�9�A�C�9�!�#�9���9�a�c�9�A�C�!�#�
��m�Q���*@�!A�!A�A�B�F��H�H�UY�N�N�IZ�Z�[�[�[�
��m�m�o�o�&���V���t�v�(=�>�>�>�
6�6�6����#�e�+�
�%��+�
��
	�
	�A��#�a�&�&�k�k�G���}�}��D��%�%��A���.��2����3����D��'�'�#�a�&�&�0�1�4����5����D��'�'�!�S��V�V�a�Z�.�8����D��'�'�!�S��V�V�a�Z�.�8���E�!�Q�K�K�K�K���K�K��
��a���m�$�$�q�(�)�)�)�	��9�f�%�%�%�
��a���m�$�$�q�(�1�,�-�-�-�	����
��g�k�k�#�����W�
�
�.�.�.�	��g�m�m�C� � �$�$�w�-�-�0�0�0�0�0r3c��tj|��tj|��z}t	j|��rt	j|��s
||jz
}|�tj|��|��dSr-)rr�r�r�rA�
is_trackedr�r)rr0�base�extrar�s     r �check_slotszSizeofTest.check_slots�sv���=��&�&����)?�)?�?��
�=����	)�b�m�D�&9�&9�	)���(�(�H������s�+�+�X�6�6�6�6�6r3c�^�|j}Gd�dt��}||��t��d��Gd�dt��}||g���dgid��Gd�d	t��}||��gd��Gd
�dt��}||��t	��d��Gd�d
t
��}||��t��d��ddlm}Gd�d|��}||g���|g���d��dS)Nc��eZdZdZdS)�!SizeofTest.test_slots.<locals>.BA�r�rEr�N�r6r7r8�	__slots__r9r3r �BAr���������%�I�I�Ir3r�r:c��eZdZdZdS)� SizeofTest.test_slots.<locals>.Dr�Nr�r9r3r �Dr��r�r3r�r�r�c��eZdZdZdS)� SizeofTest.test_slots.<locals>.Lr�Nr�r9r3r r�r��r�r3r�c��eZdZdZdS)� SizeofTest.test_slots.<locals>.Sr�Nr�r9r3r r�r��r�r3r�c��eZdZdZdS)�!SizeofTest.test_slots.<locals>.FSr�Nr�r9r3r �FSr��r�r3r�r)�OrderedDictc��eZdZdZdS)�!SizeofTest.test_slots.<locals>.ODr�Nr�r9r3r �ODr��r�r3r�)r�rIr�rr�rmrQr�)	rrYr�r�r�r�r�r�r�s	         r �
test_slotszSizeofTest.test_slots�s���� ��	&�	&�	&�	&�	&��	&�	&�	&�
��b�b�d�d�I�K�K��&�&�&�	&�	&�	&�	&�	&��	&�	&�	&�
��a�a�"�g�g�g��R�y�$�'�'�'�	&�	&�	&�	&�	&��	&�	&�	&�
��a�a�c�c�2�t����	&�	&�	&�	&�	&��	&�	&�	&�
��a�a�c�c�3�5�5�$����	&�	&�	&�	&�	&��	&�	&�	&�
��b�b�d�d�I�K�K��&�&�&�+�+�+�+�+�+�	&�	&�	&�	&�	&��	&�	&�	&�
��b�b�2�h�h�h���b�)�)�)�4�0�0�0�0�0r3c��tjj}tjj}|j}ddl}||���|d����	t�#t$r3tj	��d}|�|||d����YnwxYw|tj
|d��|jttj
��zz��dS)Nrr�rJ�2P2ir)
rzrrGr�rH�_ast�ASTrrr>r�r�r�)rr�r�rYr��tbs      r �test_pythontypeszSizeofTest.test_pythontypes�s����|�'����)���!������
��d�h�h�j�j�$�$�s�)�)�$�$�$�	(��O���	(�	(�	(������"�B��~���b�$�$�v�,�,�'�'�'���		(����	��c�i���r���T�V�c�#�)�n�n�%<�<�=�=�=�=�=s�A�:B�Bc��tj��}|�|j��|�|j��d�}tj|���tj��}|�|j|��|�|d|��|�|jd��|�|dd��d�}tj|���tj��}|�|j|��|�|d|��|�|j|��|�|d|��tj|�tj��}|�|j��|�|j��dS)Nc��dSr-r9�r�s r �<lambda>z0SizeofTest.test_asyncgen_hooks.<locals>.<lambda>����t�r3)�	firstiterrrIc��dSr-r9r�s r r�z0SizeofTest.test_asyncgen_hooks.<locals>.<lambda>�r�r3)�	finalizer)r�get_asyncgen_hooksr�r�r��set_asyncgen_hooksrN)r�oldr��hooksr��curs      r �test_asyncgen_hookszSizeofTest.test_asyncgen_hooks�s����$�&�&�����#�-�(�(�(����#�-�(�(�(�#�O�	����3�3�3�3��&�(�(���
�
�e�o�y�1�1�1��
�
�e�A�h�	�*�*�*��
�
�e�o�t�,�,�,��
�
�e�A�h��%�%�%�#�O�	����3�3�3�3��&�(�(���
�
�e�o�y�1�1�1��
�
�e�A�h�	�*�*�*��
�
�e�o�y�1�1�1��
�
�e�A�h�	�*�*�*����$�$��$�&�&�����#�-�(�(�(����#�-�(�(�(�(�(r3c��tjd��}td|��\}}}|�|d��|�|d��dS)Nz�
            import sys
            class MyStderr:
                def write(self, s):
                    sys.stderr = None
            sys.stderr = MyStderr()
            1/0
        r�r3)rfrgrrrNs     r �/test_changing_sys_stderr_and_removing_referencez:SizeofTest.test_changing_sys_stderr_and_removing_reference�sc���� �
�
��-�T�4�8�8���C������c�"�"�"�����c�"�"�"�"�"r3)r6r7r8r�rzrrHr�r�r�r�r�r�r�r�r��
__classcell__)r�s@r r�r�8s��������>�>�>��<�,�L�J�J�J�<�<�<�>M�M�M�
N1�N1�N1�N1�N1�`7�7�7�1�1�1�0>�>�>�()�)�)�4#�#�#�#�#�#�#r3r�r�)#rrrArr�r.r�r�rrw�test.supportrzrrr2rrrrr	rfrxrpr�rV�TestCaserr;rbrrwr�r�r6�mainr9r3r �<module>r�s�������
�
�
�
�	�	�	�	�
�
�
�
�����	�	�	�	�
�
�
�
�����
�
�
�
���������������"�"�"�"�"�"�N�N�N�N�N�N�N�N�)�)�)�)�)�)�&�&�&�&�&�&�*�*�*�*�*�*�������������
��!��,6�,6�,6�,6�,6�h�'�,6�,6�,6�\=�=�=�=�=�8�,�=�=�=�@"B�"B�"B�"B�"B�X�&�"B�"B�"B�Pp5�p5�p5�p5�p5�H�%�p5�p5�p5�f���N<�N<�N<�N<�N<��*�N<�N<���N<�b���a#�a#�a#�a#�a#��"�a#�a#���a#�F
�z����H�M�O�O�O�O�O��r3