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

�Ke�����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�d5eB��ZLGd6�d7eM��ZNGd8�d9eM��ZOd:�ZPGd;�d<ej9��ZQGd=�d>ej9��ZRGd?�d@ej9��ZSeM��ZTGdA�dBej9��ZUGdC�dDej9��ZVGdE�dFeV��ZWGdG�dHeW��ZXGdI�dJej9��ZYGdK�dLej9��ZZGdM�dNej9��Z[GdO�dPej\��Z]GdQ�dRej^��Z_GdS�dTej9��Z`GdU�dVej9��ZaGdW�dXej9��ZbGdY�dZej9��ZcGd[�d\ej9��ZdGd]�d^ej9��ZeGd_�d`��ZfGda�dbej9��ZgGdc�ddej9��ZhGde�dfej9��Ziejdgkrejk��dSdS)h�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  �;/usr/local/apps/python3/lib/python3.11/test/test_inspect.py�reviser>s���X��� �4�'�'�c#�TK�gd�}tddt|��z��D]�}g}d}tt|����D]%}|||zzr|�||���&dd�|��zdz}i}t	|||��|dV���dS)	z�
    Yields a whole bunch of functions with only keyword-only parameters,
    where those parameters are always in lexicographically sorted order.
    )�a�barr�delta�ephraim�magical�yoyo�z��zdef foo(*, z, z): pass�fooN)�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�8��G�6�6�6��G�7�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��eZdZdZddd�ZdS)�SlotUserzDocstrings for __slots__�measured in kilowatts�measured in kilometers)�power�distanceN)rGr\r]�__doc__r�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  rrz<TestRetrievingSourceCode.test_getclasses.<locals>.<listcomp>�r�rT)rJr�r{r_r
rvrwrxr�rz�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{rvr��
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�rr�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)z4doctest monkeypatches linecache to enable inspection)z<test>zdef x(): pass
Nc�T��|�kr��d���S�||��S)NT)�keepends)�
splitlines)r�module_globalsr��getlinesr_s  ���r�monkeyzHTestRetrievingSourceCode.test_proceed_with_fake_filename.<locals>.monkey�s5����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������0�
��F��%��	:�	:�	:�	:�	:�	:�	:�	:�
$�	��	*��B�����X�.�.��3�3�3���b��g�&�&�&�!)�I������I��)�)�)�)s�;A3�3Bc�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�rrr7rrrtrt�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�*�*�*�":�:�:�:�:rrtc��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{rzrZs r�test_toplevel_classz%TestBlockComments.test_toplevel_class�s#�����s�0�"�c�:�:�:�:�:rc�R�|�tjjdd��dS)N�c�h)rkr{rzrPrZs r�test_class_methodz#TestBlockComments.test_class_method�s&�����s�0�2�B��<�<�<�<�<rc�R�|�tjjdd��dS)N�m�p)rkr{rz�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��eZdZeZd�ZdS)�TestComplexDecoratorc�H�|�|jjdd��dS)Nii)rkr]�complex_decoratedrZs r�test_parens_in_decoratorz-TestComplexDecorator.test_parens_in_decorator|s&�����t�0�B�C��M�M�M�M�MrN)rGr\r]r�r]rr7rrrrys-�������L�N�N�N�N�Nrrc�$�eZdZdZd�Zd�Zd�ZdS)�_BrokenDataDescriptorz2
    A broken data descriptor. See bug #1785.
    c� �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]rrrrr�r7rrrrsK��������7�7�7����7�7�7�7�7rrc��eZdZdZd�Zd�ZdS)�_BrokenMethodDescriptorz4
    A broken method descriptor. See bug #1785.
    c� �td����Nzbroken method descriptorr�rs rrz_BrokenMethodDescriptor.__get__�����7�8�8�8rc� �td���rr�rs rr�z#_BrokenMethodDescriptor.__getattr__�rrN)rGr\r]rrrr�r7rrrr�s<��������9�9�9�9�9�9�9�9rrc�>�d�tj|��D��S)Nc�"�g|]}|dd���
S�Nr>r7)r~�ts  rrz!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�r1�r�rr�c��eZdZdS)�4TestClassesAndFunctions.test_newstyle_mro.<locals>.DNr�r7rr�Dr3�r�rr4)r�rJ�getmror
)rPr,r/r�r4�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&)r=rArB)rC�arg)rA�rr�rrOr�rPrr)r=r>rA�r&r'r>r r�)r�rP)r?rArB)	rHr��	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{rrrHr�)rPrYs  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__rH)rPr_�
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�returnrYc��dSrr7�rs rr_zITestClassesAndFunctions.test_getfullargspec_signature_annos.<locals>.test�����rc��dSrr7r7rrr_zITestClassesAndFunctions.test_getfullargspec_signature_annos.<locals>.test�rlr)rrrrirY)rJr:r
�__annotations__�annotations)rPr_�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)rtru)r<rArB)rH�_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_defaultsrJr:r
rD)rPr�builtinrps    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)r�docstring_no_signaturer�r�rJr:)rPrr�s   r�-test_getfullargspec_builtin_func_no_signaturezETestClassesAndFunctions.test_getfullargspec_builtin_func_no_signatures���	�����2��
�
�
�y�
)�
)�	,�	,��"�7�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	,�	,s�A�A�Ac�|�t��D]d}tj|��}t|j��}t|��}|�|��|�||���etjt��}t|j��}|�|t��dSr)
r5rJr:r�rE�sortedrFr
r?� unsorted_keyword_only_parameters�rPr��	signaturer��sorted_ls     r�8test_getfullargspec_definition_order_preserved_on_kwonlyzPTestClassesAndFunctions.test_getfullargspec_definition_order_preserved_on_kwonly
s���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.srlrc��dSrr7r�s rrz;TestClassesAndFunctions.test_classify_newstyle.<locals>.A.crlrc��dSrr7rZs r�getpz>TestClassesAndFunctions.test_classify_newstyle.<locals>.A.getprlrc��dSrr7rZs rr�z;TestClassesAndFunctions.test_classify_newstyle.<locals>.A.m!rlrc��dSrr7rZs r�m1z<TestClassesAndFunctions.test_classify_newstyle.<locals>.A.m1#rlr�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.m<rlrN)rGr\r]r�r7rrr/r�:s����������rr/c��eZdZd�Zd�ZdS)�9TestClassesAndFunctions.test_classify_newstyle.<locals>.Cc��dSrr7rZs rr�z;TestClassesAndFunctions.test_classify_newstyle.<locals>.C.mKrlrc��dSrr7rZs rrz;TestClassesAndFunctions.test_classify_newstyle.<locals>.C.cLrlrN)rGr\r]r�rr7rrr�r�Is"�������������rr�c��eZdZd�ZdS)�9TestClassesAndFunctions.test_classify_newstyle.<locals>.Dc��dSrr7rZs rr�z<TestClassesAndFunctions.test_classify_newstyle.<locals>.D.m1ZrlrN)rGr\r]r�r7rrr4r�Xs����������rr4)r�r&r�)rPr,�attrsr/r�r4s      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_typesfs����%�%�	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)NrYrr�r�r��rPr�rs  �rr�zUTestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.Meta.__getattr__|s)����5�=�=�!�6��w�w�*�*�4�0�0�0r�rGr\r]r�r	r
s@r�Metar�{�8�������
1�
1�
1�
1�
1�
1�
1�
1�
1rr�c�.�eZdZejd���ZdS)�GTestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.VAc��dS)Nrr7rZs rrYzKTestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.VA.ham�����vrN)rGr\r]r��DynamicClassAttributerYr7rr�VAr���1������
�
(�
�
�)�
(�
�
�
rr�r�rYr�rr)r�rJ�	Attributer�r�r%)rPr�r��should_find_dca�should_find_gas     r�#test_classify_DynamicClassAttributez;TestClassesAndFunctions.test_classify_DynamicClassAttributezs���	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�
1rrc�$��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�rrrc�,���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�rrs ��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�)rrrs@��r�Meta3r	�sW��������
?�
?�
?�
?�
?�
?�
1�
1�
1�
1�
1�
1�
1�
1�
1rr
c��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�)rPr
rr�should_find1�should_find2�should_find3�cca�sfrrs         @@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��#������
<�
<�
<�
<�
<rr"c��eZdZdS)�KTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.CNr�r7rrr�r%�rrr�r�c��g|]
}|d��S�rr7�r~rs  rrzTTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.<listcomp>�s��?�?�?�!��1��?�?�?rr)r�rJr%r��rPr"r�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]rr�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�Emptyr0�s�������rr1c�j��dt|��vrt�|j��rdS�|��S)NrGF)r�r�rG)r�r1�preds ��rrzZTestClassesAndFunctions.test_getmembers_descriptors.<locals>.pred_wrapper.<locals>.wrapped�s7�����Q���'�'�G�E�1�:�,F�,F�'� �5��t�A�w�w�r�r�)r3rr1s` @r�pred_wrapperzITestClassesAndFunctions.test_getmembers_descriptors.<locals>.pred_wrapper�sS����
�
�
�
�
��
�
�
�
�
�
�
�
�
��Nrr�r�c��eZdZdS)�>TestClassesAndFunctions.test_getmembers_descriptors.<locals>.BNr�r7rrr/r7�rrr/)r�rJ�ismethoddescriptorr�r
r�r�)rPr,r5r8r�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/r<�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@rr"rBr�rr"c�.�eZdZejd���ZdS)�CTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.Ac��dSrqr7rZs rrzHTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.A.eggs
r�rN)rGr\r]r�r�rr7rrr,rFr�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/rIr�rr/)rrD)rrrr�)r�r�rJr�r�)rPr"r,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.eggsrQrN)rGr\r]r�r�r�r�rr7rrr,rOsJ������
�
*�
*��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__+r rNr!r7rrr"rZ*r#rr"c��eZdZdS)�ATestClassesAndFunctions.test_getmembers_with_buggy_dir.<locals>.CNr�r7rrr�r]-rrr�r�c��g|]
}|d��Sr'r7r(s  rrzJTestClassesAndFunctions.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>.foo3rlrr�r(r�T��eval_strrL�rc�globals�rr�ri�rr�rrir��MyClass�rr�r�rcFc�F��tj����fd���}|S)Nc�(���|dz|dz��Sr#r7�rr�r�s  �r�wrapperziTestClassesAndFunctions.test_get_annotations_with_stock_annotations.<locals>.times_three.<locals>.wrapperY�����r�!�A�#�q��s�|�|�#r�r�r[�r�rns` r�times_threezXTestClassesAndFunctions.test_get_annotations_with_stock_annotations.<locals>.times_threeX�6���
�_�R�
 �
 �
