HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/test/__pycache__/test_inspect.cpython-311.opt-2.pyc
�

��Vcl���f�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZ	ddlmZn
#e$rdZYnwxYwddlmZddlmZmZddlmZddlm Z ddl!m"Z"m#Z#dd	l$m%Z&dd
l$m'Z(ddl$m)Z)ddl$m*Z*dd
l$m+Z+ddl$m,Z,ddl-m.Z.e&j/Z0e0�1d��r
e0dd�Z0ee0��Z0d�Z2e&j3��Z4d�Z5d�Z6d�7��Z8Gd�dej9��Z:d�Z;d�Z<d�Z=ej>d���Z?Gd�de:��Z@Gd�de:��ZAGd �d!ej9��ZBGd"�d#��ZCGd$�d%eB��ZDGd&�d'ej9��ZEGd(�d)eB��ZFGd*�d+eB��ZGGd,�d-eB��ZHGd.�d/eB��ZIGd0�d1eB��ZJGd2�d3eB��ZKGd4�d5eL��ZMGd6�d7eL��ZNd8�ZOGd9�d:ej9��ZPGd;�d<ej9��ZQeL��ZRGd=�d>ej9��ZSGd?�d@ej9��ZTGdA�dBeT��ZUGdC�dDeU��ZVGdE�dFej9��ZWGdG�dHej9��ZXGdI�dJej9��ZYGdK�dLejZ��Z[GdM�dNej\��Z]GdO�dPej9��Z^GdQ�dRej9��Z_GdS�dTej9��Z`GdU�dVej9��ZaGdW�dXej9��ZbGdY�dZej9��ZcGd[�d\��ZdGd]�d^ej9��ZeGd_�d`ej9��ZfGda�dbej9��Zgehdckreji��dSdS)d�N��normcase)�ThreadPoolExecutor)�cpython_only)�MISSING_C_DOCSTRINGS�	ALWAYS_EQ)�
DirsOnSysPath)�TESTFN)�assert_python_ok�assert_python_failure)�inspect_fodder)�inspect_fodder2)�support)�inspect_stock_annotations)�inspect_stringized_annotations)� inspect_stringized_annotations_2)�_ready_to_import)�c�o���c�(�t|��f|zS�Nr)�filename�argss  �%D:\Python311\Lib\test\test_inspect.py�reviser>s���X��� �4�'�'�c#�VK�	gd�}tddt|��z��D]�}g}d}tt|����D]%}|||zzr|�||���&dd�|��zdz}i}t	|||��|dV���dS)N)�a�barr�delta�ephraim�magical�yoyo�z��zdef foo(*, z, z): pass�foo)�range�len�append�join�exec)�
parameters�i�p�bit�j�fn_text�symbolss       r�5signatures_with_lexicographic_keyword_only_parametersr5Ds������O�N�N�J�
�1�a��Z���(�
)�
)�	�	�������s�:���'�'�	(�	(�A��C�1�H�~�
(�����A��'�'�'���$�)�)�A�,�,�.��:�����W�g�w�'�'�'��e�n�����	�	rc��dSr�)�throw�out�the�baby�with_�the_�	bathwaters       r�#unsorted_keyword_only_parameters_fnr?Vs���Drz'throw out the baby with_ the_ bathwaterc���eZdZeejejejejej	ej
ejejej
ejejejejejejg��Zd�Zd�ZdS)�
IsTestBasec	��t|��}|�||��|j�d|�d���|jt	|g��z
D]n}|t
jks |t
jks|t
jkr|t
j	kr�C|�
||��d|j�d|�d����odS)N�(�)znot )�eval�
assertTrue�__name__�
predicates�set�inspect�isgeneratorfunction�isasyncgenfunction�iscoroutinefunction�
isfunction�assertFalse)�self�	predicate�exp�obj�others     r�istestzIsTestBase.istestes����3�i�i�����	�	�#���I�4F�4F�4F����(L�M�M�M��_�s�I�;�'7�'7�7�	O�	O�E��W�8�8�
��G�6�6�
��G�7�7�
���*�*�
�����U�U�3�Z�Z�Z��������)M�N�N�N�N�
	O�	Orc�>�tj|td���dS)N)�
modulesbyfile)�not_exported)r�check__all__rJ�rPs r�test__all__zIsTestBase.test__all__qs!����T�7�9K�L�L�L�L�L�LrN)rG�
__module__�__qualname__rIrJ�	isbuiltin�isclass�iscode�isframerN�ismethod�ismodule�istraceback�isgeneratorrK�iscoroutinerM�
isasyncgenrL�ismethodwrapperrHrUr[r7rrrArA\s���������g�'���'�.��o�w�'9�7�;K��&��(;��)�7�+F��)�7�+F��(�'�*D��-�
/�0�0�J�
O�
O�
O�M�M�M�M�MrrAc#�6K�td��D]}|V��dS�Nr'�r)�rPr/s  r�generator_function_examplermts0����
�1�X�X����������rc�DK�td��23d{V��}|WV��
6dSrjrkrls  r� async_generator_function_exampleroxsJ������8�8��������a��������8�8s�c��
K�dS�N�spamr7rZs r�coroutine_function_examplers|s�����6rc#�K�dV�dSrqr7rZs r�gen_coroutine_function_examplerus����	�E�E�E��6rc�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�TestPredicatesc	���|�tjd��|�tjd��|�tjd��	ddzn�#t$r�}|ja|�tjd��|�tjd��ttd��r!|�tjd	��nC|�tjttj��j����Yd}~nd}~wwxYwdan#dawxYw|�tjd
��|�tjd��|�tjd��|�tjd
��|�tjd��|�tjd��|�tjd��|�tjd��|�tjd��|�tjd��t1j��5t1jd��|�tjd��|�tjd��ddd��n#1swxYwYttd��r!|�tjd��n6|�tjt<jj ����|�tj!d��|�tj!d��|�tj!d��|�tj!t����|�tj!tD����|�tj!tddi������dS)Nzsys.exitz	[].appendzmod.spam.__code__r&rztb.tb_frame�tb�GetSetDescriptorTypeztype(tb.tb_frame).f_localszmod.spamzmod.StupidGit.abusez	git.arguezmod.custom_method�modz'collections.defaultdict.default_factoryz(x for x in range(2))rmz#async_generator_function_example(1)ro�ignorezcoroutine_function_example(1)rs�MemberDescriptorTypezdatetime.timedelta.dayszobject().__str__zobject().__eq__zobject().__repr__�AnyClassr7)#rUrJr^r`�	Exception�
__traceback__ryrard�hasattr�types�isgetsetdescriptorrO�type�tb_frame�f_localsrNrbrc�isdatadescriptorrerKrgrL�warnings�catch_warnings�simplefilterrfrM�ismemberdescriptor�datetime�	timedelta�daysrh�int�rP�es  r�test_excluding_predicatesz(TestPredicates.test_excluding_predicates�s������G�%�z�2�2�2����G�%�{�3�3�3����G�N�$7�8�8�8�
	�
�a�C�C�C���	Y�	Y�	Y���B��K�K����7�7�7��K�K��+�T�2�2�2��u�4�5�5�
Y����G�6�8�:�:�:�:�� � ��!;�D���<M�<M�<V�!W�!W�X�X�X����������	Y�����B�B���B�I�I�I�I����G�&�
�3�3�3����G�&�(=�>�>�>����G�$�k�2�2�2����G�$�&9�:�:�:����G�$�e�,�,�,����G�,�.W�X�X�X����G�'�)@�A�A�A����G�/�1M�N�N�N����G�&�9�	;�	;�	;����G�.�6�	8�	8�	8��
$�
&�
&�	S�	S��!�(�+�+�+��K�K��+�-L�M�M�M��K�K��3�5Q�R�R�R�	S�	S�	S�	S�	S�	S�	S�	S�	S�	S�	S����	S�	S�	S�	S�
�5�0�1�1�	R��K�K��2�4M�N�N�N�N����W�7��8J�8O�P�P�Q�Q�Q����G�+�-?�@�@�@����G�+�->�?�?�?����G�+�-@�A�A�A�����0��6�6�7�7�7�����0��5�5�6�6�6�����0��j�"�b�1I�1I�J�J�K�K�K�K�KsD�"A(�'E�(
D<�2CD7�2E�7D<�<E�E�AK=�=L�Lc	�
�td��}td��}td��}|�t	jt����|�t	jt
jt
jt��������|�t	j|����|�	t	j
t����|�	t	j
t
jt
jt��������|�	t	j|����|�t	jtj
�������|�	t	jtj
�������|�	t	jt����|�	t	jt
jt
jt��������|�	t	j|����|�t	j
tj
�������|�t	j
tj
�������|�t	j
t����|�t	j
t
jt
jt��������|�t	j|����|�t	jtj
�������|�t	jtj
�������|�t	jt����|�	t	jt����|�	t	jt
jt
jt��������|�	t	j|����|���|���dS�Nr&)rorursrOrJrM�	functools�partialrfrFrKre�unittest�mock�Mock�	AsyncMockrLrg�close)rP�async_gen_coro�gen_coro�coros    r�test_iscoroutinezTestPredicates.test_iscoroutine�s���9�!�<�<��1�!�4�4��)�!�,�,������'�(F�G�G�	I�	I�	I�����'��!�)�"3�2�#4�#4�5�5�
6�
6�	7�	7�	7�	
����,�X�6�6�7�7�7�����'�(F�G�G�	I�	I�	I�����'��!�)�"3�2�#4�#4�5�5�
6�
6�	7�	7�	7�	
����+�H�5�5�6�6�6�����'��
�(:�(:�(<�(<�=�=�	?�	?�	?�����'��
�(?�(?�(A�(A�B�B�	D�	D�	D�����'�(B�C�C�	E�	E�	E�����'��!�)�"3�.�#0�#0�1�1�
2�
2�	3�	3�	3�	
����+�D�1�1�2�2�2�����'��
�(:�(:�(<�(<�=�=�	?�	?�	?�����'��
�(?�(?�(A�(A�B�B�	D�	D�	D�����'�(B�C�C�	E�	E�	E�����'��!�)�"3�.�#0�#0�1�1�
2�
2�	3�	3�	3�	
����,�T�2�2�3�3�3�����&�x�}�'9�'9�';�';�<�<�	>�	>�	>�����&�x�}�'>�'>�'@�'@�A�A�	C�	C�	C�����&�'A�B�B�	D�	D�	D�����&�'G�H�H�	J�	J�	J�����&��!�)�"3�4�#6�#6�7�7�
8�
8�	9�	9�	9�	
����*�>�:�:�;�;�;��
�
����h�n�n�&�&�&�&�&rc���d�}|�tj|������td��}t	d��}|�tj|����|�tj|����Gd�d��}|�tj|������|�tj|����Gd�d��}|��}d�|_|�tj|����|���|���dS)Nc3�K�dV�dSrr7r7rr�genz,TestPredicates.test_isawaitable.<locals>.gen�s����5�5�5�5�5�5rr&c��eZdZd�ZdS)�/TestPredicates.test_isawaitable.<locals>.Futurec��dSrr7r7rr�	__await__z9TestPredicates.test_isawaitable.<locals>.Future.__await__����rN)rGr\r]r�r7rr�Futurer���#������
�
�
�
�
rr�c��eZdZdS)�2TestPredicates.test_isawaitable.<locals>.NotFutureN�rGr\r]r7rr�	NotFuturer���������rr�c��dSrr7r7rr�<lambda>z1TestPredicates.test_isawaitable.<locals>.<lambda>s��D�r)rOrJ�isawaitablersrurFr�r�)rPr�r�r�r�r��not_futs       r�test_isawaitablezTestPredicates.test_isawaitable�s^���������,�S�S�U�U�3�3�4�4�4�)�!�,�,��1�!�4�4������+�D�1�1�2�2�2�����+�H�5�5�6�6�6�	�	�	�	�	�	�	�	�	
����+�F�F�H�H�5�5�6�6�6�����,�V�4�4�5�5�5����������)�+�+��(�L�������,�W�5�5�6�6�6��
�
����h�n�n�&�&�&�&�&rc	�,	�|�tjtj����|�tjt
j����|�tjgj����|�tjt
j����|�tjt
j	j
����|�tjtj����|�tjtj
����|�tjtj����|�tjtj����|�tjt��j����|�tjt��j
����|�tjt��j����|�tjdj����|�tjt j����|�tjt$j����|�tjdj����|�tjgj����|�tjt����|�tjt������|�tjt!������|�tjt
����|�tjt*����|�tjt����|�tjt+ddi������dS)N�*��
some_classr7)rFrJ�	isroutine�git�arguer{�
custom_method�countrr�	StupidGit�abuse�object�__init__�__str__�__lt__r��strr,�listr+rOr�rZs r�test_isroutinezTestPredicates.test_isroutines������)�#�)�4�4�5�5�5�����)�#�*;�<�<�=�=�=�����)�"�(�3�3�4�4�4�����)�#�(�3�3�4�4�4�����)�#�-�*=�>�>�?�?�?�����)�&�/�:�:�;�;�;�����)�&�.�9�9�:�:�:�����)�&�-�8�8�9�9�9�����)�#�*�5�5�6�6�6�����)�&�(�(�*;�<�<�=�=�=�����)�&�(�(�*:�;�;�<�<�<�����)�&�(�(�/�:�:�;�;�;�����)�2�+�6�6�7�7�7�����)�#�(�3�3�4�4�4�����)�$�+�6�6�7�7�7�����)�"�'�2�2�3�3�3�����)�"�)�4�4�5�5�5�����*�6�2�2�3�3�3�����*�6�8�8�4�4�5�5�5�����*�3�5�5�1�1�2�2�2�����*�3�/�/�0�0�0�����*�4�0�0�1�1�1�����*�3�/�/�0�0�0�����*�4��b�"�+E�+E�F�F�G�G�G�G�Grc�"�|�tjd��|�tjt����Gd�dt
��}|�tj|������dS)Nz
mod.StupidGitc��eZdZd�ZdS)�2TestPredicates.test_isclass.<locals>.CustomGetattrc��dSrr7)rP�attrs  r�__getattr__z>TestPredicates.test_isclass.<locals>.CustomGetattr.__getattr__3����trN�rGr\r]r�r7rr�
CustomGetattrr�2�#������
�
�
�
�
rr�)rUrJr_rFr�r�rO)rPr�s  r�test_isclasszTestPredicates.test_isclass.s������G�O�_�5�5�5�������-�-�.�.�.�	�	�	�	�	�F�	�	�	�	
���������9�9�:�:�:�:�:rc���Gd�dt��}|��}d|_ttj|����}|�d|��|�d|��dS)Nc��eZdZdZdS)�/TestPredicates.test_get_slot_members.<locals>.C�r�bN�rGr\r]�	__slots__r7rr�Cr�8s������"�I�I�Irr�r�rr�)r�r�dictrJ�
getmembers�assertIn�assertNotIn)rPr��x�memberss    r�test_get_slot_membersz$TestPredicates.test_get_slot_members7s���	#�	#�	#�	#�	#��	#�	#�	#�
�A�C�C������w�)�!�,�,�-�-���
�
�c�7�#�#�#�����g�&�&�&�&�&rc���ddlm}m�G�fd�d|���}Gd�d|��}|��}|�t	j|����|�t	j|����|�t	j|����|�t	jt����|�t	jd����dS)	Nr��ABCMeta�abstractmethodc�&��eZdZ�d���ZdS)�<TestPredicates.test_isabstract.<locals>.AbstractClassExamplec��dSrr7rZs rr(z@TestPredicates.test_isabstract.<locals>.AbstractClassExample.fooE����rN�rGr\r]r(�r�s�r�AbstractClassExampler�Cs.�������
�
�
��^�
�
�
rr���	metaclassc��eZdZd�ZdS)�4TestPredicates.test_isabstract.<locals>.ClassExamplec��dSrr7rZs rr(z8TestPredicates.test_isabstract.<locals>.ClassExample.fooJr�rNr�r7rr�ClassExampler�Ir�rr��)�abcr�r�rFrJ�
isabstractrOr�)rPr�r�r�rr�s     @r�test_isabstractzTestPredicates.test_isabstract@s.���/�/�/�/�/�/�/�/�	�	�	�	�	�	�	�W�	�	�	�	�	�	�	�	�	�/�	�	�	�
�L�N�N��	
����*�+?�@�@�A�A�A�����+�L�9�9�:�:�:�����+�A�.�.�/�/�/�����+�C�0�0�1�1�1�����+�A�.�.�/�/�/�/�/rc�X��	�ddlm}m�g�	G�	fd�d|���}G�fd�d|��}Gd�d	|��}|��	d
dg���	���Gd�d
|��}Gd�d|��}Gd�d|��}|��	gd���dS)Nrr�c���eZdZ�fd�ZdS)�LTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractCheckerc�V����tj|����dSr)r+rJr�)�cls�isabstract_checkss �r�__init_subclass__z^TestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractChecker.__init_subclass__Zs(���!�(�(��);�C�)@�)@�A�A�A�A�ArN)rGr\r]r�)r�s�r�AbstractCheckerr�Ys5�������
B�
B�
B�
B�
B�
B�
Brr�r�c�&��eZdZ�d���ZdS)�QTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractClassExamplec��dSrr7rZs rr(zUTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractClassExample.foo]r�rNr�r�s�rr�r�\s.�������
�
�
��^�
�
�
rr�c��eZdZd�ZdS)�ITestPredicates.test_isabstract_during_init_subclass.<locals>.ClassExamplec��dSrr7rZs rr(zMTestPredicates.test_isabstract_during_init_subclass.<locals>.ClassExample.fooar�rNr�r7rrr�r`r�rr�TFc��eZdZdS)�JTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractChildNr�r7rr�
AbstractChildrf��������Drrc��eZdZdS)�OTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractGrandchildNr�r7rr�AbstractGrandchildrhrrr	c��eZdZdS)�OTestPredicates.test_isabstract_during_init_subclass.<locals>.ConcreteGrandchildNr�r7rr�ConcreteGrandchildrjrrr)TTF)r�r�r��assertEqual�clear)
rPr�r�r�r�rr	rr�r�s
        @@r�$test_isabstract_during_init_subclassz3TestPredicates.test_isabstract_during_init_subclassVs�����/�/�/�/�/�/�/�/���	B�	B�	B�	B�	B�	B�	B��	B�	B�	B�	B�	�	�	�	�	�	�	�?�	�	�	�	�	�	�	�	�/�	�	�	�	
���*�T�5�M�:�:�:����!�!�!�	�	�	�	�	�0�	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	����*�,?�,?�,?�@�@�@�@�@rN)rGr\r]r�r�r�r�r�r�r�rr7rrrwrw�s�������.L�.L�.L�d;(�;(�;(�z'�'�'�. H� H� H�D;�;�;�'�'�'�0�0�0�,A�A�A�A�Arrwc�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestInterpreterStackc�r�tjj|g|�Ri|��t�ddd��dS)N���	)r��TestCaser�r�r��rPr�kwargss   rr�zTestInterpreterStack.__init__psB����"�4�9�$�9�9�9�&�9�9�9��	�	�!�Q������rc��|�tjd��|�tjd��dS)Nz	git.ex[2]zmod.fr)rUrJrdrarZs r�test_abuse_donez$TestInterpreterStack.test_abuse_doneus5�����G�'��5�5�5����G�O�X�.�.�.�.�.rc	�4�|�ttj��dk��tj^}}}}}t	|dd��}|�|tdddgdf��|�|jtj	dddd����t	|dd��}|�|tdd	d
gdf��|�|jtj	dddd����t	|dd��}|�|td
ddgdf��|�|jtj	d
d
dd����t	|dd��}|�|tdddgdf��|�|jtj	dddd����tjd}|�
|jtj��|�|j
d��|�|jtj��|�|jd��|�d|jd��|�|jd��dS)Nr�r&��eggsz    st = inspect.stack()
rr�rr�    eggs(b + d, c + f)
���+r��            spam(a, b, c)
���'r�z        self.argue(a, b, c)
r�zinspect.stack())rFr*r{�strr
�modfile�	positions�dis�	Positions�assertIs�frame�fr�linenor�__file__�functionr��code_context�index)rP�frame1�frame2�frame3�frame4�_�	frameinfo�records        r�
test_stackzTestInterpreterStack.test_stackys�������C�F���q�(�)�)�)�-0�V�*�������F�1�2�2�J�'�	������r�6�$@�#A�1�
E�	G�	G�	G�����)�3�=��R��B�+G�+G�H�H�H��F�1�2�2�J�'�	������q�&�#=�">��
B�	D�	D�	D�����)�3�=��A�q�"�+E�+E�F�F�F��F�1�2�2�J�'�	������r�7�%B�$C�Q�
G�	I�	I�	I�����)�3�=��R��R�+H�+H�I�I�I��F�1�2�2�J�'�	������r�7�%D�$E�q�
I�	K�	K�	K�����)�3�=��R��B�+G�+G�H�H�H�������
�
�f�l�C�F�+�+�+�������+�+�+������#�,�7�7�7������&�1�1�1��
�
�'��)<�Q�)?�@�@�@������q�)�)�)�)�)rc	��|�ttj��d��tj\}}}|�t	|dd��t
dddgdf��|�|jtjdddd����|�t	|dd��t
d	d
dgdf��|�|jtjd	d	dd
����|�t	|dd��t
dddgdf��|�|jtjdddd����dS)N�r&r"r�r#rr$r%rrrrr r!�rz    q = y / 0
r�
)	r
r*r��trrr)r*r+r,)rPr5r6r7s    r�
test_tracezTestInterpreterStack.test_trace�s`������S�V���a�(�(�(�"%�&��������������,��r�7�%B�$C�Q�
G�	I�	I�	I�����)�3�=��R��R�+H�+H�I�I�I����������,��q�&�#=�">��
B�	D�	D�	D�����)�3�=��A�q�"�+E�+E�F�F�F����������,��r�6�$5�#6��
:�	<�	<�	<�����)�3�=��R��B�+G�+G�H�H�H�H�Hrc�^�tjtj��\}}}}|�|ddg��|�|d��|�|d��|�|dddd���|�tj||||��d��dS)Nr��y��)r�r0rDz(x=11, y=14))rJ�getargvaluesr{r/r
�formatargvalues�rPr�varargs�varkw�localss     r�
test_framezTestInterpreterStack.test_frame�s���'.�';�C�F�'C�'C�$��g�u�f������S�z�*�*�*�����$�'�'�'������%�%�%�����r���!<�!<�=�=�=�����0��w��v�N�N�'�	)�	)�	)�	)�	)rc�4�tjtjj��\}}}}|�|gd���|�|d��|�|d��|�tj||||��d��dS)N)rr�r�dr��f�g�hz-(a=7, b=8, c=9, d=3, e=4, f=5, *g=(), **h={}))rJrGr{r/�f_backr
rHrIs     r�test_previous_framez(TestInterpreterStack.test_previous_frame�s���'.�';�C�F�M�'J�'J�$��g�u�f�����=�=�=�>�>�>�����#�&�&�&������$�$�$�����0��w��v�N�N�
<�	>�	>�	>�	>�	>rN)	rGr\r]r�rr<rBrMrTr7rrrrosq���������
/�/�/�*�*�*�8I�I�I�)�)�)�>�>�>�>�>rrc�$�eZdZdZd�Zd�Zd�ZdS)�
GetSourceBaseNc��ttj|j��d���5}|���|_ddd��dS#1swxYwYdS)N�utf-8��encoding)�openrJ�
getsourcefile�fodderModule�read�source)rP�fps  r�setUpzGetSourceBase.setUp�s���
�'�'��(9�:�:�W�
M�
M�
M�	$�QS��'�'�)�)�D�K�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	$�	$s�A�A�Ac��|j�d��}d�||dz
|���|rdndzS)N�
r&r�)r_�splitr,)rP�top�bottom�liness    r�sourcerangezGetSourceBase.sourcerange�sD����!�!�$�'�'���y�y��s�1�u�V�|�,�-�-��1G���R�H�Hrc�~�|�tj|��|�||����dSr)r
rJ�	getsourcerh)rPrSrerfs    r�assertSourceEqualzGetSourceBase.assertSourceEqual�sD������*�3�/�/��)�)�#�v�6�6�	8�	8�	8�	8�	8r)rGr\r]r]rarhrkr7rrrVrV�sI�������L�$�$�$�I�I�I�8�8�8�8�8rrVc��eZdZ	ddd�ZdS)�SlotUser�measured in kilowatts�measured in kilometers)�power�distanceNr�r7rrrmrm�s#�������1�5�7�7�I�I�Irrmc�R�eZdZeZd�Zd�Zeje	j
jdkd��d���Zeje	j
jdkd��d���Z
ejed��d���Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestRetrievingSourceCodec�,�tjttj��}|�|dtjfdtjfdtjfdtjfdtjfdtj	fg��tj
d�|D����}|�|tdftjtfftjtjtjffgtjtfftjtjfftjtjtjffggtj	tffgg��tj
d	�|D��d
��}|�|tdftjtfftjtfftjtjfftjtjtjffggtj	tffgg��dS)N�FesteringGob�MalodorousPervert�ParrotDroppingsr��Tit�
WhichCommentsc��g|]
}|d��S�r&r7��.0r�s  r�
<listcomp>z<TestRetrievingSourceCode.test_getclasses.<locals>.<listcomp>����$?�$?�$?��S��V�$?�$?�$?rr7c��g|]
}|d��Sr{r7r|s  rr~z<TestRetrievingSourceCode.test_getclasses.<locals>.<listcomp>�rrT)rJr�r{r_r
rurvrwr�ry�getclasstreer�)rP�classes�trees   r�test_getclassesz(TestRetrievingSourceCode.test_getclasses�s����$�S�'�/�:�:������)�3�+;�<�.��0E�F�,�c�.A�B�&��
�6� �#�"7�8�*�C�,=�>��	�	�	��#�$?�$?�w�$?�$?�$?�@�@������!�2�,��/�&��;� �-��0E�36�3F�0H�I�� �M�F�9�5� �2�S�]�4D�E�!�.��1F�47�4G�1I�J���
!�.��	�;��
�	�	�	��#�$?�$?�w�$?�$?�$?��F�F������!�2�,��/�&��;��M�F�9�5� �2�S�]�4D�E�!�.��1F�47�4G�1I�J���
!�.��	�;��
�	�	�	�	�	rc���tjttj��}|�|dtjfdtjfdtjfg��dS)Nr�lobbestrr)rJr�r{rNr
rr�rr)rP�	functionss  r�test_getfunctionsz*TestRetrievingSourceCode.test_getfunctions�s]���&�s�G�,>�?�?�	�����f�c�h�%7�&/���%=�&,�c�h�%7�%9�	:�	:�	:�	:�	:rr'z)Docstrings are omitted with -O2 and abovec���|�tjt��d��|�tjtj��d��|�tjt
j��d��|�tjtj��d��|�tjtj	��d��dS)NzA module docstring.�A longer,

indented

docstring.�$Another

docstring

containing

