Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_sys.cpython-311.opt-1.pyc
�

�Ke�����ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
ZddlmZddl
m
Z
ddlmZmZddl
mZddl
mZddlZddlZddlZdadZGd�d	ej��ZGd
�dej��ZGd�d
ej��ZGd�dej��ZejjGd�dej����ZejjGd�dej����Ze dkrej!��dSdS)�N)�support)�	os_helper)�assert_python_ok�assert_python_failure)�threading_helper)�
import_helper�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    �7/usr/local/apps/python3/lib/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_displayhook9sZ���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>.baddisplayhookC�����r%r"r#r$)r�	swap_attrrr&rr.r')rr0r(s   r�test_custom_displayhookz'DisplayHookTest.test_custom_displayhookBs���	�	�	��
�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)r4�r2rrrsA������ � � �6*�*�*�6�6�6�6�6r2rc�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_exceptionKs%���������);�<�<�<�<�<r2c�T�|�tj��d��dSr,)rr�	exceptionr>s r�test_sys_exception_no_exceptionz4ActiveExceptionTests.test_sys_exception_no_exceptionNs$���������$�/�/�/�/�/r2c�n�d�}	|��n,#t$r}|}tj��}Yd}~nd}~wwxYw|�|t��|�|dt��|�|d|��|�|d|j��dS)Nc� �td����Nr
r-r8r2r�fzEActiveExceptionTests.test_exc_info_with_exception_instance.<locals>.fR����R�.�.� r2r����	Exceptionrr=�assertIsInstancer.�assertIs�
__traceback__�rrF�e_�er=s     r�%test_exc_info_with_exception_instancez:ActiveExceptionTests.test_exc_info_with_exception_instanceQs���	!�	!�	!�	&�
�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-r8r2rrFzAActiveExceptionTests.test_exc_info_with_exception_type.<locals>.far1r2rrHrIrJrOs     r�!test_exc_info_with_exception_typez6ActiveExceptionTests.test_exc_info_with_exception_type`s���	�	�	�	&�
�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�3rSc���d�}	|��n,#t$r}|}tj��}Yd}~nd}~wwxYw|�|t��|�||��dS)Nc� �td���rEr-r8r2rrFzJActiveExceptionTests.test_sys_exception_with_exception_instance.<locals>.fprGr2�rKrrArLr.rM�rrFrPrQ�excs     r�*test_sys_exception_with_exception_instancez?ActiveExceptionTests.test_sys_exception_with_exception_instanceos���	!�	!�	!�	"�
�A�C�C�C�C���	"�	"�	"��A��-�/�/�C�C�C�C�C�C�����	"����	
���a��,�,�,��
�
�c�1�����rSc���d�}	|��n,#t$r}|}tj��}Yd}~nd}~wwxYw|�|t��|�||��dS)Nc��t�r,r-r8r2rrFzFActiveExceptionTests.test_sys_exception_with_exception_type.<locals>.f}r1r2rYrZs     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�����rSN)	r5r6r7r?rBrRrVr\r_r8r2rr:r:Jsn������=�=�=�0�0�0�
4�
4�
4�
4�
4�
4��������r2r: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�SyntaxErrorrrdrrer=r�assertInrrfrgs   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�stderrrH�1zETypeError: print_exception(): Exception expected for value, str found)�testr�captured_outputr�
excepthookrr)rrws  r�test_excepthookzExceptHookTest.test_excepthook�s���
�\�
)�
)�(�
3�
3�	&�v��N�1�c�1�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&����,�/5���/@�/@�A�	B�	B�	B�	B�	Bs�A�A�
AN)r5r6r7rirur|r8r2rrara�sF������	9�	9�	9�<�<�<�"B�B�B�B�Br2rac��eZdZd�Zd�Zd�Zd�Zd�Zd�Ze	j
jd���Zd�Z
d	�Zejeed
��d��d���Ze	j
jd
���Zd�Zejej��d�����Zejej��d�����Zd�Zd�Zeje
jd��d���Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&e	j
jd���Z'e
j(��d���Z)eje*j+d��ejej,��e-j.d��kd ��e
j(��d!�������Z/ej0ej1ej2kd"��e
j(��d#�����Z3d>d%�Z4d&�Z5d?d'�Z6d(�Z7e
j(��d)���Z8e
j(��d*���Z9d+�Z:e	j
jd,���Z;ejeed-��d.��d/���Z<d0�Z=d1�Z>d2�Z?ejeed3��d4��d5���Z@e
j(��d6���ZAd7�ZBejeed8��d9��d:���ZCe
j(��d;���ZDd<�ZEd=�ZFd$S)@�
SysModuleTestc�B�tj���dSr,)ryr�
reap_childrenr>s r�tearDownzSysModuleTest.tearDown�s����"�"�$�$�$�$�$r2c�����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()rr2)r
�exit)��zraise SystemExit(47)�/c���td|fi|��\}}}��|d����|d����|�|��t	|���dt	|������dS)Nr�rHr2z doesn't start with )rrr�
startswith�ascii)r(�expected�env_vars�rcrrhrs      �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�
Lr2z?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�assertIsNonerAr(rrr)r�cmr�rrhr�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
��dSrE)rrr�getdefaultencodingrL�strr>s r�test_getdefaultencodingz%SysModuleTest.test_getdefaultencoding�sB�����)�S�%;�R�@�@�@����c�4�6�6��<�<�<�<�<r2c�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��|�ttjd��tj��}|�ttj��|�t
tjd��tjd��|�tj��d��tj|��dS)Nr
i���i')rrr�getrecursionlimit�setrecursionlimitr.r)r�oldlimits  r�test_recursionlimitz!SysModuleTest.test_recursionlimits������)�S�%:�B�?�?�?��(�*�*�����)�S�%:�;�;�;����*�c�&;�S�A�A�A���e�$�$�$�����.�0�0�%�8�8�8���h�'�'�'�'�'r2c�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,r8)rFs�rrFz5SysModuleTest.test_recursionlimit_recovery.<locals>.fs���
�A�C�C�C�C�Cr2)�2�K�d���)rrr��skipTestr�r��RecursionErrorr)rr��depthrFs   @r�test_recursionlimit_recoveryz*SysModuleTest.test_recursionlimit_recoverys�����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������ddlm����fd��tj��}	tjd��dD]}�||���	tj|��dS#tj|��wxYw)Nr)�get_recursion_depthc� �����}||krp��t��5}tj|��ddd��n#1swxYwY��t|j��d��dS�||��dS)Nz\cannot set the recursion limit to [0-9]+ at the recursion depth [0-9]+: the limit is too low)rr�rr��assertRegexr�rA)r��limit�recursion_depthr�r�r�set_recursion_limit_at_depths    ���rr�zZSysModuleTest.test_setrecursionlimit_recursion_depth.<locals>.set_recursion_limit_at_depth9s����1�1�3�3�O��%�'�'��&�&�~�6�6�1�"��)�%�0�0�0�1�1�1�1�1�1�1�1�1�1�1����1�1�1�1�� � ��R�\�!2�!2�"8�9�9�9�9�9�
-�,�U�E�:�:�:�:�:s�A
�
A�Ar�)�
�r�r�r����)�_testinternalcapir�rr�r�)rr�r�r�r�s`  @@r�&test_setrecursionlimit_recursion_depthz4SysModuleTest.test_setrecursionlimit_recursion_depth2s������
	:�9�9�9�9�9�
	;�
	;�
	;�
	;�
	;�
	;�
	;��(�*�*��	,��!�$�'�'�'�8�
;�
;��,�,�U�E�:�:�:�:�
;�
�!�(�+�+�+�+�+��C�!�(�+�+�+�+���s�%A!�!A7c��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�rrHrI��)ryr�
get_attributerr�r�lenrL�intr�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_getwindowsversionNsi����"�"�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���r2c�^�|�ttjtd��dS)NrI)rrr�call_tracing�typer>s r�test_call_tracingzSysModuleTest.test_call_tracingls%�����)�S�%5�t�Q�?�?�?�?�?r2�setdlopenflagsztest needs sys.setdlopenflags()c��|�ttd����|�ttjd��tj��}|�ttj��tj|dz��|�tj��|dz��tj|��dS)N�getdlopenflagsr
rH)rrrrrr�r�r)r�oldflagss  r�test_dlopenflagszSysModuleTest.test_dlopenflagsos���	
�����%5�6�6�7�7�7����)�S�%7��<�<�<��%�'�'�����)�S�%7�8�8�8���8�A�:�&�&�&�����+�-�-�x��z�:�:�:���8�$�$�$�$�$r2c��|�ttj��tjd��}da|�tjd��|dz��b|�tjd��|��t
td��r.|�tj��t��dSdS)NrH�gettotalrefcount)
rrr�getrefcountr�rrrLr�r�)r�cs  r�
test_refcountzSysModuleTest.test_refcountzs���	
���)�S�_�5�5�5��O�D�!�!����������.�.��!��4�4�4�
�������.�.��2�2�2��3�*�+�+�	?��!�!�#�"6�"8�"8�#�>�>�>�>�>�	?�	?r2c��|�ttjdd��|�ttjd��|�tjjtj��j	u��dS)Nr
i�5w)
rrr�	_getframer.rr~�
test_getframe�__code__�f_coder>s rr�zSysModuleTest.test_getframe�sr�����)�S�]�B��;�;�;����*�c�m�Z�@�@�@�����'�0��}���%�
&�	
�	
�	
�	
�	
r2c�������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,r8��g456s�r�f123z/SysModuleTest.test_current_frames.<locals>.f123������D�F�F�F�F�Fr2c�������������������dSr,)�append�	get_ident�set�wait��	entered_g�leave_g�thread_info�	threadings����rr�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�Nr2��targetrHr��)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_framesrLr��
assertGreaterr�rt�poprr��
extract_stack�	enumerate�failr��join)rrr��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�	���
�
�
�	�������r2c�������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,r8r�s�rr�z3SysModuleTest.test_current_exceptions.<locals>.f123�r�r2c���������������		td���#t$r&��t
j���rYdSYnwxYw�D)NT�oops)�timeout)r�r�r�r.r�r�LONG_TIMEOUTr�s����rr�z3SysModuleTest.test_current_exceptions.<locals>.g456�s�������y�2�2�4�4�5�5�5��M�M�O�O�O�
��$�V�,�,�,��!�����|�|�G�,@�|�A�A�����������
s�A�*A>�=A>r�rHr<r�r�r�r�zif leave_g.wait()r�rrrrr�rr�r�_current_exceptionsrLr�rr�rtrr�tb_framerr	rr�r�r
)rrr�rrr
rr�exc_type�	exc_value�exc_tbrrrrrrr�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�	���
�
�
�	�������r2c�\�|�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�rIr�r�rrHi�r��	z'sys.hash_info.modulus {} is a non-prime�Py_HASH_ALGORITHM>�fnv�	siphash13�	siphash24� �@>r-r.�r,r*r�r+�i����alpha�beta�	candidate�final)rHrr)�short�legacy�win)>rLr�api_versionr��argv�listr��	orig_argvrt�	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_thresholdrr��
hexversion�	hash_info�
assertLess�modulus�width�range�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_attributess�����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�	5r2c�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�freebsdrp�win32ro�
emscriptenrq�wasi)	rr�rr�rt�name�lockr�r�)r�infos  r�test_thread_infozSysModuleTest.test_thread_infoxs���������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�$�
#r2zonly available on Emscriptenc���|�ttj��d��|�tjjt��|�tjjttd��f��|�tjj
t��|�tjjt��dS)Nr�)
rr�r�_emscripten_inforL�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�Gr2c�n�|�tjjtjj��dSr,)rr�
__stdout__�encoding�
__stderr__r>s r�
test_43581zSysModuleTest.test_43581�s*��	
�����0�#�.�2I�J�J�J�J�Jr2c��tdz
a|�ttj��dtt��z}|�tj|��|u��|������}|�tj|��|u��Gd�dt
��}|�ttj|d����dS)NrHznever interned beforec��eZdZd�ZdS)�$SysModuleTest.test_intern.<locals>.Sc��dS)Nrmr8r>s r�__hash__z-SysModuleTest.test_intern.<locals>.S.__hash__�����sr2N)r5r6r7r�r8r2r�Sr���#������
�
�
�
�
r2r��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���:�:�:�:�:r2c	�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�>rrHrI)
rr�flagsrr�r�rr��getattr�reprr�rtr�)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�5r2c�4�|}t|��}|�t��5||��ddd��n#1swxYwY|�t��5|�||��ddd��dS#1swxYwYdSr,)r�rr�__new__)r�sys_attrrir�s    r�assert_raise_on_new_sys_typez*SysModuleTest.assert_raise_on_new_sys_type�s������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�4r2c�D�|�tj��dSr,)r�rrcr>s r�&test_sys_version_info_no_instantiationz4SysModuleTest.test_sys_version_info_no_instantiation�s���)�)�#�*:�;�;�;�;�;r2c��tj�td��|�tj����dS)Nr�)ryrr�rr�r�r>s r�+test_sys_getwindowsversion_no_instantiationz9SysModuleTest.test_sys_getwindowsversion_no_instantiation�s>����"�"�3�(;�<�<�<��)�)�#�*?�*A�*A�B�B�B�B�Br2c�,�tj��dSr,)r�_clear_type_cacher>s r�test_clear_type_cachez#SysModuleTest.test_clear_type_cache�s��������r2c��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�)rrwr�r2sUnicodeEncodeError:s'\xa2'zascii:z:surrogateescapezprint(chr(0xdcbd))��)�dict�os�environ�
subprocess�PopenrrC�PIPE�communicate�strip�linesep�encoderrt)rr��prr�rhs      r�test_ioencodingzSysModuleTest.test_ioencoding�s����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�&�&�&�&�&r2z*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�rrCr�FS_NONASCIIr�r�r�r�fsencode)rr�r�rs    r�test_ioencoding_nonasciiz&SysModuleTest.test_ioencoding_nonascii�s����2�:����"$������c�n�d� +�i�.C� C�E�'1��C�
A�
A�
A���m�m�o�o�a� �&�&�(�(������b�k�)�*?�@�@�A�A�A�A�Ar2zTest 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")))rCr�cwdr�ASCIIzb''r��backslashreplace)rr��path�abspathrrC�dirname�realpathr�r�r�r�r��decoder�rtr�r�)r�
python_dirr�rrCs     r�test_executablezSysModuleTest.test_executables��
	
���������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�dr2Nc��|�|��tj|��|r|�||��dSdSr,)�assertIsNotNone�codecs�lookupr�r�fs_encodingr�s   r�check_fsencodingzSysModuleTest.check_fsencoding#sT�����[�)�)�)��
�k�"�"�"��	4����[�(�3�3�3�3�3�	4�	4r2c��tj��}tjdkrd}nd}|�||��dS)N�darwinzutf-8)r�getfilesystemencodingr�r�r�s   r�test_getfilesystemencodingz(SysModuleTest.test_getfilesystemencoding)sE���/�1�1���<�8�#�#��H�H��H����k�8�4�4�4�4�4r2c��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)rrwr��universal_newlines)
r�r��copyr
rrCr�rr�r�r��STDOUTr�)
r�localer�r�r�r(�argsr�rrws
          r�c_locale_get_error_handlerz(SysModuleTest.c_locale_get_error_handler1s����j�o�o������H�
�%(��!�"��y�y�
�������h��d�;���	��K�K�������&.�C�"�#�#��G�G�&��-�-�-���T�%/�_�%/�%6�"%�15�	
7�
7�
7��
���������
r2c�"�|�|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)r�r)rr�rs   r�check_locale_surrogateescapez*SysModuleTest.check_locale_surrogateescapeNs`���-�-�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�	7r2c�0�|�d��dS)N�C�r�r>s r�test_c_locale_surrogateescapez+SysModuleTest.test_c_locale_surrogateescapets���)�)�#�.�.�.�.�.r2c�0�|�d��dS)N�POSIXrr>s r�!test_posix_locale_surrogateescapez/SysModuleTest.test_posix_locale_surrogateescapexs���)�)�'�2�2�2�2�2r2c�@�ddddd�}|�ttjd����|�ttjd����|�ttjd����|�ttjd	����tjj}|�|dd
�|j|jf��|jdz|jdzz|jd
zz||j	dzz|j
dzz}|�tjj|��|�tjjtjj�
����dS)Nr�r'��r1ryrbrL�	cache_tagrI��r0r�r)rrr�implementationrbrr�r�rdrerfrLry�lower)r�levelsrbrLs    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�	:�	:�	:�	:�	:r2c�z�ddlm}ddg}||�\}}}tjdkrqt	jd��}t	jd��}|r|�d|��|r|�d	|��|s|s|�|��|�ttj
d
��dS)Nr)rr�z#import sys; sys._debugmallocstats()rv�WITH_FREELISTS�
WITH_PYMALLOCsfree PyDictObjectssSmall block thresholdT)�test.support.script_helperrrr�rWrXrt�assertFalserr�_debugmallocstats)rrr��retrrh�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�Ar2�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�ImportErrorrrrrrMr�r�rrIrNr��AttributeError�gc�collect�assertLessEqualrtrQ)rr�
alloc_namerr[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)rMr�
is_finalizingrr�rstrip�rr(r�rrws     r�test_is_finalizingz SysModuleTest.test_is_finalizing�sb���
�
�c�'�)�)�5�1�1�1�
��.�d�D�9�9���F�F���������'�2�2�2�2�2r2c���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_inforH)r�
splitlinesrt�rr(r�rrhs     r�test_issue20602zSysModuleTest.test_issue20602�sf����(��d�3�3���C���n�n�����
�
�l�C��F�+�+�+��
�
�'��Q��0�0�0�0�0r2c��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�rr2)rrr*r+s     r�&test_sys_ignores_cleaning_up_user_dataz4SysModuleTest.test_sys_ignores_cleaning_up_user_data�sy��
��.�d�D�9�9���F�F�����Q������������#�.�.�.���������#�.�.�.�.�.r2�getandroidapilevelzneed sys.getandroidapilevel()c��tj��}|�|t��|�|d��dS)Nr)rr3rLr�r)r�levels  r�test_getandroidapilevelz%SysModuleTest.test_getandroidapilevelsD���&�(�(�����e�S�)�)�)����5�!�$�$�$�$�$r2c�|���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�)rwrH)r�r�rrCr�r�rr.)�tracebacklimitr�r�rr(rs    ��r�checkz4SysModuleTest.test_sys_tracebacklimit.<locals>.checksg���� �#�.�$��~�8M�!N�(2��9�9�9�A��-�-�/�/�!�$�C����S�^�^�-�-�x�8�8�8�8�8r2)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�rIrHr���r�r8)rr:rr(s`  @r�test_sys_tracebacklimitz%SysModuleTest.test_sys_tracebacklimit
s(������	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�����r2c��|�ttj��tt	tj������dSr,)rr�r�	meta_pathr�r>s r�test_no_duplicates_in_meta_pathz-SysModuleTest.test_no_duplicates_in_meta_path/s:������S�]�+�+�S��S�]�1C�1C�-D�-D�E�E�E�E�Er2�_enablelegacywindowsfsencodingz*needs sys._enablelegacywindowsfsencoding()c���d}tdd�|����\}}}|�dd�����}|�|d��dS)N)r�z$sys._enablelegacywindowsfsencoding()zCprint(sys.getfilesystemencoding(), sys.getfilesystemencodeerrors())r�z; r��replacezmbcs replace)rr
r�r*rr/s     r�#test__enablelegacywindowsfsencodingz1SysModuleTest.test__enablelegacywindowsfsencoding2sf��W��(��d�i�i��o�o�>�>���C���j�j��)�,�,�3�3�5�5������n�-�-�-�-�-r2c�D�tjd��}tjdddd|dg}t	j|ddd���}t
ddg��t
|��g}|�|j�	���
��||��dS)	Nz]
            import sys
            print(sys.argv)
            print(sys.orig_argv)
        r�r��utf8r�riT)r:�capture_outputrn)�textwrap�dedentrrCr��runr�rrr*r.)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��	�	�	�	�	r2c��|�tjt��tjD]}|�|t���dSr,)rLr�stdlib_module_names�	frozensetr�)rrys  r�test_module_nameszSysModuleTest.test_module_namesLsP�����c�5�y�A�A�A��+�	-�	-�D��!�!�$��,�,�,�,�	-�	-r2c�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_dirQs���
�
.�t�
4�
4����Z��.�.���	�"�'�.�.��0�0�	��F�.4�>�2�7�?�?�6�*�*�*�$�������)�)�#�/�:�:���)�)�(�3�3�	5�	5�	5�	5�	5r2r,)FN)Gr5r6r7r�r�r�r�r�r�ryr�cpython_onlyr�r�r��unittest�
skipUnlessrrr��
refcount_testr�r�r�reap_threads�requires_working_threadingrr#rmr|�
is_emscriptenr�r�r�r�r�r�r�r�r��requires_subprocessr�rr�r�r��getpreferredencodingr��skipIfr`r_r�r�r�r�r�rrrrr'r,r0r2r6r<r?rCrKrOrWr8r2rr~r~�s�������%�%�%�@2�@2�@2�D=�=�=�
(�
(�
(�(�(�(�,�,�,�2
�\��,�,���,�6?�?�?�<@�@�@��X�����&6�7�7�:�<�<�%�%�<�<�%�
�\��
?�
?� ��
?�
�
�
��"�0��0�2�2�>�>�3�2�#�"�>�@�"�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�5r2r~c�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�UnraisableHookTestc��ddl}ddl}d|��}	|�|||��|�t	|��||j||���d}S#d}wxYw)Nr�Exception ignored )r r!�
exc_traceback�err_msg�object)r�types�write_unraisable_exc�SimpleNamespacer�rN)rr[rgr/rri�err_msg2s       rrjz'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)rgz	an objectrw�unraisablehookr
rez: r�zException ignored in: �#Traceback (most recent call last):
rc)�subTestryrrzr3r�__unraisablehook__rjr.rrt)rrgr/rwrhs     r�test_original_unraisablehookz/UnraisableHookTest.test_original_unraisablehookls7��.�	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�__del__zNUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenDel.__del__�s�� ��1�1���	r2N�r5r6r7ryr8r2r�	BrokenDelru�s#������
�
�
�
�
r2r{c��eZdZd�ZdS)�OUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenStrExceptionc� �td���)Nzstr() is broken�rKr>s r�__str__zWUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenStrException.__str__�s��� 1�2�2�2r2N)r5r6r7r�r8r2r�BrokenStrExceptionr}�s#������
3�
3�
3�
3�
3r2r�c���eZdZ�fd�ZdS)�OUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenExceptionDelc������}|�r,r8)rr[r�s  �rryzWUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenExceptionDel.__del__�s���(�(�*�*���	r2Nrz)r�s�r�BrokenExceptionDelr��s.�������
�
�
�
�
�
�
r2r�rnzException ignoredztest_sys.pyz	raise excz<exception str() failed>r.rwr�)rKrpryrrdr3rrqrrtryr7rrf)rr{r��
test_classr/rw�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�r5r6r7r8r2r�Xr��s�������Dr2r�N)r5r6r7rKr�r8r2r�Br��s>�����������	�����r2r�N)r5r6r7r�r8r2r�Ar��s<������
�
�
�
�
�
�
�
�
�
r2r�)r�__main__�some_module)�
moduleNamernrlr/)rr��.)rpr�r�r6ryrrdr3rrqrjrrtr7�assertNotIn)rr�r�rwr�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)Nr
rn)	r.ryrr3rrqrrrnrxs  r�'test_original_unraisablehook_wrong_typez:UnraisableHookTest.test_original_unraisablehook_wrong_type�s����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,r8)r��	hook_argss �r�	hook_funcz@UnraisableHookTest.test_custom_unraisablehook.<locals>.hook_func�s����I�I�Ir2rnr
zcustom hookz/exc_type exc_value exc_traceback err_msg object)
rhryrr3rrjr.�splitrr�)rr�r/r�r�r�s     @r�test_custom_unraisablehookz-UnraisableHookTest.test_custom_unraisablehook�sL����	�	�	�	�	�	��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 rr�zEUnraisableHookTest.test_custom_unraisablehook_fail.<locals>.hook_func�s���.�/�/�/r2rwrnr
zcustom hook failz)Exception ignored in sys.unraisablehook: r�rozException: hook_func failed
)	ryrrzr3rrjr.rrt)rr�rwrhs    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)
r5r6r7rjrrr�r�r�r�r�r8r2rrcrc[s~������
�
�
�7�7�7�$&7�&7�&7�P<�<�<�4(�(�(����*<�<�<�<�<r2rcc�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�rrFrH�	longdigitr��SIZEOF_PYGC_HEAD�gc_headsize)rr�s  r�setUpzSizeofTest.setUp�s<�����%�%�����2��� � � � �,�=����r2c��tjj}|j}|�tjd��|d��|jz��|�tjg��|d��|z��dS)NTr�Pn)ryr�calcvobjsizer�rr�	getsizeofr�)r�vsize�gc_header_sizes   r�test_gc_head_sizezSizeofTest.test_gc_head_size�sv����)���)�������t�,�,�e�e�B�i�i�$�.�.H�I�I�I������r�*�*�E�E�$�K�K�.�,H�I�I�I�I�Ir2c��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__s�� � r2N�r5r6r7r�r8r2r�	BadSizeofr��#������
!�
!�
!�
!�
!r2r�c��eZdZd�ZdS)�-SizeofTest.test_errors.<locals>.InvalidSizeofc��dSr,r8r>s rr�z8SizeofTest.test_errors.<locals>.InvalidSizeof.__sizeof__s���tr2Nr�r8r2r�
InvalidSizeofr�s#������
�
�
�
�
r2r��sentinelc��eZdZd�ZdS)�+SizeofTest.test_errors.<locals>.FloatSizeofc��dS)Ng@r8r>s rr�z6SizeofTest.test_errors.<locals>.FloatSizeof.__sizeof__r�r2Nr�r8r2r�FloatSizeofr�r�r2r�c��eZdZd�ZdS)�.SizeofTest.test_errors.<locals>.OverflowSizeofc� �t|��Sr,)r�r>s rr�z9SizeofTest.test_errors.<locals>.OverflowSizeof.__sizeof__s���4�y�y� r2Nr�r8r2r�OverflowSizeofr�r�r2r�rHr;)rr.rr�rrMr�rr]r��
OverflowError)rr�r�r�r�r�s      r�test_errorszSizeofTest.test_errorssH��	!�	!�	!�	!�	!�	!�	!�	!�	
���*�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)NTrr;)ryrr�rrr�r�)r�sizes  r�test_defaultzSizeofTest.test_default sr���|�(�������t�,�,�d�d�2�h�h���.G�H�H�H������t�R�0�0�$�$�r�(�(�T�^�2K�L�L�L�L�Lr2c	�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�5Pr2�ui���n2Pi�nPr�rHs
xxxxxxxxxxr'c���d��fd�}|S)Nr
c����Sr,r8�rjs�r�innerz<SizeofTest.test_objecttypes.<locals>.get_cell.<locals>.inner?�����r2r8)r�rjs @r�get_cellz-SizeofTest.test_objecttypes.<locals>.get_cell=s&����A�
�
�
�
�
��Lr2rr�c�X����tj|��|��dSr,)rIrr�)r��
expected_sizers  �r�check_code_sizez4SizeofTest.test_objecttypes.<locals>.check_code_sizeDs)����#�#�C�M�!�$4�$4�m�D�D�D�D�Dr2�6i13Pc����fd�}|S)Nc����Sr,r8r�s�rr�z=SizeofTest.test_objecttypes.<locals>.get_cell2.<locals>.innerIr�r2r8)rjr�s` r�	get_cell2z.SizeofTest.test_objecttypes.<locals>.get_cell2Hs!���
�
�
�
�
��Lr2�2d�3PPP�3PP�3P2P�2P�nQ2Pr�r0r�c�.�i|]}t|��|��Sr8)r�)�.0rs  r�
<dictcomp>z/SizeofTest.test_objecttypes.<locals>.<dictcomp>as ��0�0�0�!�C��F�F�A�0�0�0r2rr��n2PrIr�r���)rHrIr�r�r�r�r�r0�P2nPnc��eZdZdS)�&SizeofTest.test_objecttypes.<locals>.CNr�r8r2rrr�v��������r2r�6Pbz	6Pb 2P2nP�32B2iB�n4Pr
c�(�tj��Sr,)rr�r8r2r�funcz)SizeofTest.test_objecttypes.<locals>.func�s���=�?�?�"r2z3Pi3c7P2ic??2Pc��dSr,r8r8r2rr�z)SizeofTest.test_objecttypes.<locals>.func�s���r2�14Pic���eZdZed���Zed���Z�e�d�����e�d����dS)�&SizeofTest.test_objecttypes.<locals>.cc��dSr,r8r8r2r�fooz*SizeofTest.test_objecttypes.<locals>.c.foo�����r2c��dSr,r8)�clss r�barz*SizeofTest.test_objecttypes.<locals>.c.bar�r�r2�PPN)r5r6r7�staticmethodr��classmethodr�r:r�s��rr�r��sy�������
�
�
��\�
�
�
�
��[�
�
�E�#�t�t�D�z�z�"�"�"��E�#�t�t�D�z�z�"�"�"�"�"r2r�c3�K�dV�dS)NrHr8r8r2r�get_genz,SizeofTest.test_objecttypes.<locals>.get_gen�s����Q�w�w�w�w�wr2zP2P4P4c7P2ic??Pr��lPr�)rHrIr�r;�PnPPPc�h��eZdZd�Zd�Zd�Zeeeed��Z�e�d����dS)r�c��|jSr,��_C__xr>s r�getxz+SizeofTest.test_objecttypes.<locals>.C.getx�s��4�8�Or2c��||_dSr,r)r�values  r�setxz+SizeofTest.test_objecttypes.<locals>.C.setx�s��e�4�8�8�8r2c�
�|`dSr,rr>s r�delxz+SizeofTest.test_objecttypes.<locals>.C.delx�s
�����r2r�5PiN)r5r6r7r
rr�propertyrjrs��rrz&SizeofTest.test_objecttypes.<locals>.C�s[�������+�+�+�3�3�3�(�(�(����t�T�2�.�.�A��E�!�T�T�%�[�[�!�!�!�!�!r2�4l�4Pi�r��3nP�2nP�P3n�3Pr8�P2nPI13Pl4Pn9Pn12PIP�4P36P3P10P2P6P1Pc��eZdZdS)�2SizeofTest.test_objecttypes.<locals>.newstyleclassNr�r8r2r�
newstyleclassrr�r2rr.r
c�$��g|]}�����
Sr8r8)r�rrs  �r�
<listcomp>z/SizeofTest.test_objecttypes.<locals>.<listcomp>s���-�-�-�Q�����-�-�-r2r�)�d1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111udÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuPĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀu,￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿ux𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀u�􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿�nnbP�nPnr/�ii@z<stdin>r'�2Pn3P)Kr�r�ryr�calcobjsizer��check_sizeofr�r��	bytearray�	__alloc__�iter�__closure__r��complexr�r
�datetime�	timedelta�days�collections�defaultdict�default_factoryr��__add__�__iter__�DICT_KEY_STRUCT_FORMATrQ�keys�values�itemsrh�__dict__�
BaseException�UnicodeEncodeError�UnicodeDecodeError�UnicodeTranslateError�Ellipsisr��encodings.iso8859_3�
charmap_build�	iso8859_3�decoding_tabler�reversed�floatrrDr��re�finditerr;rFrGrY�NotImplementedr�rN�slice�superr�r&r�r
rQrF�g�h�ord�max�chrr&�weakref�ref�proxy)%rr�r��samples�samplerjr�r�r�r.r1�longdictrr��	encodingsr�r�rrF�PyLong_BASE�
PySet_MINSIZEr��minused�tmp�newsize�fmt�o�asciifields�
compactfields�
unicodefields�maxchar�LrPr:rr��	__class__s%`                                @@@�r�test_objecttypeszSizeofTest.test_objecttypes%sr��������?���|�'����)���!��
��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�0r2c��tj|��tj|��z}t	j|��rt	j|��s
||jz
}|�tj|��|��dSr,)rr�r�r�r"�
is_trackedr�r)rr/�base�extrar�s     r�check_slotszSizeofTest.check_slots5sv���=��&�&����)?�)?�?��
�=����	)�b�m�D�&9�&9�	)���(�(�H������s�+�+�X�6�6�6�6�6r2c�^�|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�r&r�N�r5r6r7�	__slots__r8r2r�BArl?�������%�I�I�Ir2rprc��eZdZdZdS)� SizeofTest.test_slots.<locals>.DrmNrnr8r2r�DrsBrqr2rtr�rjc��eZdZdZdS)� SizeofTest.test_slots.<locals>.LrmNrnr8r2rrbrvErqr2rbc��eZdZdZdS)� SizeofTest.test_slots.<locals>.SrmNrnr8r2rr�rxHrqr2r�c��eZdZdZdS)�!SizeofTest.test_slots.<locals>.FSrmNrnr8r2r�FSrzKrqr2r{r)�OrderedDictc��eZdZdZdS)�!SizeofTest.test_slots.<locals>.ODrmNrnr8r2r�ODr~Orqr2r)rir)r�r;r�rNr1r|)	rr:rprtrbr�r{r|rs	         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�0r2c��tjj}tjj}|j}ddl}||���|d����	t�#t$r3tj	��d}|�|||d����YnwxYw|tj
|d��|jttj
��zz��dS)Nrr�rI�2P2ir)
ryrr'r�r(�_ast�ASTrrr=r�r�r�)rr�r�r:r��tbs      r�test_pythontypeszSizeofTest.test_pythontypesSs����|�'����)���!������
��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,r8�r�s r�<lambda>z0SizeofTest.test_asyncgen_hooks.<locals>.<lambda>l���t�r2)�	firstiterrrHc��dSr,r8r�s rr�z0SizeofTest.test_asyncgen_hooks.<locals>.<lambda>tr�r2)�	finalizer)r�get_asyncgen_hooksr�r�r��set_asyncgen_hooksrM)r�oldr��hooksr��curs      r�test_asyncgen_hookszSizeofTest.test_asyncgen_hooksgs����$�&�&�����#�-�(�(�(����#�-�(�(�(�#�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�	�*�*�*����$�$��$�&�&�����#�-�(�(�(����#�-�(�(�(�(�(r2c��tjd��}td|��\}}}|�|d��|�|d��dS)Nz�
            import sys
            class MyStderr:
                def write(self, s):
                    sys.stderr = None
            sys.stderr = MyStderr()
            1/0
        r�r2)rGrHrrr/s     r�/test_changing_sys_stderr_and_removing_referencez:SizeofTest.test_changing_sys_stderr_and_removing_reference�sc���� �
�
��-�T�4�8�8���C������c�"�"�"�����c�"�"�"�"�"r2)r5r6r7r�ryrr(r�r�r�rdrir�r�r�r��
__classcell__)rcs@rr�r��s��������>�>�>��<�,�L�J�J�J�<�<�<�>M�M�M�
N1�N1�N1�N1�N1�`7�7�7�1�1�1�0>�>�>�()�)�)�4#�#�#�#�#�#�#r2r�r�)"rr�r"r�r�r�r�r�rrW�test.supportryrrrrrrrrGrYror�r6�TestCaserr:rar~rXrcr�r5�mainr8r2r�<module>r�sw������
�
�
�
�	�	�	�	�
�
�
�
�����	�	�	�	�
�
�
�
�����
�
�
�
���������������"�"�"�"�"�"�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�Pf5�f5�f5�f5�f5�H�%�f5�f5�f5�R���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��r2