$�
$�
$�
$�!�
 �
$��Nrr&r�r>�xxx)r�r�r
rJ�get_annotationsrnrLrrhr2�	function2�	function3�UnannotatedClass�unannotated_function�assertIsNot�__globals__)rPr(�isarrrs     r�+test_get_annotations_with_stock_annotationszCTestClassesAndFunctions.test_get_annotations_with_stock_annotations2s���#�#�#��#�#�#�#�����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�rhrf�'str'rg�'int'�	'MyClass'riTrjFc�F��tj����fd���}|S)Nc�(���|dz|dz��Sr#r7rms  �rrnznTestClassesAndFunctions.test_get_annotations_with_stringized_annotations.<locals>.times_three.<locals>.wrapper�rorrprqs` rrrz]TestClassesAndFunctions.test_get_annotations_with_stringized_annotations.<locals>.times_three�rsrr&r�r>rt�mytype)rr
rJrurhr2rvrwrxryr�r�rrzr{�MyClassWithLocalAnnotations)rPr|�isa2rrrs     r�0test_get_annotations_with_stringized_annotationszHTestClassesAndFunctions.test_get_annotations_with_stringized_annotationses��,������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]r8rHrUr\rgrqr�rrr|rr�r�r�r�r�r�r�r�r�rr*r9r?rLrWr_r}r�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�ZdS)�TestFormatAnnotationc��ddlm}m}|�t	j|��d��|�t	j|��d��dS)Nr)rG�ann1zUnion[List[str], int]z%Union[List[testModule.typing.A], int])�test.typinganndata.ann_module9rGr�r
rJ�formatannotation)rPrGr�s   r�test_typing_replacementz,TestFormatAnnotation.test_typing_replacement�sd��<�<�<�<�<�<�<�<�����1�#�6�6�8O�P�P�P�����1�$�7�7�9`�a�a�a�a�arN)rGr\r]r�r7rrr�r��s(������b�b�b�b�brr�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__�rlrr�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__�rlrN�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__�rlrN)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�rlrc��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_namesr6s        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��rNr>r7rrr�r��s#������
�
�
�
�
rr�r�r�r�r�)r�r�r�rJr�r
r�rP)rPr�r�r�r�r�r�r6s        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_varss���)�!�,�,�6�6rc����fd�}|S)Nc����|zSrr7�rDr�s �r�addzFTestGetClosureVars.test_nonlocal_vars.<locals>.make_adder.<locals>.adds����1�u�rr7)r�r�s` r�
make_adderz9TestGetClosureVars.test_nonlocal_vars.<locals>.make_adder
s!���
�
�
�
�
��Jrc������fd�S)Nc�����|��Srr7)rKrJr�s ��rr�zFTestGetClosureVars.test_nonlocal_vars.<locals>.curry.<locals>.<lambda>s�����T�4� 0� 0�rr7)r�rJs``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>.gs�����r�+�+�+�+�,�,�,r)�g_ref)r�rQ�Ys` �rr�z0TestGetClosureVars.test_nonlocal_vars.<locals>.Ys1����
-�
-�
-�
-�
-��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�)rJr�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_varss{�����	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>.foo,rlrc��dS�NTr7r7rrr�z>TestGetClosureVars.test_getclosurevars_empty.<locals>.<lambda>.s���r)rJr�rIr
r�)rPr(�_emptys   r�test_getclosurevars_emptyz,TestGetClosureVars.test_getclosurevars_empty+sm������$�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�Tr2r�rr	r&)r�r�rJr�r�)rPr	s  r�test_getclosurevars_errorz,TestGetClosureVars.test_getclosurevars_error1sj���
�
�
�
�
�
�
����)�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_globals7s'��)��
���T�2�����#�w��{�rc���|���\}}|�dd��tjiidtidh��}|�tj|��|��dS)Nr�r�r�)r�poprJr�r�r
r��rPrPrr6s    r�test_builtins_fallbackz)TestGetClosureVars.test_builtins_fallback=sn���%�%�'�'���2�
���~�t�$�$�$��&�r�2������I�I������/��2�2�H�=�=�=�=�=rc���|���\}}ddi|d<tjiiddidh��}|�tj|��|��dS)Nr�r&r�r�)rrJr�r
r�rs    r�test_builtins_as_dictz(TestGetClosureVars.test_builtins_as_dictCsh���%�%�'�'���2�$�Q�Z��>���&�r�2��q�z�G�9�E�E������/��2�2�H�=�=�=�=�=rc���|���\}}t|d<tjiidtjidh��}|�tj|��|��dS)Nr�r�r�)rr�rJr�r�r
r�rs    r�test_builtins_as_modulez*TestGetClosureVars.test_builtins_as_moduleIsg���%�%�'�'���2���>���&�r�2��r�w�/?�'��K�K������/��2�2�H�=�=�=�=�=rN)
rGr\r]r�r�r�r�rr
rrrrr7rrr�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.assertEqualCallArgsRsh���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)NrrzException not raisedr)r�rE�failrr-r�r
r�)rPr��call_param_stringrr��ex1�ex2s       r�assertEqualExceptionz-TestGetcallargsFunctions.assertEqualExceptionYs7���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)z+Create a function that returns its locals()zlambda %s: locals())rE)rPr�r
s   r�makeCallablez%TestGetcallargsFunctions.makeCallablels��$���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)�r'r�rPrPs  r�
test_plainz#TestGetcallargsFunctions.test_plainqs������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, *cr*r+�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)r'rr%r.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, br)r�r�z1,x=1r,zb=3r1z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=3r6z1, 2z1, 2, a=1, b=2z	*, a, b=0c��dSrr7rks r�f5z0TestGetcallargsFunctions.test_errors.<locals>.f5�rlrzmissing 1 required keyword-onlyc��dSrr7ris   r�f6z0TestGetcallargsFunctions.test_errors.<locals>.f6r`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 �rC)	r'r%r�r�rJ�getcallargs�
ValueErrorrb�VAR_KEYWORD)	rP�f0�f1�f2rP�f3�f4r?rAs	         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]rr%r'r/r2r4r7r:r<rOr7rrrrPs�������!�!�!�!�����&&�&�&�
H�H�H�.H�H�H�
M�
M�
M�M�M�M�0�0�0� /�/�/�0G+�G+�G+�G+�G+rrc�$��eZdZd�Z�fd�Z�xZS)�TestGetcallargsMethodsc�X�Gd�dt��}||_|��|_dS)Nc��eZdZdS)�)TestGetcallargsMethods.setUp.<locals>.FooNr�r7rr�FoorTrrrU)r�r��inst)rPrUs  rrazTestGetcallargsMethods.setUpsD��	�	�	�	�	�&�	�	�	�����C�E�E��	�	�	rc���tt|��j}|d|z��|j_|jjS)Nzself, )r�rQr'r�r�rV)rPr��mkrs   �rr'z#TestGetcallargsMethods.makeCallable s9���
�)�4�
0�
0�
=���"�X�	�1�2�2�����y��r)rGr\r]rar'r	r
s@rrQrQsG���������� � � � � � � � � rrQc�>��eZdZ�fd�Zd�fd�	Zd�fd�	Zdd�Z�xZS)�TestGetcallargsUnboundMethodsc�l��tt|���|��|jjSr)r�rZr'r�r�)rPr�rs  �rr'z*TestGetcallargsUnboundMethods.makeCallable(s,���
�+�T�2�2�?�?�	�J�J�J��x��rNc�h��tt|��j|�|||���Sr)r�rZr�_getAssertEqualParams�rPr�rrrs    �rrz1TestGetcallargsUnboundMethods.assertEqualCallArgs,s8���M�u�2�D�9�9�M�
�
'�
'��.@�$�
G�
G�I�	Irc�h��tt|��j|�|||���Sr)r�rZr%r]r^s    �rr%z2TestGetcallargsUnboundMethods.assertEqualException0s8���N�u�2�D�9�9�N�
�
'�
'��.@�$�
G�
G�I�	Irc�B�t|pi|j���}|d|z|fS)N)rVzinst,)r�rV)rPr�rrs    rr]z3TestGetcallargsUnboundMethods._getAssertEqualParams4s-���D�J�B�T�Y�/�/�/���g� 2�2�D�9�9rr)rGr\r]r'rr%r]r	r
s@rrZrZ&s�������������I�I�I�I�I�I�I�I�I�I�I�I�:�:�:�:�:�:�:�:rrZc��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�Thingre=�����������A�A�Arrgr�rDr>)r�r
rJrTr�r�r��rPrg�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>.ThingNrfr7rrrgrnIrhrrgc��eZdZdS)�4TestGetattrStatic.test_inherited.<locals>.OtherThingNr�r7rr�
OtherThingrpKrrrqr��r�r
rJrTr�)rPrgrq�	somethings    r�test_inheritedz TestGetattrStatic.test_inheritedHs���	�	�	�	�	�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__Ts
������rN)rGr\r]r�r�r7rrrgrwRs(�������A�
�
�
�
�
rrgr>r�r'rrris   r�test_instance_attrz$TestGetattrStatic.test_instance_attrQs���	�	�	�	�	�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.x]s��$�%B�C�C�CrN)rGr\r]r�r�r7rrrgr}\s2������
�
D�
D��X�
D�
D�
Drrgr�rrris   rr�zTestGetattrStatic.test_property[sl��	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���rr�)r9s rrzSTestGetattrStatic.test_descriptor_raises_AttributeError.<locals>.descriptor.__get__es��$�%B�C�C�CrNr�r7rr�
descriptorr�ds(������
D�
D�
D�
D�
Drr�c���eZdZ�ZdS)�FTestGetattrStatic.test_descriptor_raises_AttributeError.<locals>.ThingN�rGr\r]r�)�descs�rrgr�hs��������A�A�Arrgr�)r�r
rJrT)rPr�rgrjr�s    @r�%test_descriptor_raises_AttributeErrorz7TestGetattrStatic.test_descriptor_raises_AttributeErrorcs����	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>.ThingNrfr7rrrgr�nrhrrgr�rr�rPrgs  r�test_classAttributez%TestGetattrStatic.test_classAttributemsY��	�	�	�	�	�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.xus	���w�rN)rGr\r]r�r�r�r�r�r7rrrgr�ts6������
�
(�
�
�)�
(�
�����B�B�Brrgr�)r�r
rJrTr�r�s  r�test_classVirtualAttributez,TestGetattrStatic.test_classVirtualAttributess^��	�	�	�	�	�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>.ThingNrfr7rrrgr�}rhrrgc��eZdZdS)�CTestGetattrStatic.test_inherited_classattribute.<locals>.OtherThingNr�r7rrrqr�rrrqr�rr�rPrgrqs   r�test_inherited_classattributez/TestGetattrStatic.test_inherited_classattribute|s���	�	�	�	�	�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�r7rrrgr��s/�������A���I�
�
�
�
�
rrgr�rDr rrris   r�
test_slotszTestGetattrStatic.test_slots�s���	�	�	�	�	�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�r7rrrgr��rrrgr�r�r(c��eZdZdS)�-TestGetattrStatic.test_metaclass.<locals>.subNr�r7rr�subr��rrr�c��eZdZdZdS)�4TestGetattrStatic.test_metaclass.<locals>.OtherThingr>Nr�r7rrrqr����������A�A�Arrqc��eZdZdS)�9TestGetattrStatic.test_metaclass.<locals>.OtherOtherThingNr�r7rr�OtherOtherThingr��rrr�r�r>�r�r�r
rJrT)rPr�rgr�rqr�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
rJrT�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
rJrTr�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�r7rrrgr��s*��������I�
�
�
�
�
rrgc��eZdZdS)�:TestGetattrStatic.test_inherited_slots.<locals>.OtherThingNr�r7rrrqr��rrrqr�rrr�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��dSr#r7�rP�instance�owners   rrz=TestGetattrStatic.test_descriptor.<locals>.descriptor.__get__�����qrNr�r7rrr�r���#������
�
�
�
�
rr�c�$��eZdZ���ZdS)�.TestGetattrStatic.test_descriptor.<locals>.FooN�rGr\r]rO�r�s�rrUr�����������
���A�A�ArrUr&rOc��dSrr7)r�r/�vs   rr�z3TestGetattrStatic.test_descriptor.<locals>.<lambda>�s��T�r)r�r�r
rJrTr)rPrUr(r�s   @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��dSr#r7r�s   rrzLTestGetattrStatic.test_metaclass_with_descriptor.<locals>.descriptor.__get__�r�rNr�r7rrr�r��r�rr�c�$��eZdZ���ZdS)�>TestGetattrStatic.test_metaclass_with_descriptor.<locals>.metaNr�r�s�rr�r��r�rr�c��eZdZdS)�?TestGetattrStatic.test_metaclass_with_descriptor.<locals>.ThingNr�r7rrrgr��rrrgr�rO)r�r�r
rJrTr�)rPr�rgr�s   @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
rJrTrOr�)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��tfSrr4rZs 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�rPr_s �rr�z=TestGetattrStatic.test_dict_as_property.<locals>.Foo.__dict__�s���"����	rN)rGr\r]rr�r��r_s�rrUr��s=��������A�
�
�
�
�
��X�
�
�
rrUr rr>)r�r�rr
rJrTrO)rPrUr(r_s   @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�keyrDrr_s   ��rr�z=TestGetattrStatic.test_custom_object_dict.<locals>.Custom.gets(���"��������C��)�)�)�)�)rr)rGr\r]r�r	)rr_s@�r�Customr�
sC��������
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*rr�c��eZdZdZdS)�6TestGetattrStatic.test_custom_object_dict.<locals>.Foor>N)rGr\r]rr7rrrUrr�rrUrr>)r�r�r�r�r
rJrTrO)rPr�rUr(r_s    @r�test_custom_object_dictz)TestGetattrStatic.test_custom_object_dicts���������	*�	*�	*�	*�	*�	*�	*�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�rr�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�r7rrrgr	s(�������H�
�
�
�
�
rrgr�rrr�)r�r
rJrTrOr�)rPr�rgr�s    r�test_metaclass_dict_as_propertyz1TestGetattrStatic.test_metaclass_dict_as_propertys���	%�	%�	%�	%�	%�4�	%�	%�	%�
	�	�	�	�	�d�	�	�	�	��5�7�7������/��&�A�A�2�F�F�F������(�(�(�(�(rc��t��}|�tjtd|��|��dS)N�version)r�rzrJrTr�)rP�sentinels  r�test_modulezTestGetattrStatic.test_module&sA���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�� $��
���}�}�}�$rNrr7rr�MetaMetar,s-������
�
%�
%��X�
%�
%�
%rrc��eZdZdZdS)�STestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.MetaFN)rGr\r]r�r7rrr�r2s�������H�H�Hrr�r�c��eZdZdS)�TTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.ThingNr�r7rrrgr5rrrgrr)r�r�r�rJrTrOr�)rPrr�rgs    r�3test_metaclass_with_metaclass_with_dict_as_propertyzETestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property+s&��	%�	%�	%�	%�	%�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]rkrtrzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr
rrr7rrrbrb: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�&�&�&� &�&�&� )�)�)� #�#�#�
)�)�)�)�)rrbc�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_generator?s0������(�(�
�
�������
�
r)�	generator)rPr#s  rrazTestGetGeneratorState.setUp>s'��	�	�	�*�)�+�+����rc�4�tj|j��Sr)rJ�getgeneratorstater$rZs r�_generatorstatez%TestGetGeneratorState._generatorstateD����(���8�8�8rc�j�|�|���tj��dSr)r
r'rJ�GEN_CREATEDrZs r�test_createdz"TestGetGeneratorState.test_createdGs-������-�-�/�/��1D�E�E�E�E�Erc��t|j��|�|���tj��dSr)�nextr$r
r'rJ�
GEN_SUSPENDEDrZs r�test_suspendedz$TestGetGeneratorState.test_suspendedJs=���T�^��������-�-�/�/��1F�G�G�G�G�Grc�~�|jD]}�|�|���tj��dSr)r$r
r'rJ�
GEN_CLOSEDrls  r�test_closed_after_exhaustionz2TestGetGeneratorState.test_closed_after_exhaustionNsA����	�	�A������-�-�/�/��1C�D�D�D�D�Drc��|�t��5|j�t��ddd��n#1swxYwY|�|���tj��dSr)r�rr$r8r
r'rJr1rZs r�%test_closed_after_immediate_exceptionz;TestGetGeneratorState.test_closed_after_immediate_exceptionSs���
�
�
�|�
,�
,�	/�	/��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
r'rJ�GEN_RUNNING)r"rPs �r�running_check_generatorzCTestGetGeneratorState.test_running.<locals>.running_check_generator]s��������(�(�
N�
N��� � ��!5�!5�!7�!7��9L�M�M�M������ � ��!5�!5�!7�!7��9L�M�M�M�M�
N�
Nr)r$r-)rPr9s` r�test_runningz"TestGetGeneratorState.test_runningXsY���
	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_debugginghsr��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)NrNr>r$r7)�lstrr�r�rs     r�eachz;TestGetGeneratorState.test_getgeneratorlocals.<locals>.eachqs=�����A��
�
����6�6��A������
�
rrN)rrDr&)rrDr�r�r'r>r$)rrDr�r�rr�r
rJ�getgeneratorlocalsr-�
StopIteration)rPrE�numberss   r�test_getgeneratorlocalsz-TestGetGeneratorState.test_getgeneratorlocalsps���	�	�	�	��$�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�GrrF)rPrMr�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��dSrr7r�s rr�zETestGetGeneratorState.test_getgeneratorlocals_error.<locals>.<lambda>�s��4�r)r'r>)r�r�rJrGrIrZs 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]rar'r+r/r2r4r:rArJrNrQr7rrrr<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��dSr rkr!s r�number_coroutinez5TestGetCoroutineState.setUp.<locals>.number_coroutine�s0������(�(�
�
�������
�
rc��,�K�����d{V��dSrr7)rVs�r�	coroutinez.TestGetCoroutineState.setUp.<locals>.coroutine�s.�����"�"�$�$�$�$�$�$�$�$�$�$�$r)r�rX)rPrXrVs  @rrazTestGetCoroutineState.setUp�sH���	��	�	�
��	�	%�	%�	%�	%�	%�"�������rc�8�|j���dSr)rXr�rZs rrzTestGetCoroutineState.tearDown�s����������rc�4�tj|j��Sr)rJ�getcoroutinestaterXrZs r�_coroutinestatez%TestGetCoroutineState._coroutinestate�r(rc�j�|�|���tj��dSr)r
r\rJ�CORO_CREATEDrZs rr+z"TestGetCoroutineState.test_created�s-������-�-�/�/��1E�F�F�F�F�Frc��|j�d��|�|���tj��dSr)rX�sendr
r\rJ�CORO_SUSPENDEDrZs rr/z$TestGetCoroutineState.test_suspended�sC������D�!�!�!�����-�-�/�/��1G�H�H�H�H�Hrc���		|j�d��n#t$rYnwxYw�-|�|���t
j��dSr)rXr`rHr
r\rJ�CORO_CLOSEDrZs rr2z2TestGetCoroutineState.test_closed_after_exhaustion�sw��	�
���#�#�D�)�)�)�)�� �
�
�
���
����	�	
����-�-�/�/��1D�E�E�E�E�Es��
+�+c��|�t��5|j�t��ddd��n#1swxYwY|�|���tj��dSr)r�rrXr8r
r\rJrcrZs rr4z;TestGetCoroutineState.test_closed_after_immediate_exception�s���
�
�
�|�
,�
,�	/�	/��N� � ��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�����-�-�/�/��1D�E�E�E�E�Er5c���d���}|D]]}tt|��}|�|t	|����|�|t|�����^dS)Nz4CORO_CREATED CORO_RUNNING CORO_SUSPENDED CORO_CLOSEDr<r>s    rrAz)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�rhs  �rr�z;TestGetCoroutineState.test_getcoroutinelocals.<locals>.func�s!������A��M�M�M�M�M�M�M�M�Mr)rrhrr)rrhr�r)r�rXr
rJ�getcoroutinelocalsr`)rPr�r�rhs   @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]rarr\r+r/r2r4rArkr7rrrSrS�s�������%�%�%����9�9�9�G�G�G�I�I�I�F�F�F�F�F�F�
,�,�,�G�G�G�G�GrrSc��eZdZdS)�MySignatureNr�r7rrrmrm��������	�Drrmc��eZdZdS)�MyParameterNr�r7rrrprp�rnrrpc�H�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-d(�Z.d)�Z/ejed
��d*���Z0d+�Z1d,�Z2d-�Z3d.�Z4d/�Z5d0S)1�TestSignatureObjectc��tj|fi|��}td�|j���D����|j|jurdn|jfS)Nc3��K�|]]}|j|j|jurdn|j|j|jurdn|jt	|j�����fV��^dS).N)r�rD�empty�
annotationr�rCr�)r~�params  r�	<genexpr>z0TestSignatureObject.signature.<locals>.<genexpr>�s�����J�J�
).��z�$�}���;�;�����$�/�5�;�>�>���=B�=M��5�:���,�,�.�.�	0�J�J�J�J�J�Jr.)rJr��tupler.�values�return_annotationru)r��kw�sigs   rr�zTestSignatureObject.signature�s������+�+��+�+���J�J�
25��1F�1F�1H�1H�J�J�J�J�J��-���:�:���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       rr_z7TestSignatureObject.test_signature_object.<locals>.test�r`rr�rFr�r�r�rr�rzwrong parameter order�r�zduplicate parameter namezfollows default argumentz
<Signaturez(po, pk)r�r�)rJrdrbr
r�r=r.r��replacercr�rHrFr�)
rP�S�Pr_r}r�r�r�r�rr�r�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&rir�rYc��dSrr7�rr�rr|s    rr(z=TestSignatureObject.test_signature_object_pickle.<locals>.foo)	rlrrkF)�
pickle_ver�subclassr%)r�rC)r.r{T)r�r�rJr�r)�pickle�HIGHEST_PROTOCOL�subTest�loads�dumpsr
rprbrc�collections�OrderedDictr.rmr�rzr{rFr�)	rPr(�foo_partialr}�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��dSrr7rks rr_z=TestSignatureObject.test_signature_immutability.<locals>.testE	r`rr r)rJr�r�r�r(r�r.�rPr_r}s   r�test_signature_immutabilityz/TestSignatureObject.test_signature_immutabilityD	s��	�	�	����%�%��
�
�
�~�
.�
.�	�	��C�G�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�y�
)�
)�	'�	'�"&�C�N�3��	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	's#�A�A
�
A
�+B�B�
Bc�^�d�}|�|�|��d��dS)Nc��dSrr7r7rrr_z9TestSignatureObject.test_signature_on_noarg.<locals>.testP	r`r�r7.�r
r�r�s  r�test_signature_on_noargz+TestSignatureObject.test_signature_on_noargO	s9��	�	�	��������-�-�y�9�9�9�9�9rc�`�dd�}|�|�|��d��dS)Nr�r(rirEc��dSrr7r�s  rr_z9TestSignatureObject.test_signature_on_wargs.<locals>.testU	r`r))�r..�positional_or_keyword)r�.r(r�rE)r�r(rirEr�r�s  r�test_signature_on_wargsz+TestSignatureObject.test_signature_on_wargsT	sK��	�	�	�	��������-�-��	 �	 �	 �	 �	 rc��dtdtdtfd�}|�|�|��ddtdfddtdfftf��dS)Nrr�ric��dSrr7r�s  rr_z;TestSignatureObject.test_signature_on_wkwonly.<locals>.test]	r`r.�keyword_only)�floatr�r�r
r�r�s  r�test_signature_on_wkwonlyz-TestSignatureObject.test_signature_on_wkwonly\	s���	�e�	�s�	�s�	�	�	�	��������-�-���e�^�<���c�>�:�<�� �	!�	!�	!�	!�	!rc��ddd�dddddd	d
tfd�}|�|�|��dd
dddd
dtdffdf��dS)NrrE)rYr�r(rr rr�bazrc��dSrr7)rr�rrrYrrs      rr_z@TestSignatureObject.test_signature_on_complex_args.<locals>.teste	r`rr�)r�rr(r�)r.r �var_positional)rr.r�r�)rYrE.r�.�var_keyword�r)r�r
r�r�s  r�test_signature_on_complex_argsz2TestSignatureObject.test_signature_on_complex_argsd	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_onlyq	r`rc��dSrr7�rrs  r�test_args_kwargs_onlyzNTestSignatureObject.test_signature_without_self.<locals>.test_args_kwargs_onlyt	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_classmethodx	r�rc��dSrr7rs r�test_staticmethodzLTestSignatureObject.test_signature_without_self.<locals>.A.test_staticmethod|	r�rr&N)
rGr\r]r�r�r�r�r��
partialmethodrKrLrMrN)r�r�s��rr,r�w	s��������
�
�
��[�
��
�
��\�
�)��(�*:�Q�?�?�B�(��(�.�1�=�=�B�(��(�*;�a�@�@�B�(��(�*?��C�C�B�B�Brr,�)�r..r�.�)r��r..r�.)r
r�rKrLrMrN)rPr,r�r�s  @@r�test_signature_without_selfz/TestSignatureObject.test_signature_without_selfp	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�	Hrrrc�����ddl}�fd�}�fd�}||j����fd�}��|d��d����|d��d����|d	��d
����|d��d����|d
��d����|d��d����|d��d����|d��d����|d��tj����|d��tjdz
��|t
��|tjj��t
jtj
����}||j��|tj��|dj��|tj��|ij��|tj��|t"j��|dj��|t&j����t*d��5Gd�d��}||����ddd��n#1swxYwY|tj��|t.j��||j��dS)Nrc���tj|��}��t|tj������t
|j�����dj	d��|S)zAUse this to test unbound methods (things that should have a self)rrP)
rJr�rFr�rdr
r�r.rzr��rr�rPs  �r�test_unbound_methodzKTestSignatureObject.test_signature_on_builtins.<locals>.test_unbound_method�	sm����)�!�,�,�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��|S)zRUse this to test bound methods or normal callables (things that don't expect self)rrP)
rJr�rFr�rdr.r�r�rzr�r�s  �r�
test_callablezETestSignatureObject.test_signature_on_builtins.<locals>.test_callable�	sz����)�!�,�,�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.rD)r�r�s �rr0z9TestSignatureObject.test_signature_on_builtins.<locals>.p�	s���I�0��6�>�>rr�r~r�sbytesrOg��Q�	@r/�#�nr$TrPF�localr>r�rRr&sabczno signature foundc��eZdZeZdS)�DTestSignatureObject.test_signature_on_builtins.<locals>.ThisWorksNowN)rGr\r]r��__call__r7rr�ThisWorksNowr��	s���������rr�)rr�r
r��maxsizer�rvrwrxry�StringIO�bytes�	maketransr��fromkeysr�r�r�r��minr�rH�__delitem__r�r��#docstring_with_signature_but_no_doc)rPrr�r�r0rOr�r�s`      @r�test_signature_on_builtinsz.TestSignatureObject.test_signature_on_builtins�	sv����	����	�	�	�	�	�	�	�	�	�	�"�M�)�"R�S�S�	�>�>�>�>�>������3����+�+�+������3����*�*�*������3����&�&�&������3����$�$�$������3����&�&�&������3����&�&�&������3����'�'�'������7���Q�'�'�'������5���3�;�/�/�/������5���3�;��?�3�3�3��
�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�!J3�3J7�:J7c�:�ddl}|j}d�}||��}|�tj|��tj|����dt
fd�}|�tj|d���tj|����dS)Nrc�V��tj���dtf�fd���}|S)Nric����|i|��Srr7�rrr�s  �rrnz\TestSignatureObject.test_signature_on_decorated_builtins.<locals>.decorator.<locals>.wrapper�	�����t�T�,�V�,�,�,r�r�r[r��r�rns` r�	decoratorzKTestSignatureObject.test_signature_on_decorated_builtins.<locals>.decorator�	�B���
�_�T�
"�
"�
-�C�
-�
-�
-�
-�
-�#�
"�
-��Nrric��dSrr7r�s  r�wrapper_likezNTestSignatureObject.test_signature_on_decorated_builtins.<locals>.wrapper_like�	rlrF��follow_wrapped)rr�r
rJr�r�)rPrr�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)rr�rHrJr�r�r�)rPrs  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�rn�__defaults__�__kwdefaults__r��rPr�s  rr�zVTestSignatureObject.test_signature_from_functionlike_object.<locals>.funclike.__init__
�@�� $�
��
� $�
��
�'+�';��$�$(�$5��!�&*�&9��#� ��	�	�	rc��|j|i|��Srrrs   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)
rJrd�
from_callabler
r�rr8r�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__?
r�rN)rGr\r]r�r�rnrrrs�rr	r>
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_class7
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__L
r�rr&ric��dSrr7�rPrJrKs   rr�z=TestSignatureObject.test_signature_on_method.<locals>.Test.m1N
r�rc��dSrr7rs r�m2z=TestSignatureObject.test_signature_on_method.<locals>.Test.m2P
r�rc��dSrr7rks rr�zCTestSignatureObject.test_signature_on_method.<locals>.Test.__call__R
r�rNr|)rGr\r]r�r�r�r$r�r7rrr�rK
sa������
�
�
�
�
�#�
�
�
�
�
�
�
�
�
�
�
�
rr���rJ..r�)rKr&.r�r�zinvalid method signature)r
r�r�r�r$r�rH)rPr�s  r�test_signature_on_methodz,TestSignatureObject.test_signature_on_methodJ
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&ric��dSrr7r"s   rr�zHTestSignatureObject.test_signature_wrapped_bound_method.<locals>.Test.m1h
r�rNr|)rGr\r]r�r�r7rrr�r+g
s4������
�
�#�
�
�
�
�
�
rr�c��dSrr7r�s  r�m1dzDTestSignatureObject.test_signature_wrapped_bound_method.<locals>.m1dj
rZrr&)r�r[r�r
r�r�)rPr�r.s   r�#test_signature_wrapped_bound_methodz7TestSignatureObject.test_signature_wrapped_bound_methode
s���	�	�	�	�	�	�	�	�
�������	#�	#�	�	�
$�	#�	��������,�,�F���	 �	 �	 �	 �	 rc���Gd�d��}|��j}|�|�|��d��|j}|�|�|��d��dS)Nc�*�eZdZedd�d���ZdS)�?TestSignatureObject.test_signature_on_classmethod.<locals>.Testr&)rKc��dSrr7)r�rJrKs   rr(zCTestSignatureObject.test_signature_on_classmethod.<locals>.Test.foot
r�rN)rGr\r]r�r(r7rrr�r2s
s:������
�'(�
�
�
�
��[�
�
�
rr�))r')rKr&.r�.�r(r
r��rPr��meths   r�test_signature_on_classmethodz1TestSignatureObject.test_signature_on_classmethodr
���	�	�	�	�	�	�	�	�
�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�rLs  rr(zDTestSignatureObject.test_signature_on_staticmethod.<locals>.Test.foo�
r�rN)rGr\r]r�r(r7rrr�r;�
s-������
�
�
��\�
�
�
rr�)))r�..r�)rL..r�.r4r5s   r�test_signature_on_staticmethodz2TestSignatureObject.test_signature_on_staticmethod�
r8rc���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��dSrr7r7rrr_z;TestSignatureObject.test_signature_on_partial.<locals>.test�
r`rr��has incorrect argumentsr&rkc��dSrr7rMs    rr_z;TestSignatureObject.test_signature_on_partial.<locals>.test�
r`r))r��r�..r��r..r��rO..r�.))rBrCrD.r'r�))rB�rr'.r�rD.)r�r))r��r�r&.r�rErD.))rFrErD.))�rr&.r��r�..r�rCrD.c��dSrr7)rr�rrs    rr_z;TestSignatureObject.test_signature_on_partial.<locals>.test�
r`r))r�rHr�.))rGrHr�.r>Tr�)r_r�))r��r�r.r�r�.�r�))r�r�rJr�.)r�r_rrir�c��dSrr7ris   rr_z;TestSignatureObject.test_signature_on_partial.<locals>.test�
r`rrB.r�c��|Srr7rks rr(z:TestSignatureObject.test_signature_on_partial.<locals>.foos���Hrr�)))rrN.r�.c��|||fSrr7ris   rr(z:TestSignatureObject.test_signature_on_partial.<locals>.foo�
���a��7�Nrr1)))r�r1.r�rC.)r&r1rc��||||fSrr7rMs    rr(z:TestSignatureObject.test_signature_on_partial.<locals>.foo#s���a��A�:�r)rOr)r�rO))r�)r�r.r�)rrN.r�)rOr1.r�.��rEr�)rRrErNr1c��|||fSrr7ris   rr(z:TestSignatureObject.test_signature_on_partial.<locals>.foo0rPrr@)rEr'r@r$)rEr$r@)r&r$r@)r$rrNc��dSrr7)rr�rrOrs     rr(z:TestSignatureObject.test_signature_on_partial.<locals>.fooEr`rrrFr�z(a, b, /, c, d, **kwargs)))�r�..�positional_only�r..r��rO..r�r�.))rWrXr�.))rXr�.))�rr>.r�rDr�.))rUrYrDr�.rN)r�r�rJrbr
r�r�rHr�re�bindrrr.�copyr�rcrdrzr�)
rPr�rbr_r}�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��dSrr7r7rrr_zFTestSignatureObject.test_signature_on_partialmethod.<locals>.Spam.testrr�rN�rGr\r]r_rYrbs�r�Spamrdqs-�������
�
�
��-��%�%�C�C�Crrgr@c�2��eZdZdd�Z�ed���ZdS)rdrirrc��dSrr7)�itrrs   rr_zFTestSignatureObject.test_signature_on_partialmethod.<locals>.Spam.testzr�rr&r�N)rirrrfrbs�rrgzATestSignatureObject.test_signature_on_partialmethod.<locals>.Spamys7�������
�
�
�
��-���*�*�*�C�C�CrFrj)))rj..r�r��rr&.r�rr))r�rkrrc�0��eZdZdd�Z�ed��ZdS)rdrP�annoc��dSrr7rys  rr_zFTestSignatureObject.test_signature_on_partialmethod.<locals>.Spam.test�r�rr&N)rPrm)rGr\r]r_rQrbs�rrgzATestSignatureObject.test_signature_on_partialmethod.<locals>.Spam�s6�������
�
�
�
��
�d�A�&�&�A�A�Ar)))rP.rmr�.)	r�r�r�rHrJr�rYr
rQ)rPrgr�s  @r�test_signature_on_partialmethodz3TestSignatureObject.test_signature_on_partialmethodns����+�+�+�+�+�+�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�
�
#�
#�J�0I�
J�
J�	(�	(���d�h�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�
	
��������5��A�A�"�	#�	#�	#�	
����������
�U��C�C�"�	#�	#�	#�
	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	
����������?�?��	 �	 �	 �	 �	 s�A�A�Ac��d�}d|_|�ttj|����d��dS)Nc��dSrr7rks rr(zETestSignatureObject.test_signature_on_fake_partialmethod.<locals>.foo�rlrrrz(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�2��d��G�fd�d��}�|��j��}|�|�|j��d��|�|�|��j��d��|�|�|jd���d��|�|�|��d��d	��G�fd
�d��}|�|�|j��d��|�|�|��j��d��d�}|j|_|�|�|��d��dS)
Nc�V��tj���dtf�fd���}|S)Nric����|i|��Srr7r�s  �rrnzSTestSignatureObject.test_signature_on_decorated.<locals>.decorator.<locals>.wrapper�r�rr�r�s` rr�zBTestSignatureObject.test_signature_on_decorated.<locals>.decorator�r�rc�&��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�rrUry��.�������
�
�
��Y�
�
�
rrU))�rP..r�r�rB.))r�rB.Fr�r�c���tj���dtf�fd���}tj���}t|j�����dd�}|�|���|_	|S)Nric����dg|�Ri|��Srr7r�s  �rrnzSTestSignatureObject.test_signature_on_decorated.<locals>.decorator.<locals>.wrapper�s#����t�B�0��0�0�0��0�0�0rr&ra)
r�r[r�rJr�ryr.rzr�re)r�rnr}�
new_paramss`   rr�zBTestSignatureObject.test_signature_on_decorated.<locals>.decorator�s����
�_�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)ryc��dSrr7r{s   rr�zETestSignatureObject.test_signature_on_decorated.<locals>.Foo.__call__�r�rN�rGr\r]r�r|s�rrUz<TestSignatureObject.test_signature_on_decorated.<locals>.Foo�r}r�)rB.c��dSrr7r7rr�wrapped_foo_callzITestSignatureObject.test_signature_on_decorated.<locals>.wrapped_foo_call�r`r)r r
r�r��__wrapped__)rPrUr r�r�s    @r�test_signature_on_decoratedz/TestSignatureObject.test_signature_on_decorated�s���	�	�	�	�	�	�	�	�	�	�	�	�	�
�i�����	�"�"����������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�rNr�r7rrr�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�rr�))�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__3����~�~�c�*�*�*rNr|�rGr\r]r�r7rrr,r�2�(������
+�
+�
+�
+�
+�
+rr,c��eZdZd�ZdS)�9TestSignatureObject.test_signature_on_subclass.<locals>.Bc��dSrr7r�s  rr�zBTestSignatureObject.test_signature_on_subclass.<locals>.B.__init__6r�rNr�r7rrr/r�5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__9r�rN�r&r'r�r7rrr�r�8r�rr�c��eZdZdS)�9TestSignatureObject.test_signature_on_subclass.<locals>.DNr�r7rrr4r�;rrr4r�))�rr&.r�)r�r'.r�r�r�.))r�r�r�.r�)rPr,r/r�r4s     r�test_signature_on_subclassz.TestSignatureObject.test_signature_on_subclass1s9��	+�	+�	+�	+�	+�	+�	+�	+�	�	�	�	�	��	�	�	�	+�	+�	+�	+�	+��	+�	+�	+�	�	�	�	�	��	�	�	�	
�������*�*��	 �	 �	 �	
�������*�*��	 �	 �	 �	
�������*�*��	 �	 �	 �	 �	 rc��ddlm}m}|d��}Gd�d||��}|�|�|��ddt
dffdf��dS)	Nr)�Generic�TypeVarr	c��eZdZdeddfd�ZdS)�ATestSignatureObject.test_signature_on_generic_subclass.<locals>.ArriNc��dSrr7r�s  rr�zJTestSignatureObject.test_signature_on_generic_subclass.<locals>.A.__init__Sr�r)rGr\r]r�r�r7rrr,r�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_subclassM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�^r�rr�rc��eZdZdS��CTestSignatureObject.test_signature_on_class_without_init.<locals>.DNr�r7rrr4r�`r�rr4c��eZdZdSr�r�r7rrr�zCTestSignatureObject.test_signature_on_class_without_init.<locals>.Cdr�rc��eZdZdSr�r�r7rrr4zCTestSignatureObject.test_signature_on_class_without_init.<locals>.Der�rzcallable.*is not supported)r
r�rJr�r�r�rH)rPr�r4s   r�$test_signature_on_class_without_initz8TestSignatureObject.test_signature_on_class_without_initZ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r�rr�c��eZdZdS)�GTestSignatureObject.test_signature_on_builtin_class.<locals>.EmptyTraitNr�r7rr�
EmptyTraitr�sr�rr�c��eZdZdS)�?TestSignatureObject.test_signature_on_builtin_class.<locals>.P2Nr�r7rr�P2r�t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__yr�rNr�r7rr�P3r�x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__~r�rNr�r7rr�MetaPr�}r�rr�c��eZdZdS)�?TestSignatureObject.test_signature_on_builtin_class.<locals>.P4Nr�r7rr�P4r��rrr�r�z
(foo, bar))r
r�rJr�rvrwr�)rPr6r�r�r�r�r�r�s        r�test_signature_on_builtin_classz3TestSignatureObject.test_signature_on_builtin_classk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__�r�rNr�r7rrrUr��r�rrUr�c��eZdZdS)�DTestSignatureObject.test_signature_on_callable_objects.<locals>.SpamNr�r7rrrgr��rrrgr�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��dSrr7rks rr�zHTestSignatureObject.test_signature_on_callable_objects.<locals>.<lambda>�s���r�wrapper loop)r
r�r�r�rJr�rH)rPrUrgr�r�s     r�"test_signature_on_callable_objectsz6TestSignatureObject.test_signature_on_callable_objects�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��|Srr7rks 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	��tj���tj���tj���fD]e}|�|���5|�ttj	|����d��ddd��n#1swxYwY�fdS)N�r�z(*args, **kwargs))
r�r�r�r��	MagicMockr�r
r�rJr��rPr�s  r�test_signature_on_mocksz+TestSignatureObject.test_signature_on_mocks�s���
�M��� � ��M�#�#�%�%��M�#�#�%�%�
�	T�	T�D�
���4��(�(�
T�
T�� � ��W�%6�t�%<�%<�!=�!=�?R�S�S�S�
T�
T�
T�
T�
T�
T�
T�
T�
T�
T�
T����
T�
T�
T�
T��	T�	Ts�26B4�4B8	�;B8	c�l�tj���tj���fD]v}|�|���5|�t��5tj|��ddd��n#1swxYwYddd��n#1swxYwY�wdS)Nr)	r�r��NonCallableMock�NonCallableMagicMockr�r�r�rJr�rs  r�#test_signature_on_noncallable_mocksz7TestSignatureObject.test_signature_on_noncallable_mocks�s%���M�)�)�+�+��M�.�.�0�0�
�	,�	,�D����4��(�(�
,�
,��&�&�y�1�1�,�,��%�d�+�+�+�,�,�,�,�,�,�,�,�,�,�,����,�,�,�,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,��		,�	,s6�B(�0B�B(�B�B(�B�B(�(B,	�/B,	c�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�ric��dSrr7r�s  rr(z8TestSignatureObject.test_signature_equality.<locals>.foo�rlrr�c��dSrr7r�s  rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rlrc��dSrr7r�s  rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rlrc��dSrr7r�s  rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rlrrKc��dSrr7r�s  rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rlrc��dSrr7�rrs  rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rlrc��dSrr7r�s  rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rlrc��dSrr7�r�rs  rrrz9TestSignatureObject.test_signature_equality.<locals>.spam�rlrc��dSrr7ris   rr(z8TestSignatureObject.test_signature_equality.<locals>.foo�rlrc��dSrr7�rr�rs   rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rlrr&rkc��dSrr7ris   rr(z8TestSignatureObject.test_signature_equality.<locals>.foo�rlrc��dSrr7rs   rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rlrc��dSrr7��posrr�rs    rr(z8TestSignatureObject.test_signature_equality.<locals>.foo�rlrc��dSrr7�rrr�rs    rr z8TestSignatureObject.test_signature_equality.<locals>.bar�rlrc��dSrr7rs    rr(z8TestSignatureObject.test_signature_equality.<locals>.foo
rlrc��dSrr7r!s    rr z8TestSignatureObject.test_signature_equality.<locals>.bar
rlrrc��dSrr7)rrr�rrrs      rr(z8TestSignatureObject.test_signature_equality.<locals>.foo
rlrc��dSrr7)rrr�rrrs      rr z8TestSignatureObject.test_signature_equality.<locals>.bar	
rlr)
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��dSrr7rks rr(z8TestSignatureObject.test_signature_hashable.<locals>.foo
rlrrrarr�r{rir&c��dSrr7rks rr z8TestSignatureObject.test_signature_hashable.<locals>.bar
rlrc��dSrr7rks rr(z8TestSignatureObject.test_signature_hashable.<locals>.foo
rlr�unhashable typec��dSrr7rks rr(z8TestSignatureObject.test_signature_hashable.<locals>.foo#
rlr)rir&)rJrdrbr��POSITIONAL_OR_KEYWORDr
r&r�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�rrir�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>.foo2
r`rrc��dSrr7rks rr(z3TestSignatureObject.test_signature_str.<locals>.foo6
r`rz#(a: list[str]) -> tuple[str, float]r)�Tuplec��dSrr7rks rr(z3TestSignatureObject.test_signature_str.<locals>.foo<
r`rz#(a: list[str]) -> Tuple[str, float]r|)
r�r
r�rJr�r�ryr�r�r9)rPr(r9s   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   rr_zDTestSignatureObject.test_signature_str_positional_only.<locals>.testE
�����<�rrrFraz(a_po, /, *, b, **kwargs)r(z(foo, /)r z(foo, /, **bar)z(foo, /, *bar))rJrbrdr�r�r.rzr�rcrer
r�rI�VAR_POSITIONAL)rPr�r�r_r}r�s      r�"test_signature_str_positional_onlyz6TestSignatureObject.test_signature_str_positional_onlyA
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)Nrir�c��dSrr7r7rrr_z=TestSignatureObject.test_signature_replace_anno.<locals>.test^
r`rr*)rir�)rJr�r�r-r{rur
r�s   r�test_signature_replace_annoz/TestSignatureObject.test_signature_replace_anno]
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&rHc��dSrr7)rPrIrHs   rr(zJTestSignatureObject.test_signature_on_mangled_parameters.<locals>.Spam.fool
r�rN)r')rIr&rHr'r�r7rrrgrGk
s9������
�a�
�
�
�
�
�
�
�
rrgc��eZdZdS)�ETestSignatureObject.test_signature_on_mangled_parameters.<locals>.HamNr�r7rr�HamrLn
rrrM))r~)rIr'r&r�)rHr>r'r�.)r
r�r()rPrgrMs   r�$test_signature_on_mangled_parametersz8TestSignatureObject.test_signature_on_mangled_parametersj
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�r7rrrmrQ{
r�rrmr�r&c��dSrr7r�s  rr(zHTestSignatureObject.test_signature_from_callable_python_obj.<locals>.foo|
rlr�r�r&�rJrdr�assertIsInstance�rPrmr(r0s    r�'test_signature_from_callable_python_objz;TestSignatureObject.test_signature_from_callable_python_objz
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�r7rrrmrZ�
r�rrmc��eZdZdS)�CTestSignatureObject.test_signature_from_callable_class.<locals>.fooNr�r7rrr(r\�
r�rr(rTrVs    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�r7rrrmr`�
r�rrm)rJrdrrvrwrU)rPrmr}s   r�(test_signature_from_callable_builtin_objz<TestSignatureObject.test_signature_from_callable_builtin_obj�
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_kwonly�
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��dSrr7rXs  rr�zITestSignatureObject.test_signater_parameters_is_ordered.<locals>.<lambda>�
���D�rc��dSrr7r�s  rr�zITestSignatureObject.test_signater_parameters_is_ordered.<locals>.<lambda>�
rfr)rJr�r.r�)rP�p1�p2s   r�#test_signater_parameters_is_orderedz7TestSignatureObject.test_signater_parameters_is_ordered�
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�r7rrrUrm�
r�rrUr(ric��dSrr7r�s rr�zRTestSignatureObject.test_signature_annotations_with_local_namespaces.<locals>.func�
rlrr r�c��dSrr7�r(r s  r�func2zSTestSignatureObject.test_signature_annotations_with_local_namespaces.<locals>.func2�
rlr��signature_func)rL)rerL)r�rJr�rdrr�r
r{r.rvrL)rPrUr�rqrs�sig1�sig2�sig3s        r�0test_signature_annotations_with_local_namespaceszDTestSignatureObject.test_signature_annotations_with_local_namespaces�
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)Nrrrr�rarhr��rvr�)r{r.rrr�r�Trj)r�r�)r�rhrdrb)rcrerL)rrJrdrbr/r�rr�r
rhr2rvrwrxryr�r�r��complexryr�r��	NameError)rPr|r}�par�PORKrs�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|_||_dSrrrs  rr�zMTestSignatureObject.test_signature_none_annotation.<locals>.funclike.__init__!rrc��|j|i|��Srrrs   rr�zMTestSignatureObject.test_signature_none_annotation.<locals>.funclike.__call__)rrNrr7rrr	r�r
rr	c��dSrr7r7rrr(z?TestSignatureObject.test_signature_none_annotation.<locals>.foo,rlrrr)rnrJr�rdrr�r
ru)rPr	r(rss    r�test_signature_none_annotationz2TestSignatureObject.test_signature_none_annotations2��	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)6rGr\r]r�r�r�r�r�r�r�r�r�r�rr�rrr�r�r�r�rrr(r/r7r=r`rortr�r�r�r�r�r�rrrrr'r2r;rArDrNrWr]rarcrjrwr�r�r7rrrrrr�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=�=�=�
E �E �E �PO �O �O �b � � �8!�!�!��X�_�)�M�O�O�
9�
9�O�O�
9��X�_�)�M�O�O�C�C�O�O�C�.$�$�$�@ � � �
T�T�T�,�,�,�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;�;�;�;�;rrrc�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)Nrc)rJrbrFrcr/r@�KEYWORD_ONLYrIr
r�r=)rPr�s  r�test_signature_parameter_kindsz2TestParameterObject.test_signature_parameter_kinds6s����������)�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�rDrCz)value '123' is not a valid Parameter.kind�123znot a valid parameter namer�rF�from�name must be a strzis not a valid parameter name�$z.azcannot have default valuesrr�z
<Parameterz"a=42")rJrbrcr
r�rDr-rvrurCr�rHrIr�r@r/r�rFr=r��rPr0s  r�test_signature_parameter_objectz3TestParameterObject.test_signature_parameter_object>s}����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(rFr�rB)rJrbrcr
r&r�r�r@)rPr�r(s   r�!test_signature_parameter_hashablez5TestParameterObject.test_signature_parameter_hashableks�������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�r�)rJrbr�rFrOr)rPr�r0s   r�!test_signature_parameter_equalityz5TestParameterObject.test_signature_parameter_equalitytsF�����
�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�r�r&ryr r�zname is a required attribute)r�rDz<value <class 'inspect._empty'> is not a valid Parameter.kindrF)rJrbr�rzr�r
rvrur�r�r�rHr-rDr/rC)rPr0ris   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)Nr�rF)r�r�rJrbrcrZs 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.0rF�	implicit0)	r�rHrJrbrcr/r
rCr�)rPrws  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)NrrrFr rE)rJrbr�r�r�r(rCr�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]r�r�r�r�r�r�rr�r�r7rrr�r�5s�������F�F�F�+-�+-�+-�ZF�F�F�F�F�F� & �& �& �PL�L�L��
2�
2��\�
2�����rr�c��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�rZrr)r�rrr}r^s     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��dSrr7r7rrr_z9TestSignatureBind.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  rr_z7TestSignatureBind.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��|||fSrr7ris   rr_z=TestSignatureBind.test_signature_bind_just_args.<locals>.test�rPrr&r'r>rNr�r z missing a required argument: 'b'z missing a required argument: 'a'rc��|||fSrr7ris   rr_z=TestSignatureBind.test_signature_bind_just_args.<locals>.test�rPr)r&r'rc��|||fSrr7ris   rr_z=TestSignatureBind.test_signature_bind_just_args.<locals>.test�rPrr@r)rr'r@rk)rr'r>rK)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 rr_zATestSignatureBind.test_signature_bind_varargs_order.<locals>.tests���Krr7r&r'r>rNr�r�s  r�!test_signature_bind_varargs_orderz3TestSignatureBind.test_signature_bind_varargs_ordersa��	�	�	�	
������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    rr_zDTestSignatureBind.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>r7rKz 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 rr_z?TestSignatureBind.test_signature_bind_just_kwargs.<locals>.tests���Mrr rY�r(rrr�r�s  r�test_signature_bind_just_kwargsz1TestSignatureBind.test_signature_bind_just_kwargsst��	�	�	�	
������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��||||fSrr7r5s    rr_zCTestSignatureBind.test_signature_bind_args_and_kwargs.<locals>.test"s���a��F�?�"rr&r'r rYr�)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 rr_z:TestSignatureBind.test_signature_bind_kwonly.<locals>.test6����Jrr�r&r�c��|Srr7)rr(r s   rr_z:TestSignatureBind.test_signature_bind_kwonly.<locals>.test=r�rz"missing a required argument: 'bar'c�
�||fSrr7rps  rr_z:TestSignatureBind.test_signature_bind_kwonly.<locals>.testCs����8�Orr'r�r�)r r(r�r)r r(rrrY)r rrc��|||fSrr7)r(r �bins   rr_z:TestSignatureBind.test_signature_bind_kwonly.<locals>.test^s����S�=� rrprr)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_kwonly5s;��	�	�	�
�
#�
#�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)Nr��r%c��dSrr7)rr�r%rrs     rr_z=TestSignatureBind.test_signature_bind_arguments.<locals>.testmr`rrrNr1r>r��<)r�rrr�rr)r)rN)r�r1r)rrr)rrN)	rJr�rZr
ry�	arguments�itemsrr�rPr_r}r^s    r�test_signature_bind_argumentsz/TestSignatureBind.test_signature_bind_argumentsls��� #�	�	�	�	�	����%�%��
�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      rr_zCTestSignatureBind.test_signature_bind_positional_only.<locals>.test}s����t�S�#�v�5�5r)r>r�r�rFrar&r'r r��rpzbut was passed as a keywordr)r(r r�zparameter is positional only)r�)r>r�)r>r�)rJrbr�r�r�ryr.r�r�rcrzrer
r�r�r�)rPr�r_r}r�r��new_sigs       r�#test_signature_bind_positional_onlyz5TestSignatureBind.test_signature_bind_positional_onlyzs)�����	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   rr_zATestSignatureBind.test_signature_bind_with_self_arg.<locals>.test�r`rr&r'r>rNr�)rJr�rZr
rr�s    r�!test_signature_bind_with_self_argz3TestSignatureBind.test_signature_bind_with_self_arg�s���	�	�	����%�%��
�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  rr_z?TestSignatureBind.test_signature_bind_vararg_name.<locals>.test�s���d�7�Nrz)got an unexpected keyword argument 'args'rr&r�c�
�||fSrr7r�s  rr_z?TestSignatureBind.test_signature_bind_vararg_name.<locals>.test�r?rrr7rr)rJr�r�r�rZr
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�rZr
rr�r�r�)rPr(r}�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��dSrr7rks rr(zITestBoundArguments.test_signature_bound_arguments_unhashable.<locals>.foo�rlrr&r-)rJr�rZr�r�r&�rPr(r^s   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��dSrr7rks rr(zGTestBoundArguments.test_signature_bound_arguments_equality.<locals>.foo�rlrr&r'rc��dSrr7rKs rr zGTestBoundArguments.test_signature_bound_arguments_equality.<locals>.bar�rlrc��dSrr7r�s  rr(zGTestBoundArguments.test_signature_bound_arguments_equality.<locals>.foo�rlrr�r)rJr�rZrFrOrr�)	rPr(r^�ba2�ba3r �ba4r}�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&rir�rYc��dSrr7r�s    rr(zETestBoundArguments.test_signature_bound_arguments_pickle.<locals>.foo�rlrrNr1r�)r�)
rJr�rZr)r�r�r�r�r�r
)rPr(r}r^r��
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&rir�rYc��dSrr7r�s    rr(zCTestBoundArguments.test_signature_bound_arguments_repr.<locals>.foo�rlrrNr1r�z <BoundArguments \(a=20,.*\}\}\)>)rJr�rZ�assertRegexr=�rPr(r}r^s    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�rrr|s     rr(zMTestBoundArguments.test_signature_bound_arguments_apply_defaults.<locals>.foorlrrN)rrNrS)rr7r|rr1)rOr�)r�rN)r)r1rOc��dSrr7r�s  rr(zMTestBoundArguments.test_signature_bound_arguments_apply_defaults.<locals>.foorlrc��dSrr7r7rrr(zMTestBoundArguments.test_signature_bound_arguments_apply_defaults.<locals>.foorlrrrc��dSrr7rks rr(zMTestBoundArguments.test_signature_bound_arguments_apply_defaults.<locals>.foo&rlr)rrrr|)rr&r)	rJr�rZ�apply_defaultsr
r�r�r��bind_partialr	s    r�-test_signature_bound_arguments_apply_defaultsz@TestBoundArguments.test_signature_bound_arguments_apply_defaultssZ��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��dSrr7rks rr(zMTestBoundArguments.test_signature_bound_arguments_arguments_type.<locals>.foo-rlrr&)rJr�rZr-r�r�r�r�s   r�-test_signature_bound_arguments_arguments_typez@TestBoundArguments.test_signature_bound_arguments_arguments_type,sM�����
�
�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_syntax2sl��

�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_syntax<s���%�%�
E�
=�
�
�
	�	�	�	
�%�%�&�"�
�
�		�	�	�	
�%�%�$�!��
�		�	�	�	
�%�%�!�!���		�	�	�	
�%�%�1�!���		�	�	�	
�%�%�����		�	�	�	
�%�%�����		�	�	�	�	rN)rGr\r]r#	r%	r7rrr	r	1s5������N�N�N�+�+�+�+�+rr	c�^�eZdZeejed��d�����Zd�Zd�Z	dS)�TestSignatureDefinitionsrrc���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_signaturesms,���u�u��0�0�0����$���Y�
��
�"��!(�	���-�-��,�,�,�
��
�%��$�\�2���)�)�� #����
�(�^�^������
�
�+�+�	=�	=�I�D�#��C�=�=�
���#�t�$�$�
'�$�6K�*K�*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��d|_tj|��}|�t|��d��d|_tj|��}|�t|��d	��d
|_|�t��5tj|��ddd��n#1swxYwYd|_|�t��5tj|��ddd��n#1swxYwYd|_|�t��5tj|��ddd��dS#1swxYwYdS)
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)z"(self, a=1+2, b=4-3, c=1 | 3 | 16)z(self, a=3, b=1, c=19)z(self, a=1,
b=2,


   c=3)z(self, a=1, b=2, c=3)z(self, x=does_not_exist)z(self, x=sys, y=inspect)z(self, 123))r3	rJr�r2	r