tabsrnro)
r
rJ�getdocr{r�r�r�rmrprqrZs r�test_getdocz$TestRetrievingSourceCode.test_getdoc�s���	
������,�,�.C�D�D�D�������
�6�6�>�	@�	@�	@�������	�2�2�E�	G�	G�	G��������7�7�0�	2�	2�	2�������(9�:�:�1�	3�	3�	3�	3�	3rc���|�tjtj��d��|�tjtjj��d��|�tjtj��j��d��|�tjtjj��d��dS)Nr�r�zThe automatic gainsaying.)r
rJr�r{rur��
contradictionrZs r�test_getdoc_inheritedz.TestRetrievingSourceCode.test_getdoc_inheriteds���	
������(8�9�9�>�	@�	@�	@�������(8�(>�?�?�E�	G�	G�	G�������(8�(:�(:�(@�A�A�E�	G�	G�	G�������(8�(F�G�G�4�	6�	6�	6�	6�	6rztest requires docstringsc�H�tj}|�|t��tj��|�|tj��tjj��|�|t��j��tjj��|�|tj��tjj��|�|tj��tjj��dSr)rJ�_finddocr
r��__doc__�to_bytes�
from_bytes�real)rP�finddocs  r�test_finddocz%TestRetrievingSourceCode.test_finddocs����"����������s�{�3�3�3��������.�.���0D�E�E�E����������0�0�#�,�2F�G�G�G��������0�0�#�.�2H�I�I�I��������*�*�C�H�,<�=�=�=�=�=rc�V�|�tjd��d��dS)NzAn
    indented
    docstring.zAn
indented
docstring.)r
rJ�cleandocrZs r�
test_cleandocz&TestRetrievingSourceCode.test_cleandocs5������)�*L�M�M�3�	5�	5�	5�	5�	5rc���|�tjt��d��|�tjtj��d��|�tjt
j��d��tddd��}|�tj|����|�tjt����dS)N�	# line 1
z
# line 20
z# line 159
�x=1z_non_existing_filename.pyr-)
r
rJ�getcommentsr{r��mod2�cls160�compile�assertIsNoner�)rP�cos  r�test_getcommentsz)TestRetrievingSourceCode.test_getcommentss�������,�S�1�1�<�@�@�@�����,�S�]�;�;�]�K�K�K�����,�T�[�9�9�>�J�J�J�
�U�7��
@�
@�����'�-�b�1�1�2�2�2����'�-�d�3�3�4�4�4�4�4rc��|�tjt��t��|�tjtj��t��|�tjtjj��t��|�tjtjj��t��|�tjt��tjd��|�tjdt��t��dS)N�builtins)
r
rJ�	getmoduler{r�r�r��sys�modulesr)rZs r�test_getmodulez'TestRetrievingSourceCode.test_getmodule)s�������*�3�/�/��5�5�5�����*�3�=�9�9�3�?�?�?�����*�3�=�+>�?�?��E�E�E�����*�3�=�+>�?�?��E�E�E�����*�3�/�/���Z�1H�I�I�I�����*�4��9�9�3�?�?�?�?�?rc��d�}tj�d|��5tj��}|�tj|����tj|��ddd��dS#1swxYwYdS)Nc� �td���)Nzbad file)�FileNotFoundError)rS�	_filenames  r�_getabsfilezKTestRetrievingSourceCode.test_getmodule_file_not_found.<locals>._getabsfile9s��#�J�/�/�/rzinspect.getabsfile)r�r��patchrJ�currentframer�r��getouterframes)rPr�rPs   r�test_getmodule_file_not_foundz6TestRetrievingSourceCode.test_getmodule_file_not_found7s���	0�	0�	0�
�]�
 �
 �!5�{�
C�
C�	&�	&��$�&�&�A����g�/��2�2�3�3�3��"�1�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	&�	&s�AB�B�Bc���tj|jjd��}|�|jdd��|�|jdd��dS)N�2rr�r&z'A module docstring.'
)rJ�getframeinfor]r/r
r3)rP�
frame_infos  r� test_getframeinfo_get_first_linez9TestRetrievingSourceCode.test_getframeinfo_get_first_line@s]���)�$�*;�*>��C�C�
�����0��3�\�B�B�B�����0��3�5N�O�O�O�O�Orc���|�tjdd��|�tjdd��|�tjdd��dS)N�r&��3�K�L)rkr�r�r{r�r�rZs r�test_getsourcez'TestRetrievingSourceCode.test_getsourceEsV�����s�y�"�b�1�1�1����s�}�b�"�5�5�5����s�{�B��3�3�3�3�3rc��|�ttjtj����t��|�ttjtj����t��d}td|d��}|�tj|��d��ddd|j
ftj|j
<	|�ttj|����|��tj|j
=dS#tj|j
=wxYw)Nz2_non_existing_filename_used_for_sourcefile_test.pyr�r-r&�None)
r
rrJr\r{rrr)r�r�r��co_filename�	linecache�cache)rP�fnr�s   r�test_getsourcefilez+TestRetrievingSourceCode.test_getsourcefileJs������'�"7���"A�"A�B�B�G�L�L�L�����'�"7��	�"B�"B�C�C�W�M�M�M�
A��
�U�B��
'�
'������.�r�2�2�D�9�9�9�+,�d�F�B�N�*K�	����'�	0����X�g�&;�B�&?�&?�@�@�"�E�E�E�����/�/�/��	����/�/�/�/�/s�"5D+�+D?c�~�|�tjtj��tj��dSr)r
rJ�getfiler{r�r1rZs r�test_getfilez%TestRetrievingSourceCode.test_getfileVs,���������7�7���F�F�F�F�Frc��|�t��5}tjt��ddd��n#1swxYwY|�t
|j���d����dS)Nz<module)	�assertRaises�	TypeErrorrJr�r�rFr��	exception�
startswithr�s  r�test_getfile_builtin_modulez4TestRetrievingSourceCode.test_getfile_builtin_moduleYs���
�
�
�y�
)�
)�	!�Q��O�C� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�����A�K�(�(�3�3�I�>�>�?�?�?�?�?��A�A�Ac��|�t��5}tjt��ddd��n#1swxYwY|�t
|j���d����dS)Nz<class)	r�r�rJr�r�rFr�r�r�r�s  r�test_getfile_builtin_classz3TestRetrievingSourceCode.test_getfile_builtin_class^s���
�
�
�y�
)�
)�	!�Q��O�C� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�����A�K�(�(�3�3�H�=�=�>�>�>�>�>r�c���|�t��5}tjt��ddd��n#1swxYwY|�dt
|j����|�t��5}tjtj	��ddd��n#1swxYwY|�dt
|j����dS)Nz
expected, got)
r�r�rJr��absr�r�r�r�r+)rP�e_abs�e_appends   r�'test_getfile_builtin_function_or_methodz@TestRetrievingSourceCode.test_getfile_builtin_function_or_methodcs3��
�
�
�y�
)�
)�	!�U��O�C� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!��
�
�o�s�5�?�';�';�<�<�<�
�
�
�y�
)�
)�	)�X��O�D�K�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)��
�
�o�s�8�+=�'>�'>�?�?�?�?�?s#�A�A�A�B9�9B=�B=c���Gd�dt��}Gd�d|���}|�t��5tj|��ddd��dS#1swxYwYdS)Nc�$�eZdZed���ZdS)�FTestRetrievingSourceCode.test_getfile_class_without_module.<locals>.CMc��t�r��AttributeError�r�s rr\zQTestRetrievingSourceCode.test_getfile_class_without_module.<locals>.CM.__module__ms��$�$rN)rGr\r]�propertyr7rr�CMr�l�-������
�
%�
%��X�
%�
%�
%rr�c��eZdZdS)�ETestRetrievingSourceCode.test_getfile_class_without_module.<locals>.CNr�r7rrr�r�prrr�r�)r�r�r�rJr�)rPr�r�s   r�!test_getfile_class_without_modulez:TestRetrievingSourceCode.test_getfile_class_without_moduleks���	%�	%�	%�	%�	%��	%�	%�	%�	�	�	�	�	�"�	�	�	�	�
�
�
�y�
)�
)�	�	��O�A����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A�A#�&A#c���Gd�d��}|��}|�t��5tj|��ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�DTestRetrievingSourceCode.test_getfile_broken_repr.<locals>.ErrorReprc� �td���)N�xyz)rrZs r�__repr__zMTestRetrievingSourceCode.test_getfile_broken_repr.<locals>.ErrorRepr.__repr__ws����&�&�&rN)rGr\r]r�r7rr�	ErrorReprr�vs#������
'�
'�
'�
'�
'rr�)r�r�rJr�)rPr��ers   r�test_getfile_broken_reprz1TestRetrievingSourceCode.test_getfile_broken_reprus���	'�	'�	'�	'�	'�	'�	'�	'��Y�[�[��
�
�
�y�
)�
)�	 �	 ��O�B����	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 �	 �	 s�A�A�Ac�T�ddlm}d}||��x}tj|<d|_d|_t
d|j��|�tj
|jj��d��tj|=tj
tddd	����dS)
Nr)�
ModuleType�__inspect_dummy�<string>�dummyz
def x(): passza=10r��single)r�r�r�r�r1�
__loader__r-�__dict__r
rJr\r��__code__r�r�)rPr��name�ms    r�test_getmodule_recursionz1TestRetrievingSourceCode.test_getmodule_recursion}s���$�$�$�$�$�$� �� *�
�4� 0� 0�0��C�K�����
�����_�a�j�)�)�)�����.�q�s�|�<�<�j�I�I�I��K�����'�&��H�5�5�6�6�6�6�6rc�
����	d\��tj�d���fd�	}|t_	i}tt��d��|��t	j|d���t_dS#�t_wxYw)N)z<test>zdef x(): pass
c�T��|�kr��d���S�||��S)NT)�keepends)�
splitlines)r�module_globalsr��getlinesr_s  ���r�monkeyzHTestRetrievingSourceCode.test_proceed_with_fake_filename.<locals>.monkey�s8����2�~�
:��(�(�$�(�7�7�7��x��.�9�9�9rr�r�r)r�rr-r�rJrj)rPr�nsr�rr_s   @@@r�test_proceed_with_fake_filenamez8TestRetrievingSourceCode.test_proceed_with_fake_filename�s������B�0�
��F��%��	:�	:�	:�	:�	:�	:�	:�	:�
$�	��	*��B�����X�.�.��3�3�3���b��g�&�&�&�!)�I������I��)�)�)�)s�;A4�4Bc�R�|�tjjdd��dS)Nr$r?)rkr{rr�rZs r�test_getsource_on_code_objectz6TestRetrievingSourceCode.test_getsource_on_code_object�s%�����s�x�0�"�b�9�9�9�9�9rN) rGr\r]r{r]r�r�r��skipIfr��flags�optimizer�r�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr7rrrsrs�s��������L�&�&�&�P:�:�:��X�_�S�Y�'�1�,�@�B�B�	3�	3�B�B�	3��X�_�S�Y�'�1�,�@�B�B�6�6�B�B�6��X�_�)�+E�F�F�>�>�G�F�>�5�5�5�5�5�5�@�@�@�&�&�&�P�P�P�
4�4�4�

0�
0�
0�G�G�G�@�@�@�
?�?�?�
@�@�@���� � � �	7�	7�	7�*�*�*�":�:�:�:�:rrsc��eZdZd�ZdS)�TestGetsourceInteractivec�b�d}td|d���\}}}|�d|��dS)Nz�import sys, inspect;                 assert not hasattr(sys.modules['__main__'], '__file__');                 A = type('A', (), {});                 inspect.getsource(A)z-cT)�
__isolateds"OSError: source code not available)rr�)rP�coder9�stderrs    r�test_getclasses_interactivez4TestGetsourceInteractive.test_getclasses_interactive�s@��&��-�T�4�D�I�I�I���1�f��
�
�;�V�D�D�D�D�DrN)rGr\r]rr7rrr
r
�s(������E�E�E�E�Err
c��eZdZeZd�Zd�ZdS)�!TestGettingSourceOfToplevelFramesc�V�d|_|�tjdd��dSr�)�maxDiffrkr{r�rZs r�test_range_toplevel_framez;TestGettingSourceOfToplevelFrames.test_range_toplevel_frame�s*��������s�/��D�9�9�9�9�9rc�H�|�tjdd��dSr�)rkr{ryrZs r�#test_range_traceback_toplevel_framezETestGettingSourceOfToplevelFrames.test_range_traceback_toplevel_frame�s"�����s�v�q�$�/�/�/�/�/rN)rGr\r]r{r]rrr7rrrr�s7�������L�:�:�:�0�0�0�0�0rrc�*�eZdZeZd�Zd�Zd�Zd�ZdS)�TestDecoratorsc�H�|�tjdd��dS)NrF�)rkr��wrappedrZs r�test_wrapped_decoratorz%TestDecorators.test_wrapped_decorator�s"�����t�|�R��4�4�4�4�4rc�H�|�tjdd��dS)Nr�
)rkr��gonerZs r�test_replacing_decoratorz'TestDecorators.test_replacing_decorator�s"�����t�y�!�R�0�0�0�0�0rc�H�|�tjdd��dS)N��)rkr�r�rZs r�test_getsource_unwrapz$TestDecorators.test_getsource_unwrap�s"�����t�y�#�s�3�3�3�3�3rc�H�|�tjdd��dS)N�q�s)rkr��func114rZs r�test_decorator_with_lambdaz)TestDecorators.test_decorator_with_lambda�s"�����t�|�S�#�6�6�6�6�6rN)	rGr\r]r�r]rr r$r)r7rrrr�sU�������L�5�5�5�1�1�1�4�4�4�7�7�7�7�7rrc�B�eZdZeZd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	S)
�
TestOnelinersc�H�|�tjdd��dS)Nr%)rkr��ollrZs r�test_oneline_lambdaz!TestOneliners.test_oneline_lambda�s"�����t�x��R�0�0�0�0�0rc�H�|�tjdd��dS)N��)rkr��tllrZs r�test_threeline_lambdaz#TestOneliners.test_threeline_lambda�s$��	
���t�x��R�0�0�0�0�0rc�H�|�tjdd��dS)N�!�")rkr��tllirZs r�test_twoline_indented_lambdaz*TestOneliners.test_twoline_indented_lambda�s$��	
���t�y�"�b�1�1�1�1�1rc�H�|�tjdd��dS)N�%)rkr��onelinefuncrZs r�test_onelinefunczTestOneliners.test_onelinefunc�s#�����t�/��R�8�8�8�8�8rc�H�|�tjdd��dS)N�(�))rkr��manyargsrZs r�
test_manyargszTestOneliners.test_manyargs�s$��	
���t�}�b�"�5�5�5�5�5rc�H�|�tjdd��dS)N�,�-)rkr��twolinefuncrZs r�test_twolinefunczTestOneliners.test_twolinefunc�s%��	
���t�/��R�8�8�8�8�8rc�T�|�tjddd��dS)Nr&�1)rkr�rrZs r�test_lambda_in_listz!TestOneliners.test_lambda_in_list�s(��	
���t�v�a�y�"�b�1�1�1�1�1rc�H�|�tjdd��dS)N�7)rkr��	anonymousrZs r�test_anonymouszTestOneliners.test_anonymous�s$��	
���t�~�r�2�6�6�6�6�6rN)
rGr\r]r�r]r.r3r8r<rArFrIrMr7rrr+r+�s��������L�1�1�1�1�1�1�
2�2�2�
9�9�9�6�6�6�9�9�9�2�2�2�
7�7�7�7�7rr+c�$�eZdZeZd�Zd�Zd�ZdS)�TestBlockCommentsc�H�|�tjdd��dS)N�`�r)rkr{ryrZs r�test_toplevel_classz%TestBlockComments.test_toplevel_class�s#�����s�0�"�c�:�:�:�:�:rc�R�|�tjjdd��dS)N�c�h)rkr{ryrPrZs r�test_class_methodz#TestBlockComments.test_class_method�s&�����s�0�2�B��<�<�<�<�<rc�R�|�tjjdd��dS)N�m�p)rkr{ry�asyncfrZs r�test_class_async_methodz)TestBlockComments.test_class_async_method�s&�����s�0�7��c�B�B�B�B�BrN)rGr\r]r{r]rSrWr\r7rrrOrO�sK�������L�;�;�;�=�=�=�C�C�C�C�CrrOc�T�eZdZeZd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zej
eed��pej�d	��d
��d���Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zej
e j!pe j"d��d���Z#dS)�TestBuggyCasesc�H�|�tjdd��dS)N�:�;)rkr��with_commentrZs r�test_with_commentz TestBuggyCases.test_with_comment�s#�����t�0�"�b�9�9�9�9�9rc�T�|�tjddd��dS)Nr�?�@)rkr��
multiline_sigrZs r�test_multiline_sigz!TestBuggyCases.test_multiline_sig�s(�����t�1�!�4�b�"�=�=�=�=�=rc�`�|�tj��jdd��dS)N�G�H)rkr��func69�func71rZs r�test_nested_classz TestBuggyCases.test_nested_class�s)�����t�{�}�}�3�R��<�<�<�<�<rc�H�|�tjdd��dS)N�M)rkr��func77rZs r�#test_one_liner_followed_by_non_namez2TestBuggyCases.test_one_liner_followed_by_non_name�"�����t�{�B��3�3�3�3�3rc�R�|�tjjdd��dS)N�S)rkr��cls82�func83rZs r�test_one_liner_dedent_non_namez-TestBuggyCases.test_one_liner_dedent_non_names%�����t�z�0�"�b�9�9�9�9�9rc�H�|�tjdd��dS)N�X�Z)rkr��func88rZs r�&test_with_comment_instead_of_docstringz5TestBuggyCases.test_with_comment_instead_of_docstringrsrc�H�|�tjdd��dS)N�_�a)rkr��method_in_dynamic_classrZs r�test_method_in_dynamic_classz+TestBuggyCases.test_method_in_dynamic_classs#�����t�;�R��D�D�D�D�Drr1z.pyz,unicodedata is not an external binary modulec��|�ttjt��|�ttjt��dSr)r��OSErrorrJrj�unicodedata�
findsourcerZs r�test_findsource_binaryz%TestBuggyCases.test_findsource_binarys@��	
���'�7�#4�k�B�B�B����'�7�#5�{�C�C�C�C�Crc��dg}t|ddd��}|�ttj|��|�ttj|��dd||jftj|j<	|�	tj|��|df��|�	tj|��|d��tj|j=dS#tj|j=wxYw)Nr�r�_dynamically_created_filer-r&)
r�r�r�rJr�rjr�r�r�r
)rPrgr�s   r�!test_findsource_code_in_linecachez0TestBuggyCases.test_findsource_code_in_linecaches������
�U�1�X�:�F�
C�
C�����'�7�#5�r�:�:�:����'�7�#4�b�9�9�9�+,�d�E�2�>�*J�	����'�	0����W�/��3�3�e�A�Y�?�?�?����W�.�r�2�2�E�!�H�=�=�=�����/�/�/��	����/�/�/�/�/s
�AC1�1Dc���dD]_}td|d��}|�ttj|��|�ttj|���`dS)N)r�r�r�r-)r�r��IOErrorrJr�rj)rP�fnamer�s   r� test_findsource_without_filenamez/TestBuggyCases.test_findsource_without_filename#se��%�	>�	>�E����v�.�.�B����g�w�'9�2�>�>�>����g�w�'8�"�=�=�=�=�	>�	>rc��ttjt����}d|zdz}t	|tjd��}ii}}t
|||��|d}|�|jj	dd|zz��|�
td��5tj|��ddd��dS#1swxYwYdS)Nz

z
def f(): passr-rPr&r'zlineno is out of bounds)
r*rJrjr{r�r1rEr
r��co_firstlineno�assertRaisesRegexr�r�)rP�mod_len�srcr�rQ�l�funcs       r�)test_findsource_with_out_of_bounds_linenoz8TestBuggyCases.test_findsource_with_out_of_bounds_lineno)s���g�'��,�,�-�-�����/�1��
�S�#�,��
/�
/���2�1���R��A������v�������5�q��7��{�C�C�C�
�
#�
#�G�-F�
G�
G�	%�	%���t�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	%�	%s�(C
�
C�Cc�R�|�tjjdd��dS)N�v�w)rkr��ClassWithMethod�methodrZs r�test_getsource_on_methodz'TestBuggyCases.test_getsource_on_method4s&�����t�3�:�C��E�E�E�E�Erc�R�|�tjjdd��dS)N��)rkr��cls135�func136rZs r�test_nested_funczTestBuggyCases.test_nested_func7s%�����t�{�2�C��=�=�=�=�=rc�H�|�tjdd��dS)N��)rkr��cls149rZs r�4test_class_definition_in_multiline_string_definitionzCTestBuggyCases.test_class_definition_in_multiline_string_definition:�"�����t�{�C��5�5�5�5�5rc�H�|�tjdd��dS)N��)rkr�r�rZs r�*test_class_definition_in_multiline_commentz9TestBuggyCases.test_class_definition_in_multiline_comment=r�rc�R�|�tjjdd��dS)N��)rkr��cls173�cls175rZs r�,test_nested_class_definition_indented_stringz;TestBuggyCases.test_nested_class_definition_indented_string@s%�����t�{�1�3��<�<�<�<�<rc��|�tjdd��|�tjjdd��dS)N���)rkr��cls183�cls185rZs r�test_nested_class_definitionz+TestBuggyCases.test_nested_class_definitionC�?�����t�{�C��5�5�5����t�{�1�3��<�<�<�<�<rc��|�tjdd��|�tjjdd��dS)N������)rkr��cls196�cls200rZs r�test_class_decoratorz#TestBuggyCases.test_class_decoratorGr�rc��|�tjdd��|�tjjdd��dS)N������)rkr��cls238�cls239rZs r�test_class_inside_conditionalz,TestBuggyCases.test_class_inside_conditionalKr�rc��|�tjdd��|�tjjdd��|�tjjjdd��|�tjjdd��|�tjjjdd��dS)N��������������)rkr��cls203�cls204�cls205�cls207rZs r�test_multiple_children_classesz-TestBuggyCases.test_multiple_children_classesOs������t�{�C��5�5�5����t�{�1�3��<�<�<����t�{�1�8�#�s�C�C�C����t�{�1�3��<�<�<����t�{�1�8�#�s�C�C�C�C�Crc��|�tj��dd��|�tjdd��|�tj�����dd��dS)N������������)rkr��func212�cls213�func219rZs r�,test_nested_class_definition_inside_functionz;TestBuggyCases.test_nested_class_definition_inside_functionVsj�����t�|�~�~�s�C�8�8�8����t�{�C��5�5�5����t�{�}�}�4�4�6�6��S�A�A�A�A�Arzsocket.accept is brokenc��ddl}|�|jd��|�|�tj����dd��|�t
jdd��|�|�tj�������dd��dS)Nr������������)	�asyncio�
addCleanup�set_event_loop_policyrk�runr��func225�cls226�func232)rPr�s  r�2test_nested_class_definition_inside_async_functionzATestBuggyCases.test_nested_class_definition_inside_async_function[s���
	��������5�t�<�<�<����w�{�{�4�<�>�>�:�:�C��E�E�E����t�{�C��5�5�5����w�{�{�4�;�=�=�+@�+@�+B�+B�C�C�S�#�N�N�N�N�NrN)$rGr\r]r�r]rcrhrnrrrxr}r�r�rr�r�r1�endswithr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�
is_emscripten�is_wasir�r7rrr^r^�s��������L�:�:�:�>�>�>�=�=�=�4�4�4�:�:�:�4�4�4�E�E�E�
�X�_����j�9�9�9�F�!,�!5�!>�!>�u�!E�!E�C�E�E�D�D�E�E�D�
0�
0�
0�>�>�>�	%�	%�	%�F�F�F�>�>�>�6�6�6�6�6�6�=�=�=�=�=�=�=�=�=�=�=�=�D�D�D�B�B�B�
�X�_���0���!���O�O�	��O�O�Orr^c�*��eZdZ�fd�Zd�Zd�Z�xZS)�	TestNoEOLc����tdz|_tj|j��t	tj�|jdtjz��dd���5}|�d��ddd��n#1swxYwYt|j��5ddl
}ddd��n#1swxYwY||_t���
��dS)N�_dirzinspect_fodder3%spy�wrXrYzclass X:
    pass # No EOLr)r
�tempdir�os�mkdirr[�pathr,�extsep�writer	�inspect_fodder3r]�superra)rPrP�mod3�	__class__s   �rrazTestNoEOL.setUpgsL��������
�������
�"�'�,�,�t�|�-B�R�Y�-N�O�O���)�)�)�	3�,-�
�G�G�1�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3��4�<�
(�
(�	+�	+�*�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+� ���
���
�
�����s$�,B�B�B�-B>�>C�Cc�8�tj|j��dSr)�shutil�rmtreer�rZs r�tearDownzTestNoEOL.tearDownrs���
�d�l�#�#�#�#�#rc�H�|�|jjdd��dS)Nr&r')rkr]�XrZs r�
test_classzTestNoEOL.test_classus&�����t�0�2�A�q�9�9�9�9�9r)rGr\r]rarr�
__classcell__�rs@rr�r�fsV�������	�	�	�	�	�$�$�$�:�:�:�:�:�:�:rr�c�"�eZdZ	d�Zd�Zd�ZdS)�_BrokenDataDescriptorc� �td����Nzbroken data descriptorr��rs r�__get__z_BrokenDataDescriptor.__get__}����5�6�6�6rc��t�r)�RuntimeErrorrs r�__set__z_BrokenDataDescriptor.__set__�s���rc� �td���rr�rs rr�z!_BrokenDataDescriptor.__getattr__�rrN)rGr\r]rrr�r7rrrrysF�������7�7�7����7�7�7�7�7rrc��eZdZ	d�Zd�ZdS)�_BrokenMethodDescriptorc� �td����Nzbroken method descriptorr�rs rrz_BrokenMethodDescriptor.__get__�����7�8�8�8rc� �td���rr�rs rr�z#_BrokenMethodDescriptor.__getattr__�rrN)rGr\r]rr�r7rrrr�s7�������9�9�9�9�9�9�9�9rrc�>�d�tj|��D��S)Nc�"�g|]}|dd���
S�Nr>r7)r}�ts  rr~z!attrs_wo_objs.<locals>.<listcomp>�s ��=�=�=�a�A�b�q�b�E�=�=�=r)rJ�classify_class_attrsr�s r�
attrs_wo_objsr!�s!��=�=�7�7��<�<�=�=�=�=rc�^�eZdZd�Zdddggdifd�Zd�Zd�Zd�Zd�Ze	j
ed��d	���Ze
e	j
ed��d
�����Ze
e	j
ed��d�����Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestClassesAndFunctionsc���Gd�dt��}Gd�d|��}Gd�d|��}Gd�d||��}||||tf}tj|��}|�||��dS)	Nc��eZdZdS)�4TestClassesAndFunctions.test_newstyle_mro.<locals>.ANr�r7rr�Ar&�r�rr'c��eZdZdS)�4TestClassesAndFunctions.test_newstyle_mro.<locals>.BNr�r7rr�Br)�r�rr*c��eZdZdS)�4TestClassesAndFunctions.test_newstyle_mro.<locals>.CNr�r7rrr�r,�r�rr�c��eZdZdS)�4TestClassesAndFunctions.test_newstyle_mro.<locals>.DNr�r7rr�Dr.�r�rr/)r�rJ�getmror
)rPr'r*r�r/�expected�gots       r�test_newstyle_mroz)TestClassesAndFunctions.test_newstyle_mro�s��� � � � � �� � � �������������������������1�����q�!�Q��'���n�Q��������3�'�'�'�'�'rNc
�r�tj|��\}
}}}
}}}|�|
|��|�||��|�||��|�|
|��|�||��|�||��|�||	��dSr)rJ�getfullargspecr
)rP�routine�args_e�	varargs_e�varkw_e�
defaults_e�
posonlyargs_e�kwonlyargs_e�kwonlydefaults_e�ann_errJrK�defaults�
kwonlyargs�kwonlydefaults�anns                 r�assertFullArgSpecEqualsz/TestClassesAndFunctions.assertFullArgSpecEquals�s���
�"�7�+�+�	H��g�u�h�
�N�C�����v�&�&�&�����)�,�,�,������(�(�(�����:�.�.�.�����\�2�2�2�����)9�:�:�:�����e�$�$�$�$�$rc	���|�tjgddgddi���|�tjdgdti���|�tjgdg���|�tjgd�d	d
g���|�tjgd�ddd	d
g�
��|�tjgd�dd	d
gddd����dS)N�arg1�arg2r&)r8r<r=)r>�arg)r<�rr�rrOr�rPrr)r8r9r<�r&r'r>r r�)r�rP)r:r<r=)	rCr��	keyworded�	annotatedr��keyword_only_arg�all_markers� all_markers_with_args_and_kwargs�all_markers_with_defaultsrZs r�test_getfullargspecz+TestClassesAndFunctions.test_getfullargspec�sL���$�$�T�^�R�6�39�(�7=�a�j�	%�	B�	B�	B�	
�$�$�T�^�f�X�,2�T�?�	%�	<�	<�	<��$�$�T�%:�B�38�'�	%�	;�	;�	;�	
�$�$�T�%5�7K�7K�7K�36��*�	%�	>�	>�	>�	
�$�$�T�%J�%9�%9�%9�/5�-5�36��*�		%�	>�	>�	>�	
�$�$�T�%C�EY�EY�EY�07�36��*�<=�A�6F�6F�	%�	H�	H�	H�	H�	Hrc���tjtj��d���}|�|ddg��|�tj|��ddg��dS)Nc��dSrr7�r�rDs  r�hamzETestClassesAndFunctions.test_argspec_api_ignores_wrapped.<locals>.ham�����Drr�rD)r��wrapsr{rrrCr�)rPrTs  r� test_argspec_api_ignores_wrappedz8TestClassesAndFunctions.test_argspec_api_ignores_wrapped�sz��	����	"�	"�	�	�
#�	"�	�	
�$�$�S�3��*�5�5�5��$�$�Y�%6�s�%;�%;�&)�3�Z�	1�	1�	1�	1�	1rc��d�}tjdtjj��}tj|f���|_|�|dg��dS)Nc��dSrr7r7rr�testzHTestClassesAndFunctions.test_getfullargspec_signature_attr.<locals>.test�����Drrr�r.)rJ�	Parameter�POSITIONAL_ONLY�	Signature�
__signature__rC)rPrZ�
spam_params   r�"test_getfullargspec_signature_attrz:TestClassesAndFunctions.test_getfullargspec_signature_attr�s_��	�	�	��&�v�w�/@�/P�Q�Q�
�$�.�:�-�H�H�H����$�$�T�F�8�4�4�4�4�4rc���dd�}tj|��}|�|j|j��d�}tj|��}|�|j|j��dS)Nrrr�returnrTc��dSrr7�rs rrZzITestClassesAndFunctions.test_getfullargspec_signature_annos.<locals>.test�����rc��dSrr7r7rrrZzITestClassesAndFunctions.test_getfullargspec_signature_annos.<locals>.test�rgr)rrrrdrT)rJr5r
�__annotations__�annotations)rPrZ�specs   r�#test_getfullargspec_signature_annosz;TestClassesAndFunctions.test_getfullargspec_signature_annos�su��)�)�)�)��%�d�+�+������-�t�/?�@�@�@�����%�d�+�+������-�t�/?�@�@�@�@�@r�6Signature information for builtins requires docstringsc�&�|�tjjddg��|�tjt	j����jddg��|�tjdgddgddd����dS)	NrPrSr��dir_fd�follow_symlinksT)rorp)r7r<r=)rC�_pickle�Pickler�dump�io�BytesIOr��statrZs r�#test_getfullargspec_builtin_methodsz;TestClassesAndFunctions.test_getfullargspec_builtin_methods�s���	
�$�$�W�_�%9�F�E�?�K�K�K��$�$�W�_�R�Z�\�\�%B�%B�%G�&�RW��Y�Y�Y��$�$�
�W��H�#�%6�7�)-�$�G�G�		%�	I�	I�	I�	I�	Irc��ddl}|j}tj|��}|�|jdd��dS)Nr�avocado)�	_testcapi�&docstring_with_signature_with_defaultsrJr5r
r?)rPrz�builtinrks    r� test_getfullargspec_builtin_funcz8TestClassesAndFunctions.test_getfullargspec_builtin_func�sK��	�����B���%�g�.�.�������q�)�9�5�5�5�5�5rc��ddl}|j}|�t��5t	j|��ddd��dS#1swxYwYdS)Nr)rz�docstring_no_signaturer�r�rJr5)rPrzr|s   r�-test_getfullargspec_builtin_func_no_signaturezETestClassesAndFunctions.test_getfullargspec_builtin_func_no_signature�s���	�����2��
�
�
�y�
)�
)�	,�	,��"�7�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	,�	,s�A�A�Ac�|�t��D]d}tj|��}t|j��}t|��}|�|��|�||���etjt��}t|j��}|�|t��dSr)
r5rJr5r�r@�sortedrFr
r?� unsorted_keyword_only_parameters�rPr��	signaturer��sorted_ls     r�8test_getfullargspec_definition_order_preserved_on_kwonlyzPTestClassesAndFunctions.test_getfullargspec_definition_order_preserved_on_kwonlys���G�I�I�	*�	*�B��.�r�2�2�I��Y�)�*�*�A��a�y�y�H��O�O�A�������Q��)�)�)�)��*�+N�O�O�	���%�&�&������<�=�=�=�=�=rc��Gd�dt��}t|��}|�ddtf|d��|�ddtf|d��|�d	d|f|d
��|�dd|f|d
��|�dd|f|d��|�dd|f|d|z��|�dd|f|d��|�dd|f|d��|�dd|f|d��|�dd|f|d��Gd�d|��}t|��}|�d	d|f|d
��|�dd|f|d
��|�dd|f|d��|�dd|f|d��|�dd|f|d��|�dd|f|d��|�dd|f|d��|�dd|f|d��Gd�d|��}t|��}|�d	d|f|d
��|�dd|f|d��|�dd|f|d��|�dd|f|d��|�dd|f|d��|�dd|f|d��|�dd|f|d��|�dd|f|d��Gd �d!||��}t|��}|�d	d|f|d
��|�dd|f|d��|�dd|f|d��|�dd|f|d��|�dd|f|d��|�dd|f|d��|�dd|f|d��|�dd|f|d��dS)"Nc��eZdZd�Zee��Zd�Zee��Zd�Zee��Z	d�Z
d�ZdZe
��Ze��ZdS)�9TestClassesAndFunctions.test_classify_newstyle.<locals>.Ac��dSrr7r7rr�sz;TestClassesAndFunctions.test_classify_newstyle.<locals>.A.srgrc��dSrr7r�s rrz;TestClassesAndFunctions.test_classify_newstyle.<locals>.A.crgrc��dSrr7rZs r�getpz>TestClassesAndFunctions.test_classify_newstyle.<locals>.A.getprgrc��dSrr7rZs rr�z;TestClassesAndFunctions.test_classify_newstyle.<locals>.A.mrgrc��dSrr7rZs r�m1z<TestClassesAndFunctions.test_classify_newstyle.<locals>.A.m1rgr�1N)rGr\r]r��staticmethodr�classmethodr�r�r0r�r��datablobr�ddr�mdr7rrr'r�s��������M�M���Q���A������A���A� � � ������A��������H�&�&�(�(�B�(�(�*�*�B�B�Brr'�__new__�
static method�missing __new__r�r�zmissing __init__r�zmissing static methodr�class method�missing class methodr0r�zmissing propertyr�zmissing plain method: %rr��missing plain methodr��datazmissing datar�zmissing method descriptorr�zmissing data descriptorc��eZdZd�ZdS)�9TestClassesAndFunctions.test_classify_newstyle.<locals>.Bc��dSrr7rZs rr�z;TestClassesAndFunctions.test_classify_newstyle.<locals>.B.m6rgrN)rGr\r]r�r7rrr*r�4s����������rr*c��eZdZd�Zd�ZdS)�9TestClassesAndFunctions.test_classify_newstyle.<locals>.Cc��dSrr7rZs rr�z;TestClassesAndFunctions.test_classify_newstyle.<locals>.C.mErgrc��dSrr7rZs rrz;TestClassesAndFunctions.test_classify_newstyle.<locals>.C.cFrgrN)rGr\r]r�rr7rrr�r�Cs"�������������rr�c��eZdZd�ZdS)�9TestClassesAndFunctions.test_classify_newstyle.<locals>.Dc��dSrr7rZs rr�z<TestClassesAndFunctions.test_classify_newstyle.<locals>.D.m1TrgrN)rGr\r]r�r7rrr/r�Rs����������rr/)r�r!r�)rPr'�attrsr*r�r/s      r�test_classify_newstylez.TestClassesAndFunctions.test_classify_newstyles���	+�	+�	+�	+�	+��	+�	+�	+�(�a� � ���
�
�y�/�6�:�E�'�	)�	)�	)��
�
�z�8�V�4�e�=O�P�P�P��
�
�s�O�Q�/��8O�P�P�P��
�
�s�N�A�.��7M�N�N�N��
�
�s�J��*�E�3E�F�F�F��
�
�s�H�a�(�%�0�5�8�	:�	:�	:��
�
�t�X�q�)�5�2H�I�I�I��
�
�z�6�1�-�u�n�E�E�E��
�
�t�X�q�)�5�2M�N�N�N��
�
�t�V�Q�'��0I�J�J�J�	�	�	�	�	��	�	�	��a� � ���
�
�s�O�Q�/��8O�P�P�P��
�
�s�N�A�.��7M�N�N�N��
�
�s�J��*�E�3E�F�F�F��
�
�s�H�a�(�%�1G�H�H�H��
�
�t�X�q�)�5�2H�I�I�I��
�
�z�6�1�-�u�n�E�E�E��
�
�t�X�q�)�5�2M�N�N�N��
�
�t�V�Q�'��0I�J�J�J�	�	�	�	�	��	�	�	�
�a� � ���
�
�s�O�Q�/��8O�P�P�P��
�
�s�H�a�(�%�1G�H�H�H��
�
�s�J��*�E�3E�F�F�F��
�
�s�H�a�(�%�1G�H�H�H��
�
�t�X�q�)�5�2H�I�I�I��
�
�z�6�1�-�u�n�E�E�E��
�
�t�X�q�)�5�2M�N�N�N��
�
�t�V�Q�'��0I�J�J�J�	�	�	�	�	��1�	�	�	��a� � ���
�
�s�O�Q�/��8O�P�P�P��
�
�s�H�a�(�%�1G�H�H�H��
�
�s�J��*�E�3E�F�F�F��
�
�s�H�a�(�%�1G�H�H�H��
�
�t�X�q�)�5�2H�I�I�I��
�
�z�6�1�-�u�n�E�E�E��
�
�t�X�q�)�5�2M�N�N�N��
�
�t�V�Q�'��0I�J�J�J�J�Jrc��tt��D]@}tt|��}t|t��rtj|���Att��}|�	ddtf|d��|�	ddtf|d��|�	ddtf|d	��|�	d
dtf|d	��|�	ddtf|d	��dS)Nr�r�r�r�r�r�r�r�r��__add__�__and__)�dir�__builtins__�getattr�
isinstancer�rJr r!�boolr�r�)rPr�r|r�s    r�test_classify_builtin_typesz3TestClassesAndFunctions.test_classify_builtin_types`s����%�%�	6�	6�D��l�D�1�1�G��'�4�(�(�
6��,�W�5�5�5���d�#�#���
�
�y�/�4�8�%�'�	)�	)�	)��
�
�|�^�S�9�5�,�	.�	.�	.��
�
�z�8�S�1�5�,�	.�	.�	.��
�
�y�(�C�0�%�,�	.�	.�	.��
�
�y�(�D�1�5�,�	.�	.�	.�	.�	.rc�\�Gd�dt��}Gd�d|���}tjdd||jd��}|�|tj|����tjdd|d��}|�|tj|����dS)	Nc���eZdZ�fd�Z�xZS)�ITestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.Metac�V��|dkrdSt���|��S)NrTrr�r�r��rPr�rs  �rr�zUTestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.Meta.__getattr__vs,����5�=�"�!�6��w�w�*�*�4�0�0�0r�rGr\r]r�r	r
s@r�Metar�u�8�������
1�
1�
1�
1�
1�
1�
1�
1�
1rr�c�.�eZdZejd���ZdS)�GTestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.VAc��dS)Nrr7rZs rrTzKTestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.VA.ham{����vrN)rGr\r]r��DynamicClassAttributerTr7rr�VAr�z�1������
�
(�
�
�)�
(�
�
�
rr�r�rTr�rr)r�rJ�	Attributer�r�r )rPr�r��should_find_dca�should_find_gas     r�#test_classify_DynamicClassAttributez;TestClassesAndFunctions.test_classify_DynamicClassAttributets���	1�	1�	1�	1�	1�4�	1�	1�	1�
	�	�	�	�	�4�	�	�	�	�"�+�E�6�2�r�{�5�?Q�R�R���
�
�o�w�'C�B�'G�'G�H�H�H� �*�5�&�$��G�G���
�
�n�g�&B�2�&F�&F�G�G�G�G�Grc����G�fd�dt���G�fd�dt��}tjdd||j��}|�|tj|����dS)Nc� ��eZdZ�fd�Zd�ZdS)�DTestClassesAndFunctions.test_classify_overrides_bool.<locals>.NoBoolc������Srr7)rPrT�NoBools  �r�__eq__zKTestClassesAndFunctions.test_classify_overrides_bool.<locals>.NoBool.__eq__�s����v�x�x�rc� �td���)Nz,This object does not specify a boolean value��NotImplementedErrorrZs r�__bool__zMTestClassesAndFunctions.test_classify_overrides_bool.<locals>.NoBool.__bool__�s��)�B�D�D�DrN)rGr\r]r�r��r�s�rr�r��sB�������
 �
 �
 �
 �
 �
D�
D�
D�
D�
Drr�c�$��eZdZ���ZdS)�CTestClassesAndFunctions.test_classify_overrides_bool.<locals>.HasNBN)rGr\r]r�r�s�r�HasNBr��s�����������B�B�Brr�r�r�)r�rJr�r�r�r )rPr��should_find_attrr�s   @r�test_classify_overrides_boolz4TestClassesAndFunctions.test_classify_overrides_bool�s����	D�	D�	D�	D�	D�	D�	D�V�	D�	D�	D�	�	�	�	�	�	�	�F�	�	�	�#�,�T�6�5�%�(�K�K���
�
�&��(D�U�(K�(K�L�L�L�L�Lrc���Gd�dt��}Gd�d|���}tjdd|d��}|�|tj|����dS)	Nc��eZdZdZd�ZdS)�MTestClassesAndFunctions.test_classify_metaclass_class_attribute.<locals>.Meta�slapc�
�gd�S)N)rr\rG�fishr7rZs r�__dir__zUTestClassesAndFunctions.test_classify_metaclass_class_attribute.<locals>.Meta.__dir__����F�F�F�FrN)rGr\r]r�r�r7rrr�r��s-�������D�
G�
G�
G�
G�
Grr�c��eZdZdS)�NTestClassesAndFunctions.test_classify_metaclass_class_attribute.<locals>.ClassNr�r7rr�Classr��rrr�r�r�r�r��r�rJr�r�r �rPr�r��should_finds    r�'test_classify_metaclass_class_attributez?TestClassesAndFunctions.test_classify_metaclass_class_attribute�s���	G�	G�	G�	G�	G�4�	G�	G�	G�	�	�	�	�	�d�	�	�	�	��'����f�E�E���
�
�k�7�#?��#F�#F�G�G�G�G�Grc���Gd�dt��}Gd�d|���}tjdd|d��}|�|tj|����dS)	Nc�$��eZdZd�Z�fd�Z�xZS)�DTestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.Metac�
�gd�S)N)rr\rG�BOOMr7r�s rr�zLTestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.Meta.__dir__�r�rc�V��|dkrdSt���|��S)Nr�r�)r��_Meta__getattrr�s  �rr�zPTestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.Meta.__getattr__�s,����&�=���2��w�w�(�(��.�.�.r�rGr\r]r�r�r	r
s@rr�r��sJ�������
G�
G�
G�
/�
/�
/�
/�
/�
/�
/�
/�
/rr�c��eZdZdS)�ETestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.ClassNr�r7rrr�r��rrr�r�r�r�r�r�r�s    r�test_classify_VirtualAttributez6TestClassesAndFunctions.test_classify_VirtualAttribute�s���	/�	/�	/�	/�	/�4�	/�	/�	/�	�	�	�	�	�d�	�	�	�	��'����b�A�A���
�
�k�7�#?��#F�#F�G�G�G�G�Grc��	�
�Gd�dt���	Gd�dt���
G�	�
fd�d�	�
��}Gd�d�	�	��}Gd
�d||�	��}tjdd
�	d��}tjdd
�
d��}tjdd
|d��}tj|��}|||fD]}|�||���dS)Nc�$��eZdZd�Z�fd�Z�xZS)�STestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta1c�
�gd�S)N)rr\rG�oner7r�s rr�z[TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta1.__dir__����E�E�E�Erc�V��|dkrdSt���|��S)Nr�r&r�r�s  �rr�z_TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta1.__getattr__��,����%�<���1��w�w�*�*�4�0�0�0rr�r
s@r�Meta1r���J�������
F�
F�
F�
1�
1�
1�
1�
1�
1�
1�
1�
1rr�c�$��eZdZd�Z�fd�Z�xZS)�STestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta2c�
�gd�S)N)rr\rG�twor7r�s rr�z[TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta2.__dir__�r�rc�V��|dkrdSt���|��S)Nrr'r�r�s  �rr�z_TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta2.__getattr__�r�rr�r
s@r�Meta2r��r�rrc�,���eZdZ��fd�Z�fd�Z�xZS)�STestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta3c
���tttgd���|��z��|��z������S)N)rr\rG�three)r�r�rIr�)r�r�rs ��rr�z[TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta3.__dir__�s^����F�3�'W�'W�'W��M�M�#�&�&�('�).���s�);�);�(<�$=�$=�>�>�?�?�?rc�V��|dkrdSt���|��S)Nrr>r�r�s  �rr�z_TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta3.__getattr__�s,����'�>���1��w�w�*�*�4�0�0�0rr�)rr�rs@��r�Meta3r�sW��������
?�
?�
?�
?�
?�
?�
1�
1�
1�
1�
1�
1�
1�
1�
1rrc��eZdZdS)�TTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Class1Nr�r7rr�Class1r
�rrrr�c��eZdZdS)�TTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Class2Nr�r7rr�Class2r
�rrrr�r�r&rr'rr>)r�rJr�r r�)rPrrr�should_find1�should_find2�should_find3�cca�sfr�rs         @@r�,test_classify_VirtualAttribute_multi_classeszDTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes�s~����	1�	1�	1�	1�	1�D�	1�	1�	1�	1�	1�	1�	1�	1�D�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�E�5�	1�	1�	1�	�	�	�	�	�u�	�	�	�	�	�	�	�	�	�V�u�	�	�	�	��(����q�A�A���(����q�A�A���(��&�%��C�C���*�6�2�2����|�<�	#�	#�B��M�M�"�c�"�"�"�"�	#�	#rc��Gd�dt��}Gd�d|���}d�tj|��D��}|�d|��dS)Nc��eZdZd�ZdS)�KTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.Mc�
�gd�S�N)rrG�missingr7r�s rr�zSTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.M.__dir__����;�;�;�;rN�rGr\r]r�r7rr�Mr��#������
<�
<�
<�
<�
<rrc��eZdZdS)�KTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.CNr�r7rrr�r �rrr�r�c��g|]
}|d��S�rr7�r}rs  rr~zTTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.<listcomp>�s��?�?�?�!��1��?�?�?rr)r�rJr r��rPrr�r�s    r�(test_classify_class_attrs_with_buggy_dirz@TestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir�s���	<�	<�	<�	<�	<��	<�	<�	<�	�	�	�	�	�!�	�	�	�	�?�?�w�;�A�>�>�?�?�?������E�*�*�*�*�*rc�Z�Gd�dt��}d�}|tj��}|tj��}|�tj||��d|jdfg��|�tj||��d|jdfg��Gd�d|��}|�tj||��d|jdfg��|�tj||��d|jdfg��dS)Nc�6�eZdZe��Ze��ZdS)�>TestClassesAndFunctions.test_getmembers_descriptors.<locals>.AN)rGr\r]rr�rr�r7rrr'r(�s*������&�&�(�(�B�(�(�*�*�B�B�Brr'c�<���Gd�dt�����fd�}|S)Nc��eZdZdS)�XTestClassesAndFunctions.test_getmembers_descriptors.<locals>.pred_wrapper.<locals>.EmptyNr�r7rr�Emptyr+�s�������rr,c�j��dt|��vrt�|j��rdS�|��S)NrGF)r�r�rG)r�r,�preds ��rrzZTestClassesAndFunctions.test_getmembers_descriptors.<locals>.pred_wrapper.<locals>.wrapped�s;�����Q���'�!�G�E�1�:�,F�,F�!� �5��t�A�w�w�r�r�)r.rr,s` @r�pred_wrapperzITestClassesAndFunctions.test_getmembers_descriptors.<locals>.pred_wrapper�sS����
�
�
�
�
��
�
�
�
�
�
�
�
�
��Nrr�r�c��eZdZdS)�>TestClassesAndFunctions.test_getmembers_descriptors.<locals>.BNr�r7rrr*r2�rrr*)r�rJ�ismethoddescriptorr�r
r�r�)rPr'r0r3r�r*s      r�test_getmembers_descriptorsz3TestClassesAndFunctions.test_getmembers_descriptors�s���	+�	+�	+�	+�	+��	+�	+�	+�		�		�		�*�\�'�*D�E�E��'�<��(@�A�A������+�A�/A�B�B��A�J�t�$�
%�&�	(�	(�	(�����+�A�/?�@�@��A�J�t�$�
%�&�	(�	(�	(�	�	�	�	�	��	�	�	�	
����+�A�/A�B�B��A�J�t�$�
%�&�	(�	(�	(�����+�A�/?�@�@��A�J�t�$�
%�&�	(�	(�	(�	(�	(rc���Gd�d��}|�d|jftj|����|�d|jftj|tj����|��}|�d|jftj|����|�d|jftj|tj����dS)Nc��eZdZd�ZdS)�9TestClassesAndFunctions.test_getmembers_method.<locals>.Bc��dSrr7rZs rrPz;TestClassesAndFunctions.test_getmembers_method.<locals>.B.f�r�rN�rGr\r]rPr7rrr*r7�r�rr*rP)r�rPrJr�r�rb)rPr*r�s   r�test_getmembers_methodz.TestClassesAndFunctions.test_getmembers_method�s���	�	�	�	�	�	�	�	�	
�
�
�s�A�C�j�'�"4�Q�"7�"7�8�8�8����#�q�s��W�%7��7�;K�%L�%L�M�M�M�
�A�C�C���
�
�s�A�C�j�'�"4�Q�"7�"7�8�8�8��
�
�s�A�C�j�'�"4�Q��8H�"I�"I�J�J�J�J�Jrc��Gd�dt��}Gd�d|���}Gd�d��}|�dtj|����|�d	tj|������|��}|�d
|jftj|����dS)Nc���eZdZ�fd�Z�xZS)�CTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.Mc�V��|dkrdSt���|��S)Nr�	scrambledr�)r�r�rs  �rr�zOTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.M.__getattr__s,����6�>�'�&�;��w�w�*�*�4�0�0�0rr�r
s@rrr=r�rrc�.�eZdZejd���ZdS)�CTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.Ac��dSrqr7rZs rrzHTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.A.eggsr�rN)rGr\r]r�r�rr7rrr'rAr�rr'r�c��eZdZd�ZdS)�CTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.Bc��dSrr7)rP�	attributes  rr�zOTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.B.__getattr__r�rNr�r7rrr*rD
r�rr*)rr?)rrrr�)r�r�rJr�r�)rPrr'r*r�s     r� test_getmembers_VirtualAttributez8TestClassesAndFunctions.test_getmembers_VirtualAttributes��	1�	1�	1�	1�	1��	1�	1�	1�
	�	�	�	�	�!�	�	�	�	�	�	�	�	�	�	�	�	�	
�
�
�+�W�-?��-B�-B�C�C�C��
�
�&��(:�1�1�3�3�(?�(?�@�@�@�
�A�C�C���
�
�}�a�m�4�g�6H��6K�6K�L�L�L�L�Lrc���Gd�d��}|��}tj|��}tj|��}|�dtj|d��f|��|�dtj|d��f|��|�dtj|d��f|��|�dtj|d��f|��dS)Nc�D�eZdZed���Zejd���ZdS)�9TestClassesAndFunctions.test_getmembers_static.<locals>.Ac��t�rr�rZs rr�z>TestClassesAndFunctions.test_getmembers_static.<locals>.A.name���)�)rc��t�rr�rZs rrz>TestClassesAndFunctions.test_getmembers_static.<locals>.A.eggsrLrN)rGr\r]r�r�r�r�rr7rrr'rJsJ������
�
*�
*��X�
*�
�
(�
*�
*�)�
(�
*�
*�
*rr'r�r)rJ�getmembers_staticr��getattr_static)rPr'r�instance_members�
class_memberss     r�test_getmembers_staticz.TestClassesAndFunctions.test_getmembers_statics���	*�	*�	*�	*�	*�	*�	*�	*�
�A�C�C��"�4�Q�7�7���1�!�4�4�
��
�
�v�w�5�a��@�@�A�CS�T�T�T��
�
�v�w�5�a��@�@�A�CS�T�T�T��
�
�v�w�5�a��@�@�A�=�Q�Q�Q��
�
�v�w�5�a��@�@�A�=�Q�Q�Q�Q�Qrc��Gd�dt��}Gd�d|���}d�tj|��D��}|�d|��dS)Nc��eZdZd�ZdS)�ATestClassesAndFunctions.test_getmembers_with_buggy_dir.<locals>.Mc�
�gd�Srr7r�s rr�zITestClassesAndFunctions.test_getmembers_with_buggy_dir.<locals>.M.__dir__%rrNrr7rrrrU$rrrc��eZdZdS)�ATestClassesAndFunctions.test_getmembers_with_buggy_dir.<locals>.CNr�r7rrr�rX'rrr�r�c��g|]
}|d��Sr"r7r#s  rr~zJTestClassesAndFunctions.test_getmembers_with_buggy_dir.<locals>.<listcomp>)s��5�5�5�!��1��5�5�5rr)r�rJr�r�r$s    r�test_getmembers_with_buggy_dirz6TestClassesAndFunctions.test_getmembers_with_buggy_dir#s���	<�	<�	<�	<�	<��	<�	<�	<�	�	�	�	�	�!�	�	�	�	�5�5�w�1�!�4�4�5�5�5������E�*�*�*�*�*rc��dtdtfd�}|�tj|��ttd���ddd�|_|�tj|��ddd���|�tj|dt
�����|td���|�tj|dt
���	��|td���t}|�tj|��ttd���|�tj|j��ttd���|�tj|j	��tt|jd
���|�tj|j
��td|j|jd���|�tj|j��ddd
d���|�tjt��i��|�tj|j��i��|�tj|j
��i��|�tj|d���ttd���|�tj|jd���ttd���|�tj|j	d���tt|jd
���|�tj|j
d���tt|j|jd���|�tj|jd���tt|jd���|�tjtd���i��|�tj|jd���i��|�tj|j
d���i��|�tj|d���ttd���|�tj|jd���ttd���|�tj|j	d���tt|jd
���|�tj|j
d���td|j|jd���|�tj|jd���ddd
d���|�tjtd���i��|�tj|jd���i��|�tj|j
d���i��d�}||j	��}|�|dd��|�dd����|�|j|j	j��|�tj|��tt|jd
���|�tj|d���tt|jd
���|�tj|d���tt|jd
���dS)Nrr�c��dSrr7r�s  rr(zPTestClassesAndFunctions.test_get_annotations_with_stock_annotations.<locals>.foo-rgrr�r(r�T��eval_strrL�r^�globals�rr�rd�rr�rrdr��MyClass�rr�r�r^Fc�F��tj����fd���}|S)Nc�(���|dz|dz��Srr7�rr�r�s  �r�wrapperziTestClassesAndFunctions.test_get_annotations_with_stock_annotations.<locals>.times_three.<locals>.wrapperS�����r�!�A�#�q��s�|�|�#r�r�rV�r�ris` r�times_threezXTestClassesAndFunctions.test_get_annotations_with_stock_annotations.<locals>.times_threeR�6���
�_�R�
 �
 �
$�
$�
$�
$�!�
 �
$��Nrr&r�r>�xxx)r�r�r
rJ�get_annotationsrirLrrcr2�	function2�	function3�UnannotatedClass�unannotated_function�assertIsNot�__globals__)rPr(�isarmrs     r�+test_get_annotations_with_stock_annotationszCTestClassesAndFunctions.test_get_annotations_with_stock_annotations,s���#�#�#��#�#�#�#�����0��5�5�S�s�7K�7K�L�L�L�$)�u�5�5�������0��5�5�U��7O�7O�P�P�P�����0��t�F�H�H�U�U�U�]`�gj�Wk�Wk�l�l�l�����0��t�V�X�X�V�V�V�^a�hk�Xl�Xl�m�m�m�'������0��5�5�S�s�7K�7K�L�L�L�����0���=�=�S�s�?S�?S�T�T�T�����0���>�>�c�PS�_b�_j�@k�@k�l�l�l�����0���?�?�s�QV�]`�]h�tw�t�BA�BA�	B�	B�	B�����0���?�?�u�SX�_h�Ai�Ai�j�j�j�����0��9�9�2�>�>�>�����0��1E�F�F��K�K�K�����0��1I�J�J�B�O�O�O�����0��t�D�D�D�C�VY�FZ�FZ�[�[�[�����0���t�L�L�L�TW�^a�Nb�Nb�c�c�c�����0����M�M�M�UX�_b�nq�ny�Oz�Oz�{�{�{�����0����N�N�N�VY�`c�jm�ju�BE�BM�QN�QN�	O�	O�	O�����0����N�N�N�VY�`c�jm�ju�Pv�Pv�w�w�w�����0��4�H�H�H�"�M�M�M�����0��1E�PT�U�U�U�WY�Z�Z�Z�����0��1I�TX�Y�Y�Y�[]�^�^�^�����0��u�E�E�E�S�WZ�G[�G[�\�\�\�����0���u�M�M�M�UX�_b�Oc�Oc�d�d�d�����0����N�N�N�VY�`c�or�oz�P{�P{�|�|�|�����0����O�O�O�WZ�af�mp�mx�EH�EP�RQ�RQ�	R�	R�	R�����0����O�O�O�W\�ch�ox�Qy�Qy�z�z�z�����0��5�I�I�I�2�N�N�N�����0��1E�PU�V�V�V�XZ�[�[�[�����0��1I�TY�Z�Z�Z�\^�_�_�_�	�	�	��+�c�l�+�+��������C���#�+�+�a��*?�*?�@�@�@�����,�c�l�.F�G�G�G�����0��9�9��3�Z]�Ze�;f�;f�g�g�g�����0��4�H�H�H�PS�Z]�il�it�Ju�Ju�v�v�v�����0��5�I�I�I�QT�[^�jm�ju�Kv�Kv�w�w�w�w�wrc�<�t}|�tj|��ddd���|�tj|j��ddd���|�tj|j��dddd���|�tj|j��ddddd���|�tj|j��ddd	d
���|�tj|j��i��|�tj|j	��i��|�tj|d���ttd���|�tj|jd���ttd���|�tj|jd���tt|jd���|�tj|jd���td|j|jd���|�tj|jd���dddd
���|�tj|jd���i��|�tj|j	d���i��|�tj|d
���ddd���|�tj|jd
���ddd���|�tj|jd
���dddd���|�tj|jd
���ddddd���|�tj|jd
���ddd	d
���|�tj|jd
���i��|�tj|j	d
���i��t}|�tj|��i��|�tj|d���i��|�tj|d
���i��d�}||j��}|�|dd��|�dd����|�
|j|jj��|�tj|��dddd���|�tj|d���tt|jd���|�tj|d
���dddd���|�tj|j��ddi��|�tj|jd���dti��dS)Nr�r�r�rcra�'str'rb�'int'�	'MyClass'rdTreFc�F��tj����fd���}|S)Nc�(���|dz|dz��Srr7rhs  �rriznTestClassesAndFunctions.test_get_annotations_with_stringized_annotations.<locals>.times_three.<locals>.wrapperrjrrkrls` rrmz]TestClassesAndFunctions.test_get_annotations_with_stringized_annotations.<locals>.times_three~rnrr&r�r>ro�mytype)rr
rJrprcr2rqrrrsrtr�r�rrurv�MyClassWithLocalAnnotations)rPrw�isa2rmrs     r�0test_get_annotations_with_stringized_annotationszHTestClassesAndFunctions.test_get_annotations_with_stringized_annotations_s��,������0��5�5�U��7O�7O�P�P�P�����0���=�=�U�QV�?W�?W�X�X�X�����0���>�>�e�RW�cl�@m�@m�n�n�n�����0���?�?�u�SZ�aj�v�BA�BA�	B�	B�	B�����0���?�?�w�U\�cn�Ao�Ao�p�p�p�����0��1E�F�F��K�K�K�����0��1I�J�J�B�O�O�O�����0��t�D�D�D�C�VY�FZ�FZ�[�[�[�����0���t�L�L�L�TW�^a�Nb�Nb�c�c�c�����0����M�M�M�UX�_b�nq�ny�Oz�Oz�{�{�{�����0����N�N�N�VY�`e�lo�lw�DG�DO�QP�QP�	Q�	Q�	Q�����0����N�N�N�V[�bg�nw�Px�Px�y�y�y�����0��1E�PT�U�U�U�WY�Z�Z�Z�����0��1I�TX�Y�Y�Y�[]�^�^�^�����0��u�E�E�E�U�Y^�G_�G_�`�`�`�����0���u�M�M�M�UZ�af�Og�Og�h�h�h�����0����N�N�N�V[�bg�s|�P}�P}�~�~�~�����0����O�O�O�W\�cj�qz�GP�RQ�RQ�	R�	R�	R�����0����O�O�O�W^�el�s~�Q�Q�	A�	A�	A�����0��1E�PU�V�V�V�XZ�[�[�[�����0��1I�TY�Z�Z�Z�\^�_�_�_�/������0��6�6��;�;�;�����0���E�E�E�r�J�J�J�����0���F�F�F��K�K�K�	�	�	��+�c�l�+�+��������C���#�+�+�a��*?�*?�@�@�@�����,�c�l�.F�G�G�G�����0��9�9��U�^g�;h�;h�i�i�i�����0��4�H�H�H�PS�Z]�il�it�Ju�Ju�v�v�v�����0��5�I�I�I�QV�]b�nw�Kx�Kx�y�y�y�	
����0��1P�Q�Q�TW�Ya�Sb�c�c�c�����0��1P�[_�`�`�`�cf�hk�bl�m�m�m�m�mr) rGr\r]r3rCrPrWrbrlr�rrrwrr}r�r�r�r�r�r�r�r�rr%r4r:rGrRrZrxr�r7rrr#r#�s`������	(�	(�	(�BF�,0�T�24�2�59�*,�	
%�
%�
%�
%�H�H�H�01�1�1�5�5�5�A�A�A��X�_�)�M�O�O�	I�	I�O�O�	I���X�_�)�M�O�O�6�6�O�O��\�6���X�_�)�M�O�O�,�,�O�O��\�,�	>�	>�	>�OK�OK�OK�b.�.�.�(
H�
H�
H�
M�
M�
M�H�H�H�H�H�H�!#�!#�!#�F+�+�+�(�(�(�@	K�	K�	K�M�M�M�$R�R�R�"+�+�+�1x�1x�1x�f.n�.n�.n�.n�.nrr#c�&�eZdZd�Zd�Zd�Zd�ZdS)�TestIsDataDescriptorc���Gd�d��}Gd�d��}Gd�d��}Gd�d��}|�tj|����d	��|�tj|����d
��|�tj|����d��|�tj|����d��dS)
Nc��eZdZdd�ZdS)�GTestIsDataDescriptor.test_custom_descriptors.<locals>.NonDataDescriptorNc��dSrr7)rP�valuer�s   rrzOTestIsDataDescriptor.test_custom_descriptors.<locals>.NonDataDescriptor.__get__�rgrr�rGr\r]rr7rr�NonDataDescriptorr��s������5�5�5�5�5�5rr�c��eZdZd�ZdS)�ETestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor0c��dSrr7)rPr�r�s   rrzMTestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor0.__set__�rgrN�rGr\r]rr7rr�DataDescriptor0r��s������0�0�0�0�0rr�c��eZdZd�ZdS)�ETestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor1c��dSrr7)rPr�s  r�
__delete__zPTestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor1.__delete__�rgrN)rGr\r]r�r7rr�DataDescriptor1r��s������,�,�,�,�,rr�c��eZdZdZdS)�ETestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor2Nr�r7rr�DataDescriptor2r��s�������G�G�Grr�z-class with only __get__ not a data descriptorz'class with __set__ is a data descriptorz*class with __delete__ is a data descriptorz.class with __set__ = None is a data descriptor)rOrJr�rF)rPr�r�r�r�s     r�test_custom_descriptorsz,TestIsDataDescriptor.test_custom_descriptors�sv��	6�	6�	6�	6�	6�	6�	6�	6�	1�	1�	1�	1�	1�	1�	1�	1�	-�	-�	-�	-�	-�	-�	-�	-�	�	�	�	�	�	�	�	�����1�2C�2C�2E�2E�F�F�H�	J�	J�	J�����0���1B�1B�C�C�A�	C�	C�	C�����0���1B�1B�C�C�D�	F�	F�	F�����0���1B�1B�C�C�H�	J�	J�	J�	J�	Jrc�z�Gd�d��}|�tj|j��d��dS)Nc��eZdZdZdS)�/TestIsDataDescriptor.test_slot.<locals>.Slotted�r(Nr�r7rr�Slottedr��s�������I�I�Irr�za slot is a data descriptor)rFrJr�r()rPr�s  r�	test_slotzTestIsDataDescriptor.test_slot�s\��	�	�	�	�	�	�	�	�����0���=�=�5�	7�	7�	7�	7�	7rc�z�Gd�d��}|�tj|j��d��dS)Nc�$�eZdZed���ZdS)�6TestIsDataDescriptor.test_property.<locals>.Propertiedc��dSrr7rZs r�
a_propertyzATestIsDataDescriptor.test_property.<locals>.Propertied.a_property�r�rN)rGr\r]r�r�r7rr�
Propertiedr��s-������
�
�
��X�
�
�
rr�za property is a data descriptor)rFrJr�r�)rPr�s  r�
test_propertyz"TestIsDataDescriptor.test_property�s_��	�	�	�	�	�	�	�	�	
����0��1F�G�G�9�	;�	;�	;�	;�	;rc��Gd�dt��}d�}d�}|�tj|��j��d��|�tj|��j��d��|�tj|��j��d��|�tj|��d��|�tj|��d	��dS)
Nc�@�eZdZd�Zed���Zed���ZdS)�1TestIsDataDescriptor.test_functions.<locals>.Testc��dSrr7rZs r�instance_methodzATestIsDataDescriptor.test_functions.<locals>.Test.instance_method�rgrc��dSrr7r�s r�class_methodz>TestIsDataDescriptor.test_functions.<locals>.Test.class_method�s��#'�4rc��dSrr7r7rr�
static_methodz?TestIsDataDescriptor.test_functions.<locals>.Test.static_method�s��!%�rN)rGr\r]r�r�r�r�r�r7rr�Testr��s?������+�+�+�
�'�'��[�'�
�%�%��\�%�%�%rr�c��dSrr7r7rrr2z5TestIsDataDescriptor.test_functions.<locals>.function�r[rc��dSrr7r7rrr�z5TestIsDataDescriptor.test_functions.<locals>.<lambda>�s��4�rz*a instance method is not a data descriptorz'a class method is not a data descriptorz(a static method is not a data descriptorz#a function is not a data descriptorz!a lambda is not a data descriptor)r�rOrJr�r�r�r�)rPr�r2�a_lambdas    r�test_functionsz#TestIsDataDescriptor.test_functions�s;��	&�	&�	&�	&�	&�6�	&�	&�	&�	�	�	��<������1�$�$�&�&�2H�I�I�E�	G�	G�	G�����1�$�$�&�&�2E�F�F�B�	D�	D�	D�����1�$�$�&�&�2F�G�G�C�	E�	E�	E�����1�(�;�;�>�	@�	@�	@�����1�(�;�;�<�	>�	>�	>�	>�	>rN)rGr\r]r�r�r�r�r7rrr�r��sS������J�J�J�$7�7�7�;�;�;�>�>�>�>�>rr�c�J�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�TestGetClosureVarsc���d�}t��}d|i}dti}dti}dh}tj||||��}|�tj||����|��dS)Nc����fd�}|S)Nc�@��t|�tt��dSr��print�_global_ref�unbound_ref��	local_ref�nonlocal_refs �rrQz=TestGetClosureVars.test_name_resolution.<locals>.f.<locals>.g�s����i��{�K�H�H�H�H�Hrr7�r�rQs` rrPz2TestGetClosureVars.test_name_resolution.<locals>.f�s&���
I�
I�
I�
I�
I��Hrr�r�r�r��r�r�r�rJ�ClosureVarsr
�getclosurevars�rPrP�_arg�
nonlocal_vars�global_vars�builtin_vars�
unbound_namesr1s        r�test_name_resolutionz'TestGetClosureVars.test_name_resolution�s���	�	�	��x�x��'��.�
�$�k�2����'��&��
��&�}�k�'3�]�D�D������/���$���8�8�(�C�C�C�C�Crc���d�}t��}d|i}dti}dti}dh}tj||||��}|�tj||����|��dS)Nc����fd�}|S)Nc3�L�K�t|�tt��dV�dSrr�r�s �rrQz?TestGetClosureVars.test_generator_closure.<locals>.f.<locals>.g�s(������i��{�K�H�H�H������rr7r�s` rrPz4TestGetClosureVars.test_generator_closure.<locals>.f�s#���
�
�
�
�
��Hrr�r�r�r�r�r�s        r�test_generator_closurez)TestGetClosureVars.test_generator_closure�s���	�	�	�
�x�x��'��.�
�$�k�2����'��&��
��&�}�k�'3�]�D�D������/���$���8�8�(�C�C�C�C�Crc�"�Gd�d��}t��}d|i}dti}dti}dh}tj||||��}|�tj|���|����|��dS)Nc��eZdZd�ZdS)�1TestGetClosureVars.test_method_closure.<locals>.Cc����fd�}|S)Nc�@��t|�tt��dSrr�r�s �rrQz>TestGetClosureVars.test_method_closure.<locals>.C.f.<locals>.g�s����)�\�;��L�L�L�L�Lrr7)rPr�rQs ` rrPz3TestGetClosureVars.test_method_closure.<locals>.C.f�s&���M�M�M�M�M��rNr9r7rrr�r��s#������
�
�
�
�
rr�r�r�r�r�)r�r�r�rJr�r
r�rP)rPr�r�r�r�r�r�r1s        r�test_method_closurez&TestGetClosureVars.test_method_closure�s���	�	�	�	�	�	�	�	�
�x�x��'��.�
�$�k�2����'��&��
��&�}�k�'3�]�D�D������/�������d���<�<�h�G�G�G�G�Grc����	�d��	d�}d�}d�}�fd����	�fd�}|d��}|d��}||d	��}���	|��d
di�����	|��d
di�����	|��d	|d������	d�d
����d
d
i���|��dS)Nc�4�tj|��jSr)rJr��	nonlocals�rPs r�_nonlocal_varsz=TestGetClosureVars.test_nonlocal_vars.<locals>._nonlocal_vars�s���)�!�,�,�6�6rc����fd�}|S)Nc����|zSrr7�rDr�s �r�addzFTestGetClosureVars.test_nonlocal_vars.<locals>.make_adder.<locals>.add�s����1�u�rr7)r�r�s` r�
make_adderz9TestGetClosureVars.test_nonlocal_vars.<locals>.make_adder�s!���
�
�
�
�
��Jrc������fd�S)Nc�����|��Srr7)rFrEr�s ��rr�zFTestGetClosureVars.test_nonlocal_vars.<locals>.curry.<locals>.<lambda>s�����T�4� 0� 0�rr7)r�rEs``r�curryz4TestGetClosureVars.test_nonlocal_vars.<locals>.currys����0�0�0�0�0�0rc��||kSrr7r�s  r�	less_thanz8TestGetClosureVars.test_nonlocal_vars.<locals>.less_thans���q�5�Lrc�4����fd�}|�_||��S)Nc�"�����fd���S)Nc�,������|��Srr7)r�rPs �rr�zMTestGetClosureVars.test_nonlocal_vars.<locals>.Y.<locals>.g.<locals>.<lambda>s���D�A�A�a�D�D��G�G�rr7)rP�les`�rrQz;TestGetClosureVars.test_nonlocal_vars.<locals>.Y.<locals>.g
s�����r�+�+�+�+�,�,�,r)�g_ref)r�rQ�Ys` �rr�z0TestGetClosureVars.test_nonlocal_vars.<locals>.Y	s1����
-�
-�
-�
-�
-��A�G��1�Q�4�4�Krc�T�����|��d�ji��dS)NrP)r
r�)r�r�r�rPs ���r�check_y_combinatorzATestGetClosureVars.test_nonlocal_vars.<locals>.check_y_combinators/������^�^�D�1�1�C���>�B�B�B�B�Brr&r'r�r�)rEr�c����fd�S)Nc����|zSrr7r�s �rr�zITestGetClosureVars.test_nonlocal_vars.<locals>.<lambda>.<locals>.<lambda>s���Q��U�rr7�r�s`rr�z7TestGetClosureVars.test_nonlocal_vars.<locals>.<lambda>s
���?�?�?�?�rr>)r
)
rPr�r�r�r��inc�add_two�greater_than_fiver�r�s
`       @@r�test_nonlocal_varsz%TestGetClosureVars.test_nonlocal_vars�s{�����	7�	7�	7�	�	�	�
	1�	1�	1�	�	�	�	�	�	�	�	�	C�	C�	C�	C�	C�	C�	C��j��m�m���*�Q�-�-��!�E�)�Q�/�/��������,�,�s�A�h�7�7�7�������0�0�3��(�;�;�;������(9�:�:�"#�Y�7�7�	9�	9�	9������)B�)B�)B�A�(F�(F�G�G��q��	#�	#�	#�	��
�����rc���d�}tjiiit����}|�tjd���|��|�tj|��|��dS)Nc��dSrr7r7rrr(z9TestGetClosureVars.test_getclosurevars_empty.<locals>.foorgrc��dS�NTr7r7rrr�z>TestGetClosureVars.test_getclosurevars_empty.<locals>.<lambda>!s���r)rJr�rIr
r�)rPr(�_emptys   r�test_getclosurevars_emptyz,TestGetClosureVars.test_getclosurevars_emptysm������$�R��R����7�7������/���=�=�v�F�F�F�����/��4�4�f�=�=�=�=�=rc��Gd�d��}|�ttjd��|�ttjt��|�ttji��dS)Nc��eZdZdS)�7TestGetClosureVars.test_getclosurevars_error.<locals>.TNr�r7rr�Tr�%r�rr�r&)r�r�rJr�r�)rPr�s  r�test_getclosurevars_errorz,TestGetClosureVars.test_getclosurevars_error$sj���
�
�
�
�
�
�
����)�W�%;�Q�?�?�?����)�W�%;�T�B�B�B����)�W�%;�R�@�@�@�@�@rc�>�d}i}t||��|d|fS)Nzdef f(): print(path)rP)r-)rPr
rs   r�_private_globalsz#TestGetClosureVars._private_globals*s'��)��
���T�2�����#�w��{�rc���|���\}}|�dd��tjiidtidh��}|�tj|��|��dS)Nr�r�r�)r�poprJr�r�r
r��rPrPrr1s    r�test_builtins_fallbackz)TestGetClosureVars.test_builtins_fallback0sn���%�%�'�'���2�
���~�t�$�$�$��&�r�2������I�I������/��2�2�H�=�=�=�=�=rc���|���\}}ddi|d<tjiiddidh��}|�tj|��|��dS)Nr�r&r�r�)rrJr�r
r�rs    r�test_builtins_as_dictz(TestGetClosureVars.test_builtins_as_dict6sh���%�%�'�'���2�$�Q�Z��>���&�r�2��q�z�G�9�E�E������/��2�2�H�=�=�=�=�=rc���|���\}}t|d<tjiidtjidh��}|�tj|��|��dS)Nr�r�r�)rr�rJr�r�r
r�rs    r�test_builtins_as_modulez*TestGetClosureVars.test_builtins_as_module<sg���%�%�'�'���2���>���&�r�2��r�w�/?�'��K�K������/��2�2�H�=�=�=�=�=rN)
rGr\r]r�r�r�r�r�r�rrrrr7rrr�r��s�������
D�
D�
D�
D�
D�
D�
H�
H�
H�$�$�$�L>�>�>�A�A�A����>�>�>�>�>�>�>�>�>�>�>rr�c�N�eZdZdd�Zdd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�ZdS)
�TestGetcallargsFunctionsNc��t|pi|���}td|zd|��}td|zd|��}|�||��dS)N�r��func(%s)�inspect.getcallargs(func, %s))r�rEr
)rPr��call_params_string�locs�r1�r2s      r�assertEqualCallArgsz,TestGetcallargsFunctions.assertEqualCallArgsEsh���D�J�B�T�*�*�*��
�*�1�1�4��
>�
>��
�1�4F�F����������R� � � � � rc��t|pi|���}	td|zd|��|�d��n#t$r}|}Yd}~nd}~wwxYw	td|zd|��|�d��n#t$r}|}Yd}~nd}~wwxYw|�t|��t|����|�t|��t|����~~dS)Nrr
zException not raisedr)r�rE�failrr-r�r
r�)rPr��call_param_stringrr��ex1�ex2s       r�assertEqualExceptionz-TestGetcallargsFunctions.assertEqualExceptionLs7���D�J�B�T�*�*�*��	.���/�/��t�<�<�<�
�I�I�,�-�-�-�-���	�	�	��C�C�C�C�C�C�����	����	.��0�3D�D�d��
�
�
�

�I�I�,�-�-�-�-���	�	�	��C�C�C�C�C�C�����	����	
�
�
�d�3�i�i��c���+�+�+�����S���3�s�8�8�,�,�,����s-�?�
A�	A�A�B�
B�
B�Bc�,�	d}t||z��S)Nzlambda %s: locals())rE)rPr�r
s   r�makeCallablez%TestGetcallargsFunctions.makeCallable_s��9�$���D�9�$�%�%�%rc�H�|�d��}|�|d��|�|d��|�|d��|�|d��|�|d��|�|d��|�|d��|�|d	��|�|d
��|�|d��|�|d��|�|d
��|�|d��|�|d��|�|d��|�|d��|�|d��|�|d��dS)N�a, b=1�2�2, 3�a=2zb=3, a=2z2, b=3z*(2,)z*[2]z*(2, 3)z*[2, 3]z	**{"a":2}zb=3, **{"a":2}z2, **{"b":3}z**{"b":3, "a":2}z*collections.UserList([2])z*collections.UserList([2, 3])z**collections.UserDict(a=2)z2, **collections.UserDict(b=3)z b=2, **collections.UserDict(a=3)�rr�rPrPs  r�
test_plainz#TestGetcallargsFunctions.test_plainds������h�'�'��� � ��C�(�(�(�� � ��F�+�+�+�� � ��E�*�*�*�� � ��J�/�/�/�� � ��H�-�-�-�� � ��G�,�,�,�� � ��F�+�+�+�� � ��I�.�.�.�� � ��I�.�.�.�� � ��K�0�0�0�� � ��$4�5�5�5�� � ��N�3�3�3�� � ��$6�7�7�7�� � ��$@�A�A�A�� � ��$C�D�D�D�� � ��$A�B�B�B�� � ��$D�E�E�E�� � ��$F�G�G�G�G�Grc�8�|�d��}|�|d��|�|d��|�|d��|�|d��|�|d��|�|d��dS)Nz
a, b=1, *crr�2, 3, 4z*(2,3,4)z	2, *[3,4]z 2, 3, *collections.UserList([4])r!r"s  r�test_varargsz%TestGetcallargsFunctions.test_varargs{s������l�+�+��� � ��C�(�(�(�� � ��F�+�+�+�� � ��I�.�.�.�� � ��J�/�/�/�� � ��K�0�0�0�� � ��$F�G�G�G�G�Grc��|�d��}|�|d��|�|d��|�|d��|�|d��|�|d��|�|d��|�|d��|�|d	��|�|d
��dS)Nza, b=1, **cr z2, b=3, c=4z
b=3, a=2, c=4zc=4, **{"a":2, "b":3}z2, c=4, **{"b":3}zb=2, **{"a":3, "c":4}z%**collections.UserDict(a=2, b=3, c=4)z#2, c=4, **collections.UserDict(b=3)z%b=2, **collections.UserDict(a=3, c=4)r!r"s  r�
test_varkwz#TestGetcallargsFunctions.test_varkw�s������m�,�,��� � ��E�*�*�*�� � ��M�2�2�2�� � ��O�4�4�4�� � ��$;�<�<�<�� � ��$7�8�8�8�� � ��$;�<�<�<�� � ��$K�L�L�L�� � ��$I�J�J�J�� � ��$K�L�L�L�L�Lrc�8�|�d��}|�|d��|�|d��|�|d��|�|d��|�|d��|�|d��dS)N�**cr�za=1za=1, b=2zc=3, **{"a": 1, "b": 2}z **collections.UserDict(a=1, b=2)z%c=3, **collections.UserDict(a=1, b=2)r!r"s  r�test_varkw_onlyz(TestGetcallargsFunctions.test_varkw_only�s������e�$�$��� � ��B�'�'�'�� � ��E�*�*�*�� � ��J�/�/�/�� � ��$=�>�>�>�� � ��$F�G�G�G�� � ��$K�L�L�L�L�Lrc�>�|�d��}|�|d��|�|d��|�|d��|�|d��|�|d��|�|d��|�|d��|�|d	��|�d
��}|�|d��|�|d��|�|d��dS)
Nza=3, *, c, d=2zc=3zc=3, a=3za=2, c=4z4, c=4r��3za=3zd=4z	*, c, d=2zc=3, d=4zd=4, c=3)rrrr"s  r�test_keyword_onlyz*TestGetcallargsFunctions.test_keyword_only�s!�����.�/�/��� � ��E�*�*�*�� � ��J�/�/�/�� � ��J�/�/�/�� � ��H�-�-�-��!�!�!�R�(�(�(��!�!�!�S�)�)�)��!�!�!�U�+�+�+��!�!�!�U�+�+�+����k�*�*��� � ��E�*�*�*�� � ��J�/�/�/�� � ��J�/�/�/�/�/rc��|�d��}|�|d��|�|d��|�|d��|�|d��|�|d��|�|d��|�|d��|�d	��}|�|d��|�|d��|�|d
��|�|d��|�|d��|�|d
��dS)Nza, b=2, *f, **gz2, 3, 7z	2, 3, x=8z2, 3, x=8, *[(4,[5,6]), 7]z2, x=8, *[3, (4,[5,6]), 7], y=9zx=8, *[2, 3, (4,[5,6])], y=9z@x=8, *collections.UserList([2, 3, (4,[5,6])]), **{"y":9, "z":10}zP2, x=8, *collections.UserList([3, (4,[5,6])]), **collections.UserDict(y=9, z=10)za, b=2, *f, x, y=99, **gz%2, x=8, *[3, (4,[5,6]), 7], y=9, z=10z"x=8, *[2, 3, (4,[5,6])], y=9, z=10zEx=8, *collections.UserList([2, 3, (4,[5,6])]), q=0, **{"y":9, "z":10}zU2, x=8, *collections.UserList([3, (4,[5,6])]), q=0, **collections.UserDict(y=9, z=10)r!r"s  r�test_multiple_featuresz/TestGetcallargsFunctions.test_multiple_features�s������/�0�0��� � ��I�.�.�.�� � ��K�0�0�0�� � ��$@�A�A�A�� � ��$E�F�F�F�� � ��$B�C�C�C�� � ��%I�	J�	J�	J�� � ��%.�	/�	/�	/�
���8�9�9��� � ��K�0�0�0�� � ��$@�A�A�A�� � ��$K�L�L�L�� � ��$H�I�I�I�� � ��%N�	O�	O�	O�� � ��%.�	/�	/�	/�	/�	/rc��|�d��}|�d��}|�d��}|�|d��|�|d��|�|d��|�|d��|�|d��|�|d��|�|d��|�|d��|�|d��||fD]�}|�|d	��|�|d
��|�|d��|�|d��|�|d
��|�|d��|�|d��|�|d��|�|d��|�|d��|�|d����|�d��}|�|d��|�|d��|�d��}|�|d��|�|d��d�}|�td��5t	j|��ddd��n#1swxYwYd�}|�td��5t	j|��ddd��n#1swxYwY|�td��5t	jdtjjd���ddd��n#1swxYwY|�td ��5t	jd!d"d���ddd��n#1swxYwY|�td#��5t	jd$d%�&��ddd��dS#1swxYwYdS)'Nr�za, brr�r�z1,x=1r zb=3r%z1, 2, 3, a=1z2, 3, 4, c=5zc=2z2, c=3z	2, 3, c=4z2, c=4, b=3u**{u"πι": 4}z1, a=2z1, **{"a":2}z	1, 2, b=3r*z1, 2z1, 2, a=1, b=2z	*, a, b=0c��dSrr7rfs r�f5z0TestGetcallargsFunctions.test_errors.<locals>.f5�rgrzmissing 1 required keyword-onlyc��dSrr7rds   r�f6z0TestGetcallargsFunctions.test_errors.<locals>.f6�r[rz'a', 'b' and 'c'z6variadic keyword parameters cannot have default valuesr(r���kind�defaultz%value 5 is not a valid Parameter.kindr r�zname must be a str, not a int�{r �r7)	rrr�r�rJ�getcallargs�
ValueErrorr]�VAR_KEYWORD)	rP�f0�f1�f2rP�f3�f4r3r5s	         r�test_errorsz$TestGetcallargsFunctions.test_errors�sj��
�
�
�r�
"�
"��
�
�
�v�
&�
&��
�
�
�x�
(�
(���!�!�"�c�*�*�*��!�!�"�e�,�,�,��!�!�"�g�.�.�.��!�!�"�b�)�)�)��!�!�"�c�*�*�*��!�!�"�e�,�,�,��!�!�"�e�,�,�,��!�!�"�b�)�)�)��!�!�"�e�,�,�,��R��	6�	6�A��%�%�a��3�3�3��%�%�a��8�8�8��%�%�a��8�8�8�
�%�%�a��/�/�/��%�%�a��2�2�2��%�%�a��5�5�5��%�%�a��7�7�7��%�%�a�)A�B�B�B��%�%�a��2�2�2��%�%�a��8�8�8��%�%�a��5�5�5�5��
�
�u�
%�
%���!�!�"�f�-�-�-��!�!�"�&6�7�7�7�
�
�
�{�
+�
+���!�!�"�f�-�-�-��!�!�"�&6�7�7�7�	���
�
#�
#�I�$E�G�G�	$�	$����#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	�	�	�
�
#�
#�I�/A�
B�
B�	$�	$����#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$��
#�
#�J�%;�<�<�	*�	*�
��e�'�*;�*G�&(�
*�
*�
*�
*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�
�
#�
#�J�$K�M�M�	9�	9���e�!�R�8�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9��
#�
#�I�#B�D�D�	+�	+���c��*�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	+�	+sZ�K�K�K�)L
�
L�L�0'M#�#M'�*M'�	N-�-N1�4N1�O7�7O;�>O;r)
rGr\r]rrrr#r&r(r+r.r0rCr7rrr
r
Cs�������!�!�!�!�����&&�&�&�
H�H�H�.H�H�H�
M�
M�
M�M�M�M�0�0�0� /�/�/�0G+�G+�G+�G+�G+rr
c�$��eZdZd�Z�fd�Z�xZS)�TestGetcallargsMethodsc�X�Gd�dt��}||_|��|_dS)Nc��eZdZdS)�)TestGetcallargsMethods.setUp.<locals>.FooNr�r7rr�FoorHrrrI)r�r��inst)rPrIs  rrazTestGetcallargsMethods.setUp
sD��	�	�	�	�	�&�	�	�	�����C�E�E��	�	�	rc���tt|��j}|d|z��|j_|jjS)Nzself, )r�rErr�r�rJ)rPr��mkrs   �rrz#TestGetcallargsMethods.makeCallables9���
�)�4�
0�
0�
=���"�X�	�1�2�2�����y��r)rGr\r]rarr	r
s@rrErEsG���������� � � � � � � � � rrEc�>��eZdZ�fd�Zd�fd�	Zd�fd�	Zdd�Z�xZS)�TestGetcallargsUnboundMethodsc�l��tt|���|��|jjSr)r�rNrr�r�)rPr�rs  �rrz*TestGetcallargsUnboundMethods.makeCallables,���
�+�T�2�2�?�?�	�J�J�J��x��rNc�h��tt|��j|�|||���Sr)r�rNr�_getAssertEqualParams�rPr�rrrs    �rrz1TestGetcallargsUnboundMethods.assertEqualCallArgss8���M�u�2�D�9�9�M�
�
'�
'��.@�$�
G�
G�I�	Irc�h��tt|��j|�|||���Sr)r�rNrrQrRs    �rrz2TestGetcallargsUnboundMethods.assertEqualException#s8���N�u�2�D�9�9�N�
�
'�
'��.@�$�
G�
G�I�	Irc�B�t|pi|j���}|d|z|fS)N)rJzinst,)r�rJ)rPr�rrs    rrQz3TestGetcallargsUnboundMethods._getAssertEqualParams's-���D�J�B�T�Y�/�/�/���g� 2�2�D�9�9rr)rGr\r]rrrrQr	r
s@rrNrNs�������������I�I�I�I�I�I�I�I�I�I�I�I�:�:�:�:�:�:�:�:rrNc��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestGetattrStaticc���Gd�dt��}|��}|�tj|d��|j��|�tj|dd��|j��|�t��5tj|d��ddd��n#1swxYwY|�tj|dd��d��dS)Nc�"�eZdZe��ZdS)�+TestGetattrStatic.test_basic.<locals>.ThingN�rGr\r]r�r�r7rr�ThingrY0�����������A�A�Arr[r�rDr>)r�r
rJrOr�r�r��rPr[�things   r�
test_basiczTestGetattrStatic.test_basic/s.��	�	�	�	�	�F�	�	�	����������/��s�;�;�U�W�E�E�E�����/��s�D�A�A�5�7�K�K�K�
�
�
�~�
.�
.�	/�	/��"�5�#�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	
����/��s�A�>�>��B�B�B�B�Bs�B7�7B;�>B;c��Gd�dt��}Gd�d|��}|��}|�tj|d��|j��dS)Nc�"�eZdZe��ZdS)�/TestGetattrStatic.test_inherited.<locals>.ThingNrZr7rrr[rb<r\rr[c��eZdZdS)�4TestGetattrStatic.test_inherited.<locals>.OtherThingNr�r7rr�
OtherThingrd>rrrer��r�r
rJrOr�)rPr[re�	somethings    r�test_inheritedz TestGetattrStatic.test_inherited;s���	�	�	�	�	�F�	�	�	�	�	�	�	�	��	�	�	��J�L�L�	�����/�	�3�?�?���I�I�I�I�Irc���Gd�dt��}|d��}|�tj|d��d��|`|�tj|d��d��dS)Nc��eZdZdZd�ZdS)�3TestGetattrStatic.test_instance_attr.<locals>.Thingr'c��||_dSrr��rPr�s  rr�z<TestGetattrStatic.test_instance_attr.<locals>.Thing.__init__Gs
������rN)rGr\r]r�r�r7rrr[rkEs(�������A�
�
�
�
�
rr[r>r�r'rfr]s   r�test_instance_attrz$TestGetattrStatic.test_instance_attrDs���	�	�	�	�	�F�	�	�	���a��������/��s�;�;�Q�?�?�?��G�����/��s�;�;�Q�?�?�?�?�?rc��Gd�dt��}|��}|�tj|d��|j��dS)Nc�$�eZdZed���ZdS)�.TestGetattrStatic.test_property.<locals>.Thingc� �td����NzI'm pretending not to existr�rZs rr�z0TestGetattrStatic.test_property.<locals>.Thing.xPs��$�%B�C�C�CrN)rGr\r]r�r�r7rrr[rqOs2������
�
D�
D��X�
D�
D�
Drr[r�rfr]s   rr�zTestGetattrStatic.test_propertyNsl��	D�	D�	D�	D�	D�F�	D�	D�	D����������/��s�;�;�U�W�E�E�E�E�Erc����Gd�dt��}|���G�fd�dt��}|��}|�tj|d�����dS)Nc��eZdZd�ZdS)�KTestGetattrStatic.test_descriptor_raises_AttributeError.<locals>.descriptorc� �td���rsr�)r9s rrzSTestGetattrStatic.test_descriptor_raises_AttributeError.<locals>.descriptor.__get__Xs��$�%B�C�C�CrNr�r7rr�
descriptorrvWs(������
D�
D�
D�
D�
Drrxc���eZdZ�ZdS)�FTestGetattrStatic.test_descriptor_raises_AttributeError.<locals>.ThingN�rGr\r]r�)�descs�rr[rz[s��������A�A�Arr[r�)r�r
rJrO)rPrxr[r^r|s    @r�%test_descriptor_raises_AttributeErrorz7TestGetattrStatic.test_descriptor_raises_AttributeErrorVs����	D�	D�	D�	D�	D��	D�	D�	D��z�|�|��	�	�	�	�	�	�	�F�	�	�	����������/��s�;�;�T�B�B�B�B�Brc��Gd�dt��}|�tj|d��|j��dS)Nc�"�eZdZe��ZdS)�4TestGetattrStatic.test_classAttribute.<locals>.ThingNrZr7rrr[r�ar\rr[r�rf�rPr[s  r�test_classAttributez%TestGetattrStatic.test_classAttribute`sY��	�	�	�	�	�F�	�	�	�	
����/��s�;�;�U�W�E�E�E�E�Erc��Gd�dt��}|�tj|d��|jd��dS)Nc�B�eZdZejd���Ze��ZdS)�;TestGetattrStatic.test_classVirtualAttribute.<locals>.Thingc��|jSr)�_xrZs rr�z=TestGetattrStatic.test_classVirtualAttribute.<locals>.Thing.xhs	���w�rN)rGr\r]r�r�r�r�r�r7rrr[r�gs6������
�
(�
�
�)�
(�
�����B�B�Brr[r�)r�r
rJrOr�r�s  r�test_classVirtualAttributez,TestGetattrStatic.test_classVirtualAttributefs^��	�	�	�	�	�F�	�	�	�	
����/��s�;�;�U�^�C�=P�Q�Q�Q�Q�Qrc��Gd�dt��}Gd�d|��}|�tj|d��|j��dS)Nc�"�eZdZe��ZdS)�>TestGetattrStatic.test_inherited_classattribute.<locals>.ThingNrZr7rrr[r�pr\rr[c��eZdZdS)�CTestGetattrStatic.test_inherited_classattribute.<locals>.OtherThingNr�r7rrrer�rrrrer�rf�rPr[res   r�test_inherited_classattributez/TestGetattrStatic.test_inherited_classattributeos���	�	�	�	�	�F�	�	�	�	�	�	�	�	��	�	�	�	
����/�
�C�@�@�%�'�J�J�J�J�Jrc�N�Gd�dt��}|��}|�tj|d��|j��|�tj|d��d��|`|�tj|d��|j��dS)Nc��eZdZdZdgZd�ZdS)�+TestGetattrStatic.test_slots.<locals>.Thingr r�c��d|_dS�Nr(r�rZs rr�z4TestGetattrStatic.test_slots.<locals>.Thing.__init__{�
������rN)rGr\r]rDr�r�r7rrr[r�xs/�������A���I�
�
�
�
�
rr[r�rDr rfr]s   r�
test_slotszTestGetattrStatic.test_slotsws���	�	�	�	�	�F�	�	�	�
���������/��s�;�;�U�W�E�E�E�����/��s�;�;�U�C�C�C��G�����/��s�;�;�U�W�E�E�E�E�Erc��Gd�dt��}Gd�dt|���}|�tj|d��d��Gd�d	|��}Gd
�dt|���}|�tj|d��d��Gd�d
|��}|�tj|d��d��dS)Nc��eZdZdZdS)�.TestGetattrStatic.test_metaclass.<locals>.metar(N)rGr\r]r�r7rr�metar��s�������D�D�Drr�c��eZdZdS)�/TestGetattrStatic.test_metaclass.<locals>.ThingNr�r7rrr[r��rrr[r�r�r(c��eZdZdS)�-TestGetattrStatic.test_metaclass.<locals>.subNr�r7rr�subr��rrr�c��eZdZdZdS)�4TestGetattrStatic.test_metaclass.<locals>.OtherThingr>Nr{r7rrrer����������A�A�Arrec��eZdZdS)�9TestGetattrStatic.test_metaclass.<locals>.OtherOtherThingNr�r7rr�OtherOtherThingr��rrr�r�r>�r�r�r
rJrO)rPr�r[r�rer�s      r�test_metaclassz TestGetattrStatic.test_metaclass�sS��	�	�	�	�	�4�	�	�	�	�	�	�	�	�F�d�	�	�	�	�����/��v�>�>��F�F�F�	�	�	�	�	�$�	�	�	�	�	�	�	�	��3�	�	�	�	�����/�
�F�C�C�U�K�K�K�	�	�	�	�	�j�	�	�	�	
����/���E�E�q�I�I�I�I�Irc��|�tjddd��d��|�tjdd��d��dS)Nr&r(�lower)r
rJrO�assertNotEqualrZs r�test_no_dict_no_slotsz'TestGetattrStatic.test_no_dict_no_slots�sP������/��5�$�?�?��F�F�F����G�2�5�'�B�B�D�I�I�I�I�Irc���ttd���5}|�tj|d��t|��j��ddd��dS#1swxYwYdS)NrXrYr�)r[r1r
rJrOr�r�)rP�handles  r�%test_no_dict_no_slots_instance_memberz7TestGetattrStatic.test_no_dict_no_slots_instance_member�s���
�(�W�
-�
-�
-�	X�����W�3�F�F�C�C�T�&�\�\�EV�W�W�W�	X�	X�	X�	X�	X�	X�	X�	X�	X�	X�	X�	X����	X�	X�	X�	X�	X�	Xs�<A � A$�'A$c��Gd�dt��}Gd�d|��}|�tj|��d��|j��dS)Nc��eZdZdgZd�ZdS)�5TestGetattrStatic.test_inherited_slots.<locals>.Thingr�c��d|_dSr�r�rZs rr�z>TestGetattrStatic.test_inherited_slots.<locals>.Thing.__init__�r�rN)rGr\r]r�r�r7rrr[r��s*��������I�
�
�
�
�
rr[c��eZdZdS)�:TestGetattrStatic.test_inherited_slots.<locals>.OtherThingNr�r7rrrer��rrrer�rfr�s   r�test_inherited_slotsz&TestGetattrStatic.test_inherited_slots�s���	�	�	�	�	�F�	�	�	�
	�	�	�	�	��	�	�	�	
����/�
�
���c�B�B�E�G�L�L�L�L�Lrc�J��Gd�dt���G�fd�dt��}|��}d|jd<|�tj|d��d��d��_|�tj|d��|jd��dS)Nc��eZdZd�ZdS)�5TestGetattrStatic.test_descriptor.<locals>.descriptorc��dSrr7�rP�instance�owners   rrz=TestGetattrStatic.test_descriptor.<locals>.descriptor.__get__�����qrNr�r7rrrxr���#������
�
�
�
�
rrxc�$��eZdZ���ZdS)�.TestGetattrStatic.test_descriptor.<locals>.FooN�rGr\r]rO�rxs�rrIr�����������
���A�A�ArrIr&rOc��dSrr7)r�r/�vs   rr�z3TestGetattrStatic.test_descriptor.<locals>.<lambda>�s��T�r)r�r�r
rJrOr)rPrIr(rxs   @r�test_descriptorz!TestGetattrStatic.test_descriptor�s����	�	�	�	�	��	�	�	�	�	�	�	�	�	�	�&�	�	�	��c�e�e�����S������/��S�9�9�1�=�=�=�2�1�
������/��S�9�9�3�<��;L�M�M�M�M�Mrc����Gd�dt���G�fd�dt��}Gd�dt|���}|�tj|d��|jd��dS)	Nc��eZdZd�ZdS)�DTestGetattrStatic.test_metaclass_with_descriptor.<locals>.descriptorc��dSrr7r�s   rrzLTestGetattrStatic.test_metaclass_with_descriptor.<locals>.descriptor.__get__�r�rNr�r7rrrxr��r�rrxc�$��eZdZ���ZdS)�>TestGetattrStatic.test_metaclass_with_descriptor.<locals>.metaNr�r�s�rr�r��r�rr�c��eZdZdS)�?TestGetattrStatic.test_metaclass_with_descriptor.<locals>.ThingNr�r7rrr[r��rrr[r�rO)r�r�r
rJrOr�)rPr�r[rxs   @r�test_metaclass_with_descriptorz0TestGetattrStatic.test_metaclass_with_descriptor�s����	�	�	�	�	��	�	�	�	�	�	�	�	�	�	�4�	�	�	�	�	�	�	�	�F�d�	�	�	�	�����/��s�;�;�T�]�3�=O�P�P�P�P�Prc�4�Gd�dt��}Gd�d|��}|��}|�tj|d��d��|�|j��|�tj|d��d��dS)Nc��eZdZdZdS)�6TestGetattrStatic.test_class_as_property.<locals>.Baser>Nr�r7rr�Baser����������C�C�Crr�c�(�eZdZdZed���ZdS)�;TestGetattrStatic.test_class_as_property.<locals>.SomethingFc��d|_tSr�)�executedr�rZs rrzETestGetattrStatic.test_class_as_property.<locals>.Something.__class__�s�� $��
��
rN)rGr\r]r�r�rr7rr�	Somethingr��s2�������H�
�
�
��X�
�
�
rr�r(r>)r�r
rJrOrOr�)rPr�r�r�s    r�test_class_as_propertyz(TestGetattrStatic.test_class_as_property�s���	�	�	�	�	�6�	�	�	�	�	�	�	�	��	�	�	��9�;�;������/��%�@�@�!�D�D�D�����*�+�+�+�����/�	�5�A�A�1�E�E�E�E�Erc�&�Gd�dt��}Gd�dt��}Gd�d||���}|�tj|��d��d	��|�tj|d��d	��dS)
Nc�$�eZdZed���ZdS)�4TestGetattrStatic.test_mro_as_property.<locals>.Metac��tfSrr/rZs r�__mro__z<TestGetattrStatic.test_mro_as_property.<locals>.Meta.__mro__�s
���y� rN)rGr\r]r�r�r7rrr�r��s-������
�
!�
!��X�
!�
!�
!rr�c��eZdZdZdS)�4TestGetattrStatic.test_mro_as_property.<locals>.Baser>Nr�r7rrr�r��r�rr�c��eZdZdS)�9TestGetattrStatic.test_mro_as_property.<locals>.SomethingNr�r7rrr�r��rrr�r�r(r>r�)rPr�r�r�s    r�test_mro_as_propertyz&TestGetattrStatic.test_mro_as_property�s���	!�	!�	!�	!�	!�4�	!�	!�	!�
	�	�	�	�	�6�	�	�	�	�	�	�	�	���	�	�	�	�	