r�r�rH)rPr�r}s   r�'test_python_function_override_signaturez@TestSignatureDefinitions.test_python_function_override_signature�s���	�	�	�"L������%�%�����S�!�!�!�����S���#O�P�P�P�"O������%�%������S���#O�P�P�P�"F������%�%������S���#;�<�<�<�"B������%�%������S���#:�;�;�;�"<���
�
�
�z�
*�
*�	$�	$���d�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�"<���
�
�
�z�
*�
*�	$�	$���d�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�"/���
�
�
�z�
*�
*�	$�	$���d�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	$�	$s6�2E�E�E�?F � F$�'F$�G.�.G2�5G2c���ddlm}Gd�d|��}|j}|�|d��t	j|��}|�t
|��d��dS)Nr)�BufferedReaderc��eZdZdZdS)�VTestSignatureDefinitions.test_base_class_have_text_signature.<locals>.MyBufferedReaderzbuffer reader class.N)rGr\r]rrr7rr�MyBufferedReaderrB	�s������&�&�&�&rrC	z&(raw, buffer_size=DEFAULT_BUFFER_SIZE)z(raw, buffer_size=8192))�test.ann_module7r@	r3	r
rJr�r�)rPr@	rC	�text_signaturer}s     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>	rF	r7rrr'	r'	iss��������X�_�)�M�O�O�2:�2:�O�O��\�2:�h$�$�$�<	>�	>�	>�	>�	>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�rrJ	rH	rZs rr�zNTimesUnwrappable.__wrapped__�sA���6�Q�;�;��6�7�7�7��:��*�4�6�A�:�6�6�D�J��z�rN)rGr\r]r�r�r�r7rrrH	rH	�s>�������������X���rrH	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�LrrN)r�)r��	lru_cacher-rJ�unwrap)rPr�rns   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�rP	rrc��dSrr7r7rrrnz/TestUnwrap.test_unwrap_several.<locals>.wrapper�r�r)r)r�r[rzr�r-rJrR	)rPr�rn�__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�rP	rc��dSrr7r7rrrqz#TestUnwrap.test_stop.<locals>.func2�rZrc��dSrr7r7rrrnz%TestUnwrap.test_stop.<locals>.wrapper�rZrr&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�r[r_	rJrR	r-)rPr[	rqrn�	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��dSrr7r7rrr[	z$TestUnwrap.test_cycle.<locals>.func1�rlrr�c��dSrr7r7rrrqz$TestUnwrap.test_cycle.<locals>.func2rlr)r�r�rHrJrR	)rPr[	rqs   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>.funcrlrc���eZdZdZ�ZdS)�%TestUnwrap.test_unhashable.<locals>.CN)rGr\r]�__hash__r�rs�rr�rj	
s��������H��K�K�Krr�)r�r�rJrR	)rPr�r�s  @r�test_unhashablezTestUnwrap.test_unhashable
sr���������	�	�	�	�	�	�	�	�	�	�	
���'�.�����-�-�.�.�.�.�.rc���ttj��dz��}|�td��5tj|��ddd��dS#1swxYwYdS)Nr&r�)rH	r��getrecursionlimitr�rHrJrR	)rPrSs  r�test_recursion_limitzTestUnwrap.test_recursion_limits����� 5� 7� 7�!� ;�<�<��
�
#�
#�J��
?�
?�	 �	 ��N�3����	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 �	 �	 s�A!�!A%�(A%N)	rGr\r]rS	rX	rb	rf	rl	ro	r7rrrM	rM	�sn������5�5�5�	5�	5�	5�(�(�(�"�"�"�/�/�/� � � � � rrM	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_sources����(��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�)rer�r�rJr�rss  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)Nrs	rJz%concurrent.futures:ThreadPoolExecutorrr)rrv	r�r
rJrjr)rPrx	r9ry	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�rs	rJr�z#Can't get info for builtin modules.)rt	ru	rrv	r�r
)rPrw	r9r9ry	rgs      r�
test_builtinszTestMain.test_builtins3sg���(��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�rs	rJz	--detailsr)rt	ru	r�!optim_args_from_interpreter_flagsrrv	r�rGr1�
__cached__r
)rPrw	rrx	r9ry	�outputs       r�test_detailszTestMain.test_details:s����(��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]rz	r}	r�rrr	r�	r�	r7rrrq	rq	s�������#�#�#�#�#�#��X�_�'�4�/�D�F�F�#�#�F�F�#�I�I�I�
#�
#�
#�
#�
#rrq	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.assertInspectEqualSs����)�&�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_beforert	ru	r�	r[r��	src_after)rPr�r�rw	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�dedentr�	r�	r�	r�	r7rrr�	r�	Gsd������ ���"�	�	�J�
 ���!�	�	�I�
���2�2�2�2�2rr�	�__main__)lr�r�r�r�rt	rJryr�r�r+�os.pathrrvr�rr�r�r�	r�r��
unittest.mockr��concurrent.futuresr�ImportError�test.supportrrr�test.support.import_helperr	�test.support.os_helperr
�test.support.script_helperrrr_r
r{rr�rrrr�test.test_importrr1r)r�rr�r�r5r?rdr�rrArmrorsrXrurwrrVrmrtr
rrr+rOr^r�rr�rrr&r(r�r�r�r�rrQrZrbrrSrdrmrbrprrr�r�r�r	r'	rH	rM	rq	r�	rG�mainr7rr�<module>r�	sv
��������������������������	�	�	�	�����	�	�	�	�
�
�
�
�����������
�
�
�
�
�
�
�
�
�
�
�
��������������������������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�`:�:�:�:�:�
�:�:�:�&N�N�N�N�N�=�N�N�N�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�rb�b�b�b�b�8�,�b�b�b�5>�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�@	�	�	�	�	�'�#�	�	�	�
	�	�	�	�	�'�#�	�	�	�G;�G;�G;�G;�G;�(�+�G;�G;�G;�T*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�pb>�b>�b>�b>�b>�x�0�b>�b>�b>�J��������: �: �: �: �: ��"�: �: �: �x-#�-#�-#�-#�-#�x� �-#�-#�-#�`2�2�2�2�2��"�2�2�2�<�z����H�M�O�O�O�O�O��s�A�A)�(A)