����/�	�	���U�C�C�Q�G�G�G�����/�	�5�A�A�1�E�E�E�E�Erc����|�d�_G�fd�dt��}|��}d|_|�t	j|d��d��|��j��dS)NFc�.��eZdZdZe�fd���ZdS)�4TestGetattrStatic.test_dict_as_property.<locals>.Foor>c���d�_iSr�)�called�rPrZs �rr�z=TestGetattrStatic.test_dict_as_property.<locals>.Foo.__dict__�s���"����	rN)rGr\r]rr�r��rZs�rrIr��s=��������A�
�
�
�
�
��X�
�
�
rrIr rr>)r�r�rr
rJrOrO)rPrIr(rZs   @r�test_dict_as_propertyz'TestGetattrStatic.test_dict_as_property�s���������	�	�	�	�	�	�	�$�	�	�	��c�e�e���������/��S�9�9�1�=�=�=������%�%�%�%�%rc�"��|�d�_G�fd�dt��}Gd�dt��}|��}|��|_|�tj|d��d��|��j��dS)NFc�$���eZdZd��fd�	Z�xZS)�9TestGetattrStatic.test_custom_object_dict.<locals>.CustomNc�Z��d�_t���||��dSr�)r�r��get)rP�keyr8rrZs   ��rr�z=TestGetattrStatic.test_custom_object_dict.<locals>.Custom.get�s(���"��������C��)�)�)�)�)rr)rGr\r]r�r	)rrZs@�r�Customr��sC��������
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*rr�c��eZdZdZdS)�6TestGetattrStatic.test_custom_object_dict.<locals>.Foor>N)rGr\r]rr7rrrIr�r�rrIrr>)r�r�r�r�r
rJrOrO)rPr�rIr(rZs    @r�test_custom_object_dictz)TestGetattrStatic.test_custom_object_dict�s���������	*�	*�	*�	*�	*�	*�	*�T�	*�	*�	*�
	�	�	�	�	�&�	�	�	��c�e�e���v�x�x�������/��S�9�9�1�=�=�=������%�%�%�%�%rc���Gd�dt��}Gd�d|���}|��}|�tj|d��d��|�|j��dS)Nc�$�eZdZed���ZdS)�?TestGetattrStatic.test_metaclass_dict_as_property.<locals>.Metac��d|_dSr�)r�rZs rr�zHTestGetattrStatic.test_metaclass_dict_as_property.<locals>.Meta.__dict__s
�� $��
�
�
rN�rGr\r]r�r�r7rrr�r�
r�rr�c��eZdZdZd�ZdS)�@TestGetattrStatic.test_metaclass_dict_as_property.<locals>.ThingFc��d|_dS�Nr��rrrZs rr�zITestGetattrStatic.test_metaclass_dict_as_property.<locals>.Thing.__init__s
����	�	�	rN)rGr\r]r�r�r7rrr[r�s(�������H�
�
�
�
�
rr[r�rrr�)r�r
rJrOrOr�)rPr�r[r�s    r�test_metaclass_dict_as_propertyz1TestGetattrStatic.test_metaclass_dict_as_property	s���	%�	%�	%�	%�	%�4�	%�	%�	%�
	�	�	�	�	�d�	�	�	�	��5�7�7������/��&�A�A�2�F�F�F������(�(�(�(�(rc��t��}|�tjtd|��|��dS)N�version)r�rurJrOr�)rP�sentinels  r�test_modulezTestGetattrStatic.test_modulesA���8�8������/��Y��I�I�!�	#�	#�	#�	#�	#rc�6�Gd�dt��}Gd�dt|���}Gd�d|���}|�t��5tj|d��ddd��n#1swxYwY|�|j��dS)	Nc�$�eZdZed���ZdS)�WTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.MetaMetac�0�d|_td���S)NTr�r)r�r�rZs rr�z`TestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.MetaMeta.__dict__ s�� $��
���}�}�}�$rNr�r7rr�MetaMetars-������
�
%�
%��X�
%�
%�
%rr
c��eZdZdZdS)�STestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.MetaFN)rGr\r]r�r7rrr�r%s�������H�H�Hrr�r�c��eZdZdS)�TTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.ThingNr�r7rrr[r(rrr[rr)r�r�r�rJrOrOr�)rPr
r�r[s    r�3test_metaclass_with_metaclass_with_dict_as_propertyzETestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_propertys&��	%�	%�	%�	%�	%�t�	%�	%�	%�	�	�	�	�	�4�8�	�	�	�	�	�	�	�	�	�d�	�	�	�	��
�
�~�
.�
.�	2�	2��"�5�&�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2������(�(�(�(�(s�A4�4A8�;A8N)rGr\r]r_rhrnr�r}r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr7rrrVrV-s�������
C�
C�
C�J�J�J�@�@�@�F�F�F�C�C�C�F�F�F�R�R�R�K�K�K�F�F�F�J�J�J�$J�J�J�X�X�X�
M�M�M�N�N�N�&Q�Q�Q�F�F�F� 
F�
F�
F�&�&�&� &�&�&� )�)�)� #�#�#�
)�)�)�)�)rrVc�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�TestGetGeneratorStatec�*�d�}|��|_dS)Nc3�6K�td��D]}|V��dS�Nr�rk��numbers r�number_generatorz5TestGetGeneratorState.setUp.<locals>.number_generator2s0������(�(�
�
�������
�
r)�	generator)rPrs  rrazTestGetGeneratorState.setUp1s'��	�	�	�*�)�+�+����rc�4�tj|j��Sr)rJ�getgeneratorstaterrZs r�_generatorstatez%TestGetGeneratorState._generatorstate7����(���8�8�8rc�j�|�|���tj��dSr)r
rrJ�GEN_CREATEDrZs r�test_createdz"TestGetGeneratorState.test_created:s-������-�-�/�/��1D�E�E�E�E�Erc��t|j��|�|���tj��dSr)�nextrr
rrJ�
GEN_SUSPENDEDrZs r�test_suspendedz$TestGetGeneratorState.test_suspended=s=���T�^��������-�-�/�/��1F�G�G�G�G�Grc�~�|jD]}�|�|���tj��dSr)rr
rrJ�
GEN_CLOSEDrls  r�test_closed_after_exhaustionz2TestGetGeneratorState.test_closed_after_exhaustionAsA����	�	�A������-�-�/�/��1C�D�D�D�D�Drc��|�t��5|j�t��ddd��n#1swxYwY|�|���tj��dSr)r�rrr8r
rrJr%rZs r�%test_closed_after_immediate_exceptionz;TestGetGeneratorState.test_closed_after_immediate_exceptionFs���
�
�
�|�
,�
,�	/�	/��N� � ��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�����-�-�/�/��1C�D�D�D�D�D�� A�A�Ac����fd�}|���_t�j��t�j��dS)Nc3��K�td��D]j}������tj��|V�������tj���kdSr)r)r
rrJ�GEN_RUNNING)rrPs �r�running_check_generatorzCTestGetGeneratorState.test_running.<locals>.running_check_generatorPs��������(�(�
N�
N��� � ��!5�!5�!7�!7��9L�M�M�M������ � ��!5�!5�!7�!7��9L�M�M�M�M�
N�
Nr)rr!)rPr-s` r�test_runningz"TestGetGeneratorState.test_runningKsY���
	N�	N�	N�	N�	N�
1�0�2�2����T�^�����T�^�����rc���d���}|D]]}tt|��}|�|t	|����|�|t|�����^dS)Nz0GEN_CREATED GEN_RUNNING GEN_SUSPENDED GEN_CLOSED�rdr�rJr��reprr��rP�namesr��states    r�test_easy_debuggingz)TestGetGeneratorState.test_easy_debugging[sr��B�H�H�J�J���	,�	,�D��G�T�*�*�E��M�M�$��U���,�,�,��M�M�$��E�
�
�+�+�+�+�	,�	,rc	��d
d�}|gd���}|�tj|��dgd�d���t|��|�tj|��dgd�ddd���t|��|�tj|��dgd�ddd���t|��|�tj|��dgd�dddd	���	t|��n#t$rYnwxYw|�tj|��i��dS)Nc3�0K�d}|D]}|dkrd}|V��dS)NrIr>r$r7)�lstrr�r�rs     r�eachz;TestGetGeneratorState.test_getgeneratorlocals.<locals>.eachds@�����A��
�
����6���A������
�
rrI)rr8r&)rr8r�r�r'r>r$)rr8r�r�rr�r
rJ�getgeneratorlocalsr!�
StopIteration)rPr9�numberss   r�test_getgeneratorlocalsz-TestGetGeneratorState.test_getgeneratorlocalscs���	�	�	�	��$�y�y�y�/�/������3�G�<�<�#�I�I�I�6�6�	8�	8�	8��W�
�
�
�����3�G�<�<�#�I�I�I�A�(�*�*�	+�	+�	+�	
�W�
�
�
�����3�G�<�<�#�I�I�I�A�(�*�*�	+�	+�	+�	
�W�
�
�
�����3�G�<�<�#�I�I�I�A�(�r�3�3�	4�	4�	4�	���M�M�M�M���	�	�	��D�	��������3�G�<�<�b�A�A�A�A�As�;D�
D�Dc��d�}|��}|�tj|��i��	t|��n#t$rYnwxYw|�tj|��i��dS)Nc3�K�dV�dSr�r7r7rr�	yield_onezFTestGetGeneratorState.test_getgeneratorlocals_empty.<locals>.yield_one�s�����G�G�G�G�Grr:)rPrAr�s   r�test_getgeneratorlocals_emptyz3TestGetGeneratorState.test_getgeneratorlocals_empty�s���	�	�	��i�k�k������3�C�8�8�"�=�=�=�	���I�I�I�I���	�	�	��D�	��������3�C�8�8�"�=�=�=�=�=s�A�
A�Ac�B�|�ttjd��|�ttjd���|�ttjt��|�ttjd��dS)Nr&c��dSr�r7r�s rr�zETestGetGeneratorState.test_getgeneratorlocals_error.<locals>.<lambda>�s��4�r)r'r>)r�r�rJr;rIrZs r�test_getgeneratorlocals_errorz3TestGetGeneratorState.test_getgeneratorlocals_error�sv�����)�W�%?��C�C�C����)�W�%?���P�P�P����)�W�%?��E�E�E����)�W�%?��G�G�G�G�GrN)rGr\r]rarrr#r&r(r.r5r>rBrEr7rrrr/s�������,�,�,�9�9�9�F�F�F�H�H�H�E�E�E�
E�E�E�
��� ,�,�,�B�B�B�:	>�	>�	>�H�H�H�H�Hrrc�D�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�TestGetCoroutineStatec�Z��tjd�����fd�}|��|_dS)Nc3�6K�td��D]}|V��dSrrkrs r�number_coroutinez5TestGetCoroutineState.setUp.<locals>.number_coroutine�s0������(�(�
�
�������
�
rc��,�K�����d{V��dSrr7)rJs�r�	coroutinez.TestGetCoroutineState.setUp.<locals>.coroutine�s.�����"�"�$�$�$�$�$�$�$�$�$�$�$r)r�rL)rPrLrJs  @rrazTestGetCoroutineState.setUp�sH���	��	�	�
��	�	%�	%�	%�	%�	%�"�������rc�8�|j���dSr)rLr�rZs rrzTestGetCoroutineState.tearDown�s����������rc�4�tj|j��Sr)rJ�getcoroutinestaterLrZs r�_coroutinestatez%TestGetCoroutineState._coroutinestate�rrc�j�|�|���tj��dSr)r
rPrJ�CORO_CREATEDrZs rrz"TestGetCoroutineState.test_created�s-������-�-�/�/��1E�F�F�F�F�Frc��|j�d��|�|���tj��dSr)rL�sendr
rPrJ�CORO_SUSPENDEDrZs rr#z$TestGetCoroutineState.test_suspended�sC������D�!�!�!�����-�-�/�/��1G�H�H�H�H�Hrc���		|j�d��n#t$rYnwxYw�-|�|���t
j��dSr)rLrTr<r
rPrJ�CORO_CLOSEDrZs rr&z2TestGetCoroutineState.test_closed_after_exhaustion�sw��	�
���#�#�D�)�)�)�)�� �
�
�
���
����	�	
����-�-�/�/��1D�E�E�E�E�Es��
+�+c��|�t��5|j�t��ddd��n#1swxYwY|�|���tj��dSr)r�rrLr8r
rPrJrWrZs rr(z;TestGetCoroutineState.test_closed_after_immediate_exception�s���
�
�
�|�
,�
,�	/�	/��N� � ��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�����-�-�/�/��1D�E�E�E�E�Er)c���d���}|D]]}tt|��}|�|t	|����|�|t|�����^dS)Nz4CORO_CREATED CORO_RUNNING CORO_SUSPENDED CORO_CLOSEDr0r2s    rr5z)TestGetCoroutineState.test_easy_debugging�sr��F�L�L�N�N���	,�	,�D��G�T�*�*�E��M�M�$��U���,�,�,��M�M�$��E�
�
�+�+�+�+�	,�	,rc�>��tjd��������d�fd�	}|��}|�tj|��d�d���|�d��|�tj|��d�dd���dS)Nc3�K�dV�dSrr7r7rr�gencoroz>TestGetCoroutineState.test_getcoroutinelocals.<locals>.gencoro�s�����E�E�E�E�Erc�� �K�d}��d{V��dSrqr7)rr�r\s  �rr�z;TestGetCoroutineState.test_getcoroutinelocals.<locals>.func�s!������A��M�M�M�M�M�M�M�M�Mr)rr\rr)rr\r�r)r�rLr
rJ�getcoroutinelocalsrT)rPr�r�r\s   @r�test_getcoroutinelocalsz-TestGetCoroutineState.test_getcoroutinelocals�s����	��	�	�
��	��'�)�)��	�	�	�	�	�	��t�v�v������3�D�9�9�#��8�8�	:�	:�	:��	�	�$��������3�D�9�9�#��f�E�E�	G�	G�	G�	G�	GrN)rGr\r]rarrPrr#r&r(r5r_r7rrrGrG�s�������%�%�%����9�9�9�G�G�G�I�I�I�F�F�F�F�F�F�
,�,�,�G�G�G�G�GrrGc��eZdZdS)�MySignatureNr�r7rrrara��������	�Drrac��eZdZdS)�MyParameterNr�r7rrrdrd�rbrrdc�<�eZdZed���Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Ze
ejed
��d�����Ze
ejed
��d�����Ze
d
���Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!ejed
��d���Z"ejed
��d���Z#d�Z$d�Z%d �Z&d!�Z'd"�Z(d#�Z)d$�Z*d%�Z+d&�Z,d'�Z-ejed
��d(���Z.d)�Z/d*�Z0d+�Z1d,�Z2d-�Z3d.S)/�TestSignatureObjectc��tj|fi|��}td�|j���D����|j|jurdn|jfS)Nc3��K�|]]}|j|j|jurdn|j|j|jurdn|jt	|j�����fV��^dS).N)r�r8�empty�
annotationr�r7r�)r}�params  r�	<genexpr>z0TestSignatureObject.signature.<locals>.<genexpr>�s�����J�J�
).��z�$�}���;�N�����$�/�5�;�>�N���=B�=M��5�:���,�,�.�.�	0�J�J�J�J�J�Jr.)rJr��tupler.�values�return_annotationri)r��kw�sigs   rr�zTestSignatureObject.signature�s������+�+��+�+���J�J�
25��1F�1F�1H�1H�J�J�J�J�J��-���:�G���14�1F�I�	Irc�T�tj}tj}|�t	|����d��|�t|��j��d��dd�}tj|��}|jd�|j	���}|jd�|j	���}|jd	}|jd
}|jd}	|jd}
|jd
}||||	|
|f��|�
td��5||||	|
|f��ddd��n#1swxYwY|�
td��5|||	||
|f��ddd��n#1swxYwY|�
td��5||	|||
|f��ddd��n#1swxYwY|�
td��5||||	||
f��ddd��n#1swxYwY|�d���}|�
td��5||||	||
f��ddd��n#1swxYwY|�
td��5|||f��ddd��n#1swxYwY|�
td��5||||f��ddd��n#1swxYwY|�
td��5|||f��ddd��n#1swxYwY|�t|���
d����|�dt|��v��dS)N�()zmappingproxy(OrderedDict())r��dc��dSrr7)�po�pk�pod�pkd�korrs       rrZz7TestSignatureObject.test_signature_object.<locals>.test�r[rrvr:rxrwryrrzrzwrong parameter order�r�zduplicate parameter namezfollows default argumentz
<Signaturez(po, pk)r�rt)rJr_r]r
r�r1r.r��replacer^r�r<rFr�)
rP�S�PrZrqrvrxrwryrrzr�kwargs2s
             r�test_signature_objectz)TestSignatureObject.test_signature_object�s�������������Q�Q�S�S���4�(�(�(�����a�a�c�c�n�-�-�/L�M�M�M�	�	�	�	����%�%��
�^�D�
!�
)�
)�q�/@�
)�
A�
A���n�U�#�+�+��1B�+�C�C��
�^�D�
!���n�U�#���~�f�%��
�^�D�
!�����)��	��2�r�4��V�
$�%�%�%�
�
#�
#�J�0G�
H�
H�	*�	*�
�A�r�2�t�R��(�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*��
#�
#�J�0G�
H�
H�	*�	*�
�A�r�4��R��(�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*��
#�
#�J�0G�
H�
H�	*�	*�
�A�t�R��R��(�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*��
#�
#�J�0G�
H�
H�	*�	*�
�A�r�2�t�V�R�(�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*��.�.�f�.�-�-��
�
#�
#�J�0J�
K�
K�	+�	+�
�A�r�2�t�W�b�)�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+��
#�
#�J�0J�
K�
K�	�	�
�A�s�B�i�L�L�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
#�
#�J�0J�
K�
K�	�	�
�A�r�3��m����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
#�
#�J�0J�
K�
K�	�	�
�A�s�B�i�L�L�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
����S�	�	�,�,�\�:�:�;�;�;����	�T�#�Y�Y�.�/�/�/�/�/s��E!�!E%�(E%�F$�$F(�+F(�
G'�'G+�.G+�
H*�*H.�1H.�&J�J�
J�)K�K�
K�)L�L�L�*M�M�Mc��id�dddddifd�}tj|d���}tj|��}t	t
jdz��D]n}|�|d	�
��5tjtj	||����}|�
||��ddd��n#1swxYwY�otj|��}tdtjj
���}tj|j|���}t#���|���|j�
��}|�t-|t"����|�t-|jdt����t	t
jdz��D]�}|�|d�
��5tjtj	||����}|�
||��|�t-|t"����|�t-|jdt����ddd��n#1swxYwY��dS)N�rrr&rdr�rTc��dSrr7�rr�rrps    rr(z=TestSignatureObject.test_signature_object_pickle.<locals>.foo	rgrrfF)�
pickle_ver�subclassr%)r�r7)r.roT)r�r�rJr�r)�pickle�HIGHEST_PROTOCOL�subTest�loads�dumpsr
rdr]r^�collections�OrderedDictr.rar|rnrorFr�)	rPr(�foo_partialrq�ver�sig_pickled�myparam�myparams�mysigs	         r�test_signature_object_picklez0TestSignatureObject.test_signature_object_pickle	s����:�:�:�1�:�2�e�*�:�:�:�:��'��q�1�1�1�����,�,����0�1�4�5�5�	3�	3�C�����u��=�=�
3�
3�$�l�6�<��S�+A�+A�B�B��� � ��k�2�2�2�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3��
���$�$���3�W�->�-N�O�O�O���*�3�>�W�E�E�E���
�
�%�%����1B�1B�8;�8M�&�O�O�����
�5�+�6�6�7�7�7����
�5�#3�C�#8�+�F�F�G�G�G���0�1�4�5�5�	9�	9�C�����t��<�<�
9�
9�$�l�6�<��s�+C�+C�D�D��� � ���4�4�4����
�;�� D� D�E�E�E����
�;�+A�#�+F�+6�!8�!8�9�9�9�	
9�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9����
9�
9�
9�
9��	9�	9s%�->B7�7B;	�>B;	�BJ�J	�J	c� �d�}tj|��}|�t��5d|_ddd��n#1swxYwY|�t
��5d|jd<ddd��dS#1swxYwYdS)Nc��dSrr7rfs rrZz=TestSignatureObject.test_signature_immutability.<locals>.test8	r[rr r)rJr�r�r�r(r�r.�rPrZrqs   r�test_signature_immutabilityz/TestSignatureObject.test_signature_immutability7	s��	�	�	����%�%��
�
�
�~�
.�
.�	�	��C�G�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�y�
)�
)�	'�	'�"&�C�N�3��	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	's#�A�A
�
A
�+B�B�
Bc�^�d�}|�|�|��d��dS)Nc��dSrr7r7rrrZz9TestSignatureObject.test_signature_on_noarg.<locals>.testC	r[r�r7.�r
r�r�s  r�test_signature_on_noargz+TestSignatureObject.test_signature_on_noargB	s9��	�	�	��������-�-�y�9�9�9�9�9rc�`�dd�}|�|�|��d��dS)Nr�r(rdr9c��dSrr7r�s  rrZz9TestSignatureObject.test_signature_on_wargs.<locals>.testH	r[r))�r..�positional_or_keyword)r�.r(r�r9)r�r(rdr9r�r�s  r�test_signature_on_wargsz+TestSignatureObject.test_signature_on_wargsG	sK��	�	�	�	��������-�-��	 �	 �	 �	 �	 rc��dtdtdtfd�}|�|�|��ddtdfddtdfftf��dS)Nrr�rdc��dSrr7r�s  rrZz;TestSignatureObject.test_signature_on_wkwonly.<locals>.testP	r[r.�keyword_only)�floatr�r�r
r�r�s  r�test_signature_on_wkwonlyz-TestSignatureObject.test_signature_on_wkwonlyO	s���	�e�	�s�	�s�	�	�	�	��������-�-���e�^�<���c�>�:�<�� �	!�	!�	!�	!�	!rc��ddd�dddddd	d
tfd�}|�|�|��dd
dddd
dtdffdf��dS)Nrr9)rTr�r(rr rr�bazrc��dSrr7)rr�rrrTrrs      rrZz@TestSignatureObject.test_signature_on_complex_args.<locals>.testX	r[rr�)r�rr(r�)r.r �var_positional)rr.r�r�)rTr9.r�.�var_keyword�r)r�r
r�r�s  r�test_signature_on_complex_argsz2TestSignatureObject.test_signature_on_complex_argsW	s���	�S�	�	�	�e�	�e�	�%�	�3�	�	�	�	��������-�-�C�D�A�?�<�$�c�3�
�>�@��
�	 �	 �	 �	 �	 rc�J���d��d��G��fd�d��}|�|����d��|�|����d��|�|�|j��d��|�|�|j��d��|�|�|j��d��|�|�|j��d��dS)Nc��dSrr7rs r�test_args_onlyzGTestSignatureObject.test_signature_without_self.<locals>.test_args_onlyd	r[rc��dSrr7�rrs  r�test_args_kwargs_onlyzNTestSignatureObject.test_signature_without_self.<locals>.test_args_kwargs_onlyg	r[rc����eZdZed���Zed���Zejed��Z	ej�d��Z
ejed��Zej�d��ZdS)�:TestSignatureObject.test_signature_without_self.<locals>.Ac��dSrr7rs r�test_classmethodzKTestSignatureObject.test_signature_without_self.<locals>.A.test_classmethodk	r�rc��dSrr7rs r�test_staticmethodzLTestSignatureObject.test_signature_without_self.<locals>.A.test_staticmethodo	r�rr&N)
rGr\r]r�r�r�r�r��
partialmethodr?r@rArB)r�r�s��rr'r�j	s��������
�
�
��[�
��
�
��\�
�)��(�*:�Q�?�?�B�(��(�.�1�=�=�B�(��(�*;�a�@�@�B�(��(�*?��C�C�B�B�Brr'�)�r..r�.�)r��r..r�.)r
r�r?r@rArB)rPr'r�r�s  @@r�test_signature_without_selfz/TestSignatureObject.test_signature_without_selfc	s�����	�	�	�	�	�	�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	
�������7�7�G�	I�	I�	I�������(=�>�>�F�	G�	G�	G�	
��������-�-�G�	I�	I�	I���������-�-�G�	I�	I�	I���������-�-�G�	I�	I�	I���������-�-�G�	H�	H�	H�	H�	Hrrmc�����ddl}�fd�}�fd�}||j����fd�}��|d��d����|d��d����|d	��d
����|d��d����|d
��d����|d��d����|d��d����|d��d����|d��tj����d�j��|t��|tj	j
��tj	tj����}||j
��|tj��|dj��|tj��|ij��|t"j��|t&j��|dj��|t*j����t.d��5Gd�d��}||����ddd��n#1swxYwY|tj��|t2j��||j��dS)Nrc���	tj|��}��t|tj������t
|j�����dj	d��|S�NrrP)
rJr�rFr�r_r
r�r.rnr��rr�rPs  �r�test_unbound_methodzKTestSignatureObject.test_signature_on_builtins.<locals>.test_unbound_method�	sp���S��)�!�,�,�I��O�O�J�y�'�2C�D�D�E�E�E����T�)�"6�"=�"=�"?�"?�@�@��C�H�&�Q�Q�Q��rc�$��	tj|��}��t|tj����|jrE��t|j�����dj	d��|Sr�)
rJr�rFr�r_r.r�r�rnr�r�s  �r�
test_callablezETestSignatureObject.test_signature_on_builtins.<locals>.test_callable�	s}���d��)�!�,�,�I��O�O�J�y�'�2C�D�D�E�E�E��#�
Y��#�#�D��)=�)D�)D�)F�)F�$G�$G��$J�$O�QW�X�X�X��rc�(���j|jSr)r.r8)r�r�s �rr0z9TestSignatureObject.test_signature_on_builtins.<locals>.p�	s���I�0��6�>�>rr�ryr�sbytesrOg��Q�	@r/�#�nrTrPF�localr>r�rRsabczno signature foundc��eZdZeZdS)�DTestSignatureObject.test_signature_on_builtins.<locals>.ThisWorksNowN)rGr\r]r��__call__r7rr�ThisWorksNowr��	s���������rr�)rzr{r
r��maxsizer�r.r�rqrrrsrt�StringIO�bytes�	maketransr��fromkeysr�r�r�r��minr�r<�__delitem__r�r��#docstring_with_signature_but_no_doc)rPrzr�r�r0rOr�r�s`      @r�test_signature_on_builtinsz.TestSignatureObject.test_signature_on_builtins�	sk����	����	�	�	�	�	�	�	�	�	�	�"�M�)�"R�S�S�	�>�>�>�>�>������3����+�+�+������3����*�*�*������3����&�&�&������3����$�$�$������3����&�&�&������3����&�&�&������3����'�'�'������7���Q�'�'�'������5���3�;�/�/�/�����	� 4�5�5�5��
�f����	��G�O�0�1�1�1��O�B�K�M�M�*�*���
�a�f����	�
�e�o�&�&�&��
�f�&�'�'�'�	�
�d�m�$�$�$��
�b�k�"�"�"�	��D�M�*�*�*���C�K�(�(�(��
�q�k�"�"�"�	�
�c�l�#�#�#��
#�
#�J�0D�
E�
E�	*�	*�
 �
 �
 �
 �
 �
 �
 �
 ��M�,�,�.�.�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	��D�,�-�-�-���H�/�0�0�0�	�
�i�C�D�D�D�D�Ds�5!J"�"J&�)J&c�:�ddl}|j}d�}||��}|�tj|��tj|����dt
fd�}|�tj|d���tj|����dS)Nrc�V��tj���dtf�fd���}|S)Nrdc����|i|��Srr7�rrr�s  �rriz\TestSignatureObject.test_signature_on_decorated_builtins.<locals>.decorator.<locals>.wrapper�	�����t�T�,�V�,�,�,r)r�rVr�)r�ris` r�	decoratorzKTestSignatureObject.test_signature_on_decorated_builtins.<locals>.decorator�	sB���
�_�T�
"�
"�
-�C�
-�
-�
-�
-�
-�#�
"�
-��Nrrdc��dSrr7r�s  r�wrapper_likezNTestSignatureObject.test_signature_on_decorated_builtins.<locals>.wrapper_like�	rgrF��follow_wrapped)rzr{r
rJr�r�)rPrzr�r��decorated_funcr�s      r�$test_signature_on_decorated_builtinsz8TestSignatureObject.test_signature_on_decorated_builtins�	s���	�����?��	�	�	�#��4��������*�4�0�0� �*�>�:�:�	<�	<�	<�	7�S�6�6�6�6�����*�>�:?�A�A�A� �*�<�8�8�	:�	:�	:�	:�	:rc�@�ddl}|�td��5tj|j��ddd��n#1swxYwY|�td��5tjt��ddd��dS#1swxYwYdS)Nrzno signature found for builtin)rzr�r<rJr�rr�)rPrzs  r�'test_signature_on_builtins_no_signaturez;TestSignatureObject.test_signature_on_builtins_no_signature�	s9������
�
#�
#�J�$D�F�F�	@�	@���i�>�?�?�?�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@��
#�
#�J�$D�F�F�	#�	#���c�"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	#�	#s#�A�A
�
A
�,B�B�Bc��|�td��5tjd��ddd��dS#1swxYwYdS)N�is not a callable objectr�)r�r�rJr�rZs r�test_signature_on_non_functionz2TestSignatureObject.test_signature_on_non_function�	s���
�
#�
#�I�/I�
J�
J�	"�	"���b�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�	"�	"s�>�A�Ac�^��dd�d�}Gd�d��}tj�|��}tj�||����}|�||��tj||����}|�||��||��}|`|�|�|��d��tj��fd�}tj�	d|��5||��}|�
tj|����d|_|�tj|����|�tj|��|��ddd��dS#1swxYwYdS)	NT��kwonlyc��dSrr7�rr�r��	kwonlyreqrrs      rr�zITestSignatureObject.test_signature_from_functionlike_object.<locals>.func�	r[rc��eZdZd�Zd�ZdS)�MTestSignatureObject.test_signature_from_functionlike_object.<locals>.funclikec��|j|_|j|_|j|_|j|_|j|_||_dSr�rGr�ri�__defaults__�__kwdefaults__r��rPr�s  rr�zVTestSignatureObject.test_signature_from_functionlike_object.<locals>.funclike.__init__�	�@�� $�
��
� $�
��
�'+�';��$�$(�$5��!�&*�&9��#� ��	�	�	rc��|j|i|��Srrrs   rr�zVTestSignatureObject.test_signature_from_functionlike_object.<locals>.funclike.__call__
��� �t�y�$�1�&�1�1�1rN�rGr\r]r�r�r7rr�funcliker��	�2������

!�
!�
!�
2�
2�
2�
2�
2rr�r�c�>��t|d��rdS�|��S)N�_builtinmockT�r�)rS�_orig_isdescs �r�_isdesczLTestSignatureObject.test_signature_from_functionlike_object.<locals>._isdesc
s*����s�N�+�+�
��t��<��$�$�$rzinspect.ismethoddescriptor)
rJr_�
from_callabler
r�r�r3r�r�r�rOr�rF)	rPr�r��sig_func�sig_funclike�flr�builtin_funcrs	        @r�'test_signature_from_functionlike_objectz;TestSignatureObject.test_signature_from_functionlike_object�	s(���$(�	�	�	�	�	�	2�	2�	2�	2�	2�	2�	2�	2� �$�2�2�4�8�8���(�6�6�x�x��~�~�F�F������x�0�0�0��(���$���8�8������x�0�0�0�
�X�d�^�^���O��������+�+� �	!�	!�	!��1��	%�	%�	%�	%�	%�
�]�
 �
 �!=�w�
G�
G�	H�	H�#�8�D�>�>�L����W�7��E�E�F�F�F�(,�L�%��O�O�G�6�|�D�D�E�E�E����W�.�|�<�<�h�G�G�G�
	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H�	H�	Hs�B	F"�"F&�)F&c���dd�d��G�fd�d��}|�ttj|����d��dS)NTr�c��dSrr7r�s      rr�zCTestSignatureObject.test_signature_functionlike_class.<locals>.func.
r[rc�\��eZdZd�Z�jZ�jZ�jZ�jZ�jZdS)�GTestSignatureObject.test_signature_functionlike_class.<locals>.funclikec��dSrr7)rP�markers  rr�zPTestSignatureObject.test_signature_functionlike_class.<locals>.funclike.__init__2
r�rN)rGr\r]r�r�rir�r�rs�rr�r1
sF�������
�
�
��}�H��}�H�"�2�O��,�L�!�0�N�N�Nrr�z(marker))r
r�rJr�)rPr�r�s  @r�!test_signature_functionlike_classz5TestSignatureObject.test_signature_functionlike_class*
s����%)�	�	�	�	�	�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	
����W�.�x�8�8�9�9�:�F�F�F�F�Frc��Gd�d��}|�|�|��j��dtf��|�|�|��j��d��|�|�|��d��|�td��5|�|����ddd��dS#1swxYwYdS)Nc�.�eZdZd�Zddefd�Zd�Zd�ZdS)	�:TestSignatureObject.test_signature_on_method.<locals>.Testc��dSrr7rs rr�zCTestSignatureObject.test_signature_on_method.<locals>.Test.__init__?
r�rr&rdc��dSrr7�rPrErFs   rr�z=TestSignatureObject.test_signature_on_method.<locals>.Test.m1A
r�rc��dSrr7rs r�m2z=TestSignatureObject.test_signature_on_method.<locals>.Test.m2C
r�rc��dSrr7rfs rr�zCTestSignatureObject.test_signature_on_method.<locals>.Test.__call__E
r�rNr{)rGr\r]r�r�r�rr�r7rrr�r>
sa������
�
�
�
�
�#�
�
�
�
�
�
�
�
�
�
�
�
rr���rE..r�)rFr&.r�r�zinvalid method signature)r
r�r�r�rr�r<)rPr�s  r�test_signature_on_methodz,TestSignatureObject.test_signature_on_method=
s_��	�	�	�	�	�	�	�	�	
����������	�2�2�F���	 �	 �	 �
	
����������	�2�2��	 �	 �	 �	
�������-�-��	 �	 �	 ��
#�
#�J�0J�
K�
K�	#�	#��N�N�4�4�6�6�"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	#�	#s�C0�0C4�7C4c���Gd�d��}tj|��j��d���}|�|�|��dt
f��dS)Nc��eZdZddefd�ZdS)�ETestSignatureObject.test_signature_wrapped_bound_method.<locals>.Testr&rdc��dSrr7rs   rr�zHTestSignatureObject.test_signature_wrapped_bound_method.<locals>.Test.m1[
r�rNr{)rGr\r]r�r�r7rrr�rZ
s4������
�
�#�
�
�
�
�
�
rr�c��dSrr7r�s  r�m1dzDTestSignatureObject.test_signature_wrapped_bound_method.<locals>.m1d]
rUrr)r�rVr�r
r�r�)rPr�r s   r�#test_signature_wrapped_bound_methodz7TestSignatureObject.test_signature_wrapped_bound_methodX
s���	�	�	�	�	�	�	�	�
�������	#�	#�	�	�
$�	#�	��������,�,�F���	 �	 �	 �	 �	 rc���Gd�d��}|��j}|�|�|��d��|j}|�|�|��d��dS)Nc�*�eZdZedd�d���ZdS)�?TestSignatureObject.test_signature_on_classmethod.<locals>.Testr&)rFc��dSrr7)r�rErFs   rr(zCTestSignatureObject.test_signature_on_classmethod.<locals>.Test.foog
r�rN)rGr\r]r�r(r7rrr�r$f
s:������
�'(�
�
�
�
��[�
�
�
rr�))r)rFr&.r�.�r(r
r��rPr��meths   r�test_signature_on_classmethodz1TestSignatureObject.test_signature_on_classmethode
���	�	�	�	�	�	�	�	�
�t�v�v�z���������-�-��	 �	 �	 �
�x���������-�-��	 �	 �	 �	 �	 rc���Gd�d��}|��j}|�|�|��d��|j}|�|�|��d��dS)Nc�$�eZdZed���ZdS)�@TestSignatureObject.test_signature_on_staticmethod.<locals>.Testc��dSrr7)r�rGs  rr(zDTestSignatureObject.test_signature_on_staticmethod.<locals>.Test.fooy
r�rN)rGr\r]r�r(r7rrr�r-x
s-������
�
�
��\�
�
�
rr�)))r�..r�)rG..r�.r&r's   r�test_signature_on_staticmethodz2TestSignatureObject.test_signature_on_staticmethodw
r*rc���ddlm}tj}d�}|�|�||����d��|�td��5tj||d����ddd��n#1swxYwY|�td��5tj||d�����ddd��n#1swxYwYd�}|�|�||����d	��|�|�||d����d
��|�|�||dd�����d
��|�|�||dd�����d��|�|�||ddd�����d��|�|�||d�����d��d�}|�|�||d����d��|�|�||d�����d��|�|�||ddd����d��|�|�||dddd�����d��|�|�||ddddd�����d��|�|�||d�����d��|�|�||dd�����d��dtddfd �}tj|��x}|_	|�|�|||d������d!dd"td#ffdf��|�|�|||d��d����dd"td#ffdf��tj|||d��d����}d$�}|||d%���d&���}|�|�|��d'��|�|��d&��d(�}|||dd&���d)���}|�|�|��d*��|�|d%���d+��d,�}|||d&d&�-��d%d)�.��}|�|�|��d/��tj|���
d0d1�2��}|�||ji|j��d3��dEd4�}||d5���}tj|���
d1���}|�||ji|j��d6��tj|���
d1d7��}|�||ji|j��d8��tj|���
d1d7���}|�||ji|j��d8��tj|���
d7���}|�||ji|j��d9��||d%d&���}tj|���
d7��}|�||ji|j��d:��d;�}tj|��}|j
���}	|	d<�|j�=��|	d<<|	d>�|j�=��|	d><tj|	�����|_	tj|��}|�t'|��d?��|�|�||d����d@��|�|�||dd����dA��|�|�||ddd����dB��|�|�||ddd�����dC��|�|�||dd�����dD��dS)FNr)r�c��dSrr7r7rrrZz;TestSignatureObject.test_signature_on_partial.<locals>.test�
r[rr��has incorrect argumentsr&rfc��dSrr7rHs    rrZz;TestSignatureObject.test_signature_on_partial.<locals>.test�
r[r))r��r�..r��r..r��rO..r�.))r4r5r6.r'r�))r4�rr'.r�r6.)r�r))r��r�r&.r�r7r6.))r8r7r6.))�rr&.r��r�..r�r5r6.c��dSrr7)rr�rrs    rrZz;TestSignatureObject.test_signature_on_partial.<locals>.test�
r[r))r�r:r�.))r9r:r�.r>Tr�)rZr�))r��r�r.r�r�.�r�))r�r�r<r�.)r�rZrrdr�c��dSrr7rds   rrZz;TestSignatureObject.test_signature_on_partial.<locals>.test�
r[rr4.r�c��|Srr7rfs rr(z:TestSignatureObject.test_signature_on_partial.<locals>.foos���Hrr�)))rr@.r�.c��|||fSrr7rds   rr(z:TestSignatureObject.test_signature_on_partial.<locals>.foo�
���a��7�Nrr1)))r�r1.r�r5.)r&r1rc��||||fSrr7rHs    rr(z:TestSignatureObject.test_signature_on_partial.<locals>.foos���a��A�:�r)rOr)r�rO))r�)r�r.r�)rr@.r�)rOr1.r�.��rEr�)rDrEr@r1c��|||fSrr7rds   rr(z:TestSignatureObject.test_signature_on_partial.<locals>.foo#rBrr@)rEr'r@r$)rEr$r@)r&r$r@)r$rr@c��dSrr7)rr�rrOrs     rr(z:TestSignatureObject.test_signature_on_partial.<locals>.foo8r[rrr:r�z(a, b, /, c, d, **kwargs)))�r�..�positional_only�r..r��rO..r�r�.))rIrJr�.))rJr�.))�rr>.r�r6r�.))rGrKr6r�.rI)r�r�rJr]r
r�r�r<r�r`�bindrrr.�copyr|r^r_rnr�)
rPr�r]rZrq�psigr(�_foo�ba�paramss
          r�test_signature_on_partialz-TestSignatureObject.test_signature_on_partial�
s��%�%�%�%�%�%��%�	�	�	�	�	
���������
�
�6�6�	�B�B�B�
�
#�
#�J�0I�
J�
J�	0�	0���g�g�d�A�.�.�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0��
#�
#�J�0I�
J�
J�	2�	2���g�g�d�a�0�0�0�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�	�	�	�	
���������
�
�6�6��	 �	 �	 �	
���������a�(8�(8�9�9��	 �	 �	 �	
���������a�1�(=�(=�(=�>�>��	 �	 �	 �	
����������Q�(?�(?�(?�@�@��	 �	 �	 �	
���������a�1��(B�(B�(B�C�C��	 �	 �	 �	
����������(:�(:�(:�;�;��	 �	 �	 �	�	�	�	
���������a�(8�(8�9�9��	 �	 �	 �	
����������(:�(:�(:�;�;��	 �	 �	 �	
���������a��A�(>�(>�?�?��	 �	 �	 �	
���������a��A�D�(I�(I�(I�J�J��	 �	 �	 �	
���������a��A�A��(K�(K�(K�L�L��	 �	 �	 �	
����������(:�(:�(:�;�;��	 �	 �	 �	
�����������(B�(B�(B�C�C��	 �	 �	 �	��	��	�	�	�	�$+�#4�T�#:�#:�:��d� ������������a�0@�0@�(A�(A�B�B�C���c�+B�C�E���	�	�	�
	
�����������a�0@�0@�!�(D�(D�E�E���c�+B�C�E���	�	�	�� ������q�)9�)9�1�!=�!=�>�>��	�	�	��w�w�w�s�b�)�)�)�R�0�0�0���������-�-��	 �	 �	 �
	
��������$�$�$�	�	�	��w�w�w�s�A��,�,�,��3�3�3���������-�-��	 �	 �	 �	
���������[�1�1�1�	�	�	��w�w�w�s�b�B�/�/�/�2��<�<�<���������-�-��	 �	 �	 ��
�t�
$�
$�
)�
)�C�2�
)�
6�
6�������r�w�4�"�)�4�4�6G�H�H�H�	�	�	�	��w�s�b�!�!�!��
�
�t�
$�
$�
)�
)�B�
)�
/�
/�������r�w�4�"�)�4�4�k�B�B�B�
�
�t�
$�
$�
)�
)�"�b�
1�
1�������r�w�4�"�)�4�4�l�C�C�C�
�
�t�
$�
$�
)�
)�"��
)�
3�
3�������r�w�4�"�)�4�4�l�C�C�C�
�
�t�
$�
$�
)�
)�B�
)�
/�
/�������r�w�4�"�)�4�4�k�B�B�B��w�t�r�R�(�(�(��
�
�t�
$�
$�
)�
)�"�
-�
-�������r�w�4�"�)�4�4�l�C�C�C�	�	�	����$�$����$�$�&�&���S�k�)�)�y�/H�)�I�I��s���S�k�)�)�y�/H�)�I�I��s��#�-�f�m�m�o�o�>�>������$�$������S���#>�?�?�?����������Q���8�8��	�	�	�	
���������Q��(:�(:�;�;��	�	�	�	
���������Q��1�(=�(=�>�>��	�	�	�
	
���������Q��Q�(?�(?�(?�@�@��	�	�	�	
���������Q�!�(<�(<�(<�=�=��	�	�	�	�	s$�#B�B�B�4 C � C$�'C$c�6��ddlm�G�fd�d��}|�td��5t	j|j��ddd��n#1swxYwYG�fd�d��}|�|�|jd���d	��|�|�|��jd���d
��G�fd�d��}|�|�|jd���d��dS)
Nr�r�c�,��eZdZd�Z�e��ZdS)�ATestSignatureObject.test_signature_on_partialmethod.<locals>.Spamc��dSrr7r7rrrZzFTestSignatureObject.test_signature_on_partialmethod.<locals>.Spam.tester�rN�rGr\r]rZrTrTs�r�SpamrVds-�������
�
�
��-��%�%�C�C�CrrYr2c�2��eZdZdd�Z�ed���ZdS)rVrdrrc��dSrr7)�itrrs   rrZzFTestSignatureObject.test_signature_on_partialmethod.<locals>.Spam.testmr�rr&r�N)rdrrrXrTs�rrYzATestSignatureObject.test_signature_on_partialmethod.<locals>.Spamls7�������
�
�
�
��-���*�*�*�C�C�CrFre)))r\..r�r��rr&.r�rr))r�r]rrc�0��eZdZdd�Z�ed��ZdS)rVrP�annoc��dSrr7rms  rrZzFTestSignatureObject.test_signature_on_partialmethod.<locals>.Spam.test}r�rr&N)rPr_)rGr\r]rZrQrTs�rrYzATestSignatureObject.test_signature_on_partialmethod.<locals>.Spam|s6�������
�
�
�
��
�d�A�&�&�A�A�Ar)))rP.r_r�.)	r�r�r�r<rJr�rTr
rQ)rPrYr�s  @r�test_signature_on_partialmethodz3TestSignatureObject.test_signature_on_partialmethodas����+�+�+�+�+�+�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�
�
#�
#�J�0I�
J�
J�	(�	(���d�h�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�
	
��������5��A�A�"�	#�	#�	#�	
����������
�U��C�C�"�	#�	#�	#�
	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	
����������?�?��	 �	 �	 �	 �	 s�A�A�Ac��d�}d|_|�ttj|����d��dS)Nc��dSrr7rfs rr(zETestSignatureObject.test_signature_on_fake_partialmethod.<locals>.foo�rgrrrz(a))�_partialmethodr
r�rJr��rPr(s  r�$test_signature_on_fake_partialmethodz8TestSignatureObject.test_signature_on_fake_partialmethod�sB�����#�������W�.�s�3�3�4�4�e�<�<�<�<�<rc�����ddl��fd��G�fd�d��}|�|�|j��d��|�|�|��j��d��|�|�|jd���d	���fd
��G�fd�d��}|�|�|j��d��|�|�|��j��d��d
�}|j|_|�|�|��d��dS)Nrc�P����j���dtf�fd���}|S)Nrdc����|i|��Srr7r�s  �rrizSTestSignatureObject.test_signature_on_decorated.<locals>.decorator.<locals>.wrapper�r�r)rVr�)r�rir�s` �rr�zBTestSignatureObject.test_signature_on_decorated.<locals>.decorator�sE����
�Y�_�T�
"�
"�
-�C�
-�
-�
-�
-�
-�#�
"�
-��Nrc�&��eZdZ�d���ZdS)�<TestSignatureObject.test_signature_on_decorated.<locals>.Fooc��dSrr7�rPrr�s   rr z@TestSignatureObject.test_signature_on_decorated.<locals>.Foo.bar�r�rN)rGr\r]r �r�s�rrIrk��.�������
�
�
��Y�
�
�
rrI))�rP..r�r�r4.))r�r4.Fr�r�c�
����j���dtf�fd���}tj���}t	|j�����dd�}|�|���|_|S)Nrdc����dg|�Ri|��Sr�r7r�s  �rrizSTestSignatureObject.test_signature_on_decorated.<locals>.decorator.<locals>.wrapper�s#����t�B�0��0�0�0��0�0�0rr&r\)	rVr�rJr�rmr.rnr|r`)r�rirq�
new_paramsr�s`   �rr�zBTestSignatureObject.test_signature_on_decorated.<locals>.decorator�s�����
�Y�_�T�
"�
"�
1�C�
1�
1�
1�
1�
1�#�
"�
1��#�D�)�)�C��s�~�4�4�6�6�7�7����;�J�$'�K�K�:�K�$F�$F�G�!��Nrc�&��eZdZ�d���ZdS)rkc��dSrr7rms   rr�zETestSignatureObject.test_signature_on_decorated.<locals>.Foo.__call__�r�rN�rGr\r]r�rns�rrIz<TestSignatureObject.test_signature_on_decorated.<locals>.Foo�ror�)r4.c��dSrr7r7rr�wrapped_foo_callzITestSignatureObject.test_signature_on_decorated.<locals>.wrapped_foo_call�r[r)r�r
r�r r��__wrapped__)rPrIryr�r�s   @@r�test_signature_on_decoratedz/TestSignatureObject.test_signature_on_decorated�s���������	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�
	
��������0�0��	 �	 �	 �	
����������	�2�2��	 �	 �	 �
	
����������F�F��	 �	 �	 �	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�
	
��������5�5��	 �	 �	 �
	
�����������7�7��	 �	 �	 �
	�	�	�'*�|��$�������(8�9�9��	 �	 �	 �	 �	 rc���Gd�d��}|�|�|��d��Gd�dt��}Gd�d|���}|�|�|��d��Gd�dt��}Gd	�d|���}|�|�|��d
��|�|�|��d��Gd�d
t��}Gd�dt|���}Gd�d|���}|�|�|��d��|�|�|��d��|�|�|��d
��Gd�dt��}Gd�d|���}|�|�|��d��dS)Nc��eZdZd�ZdS)�6TestSignatureObject.test_signature_on_class.<locals>.Cc��dSrr7�rPrs  rr�z?TestSignatureObject.test_signature_on_class.<locals>.C.__init__�r�rN�rGr\r]r�r7rrr�r~�r�rr��)r�.c��eZdZd�ZdS)�7TestSignatureObject.test_signature_on_class.<locals>.CMc��dSrr7)r�rs  rr�z@TestSignatureObject.test_signature_on_class.<locals>.CM.__call__�r�rNrvr7rrr�r��r�rr�c��eZdZd�ZdS)r~c��dSrr7�rPr�s  rr�z?TestSignatureObject.test_signature_on_class.<locals>.C.__init__�r�rNr�r7rrr�z6TestSignatureObject.test_signature_on_class.<locals>.C�r�rr�c�$��eZdZdd��fd�
Z�xZS)r�r&r�c�L��t���||||��Sr�r�r���mclsr��bases�dctr(rs     �rr�z?TestSignatureObject.test_signature_on_class.<locals>.CM.__new__������w�w���t�T�5�#�>�>�>r�rGr\r]r�r	r
s@rr�z7TestSignatureObject.test_signature_on_class.<locals>.CM��E�������78�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?rc��eZdZd�ZdS)r~c��dSrr7r�s  rr�z?TestSignatureObject.test_signature_on_class.<locals>.C.__init__�r�rNr�r7rrr�z6TestSignatureObject.test_signature_on_class.<locals>.C�r�rrw))�r�..r��r�..r��r�..r�)r(r&.r�.c�*��eZdZdd��fd�
Zd�Z�xZS)�8TestSignatureObject.test_signature_on_class.<locals>.CMMr&r�c�L��t���||||��Srr�r�s     �rr�z@TestSignatureObject.test_signature_on_class.<locals>.CMM.__new__�r�rc�$�t|||��Sr)r�)r��nm�bs�dts    rr�zATestSignatureObject.test_signature_on_class.<locals>.CMM.__call__�s���B��B�'�'�'r)rGr\r]r�r�r	r
s@r�CMMr��sT�������78�
?�
?�
?�
?�
?�
?�
?�
(�
(�
(�
(�
(�
(�
(rr�c�$��eZdZdd��fd�
Z�xZS)r�r'�r c�L��t���||||��Srr�)r�r�r�r�r rs     �rr�z?TestSignatureObject.test_signature_on_class.<locals>.CM.__new__�r�rr�r
s@rr�z7TestSignatureObject.test_signature_on_class.<locals>.CM�r�rc��eZdZd�ZdS)r~c��dSrr7r�s  rr�z?TestSignatureObject.test_signature_on_class.<locals>.C.__init__�r�rNr�r7rrr�z6TestSignatureObject.test_signature_on_class.<locals>.C�r�r)))r�..r�)r�..r�)r�..r�.c�$��eZdZdd��fd�
Z�xZS)r�r'r�c�J��t���|||��Sr)r�r�)r�r�r�r�r rs     �rr�z@TestSignatureObject.test_signature_on_class.<locals>.CM.__init__s����w�w�'�'��e�S�9�9�9r)rGr\r]r�r	r
s@rr�z7TestSignatureObject.test_signature_on_class.<locals>.CMsE�������78�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:rc��eZdZd�ZdS)r~c��dSrr7r�s  rr�z?TestSignatureObject.test_signature_on_class.<locals>.C.__init__r�rNr�r7rrr�z6TestSignatureObject.test_signature_on_class.<locals>.Cr�r))r�r�r�)r r'.r�.)r
r�r�)rPr�r�r�s    r�test_signature_on_classz+TestSignatureObject.test_signature_on_class�s1��	�	�	�	�	�	�	�	�	
�������*�*��	 �	 �	 �	�	�	�	�	��	�	�	�	�	�	�	�	�"�	�	�	�	�	
�������*�*��	 �	 �	 �	?�	?�	?�	?�	?��	?�	?�	?�	�	�	�	�	�"�	�	�	�	�	
�������*�*��	 �	 �	 �	
�������+�+��	 �	 �	 �	(�	(�	(�	(�	(�$�	(�	(�	(�
	?�	?�	?�	?�	?���	?�	?�	?�	?�	�	�	�	�	�"�	�	�	�	�	
�������,�,��	 �	 �	 �	
�������+�+��	 �	 �	 �	
�������*�*��	 �	 �	 �	:�	:�	:�	:�	:��	:�	:�	:�	�	�	�	�	�"�	�	�	�	�	
�������+�+��	 �	 �	 �	 �	 rc�j�Gd�d��}Gd�d|��}Gd�d|��}Gd�d|��}|�|�|��d	��|�|�|��d
��|�|�|��d��dS)Nc��eZdZdd�ZdS)�9TestSignatureObject.test_signature_on_subclass.<locals>.Ar&c�6�t�|��Sr�r�r�)r�rrrs    rr�zATestSignatureObject.test_signature_on_subclass.<locals>.A.__new__!����~�~�c�*�*�*rNr{�rGr\r]r�r7rrr'r� �(������
+�
+�
+�
+�
+�
+rr'c��eZdZd�ZdS)�9TestSignatureObject.test_signature_on_subclass.<locals>.Bc��dSrr7r�s  rr�zBTestSignatureObject.test_signature_on_subclass.<locals>.B.__init__$r�rNr�r7rrr*r�#r�rr*c��eZdZdd�ZdS)�9TestSignatureObject.test_signature_on_subclass.<locals>.Cr&r'c�6�t�|��Srr�)r�rr�rrs     rr�zATestSignatureObject.test_signature_on_subclass.<locals>.C.__new__'r�rN�r&r'r�r7rrr�r�&r�rr�c��eZdZdS)�9TestSignatureObject.test_signature_on_subclass.<locals>.DNr�r7rrr/r�)rrr/rw))�rr&.r�)r�r'.r�r�r�.))r�r�r�.r�)rPr'r*r�r/s     r�test_signature_on_subclassz.TestSignatureObject.test_signature_on_subclasss9��	+�	+�	+�	+�	+�	+�	+�	+�	�	�	�	�	��	�	�	�	+�	+�	+�	+�	+��	+�	+�	+�	�	�	�	�	��	�	�	�	
�������*�*��	 �	 �	 �	
�������*�*��	 �	 �	 �	
�������*�*��	 �	 �	 �	 �	 rc��ddlm}m}|d��}Gd�d||��}|�|�|��ddt
dffdf��dS)	Nr)�Generic�TypeVarr�c��eZdZdeddfd�ZdS)�ATestSignatureObject.test_signature_on_generic_subclass.<locals>.ArrdNc��dSrr7r�s  rr�zJTestSignatureObject.test_signature_on_generic_subclass.<locals>.A.__init__Ar�r)rGr\r]r�r�r7rrr'r�@s6������
�S�
�T�
�
�
�
�
�
rr'r.r�)�typingr�r�r
r�r�)rPr�r�r�r's     r�"test_signature_on_generic_subclassz6TestSignatureObject.test_signature_on_generic_subclass;s���+�+�+�+�+�+�+�+��G�C�L�L��	�	�	�	�	���
�	�	�	�	
�������*�*���c�>�:�<�� �	!�	!�	!�	!�	!rc��Gd�d��}|�ttj|����d��Gd�d|��}|�ttj|����d��Gd�dt��}Gd�d|��}|�td��5|�tj|��d��ddd��n#1swxYwY|�td��5|�tj|��d��ddd��dS#1swxYwYdS)	Nc��eZdZdS��CTestSignatureObject.test_signature_on_class_without_init.<locals>.CNr�r7rrr�r�Lr�rr�rsc��eZdZdS��CTestSignatureObject.test_signature_on_class_without_init.<locals>.DNr�r7rrr/r�Nr�rr/c��eZdZdSr�r�r7rrr�zCTestSignatureObject.test_signature_on_class_without_init.<locals>.CRr�rc��eZdZdSr�r�r7rrr/zCTestSignatureObject.test_signature_on_class_without_init.<locals>.DSr�rzcallable.*is not supported)r
r�rJr�r�r�r<)rPr�r/s   r�$test_signature_on_class_without_initz8TestSignatureObject.test_signature_on_class_without_initHs���	�
�
�
�
�
�
�
�����W�.�q�1�1�2�2�D�9�9�9��������������W�.�q�1�1�2�2�D�9�9�9�	������������������
�
#�
#�J�0L�
M�
M�	9�	9����W�.�q�1�1�4�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�
�
#�
#�J�0L�
M�
M�	9�	9����W�.�q�1�1�4�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	9�	9s$�)C7�7C;�>C;�)E�E�Ec��d}|�ttjtj����|��Gd�dtj��}Gd�d��}Gd�d||��}|�ttj|����|��|�ttj|����|��Gd�d	|��}|�ttj|����d
��Gd�dt��}Gd
�d||���}|�ttj|����d��dS)Nz=(file, protocol=None, fix_imports=True, buffer_callback=None)c��eZdZdS)�>TestSignatureObject.test_signature_on_builtin_class.<locals>.PNr�r7rrr~r�`r�rr~c��eZdZdS)�GTestSignatureObject.test_signature_on_builtin_class.<locals>.EmptyTraitNr�r7rr�
EmptyTraitr�ar�rr�c��eZdZdS)�?TestSignatureObject.test_signature_on_builtin_class.<locals>.P2Nr�r7rr�P2r�br�rr�c��eZdZd�ZdS)�?TestSignatureObject.test_signature_on_builtin_class.<locals>.P3c��dSrr7)rPrrs  rr�zHTestSignatureObject.test_signature_on_builtin_class.<locals>.P3.__init__gr�rNr�r7rr�P3r�fr�rr�z(spam)c��eZdZd�ZdS)�BTestSignatureObject.test_signature_on_builtin_class.<locals>.MetaPc��dSrr7)r�r(r s   rr�zKTestSignatureObject.test_signature_on_builtin_class.<locals>.MetaP.__call__lr�rNrvr7rr�MetaPr�kr�rr�c��eZdZdS)�?TestSignatureObject.test_signature_on_builtin_class.<locals>.P4Nr�r7rr�P4r�nrrr�r�z
(foo, bar))r
r�rJr�rqrrr�)rPr1r~r�r�r�r�r�s        r�test_signature_on_builtin_classz3TestSignatureObject.test_signature_on_builtin_classYs���,������W�.�w��?�?�@�@�(�K�K�K�&�&�&�&�&���&�&�&���������%�%�%�%�%��Q�%�%�%�����W�.�q�1�1�2�2�H�=�=�=�����W�.�r�2�2�3�3�X�>�>�>�	�	�	�	�	��	�	�	�	
����W�.�r�2�2�3�3�X�>�>�>�	�	�	�	�	�D�	�	�	�	�	�	�	�	��u�	�	�	�	�����W�.�r�2�2�3�3�\�B�B�B�B�Brc���Gd�d��}|�|�|����d��Gd�d��}|�td��5t	j|����ddd��n#1swxYwYGd�d||��}|�|�|����d��Gd	�d
��}d�|_|�|�|��d��||_|�td��5|�|��ddd��dS#1swxYwYdS)
Nc��eZdZd�ZdS)�CTestSignatureObject.test_signature_on_callable_objects.<locals>.Fooc��dSrr7r�s  rr�zLTestSignatureObject.test_signature_on_callable_objects.<locals>.Foo.__call__tr�rNrvr7rrrIr�sr�rrIr�c��eZdZdS)�DTestSignatureObject.test_signature_on_callable_objects.<locals>.SpamNr�r7rrrYr�{rrrYr�c��eZdZdS)�CTestSignatureObject.test_signature_on_callable_objects.<locals>.BarNr�r7rr�Barr��rrr�c��eZdZdS)�GTestSignatureObject.test_signature_on_callable_objects.<locals>.WrappedNr�r7rr�Wrappedr��rrr�c��dSrr7rfs rr�zHTestSignatureObject.test_signature_on_callable_objects.<locals>.<lambda>�s���r�wrapper loop)r
r�r�r�rJrzr<)rPrIrYr�r�s     r�"test_signature_on_callable_objectsz6TestSignatureObject.test_signature_on_callable_objectsrsZ��	�	�	�	�	�	�	�	�	
����������.�.��	 �	 �	 �	�	�	�	�	�	�	�	�
�
#�
#�I�/I�
J�
J�	&�	&���d�d�f�f�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	�	�	�	�	�$��	�	�	�	
����������.�.��	 �	 �	 �	�	�	�	�	�	�	�	�,�n����������0�0��	 �	 �	 �&���
�
#�
#�J��
?�
?�	$�	$��N�N�7�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	$�	$s$�'B�B�B�;E�E"�%E"c�\�|�|�dd���d��dS)Nrc��|Srr7rfs rr�z?TestSignatureObject.test_signature_on_lambdas.<locals>.<lambda>�s��a�r)))rr.r�.r�r�rZs r�test_signature_on_lambdasz-TestSignatureObject.test_signature_on_lambdas�s;�����������9�9��	 �	 �	 �	 �	 rc�R�dtdtfd�}|�tj|��dk��|�tj|��dk��|�tj|��tk��|�tj|��tk��dtdtfd�}|�tj|��tj|��k��|�tj|��tj|��k��|�ttj|����ttj|������dtdtfd�}|�tj|��tj|��k��|�tj|��tj|��k��|�	ttj|����ttj|������dtfd�}|�tj|��tj|��k��|�tj|��tj|��k��|�	ttj|����ttj|������dd�dtdtfd	�}|�tj|��tj|��k��|�tj|��tj|��k��|�	ttj|����ttj|������dtfd
�}|�tj|��tj|��k��|�tj|��tj|��k��|�	ttj|����ttj|������dtdtfd�}|�tj|��tj|��k��|�tj|��tj|��k��|�	ttj|����ttj|������dtdtfd�}|�tj|��tj|��k��|�tj|��tj|��k��|�	ttj|����ttj|������d
�}d�}|�tj|��tj|��k��|�tj|��tj|��k��|�ttj|����ttj|������dd�d�}dd�d�}|�tj|��tj|��k��|�tj|��tj|��k��|�ttj|����ttj|������dd�d�}dd�d�}|�tj|��tj|��k��|�tj|��tj|��k��|�ttj|����ttj|������d�}dd�d�}|�tj|��tj|��k��|�tj|��tj|��k��|�	ttj|����ttj|������dd�dtfd�}dd�dtfd�}|�tj|��tj|��k��|�tj|��tj|��k��|�ttj|����ttj|������dS)Nr�rdc��dSrr7r�s  rr(z8TestSignatureObject.test_signature_equality.<locals>.foo�rgrr�c��dSrr7r�s  rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rgrc��dSrr7r�s  rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rgrc��dSrr7r�s  rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rgrr=c��dSrr7r�s  rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rgrc��dSrr7�rrs  rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rgrc��dSrr7r�s  rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rgrc��dSrr7�r�rs  rrrz9TestSignatureObject.test_signature_equality.<locals>.spam�rgrc��dSrr7rds   rr(z8TestSignatureObject.test_signature_equality.<locals>.foo�rgrc��dSrr7�rr�rs   rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rgrr&rfc��dSrr7rds   rr(z8TestSignatureObject.test_signature_equality.<locals>.foo�rgrc��dSrr7rs   rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rgrc��dSrr7��posrr�rs    rr(z8TestSignatureObject.test_signature_equality.<locals>.foo�rgrc��dSrr7�rrr�rs    rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rgrc��dSrr7rs    rr(z8TestSignatureObject.test_signature_equality.<locals>.foo�rgrc��dSrr7r
s    rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rgrrc��dSrr7)rrr�rrrs      rr(z8TestSignatureObject.test_signature_equality.<locals>.foo�rgrc��dSrr7)rrr�rrrs      rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rgr)
r�r�rOrJr�rFrr
�hashr�)rPr(r rrs    r�test_signature_equalityz+TestSignatureObject.test_signature_equality�s�	��+��+��+�+�+�+�����*�3�/�/�2�5�6�6�6�����)�#�.�.�"�4�5�5�5�����)�#�.�.�)�;�<�<�<�����*�3�/�/�9�<�=�=�=�+��+��+�+�+�+�����)�#�.�.�'�2C�C�2H�2H�H�I�I�I�����*�3�/�/�7�3D�S�3I�3I�I�J�J�J������"�3�'�'�(�(�$�w�/@��/E�/E�*F�*F�	H�	H�	H�	*��)��)�)�)�)�����*�3�/�/�7�3D�S�3I�3I�I�J�J�J�����)�#�.�.�'�2C�C�2H�2H�H�I�I�I������"�3�'�'�(�(�$�w�/@��/E�/E�*F�*F�	H�	H�	H�	#��"�"�"�"�����*�3�/�/�7�3D�S�3I�3I�I�J�J�J�����)�#�.�.�'�2C�C�2H�2H�H�I�I�I������"�3�'�'�(�(�$�w�/@��/E�/E�*F�*F�	H�	H�	H��.�.�.��.�5�.�.�.�.�����*�3�/�/�7�3D�S�3I�3I�I�J�J�J�����)�#�.�.�'�2C�C�2H�2H�H�I�I�I������"�3�'�'�(�(�$�w�/@��/E�/E�*F�*F�	H�	H�	H�	(�E�'�'�'�'�����*�3�/�/�7�3D�S�3I�3I�I�J�J�J�����)�#�.�.�'�2C�C�2H�2H�H�I�I�I������"�3�'�'�(�(�$�w�/@��/E�/E�*F�*F�	H�	H�	H�	)�S�(�U�(�(�(�(�����*�3�/�/�7�3D�S�3I�3I�I�J�J�J�����)�#�.�.�'�2C�C�2H�2H�H�I�I�I������"�3�'�'�(�(�$�w�/@��/E�/E�*F�*F�	H�	H�	H�)�3�)�e�)�)�)�)�����*�4�0�0�G�4E�c�4J�4J�J�K�K�K�����)�$�/�/�7�3D�S�3I�3I�I�J�J�J������"�4�(�(�)�)�4��0A�#�0F�0F�+G�+G�	I�	I�	I�	"�!�!�!�!�!�����)�#�.�.�'�2C�C�2H�2H�H�I�I�I�����*�3�/�/�7�3D�S�3I�3I�I�J�J�J������"�3�'�'�(�(�$�w�/@��/E�/E�*F�*F�	H�	H�	H��#�#�#�#�#��#�#�#�#�#�����)�#�.�.�'�2C�C�2H�2H�H�I�I�I�����*�3�/�/�7�3D�S�3I�3I�I�J�J�J������"�3�'�'�(�(�$�w�/@��/E�/E�*F�*F�	H�	H�	H��(�(�(�(�(� !�(�(�(�(�(�����)�#�.�.�'�2C�C�2H�2H�H�I�I�I�����*�3�/�/�7�3D�S�3I�3I�I�J�J�J������"�3�'�'�(�(�$�w�/@��/E�/E�*F�*F�	H�	H�	H�	'�&�&� !�(�(�(�(�(�����*�3�/�/�7�3D�S�3I�3I�I�J�J�J�����)�#�.�.�'�2C�C�2H�2H�H�I�I�I������"�3�'�'�(�(�$�w�/@��/E�/E�*F�*F�	H�	H�	H�!�;�;�;��;�;�;�;�$&�;�;�;��;�;�;�;�����)�#�.�.�'�2C�C�2H�2H�H�I�I�I�����*�3�/�/�7�3D�S�3I�3I�I�J�J�J������"�3�'�'�(�(�$�w�/@��/E�/E�*F�*F�	H�	H�	H�	H�	Hrc�x�tj}tj}d�}tj|��}||d|j��g���}|�t
|��t
|����|�t
|��t
|�d�������dd�}|�t
|��t
tj|������ifd	�}|�	td
��5t
tj|����ddd��n#1swxYwYdifd�}|�	td
��5t
tj|����ddd��dS#1swxYwYdS)
Nc��dSrr7rfs rr(z8TestSignatureObject.test_signature_hashable.<locals>.foo�rgrrr\rr�rordr&c��dSrr7rfs rr z8TestSignatureObject.test_signature_hashable.<locals>.bar�rgrc��dSrr7rfs rr(z8TestSignatureObject.test_signature_hashable.<locals>.foo�rgr�unhashable typec��dSrr7rfs rr(z8TestSignatureObject.test_signature_hashable.<locals>.foo�rgr)rdr&)rJr_r]r��POSITIONAL_OR_KEYWORDr
rr�r|r�r�)rPr}r~r(�foo_sig�
manual_sigr s       r�test_signature_hashablez+TestSignatureObject.test_signature_hashable�s*������������#�C�(�(���Q�1�1�S�!�*A�#B�#B�"C�D�D�D�
�����g����Z�(8�(8�9�9�9����D��M�M� ��!3�!3�f�!3�!M�!M�N�N�	P�	P�	P�	�������D��M�M�4��0A�#�0F�0F�+G�+G�H�H�H������
�
#�
#�I�/@�
A�
A�	)�	)���"�3�'�'�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	�b�����
�
#�
#�I�/@�
A�
A�	)�	)���"�3�'�'�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s$�&"E�E�E�"F/�/F3�6F3c� �ddd�dtddfd�}|�ttj|����d��ddd�dtddfd�}|�ttj|����d	��d
�}|�ttj|����d��dt
tdtttffd�}|�ttj|����d
��ddlm	}dt
td|ttffd�}|�ttj|����d��dS)Nr&r�rrdr�c��dSrr7�rr�rrs    rr(z3TestSignatureObject.test_signature_str.<locals>.foo
r[rz*(a: int = 1, *, b, c=None, **kwargs) -> 42c��dSrr7)rr�rrrs     rr(z3TestSignatureObject.test_signature_str.<locals>.foo
r[rz.(a: int = 1, *args, b, c=None, **kwargs) -> 42c��dSrr7r7rrr(z3TestSignatureObject.test_signature_str.<locals>.foo

r[rrsc��dSrr7rfs rr(z3TestSignatureObject.test_signature_str.<locals>.foo
r[rz#(a: list[str]) -> tuple[str, float]r)�Tuplec��dSrr7rfs rr(z3TestSignatureObject.test_signature_str.<locals>.foo
r[rz#(a: list[str]) -> Tuple[str, float]r{)
r�r
r�rJr�r�rmr�r�r")rPr(r"s   r�test_signature_strz&TestSignatureObject.test_signature_str
s���	��	�	�	�#�	�B�	�	�	�	�����W�.�s�3�3�4�4�E�	G�	G�	G�	�T�	�	�	�#�	��	�	�	�	�����W�.�s�3�3�4�4�I�	K�	K�	K�	�	�	�����W�.�s�3�3�4�4�d�;�;�;�	�4��9�	��s�E�z�!2�	�	�	�	�����W�.�s�3�3�4�4�>�	@�	@�	@�	!� � � � � �	�4��9�	��s�E�z�!2�	�	�	�	�����W�.�s�3�3�4�4�>�	@�	@�	@�	@�	@rc�F�tj}tj}d�}tj|��}t	|j�����}|d�|j���|d<|�|���|_	|�
ttj|����d��|�
t||d|j��g�����d��|�
t||d|j��|d|j��g�����d	��|�
t||d|j��|d|j
��g�����d
��dS)Nc�
�||fSrr7)�a_por�rs   rrZzDTestSignatureObject.test_signature_str_positional_only.<locals>.test 
�����<�rrr:r\z(a_po, /, *, b, **kwargs)r(z(foo, /)r z(foo, /, **bar)z(foo, /, *bar))rJr]r_r�r�r.rnr|r^r`r
r�r=�VAR_POSITIONAL)rPr~r}rZrqrss      r�"test_signature_str_positional_onlyz6TestSignatureObject.test_signature_str_positional_only
s���������	 �	 �	 ����%�%���#�.�/�/�1�1�2�2�
�"�1�
�-�-�1�3D�-�E�E�
�1�
� �[�[�J�[�?�?�������W�.�t�4�4�5�5�4�	6�	6�	6�	
����Q�Q�1�1�U�A�4E�+F�+F�*G�H�H�H�I�I�#�	%�	%�	%�	
����Q�Q� !��%��):� ;� ;� !��%��� 7� 7�+9�:�:�:�;�;�+�	,�	,�	,�
	
����Q�Q� !��%��):� ;� ;� !��%��)9� :� :�+<�=�=�=�>�>�*�	+�	+�	+�	+�	+rc��dd�}tj|��}|�d���}|�|jd��|�|j���}|�|j|j��|�d���}|�|jd��|�|tj|����dS)Nrdr�c��dSrr7r7rrrZz=TestSignatureObject.test_signature_replace_anno.<locals>.test9
r[rr)rdr�)rJr�r|r-rorir
r�s   r�test_signature_replace_annoz/TestSignatureObject.test_signature_replace_anno8
s���	�	�	�	����%�%���k�k�D�k�1�1���
�
�c�+�T�2�2�2��k�k�C�I�k�6�6���
�
�c�+�S�Y�7�7�7��k�k�B�k�/�/������.��3�3�3�����g�/��5�5�6�6�6�6�6rc�$�Gd�d��}Gd�d|��}|�|�|j��d��|�|�|j��|�|j����dS)Nc��eZdZd	dd�d
d�ZdS)�FTestSignatureObject.test_signature_on_mangled_parameters.<locals>.Spamr'r>)�	_Spam__p2�	_Spam__p1r&r1c��dSrr7)rPr2r1s   rr(zJTestSignatureObject.test_signature_on_mangled_parameters.<locals>.Spam.fooG
r�rN)r')r2r&r1r'r�r7rrrYr0F
s9������
�a�
�
�
�
�
�
�
�
rrYc��eZdZdS)�ETestSignatureObject.test_signature_on_mangled_parameters.<locals>.HamNr�r7rr�Hamr5I
rrr6))rp)r2r'r&r�)r1r>r'r�.)r
r�r()rPrYr6s   r�$test_signature_on_mangled_parametersz8TestSignatureObject.test_signature_on_mangled_parametersE
s���	�	�	�	�	�	�	�	�	�	�	�	�	�$�	�	�	�	
��������1�1��	 �	 �	 �	
��������1�1������0�0�	2�	2�	2�	2�	2rc��Gd�dtj��}dd�}|�|��}|�||��dS)Nc��eZdZdS)�PTestSignatureObject.test_signature_from_callable_python_obj.<locals>.MySignatureNr�r7rrrar:V
r�rrar�r&c��dSrr7r�s  rr(zHTestSignatureObject.test_signature_from_callable_python_obj.<locals>.fooW
rgr�r�r&�rJr_r�assertIsInstance�rPrar(rs    r�'test_signature_from_callable_python_objz;TestSignatureObject.test_signature_from_callable_python_objU
sZ��2�2�2�2�2�'�+�2�2�2� � � � ��+�+�C�0�0�����g�{�3�3�3�3�3rc��Gd�dtj��}Gd�d��}|�|��}|�||��dS)Nc��eZdZdS)�KTestSignatureObject.test_signature_from_callable_class.<locals>.MySignatureNr�r7rrrarC]
r�rrac��eZdZdS)�CTestSignatureObject.test_signature_from_callable_class.<locals>.fooNr�r7rrr(rE^
r�rr(r=r?s    r�"test_signature_from_callable_classz6TestSignatureObject.test_signature_from_callable_class[
s_��2�2�2�2�2�'�+�2�2�2����������+�+�C�0�0�����g�{�3�3�3�3�3rc��Gd�dtj��}|�tj��}|�||��dS)Nc��eZdZdS)�QTestSignatureObject.test_signature_from_callable_builtin_obj.<locals>.MySignatureNr�r7rrrarIe
r�rra)rJr_rrqrrr>)rPrarqs   r�(test_signature_from_callable_builtin_objz<TestSignatureObject.test_signature_from_callable_builtin_objb
sR��	3�2�2�2�2�'�+�2�2�2��'�'���8�8�����c�;�/�/�/�/�/rc�|�t��D]d}tj|��}t|j��}t|��}|�|��|�||���etjt��}t|j��}|�|t��dSr)
r5rJr�r�r.r�rFr
r?r�r�s     r�3test_signature_definition_order_preserved_on_kwonlyzGTestSignatureObject.test_signature_definition_order_preserved_on_kwonlyi
s���G�I�I�	*�	*�B��)�"�-�-�I��Y�)�*�*�A��a�y�y�H��O�O�A�������Q��)�)�)�)��%�&I�J�J�	���%�&�&������<�=�=�=�=�=rc��tjd���j}tjd���j}|�||��dS)Nc��dSrr7rSs  rr�zITestSignatureObject.test_signater_parameters_is_ordered.<locals>.<lambda>u
���D�rc��dSrr7r�s  rr�zITestSignatureObject.test_signater_parameters_is_ordered.<locals>.<lambda>v
rOr)rJr�r.r�)rP�p1�p2s   r�#test_signater_parameters_is_orderedz7TestSignatureObject.test_signater_parameters_is_orderedt
sL��
�
�0�0�
1�
1�
<��
�
�0�0�
1�
1�
<�����B��#�#�#�#�#rc�r�Gd�d��}d|dtfd�}d|dddtfd�}tjtjjfD�]n}|�|�	��5||��}|�|jt��|�|jdj	|��||t���
��}|�|jt��|�|jdj	|��||dtit�����}|�|jt��|�|jdj	|��|�|jdj	d��ddd��n#1swxYwY��pdS)Nc��eZdZdS)�QTestSignatureObject.test_signature_annotations_with_local_namespaces.<locals>.FooNr�r7rrrIrVz
r�rrIr(rdc��dSrr7r�s rr�zRTestSignatureObject.test_signature_annotations_with_local_namespaces.<locals>.func{
rgrr r�c��dSrr7�r(r s  r�func2zSTestSignatureObject.test_signature_annotations_with_local_namespaces.<locals>.func2|
rgr��signature_func)rL)r`rL)r�rJr�r_rr�r
ror.rjrL)rPrIr�rZr\�sig1�sig2�sig3s        r�0test_signature_annotations_with_local_namespaceszDTestSignatureObject.test_signature_annotations_with_local_namespacesy
s�����������'�c�'�c�'�'�'�'�4�s�4��4�3�4�4�4�4�&�0�'�2C�2Q�R�
	K�
	K�N����~��>�>�
K�
K�%�~�d�+�+��� � ��!7��=�=�=�� � ����!7�!B�C�H�H�H�%�~�d�6�8�8�<�<�<��� � ��!7��=�=�=�� � ����!7�!B�C�H�H�H�%�~�e�e�S�\�&�(�(�S�S�S��� � ��!7��=�=�=�� � ����!7�!B�C�H�H�H�� � ����!7�!B�E�J�J�J�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K����
K�
K�
K�
K��
	K�
	Ks� D>F*�*F.	�1F.	c�\	�t}tj}tj}tjj}tjtjjfD�]\}|�|���5|�||j	��||d|��|d|��f�����|�||j
��|d|d|d���|d|d���f�	����|�||j��|d|d|d���|d|d
���|d|d���f�	����|�||j��||d|d���|d|d
���|d|d
���f�����|�||j
��|����|�||j��||d|��|d|��|d|��f�����|�||j	d���||d|��|d|��f�����|�||j
d���||j	|d|t���|d|t ���f�	����|�||jd���||j	|d|t���|d|d���|d||j	���f�	����|�||jd���||d|d���|d|d���|d|d���f�����t"t$d�}t&t(d�}|�t,��5||j
d|���ddd��n#1swxYwY|�||j
d|���|t(|d|t���|d|t&���f�	����|�||j
d||���|t(|d|t"���|d|t&���f�	����ddd��n#1swxYwY��^dS)Nr[rr�r\rcr��rjr�)ror.rzrr{r|Tre)r�r�)r�rcr_r])r^r`rL)rrJr_r]rr�rr�r
rcr2rqrrrsrtr�r�r��complexrmr�r��	NameError)rPrwrq�par�PORKr\�globalns�localnss        r�test_signature_eval_strz+TestSignatureObject.test_signature_eval_str�
s���,��������� �6��&�0�'�2C�2Q�R�b	�b	�N����~��>�>�a
�a
�� � �"�N�3�;�/�/��C��C��T�N�N��C��T�N�N�$�������� � �"�N�3�<�0�0��C�*3��C��T�e�<�<�<��C��T�e�<�<�<�$�������� � �"�N�3�=�1�1��C�*3��C��T�e�<�<�<��C��T�g�>�>�>��C��T�i�@�@�@�$�������� � �"�N�3�=�1�1��C��C��T�g�>�>�>��C��T�g�>�>�>��C��T�k�B�B�B�$�������� � ����0D�!E�!E�s�s�u�u�M�M�M�� � ����0H�!I�!I��C��C��T�N�N��C��T�N�N��C��T�N�N�$�������� � �"�N�3�;��>�>�>��C��C��T�N�N��C��T�N�N�$�������� � �"�N�3�<�$�?�?�?��C�*-�+��C��T�c�:�:�:��C��T�c�:�:�:�$�������� � �"�N�3�=�4�@�@�@��C�*-�+��C��T�c�:�:�:��C��T�e�<�<�<��C��T�c�k�B�B�B�$�������� � �"�N�3�=�4�@�@�@��C��C��T�e�<�<�<��C��T�e�<�<�<��C��T�i�@�@�@�$�������$)��9�9��"'�D�9�9���&�&�y�1�1�R�R�"�N�3�<�$��Q�Q�Q�Q�R�R�R�R�R�R�R�R�R�R�R����R�R�R�R�� � �"�N�3�<�$�w�O�O�O��C�*.��C��T�c�:�:�:��C��T�e�<�<�<�$�������� � �"�N�3�<�$��Y`�a�a�a��C�*.��C��T�e�<�<�<��C��T�e�<�<�<�$�������ua
�a
�a
�a
�a
�a
�a
�a
�a
�a
�a
����a
�a
�a
�a
��b	�b	s8�'M
R�1O�R�O�R�O�B:R�R#	�&R#	c��Gd�d��}d�}||��}d|_tjtjjfD]`}|�|���5|�||��tj����ddd��n#1swxYwY�a|�tj|��i��dS)Nc��eZdZd�Zd�ZdS)�DTestSignatureObject.test_signature_none_annotation.<locals>.funclikec��|j|_|j|_|j|_|j|_|j|_||_dSrr�r�s  rr�zMTestSignatureObject.test_signature_none_annotation.<locals>.funclike.__init__�
r�rc��|j|i|��Srrrs   rr�zMTestSignatureObject.test_signature_none_annotation.<locals>.funclike.__call__r�rNr�r7rrr�rl�
r�rr�c��dSrr7r7rrr(z?TestSignatureObject.test_signature_none_annotation.<locals>.foorgrr[)rirJr�r_rr�r
rp)rPr�r(r\s    r�test_signature_none_annotationz2TestSignatureObject.test_signature_none_annotation�
s2��	2�	2�	2�	2�	2�	2�	2�	2� 	����h�s�m�m��"���&�0�'�2C�2Q�R�	K�	K�N����~��>�>�
K�
K�� � ����!4�!4�g�6G�6I�6I�J�J�J�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K����
K�
K�
K�
K������0��5�5�r�:�:�:�:�:s�1B�B	�B	N)4rGr\r]r�r�r�r�r�r�r�r�r�r�rr�rrr�r�r�r�rrrr!r)r/rRrarfr{r�r�r�r�r�r�r�rrr$r*r-r7r@rFrJrLrSr`rirpr7rrrfrf�s��������	I�	I��\�	I�.0�.0�.0�`9�9�9�8	'�	'�	'�:�:�:�
 � � �!�!�!�
 �
 �
 �"H�"H�"H�F��X�_�)�M�O�O�DE�DE�O�O��\�DE�L��X�_�)�M�O�O�:�:�O�O��\�:�(�#�#��\�#�"�"�"�3H�3H�3H�jG�G�G�&#�#�#�6 � � � � � �$ � � �$V�V�V�p# �# �# �J=�=�=�
@ �@ �@ �FO �O �O �b � � �8!�!�!��X�_�)�M�O�O�
9�
9�O�O�
9��X�_�)�M�O�O�C�C�O�O�C�.$�$�$�@ � � �
QH�QH�QH�f)�)�)�0@�@�@�4+�+�+�87�7�7�2�2�2� 4�4�4�4�4�4��X�_�)�M�O�O�0�0�O�O�0�
	>�	>�	>�$�$�$�
K�K�K�(g�g�g�R;�;�;�;�;rrfc�N�eZdZd�Zd�Zd�Zd�Zd�Zd�Ze	d���Z
d�Zd	S)
�TestParameterObjectc�T�tj}|�|j|jcxko"|jcxko|jcxko
|jknc��|�t|j��d��|�dt|j��v��dS)Nr^)rJr]rFr^rr)�KEYWORD_ONLYr=r
r�r1)rPr~s  r�test_signature_parameter_kindsz2TestParameterObject.test_signature_parameter_kindss����������)�A�,C�J�J�J�J��(�J�J�J�J�+,�>�J�J�J�J�<=�M�J�J�J�J�	K�	K�	K�	
����Q�.�/�/�1B�C�C�C����)�T�!�2C�-D�-D�D�E�E�E�E�Erc�h�tjddtjj���}|�|jd��|�|jd��|�|j|j��|�|j	tjj��|�
td��5tjddd���ddd��n#1swxYwY|�
td��5tjdtjj���ddd��n#1swxYwY|�
td��5tjd	tjj���ddd��n#1swxYwY|�
td
��5tjdtjj���ddd��n#1swxYwY|�
td��5tjdtjj���ddd��n#1swxYwY|�
td��5tjd
tjj���ddd��n#1swxYwY|�
td��5tjddtjj���ddd��n#1swxYwY|�
td��5tjddtjj���ddd��n#1swxYwYtjddtjj���}|�
td��5|�tjj���ddd��n#1swxYwY|�t%|���d����|�dt%|��v��dS)Nr(r�r8r7z)value '123' is not a valid Parameter.kind�123znot a valid parameter namer�r:�from�name must be a strzis not a valid parameter name�$z.azcannot have default valuesrr�z
<Parameterz"a=42")rJr]r^r
r�r8r-rjrir7r�r<r=r�r)rr|rFr1r��rPr0s  r�test_signature_parameter_objectz3TestParameterObject.test_signature_parameter_objects}����e�R�#*�#4�#D�
F�
F�
F��������'�'�'������B�'�'�'��
�
�a�l�A�G�,�,�,�������!2�!B�C�C�C�
�
#�
#�J�1A�B�B�	=�	=���e�R�e�<�<�<�<�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=��
#�
#�J�0L�
M�
M�	G�	G���c��(9�(E�F�F�F�F�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G��
#�
#�J�0L�
M�
M�	J�	J���f�7�+<�+H�I�I�I�I�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J����	J�	J�	J�	J��
#�
#�I�/C�
D�
D�	H�	H���d��):�)F�G�G�G�G�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H��
#�
#�J�$C�E�E�	G�	G���c��(9�(E�F�F�F�F�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G��
#�
#�J�$C�E�E�	H�	H���d��):�)F�G�G�G�G�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H��
#�
#�J�0L�
M�
M�	B�	B���c�2�#*�#4�#@�
B�
B�
B�
B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B��
#�
#�J�0L�
M�
M�	E�	E���c�2�#*�#4�#C�
E�
E�
E�
E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�
��c�2�#*�#4�#J�
L�
L�
L��
�
#�
#�J�0L�
M�
M�	=�	=�
�I�I�7�,�;�I�<�<�<�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�	
����Q���*�*�<�8�8�9�9�9�����D��G�G�+�,�,�,�,�,s��C&�&C*�-C*�&D>�>E�E�$&F�F�F�<&G.�.G2�5G2�&I�I
�
I
�,&J�J"�%J"�'K7�7K;�>K;�'M�M�M�&O�O�Oc
���tj}|d|j���}|�t	|��t	|d|j�������|�t	|��t	|d|jd�������|�t	|��t	|�|j�������dS)Nr(r:r�r6)rJr]r^r
rr�r|r))rPr~r(s   r�!test_signature_parameter_hashablez5TestParameterObject.test_signature_parameter_hashableFs�������a��A�-�.�.�.������c���D���5�q�7H�)I�)I�)I�$J�$J�K�K�K����D��I�I�t�A�A�e�!�:K�68�-:�-:�-:�(;�(;�	<�	<�	<����D��I�I� ����!�2B��!C�!C�D�D�	F�	F�	F�	F�	Frc�h�tj}|ddtjj���}|�||k��|�||k��|�|dk��|�|dk��|�|t
k��|�|t
k��|�||ddtjj���k��|�||ddtjj���k��dS)Nr(r�rw)rJr]rtrFrOr)rPr~r0s   r�!test_signature_parameter_equalityz5TestParameterObject.test_signature_parameter_equalityOsF�����
�A�e�R�g�&7�&D�E�E�E������Q���������a�� � � �����b��!�!�!�����R�� � � �����Y��'�'�'�����i��(�(�(�����Q�Q�u�b�$+�$5�$B�D�D�D�D�	E�	E�	E�����a�a��r�%,�%6�%C�E�E�E�E�	F�	F�	F�	F�	Frc��tjddtjj���}|�||�����|�||�����|�d���}|�|jd��|�|j���}|�||��|�d���}|�|jd��|�	||��|�
td��5|�|j���}ddd��n#1swxYwY|�dd�	��}|�|j
d��|�	||��|�d|j�	��}|�|j
|j��|�d|j���}|�|j|j��|�	||��|�
td
��5|�|j���}ddd��n#1swxYwY|�|j���}|�||��dS)Nr(r�rwr&rbr r{zname is a required attribute)r�r8z<value <class 'inspect._empty'> is not a valid Parameter.kindr:)rJr]rtrur|r
rjrir�r�r�r<r-r8rr7)rPr0rRs   r� test_signature_parameter_replacez4TestParameterObject.test_signature_parameter_replace_s����e�R�#*�#4�#A�
C�
C�
C��	
����A�I�I�K�K�(�(�(�����A�I�I�K�K�(�(�(�
�Y�Y�!�Y�
$�
$��������*�*�*�
�Z�Z�2�8�Z�
,�
,������B����
�Z�Z�U�Z�
#�
#�������%�(�(�(����B��"�"�"�
�
#�
#�J�$B�D�D�	+�	+�������*�*�B�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+��Z�Z�U�D�Z�
1�
1���
�
�b�j�$�'�'�'����B��"�"�"�
�Z�Z�U�B�H�Z�
5�
5���
�
�b�j�"�(�+�+�+��Z�Z���)A�Z�
B�
B�������"�":�;�;�;����B��"�"�"�
�
#�
#�J�%D�E�E�	+�	+�������*�*�B�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�
�Z�Z�R�_�Z�
-�
-������Q�����s$�;E#�#E'�*E'�J�J�Jc��|�td��5tjdtjj���ddd��dS#1swxYwYdS)Nrzr:)r�r�rJr]r^rZs r�(test_signature_parameter_positional_onlyz<TestParameterObject.test_signature_parameter_positional_only�s���
�
#�
#�I�/C�
D�
D�	L�	L���d��):�)J�K�K�K�K�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L����	L�	L�	L�	L�	L�	Ls�&A�A�Ac��|�td��5tjdtjj���ddd��n#1swxYwYtjdtjj���}|�|jtjj��|�|jd��dS)NzYimplicit arguments must be passed as positional or keyword arguments, not positional-onlyz.0r:�	implicit0)	r�r<rJr]r^rr
r7r�)rPrks  r�!test_signature_parameter_implicitz5TestParameterObject.test_signature_parameter_implicit�s��
�
#�
#�J�%:�;�;�	L�	L�
��d��):�)J�K�K�K�K�		L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L����	L�	L�	L�	L��!��w�(�>�@�@�@�������W�%6�%F�G�G�G������[�1�1�1�1�1s�&A�A�Ac�6�tjdtjj���}|�t��5d|_ddd��n#1swxYwY|�t��5d|_ddd��dS#1swxYwYdS)Nrrr:r r9)rJr]rtr�r�r(r7r|s  r�%test_signature_parameter_immutabilityz9TestParameterObject.test_signature_parameter_immutability�s����f�7�+<�+I�J�J�J��
�
�
�~�
.�
.�	�	��A�E�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�~�
.�
.�	�	��A�F�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s$�A�A�A�9B�B�BN)rGr\r]rur}rr�r�r�rr�r�r7rrrrrrs�������F�F�F�+-�+-�+-�ZF�F�F�F�F�F� & �& �& �PL�L�L��
2�
2��\�
2�����rrrc��eZdZed���Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zed���Zd�ZdS)�TestSignatureBindc�h�tj|��}|j|i|��}||ji|j��Sr)rJr�rLrr)r�rrrqrPs     r�callzTestSignatureBind.call�sA�����%�%��
�S�X�t�
&�v�
&�
&���t�R�W�*��	�*�*�*rc��d�}|�|�|��d��|�td��5|�|d��ddd��n#1swxYwY|�td��5|�|dd���ddd��n#1swxYwY|�td��5|�|d���ddd��dS#1swxYwYdS)Nc��dSr�r7r7rrrZz9TestSignatureBind.test_signature_bind_empty.<locals>.test�s���2rr��too many positional argumentsr&rr�)got an unexpected keyword argument 'spam'�r
r�r�r�r�s  r�test_signature_bind_emptyz+TestSignatureBind.test_signature_bind_empty�s���	�	�	�	
������4���"�-�-�-�
�
#�
#�I�/N�
O�
O�	�	��I�I�d�A����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
#�
#�I�/N�
O�
O�	(�	(��I�I�d�A�B�I�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�
�
#�
#��B�D�D�	$�	$�
�I�I�d��I�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	$�	$s6�A+�+A/�2A/�B6�6B:�=B:�D�D�Dc��d�}|�|�|��dif��|�|�|d��dif��|�|�|dd��dif��|�|�|d���dd	dif��|�|�|dd���dd	dif��|�|�|d
���ddd
if��|�|�|ddd���dd	dif��dS)
Nc�
�||fSrr7r�s  rrZz7TestSignatureBind.test_signature_bind_var.<locals>.test�r(rr7r&r{r'r�r r�r(rrr�r
r�r�s  r�test_signature_bind_varz)TestSignatureBind.test_signature_bind_var�s\��	 �	 �	 �	
������4���2�r�(�3�3�3�������4��+�+�d�B�Z�8�8�8�������4��A�.�.����=�=�=�������4�U��3�3�b�5�%�.�5I�J�J�J�������4����6�6���u�~�8N�O�O�O�������4�b��1�1�B����3E�F�F�F�������4��A�5��9�9� �5�%�.�1�	3�	3�	3�	3�	3rc���d�}|�|�|ddd��d��|�td��5|�|dddd��ddd��n#1swxYwY|�td��5|�|d��ddd��n#1swxYwY|�td	��5|�|��ddd��n#1swxYwYdd�}|�|�|ddd��d��|�|�|dd��d��dd
�}|�|�|d
d���d��|�|�|d
���d��|�|�|d
���d��dS)Nc��|||fSrr7rds   rrZz=TestSignatureBind.test_signature_bind_just_args.<locals>.test�rBrr&r'r>rIr�r z missing a required argument: 'b'z missing a required argument: 'a'rc��|||fSrr7rds   rrZz=TestSignatureBind.test_signature_bind_just_args.<locals>.test�rBr)r&r'rc��|||fSrr7rds   rrZz=TestSignatureBind.test_signature_bind_just_args.<locals>.test�rBrr@r�)rr'r@rf)rr'r>r=)r&rr>r�r�r�s  r�test_signature_bind_just_argsz/TestSignatureBind.test_signature_bind_just_args�s���	�	�	�	
������4��A�q�1�1�9�=�=�=�
�
#�
#�I�/N�
O�
O�	(�	(��I�I�d�A�q�!�Q�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(��
#�
#�I�$F�H�H�	�	��I�I�d�A����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
#�
#�I�$F�H�H�	�	��I�I�d�O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�������4��A�q�1�1�9�=�=�=�������4��A�.�.�
�;�;�;�	�	�	�	�������4�2���4�4�k�B�B�B�������4�2��.�.�
�;�;�;�������4�2��.�.�
�;�;�;�;�;s6�A1�1A5�8A5�B:�:B>�B>� D�D�	Dc��d�}|�|�|��d��|�|�|ddd��d��dS)Nc��|Srr7rs rrZzATestSignatureBind.test_signature_bind_varargs_order.<locals>.test�s���Krr7r&r'r>rIr�r�s  r�!test_signature_bind_varargs_orderz3TestSignatureBind.test_signature_bind_varargs_order�sa��	�	�	�	
������4���"�-�-�-�������4��A�q�1�1�9�=�=�=�=�=rc
��dd�}|�|�|ddddd��d��|�|�|dd��d��|�|�|dd�	��d
��|�|�|dd���d��|�td��5|�|dddd�
��ddd��dS#1swxYwYdS)Nr>c��||||fSrr7)rr�rrs    rrZzDTestSignatureBind.test_signature_bind_args_and_varargs.<locals>.test�s���a��D�=� rr&r'r r�)r&r'r>)r r�)r&r'r>r7r)r'r&r>r7r=z multiple values for argument 'c'r��r>r�r�s  r�$test_signature_bind_args_and_varargsz6TestSignatureBind.test_signature_bind_args_and_varargs�sX��	!�	!�	!�	!�	
������4��A�q�!�Q�7�7�9J�K�K�K�������4��A�.�.�
�>�>�>�������4�1���2�2�M�B�B�B�������4��a��0�0�-�@�@�@�
�
#�
#�I�%G�I�I�	*�	*��I�I�d�A�q�!�q�I�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s�C9�9C=�C=c��d�}|�|�|��i��|�|�|dd���ddd���dS)Nc��|Srr7)rs rrZz?TestSignatureBind.test_signature_bind_just_kwargs.<locals>.test�s���Mrr rT�r(rrr�r�s  r�test_signature_bind_just_kwargsz1TestSignatureBind.test_signature_bind_just_kwargs�st��	�	�	�	
������4���"�-�-�-�������4�U���?�?�!&��6�6�	8�	8�	8�	8�	8rc
�J�dd�}|�|�|dd��dddif��|�|�|dddd���dddddd�f��|�|�|dddd���dddddd�f��|�|�|dddd�	��dddddd�f��|�|�|dddd�
��dddddd�f��|�|�|ddddd���dddddd�f��|�|�|dddd�
��dddddif��|�|�|ddd���dddif��dS)Nr>c��||||fSrr7rs    rrZzCTestSignatureBind.test_signature_bind_args_and_kwargs.<locals>.test�s���a��F�?�"rr&r'r rTr�)r�rr(rr)rr�r(rr)r�r(rrr )r�rr(rrr�r(r�)rrr�r�r�r�s  r�#test_signature_bind_args_and_kwargsz5TestSignatureBind.test_signature_bind_args_and_kwargs�s.��	#�	#�	#�	#�	
������4��A�.�.��A�q�"�
�>�>�>�������4��A�5�u��E�E��Q��5�%�#@�#@�A�	C�	C�	C�������4�1��u�5��I�I��Q��5�%�#@�#@�A�	C�	C�	C�������4�1��u�5��I�I��Q��5�%�#@�#@�A�	C�	C�	C�������4��a�U���G�G��Q��5�%�#@�#@�A�	C�	C�	C�������4��a�1�%�e��L�L��Q��5�%�#@�#@�A�	C�	C�	C�������4��A�q�e��<�<��Q��E�5�>�2�	4�	4�	4�������4�1��Q��7�7��Q��2��	(�	(�	(�	(�	(rc	��d�}|�td��5|�|d��ddd��n#1swxYwY|�|�|d���d��dd�d�}|�td��5|�|d��ddd��n#1swxYwYd�}|�|�|dd�	��d
��|�|�|dd���d
��|�td��5|�|ddd
���ddd��n#1swxYwY|�td��5|�|dd��ddd��n#1swxYwY|�td��5|�|ddd�	��ddd��n#1swxYwY|�td��5|�|ddd���ddd��n#1swxYwY|�td��5|�|d��ddd��n#1swxYwYd�}|�|�|dd�	��ddif��|�|�|dd���ddif��|�|�|ddd���ddddif��|�|�|ddd���ddddif��|�td��5|�|dd���ddd��n#1swxYwY|�|�|dddd
���dddd
d�f��dS)Nc��|Srr7r�s rrZz:TestSignatureBind.test_signature_bind_kwonly.<locals>.test����Jrr�r&r�c��|Srr7)rr(r s   rrZz:TestSignatureBind.test_signature_bind_kwonly.<locals>.testr�rz"missing a required argument: 'bar'c�
�||fSrr7rYs  rrZz:TestSignatureBind.test_signature_bind_kwonly.<locals>.tests����8�Orr'r�r�)r r(r�r)r r(rrrT)r rrc��|||fSrr7)r(r �bins   rrZz:TestSignatureBind.test_signature_bind_kwonly.<locals>.test9s����S�=� rrYrr)rrr(r z"missing a required argument: 'foo')rrr )r r�rr)r�rr)r�r�r�r
r�s  r�test_signature_bind_kwonlyz,TestSignatureBind.test_signature_bind_kwonlys;��	�	�	�
�
#�
#�I�%D�F�F�	�	��I�I�d�A����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
������4�Q��/�/��3�3�3��	�	�	�	�	�
�
#�
#�I�%I�K�K�	�	��I�I�d�A����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�������4����2�2�F�;�;�;�������4�Q�A��6�6��?�?�?�
�
#�
#��B�D�D�	3�	3�
�I�I�d��q�r�I�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�
�
#�
#�I�%D�F�F�	"�	"��I�I�d�A�q�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"��
#�
#�I�%D�F�F�	)�	)��I�I�d�A�q�a�I�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)��
#�
#��B�D�D�	2�	2�
�I�I�d�A�1�5�I�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�
�
#�
#�I�%I�K�K�	�	��I�I�d�A����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	!�	!�	!�������4����2�2�Q��2�J�?�?�?�������4�Q�A��6�6��A�r�
�C�C�C�������4�����>�>��Q����0�	2�	2�	2�������4�e����B�B��Q����0�	2�	2�	2�
�
#�
#�I�$H�J�J�	/�	/��I�I�d��A�I�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	
������4���q�r��B�B��Q��2� 6� 6�7�	9�	9�	9�	9�	9s��A�A�	A�B<�<C�C�=E#�#E'�*E'�	F-�-F1�4F1�G9�9G=�G=�I�I	�I	�+J�J�J�9N�N"�%N"c�n�dd�d�}tj|��}|�dddddd	�
��}|�t	|j�����ddd
dddd	d�ff��|�|jdddd	d
���|�|jd��dS)Nrt�r%c��dSrr7)rr�r%rrs     rrZz=TestSignatureBind.test_signature_bind_arguments.<locals>.testHr[rrr@r1r>r��<)r�rrr�rr)r)r@)r�r1r)rrr)rr@)	rJr�rLr
rm�	arguments�itemsrr�rPrZrqrPs    r�test_signature_bind_argumentsz/TestSignatureBind.test_signature_bind_argumentsGs��� #�	�	�	�	�	����%�%��
�X�X�b�"��b�r�"�X�
=�
=��	
����r�|�1�1�3�3�4�4�#�_�i�#�2�r�R�%H�%H�I�K�	L�	L�	L�	
�����!��B�"�E�E�	G�	G�	G������(�+�+�+�+�+rc
�t�tj}ddd�d�}tj|��}tjt|j�������}dD]&}||�|j	���||<�'|�|�
�����}||_|�|�
|d	d
ddd
���d	d
ddd
if��|�|�
|d	d
��d	d
dddif��|�|�
|d	d
dd���d	d
dddif��|�td��5|�
|d	d
ddd���ddd��n#1swxYwY|�td��5|�
|d	d
d���ddd��n#1swxYwY|�td��5|�
|d	d
���ddd��dS#1swxYwYdS)Nr>r�r�r�c��||||||fSrr7)r'�b_po�c_por(r rs      rrZzCTestSignatureBind.test_signature_bind_positional_only.<locals>.testXs����t�S�#�v�5�5r)r'r�r�r:r\r&r'r r��rYzbut was passed as a keywordr)r(r r�zparameter is positional only)r�)r'r�)r>r�)rJr]r�r�r�rmr.r�r|r^rnr`r
r�r�r�)rPr~rZrqrsr��new_sigs       r�#test_signature_bind_positional_onlyz5TestSignatureBind.test_signature_bind_positional_onlyUs)�����	6�B�	6�	6�	6�	6�	6����%�%�� �,�U�3�>�3G�3G�3I�3I�-J�-J�K�K�
�,�	P�	P�D�)�$�/�7�7�Q�=N�7�O�O�J�t����+�+��):�):�)<�)<�+�=�=��$���������4��A�q�!���;�;��Q��1�a��,�	.�	.�	.�	
������4��A�.�.��Q��2�r�2�.�	0�	0�	0�	
������4��A�1�!��<�<��Q��1�a��,�	.�	.�	.��
#�
#�I�/L�
M�
M�	9�	9��I�I�d�A�q�a�Q�R�I�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9��
#�
#�I�/M�
N�
N�	*�	*��I�I�d�A�q�q�I�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*��
#�
#�I�/M�
N�
N�	,�	,��I�I�d���I�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	,�	,s6�-F�F�F�;G!�!G%�(G%�H-�-H1�4H1c��d�}tj|��}|�ddd��}|�|jd��|�ddd���}|�|jd��dS)Nc��dSrr7)rrPr�s   rrZzATestSignatureBind.test_signature_bind_with_self_arg.<locals>.testvr[rr&r'r>rIr�)rJr�rLr
rr�s    r�!test_signature_bind_with_self_argz3TestSignatureBind.test_signature_bind_with_self_argts���	�	�	����%�%��
�X�X�a��A�
�
�������)�,�,�,�
�X�X�a�a�1�X�
%�
%�������)�,�,�,�,�,rc��d�}tj|��}|�td��5|�dd���ddd��n#1swxYwYd�}|�|�|d���dd	dif��tj|��}|�d���}|�|jd
d	dii��dS)Nc�
�||fSrr7�rrs  rrZz?TestSignatureBind.test_signature_bind_vararg_name.<locals>.tests���d�7�Nrz)got an unexpected keyword argument 'args'rr&r�c�
�||fSrr7r�s  rrZz?TestSignatureBind.test_signature_bind_vararg_name.<locals>.test�r(rrr7rr)rJr�r�r�rLr
r�r�r�s    r�test_signature_bind_vararg_namez1TestSignatureBind.test_signature_bind_vararg_name~s4��	�	�	����%�%��
�
#�
#��B�D�D�	"�	"�
�H�H�q�q�H�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�
	 �	 �	 �������4�a��0�0�2���{�2C�D�D�D����%�%��
�X�X�1�X�
�
��������6�1�+�'>�?�?�?�?�?s�A�A�Ac���d�}|jjd}tj|i��}t	td����}|�|�||��hd���dS)Nc�4�d�td��D��S)Nc��h|]}||z��Sr7r7)r}r%s  r�	<setcomp>zWTestSignatureBind.test_signature_bind_implicit_arg.<locals>.make_set.<locals>.<setcomp>�s��,�,�,�a�A��E�,�,�,rr�rkr7rr�make_setzDTestSignatureBind.test_signature_bind_implicit_arg.<locals>.make_set�s��,�,�5��8�8�,�,�,�,rr&r�>rr&r rr)r��	co_constsr��FunctionType�iterr)r
r�)rPr��setcomp_code�setcomp_func�iterators     r� test_signature_bind_implicit_argz2TestSignatureBind.test_signature_bind_implicit_arg�su��	-�	-�	-��(�2�1�5���)�,��;�;����a���>�>��������<��:�:�<L�<L�<L�M�M�M�M�Mrc��d�}tj|��}|�dd���}|�|jddi��|�d|j�����dS)Nc�0�||�|��fSr)r�)r rs  rr(zATestSignatureBind.test_signature_bind_posonly_kwargs.<locals>.foo�s����
�
�3���'�'r�pos-only�keywordr�r )r r�)rJr�rLr
rr�r�r�)rPr(rq�results    r�"test_signature_bind_posonly_kwargsz4TestSignatureBind.test_signature_bind_posonly_kwargs�s��	(�	(�	(����$�$�����*�)��4�4��������	�(:�;�;�;��
�
�)�6�+;�+A�+A�+C�+C�D�D�D�D�DrN)rGr\r]r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�r�r7rrr�r��s�������+�+��\�+�
$�$�$�3�3�3�<�<�<�8>�>�>�*�*�*�8�8�8�(�(�(�(59�59�59�n,�,�,�,�,�,�>-�-�-�@�@�@�$�N�N��\�N�E�E�E�E�Err�c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestBoundArgumentsc���d�}tj|���d��}|�td��5t|��ddd��dS#1swxYwYdS)Nc��dSrr7rfs rr(zITestBoundArguments.test_signature_bound_arguments_unhashable.<locals>.foo�rgrr&r)rJr�rLr�r�r�rPr(rPs   r�)test_signature_bound_arguments_unhashablez<TestBoundArguments.test_signature_bound_arguments_unhashable�s������
�
�s�
#�
#�
(�
(��
+�
+��
�
#�
#�I�/@�
A�
A�	�	���H�H�H�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A#�#A'�*A'c��d�}tj|���d��}|�||k��|�||k��|�|t
k��|�|t
k��tj|���d��}|�||k��|�||k��tj|���d��}|�||k��|�||k��d|jd<|�||k��|�||k��d�}tj|���d��}|�||k��|�||k��d�}tj|��}|�dd���}|�dd���}|�||k��|�||k��dS)	Nc��dSrr7rfs rr(zGTestBoundArguments.test_signature_bound_arguments_equality.<locals>.foo�rgrr&r'rc��dSrr7r=s rr zGTestBoundArguments.test_signature_bound_arguments_equality.<locals>.bar�rgrc��dSrr7r�s  rr(zGTestBoundArguments.test_signature_bound_arguments_equality.<locals>.foo�rgrr�r)rJr�rLrFrOrr�)	rPr(rP�ba2�ba3r �ba4rq�ba1s	         r�'test_signature_bound_arguments_equalityz:TestBoundArguments.test_signature_bound_arguments_equality�s#�����
�
�s�
#�
#�
(�
(��
+�
+������b��!�!�!�����r��"�"�"�����i��(�(�(�����y��)�)�)����$�$�)�)�!�,�,������c�	�"�"�"�����s��#�#�#����$�$�)�)�!�,�,������s��#�#�#�����c�	�"�"�"���
�c������c�	�"�"�"�����s��#�#�#�������$�$�)�)�!�,�,������s��#�#�#�����c�	�"�"�"�������$�$���h�h��a�h� � ���h�h��a�h� � ������s�
�#�#�#�������$�$�$�$�$rc��id�dddddifd�}tj|��}|�dd	i�
��}ttjdz��D]m}|�|���5t	jt	j||����}|�	||��ddd��n#1swxYwY�ndS)Nr�rr&rdr�rTc��dSrr7r�s    rr(zETestBoundArguments.test_signature_bound_arguments_pickle.<locals>.foo�rgrr@r1r�)r�)
rJr�rLr)r�r�r�r�r�r
)rPr(rqrPr��
ba_pickleds      r�%test_signature_bound_arguments_picklez8TestBoundArguments.test_signature_bound_arguments_pickle�s���:�:�:�1�:�2�e�*�:�:�:�:����$�$��
�X�X�b�"��X�
#�
#����0�1�4�5�5�	1�	1�C������-�-�
1�
1�#�\�&�,�r�3�*?�*?�@�@�
�� � ��Z�0�0�0�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1����
1�
1�
1�
1��	1�	1s�.>B8�8B<	�?B<	c��id�dddddifd�}tj|��}|�dd	i�
��}|�t	|��d��dS)Nr�rr&rdr�rTc��dSrr7r�s    rr(zCTestBoundArguments.test_signature_bound_arguments_repr.<locals>.foo�rgrr@r1r�z <BoundArguments \(a=20,.*\}\}\)>)rJr�rL�assertRegexr1�rPr(rqrPs    r�#test_signature_bound_arguments_reprz6TestBoundArguments.test_signature_bound_arguments_repr�so���:�:�:�1�:�2�e�*�:�:�:�:����$�$��
�X�X�b�"��X�
#�
#������b���#F�G�G�G�G�Grc
���did�dd�}tj|��}|�d��}|���|�t|j�����ddddifd	ifg��|�d
ddd���}|���|�t|j�����d
dddifd	ddifg��d�}tj|��}|�d��}|���|�t|j�����dg��d�}tj|��}|���}|���|�t|j�����g��dd�}tj|��}|���}|���|�t|j�����dg��dS)Nr&r�rc��dSrr7)rr�rrrps     rr(zMTestBoundArguments.test_signature_bound_arguments_apply_defaults.<locals>.foo�rgrr@)rr@r<)rr7rprr1)rOr�)r�r@)r)r1rOc��dSrr7r�s  rr(zMTestBoundArguments.test_signature_bound_arguments_apply_defaults.<locals>.foo�rgrc��dSrr7r7rrr(zMTestBoundArguments.test_signature_bound_arguments_apply_defaults.<locals>.foo�rgrrrc��dSrr7rfs rr(zMTestBoundArguments.test_signature_bound_arguments_apply_defaults.<locals>.foorgr)rrrr{)rr&r)	rJr�rL�apply_defaultsr
r�r�r��bind_partialr�s    r�-test_signature_bound_arguments_apply_defaultsz@TestBoundArguments.test_signature_bound_arguments_apply_defaults�sZ��2�2�2�2�2�2�2�2����$�$��
�X�X�b�\�\��
������������#�#�%�%�&�&�
��,��b�	�D�"�:�F�	H�	H�	H��X�X�b�"�b�A�X�
&�
&��
������������#�#�%�%�&�&�
�	�?�S�"�I��s�1�g��O�	Q�	Q�	Q�	������$�$��
�
�
�b�
!�
!��
������������#�#�%�%�&�&�
�K�	�	�	�
	������$�$��
�X�X�Z�Z��
����������b�l�0�0�2�2�3�3�R�8�8�8�	 �������$�$��
�X�X�Z�Z��
����������b�l�0�0�2�2�3�3�m�_�E�E�E�E�Erc��d�}tj|���d��}|�t	|j��t��dS)Nc��dSrr7rfs rr(zMTestBoundArguments.test_signature_bound_arguments_arguments_type.<locals>.foorgrr&)rJr�rLr-r�r�r�r�s   r�-test_signature_bound_arguments_arguments_typez@TestBoundArguments.test_signature_bound_arguments_arguments_typesM�����
�
�s�
#�
#�
(�
(��
+�
+���
�
�d�2�<�(�(�$�/�/�/�/�/rN)	rGr\r]r�r�r�r�r�r	r7rrr�r��su���������%�%�%�>1�1�1�H�H�H�(F�(F�(F�T0�0�0�0�0rr�c��eZdZd�Zd�ZdS)�TestSignaturePrivateHelpersc��tj|��\}}}|�||��|�||��|�||��dSr)rJ�"_signature_strip_non_python_syntaxr
)rP�input�clean_signature�self_parameter�last_positional_only�computed_clean_signature�computed_self_parameter�computed_last_positional_onlys        r�_strip_non_python_syntaxz4TestSignaturePrivateHelpers._strip_non_python_syntax
sl��

�6�u�=�=�	*� �#�)����1�?�C�C�C����0�.�A�A�A����6�8L�M�M�M�M�Mrc�V�|�dddd��|�dddd��|�dddd��|�dddd��|�d	ddd��|�d
d
dd��|�dddd��dS)NzZ($module, /, path, mode, *, dir_fd=None, effective_ids=False,
       follow_symlinks=True)zO(module, path, mode, *, dir_fd=None, effective_ids=False, follow_symlinks=True)rz($module, word, salt, /)z(module, word, salt)r'z(x, y=None, z=None, /)z(x, y=None, z=None)z!(x,
    y=None,
      z = None  )r�)r	rZs r�&test_signature_strip_non_python_syntaxzBTestSignaturePrivateHelpers.test_signature_strip_non_python_syntaxs���%�%�
E�
=�
�
�
	�	�	�	
�%�%�&�"�
�
�		�	�	�	
�%�%�$�!��
�		�	�	�	
�%�%�!�!���		�	�	�	
�%�%�1�!���		�	�	�	
�%�%�����		�	�	�	
�%�%�����		�	�	�	�	rN)rGr\r]r	r	r7rrr	r	s5������N�N�N�+�+�+�+�+rr	c�^�eZdZeejed��d�����Zd�Zd�Z	dS)�TestSignatureDefinitionsrmc���t��}hd�}||z}dh}||z}dh}||z}hd�}||z}ddh}||z}t��}tt��}t|�����D]�\}	}
t|
��s�t
|
t��r|	|vr|�|	��|	|vr�H|�	|	���5|�
tj|
����ddd��n#1swxYwY��|D]J}	|�	|	���5|�
|
j��ddd��n#1swxYwY�KdS)N>r�r�r!�varsr)�slicer��anext�round>�maxr�r��
breakpoint�__build_class__r[�
__import__)r|)rIr	r�r�r��callabler�r�r�r��assertIsNotNonerJr�r��__text_signature__)rP�no_signature�needs_groups�
needs_null�needs_semantic_update�
needs_varargs�not_converted_yet�types_with_signaturesrr�rSs           r�test_builtins_have_signaturesz6TestSignatureDefinitions.test_builtins_have_signaturesHs0���u�u��0�0�0����$���Y�
��
�"��!(�	���-�-��,�,�,�
��
�%��$�\�2���)�)�� #����
�(�^�^������
�
�+�+�	=�	=�I�D�#��C�=�=�
���#�t�$�$�
'�$�6K�*K�
'�� � ��&�&�&���$�
�����d��+�+�
=�
=��$�$�W�%6�s�%;�%;�<�<�<�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=��!�	:�	:�D����d��+�+�
:�
:��!�!�#�"8�9�9�9�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:����
:�
:�
:�
:��	:�	:s$�(D�D	�D	�5E�E 	�#E 	c�.�d�}d|_tj|��}|�|��|�t|��d��d|_tj|��}|�t|��d��dS)Nc��dSrr7r�s  rr�zNTestSignatureDefinitions.test_python_function_override_signature.<locals>.func�r[rz(($self, a, b=1, *args, c, d=2, **kwargs)z*(self, /, a, b=1, *args, c, d=2, **kwargs)z+($self, a, b=1, /, *args, c, d=2, **kwargs)z*(self, a, b=1, /, *args, c, d=2, **kwargs))r	rJr�r	r
r�)rPr�rqs   r�'test_python_function_override_signaturez@TestSignatureDefinitions.test_python_function_override_signatures���	�	�	�"L������%�%�����S�!�!�!�����S���#O�P�P�P�"O������%�%������S���#O�P�P�P�P�Prc���ddlm}Gd�d|��}|j}|�|d��t	j|��}|�t
|��d��dS)Nr)�BufferedReaderc��eZdZdS)�VTestSignatureDefinitions.test_base_class_have_text_signature.<locals>.MyBufferedReaderNr�r7rr�MyBufferedReaderr+	�s������&�&rr,	z&(raw, buffer_size=DEFAULT_BUFFER_SIZE)z(raw, buffer_size=8192))�test.ann_module7r)	r	r
rJr�r�)rPr)	r,	�text_signaturerqs     r�#test_base_class_have_text_signaturez<TestSignatureDefinitions.test_base_class_have_text_signature�s���3�3�3�3�3�3�	'�	'�	'�	'�	'�~�	'�	'�	'�(�:������)Q�R�R�R��� 0�1�1������S���#<�=�=�=�=�=rN)
rGr\r]rr�rrr$	r'	r/	r7rrr	r	Dsv��������X�_�)�M�O�O�2:�2:�O�O��\�2:�h	Q�	Q�	Q�	>�	>�	>�	>�	>rr	c�*�eZdZd�Zed���ZdS)�NTimesUnwrappablec�"�||_d|_dSr)r��_next)rPr�s  rr�zNTimesUnwrappable.__init__�s�������
�
�
rc��|jdkrtd���|j�t|jdz
��|_|jS)NrzUnwrapped too many timesr&)r�rr3	r1	rZs rrzzNTimesUnwrappable.__wrapped__�sF���6�Q�;�	8��6�7�7�7��:�	7�*�4�6�A�:�6�6�D�J��z�rN)rGr\r]r�r�rzr7rrr1	r1	�s>�������������X���rr1	c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�
TestUnwrapc��d�}tjd���|��}|�tj|��|��dS)Nc��||zSrr7r�s  rr�z(TestUnwrap.test_unwrap_one.<locals>.func�����q�5�Lrr@)r�)r��	lru_cacher-rJ�unwrap)rPr�ris   r�test_unwrap_onezTestUnwrap.test_unwrap_one�sR��	�	�	�1�)�%�b�1�1�1�$�7�7���
�
�g�n�W�-�-�t�4�4�4�4�4rc���d�}|}td��D]}tj|��d���}� |�|j|��|�t
j|��|��dS)Nc��||zSrr7r�s  rr�z,TestUnwrap.test_unwrap_several.<locals>.func�r9	rrc��dSrr7r7rrriz/TestUnwrap.test_unwrap_several.<locals>.wrapper�r�r)r)r�rVrurzr-rJr;	)rPr�ri�__s    r�test_unwrap_severalzTestUnwrap.test_unwrap_several�s���	�	�	�����)�)�	�	�B�
�_�W�
%�
%�
�
�&�
%�
�
�����,�d�3�3�3��
�
�g�n�W�-�-�t�4�4�4�4�4rc���d�}tj|��d���}tj|��d���}d|_tj|d����}|�||��dS)Nc��||zSrr7r�s  r�func1z#TestUnwrap.test_stop.<locals>.func1�r9	rc��dSrr7r7rrrZz#TestUnwrap.test_stop.<locals>.func2�rUrc��dSrr7r7rrriz%TestUnwrap.test_stop.<locals>.wrapper�rUrr&c�"�t|d��S)N�	stop_herer�r�s rr�z&TestUnwrap.test_stop.<locals>.<lambda>�s��7�1�k�3J�3J�r)�stop)r�rVrH	rJr;	r-)rPrD	rZri�	unwrappeds     r�	test_stopzTestUnwrap.test_stop�s���	�	�	�	���	�	�	�	�
 �	�	�	���	�	�	�	�
 �	�	�����N�7�)J�)J�M�M�M�	��
�
�i��'�'�'�'�'rc���d�}||_|�td��5tj|��ddd��n#1swxYwYd�}||_||_|�td��5tj|��ddd��n#1swxYwY|�td��5tj|��ddd��dS#1swxYwYdS)Nc��dSrr7r7rrrD	z$TestUnwrap.test_cycle.<locals>.func1�rgrr�c��dSrr7r7rrrZz$TestUnwrap.test_cycle.<locals>.func2�rgr)rzr�r<rJr;	)rPrD	rZs   r�
test_cyclezTestUnwrap.test_cycle�s������!���
�
#�
#�J��
?�
?�	"�	"��N�5�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�	���!���!���
�
#�
#�J��
?�
?�	"�	"��N�5�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�
�
#�
#�J��
?�
?�	"�	"��N�5�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�	"�	"s5�A�A�A�>B�B#�&B#�C'�'C+�.C+c���d��d�_G�fd�d��}|�tj|������dS)Nc��dSrr7r7rrr�z(TestUnwrap.test_unhashable.<locals>.func�rgrc���eZdZdZ�ZdS)�%TestUnwrap.test_unhashable.<locals>.CN)rGr\r]�__hash__rzrs�rr�rS	�s��������H��K�K�Krr�)rzr�rJr;	)rPr�r�s  @r�test_unhashablezTestUnwrap.test_unhashable�sr���������	�	�	�	�	�	�	�	�	�	�	
���'�.�����-�-�.�.�.�.�.rc���ttj��dz��}|�td��5tj|��ddd��dS#1swxYwYdS)Nr&r�)r1	r��getrecursionlimitr�r<rJr;	)rPrSs  r�test_recursion_limitzTestUnwrap.test_recursion_limit�s����� 5� 7� 7�!� ;�<�<��
�
#�
#�J��
?�
?�	 �	 ��N�3����	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 �	 �	 s�A!�!A%�(A%N)	rGr\r]r<	rA	rK	rO	rU	rX	r7rrr6	r6	�sn������5�5�5�	5�	5�	5�(�(�(�"�"�"�/�/�/� � � � � rr6	c�^�eZdZd�Zd�Zejedud��d���Zd�Z	d�Z
dS)�TestMainc�T�tjd��}tddd��\}}}|������}|�|dd�t
j|�������|�|d��dS)Nr��-mrJrr)�	importlib�
import_moduler�decoder�r
rJrj)rP�module�rcr9�errrgs      r�test_only_sourcezTestMain.test_only_source�s����(��4�4��'��i�(2�4�4���C���
�
���'�'�)�)������s��s��W�%6�v�%>�%>�%I�%I�%K�%K�L�L�L�����c�"�"�"�"�"rc��d�}d|_|�t��5tj|��ddd��dS#1swxYwYdS)Nc��dSrr7r7rrr(z)TestMain.test_custom_getattr.<locals>.foo�r[rr�)r`r�r�rJr�res  r�test_custom_getattrzTestMain.test_custom_getattr�s���	�	�	����
�
�
�y�
)�
)�	#�	#���c�"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	#�	#s�A�A�ANz6threads required to test __qualname__ for source filesc�6�tddd��\}}}|������}|�|dd�t	jt�������|�|d��dS)Nr\	rJz%concurrent.futures:ThreadPoolExecutorrr)rr_	r�r
rJrjr)rPra	r9rb	rgs     r�test_qualname_sourcezTestMain.test_qualname_source�s���(��i�%L�N�N���C���
�
���'�'�)�)������s��s�� �*�+=�>�>�I�I�K�K�	M�	M�	M�����c�"�"�"�"�"rc���tjd��}tddd��\}}}|������}|�|dg��dS)Nr�r\	rJr�z#Can't get info for builtin modules.)r]	r^	rr_	r�r
)rPr`	r9r9rb	rgs      r�
test_builtinszTestMain.test_builtins�sg���(��4�4��+�D�)�,1�3�3���3���
�
���'�'�)�)������!F� G�H�H�H�H�Hrc�z�tjd��}tj��}t	g|�d�d�d�d�R�\}}}|���}|�|j|��|�|j|��|�|j	|��|�
|d��dS)Nr�r\	rJz	--detailsr)r]	r^	r�!optim_args_from_interpreter_flagsrr_	r�rGr1�
__cached__r
)rPr`	rra	r9rb	�outputs       r�test_detailszTestMain.test_detailss����(��4�4���8�:�:��'�A��A�t�A�Y�A�(2�A�4?�A�A�A���C���������
�
�f�o�v�.�.�.��
�
�f�o�v�.�.�.��
�
�f�'��0�0�0�����c�"�"�"�"�"r)rGr\r]rc	rf	r�rrrh	rj	ro	r7rrrZ	rZ	�s�������#�#�#�#�#�#��X�_�'�4�/�D�F�F�#�#�F�F�#�I�I�I�
#�
#�
#�
#�
#rrZ	c�Z�eZdZejd��Zejd��Zd�Zd�ZdS)�
TestReloadz def foo():
    print("Bla")
    z#def foo():
    print("Oh no!")
    c��tj|��}t|d���5}|�|����d��|�d����ddd��dS#1swxYwYdS)NrXrYT)rJrjr[r
r^r�)rPr�r_�
inspected_srcr�s     r�assertInspectEqualzTestReload.assertInspectEquals����)�&�1�1�
�
�$��
)�
)�
)�	�S�������
�
�%�%�d�+�+��(�(��.�.�
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�AB�B�	Bc�p�td|j��5\}}tj|��}|�||��t|dd���5}|�|j��ddd��n#1swxYwY|�||��ddd��dS#1swxYwYdS)N�
reload_bugr�rXrY)r�
src_beforer]	r^	rt	r[r��	src_after)rPr�r�r`	r�s     r�test_getsource_reloadz TestReload.test_getsource_reload#s0��
�l�D�O�
<�
<�	2���t��,�T�2�2�F��#�#�D�&�1�1�1��d�C�'�2�2�2�
*�c��	�	�$�.�)�)�)�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*��#�#�D�&�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�	2�	2s6�AB+�A=�1B+�=B	�B+�B	�B+�+B/�2B/N)	rGr\r]�textwrap�dedentrw	rx	rt	ry	r7rrrq	rq	sd������ ���"�	�	�J�
 ���!�	�	�I�
���2�2�2�2�2rrq	�__main__)jr�r�r�r�r]	rJrtr�r�r+�os.pathrrqr�rr�r�rz	r�r��
unittest.mockr��concurrent.futuresr�ImportError�test.supportrrr�test.support.import_helperr	�test.support.os_helperr
�test.support.script_helperrrrZr
r{rr�rrrr�test.test_importrr1r)r�rr�r�r5r?rdr�rrArmrorsrLrurwrrVrmrsr
rrr+rOr^r�r�rrr!r#r�r�r�r
rErNrVrrGr_rar]rdrfrrr�r�r	r	r1	r6	rZ	rq	rG�mainr7rr�<module>r�	s
��������������������������	�	�	�	�����	�	�	�	�
�
�
�
�����������
�
�
�
�
�
�
�
�
�
�
�
��������������������������5�5�5�5�5�5�5��������������&�%�%�%�%�%�8�8�8�8�8�8�8�8�4�4�4�4�4�4�)�)�)�)�)�)�N�N�N�N�N�N�N�N�&�&�&�&�&�&�(�(�(�(�(�(�������*�*�*�*�*�*�/�/�/�/�/�/�1�1�1�1�1�1�-�-�-�-�-�-��,��
���J�����c�r�c�l�G��(�7�
�
��(�(�(��c�m�o�o�����$	�	�	�$M�#R�#R�#T�#T� �M�M�M�M�M��"�M�M�M�0����������������hA�hA�hA�hA�hA�Z�hA�hA�hA�VB>�B>�B>�B>�B>�:�B>�B>�B>�H8�8�8�8�8�H�%�8�8�8� 7�7�7�7�7�7�7�7�
R:�R:�R:�R:�R:�}�R:�R:�R:�h	E�	E�	E�	E�	E�x�0�	E�	E�	E�0�0�0�0�0�
�0�0�0�
7�
7�
7�
7�
7�]�
7�
7�
7�(7�(7�(7�(7�(7�M�(7�(7�(7�T
C�
C�
C�
C�
C�
�
C�
C�
C�nO�nO�nO�nO�nO�]�nO�nO�nO�`:�:�:�:�:�
�:�:�:�&7�7�7�7�7�F�7�7�7�9�9�9�9�9�f�9�9�9�>�>�>�vn�vn�vn�vn�vn�h�/�vn�vn�vn�r5>�5>�5>�5>�5>�8�,�5>�5>�5>�p�f�h�h��w>�w>�w>�w>�w>��*�w>�w>�w>�tF+�F+�F+�F+�F+�x�0�F+�F+�F+�P � � � � �5� � � �:�:�:�:�:�$:�:�:�:�(@)�@)�@)�@)�@)��)�@)�@)�@)�D`H�`H�`H�`H�`H�H�-�`H�`H�`H�F=G�=G�=G�=G�=G�H�-�=G�=G�=G�@	�	�	�	�	�'�#�	�	�	�
	�	�	�	�	�'�#�	�	�	�o;�o;�o;�o;�o;�(�+�o;�o;�o;�d)O�O�O�O�O�(�+�O�O�O�dAE�AE�AE�AE�AE��)�AE�AE�AE�Hd0�d0�d0�d0�d0��*�d0�d0�d0�L6�6�6�6�6�(�"3�6�6�6�pO>�O>�O>�O>�O>�x�0�O>�O>�O>�d��������: �: �: �: �: ��"�: �: �: �x-#�-#�-#�-#�-#�x� �-#�-#�-#�`2�2�2�2�2��"�2�2�2�<�z����H�M�O�O�O�O�O��s�A�A)�(A)