HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: //opt/alt/python312/lib64/python3.12/test/test_inspect/__pycache__/test_inspect.cpython-312.pyc
�

}h�e�����ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZ	ddlmZddlmZddlmZmZddlmZm Z ddl!m"Z"ddl#m$Z$m%Z%dd	l&m'Z'd
dl(m)Z*d
dl(m+Z,d
d
l(m-Z-d
dl(m.Z.d
dl(m/Z/e*j`Z1e1jed�re1ddZ1ee1�Z1d�Z3e*jh�Z5d�Z6d�Z7d�Z8djs�Z:Gd�dejv�Z<d�Z=d�Z>d�Z?ej�d��ZAGd�de<�ZBGd�d e<�ZCGd!�d"ejv�ZDGd#�d$�ZEGd%�d&eD�ZFGd'�d(ejv�ZGGd)�d*eD�ZHGd+�d,eD�ZIGd-�d.eD�ZJGd/�d0eD�ZKGd1�d2eD�ZLGd3�d4eD�ZMGd5�d6eD�ZNGd7�d8eO�ZPGd9�d:eO�ZQd;�ZRGd<�d=ejv�ZSGd>�d?ejv�ZTGd@�dAejv�ZUeO�ZVGdB�dCejv�ZWGdD�dEejv�ZXGdF�dGeX�ZYGdH�dIeY�ZZGdJ�dKejv�Z[GdL�dMejv�Z\GdN�dOejv�Z]e'j��GdP�dQej���Z`GdR�dSej��ZbGdT�dUej��ZdGdV�dWejv�ZeGdX�dYejv�ZfGdZ�d[ejv�ZgGd\�d]ejv�ZhGd^�d_ejv�ZiGd`�daejv�ZjGdb�dc�ZkGdd�deejv�ZlGdf�dgejv�ZmGdh�diejv�Zneodjk(rej��yy#e$rdZY���wxYw)k�N��normcase)�ThreadPoolExecutor)�cpython_only)�MISSING_C_DOCSTRINGS�	ALWAYS_EQ)�
DirsOnSysPath�ready_to_import)�TESTFN)�assert_python_ok�assert_python_failure)�support�)�inspect_fodder)�inspect_fodder2)�inspect_stock_annotations)�inspect_stringized_annotations)� inspect_stringized_annotations_2)�c�o���c� �t|�f|zS�Nr)�filename�argss  �E/opt/alt/python312/lib64/python3.12/test/test_inspect/test_inspect.py�reviser>s���X�� �4�'�'�c�P�tjrtjd�yyr)r�has_socket_support�asyncio�set_event_loop_policy�rr�tearDownModuler$Ds���!�!��%�%�d�+�"rc#�K�gd�}tddt|�z�D]i}g}d}tt|��D]}|||zzs�|j||��!ddj|�zdz}i}t	|||�|d���ky�w)	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�zr�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_parametersr;Is�����
O�J�
�1�a��Z��(�
)�	�������s�:��'�	(�A��C�1�H�~�����A��'�	(� �$�)�)�A�,�.��:�����W�g�w�'��e�n��	�s
�AB�ABc��yrr#)�throw�out�the�baby�with_�the_�	bathwaters       r�#unsorted_keyword_only_parameters_fnrD[s��rz'throw out the baby with_ the_ bathwaterc�r�eZdZeej
ejejejejejejejejejejej ej"ej$ej&g�Zd�Zd�Zy)�
IsTestBasec	��t|�}|j||�|j�d|�d��|jt	|g�z
D]x}|t
jk(s&|t
jk(s|t
jk(r|t
jk(r�P|j||�d|j�d|�d���zy)N�(�)znot )�eval�
assertTrue�__name__�
predicates�set�inspect�isgeneratorfunction�isasyncgenfunction�iscoroutinefunction�
isfunction�assertFalse)�self�	predicate�exp�obj�others     r�istestzIsTestBase.istestjs����3�i�����	�#��I�4F�4F��(L�M��_�_�s�I�;�'7�7�	O�E��W�8�8�8��G�6�6�6��G�7�7�7���*�*�*�����U�3�Z�����)M�N�
	Orc�<�tj|td��y)N)�
modulesbyfile)�not_exported)r�check__all__rO�rUs r�test__all__zIsTestBase.test__all__vs�����T�7�9K�LrN)rL�
__module__�__qualname__rNrO�	isbuiltin�isclass�iscode�isframerS�ismethod�ismodule�istraceback�isgeneratorrP�iscoroutinerR�
isasyncgenrQ�ismethodwrapperrMrZr`r#rrrFrFas����g�'�'����'�.�.��o�o�w�'9�'9�7�;K�;K��&�&��(;�(;��)�)�7�+F�+F��)�)�7�+F�+F��(�(�'�*D�*D��-�-�
/�0�J�
O�MrrFc#�4K�td�D]}|���y�w�Nr-�r/�rUr5s  r�generator_function_examplerrys����
�1�X��������c�FK�td�23d{���}|����7�
6y�wrorprqs  r� async_generator_function_exampleru}s&������8���a�����8�s�!����!��!c��K�y�w�N�spamr#r_s r�coroutine_function_examplery�s	�������c#�K�d��y�wrwr#r_s r�gen_coroutine_function_exampler|�s����	����c�<�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
y	)
�TestPredicatesc	��|jtjd�|jtjd�|jtjd�	ddzda|jtj d
�|jtj d�|jtj"d�|jtj"d
�|jtj$d�|jtj&d�|jtj(d�|jtj*d�|jtj,d�|jtj.d�t1j2�5t1j4d�|jtj6d�|jtj8d�ddd�ttd�r!|jtj:d�n<|jtj:t<j>j@��|jtjBd�|jtjBd�|jtjBd�|jtjBt��|jtjBtD��|jtjBtddi���y#t$r�}|j
a|jtjd�|jtjd�ttd�r!|jtjd	�nE|jtjttj�j��Yd}~���d}~wwxYw#dawxYw#1swY��7xYw)Nzsys.exitz	[].appendzmod.spam.__code__rrztb.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))rrz#async_generator_function_example(1)ru�ignorezcoroutine_function_example(1)ry�MemberDescriptorTypezdatetime.timedelta.dayszobject().__str__zobject().__eq__zobject().__repr__�AnyClassr#)#rZrOrcre�	Exception�
__traceback__r�rfri�hasattr�types�isgetsetdescriptorrT�type�tb_frame�f_localsrSrgrh�isdatadescriptorrjrPrlrQ�warnings�catch_warnings�simplefilterrkrR�ismemberdescriptor�datetime�	timedelta�daysrm�int�rU�es  r�test_excluding_predicatesz(TestPredicates.test_excluding_predicates�s������G�%�%�z�2����G�%�%�{�3����G�N�N�$7�8�
	�
�a�C��B����G�&�&�
�3����G�&�&�(=�>����G�$�$�k�2����G�$�$�&9�:����G�$�$�e�,����G�,�,�.W�X����G�'�'�)@�A����G�/�/�1M�N����G�&�&�9�	;����G�.�.�6�	8��
$�
$�
&�	S��!�!�(�+��K�K��+�+�-L�M��K�K��3�3�5Q�R�	S�
�5�0�1��K�K��2�2�4M�N����W�7�7��8J�8J�8O�8O�P�Q����G�+�+�-?�@����G�+�+�->�?����G�+�+�-@�A�����0�0��6�7�����0�0��5�6�����0�0��j�"�b�1I�J�K��O�	Y����B��K�K�����7��K�K��+�+�T�2��u�4�5����G�6�6�8�:�� � ��!;�!;�D����<M�<V�<V�!W�X���	Y���B��	S�	S�s8�"M(�=AQ�(	P>�1CP9�3Q�9P>�>Q�Q�Qc	��
��td�}td�}td�}|jt	j
t��|jt	j
t
jt
jt����|jt	j|��|jt	jt��|jt	jt
jt
jt����|jt	j|��d��tj�fd��}|jt	j
|��|jt	j
t	j�fd����Gd�d�}|jt	j
|��|jt	j
|���|jt	j
t	j|����Gd�d�}|jt	j
|��|jt	j
|���|jt	j
t	j|����Gd	�d
�}|jt	j
|j��|jt	j
|j��|jt	j
tj j#���|jt	j
tj j%���|jt	j
t��|jt	j
t
jt
jt����|jt	j|��|jt	jtj j#���|jt	jtj j%���|jt	jt��|jt	jt
jt
jt����|jt	j|��|jt	j&tj j#���|jt	j&tj j%���|jt	j&t��|jt	j&t��|jt	j&t
jt
jt����|jt	j(|��|j+�|j+�y)Nrc��K�y�wrr#r#rr�_fn3z-TestPredicates.test_iscoroutine.<locals>._fn3�s	�����rzc�����Srr#�r�s�r�fn3z,TestPredicates.test_iscoroutine.<locals>.fn3�s
����6�Mrc�����Srr#r�s�r�<lambda>z1TestPredicates.test_iscoroutine.<locals>.<lambda>�s	���d�f�rc��eZdZd�Zy)�+TestPredicates.test_iscoroutine.<locals>.Clc��K�y�wrr#r_s r�__call__z4TestPredicates.test_iscoroutine.<locals>.Cl.__call__�s	�����rzN�rLrarbr�r#rr�Clr�����
rr�c�0�eZdZejd��Zy)�,TestPredicates.test_iscoroutine.<locals>.Cl2c��yrr#r_s rr�z5TestPredicates.test_iscoroutine.<locals>.Cl2.__call__����rN)rLrarbrO�markcoroutinefunctionr�r#rr�Cl2r��s��
�
*�
*�
�+�
rr�c�h�eZdZejed���Zejed���Zy)�,TestPredicates.test_iscoroutine.<locals>.Cl3c��yrr#��clss r�do_something_classyz@TestPredicates.test_iscoroutine.<locals>.Cl3.do_something_classy����rc��yrr#r#rr�do_something_staticz@TestPredicates.test_iscoroutine.<locals>.Cl3.do_something_static�r�rN)	rLrarbrOr��classmethodr��staticmethodr�r#rr�Cl3r��sD��
�
*�
*�
�
��+�
��
*�
*�
�
��+�
rr�)rur|ryrTrOrR�	functools�partialrkrKrPrjr�r�r��unittest�mock�Mock�	AsyncMockrQrl�close)	rU�async_gen_coro�gen_coro�coror�r�r�r�r�s	        @r�test_iscoroutinezTestPredicates.test_iscoroutine�s����9�!�<��1�!�4��)�!�,������'�'�(F�G�	I�����'�'��!�!�)�"3�"3�2�#4�5�
6�	7�	
����,�,�X�6�7�����'�'�(F�G�	I�����'�'��!�!�)�"3�"3�2�#4�5�
6�	7�	
����+�+�H�5�6�	�
�	&�	&�	�
'�	�	
����3�3�C�8�9�����'�'��-�-�n�=�
�	
�	�	�	
����4�4�R�8�9�����4�4�R�T�:�;�����3�3��)�)�"�$�/�
�	�	�	�
	
����4�4�S�9�:�����4�4�S�U�;�<�����3�3��)�)�#�%�0�
�	�		�		�	
����3�3�C�4K�4K�L�M�����3�3�C�4K�4K�L�M�����'�'��
�
�(:�(:�(<�=�	?�����'�'��
�
�(?�(?�(A�B�	D�����'�'�(B�C�	E�����'�'��!�!�)�"3�"3�.�#0�1�
2�	3�	
����+�+�D�1�2�����'�'��
�
�(:�(:�(<�=�	?�����'�'��
�
�(?�(?�(A�B�	D�����'�'�(B�C�	E�����'�'��!�!�)�"3�"3�.�#0�1�
2�	3�	
����,�,�T�2�3�����&�&�x�}�}�'9�'9�';�<�	>�����&�&�x�}�}�'>�'>�'@�A�	C�����&�&�'A�B�	D�����&�&�'G�H�	J�����&�&��!�!�)�"3�"3�4�#6�7�
8�	9�	
����*�*�>�:�;��
�
��h�n�n�&rc��d�}|jtj|���td�}t	d�}|jtj|��|jtj|��Gd�d�}|jtj|���|jtj|��Gd�d�}|�}d�|_|jtj|��|j�|j�y)Nc3�K�d��y�wrr#r#rr�genz,TestPredicates.test_isawaitable.<locals>.gen0s����5�r}rc��eZdZd�Zy)�/TestPredicates.test_isawaitable.<locals>.Futurec��yrr#r#rr�	__await__z9TestPredicates.test_isawaitable.<locals>.Future.__await__:���rN)rLrarbr�r#rr�Futurer�9r�rr�c��eZdZy)�2TestPredicates.test_isawaitable.<locals>.NotFutureN�rLrarbr#rr�	NotFuturer�?��rr�c��yrr#r#rrr�z1TestPredicates.test_isawaitable.<locals>.<lambda>A��r)rTrO�isawaitableryr|rKr�r�)rUr�r�r�r�r��not_futs       r�test_isawaitablezTestPredicates.test_isawaitable/s��������,�,�S�U�3�4�)�!�,��1�!�4������+�+�D�1�2�����+�+�H�5�6�	�	�	
����+�+�F�H�5�6�����,�,�V�4�5����+��(�������,�,�W�5�6��
�
��h�n�n�&rc	�	�|jtjtj��|jtjt
j��|jtjgj��|jtjt
j��|jtjt
jj��|jtjtj��|jtjtj��|jtjtj��|jtjtj��|jtjt�j��|jtjt�j��|jtjt�j��|jtjdj��|jtjt j"��|jtjt$j&��|jtjdj"��|jtjgj&��|j)tjt��|j)tjt���|j)tjt!���|j)tjt
��|j)tjt*��|j)tjt��|j)tjt+ddi���y)N�*��
some_classr#)rKrO�	isroutine�git�arguer��
custom_method�countrx�	StupidGit�abuse�object�__init__�__str__�__lt__r��strr2�listr1rTr�r_s r�test_isroutinezTestPredicates.test_isroutineFs�������)�)�#�)�)�4�5�����)�)�#�*;�*;�<�=�����)�)�"�(�(�3�4�����)�)�#�(�(�3�4�����)�)�#�-�-�*=�*=�>�?�����)�)�&�/�/�:�;�����)�)�&�.�.�9�:�����)�)�&�-�-�8�9�����)�)�#�*�*�5�6�����)�)�&�(�*;�*;�<�=�����)�)�&�(�*:�*:�;�<�����)�)�&�(�/�/�:�;�����)�)�2�+�+�6�7�����)�)�#�(�(�3�4�����)�)�$�+�+�6�7�����)�)�"�'�'�2�3�����)�)�"�)�)�4�5�����*�*�6�2�3�����*�*�6�8�4�5�����*�*�3�5�1�2�����*�*�3�/�0�����*�*�4�0�1�����*�*�3�/�0�����*�*�4��b�"�+E�F�Grc��|jtjd�|jtjt��Gd�dt
�}|j
tj|���y)Nz
mod.StupidGitc��eZdZd�Zy)�2TestPredicates.test_isclass.<locals>.CustomGetattrc��yrr#)rU�attrs  r�__getattr__z>TestPredicates.test_isclass.<locals>.CustomGetattr.__getattr__m���rN�rLrarbr�r#rr�
CustomGetattrr�l���
rr�)rZrOrdrKr�r�rT)rUr�s  r�test_isclasszTestPredicates.test_isclasshsP�����G�O�O�_�5��������-�.�	�F�	�	
��������9�:rc���Gd�dt�}|�}d|_ttj|��}|jd|�|j
d|�y)Nc��eZdZdZy)�/TestPredicates.test_get_slot_members.<locals>.C�r&�bN�rLrarb�	__slots__r#rr�Cr�rs��"�Irr�r�r&r�)r�r&�dictrO�
getmembers�assertIn�assertNotIn)rUr��x�memberss    r�test_get_slot_membersz$TestPredicates.test_get_slot_membersqsO��	#��	#�
�C������w�)�)�!�,�-���
�
�c�7�#�����g�&rc����ddlm}m�G�fd�d|��}Gd�d|�}|�}|jt	j
|��|j
t	j
|��|j
t	j
|��|j
t	j
t��|j
t	j
d��y)	Nr��ABCMeta�abstractmethodc� ��eZdZW�d��Zy)�<TestPredicates.test_isabstract.<locals>.AbstractClassExamplec��yrr#r_s rr.z@TestPredicates.test_isabstract.<locals>.AbstractClassExample.foor�rN�rLrarbr.�r	s�r�AbstractClassExampler}s���
�
��
rr��	metaclassc��eZdZd�Zy)�4TestPredicates.test_isabstract.<locals>.ClassExamplec��yrr#r_s rr.z8TestPredicates.test_isabstract.<locals>.ClassExample.foo�r�rNr
r#rr�ClassExampler�r�rr�)�abcrr	rKrO�
isabstractrTr�)rUrrrr&r	s     @r�test_isabstractzTestPredicates.test_isabstractzs����/�	�W�	�	�/�	�
�N��	
����*�*�+?�@�A�����+�+�L�9�:�����+�+�A�.�/�����+�+�C�0�1�����+�+�A�.�/rc���	�ddlm}m�g�	G�	fd�d|��}G�fd�d|�}Gd�d	|�}|j�	d
dg��	j	�Gd�d
|�}Gd�d|�}Gd�d|�}|j�	gd��y)Nrrc���eZdZ�fd�Zy)�LTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractCheckerc�N���jtj|��yr)r1rOr)r��isabstract_checkss �r�__init_subclass__z^TestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractChecker.__init_subclass__�s���!�(�(��);�);�C�)@�ArN)rLrarbr)rs�r�AbstractCheckerr�s	���
Brr rc� ��eZdZW�d��Zy)�QTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractClassExamplec��yrr#r_s rr.zUTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractClassExample.foo�r�rNr
rs�rrr"�s���
�
��
rrc��eZdZd�Zy)�ITestPredicates.test_isabstract_during_init_subclass.<locals>.ClassExamplec��yrr#r_s rr.zMTestPredicates.test_isabstract_during_init_subclass.<locals>.ClassExample.foo�r�rNr
r#rrrr%�r�rrTFc��eZdZy)�JTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractChildNr�r#rr�
AbstractChildr(����rr)c��eZdZy)�OTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractGrandchildNr�r#rr�AbstractGrandchildr,�r*rr-c��eZdZy)�OTestPredicates.test_isabstract_during_init_subclass.<locals>.ConcreteGrandchildNr�r#rr�ConcreteGrandchildr/�r*rr0)TTF)rrr	�assertEqual�clear)
rUrr rrr)r-r0r	rs
        @@r�$test_isabstract_during_init_subclassz3TestPredicates.test_isabstract_during_init_subclass�s����/���	B��	B�	�?�	�	�/�	�	
���*�T�5�M�:����!�	�0�	�	��	�	��	����*�,?�@rN)rLrarbr�r�r�r�r�rrr3r#rrrr�s1��.L�dp(�d'�. H�D;�'�0�,Arrc�0�eZdZd�Zd�Zd�Zd�Zd�Zd�Zy)�TestInterpreterStackc�x�tjj|g|��i|��tj	ddd�y)N���	)r��TestCaser�r�r��rUr�kwargss   rr�zTestInterpreterStack.__init__�s0�����"�"�4�9�$�9�&�9��	�	�!�Q��rc��|jtjd�|jtjd�y)Nzgit.ex.__traceback__zmod.fr)rZrOrirfr_s r�test_abuse_donez$TestInterpreterStack.test_abuse_done�s)�����G�'�'�)?�@����G�O�O�X�.rc	��|jttj�dk\�tj^}}}}}t	|dd�}|j|tdddgdf�|j|jtjdddd��t	|dd�}|j|tdd	d
gdf�|j|jtjdddd��t	|dd�}|j|td
ddgdf�|j|jtjd
d
dd��t	|dd�}|j|tdddgdf�|j|jtjdddd��tjd}|j|jtj�|j|jd�|j|jtj�|j|j d�|j#d|j$d�|j|j&d�y)Nrr��eggsz    st = inspect.stack()
rr9�rx�    eggs(b + d, c + f)
���+r��            spam(a, b, c)
���'r�z        self.argue(a, b, c)
r8�zinspect.stack())rKr0r��strr1�modfile�	positions�dis�	Positions�assertIs�frame�fr�linenor�__file__�functionr�code_context�index)rU�frame1�frame2�frame3�frame4�_�	frameinfo�records        r�
test_stackzTestInterpreterStack.test_stack�s ������C�F�F��q�(�)�-0�V�V�*�������F�1�2�J�'�	������r�6�$@�#A�1�
E�	G�����)�)�3�=�=��R��B�+G�H��F�1�2�J�'�	������q�&�#=�">��
B�	D�����)�)�3�=�=��A�q�"�+E�F��F�1�2�J�'�	������r�7�%B�$C�Q�
G�	I�����)�)�3�=�=��R��R�+H�I��F�1�2�J�'�	������r�7�%D�$E�q�
I�	K�����)�)�3�=�=��R��B�+G�H��������
�
�f�l�l�C�F�F�+��������+�������#�,�,�7�������&�1��
�
�'��)<�)<�Q�)?�@�������q�)rc	��|jttj�d�tj\}}}|jt	|dd�t
dddgdf�|j|jtjdddd��|jt	|dd�t
d	d
dgdf�|j|jtjd	d	dd
��|jt	|dd�t
dddgdf�|j|jtjdddd��y)N�rrFr�rGrrHrIr9rxrCrDrE�rAz    q = y / 0
r8�
)	r1r0r��trrrMrNrOrP)rUrYrZr[s    r�
test_tracezTestInterpreterStack.test_trace�s"������S�V�V��a�(�"%�&�&�������������,��r�7�%B�$C�Q�
G�	I�����)�)�3�=�=��R��R�+H�I���������,��q�&�#=�">��
B�	D�����)�)�3�=�=��A�q�"�+E�F���������,��r�6�$5�#6��
:�	<�����)�)�3�=�=��R��B�+G�Hrc�@�tjtj�\}}}}|j	|ddg�|j	|d�|j	|d�|j	|dddd��|j	tj
||||�d�y)Nr�y��)rr6rhz(x=11, y=14))rO�getargvaluesr�rSr1�formatargvalues�rUr�varargs�varkw�localss     r�
test_framezTestInterpreterStack.test_frame�s���'.�';�';�C�F�F�'C�$��g�u�f������S�z�*�����$�'������%�����r���!<�=�����0�0��w��v�N�'�	)rc�(�tjtjj�\}}}}|j|gd��|j|d�|j|d�|jtj||||�d�y)N)r&r�r�dr��f�g�hz-(a=7, b=8, c=9, d=3, e=4, f=5, *g=(), **h={}))rOrkr�rS�f_backr1rlrms     r�test_previous_framez(TestInterpreterStack.test_previous_frame�sx��'.�';�';�C�F�F�M�M�'J�$��g�u�f�����=�>�����#�&������$�����0�0��w��v�N�
<�	>rN)	rLrarbr�r>r`rfrqrxr#rrr5r5�s!���
/�*�8I�)�>rr5c�"�eZdZdZd�Zd�Zd�Zy)�
GetSourceBaseNc��ttj|j�d��5}|j	�|_ddd�y#1swYyxYw)N�utf-8��encoding)�openrO�
getsourcefile�fodderModule�read�source)rU�fps  r�setUpzGetSourceBase.setUp�sB��
�'�'�'��(9�(9�:�W�
M�	$�QS��'�'�)�D�K�	$�	$�	$�s�A
�
Ac�x�|jjd�}dj||dz
|�|rdzSdzS)N�
rr�)r��splitr2)rU�top�bottom�liness    r�sourcerangezGetSourceBase.sourcerange�s?�����!�!�$�'���y�y��s�1�u�V�,�-���H�H�R�H�Hrc�n�|jtj|�|j||��yr)r1rO�	getsourcer�)rUrXr�r�s    r�assertSourceEqualzGetSourceBase.assertSourceEqual�s-������*�*�3�/��)�)�#�v�6�	8r)rLrarbr�r�r�r�r#rrrzrz�s���L�$�I�8rrzc��eZdZdZddd�Zy)�SlotUserzDocstrings for __slots__�measured in kilowatts�measured in kilometers)�power�distanceN)rLrarb�__doc__r�r#rrr�r��s���1�5�7�Irr�c�n�eZdZeZd�Zd�Zeje	jjdk\d�d��Zeje	jjdk\d�d��Z
ejed�d��Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�TestRetrievingSourceCodec��tjttj�}|j	|dtj
fdtjfdtjfdtjfdtjfdtjfg�tj|D�cgc]}|d��	c}�}|j	|tdftjtfftj
tjtjffgtjtfftjtjfftj
tjtjffggtjtffgg�tj|D�cgc]}|d��	c}d	�}|j	|tdftjtfftjtfftjtjfftj
tjtjffggtjtffgg�ycc}wcc}w)
N�FesteringGob�MalodorousPervert�ParrotDroppingsr��Tit�
WhichCommentsrr#T)rOrr�rdr1r�r�r�r�r��getclasstreer�)rU�classesr��trees    r�test_getclassesz(TestRetrievingSourceCode.test_getclassess(���$�$�S�'�/�/�:������)�3�+;�+;�<�.��0E�0E�F�,�c�.A�.A�B�&��
�
�6� �#�"7�"7�8�*�C�,=�,=�>��	��#�#�w�$?��S��V�$?�@������!�2�,��/�/�&��;� �-�-��0E�0E�36�3F�3F�0H�I�� �M�M�F�9�5� �2�2�S�]�]�4D�E�!�.�.��1F�1F�47�4G�4G�1I�J���
!�.�.��	�;��
�	��#�#�w�$?��S��V�$?��F������!�2�,��/�/�&��;��M�M�F�9�5� �2�2�S�]�]�4D�E�!�.�.��1F�1F�47�4G�4G�1I�J���
!�.�.��	�;��
�	��#%@�� %@s�4I9�7I>c��tjttj�}|j	|dtj
fdtjfdtjfdtjfg�y)N�
after_closingrA�lobbestrx)	rOrr�rSr1r�rAr�rx)rU�	functionss  r�test_getfunctionsz*TestRetrievingSourceCode.test_getfunctions-s`���&�&�s�G�,>�,>�?�	�����o�s�7H�7H�%I�&,�c�h�h�%7�&/����%=�&,�c�h�h�%7�%9�	:rr-z)Docstrings are omitted with -O2 and abovec���|jtjt�d�|jtjtj�d�|jtjt
j�d�|jtjtj�d�|jtjtj�d�y)NzA module docstring.�A longer,

indented

docstring.�$Another

docstring

containing

tabsr�r�)
r1rO�getdocr�r�r�r�r�r�r�r_s r�test_getdocz$TestRetrievingSourceCode.test_getdoc4s���	
�������,�.C�D��������
�
�6�>�	@��������	�	�2�E�	G����������7�0�	2��������(9�(9�:�1�	3rc���|jtjtj�d�|jtjtjj
�d�|jtjtj�j
�d�|jtjtjj�d�y)Nr�r�zThe automatic gainsaying.)r1rOr�r�r�r��
contradictionr_s r�test_getdoc_inheritedz.TestRetrievingSourceCode.test_getdoc_inheritedAs���	
�������(8�(8�9�>�	@��������(8�(8�(>�(>�?�E�	G��������(8�(8�(:�(@�(@�A�E�	G��������(8�(8�(F�(F�G�4�	6rztest requires docstringsc�p�tj}|j|t�tj�|j|tj
�tj
j�|j|t�j
�tj
j�|j|tj�tjj�|j|tj�tjj�yr)rO�_finddocr1r�r��to_bytes�
from_bytes�real)rU�finddocs  r�test_finddocz%TestRetrievingSourceCode.test_finddocMs����"�"��������s�{�{�3��������.����0D�0D�E���������0�#�,�,�2F�2F�G��������0�#�.�.�2H�2H�I��������*�C�H�H�,<�,<�=rc�N�|jtjd�d�y)NzAn
    indented
    docstring.zAn
indented
docstring.)r1rO�cleandocr_s r�
test_cleandocz&TestRetrievingSourceCode.test_cleandocVs!������)�)�*L�M�3�	5rc���|jtjt�d�|jtjtj�d�|jtjt
j�d�tddd�}|jtj|��|jtjt��y)N�	# line 1
z
# line 20
z# line 159
�x=1z_non_existing_filename.pyr3)
r1rO�getcommentsr�r��mod2�cls160�compile�assertIsNoner�)rU�cos  r�test_getcommentsz)TestRetrievingSourceCode.test_getcommentsZs�������,�,�S�1�<�@�����,�,�S�]�]�;�]�K�����,�,�T�[�[�9�>�J�
�U�7��
@�����'�-�-�b�1�2����'�-�-�d�3�4rc��|jtjt�t�|jtjtj�t�|jtjtjj
�t�|jtjtjj
�t�|jtjt�tjd�|jtjdt�t�y)N�builtins)
r1rO�	getmoduler�r�r�r��sys�modulesrMr_s r�test_getmodulez'TestRetrievingSourceCode.test_getmoduleds�������*�*�3�/��5�����*�*�3�=�=�9�3�?�����*�*�3�=�=�+>�+>�?��E�����*�*�3�=�=�+>�+>�?��E�����*�*�3�/����Z�1H�I�����*�*�4��9�3�?rc��d�}tjjd|�5tj�}|jtj|��tj|�ddd�y#1swYyxYw)Nc��td��)Nzbad file)�FileNotFoundError)rX�	_filenames  r�_getabsfilezKTestRetrievingSourceCode.test_getmodule_file_not_found.<locals>._getabsfilets
��#�J�/�/rzinspect.getabsfile)r�r��patchrO�currentframer�r��getouterframes)rUr�rts   r�test_getmodule_file_not_foundz6TestRetrievingSourceCode.test_getmodule_file_not_foundrsf��	0�
�]�]�
 �
 �!5�{�
C�	&��$�$�&�A����g�/�/��2�3��"�"�1�%�	&�	&�	&�s�AA;�;Bc���tj|jjd�}|j	|j
dd�|j	|j
dd�y)N�2rr�rz'A module docstring.'
)rO�getframeinfor�rSr1rW)rU�
frame_infos  r� test_getframeinfo_get_first_linez9TestRetrievingSourceCode.test_getframeinfo_get_first_line{sW���)�)�$�*;�*;�*>�*>��C�
�����0�0��3�\�B�����0�0��3�5N�Orc��|jtjdd�|jtjdd�|jtj
dd�|jtjdd�y)N�rJ��3�K�L�x)r�r�r�r�r�r�r�r_s r�test_getsourcez'TestRetrievingSourceCode.test_getsource�s\�����s�y�y�"�b�1����s�}�}�b�"�5����s�{�{�B��3����s�0�0�#�s�;rc��|jttjtj
��t�|jttjtj��t�d}td|d�}|jtj|�d�ddd|jftj|j<	|jttj|��|�tj|j=y#tj|j=wxYw)Nz2_non_existing_filename_used_for_sourcefile_test.pyr�r3r�None)
r1rrOr�r�rxrMr�r�r��co_filename�	linecache�cache)rU�fnr�s   r�test_getsourcefilez+TestRetrievingSourceCode.test_getsourcefile�s�������'�"7�"7����"A�B�G�L�����'�"7�"7��	�	�"B�C�W�M�
A��
�U�B��
'������.�.�r�2�D�9�+,�d�F�B�N�N�*K�	������'�	0����X�g�&;�&;�B�&?�@�"�E�������/��	������/�s�!.D+�+Ec��|jtjtj�tj
�yr)r1rO�getfiler�r�rUr_s r�test_getfilez%TestRetrievingSourceCode.test_getfile�s#�����������7����Frc���|jt�5}tjt�ddd�|jt
j�jd��y#1swY�=xYw)Nz<module)	�assertRaises�	TypeErrorrOr�r�rKr��	exception�
startswithr�s  r�test_getfile_builtin_modulez4TestRetrievingSourceCode.test_getfile_builtin_module�sS��
�
�
�y�
)�	!�Q��O�O�C� �	!�����A�K�K�(�3�3�I�>�?�	!�	!���A,�,A5c���|jt�5}tjt�ddd�|jt
j�jd��y#1swY�=xYw)Nz<class)	r�r�rOr�r�rKr�r�r�r�s  r�test_getfile_builtin_classz3TestRetrievingSourceCode.test_getfile_builtin_class�sS��
�
�
�y�
)�	!�Q��O�O�C� �	!�����A�K�K�(�3�3�H�=�>�	!�	!�r�c��|jt�5}tjt�ddd�|jdt
j��|jt�5}tjtj�ddd�|jdt
j��y#1swY��xYw#1swY�;xYw)Nz
expected, got)
r�r�rOr��absrr�r�r�r1)rU�e_abs�e_appends   r�'test_getfile_builtin_function_or_methodz@TestRetrievingSourceCode.test_getfile_builtin_function_or_method�s���
�
�
�y�
)�	!�U��O�O�C� �	!��
�
�o�s�5�?�?�';�<�
�
�
�y�
)�	)�X��O�O�D�K�K�(�	)��
�
�o�s�8�+=�+=�'>�?�	!�	!��	)�	)�s�C�2$C�C
�Cc��Gd�dt�}Gd�d|��}|jt�5tj|�ddd�y#1swYyxYw)Nc��eZdZed��Zy)�FTestRetrievingSourceCode.test_getfile_class_without_module.<locals>.CMc��t�r��AttributeErrorr�s rrazQTestRetrievingSourceCode.test_getfile_class_without_module.<locals>.CM.__module__�s��$�$rN)rLrarb�propertyr#rr�CMr�����
�
%��
%rr�c��eZdZy)�ETestRetrievingSourceCode.test_getfile_class_without_module.<locals>.CNr�r#rrr�r�r*rr�r)r�r�r�rOr�)rUr�r�s   r�!test_getfile_class_without_modulez:TestRetrievingSourceCode.test_getfile_class_without_module�sI��	%��	%�	�"�	�
�
�
�y�
)�	��O�O�A��	�	�	�s�A�Ac��Gd�d�}|�}|jt�5tj|�ddd�y#1swYyxYw)Nc��eZdZd�Zy)�DTestRetrievingSourceCode.test_getfile_broken_repr.<locals>.ErrorReprc��td��)N�xyz)r�r_s r�__repr__zMTestRetrievingSourceCode.test_getfile_broken_repr.<locals>.ErrorRepr.__repr__�s
����&�&rN)rLrarbr	r#rr�	ErrorReprr�s��
'rr
)r�r�rOr�)rUr
�ers   r�test_getfile_broken_reprz1TestRetrievingSourceCode.test_getfile_broken_repr�sD��	'�	'��[��
�
�
�y�
)�	 ��O�O�B��	 �	 �	 �s�A�Ac�f�ddlm}d}||�x}tj|<d|_d|_t
d|j�|jtj|jj�d�tj|=tjtddd	��y)
Nr)�
ModuleType�__inspect_dummy�<string>�dummyz
def x(): passza=10r��single)r�rr�r�rU�
__loader__r3�__dict__r1rOr�r�__code__r�r�)rUr�name�ms    r�test_getmodule_recursionz1TestRetrievingSourceCode.test_getmodule_recursion�s���$� �� *�4� 0�0��C�K�K�����
�����_�a�j�j�)�����.�.�q�s�s�|�|�<�j�I��K�K������'�&��H�5�6rc������d\��tj�d���fd�	}|t_	i}tt��d�|�t	j
|d��t_y#�t_wxYw)z4doctest monkeypatches linecache to enable inspection)z<test>zdef x(): pass
Nc�D��|�k(r�jd��S�||�S)NT)�keepends)�
splitlines)r�module_globalsr��getlinesr�s  ���r�monkeyzHTestRetrievingSourceCode.test_proceed_with_fake_filename.<locals>.monkey�s+����2�~��(�(�$�(�7�7���.�9�9rrrr)r�rr3r�rOr�)rUr�nsr�rr�s   @@@r�test_proceed_with_fake_filenamez8TestRetrievingSourceCode.test_proceed_with_fake_filename�sf���0�
��F��%�%��	:�
$�	��	*��B�����X�.��3����b��g�&�!)�I����I��s�1A*�*
A7c�Z�|jtjjdd�y)NrHrc)r�r�rArr_s r�test_getsource_on_code_objectz6TestRetrievingSourceCode.test_getsource_on_code_object�s�����s�x�x�0�0�"�b�9rN) rLrarbr�r�r�r�r��skipIfr��flags�optimizer�r�rr�r�r�r�r�r�r�r�r�r�r�r�rrrr!r#r#rrr�r�s����L�&�P:��X�_�_�S�Y�Y�'�'�1�,�@�B�	3�B�	3��X�_�_�S�Y�Y�'�'�1�,�@�B�6�B�6��X�_�_�)�+E�F�>�G�>�5�5�@�&�P�
<�
0�G�@�
?�
@�� �	7�*�":rr�c��eZdZd�Zy)�TestGetsourceInteractivec�P�d}td|d��\}}}|jd|�y)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)rU�coder]�stderrs    r�test_getclasses_interactivez4TestGetsourceInteractive.test_getclasses_interactive�s.��&��-�T�4�D�I���1�f��
�
�;�V�DrN)rLrarbr-r#rrr(r(�s��Err(c��eZdZeZd�Zd�Zy)�!TestGettingSourceOfToplevelFramesc�T�d|_|jtjdd�y�Nr)�maxDiffr�r�r�r_s r�test_range_toplevel_framez;TestGettingSourceOfToplevelFrames.test_range_toplevel_frame�s!��������s�/�/��D�9rc�F�|jtjdd�yr1)r�r�r�r_s r�#test_range_traceback_toplevel_framezETestGettingSourceOfToplevelFrames.test_range_traceback_toplevel_frame�s�����s�v�v�q�$�/rN)rLrarbr�r�r3r5r#rrr/r/�s���L�:�0rr/c�(�eZdZeZd�Zd�Zd�Zd�Zy)�TestDecoratorsc�F�|jtjdd�y)Nrj�)r�r��wrappedr_s r�test_wrapped_decoratorz%TestDecorators.test_wrapped_decorator�s�����t�|�|�R��4rc�F�|jtjdd�y)Nr9�
)r�r��goner_s r�test_replacing_decoratorz'TestDecorators.test_replacing_decorator�s�����t�y�y�!�R�0rc�F�|jtjdd�y)N��)r�r�r�r_s r�test_getsource_unwrapz$TestDecorators.test_getsource_unwrap�s�����t�y�y�#�s�3rc�F�|jtjdd�y)N�q�s)r�r��func114r_s r�test_decorator_with_lambdaz)TestDecorators.test_decorator_with_lambda�s�����t�|�|�S�#�6rN)	rLrarbr�r�r;r?rCrHr#rrr7r7�s���L�5�1�4�7rr7c�R�eZdZeZd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zy)
�
TestOnelinersc�F�|jtjdd�y)NrI)r�r��ollr_s r�test_oneline_lambdaz!TestOneliners.test_oneline_lambda�s�����t�x�x��R�0rc�F�|jtjdd�y)N��)r�r��tllr_s r�test_threeline_lambdaz#TestOneliners.test_threeline_lambdas��	
���t�x�x��R�0rc�F�|jtjdd�y)N�!�")r�r��tllir_s r�test_twoline_indented_lambdaz*TestOneliners.test_twoline_indented_lambdas��	
���t�y�y�"�b�1rc���|jtjdd�|jtjdd�|jtjdd�y)Niii)r�r��parenthesized_lambda�parenthesized_lambda2�parenthesized_lambda3r_s r�#test_parenthesized_multiline_lambdaz1TestOneliners.test_parenthesized_multiline_lambdasL��	
���t�8�8�#�s�C����t�9�9�3��D����t�9�9�3��Drc�F�|jtjdd�y)Nii)r�r��post_line_parenthesized_lambda1r_s r�#test_post_line_parenthesized_lambdaz1TestOneliners.test_post_line_parenthesized_lambdas��	
���t�C�C�S�#�Nrc�F�|jtjdd�y)Ni#i$)r�r��
nested_lambdar_s r�test_nested_lambdaz TestOneliners.test_nested_lambdas�����t�1�1�3��<rc�F�|jtjdd�y)N�%)r�r��onelinefuncr_s r�test_onelinefunczTestOneliners.test_onelinefuncs�����t�/�/��R�8rc�F�|jtjdd�y)N�(�))r�r��manyargsr_s r�
test_manyargszTestOneliners.test_manyargs s��	
���t�}�}�b�"�5rc�F�|jtjdd�y)N�,�-)r�r��twolinefuncr_s r�test_twolinefunczTestOneliners.test_twolinefunc&s��	
���t�/�/��R�8rc�L�|jtjddd�y)Nr�1)r�r�r&r_s r�test_lambda_in_listz!TestOneliners.test_lambda_in_list,s��	
���t�v�v�a�y�"�b�1rc�F�|jtjdd�y)N�7)r�r��	anonymousr_s r�test_anonymouszTestOneliners.test_anonymous1s��	
���t�~�~�r�2�6rN)rLrarbr�r�rMrRrWr\r_rbrfrkrprsrwr#rrrJrJ�s@���L�1�1�
2�
E�O�
=�9�6�9�2�
7rrJc�"�eZdZeZd�Zd�Zd�Zy)�TestBlockCommentsc�F�|jtjdd�y)N�`�r)r�r�r�r_s r�test_toplevel_classz%TestBlockComments.test_toplevel_class9s�����s�0�0�"�c�:rc�Z�|jtjjdd�y)N�c�h)r�r�r�rtr_s r�test_class_methodz#TestBlockComments.test_class_method<s �����s�0�0�2�2�B��<rc�Z�|jtjjdd�y)N�m�p)r�r�r��asyncfr_s r�test_class_async_methodz)TestBlockComments.test_class_async_method?s �����s�0�0�7�7��c�BrN)rLrarbr�r�r}r�r�r#rrryry6s���L�;�=�Crryc�f�eZdZeZd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zejeed�xsej j#d	�d
�d��Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zeje jBxse jDd�d��Z#y)�TestBuggyCasesc�F�|jtjdd�y)N�:�;)r�r��with_commentr_s r�test_with_commentz TestBuggyCases.test_with_commentEs�����t�0�0�"�b�9rc�L�|jtjddd�y)Nr�?�@)r�r��
multiline_sigr_s r�test_multiline_sigz!TestBuggyCases.test_multiline_sigHs�����t�1�1�!�4�b�"�=rc�b�|jtj�jdd�y)N�G�H)r�r��func69�func71r_s r�test_nested_classz TestBuggyCases.test_nested_classKs �����t�{�{�}�3�3�R��<rc�F�|jtjdd�y)N�M)r�r��func77r_s r�#test_one_liner_followed_by_non_namez2TestBuggyCases.test_one_liner_followed_by_non_nameN������t�{�{�B��3rc�Z�|jtjjdd�y)N�S)r�r��cls82�func83r_s r�test_one_liner_dedent_non_namez-TestBuggyCases.test_one_liner_dedent_non_nameQs�����t�z�z�0�0�"�b�9rc�F�|jtjdd�y)N�X�Z)r�r��func88r_s r�&test_with_comment_instead_of_docstringz5TestBuggyCases.test_with_comment_instead_of_docstringTr�rc�F�|jtjdd�y)N�_�a)r�r��method_in_dynamic_classr_s r�test_method_in_dynamic_classz+TestBuggyCases.test_method_in_dynamic_classWs�����t�;�;�R��DrrUz.pyz,unicodedata is not an external binary modulec��|jttjt�|jttj
t�yr)r��OSErrorrOr��unicodedata�
findsourcer_s r�test_findsource_binaryz%TestBuggyCases.test_findsource_binary\s4��	
���'�7�#4�#4�k�B����'�7�#5�#5�{�Crc�*�dg}t|ddd�}|jttj|�|jttj
|�dd||jftj|j<	|jtj|�|df�|jtj
|�|d�tj|j=y#tj|j=wxYw)Nr�r�_dynamically_created_filer3r)
r�r�r�rOr�r�r�r�r�r1)rUr�r�s   r�!test_findsource_code_in_linecachez0TestBuggyCases.test_findsource_code_in_linecachecs������
�U�1�X�:�F�
C�����'�7�#5�#5�r�:����'�7�#4�#4�b�9�+,�d�E�2�>�>�*J�	������'�	0����W�/�/��3�e�A�Y�?����W�.�.�r�2�E�!�H�=�������/��	������/�s
�
AC5�5Dc��dD]Y}td|d�}|jttj|�|jttj
|��[y)N)r�rr�r3)r�r��IOErrorrOr�r�)rU�fnamer�s   r� test_findsource_without_filenamez/TestBuggyCases.test_findsource_without_filenameosO��%�	>�E����v�.�B����g�w�'9�'9�2�>����g�w�'8�'8�"�=�	>rc��ttjt��}d|zdz}t	|tj
d�}ii}}t
|||�|d}|j|jjdd|zz�|jtd�5tj|�ddd�y#1swYyxYw)Nz

z
def f(): passr3rtrr-zlineno is out of bounds)
r0rOr�r�r�rUrJr1r�co_firstlineno�assertRaisesRegexr�r�)rU�mod_len�srcr�ru�l�funcs       r�)test_findsource_with_out_of_bounds_linenoz8TestBuggyCases.test_findsource_with_out_of_bounds_linenous����g�'�'��,�-�����/�1��
�S�#�,�,��
/���2�1���R��A����v��������5�5�q��7��{�C�
�
#�
#�G�-F�
G�	%����t�$�	%�	%�	%�s�B=�=Cc�Z�|jtjjdd�y)N�v�w)r�r��ClassWithMethod�methodr_s r�test_getsource_on_methodz'TestBuggyCases.test_getsource_on_method�s �����t�3�3�:�:�C��Erc�Z�|jtjjdd�y)N��)r�r��cls135�func136r_s r�test_nested_funczTestBuggyCases.test_nested_func�s�����t�{�{�2�2�C��=rc�F�|jtjdd�y)N��)r�r��cls149r_s r�4test_class_definition_in_multiline_string_definitionzCTestBuggyCases.test_class_definition_in_multiline_string_definition�������t�{�{�C��5rc�F�|jtjdd�y)N��)r�r�r�r_s r�*test_class_definition_in_multiline_commentz9TestBuggyCases.test_class_definition_in_multiline_comment�r�rc�Z�|jtjjdd�y)N��)r�r��cls173�cls175r_s r�,test_nested_class_definition_indented_stringz;TestBuggyCases.test_nested_class_definition_indented_string�s�����t�{�{�1�1�3��<rc��|jtjdd�|jtjjdd�y)N���)r�r��cls183�cls185r_s r�test_nested_class_definitionz+TestBuggyCases.test_nested_class_definition��4�����t�{�{�C��5����t�{�{�1�1�3��<rc��|jtjdd�|jtjjdd�y)N������)r�r��cls196�cls200r_s r�test_class_decoratorz#TestBuggyCases.test_class_decorator�r�rc��|jtjdd�|jtjjdd�y)N������)r�r��cls238�cls239r_s r�test_class_inside_conditionalz,TestBuggyCases.test_class_inside_conditional�r�rc���|jtjdd�|jtjjdd�|jtjjjdd�|jtjj
dd�|jtjj
jdd�y)N��������������)r�r��cls203�cls204�cls205�cls207r_s r�test_multiple_children_classesz-TestBuggyCases.test_multiple_children_classes�s������t�{�{�C��5����t�{�{�1�1�3��<����t�{�{�1�1�8�8�#�s�C����t�{�{�1�1�3��<����t�{�{�1�1�8�8�#�s�Crc��|jtj�dd�|jtjdd�|jtj�j	�dd�y)N������������)r�r��func212�cls213�func219r_s r�,test_nested_class_definition_inside_functionz;TestBuggyCases.test_nested_class_definition_inside_function�sQ�����t�|�|�~�s�C�8����t�{�{�C��5����t�{�{�}�4�4�6��S�Arzsocket.accept is brokenc�v�ddl}|j|jd�|j|jtj��dd�|jt
jdd�|j|jtj�j��dd�y)Nr������������)	r!�
addCleanupr"r��runr��func225�cls226�func232)rUr!s  r�2test_nested_class_definition_inside_async_functionzATestBuggyCases.test_nested_class_definition_inside_async_function�s���
	�����5�5�t�<����{�w�{�{�4�<�<�>�:�C��E����t�{�{�C��5����{�w�{�{�4�;�;�=�+@�+@�+B�C�S�#�NrN)$rLrarbr�r�r�r�r�r�r�r�r�r�r$r�r�rU�endswithr�r�r�r�r�r�r�r�r�r�r�r�r�r
r�
is_emscripten�is_wasirr#rrr�r�Bs����L�:�>�=�4�:�4�E�
�X�_�_���j�9�9�F�!,�!5�!5�!>�!>�u�!E�C�E�D�E�D�
0�>�	%�F�>�6�6�=�=�=�=�D�B�
�X�_�_����0����!��O�	�Orr�c�*��eZdZ�fd�Zd�Zd�Z�xZS)�	TestNoEOLc���tdz|_tj|j�t	tj
j
|jdtjz�dd��5}|jd�ddd�t|j�5ddl
}ddd�|_t�|�5�y#1swY�AxYw#1swY�+xYw)N�_dirzinspect_fodder3%spy�wr|r}zclass X:
    pass # No EOLr)r�tempdir�os�mkdirr�pathr2�extsep�writer	�inspect_fodder3r��superr�)rUrt�mod3�	__class__s   �rr�zTestNoEOL.setUp�s���������
�������
�"�'�'�,�,�t�|�|�-B�R�Y�Y�-N�O���)�	3�,-�
�G�G�1�2�	3��4�<�<�
(�	+�*�	+� ���
��
��
	3�	3��	+�	+�s�6C�%C�C�Cc�B�tj|j�yr)�shutil�rmtreer r_s r�tearDownzTestNoEOL.tearDown�s���
�
�d�l�l�#rc�R�|j|jjdd�y)Nrr-)r�r��Xr_s r�
test_classzTestNoEOL.test_class�s �����t�0�0�2�2�A�q�9r)rLrarbr�r-r0�
__classcell__�r)s@rrr�s���	�$�:rrc��eZdZeZd�Zy)�TestComplexDecoratorc�R�|j|jjdd�y)Nii)r�r��complex_decoratedr_s r�test_parens_in_decoratorz-TestComplexDecorator.test_parens_in_decorator�s �����t�0�0�B�B�C��MrN)rLrarbr�r�r7r#rrr4r4�s
���L�Nrr4c�"�eZdZdZd�Zd�Zd�Zy)�_BrokenDataDescriptorz2
    A broken data descriptor. See bug #1785.
    c��td���Nzbroken data descriptorr��rs r�__get__z_BrokenDataDescriptor.__get__�����5�6�6rc��t�r)�RuntimeErrorr<s r�__set__z_BrokenDataDescriptor.__set__�s���rc��td��r;r�r<s rr�z!_BrokenDataDescriptor.__getattr__�r>rN)rLrarbr�r=rAr�r#rrr9r9�s���7��7rr9c��eZdZdZd�Zd�Zy)�_BrokenMethodDescriptorz4
    A broken method descriptor. See bug #1785.
    c��td���Nzbroken method descriptorr�r<s rr=z_BrokenMethodDescriptor.__get__�����7�8�8rc��td��rFr�r<s rr�z#_BrokenMethodDescriptor.__getattr__�rGrN)rLrarbr�r=r�r#rrrDrD�s���9�9rrDc�X�tj|�D�cgc]}|dd��	c}Scc}w�Nrb)rO�classify_class_attrs)r��ts  r�
attrs_wo_objsrM�s'��"�7�7��<�=�a�A�b�q�E�=�=��=s�'c�J�eZdZd�Zdddggdifd�Zd�Zd�Zd�Zd�Ze	jed�d	��Ze
e	jed�d
���Ze
e	jed�d���Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�TestClassesAndFunctionsc���Gd�dt�}Gd�d|�}Gd�d|�}Gd�d||�}||||tf}tj|�}|j||�y)	Nc��eZdZy)�4TestClassesAndFunctions.test_newstyle_mro.<locals>.ANr�r#rr�ArR�r�rrSc��eZdZy)�4TestClassesAndFunctions.test_newstyle_mro.<locals>.BNr�r#rr�BrU�r�rrVc��eZdZy)�4TestClassesAndFunctions.test_newstyle_mro.<locals>.CNr�r#rrr�rX�r�rr�c��eZdZy)�4TestClassesAndFunctions.test_newstyle_mro.<locals>.DNr�r#rr�DrZ�r�rr[)r�rO�getmror1)rUrSrVr�r[�expected�gots       r�test_newstyle_mroz)TestClassesAndFunctions.test_newstyle_mro�sR�� �� ���������1���q�!�Q��'���n�n�Q�������3�'rNc
�:�tj|�\}
}}}
}}}|j|
|�|j||�|j||�|j|
|�|j||�|j||�|j||	�yr)rO�getfullargspecr1)rU�routine�args_e�	varargs_e�varkw_e�
defaults_e�
posonlyargs_e�kwonlyargs_e�kwonlydefaults_e�ann_errnro�defaults�
kwonlyargs�kwonlydefaults�anns                 r�assertFullArgSpecEqualsz/TestClassesAndFunctions.assertFullArgSpecEquals�s���
�"�"�7�+�	H��g�u�h�
�N�C�����v�&�����)�,������(�����:�.�����\�2�����)9�:�����e�$rc	���|jtjgddgddi��|jtjdgdti��|jtj
gdg��|jtjgd�d	d
g��|jtjgd�ddd	d
g�
�|jtjgd�dd	d
gddd���y)N�arg1�arg2r)rdrhri)rj�arg)rh�r&r�rrsr�rtrr<)rdrerh�rr-rbrDr)r�rt)rfrhri)	ror��	keyworded�	annotatedr��keyword_only_arg�all_markers� all_markers_with_args_and_kwargs�all_markers_with_defaultsr_s r�test_getfullargspecz+TestClassesAndFunctions.test_getfullargspecs����$�$�T�^�^�R�6�39�(�7=�a�j�	%�	B�	
�$�$�T�^�^�f�X�,2�T�?�	%�	<��$�$�T�%:�%:�B�38�'�	%�	;�	
�$�$�T�%5�%5�7K�36��*�	%�	>�	
�$�$�T�%J�%J�%9�/5�-5�36��*�		%�	>�	
�$�$�T�%C�%C�EY�07�36��*�<=�A�6F�	%�	Hrc���tjtj�d��}|j	|ddg�|j	tj
|�ddg�y)Nc��yrr#�rrhs  r�hamzETestClassesAndFunctions.test_argspec_api_ignores_wrapped.<locals>.ham���rrrh)r��wrapsr�rxror�)rUr�s  r� test_argspec_api_ignores_wrappedz8TestClassesAndFunctions.test_argspec_api_ignores_wrappedsY��	������	"�	�
#�	�	
�$�$�S�3��*�5��$�$�Y�%6�%6�s�%;�&)�3�Z�	1rc���d�}tjdtjj�}tj|f��|_|j|dg�y)Nc��yrr#r#rr�testzHTestClassesAndFunctions.test_getfullargspec_signature_attr.<locals>.test'���rrx�r4)rO�	Parameter�POSITIONAL_ONLY�	Signature�
__signature__ro)rUr��
spam_params   r�"test_getfullargspec_signature_attrz:TestClassesAndFunctions.test_getfullargspec_signature_attr&sL��	��&�&�v�w�/@�/@�/P�/P�Q�
�$�.�.�:�-�H����$�$�T�F�8�4rc��dd�}tj|�}|j|j|j�d�}tj|�}|j|j|j�y)Nc��yrr#�r&s rr�zITestClassesAndFunctions.test_getfullargspec_signature_annos.<locals>.test/r�rc��yrr#r#rrr�zITestClassesAndFunctions.test_getfullargspec_signature_annos.<locals>.test3r�r)r&rx�returnr�)rOrar1�__annotations__�annotations)rUr��specs   r�#test_getfullargspec_signature_annosz;TestClassesAndFunctions.test_getfullargspec_signature_annos.s`��)��%�%�d�+������-�-�t�/?�/?�@���%�%�d�+������-�-�t�/?�/?�@r�6Signature information for builtins requires docstringsc�4�|jtjjddg�|jtjt	j
��jddg�|jtjdgddgddd���y)	NrUrXr#�dir_fd�follow_symlinksT)r�r�)rcrhri)ro�_pickle�Pickler�dump�io�BytesIOr!�statr_s r�#test_getfullargspec_builtin_methodsz;TestClassesAndFunctions.test_getfullargspec_builtin_methods7s}��	
�$�$�W�_�_�%9�%9�F�E�?�K��$�$�W�_�_�R�Z�Z�\�%B�%G�%G�&�RW��Y��$�$�
�W�W��H�#�%6�7�)-�$�G�		%�	Irc��ddl}|j}tj|�}|j	|j
dd�y)Nr�avocado)�	_testcapi�&docstring_with_signature_with_defaultsrOrar1rk)rUr��builtinr�s    r� test_getfullargspec_builtin_funcz8TestClassesAndFunctions.test_getfullargspec_builtin_funcDs;��	��B�B���%�%�g�.��������q�)�9�5rc��ddl}|j}|jt�5t	j
|�ddd�y#1swYyxYw�Nr)r��docstring_no_signaturer�r�rOra)rUr�r�s   r�-test_getfullargspec_builtin_func_no_signaturezETestClassesAndFunctions.test_getfullargspec_builtin_func_no_signatureMsC��	��2�2��
�
�
�y�
)�	,��"�"�7�+�	,�	,�	,�s�A�Ac�Z�t�D]Z}tj|�}t|j�}t|�}|j
|�|j||��\tjt�}t|j�}|j|t�yr)
r;rOrar�rl�sortedrKr1rD� unsorted_keyword_only_parameters�rUr��	signaturer��sorted_ls     r�8test_getfullargspec_definition_order_preserved_on_kwonlyzPTestClassesAndFunctions.test_getfullargspec_definition_order_preserved_on_kwonlyVs���G�I�	*�B��.�.�r�2�I��Y�)�)�*�A��a�y�H��O�O�A�����Q��)�	*��*�*�+N�O�	���%�%�&������<�=rc��Gd�dt�}t|�}|jddtf|d�|jddtf|d�|jd	d|f|d
�|jdd|f|d
�|jdd|f|d�|jdd|f|d|z�|jdd|f|d�|jdd|f|d�|jdd|f|d�|jdd|f|d�Gd�d|�}t|�}|jd	d|f|d
�|jdd|f|d
�|jdd|f|d�|jdd|f|d�|jdd|f|d�|jdd|f|d�|jdd|f|d�|jdd|f|d�Gd�d|�}t|�}|jd	d|f|d
�|jdd|f|d�|jdd|f|d�|jdd|f|d�|jdd|f|d�|jdd|f|d�|jdd|f|d�|jdd|f|d�Gd �d!||�}t|�}|jd	d|f|d
�|jdd|f|d�|jdd|f|d�|jdd|f|d�|jdd|f|d�|jdd|f|d�|jdd|f|d�|jdd|f|d�y)"Nc�z�eZdZd�Zee�Zd�Zee�Zd�Zee�Z	d�Z
d�ZdZe
�Ze�Zy)�9TestClassesAndFunctions.test_classify_newstyle.<locals>.Ac��yrr#r#rr�sz;TestClassesAndFunctions.test_classify_newstyle.<locals>.A.sdr�rc��yrr#r�s rrz;TestClassesAndFunctions.test_classify_newstyle.<locals>.A.cgr�rc��yrr#r_s r�getpz>TestClassesAndFunctions.test_classify_newstyle.<locals>.A.getpjr�rc��yrr#r_s rrz;TestClassesAndFunctions.test_classify_newstyle.<locals>.A.mmr�rc��yrr#r_s r�m1z<TestClassesAndFunctions.test_classify_newstyle.<locals>.A.m1or�r�1N)rLrarbr�r�rr�r�r�r6rr��datablobr9�ddrD�mdr#rrrSr�bsA����Q��A���A��A� ����A����H�&�(�B�(�*�BrrS�__new__�
static method�missing __new__r�r�zmissing __init__r�zmissing static methodr�class method�missing class methodr6r�zmissing propertyrzmissing plain method: %rr��missing plain methodr��datazmissing datar�zmissing method descriptorr�zmissing data descriptorc��eZdZd�Zy)�9TestClassesAndFunctions.test_classify_newstyle.<locals>.Bc��yrr#r_s rrz;TestClassesAndFunctions.test_classify_newstyle.<locals>.B.m�r�rN)rLrarbrr#rrrVr��s��rrVc��eZdZd�Zd�Zy)�9TestClassesAndFunctions.test_classify_newstyle.<locals>.Cc��yrr#r_s rrz;TestClassesAndFunctions.test_classify_newstyle.<locals>.C.m�r�rc��yrr#r_s rrz;TestClassesAndFunctions.test_classify_newstyle.<locals>.C.c�r�rN)rLrarbrrr#rrr�r��s���rr�c��eZdZd�Zy)�9TestClassesAndFunctions.test_classify_newstyle.<locals>.Dc��yrr#r_s rr�z<TestClassesAndFunctions.test_classify_newstyle.<locals>.D.m1�r�rN)rLrarbr�r#rrr[r��s��rr[)r�rMr)rUrS�attrsrVr�r[s      r�test_classify_newstylez.TestClassesAndFunctions.test_classify_newstyleas���	+��	+�(�a� ���
�
�y�/�6�:�E�'�	)��
�
�z�8�V�4�e�=O�P��
�
�s�O�Q�/��8O�P��
�
�s�N�A�.��7M�N��
�
�s�J��*�E�3E�F��
�
�s�H�a�(�%�0�5�8�	:��
�
�t�X�q�)�5�2H�I��
�
�z�6�1�-�u�n�E��
�
�t�X�q�)�5�2M�N��
�
�t�V�Q�'��0I�J�	��	��a� ���
�
�s�O�Q�/��8O�P��
�
�s�N�A�.��7M�N��
�
�s�J��*�E�3E�F��
�
�s�H�a�(�%�1G�H��
�
�t�X�q�)�5�2H�I��
�
�z�6�1�-�u�n�E��
�
�t�X�q�)�5�2M�N��
�
�t�V�Q�'��0I�J�	��	�
�a� ���
�
�s�O�Q�/��8O�P��
�
�s�H�a�(�%�1G�H��
�
�s�J��*�E�3E�F��
�
�s�H�a�(�%�1G�H��
�
�t�X�q�)�5�2H�I��
�
�z�6�1�-�u�n�E��
�
�t�X�q�)�5�2M�N��
�
�t�V�Q�'��0I�J�	��1�	��a� ���
�
�s�O�Q�/��8O�P��
�
�s�H�a�(�%�1G�H��
�
�s�J��*�E�3E�F��
�
�s�H�a�(�%�1G�H��
�
�t�X�q�)�5�2H�I��
�
�z�6�1�-�u�n�E��
�
�t�X�q�)�5�2M�N��
�
�t�V�Q�'��0I�Jrc��tt�D]8}tt|�}t|t�s�$tj|��:tt�}|jddtf|d�|jddtf|d�|jddtf|d	�|jd
dtf|d	�|jddtf|d	�y)Nr�r�r�r�r�r�r�r�r��__add__�__and__)�dir�__builtins__�getattr�
isinstancer�rOrKrM�boolrr�)rUrr�r�s    r�test_classify_builtin_typesz3TestClassesAndFunctions.test_classify_builtin_types�s�����%�	6�D��l�D�1�G��'�4�(��,�,�W�5�	6�
�d�#���
�
�y�/�4�8�%�'�	)��
�
�|�^�S�9�5�,�	.��
�
�z�8�S�1�5�,�	.��
�
�y�(�C�0�%�,�	.��
�
�y�(�D�1�5�,�	.rc�H�Gd�dt�}Gd�d|��}tjdd||jd�}|j	|tj
|��tjdd|d�}|j	|tj
|��y)	Nc���eZdZ�fd�Z�xZS)�ITestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.Metac�.��|dk(ryt�|�|�S)Nr�rx�r'r��rUrr)s  �rr�zUTestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.Meta.__getattr__�s����5�=�!��w�*�4�0�0r�rLrarbr�r1r2s@r�Metar���
���
1�
1rr�c�0�eZdZejd��Zy)�GTestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.VAc��y)NrAr#r_s rr�zKTestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.VA.ham����rN)rLrarbr��DynamicClassAttributer�r#rr�VAr�����
�
(�
(�
�)�
rr�rr�r�rx)r�rO�	AttributerrrK)rUr�r��should_find_dca�should_find_gas     r�#test_classify_DynamicClassAttributez;TestClassesAndFunctions.test_classify_DynamicClassAttribute�s���	1�4�	1�
	�4�	�"�+�+�E�6�2�r�{�{�5�?Q�R���
�
�o�w�'C�'C�B�'G�H� �*�*�5�&�$��G���
�
�n�g�&B�&B�2�&F�Grc����G�fd�dt��G�fd�dt�}tjdd||j�}|j	|tj
|��y)Nc���eZdZ�fd�Zd�Zy)�DTestClassesAndFunctions.test_classify_overrides_bool.<locals>.NoBoolc�����Srr#)rUrY�NoBools  �r�__eq__zKTestClassesAndFunctions.test_classify_overrides_bool.<locals>.NoBool.__eq__�s
����x�rc��td��)Nz,This object does not specify a boolean value��NotImplementedErrorr_s r�__bool__zMTestClassesAndFunctions.test_classify_overrides_bool.<locals>.NoBool.__bool__�s��)�B�D�DrN)rLrarbr�r��r�s�rr�r��s���
 �
Drr�c���eZdZW��Zy)�CTestClassesAndFunctions.test_classify_overrides_bool.<locals>.HasNBN)rLrarbr�r�s�r�HasNBr��s
�����Brrr�r�)r�rOr�r�rrK)rUr�should_find_attrr�s   @r�test_classify_overrides_boolz4TestClassesAndFunctions.test_classify_overrides_bool�sT���	D�V�	D�	�F�	�#�,�,�T�6�5�%�(�(�K���
�
�&��(D�(D�U�(K�Lrc��Gd�dt�}Gd�d|��}tjdd|d�}|j|tj|��y)	Nc��eZdZdZd�Zy)�MTestClassesAndFunctions.test_classify_metaclass_class_attribute.<locals>.Meta�slapc�
�gd�S)N)r)rarL�fishr#r_s r�__dir__zUTestClassesAndFunctions.test_classify_metaclass_class_attribute.<locals>.Meta.__dir__����F�FrN)rLrarbrr	r#rrr�r�s
���D�
Grr�c��eZdZy)�NTestClassesAndFunctions.test_classify_metaclass_class_attribute.<locals>.ClassNr�r#rr�Classr�r*rr
rrr�r�r�rOr�rrK�rUr�r
�should_finds    r�'test_classify_metaclass_class_attributez?TestClassesAndFunctions.test_classify_metaclass_class_attribute�sK��	G�4�	G�	�d�	��'�'����f�E���
�
�k�7�#?�#?��#F�Grc��Gd�dt�}Gd�d|��}tjdd|d�}|j|tj|��y)	Nc�$��eZdZd�Z�fd�Z�xZS)�DTestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.Metac�
�gd�S)N)r)rarL�BOOMr#r�s rr	zLTestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.Meta.__dir__�r
rc�.��|dk(ryt�|�|�S)Nrr�)r'�_Meta__getattrr�s  �rr�zPTestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.Meta.__getattr__�s����&�=���w�(��.�.r�rLrarbr	r�r1r2s@rr�r�s���
G�
/�
/rr�c��eZdZy)�ETestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.ClassNr�r#rrr
r�r*rr
rrr�r�rrs    r�test_classify_VirtualAttributez6TestClassesAndFunctions.test_classify_VirtualAttribute�sI��	/�4�	/�	�d�	��'�'����b�A���
�
�k�7�#?�#?��#F�Grc��	�
�Gd�dt��	Gd�dt��
G�	�
fd�d�	�
�}Gd�d�	�	�}Gd
�d||�	�}tjdd
�	d�}tjdd
�
d�}tjdd
|d�}tj|�}|||fD]}|j	||��y)Nc�$��eZdZd�Z�fd�Z�xZS)�STestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta1c�
�gd�S)N)r)rarL�oner#r�s rr	z[TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta1.__dir__����E�Erc�.��|dk(ryt�|�|�S)Nr!rr�r�s  �rr�z_TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta1.__getattr__������%�<���w�*�4�0�0rrr2s@r�Meta1r�����
F�
1�
1rr%c�$��eZdZd�Z�fd�Z�xZS)�STestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta2c�
�gd�S)N)r)rarL�twor#r�s rr	z[TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta2.__dir__r"rc�.��|dk(ryt�|�|�S)Nr*r-r�r�s  �rr�z_TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta2.__getattr__r$rrr2s@r�Meta2r(r&rr,c�,���eZdZ��fd�Z�fd�Z�xZS)�STestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta3c
���tttgd��j|�z�j|�z���S)N)r)rarL�three)r�r�rNr	)r�r%r,s ��rr	z[TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta3.__dir__sC����F�3�'W��M�M�#�&�('�).���s�);�(<�$=�>�?�?rc�.��|dk(ryt�|�|�S)Nr0rbr�r�s  �rr�z_TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta3.__getattr__s����'�>���w�*�4�0�0rr)r)r%r,s@��r�Meta3r.
s���
?�
1�
1rr2c��eZdZy)�TTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Class1Nr�r#rr�Class1r4r*rr5rc��eZdZy)�TTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Class2Nr�r#rr�Class2r7r*rr8r!r�rr*r-r0rb)r�rOr�rKr)rUr2r5r8�should_find1�should_find2�should_find3�cca�sfr%r,s         @@r�,test_classify_VirtualAttribute_multi_classeszDTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes�s����	1�D�	1�	1�D�	1�	1�E�5�	1�	�u�	�	�V�u�	��(�(����q�A���(�(����q�A���(�(��&�%��C���*�*�6�2����|�<�	#�B��M�M�"�c�"�	#rc��Gd�dt�}Gd�d|��}tj|�D�cgc]}|d��	}}|jd|�ycc}w)Nc��eZdZd�Zy)�KTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.Mc�
�gd�S�N)r)rL�missingr#r�s rr	zSTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.M.__dir__ ���;�;rN�rLrarbr	r#rr�MrA���
<rrGc��eZdZy)�KTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.CNr�r#rrr�rJ"r*rr�rrrD)r�rOrKr�rUrGr�r&r�s     r�(test_classify_class_attrs_with_buggy_dirz@TestClassesAndFunctions.test_classify_class_attrs_with_buggy_dirsR��	<��	<�	�!�	�&�;�;�A�>�?�!��1��?��?�����E�*��@��Ac�F�Gd�dt�}d�}|tj�}|tj�}|j	tj
||�d|jdfg�|j	tj
||�d|jdfg�Gd�d|�}|j	tj
||�d|jdfg�|j	tj
||�d|jdfg�y)Nc�(�eZdZe�Ze�Zy)�>TestClassesAndFunctions.test_getmembers_descriptors.<locals>.AN)rLrarbr9r�rDr�r#rrrSrP(s��&�(�B�(�*�BrrSc�4���Gd�dt����fd�}|S)Nc��eZdZy)�XTestClassesAndFunctions.test_getmembers_descriptors.<locals>.pred_wrapper.<locals>.EmptyNr�r#rr�EmptyrS/s��rrTc�\��dt|�vrt�|j�ry�|�S)NrLF)r�r�rL)rrT�preds ��rr:zZTestClassesAndFunctions.test_getmembers_descriptors.<locals>.pred_wrapper.<locals>.wrapped1s(�����Q��'�G�E�1�:�:�,F� ��A�w�r�r�)rVr:rTs` @r�pred_wrapperzITestClassesAndFunctions.test_getmembers_descriptors.<locals>.pred_wrapper,s���
��
�
��Nrr�r�c��eZdZy)�>TestClassesAndFunctions.test_getmembers_descriptors.<locals>.BNr�r#rrrVrZ?r*rrV)r�rO�ismethoddescriptorr�r1rr)rUrSrXr[r�rVs      r�test_getmembers_descriptorsz3TestClassesAndFunctions.test_getmembers_descriptors's
��	+��	+�		�*�'�*D�*D�E��'��(@�(@�A������+�+�A�/A�B��A�J�J�t�$�
%�&�	(�����+�+�A�/?�@��A�J�J�t�$�
%�&�	(�	��	�	
����+�+�A�/A�B��A�J�J�t�$�
%�&�	(�����+�+�A�/?�@��A�J�J�t�$�
%�&�	(rc���Gd�d�}|jd|jftj|��|j	d|jftj|tj
��|�}|jd|jftj|��|jd|jftj|tj
��y)Nc��eZdZd�Zy)�9TestClassesAndFunctions.test_getmembers_method.<locals>.Bc��yrr#r_s rrtz;TestClassesAndFunctions.test_getmembers_method.<locals>.B.fIr�rN�rLrarbrtr#rrrVr_Hr�rrVrt)rrtrOrrrg)rUrVr�s   r�test_getmembers_methodz.TestClassesAndFunctions.test_getmembers_methodGs���	�	�	
�
�
�s�A�C�C�j�'�"4�"4�Q�"7�8����#�q�s�s��W�%7�%7��7�;K�;K�%L�M�
�C���
�
�s�A�C�C�j�'�"4�"4�Q�"7�8��
�
�s�A�C�C�j�'�"4�"4�Q��8H�8H�"I�Jrc�\�Gd�dt�}Gd�d|��}Gd�d�}|jdtj|��|jd	tj|���|�}|jd
|jftj|��y)Nc���eZdZ�fd�Z�xZS)�CTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.Mc�.��|dk(ryt�|�|�S)NrA�	scrambledr�)r�rr)s  �rr�zOTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.M.__getattr__Ts����6�>�&��w�*�4�0�0rr�r2s@rrGreSr�rrGc�0�eZdZejd��Zy)�CTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.Ac��yrwr#r_s rrAzHTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.A.eggsYr�rN)rLrarbr�r�rAr#rrrSriXr�rrSrc��eZdZd�Zy)�CTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.Bc��yrr#)rU�	attributes  rr�zOTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.B.__getattr__]r�rNr�r#rrrVrl\r�rrV)rArg)rArxr�)r�rrOrr�)rUrGrSrVr�s     r� test_getmembers_VirtualAttributez8TestClassesAndFunctions.test_getmembers_VirtualAttributeRs���	1��	1�
	�!�	�	�	�	
�
�
�+�W�-?�-?��-B�C��
�
�&��(:�(:�1�3�(?�@�
�C���
�
�}�a�m�m�4�g�6H�6H��6K�Lrc��Gd�d�}|�}tj|�}tj|�}|jdtj|d�f|�|jdtj|d�f|�|jdtj|d�f|�|jdtj|d�f|�y)Nc�@�eZdZed��Zejd��Zy)�9TestClassesAndFunctions.test_getmembers_static.<locals>.Ac��t�rr�r_s rrz>TestClassesAndFunctions.test_getmembers_static.<locals>.A.namef���)�)rc��t�rr�r_s rrAz>TestClassesAndFunctions.test_getmembers_static.<locals>.A.eggsirtrN)rLrarbr�rr�r�rAr#rrrSrres,��
�
*��
*�
�
(�
(�
*�)�
*rrSrrA)rO�getmembers_staticr�getattr_static)rUrSr&�instance_members�
class_memberss     r�test_getmembers_staticz.TestClassesAndFunctions.test_getmembers_staticds���	*�	*�
�C��"�4�4�Q�7���1�1�!�4�
��
�
�v�w�5�5�a��@�A�CS�T��
�
�v�w�5�5�a��@�A�CS�T��
�
�v�w�5�5�a��@�A�=�Q��
�
�v�w�5�5�a��@�A�=�Qrc��Gd�dt�}Gd�d|��}tj|�D�cgc]}|d��	}}|jd|�ycc}w)Nc��eZdZd�Zy)�ATestClassesAndFunctions.test_getmembers_with_buggy_dir.<locals>.Mc�
�gd�SrCr#r�s rr	zITestClassesAndFunctions.test_getmembers_with_buggy_dir.<locals>.M.__dir__wrErNrFr#rrrGr}vrHrrGc��eZdZy)�ATestClassesAndFunctions.test_getmembers_with_buggy_dir.<locals>.CNr�r#rrr�r�yr*rr�rrrD)r�rOrrrKs     r�test_getmembers_with_buggy_dirz6TestClassesAndFunctions.test_getmembers_with_buggy_dirusQ��	<��	<�	�!�	�&�1�1�!�4�5�!��1��5��5�����E�*��6rMc��dtdtfd�}|jtj|�ttd��ddd�|_|jtj|�ddd��|jtj|dt
���|td��|jtj|dt
��	�|td��t}|jtj|�ttd��|jtj|j�ttd��|jtj|j�tt|jd
��|jtj|j�td|j|jd��|jtj|j�ddd
d��|jtjt�i�|jtj|j�i�|jtj|j�i�|jtj|d��ttd��|jtj|jd��ttd��|jtj|jd��tt|jd
��|jtj|jd��tt|j|jd��|jtj|jd��tt|jd��|jtjtd��i�|jtj|jd��i�|jtj|jd��i�|jtj|d��ttd��|jtj|jd��ttd��|jtj|jd��tt|jd
��|jtj|jd��td|j|jd��|jtj|jd��ddd
d��|jtjtd��i�|jtj|jd��i�|jtj|jd��i�d�}||j�}|j|dd�|jdd��|j|j|jj�|jtj|�tt|jd
��|jtj|d��tt|jd
��|jtj|d��tt|jd
��y)Nr&r�c��yrr#r�s  rr.zPTestClassesAndFunctions.test_get_annotations_with_stock_annotations.<locals>.foor�rr�r.r�T��eval_strrp�r��globals�r&r�r��r&r�rr�r��MyClass�r&r�r�r�Fc�B��tj���fd��}|S)Nc�"���|dz|dz�SrJr#�r&r�r�s  �r�wrapperziTestClassesAndFunctions.test_get_annotations_with_stock_annotations.<locals>.times_three.<locals>.wrapper������!�A�#�q��s�|�#r�r�r��r�r�s` r�times_threezXTestClassesAndFunctions.test_get_annotations_with_stock_annotations.<locals>.times_three��#���
�_�_�R�
 �
$�!�
$��Nrrrrb�xxx)r�r�r1rO�get_annotationsr�rprr�rV�	function2�	function3�UnannotatedClass�unannotated_function�assertIsNot�__globals__)rUr.�isar�r:s     r�+test_get_annotations_with_stock_annotationszCTestClassesAndFunctions.test_get_annotations_with_stock_annotations~s{��#�#�#��#�����0�0��5�S�s�7K�L�$)�u�5�������0�0��5�U��7O�P�����0�0��t�F�H�U�]`�gj�Wk�l�����0�0��t�V�X�V�^a�hk�Xl�m�'������0�0��5�S�s�7K�L�����0�0����=�S�s�?S�T�����0�0����>�c�PS�_b�_j�_j�@k�l�����0�0����?�s�QV�]`�]h�]h�tw�t�t�BA�	B�����0�0����?�u�SX�_h�Ai�j�����0�0��9�2�>�����0�0��1E�1E�F��K�����0�0��1I�1I�J�B�O�����0�0��t�D�C�VY�FZ�[�����0�0����t�L�TW�^a�Nb�c�����0�0�����M�UX�_b�nq�ny�ny�Oz�{�����0�0�����N�VY�`c�jm�ju�ju�BE�BM�BM�QN�	O�����0�0�����N�VY�`c�jm�ju�ju�Pv�w�����0�0��4�H�"�M�����0�0��1E�1E�PT�U�WY�Z�����0�0��1I�1I�TX�Y�[]�^�����0�0��u�E�S�WZ�G[�\�����0�0����u�M�UX�_b�Oc�d�����0�0�����N�VY�`c�or�oz�oz�P{�|�����0�0�����O�WZ�af�mp�mx�mx�EH�EP�EP�RQ�	R�����0�0�����O�W\�ch�ox�Qy�z�����0�0��5�I�2�N�����0�0��1E�1E�PU�V�XZ�[�����0�0��1I�1I�TY�Z�\^�_�	��c�l�l�+�������C��#�+�+�a��*?�@�����,�,�c�l�l�.F�.F�G�����0�0��9��3�Z]�Ze�Ze�;f�g�����0�0��4�H�PS�Z]�il�it�it�Ju�v�����0�0��5�I�QT�[^�jm�ju�ju�Kv�wrc�h�t}|jtj|�ddd��|jtj|j�ddd��|jtj|j
�dddd��|jtj|j�ddddd��|jtj|j�ddd	d
��|jtj|j�i�|jtj|j�i�|jtj|d��ttd��|jtj|jd��ttd��|jtj|j
d��tt|jd��|jtj|jd��td|j|jd��|jtj|jd��dddd
��|jtj|jd��i�|jtj|jd��i�|jtj|d
��ddd��|jtj|jd
��ddd��|jtj|j
d
��dddd��|jtj|jd
��ddddd��|jtj|jd
��ddd	d
��|jtj|jd
��i�|jtj|jd
��i�t}|jtj|�i�|jtj|d��i�|jtj|d
��i�d�}||j
�}|j|dd�|j	dd��|j|j|j
j�|jtj|�dddd��|jtj|d��tt|jd��|jtj|d
��dddd��|jtj|j�ddi�|jtj|jd��dti�y)Nr�r�r�r�r��'str'r��'int'�	'MyClass'r�Tr�Fc�B��tj���fd��}|S)Nc�"���|dz|dz�SrJr#r�s  �rr�znTestClassesAndFunctions.test_get_annotations_with_stringized_annotations.<locals>.times_three.<locals>.wrapper�r�rr�r�s` rr�z]TestClassesAndFunctions.test_get_annotations_with_stringized_annotations.<locals>.times_three�r�rrrrbr��mytype)rr1rOr�r�rVr�r�r�r�r�r�rr�r��MyClassWithLocalAnnotations)rUr��isa2r�r:s     r�0test_get_annotations_with_stringized_annotationszHTestClassesAndFunctions.test_get_annotations_with_stringized_annotations�s���,������0�0��5�U��7O�P�����0�0����=�U�QV�?W�X�����0�0����>�e�RW�cl�@m�n�����0�0����?�u�SZ�aj�v�BA�	B�����0�0����?�w�U\�cn�Ao�p�����0�0��1E�1E�F��K�����0�0��1I�1I�J�B�O�����0�0��t�D�C�VY�FZ�[�����0�0����t�L�TW�^a�Nb�c�����0�0�����M�UX�_b�nq�ny�ny�Oz�{�����0�0�����N�VY�`e�lo�lw�lw�DG�DO�DO�QP�	Q�����0�0�����N�V[�bg�nw�Px�y�����0�0��1E�1E�PT�U�WY�Z�����0�0��1I�1I�TX�Y�[]�^�����0�0��u�E�U�Y^�G_�`�����0�0����u�M�UZ�af�Og�h�����0�0�����N�V[�bg�s|�P}�~�����0�0�����O�W\�cj�qz�GP�RQ�	R�����0�0�����O�W^�el�s~�Q�	A�����0�0��1E�1E�PU�V�XZ�[�����0�0��1I�1I�TY�Z�\^�_�/������0�0��6��;�����0�0���E�r�J�����0�0���F��K�	��c�l�l�+�������C��#�+�+�a��*?�@�����,�,�c�l�l�.F�.F�G�����0�0��9��U�^g�;h�i�����0�0��4�H�PS�Z]�il�it�it�Ju�v�����0�0��5�I�QV�]b�nw�Kx�y�	
����0�0��1P�1P�Q�TW�Ya�Sb�c�����0�0��1P�1P�[_�`�cf�hk�bl�mr) rLrarbr_ror|r�r�r�r�r$rr�rr�r�r�r�r�r�rrrr>rLr\rbrorzr�r�r�r#rrrOrO�s��	(�BF�,0�T�24�2�59�*,�	
%�H�01�5�A��X�_�_�)�M�O�	I�O�	I���X�_�_�)�M�O�6�O��6���X�_�_�)�M�O�,�O��,�	>�OK�b.�(
H�
M�H�H�!#�F+�(�@	K�M�$R�"+�1x�f.nrrOc��eZdZd�Zy)�TestFormatAnnotationc��ddlm}m}|jt	j
|�d�|jt	j
|�d�y)Nr)rn�ann1zUnion[List[str], int]z%Union[List[testModule.typing.A], int])�test.typinganndata.ann_module9rnr�r1rO�formatannotation)rUrnr�s   r�test_typing_replacementz,TestFormatAnnotation.test_typing_replacement�s=��<�����1�1�#�6�8O�P�����1�1�$�7�9`�arN)rLrarbr�r#rrr�r��s��brr�c�$�eZdZd�Zd�Zd�Zd�Zy)�TestIsDataDescriptorc��Gd�d�}Gd�d�}Gd�d�}Gd�d�}|jtj|��d	�|jtj|��d
�|jtj|��d�|jtj|��d�y)
Nc��eZdZdd�Zy)�GTestIsDataDescriptor.test_custom_descriptors.<locals>.NonDataDescriptorNc��yrr#)rU�valuer�s   rr=zOTestIsDataDescriptor.test_custom_descriptors.<locals>.NonDataDescriptor.__get__�r�rr�rLrarbr=r#rr�NonDataDescriptorr��s��5rr�c��eZdZd�Zy)�ETestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor0c��yrr#)rUrr�s   rrAzMTestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor0.__set__�r�rN�rLrarbrAr#rr�DataDescriptor0r��s��0rr�c��eZdZd�Zy)�ETestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor1c��yrr#)rUrs  r�
__delete__zPTestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor1.__delete__�r�rN)rLrarbr�r#rr�DataDescriptor1r��s��,rr�c��eZdZdZy)�ETestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor2Nr�r#rr�DataDescriptor2r��s���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)rTrOr�rK)rUr�r�r�r�s     r�test_custom_descriptorsz,TestIsDataDescriptor.test_custom_descriptors�s���	6�	6�	1�	1�	-�	-�	�	�����1�1�2C�2E�F�H�	J�����0�0��1B�C�A�	C�����0�0��1B�C�D�	F�����0�0��1B�C�H�	Jrc�v�Gd�d�}|jtj|j�d�y)Nc��eZdZdZy)�/TestIsDataDescriptor.test_slot.<locals>.Slotted�r.Nr�r#rr�Slottedr��s���Irr�za slot is a data descriptor)rKrOr�r.)rUr�s  r�	test_slotzTestIsDataDescriptor.test_slot�s,��	�	�����0�0����=�5�	7rc�v�Gd�d�}|jtj|j�d�y)Nc��eZdZed��Zy)�6TestIsDataDescriptor.test_property.<locals>.Propertiedc��yrr#r_s r�
a_propertyzATestIsDataDescriptor.test_property.<locals>.Propertied.a_propertyr�rN)rLrarbr�r�r#rr�
Propertiedr�s��
�
��
rr�za property is a data descriptor)rKrOr�r�)rUr�s  r�
test_propertyz"TestIsDataDescriptor.test_propertys0��	�	�	
����0�0��1F�1F�G�9�	;rc��Gd�dt�}d�}d�}|jtj|�j�d�|jtj|�j
�d�|jtj|�j�d�|jtj|�d�|jtj|�d	�y)
Nc�2�eZdZd�Zed��Zed��Zy)�1TestIsDataDescriptor.test_functions.<locals>.Testc��yrr#r_s r�instance_methodzATestIsDataDescriptor.test_functions.<locals>.Test.instance_method
r�rc��yrr#r�s r�class_methodz>TestIsDataDescriptor.test_functions.<locals>.Test.class_methods��#'rc��yrr#r#rr�
static_methodz?TestIsDataDescriptor.test_functions.<locals>.Test.static_methods��!%rN)rLrarbr�r�r�r�r�r#rr�Testr�s!��+�
�'��'�
�%��%rr�c��yrr#r#rrrVz5TestIsDataDescriptor.test_functions.<locals>.functionr�rc��yrr#r#rrr�z5TestIsDataDescriptor.test_functions.<locals>.<lambda>r�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�rTrOr�r�r�r�)rUr�rV�a_lambdas    r�test_functionsz#TestIsDataDescriptor.test_functionss���	&�6�	&�	�������1�1�$�&�2H�2H�I�E�	G�����1�1�$�&�2E�2E�F�B�	D�����1�1�$�&�2F�2F�G�C�	E�����1�1�(�;�>�	@�����1�1�(�;�<�	>rN)rLrarbr�r�r�r�r#rrr�r��s��J�$7�;�>rr�c�H�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zy)�TestGetClosureVarsc���d�}t�}d|i}dti}dti}dh}tj||||�}|jtj||��|�y)Nc����fd�}|S)Nc�2��t|�tt�yr��print�_global_ref�unbound_ref��	local_ref�nonlocal_refs �rruz=TestGetClosureVars.test_name_resolution.<locals>.f.<locals>.g's����i��{�K�Hrr#�r�rus` rrtz2TestGetClosureVars.test_name_resolution.<locals>.f&s���
I��Hrr�r�r�r��r�r�r�rO�ClosureVarsr1�getclosurevars�rUrt�_arg�
nonlocal_vars�global_vars�builtin_vars�
unbound_namesr]s        r�test_name_resolutionz'TestGetClosureVars.test_name_resolution$sn��	��x��'��.�
�$�k�2����'��&��
��&�&�}�k�'3�]�D������/�/��$��8�(�Crc���d�}t�}d|i}dti}dti}dh}tj||||�}|jtj||��|�y)Nc����fd�}|S)Nc3�B�K�t|�tt�d��y�wrr�r�s �rruz?TestGetClosureVars.test_generator_closure.<locals>.f.<locals>.g5s������i��{�K�H��s�r#r�s` rrtz4TestGetClosureVars.test_generator_closure.<locals>.f4s���
��Hrr�r�r�r�r�r�s        r�test_generator_closurez)TestGetClosureVars.test_generator_closure3sn��	�
�x��'��.�
�$�k�2����'��&��
��&�&�}�k�'3�]�D������/�/��$��8�(�Crc��Gd�d�}t�}d|i}dti}dti}dh}tj||||�}|jtj|�j|��|�y)Nc��eZdZd�Zy)�1TestGetClosureVars.test_method_closure.<locals>.Cc����fd�}|S)Nc�2��t|�tt�yrr�r�s �rruz>TestGetClosureVars.test_method_closure.<locals>.C.f.<locals>.gEs����)�\�;��Lrr#)rUr�rus ` rrtz3TestGetClosureVars.test_method_closure.<locals>.C.fDs���M��rNrar#rrr�rCs��
rr�r�r�r�r�)r�r�r�rOr�r1r�rt)rUr�r�r�r�r�r�r]s        r�test_method_closurez&TestGetClosureVars.test_method_closureBsy��	�	�
�x��'��.�
�$�k�2����'��&��
��&�&�}�k�'3�]�D������/�/�����d��<�h�Grc�\���	�d��	d�}d�}d�}�fd����	�fd�}|d�}|d�}||d	�}�j�	|�d
di��j�	|�d
di��j�	|�d	|d���j�	d�d
��d
d
i��|�y)Nc�@�tj|�jSr)rOr��	nonlocals�rts r�_nonlocal_varsz=TestGetClosureVars.test_nonlocal_vars.<locals>._nonlocal_varsSs���)�)�!�,�6�6�6rc����fd�}|S)Nc����|zSrr#�rhrs �r�addzFTestGetClosureVars.test_nonlocal_vars.<locals>.make_adder.<locals>.addWs����1�u�rr#)rrs` r�
make_adderz9TestGetClosureVars.test_nonlocal_vars.<locals>.make_adderVs
���
��Jrc������fd�S)Nc�����|�Srr#)rrrqr�s ��rr�zFTestGetClosureVars.test_nonlocal_vars.<locals>.curry.<locals>.<lambda>\s����T�4� 0�rr#)r�rqs``r�curryz4TestGetClosureVars.test_nonlocal_vars.<locals>.curry[s	���0�0rc��||kSrr#r�s  r�	less_thanz8TestGetClosureVars.test_nonlocal_vars.<locals>.less_than^����q�5�Lrc�.����fd�}|�_||�S)Nc������fd��S)Nc� �����|�Srr#)rrts �rr�zMTestGetClosureVars.test_nonlocal_vars.<locals>.Y.<locals>.g.<locals>.<lambda>ds���D�A�a�D��G�rr#)rt�les`�rruz;TestGetClosureVars.test_nonlocal_vars.<locals>.Y.<locals>.gcs����+�,�,r)�g_ref)rru�Ys` �rrz0TestGetClosureVars.test_nonlocal_vars.<locals>.Ybs���
-��A�G��Q�4�Krc�N���j�|�d�ji�y)Nrt)r1r)r�rrrUs ���r�check_y_combinatorzATestGetClosureVars.test_nonlocal_vars.<locals>.check_y_combinatorhs ������^�D�1�C����>�Brrr-rr)rqr�c����fd�S)Nc����|zSrr#rs �rr�zITestGetClosureVars.test_nonlocal_vars.<locals>.<lambda>.<locals>.<lambda>ss���Q��U�rr#�rs`rr�z7TestGetClosureVars.test_nonlocal_vars.<locals>.<lambda>ss���?�rrb)r1)
rUr
rrr�inc�add_two�greater_than_fiverrs
`       @@r�test_nonlocal_varsz%TestGetClosureVars.test_nonlocal_varsQs����	7�	�
	1�	�	�	C���m���Q�-��!�)�Q�/�������,�s�A�h�7������0�3��(�;�����(9�:�"#�Y�7�	9�����)B�A�(F�G��q��	#�	�
�rc���d�}tjiiit��}|jtjd��|�|jtj|�|�y)Nc��yrr#r#rrr.z9TestGetClosureVars.test_getclosurevars_empty.<locals>.fooxr�rc��y�NTr#r#rrr�z>TestGetClosureVars.test_getclosurevars_empty.<locals>.<lambda>zr�r)rOr�rNr1r�)rUr.�_emptys   r�test_getclosurevars_emptyz,TestGetClosureVars.test_getclosurevars_emptywsS����$�$�R��R���7������/�/��=�v�F�����/�/��4�f�=rc��Gd�d�}|jttjd�|jttjt�|jttji�y)Nc��eZdZy)�7TestGetClosureVars.test_getclosurevars_error.<locals>.TNr�r#rr�Tr+~r�rr,r)r�r�rOr�r�)rUr,s  r�test_getclosurevars_errorz,TestGetClosureVars.test_getclosurevars_error}sO���
����)�W�%;�%;�Q�?����)�W�%;�%;�T�B����)�W�%;�%;�R�@rc�0�d}i}t||�|d|fS)Nzdef f(): print(path)rt)r3)rUr+r s   r�_private_globalsz#TestGetClosureVars._private_globals�s#��)��
���T�2���#�w��{�rc���|j�\}}|jdd�tjiidtidh�}|jtj|�|�y)Nr�r�r#)r/�poprOr�r�r1r��rUrtr r]s    r�test_builtins_fallbackz)TestGetClosureVars.test_builtins_fallback�sY���%�%�'���2�
���~�t�$��&�&�r�2������I������/�/��2�H�=rc��|j�\}}ddi|d<tjiiddidh�}|jtj|�|�y)Nr#rr�r�)r/rOr�r1r�r2s    r�test_builtins_as_dictz(TestGetClosureVars.test_builtins_as_dict�sY���%�%�'���2�$�Q�Z��>���&�&�r�2��q�z�G�9�E������/�/��2�H�=rc���|j�\}}t|d<tjiidtjidh�}|jtj|�|�y)Nr�r#r�)r/r!rOr�r#r1r�r2s    r�test_builtins_as_modulez*TestGetClosureVars.test_builtins_as_module�sZ���%�%�'���2���>���&�&�r�2��r�w�w�/?�'��K������/�/��2�H�=rN)
rLrarbr�r�rr"r(r-r/r3r5r7r#rrr�r�"s9��
D�
D�
H�$�L>�A��>�>�>rr�c�L�eZdZdd�Zdd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zy)
�TestGetcallargsFunctionsNc��t|xsi|��}td|zd|�}td|zd|�}|j||�y)N�r��func(%s)�inspect.getcallargs(func, %s))r�rJr1)rUr��call_params_string�locs�r1�r2s      r�assertEqualCallArgsz,TestGetcallargsFunctions.assertEqualCallArgs�sN���D�J�B�T�*��
�*�1�1�4��
>��
�1�4F�F���������R� rc��t|xsi|��}	td|zd|�|jd�	td|zd|�|jd�|j	t�t��|j
t|�t|��~~y#t$r}|}Yd}~�}d}~wwxYw#t$r}|}Yd}~�sd}~wwxYw)Nr;r<zException not raisedr=)r�rJ�failr�rQr�r1r�)rUr��call_param_stringr?r��ex1�ex2s       r�assertEqualExceptionz-TestGetcallargsFunctions.assertEqualException�s����D�J�B�T�*��	.���/�/��t�<�
�I�I�,�-�	.��0�3D�D�d��
�

�I�I�,�-��
�
�d�3�i��c��+�����S��3�s�8�,�����	��C��	���	��C��	�s.�B!�B9�!	B6�*B1�1B6�9	C�C	�	Cc�"�d}t||z�S)z+Create a function that returns its locals()zlambda %s: locals())rJ)rUr�r+s   r�makeCallablez%TestGetcallargsFunctions.makeCallable�s��$���D�9�$�%�%rc��|jd�}|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�|j|d	�|j|d
�|j|d�|j|d�|j|d
�|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�y)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)�rJrB�rUrts  r�
test_plainz#TestGetcallargsFunctions.test_plain�s9�����h�'��� � ��C�(�� � ��F�+�� � ��E�*�� � ��J�/�� � ��H�-�� � ��G�,�� � ��F�+�� � ��I�.�� � ��I�.�� � ��K�0�� � ��$4�5�� � ��N�3�� � ��$6�7�� � ��$@�A�� � ��$C�D�� � ��$A�B�� � ��$D�E�� � ��$F�Grc��|jd�}|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�y)Nz
a, b=1, *crMrN�2, 3, 4z*(2,3,4)z	2, *[3,4]z 2, 3, *collections.UserList([4])rPrQs  r�test_varargsz%TestGetcallargsFunctions.test_varargs�ss�����l�+��� � ��C�(�� � ��F�+�� � ��I�.�� � ��J�/�� � ��K�0�� � ��$F�Grc�j�|jd�}|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�|j|d	�|j|d
�y)Nza, b=1, **crOz2, 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)rPrQs  r�
test_varkwz#TestGetcallargsFunctions.test_varkw�s������m�,��� � ��E�*�� � ��M�2�� � ��O�4�� � ��$;�<�� � ��$7�8�� � ��$;�<�� � ��$K�L�� � ��$I�J�� � ��$K�Lrc��|jd�}|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�y)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)rPrQs  r�test_varkw_onlyz(TestGetcallargsFunctions.test_varkw_only�su�����e�$��� � ��B�'�� � ��E�*�� � ��J�/�� � ��$=�>�� � ��$F�G�� � ��$K�Lrc���|jd�}|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�|j|d	�|jd
�}|j|d�|j|d�|j|d�y)
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)rJrBrHrQs  r�test_keyword_onlyz*TestGetcallargsFunctions.test_keyword_only�s������.�/��� � ��E�*�� � ��J�/�� � ��J�/�� � ��H�-��!�!�!�R�(��!�!�!�S�)��!�!�!�U�+��!�!�!�U�+����k�*��� � ��E�*�� � ��J�/�� � ��J�/rc��|jd�}|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�|jd	�}|j|d�|j|d�|j|d
�|j|d�|j|d�|j|d
�y)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)rPrQs  r�test_multiple_featuresz/TestGetcallargsFunctions.test_multiple_featuress�����/�0��� � ��I�.�� � ��K�0�� � ��$@�A�� � ��$E�F�� � ��$B�C�� � ��%I�	J�� � ��%.�	/�
���8�9��� � ��K�0�� � ��$@�A�� � ��$K�L�� � ��$H�I�� � ��%N�	O�� � ��%.�	/rc���|jd�}|jd�}|jd�}|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�||fD]�}|j|d	�|j|d
�|j|d�|j|d�|j|d
�|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�|j|d���|jd�}|j|d�|j|d�|jd�}|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�|j|d�d�}|jtd �5t	j
|�ddd�d!�}|jtd"�5t	j
|�ddd�|jtd#�5t	jd$tjjd%�&�ddd�|jtd'�5t	jd(d)d%�&�ddd�|jtd*�5t	jd+d,�-�ddd�y#1swY��xYw#1swY��xYw#1swY��xYw#1swY�dxYw#1swYyxYw).Nr�za, brLr�r�z1,x=1rOzb=3rTz1, 2, 3, a=1z2, 3, 4, c=5z2, 3, 4, a=1, 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=3z1, c=3, a=2rYz1, 2z1, 2, a=1, b=2z	*, a, b=0za=1, a=3za=1, c=3z
a=1, a=3, b=4za=1, b=2, a=3, b=4za=1, a=2, a=3, b=4c��yrr#r�s r�f5z0TestGetcallargsFunctions.test_errors.<locals>.f5Kr�rzmissing 1 required keyword-onlyc��yrr#r�s   r�f6z0TestGetcallargsFunctions.test_errors.<locals>.f6Rr�rz'a', 'b' and 'c'z6variadic keyword parameters cannot have default valuesr.r���kind�defaultz%value 5 is not a valid Parameter.kindr'rzname must be a str, not a int�{rD�rf)	rJrHr�r�rO�getcallargs�
ValueErrorr��VAR_KEYWORD)	rU�f0�f1�f2rt�f3�f4rbrds	         r�test_errorsz$TestGetcallargsFunctions.test_errorss���
�
�
�r�
"��
�
�
�v�
&��
�
�
�x�
(���!�!�"�c�*��!�!�"�e�,��!�!�"�g�.��!�!�"�b�)��!�!�"�c�*��!�!�"�e�,��!�!�"�e�,��!�!�"�b�)��!�!�"�e�,��R��	8�A��%�%�a��3��%�%�a��8��%�%�a��8��%�%�a�)<�=��%�%�a��/��%�%�a��2��%�%�a��5��%�%�a��7��%�%�a�)A�B��%�%�a��2��%�%�a��8��%�%�a��5��%�%�a��7�!	8�$�
�
�u�
%���!�!�"�f�-��!�!�"�&6�7�
�
�
�{�
+���!�!�"�f�-��!�!�"�&6�7��!�!�"�j�1��!�!�"�j�1��!�!�"�o�6��!�!�"�&:�;��!�!�"�&:�;�	�
�
#�
#�I�$E�G�	$�����#�	$�	�
�
#�
#�I�/A�
B�	$�����#�	$��
#�
#�J�%;�<�	*�
���e�'�*;�*;�*G�*G�&(�
*�	*�
�
#�
#�J�$K�M�	9����e�!�R�8�	9��
#�
#�I�#B�D�	+����c��*�	+�	+�+	$�	$��	$�	$��	*�	*��
	9�	9��	+�	+�s<�&N8�O�1O� O�O(�8O�O
�O�O%�(O1r)
rLrarbrBrHrJrRrUrWrZr]r_rrr#rrr9r9�s9��!��&&�
H�.H�
M�M�0� /�0H+rr9c�$��eZdZd�Z�fd�Z�xZS)�TestGetcallargsMethodsc�H�Gd�dt�}||_|�|_y)Nc��eZdZy)�)TestGetcallargsMethods.setUp.<locals>.FooNr�r#rr�Foorwhr*rrx)r�r��inst)rUrxs  rr�zTestGetcallargsMethods.setUpgs��	�&�	�����E��	rc���d|vsJ�tt|�
}|d|z�|j_|j
jS)NrUzself, )r'rtrJr�r�ry)rUr��mkr)s   �rrJz#TestGetcallargsMethods.makeCallablems@����Y�&�&�
�)�4�
=���X�	�1�2������y�y���r)rLrarbr�rJr1r2s@rrtrtes���� � rrtc�>��eZdZ�fd�Zd�fd�	Zd�fd�	Zdd�Z�xZS)�TestGetcallargsUnboundMethodsc�V��tt|�|�|jjSr)r'r}rJr�r�)rUr�r)s  �rrJz*TestGetcallargsUnboundMethods.makeCallableus!���
�+�T�?�	�J��x�x���rc�F��tt|�
|j|||��Sr)r'r}rB�_getAssertEqualParams�rUr�r>r?r)s    �rrBz1TestGetcallargsUnboundMethods.assertEqualCallArgsys-����2�D�M�
�
'�
'��.@�$�
G�I�	Irc�F��tt|�
|j|||��Sr)r'r}rHr�r�s    �rrHz2TestGetcallargsUnboundMethods.assertEqualException}s-����2�D�N�
�
'�
'��.@�$�
G�I�	Irc�T�d|vsJ�t|xsi|j��}|d|z|fS)Nry)ryzinst,)r�ry)rUr�r>r?s    rr�z3TestGetcallargsUnboundMethods._getAssertEqualParams�s5���/�/�/��D�J�B�T�Y�Y�/���g� 2�2�D�9�9rr)rLrarbrJrBrHr�r1r2s@rr}r}ss����I�I�:rr}c��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�Zd�Zd�Zd�Zy)�TestGetattrStaticc��Gd�dt�}|�}|jtj|d�|j�|jtj|dd�|j�|jt�5tj|d�ddd�|jtj|dd�d�y#1swY�1xYw)Nc��eZdZe�Zy)�+TestGetattrStatic.test_basic.<locals>.ThingN�rLrarbr�rr#rr�Thingr���	����Arr�rrhrb)r�r1rOrwrr�r��rUr��things   r�
test_basiczTestGetattrStatic.test_basic�s���	�F�	��������/�/��s�;�U�W�W�E�����/�/��s�D�A�5�7�7�K�
�
�
�~�
.�	/��"�"�5�#�.�	/�	
����/�/��s�A�>��B�	/�	/�s�
C�Cc��Gd�dt�}Gd�d|�}|�}|jtj|d�|j�y)Nc��eZdZe�Zy)�/TestGetattrStatic.test_inherited.<locals>.ThingNr�r#rrr�r��r�rr�c��eZdZy)�4TestGetattrStatic.test_inherited.<locals>.OtherThingNr�r#rr�
OtherThingr��r*rr�r�r�r1rOrwr)rUr�r��	somethings    r�test_inheritedz TestGetattrStatic.test_inherited�sD��	�F�	�	��	��L�	�����/�/�	�3�?����Irc���Gd�dt�}|d�}|jtj|d�d�|`|jtj|d�d�y)Nc��eZdZdZd�Zy)�3TestGetattrStatic.test_instance_attr.<locals>.Thingr-c��||_yrr�rUrs  rr�z<TestGetattrStatic.test_instance_attr.<locals>.Thing.__init__�s	����rN)rLrarbrr�r#rrr�r��s���A�
rr�rbrr-r�r�s   r�test_instance_attrz$TestGetattrStatic.test_instance_attr�sX��	�F�	��a�������/�/��s�;�Q�?��G�����/�/��s�;�Q�?rc��Gd�dt�}|�}|jtj|d�|j�y)Nc��eZdZed��Zy)�.TestGetattrStatic.test_property.<locals>.Thingc��td���NzI'm pretending not to existr�r_s rrz0TestGetattrStatic.test_property.<locals>.Thing.x�s��$�%B�C�CrN)rLrarbr�rr#rrr�r��s��
�
D��
Drr�rr�r�s   rr�zTestGetattrStatic.test_property�s:��	D�F�	D��������/�/��s�;�U�W�W�Erc���Gd�dt�}|��G�fd�dt�}|�}|jtj|d���y)Nc��eZdZd�Zy)�KTestGetattrStatic.test_descriptor_raises_AttributeError.<locals>.descriptorc��td��r�r�)r]s rr=zSTestGetattrStatic.test_descriptor_raises_AttributeError.<locals>.descriptor.__get__�s��$�%B�C�CrNr�r#rr�
descriptorr��s��
Drr�c���eZdZW�Zy)�FTestGetattrStatic.test_descriptor_raises_AttributeError.<locals>.ThingN�rLrarbr)�descs�rr�r��s����Arr�r)r�r1rOrw)rUr�r�r�r�s    @r�%test_descriptor_raises_AttributeErrorz7TestGetattrStatic.test_descriptor_raises_AttributeError�sJ���	D��	D��|��	�F�	��������/�/��s�;�T�Brc��Gd�dt�}|jtj|d�|j�y)Nc��eZdZe�Zy)�4TestGetattrStatic.test_classAttribute.<locals>.ThingNr�r#rrr�r��r�rr�rr��rUr�s  r�test_classAttributez%TestGetattrStatic.test_classAttribute�s1��	�F�	�	
����/�/��s�;�U�W�W�Erc��Gd�dt�}|jtj|d�|jd�y)Nc�>�eZdZejd��Ze�Zy)�;TestGetattrStatic.test_classVirtualAttribute.<locals>.Thingc��|jSr)�_xr_s rrz=TestGetattrStatic.test_classVirtualAttribute.<locals>.Thing.x�s���w�w�rN)rLrarbr�r�rr�r�r#rrr�r��s!��
�
(�
(�
�)�
���Brr�r)r�r1rOrwrr�s  r�test_classVirtualAttributez,TestGetattrStatic.test_classVirtualAttribute�s6��	�F�	�	
����/�/��s�;�U�^�^�C�=P�Qrc��Gd�dt�}Gd�d|�}|jtj|d�|j�y)Nc��eZdZe�Zy)�>TestGetattrStatic.test_inherited_classattribute.<locals>.ThingNr�r#rrr�r��r�rr�c��eZdZy)�CTestGetattrStatic.test_inherited_classattribute.<locals>.OtherThingNr�r#rrr�r��r*rr�rr��rUr�r�s   r�test_inherited_classattributez/TestGetattrStatic.test_inherited_classattribute�s=��	�F�	�	��	�	
����/�/�
�C�@�%�'�'�Jrc�@�Gd�dt�}|�}|jtj|d�|j�|jtj|d�d�|`|jtj|d�|j�y)Nc��eZdZdZdgZd�Zy)�+TestGetattrStatic.test_slots.<locals>.Thingr'rc��d|_y�Nr.rr_s rr�z4TestGetattrStatic.test_slots.<locals>.Thing.__init__��	����rN)rLrarbrhr�r�r#rrr�r��s���A���I�
rr�rrhr'r�r�s   r�
test_slotszTestGetattrStatic.test_slots�s{��	�F�	�
�������/�/��s�;�U�W�W�E�����/�/��s�;�U�C��G�����/�/��s�;�U�W�W�Erc�v�Gd�dt�}Gd�dt|��}|jtj|d�d�Gd�d	|�}Gd
�dt|��}|jtj|d�d�Gd�d
|�}|jtj|d�d�y)Nc��eZdZdZy)�.TestGetattrStatic.test_metaclass.<locals>.metar.N)rLrarbr�r#rr�metar��s���Drr�c��eZdZy)�/TestGetattrStatic.test_metaclass.<locals>.ThingNr�r#rrr�r��r*rr�rr�r.c��eZdZy)�-TestGetattrStatic.test_metaclass.<locals>.subNr�r#rr�subr��r*rr�c��eZdZdZy)�4TestGetattrStatic.test_metaclass.<locals>.OtherThingrbNr�r#rrr�r������Arr�c��eZdZy)�9TestGetattrStatic.test_metaclass.<locals>.OtherOtherThingNr�r#rr�OtherOtherThingr��r*rr�rrb�r�r�r1rOrw)rUr�r�r�r�r�s      r�test_metaclassz TestGetattrStatic.test_metaclass�s���	�4�	�	�F�d�	�����/�/��v�>��F�	�$�	�	��3�	�����/�/�
�F�C�U�K�	�j�	�	
����/�/���E�q�Irc��|jtjddd�d�|jtjdd�d�y)Nrr.�lower)r1rOrw�assertNotEqualr_s r�test_no_dict_no_slotsz'TestGetattrStatic.test_no_dict_no_slots�s>������/�/��5�$�?��F����G�2�2�5�'�B�D�Irc���ttd��5}|jtj|d�t|�j�ddd�y#1swYyxYw)Nr|r}r)rrUr1rOrwr�r)rU�handles  r�%test_no_dict_no_slots_instance_memberz7TestGetattrStatic.test_no_dict_no_slots_instance_member�sN��
�(�W�
-�	X�����W�3�3�F�F�C�T�&�\�EV�EV�W�	X�	X�	X�s�:A�Ac��Gd�dt�}Gd�d|�}|jtj|�d�|j�y)Nc��eZdZdgZd�Zy)�5TestGetattrStatic.test_inherited_slots.<locals>.Thingrc��d|_yr�rr_s rr�z>TestGetattrStatic.test_inherited_slots.<locals>.Thing.__init__�r�rN)rLrarbr�r�r#rrr�r��s����I�
rr�c��eZdZy)�:TestGetattrStatic.test_inherited_slots.<locals>.OtherThingNr�r#rrr�r�r*rr�rr�r�s   r�test_inherited_slotsz&TestGetattrStatic.test_inherited_slots�s?��	�F�	�
	��	�	
����/�/�
��c�B�E�G�G�Lrc���Gd�dt��G�fd�dt�}|�}d|jd<|jtj|d�d�d��_|jtj|d�|jd��`d��_|jtj|d�|jd�y)	Nc��eZdZd�Zy)�5TestGetattrStatic.test_descriptor.<locals>.descriptorc��yrJr#�rU�instance�owners   rr=z=TestGetattrStatic.test_descriptor.<locals>.descriptor.__get__���rNr�r#rrr�r����
rr�c���eZdZW��Zy)�.TestGetattrStatic.test_descriptor.<locals>.FooN�rLrarbrs�r�s�rrxr�
�
�����Arrxrrsc��yrr#)r�r5�vs   rr�z3TestGetattrStatic.test_descriptor.<locals>.<lambda>r�rc��yrr#)r�r5rs   rr�z3TestGetattrStatic.test_descriptor.<locals>.<lambda>r�r)r�rr1rOrwrAr�)rUrxr.r�s   @r�test_descriptorz!TestGetattrStatic.test_descriptors����	��	�	�&�	��e������S������/�/��S�9�1�=�2�
������/�/��S�9�3�<�<��;L�M��� 4�
������/�/��S�9�3�<�<��;L�Mrc����Gd�dt��G�fd�dt�}Gd�dt|��}|jtj|d�|j
d�y)	Nc��eZdZd�Zy)�DTestGetattrStatic.test_metaclass_with_descriptor.<locals>.descriptorc��yrJr#r�s   rr=zLTestGetattrStatic.test_metaclass_with_descriptor.<locals>.descriptor.__get__r�rNr�r#rrr�r�r�rr�c���eZdZW��Zy)�>TestGetattrStatic.test_metaclass_with_descriptor.<locals>.metaNr�r�s�rr�r� r�rr�c��eZdZy)�?TestGetattrStatic.test_metaclass_with_descriptor.<locals>.ThingNr�r#rrr�r�"r*rr�rrs)r�r�r1rOrwr)rUr�r�r�s   @r�test_metaclass_with_descriptorz0TestGetattrStatic.test_metaclass_with_descriptorsO���	��	�	�4�	�	�F�d�	�����/�/��s�;�T�]�]�3�=O�Prc��Gd�dt�}Gd�d|�}|�}|jtj|d�d�|j	|j
�|jtj|d�d�y)Nc��eZdZdZy)�6TestGetattrStatic.test_class_as_property.<locals>.BaserbNr
r#rr�Baser(����Crrc� �eZdZdZed��Zy)�;TestGetattrStatic.test_class_as_property.<locals>.SomethingFc��d|_tSr&)�executedr�r_s rr)zETestGetattrStatic.test_class_as_property.<locals>.Something.__class__-s�� $��
��
rN)rLrarbrr�r)r#rr�	Somethingr+s���H�
�
��
rr	r.rb)r�r1rOrwrTr)rUrr	r�s    r�test_class_as_propertyz(TestGetattrStatic.test_class_as_property'sq��	�6�	�	��	��;������/�/��%�@�!�D�����*�*�+�����/�/�	�5�A�1�Erc��Gd�dt�}Gd�dt�}Gd�d||��}|jtj|�d�d	�|jtj|d�d	�y)
Nc��eZdZed��Zy)�4TestGetattrStatic.test_mro_as_property.<locals>.Metac��tfSrrWr_s r�__mro__z<TestGetattrStatic.test_mro_as_property.<locals>.Meta.__mro__9s
���y� rN)rLrarbr�rr#rrr�r
8s��
�
!��
!rr�c��eZdZdZy)�4TestGetattrStatic.test_mro_as_property.<locals>.BaserbNr
r#rrrr=rrrc��eZdZy)�9TestGetattrStatic.test_mro_as_property.<locals>.SomethingNr�r#rrr	r@r*rr	rr.rbr�)rUr�rr	s    r�test_mro_as_propertyz&TestGetattrStatic.test_mro_as_property7sf��	!�4�	!�
	�6�	�	���	�	
����/�/�	��U�C�Q�G�����/�/�	�5�A�1�Erc����|�d�_G�fd�dt�}|�}d|_|jt	j
|d�d�|j
�j�y)NFc�&��eZdZdZe�fd��Zy)�4TestGetattrStatic.test_dict_as_property.<locals>.Foorbc���d�_iSr&��called�rUr�s �rrz=TestGetattrStatic.test_dict_as_property.<locals>.Foo.__dict__L����"����	rN�rLrarbr&r�r�r�s�rrxrJ�����A�
�
��
rrxrDr&rb)rr�r&r1rOrwrT)rUrxr.r�s   @r�test_dict_as_propertyz'TestGetattrStatic.test_dict_as_propertyFsZ��������	�$�	��e���������/�/��S�9�1�=�������%rc�Z��|�d�_G�fd�dt�}Gd�dt�}Gd�d|�}|�}|jtj|d�d	�|f|_|jtj|d�d
�|j
�j�y)NFc�&��eZdZdZe�fd��Zy)�/TestGetattrStatic.test_mutated_mro.<locals>.Foorbc���d�_iSr&rrs �rrz8TestGetattrStatic.test_mutated_mro.<locals>.Foo.__dict__\rrNrrs�rrxr#Zrrrxc��eZdZdZy)�/TestGetattrStatic.test_mutated_mro.<locals>.BarrDN�rLrarbr&r#rr�Barr&ar�rr(c��eZdZy)�/TestGetattrStatic.test_mutated_mro.<locals>.BazNr�r#rr�Bazr*dr�rr+r&rDrb)rr�r1rOrw�	__bases__rT)rUrxr(r+�bazr�s     @r�test_mutated_mroz"TestGetattrStatic.test_mutated_mroVs���������	�$�	�	�$�	�	�#���e������/�/��S�9�1�=����
�����/�/��S�9�1�=�������%rc���|�d�_G�fd�dt�}Gd�dt�}|�}|�|_|j	tj|d�d�|j�j�y)NFc�$���eZdZd��fd�	Z�xZS)�9TestGetattrStatic.test_custom_object_dict.<locals>.Customc�4��d�_t�|�	||�yr&)rr'�get)rU�keyrgr)r�s   ��rr3z=TestGetattrStatic.test_custom_object_dict.<locals>.Custom.getqs���"������C��)rr)rLrarbr3r1)r)r�s@�r�Customr1ps
���
*�
*rr5c��eZdZdZy)�6TestGetattrStatic.test_custom_object_dict.<locals>.FoorbNr'r#rrrxr7ur�rrxr&rb)rr�r�rr1rOrwrT)rUr5rxr.r�s    @r�test_custom_object_dictz)TestGetattrStatic.test_custom_object_dictlsf��������	*�T�	*�
	�&�	��e���x�������/�/��S�9�1�=�������%rc���Gd�dt�}Gd�d|��}|�}|jtj|d�d�|j	|j
�y)Nc��eZdZed��Zy)�?TestGetattrStatic.test_metaclass_dict_as_property.<locals>.Metac��d|_yr&)rr_s rrzHTestGetattrStatic.test_metaclass_dict_as_property.<locals>.Meta.__dict__~s	�� $��
rN�rLrarbr�rr#rrr�r;}rrr�c��eZdZdZd�Zy)�@TestGetattrStatic.test_metaclass_dict_as_property.<locals>.ThingFc��d|_y�Nr��rxr_s rr�zITestGetattrStatic.test_metaclass_dict_as_property.<locals>.Thing.__init__�s	����	rN)rLrarbrr�r#rrr�r?�s���H�
rr�rrxr�)r�r1rOrwrTr)rUr�r�r�s    r�test_metaclass_dict_as_propertyz1TestGetattrStatic.test_metaclass_dict_as_property|sR��	%�4�	%�
	�d�	��7������/�/��&�A�2�F�������(rc�n�t�}|jtjtd|�|�y)N�version)r�r�rOrwr�)rU�sentinels  r�test_modulezTestGetattrStatic.test_module�s+���8������/�/��Y��I�!�	#rc��Gd�dt�}Gd�dt|��}Gd�d|��}|jt�5tj|d�ddd�|j|j�y#1swY�%xYw)	Nc��eZdZed��Zy)�WTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.MetaMetac�(�d|_td��S)NTr�rB)rr�r_s rrz`TestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.MetaMeta.__dict__�s�� $��
���}�$rNr=r#rr�MetaMetarJ�s��
�
%��
%rrLc��eZdZdZy)�STestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.MetaFN)rLrarbrr#rrr�rN�s���Hrr�rc��eZdZy)�TTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.ThingNr�r#rrr�rP�r*rr�rx)r�r�r�rOrwrTr)rUrLr�r�s    r�3test_metaclass_with_metaclass_with_dict_as_propertyzETestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property�so��	%�t�	%�	�4�8�	�	�d�	��
�
�~�
.�	2��"�"�5�&�1�	2�������(�	2�	2�s�A=�=Bc����|�d�_G�fd�d�}|jt�5tj|�d�ddd�|j�j�y#1swY�%xYw)NFc���eZdZ�fd�Zy)�6TestGetattrStatic.test_custom___getattr__.<locals>.Fooc���d�_iSr&r�rUr�r�s  �rr�zBTestGetattrStatic.test_custom___getattr__.<locals>.Foo.__getattr__�����"����	rNr�rs�rrxrT�����
rrx�whatever�rr�r�rOrwrT�rUrxr�s  @r�test_custom___getattr__z)TestGetattrStatic.test_custom___getattr__�sd��������	�	�
�
�
�~�
.�	6��"�"�3�5�*�5�	6�	
������%�	6�	6���A,�,A5c����|�d�_G�fd�d�}|jt�5tj|�d�ddd�|j�j�y#1swY�%xYw)NFc���eZdZ�fd�Zy)�;TestGetattrStatic.test_custom___getattribute__.<locals>.Fooc���d�_iSr&rrVs  �r�__getattribute__zLTestGetattrStatic.test_custom___getattribute__.<locals>.Foo.__getattribute__�rWrN)rLrarbrbrs�rrxr`�rXrrx�really_could_be_anythingrZr[s  @r�test_custom___getattribute__z.TestGetattrStatic.test_custom___getattribute__�si��������	�	�
�
�
�~�
.�	F��"�"�3�5�*D�E�	F�	
������%�	F�	F�r]N)rLrarbr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
rr r.r8rCrGrQr\rdr#rrr�r��s���
C�J�@�F�C�F�R�K�F�J�$J�X�
M�N�,Q�F� 
F�&� &�,&� )� #�
)�"&�&rr�c�T�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zy
)�TestGetGeneratorStatec�"�d�}|�|_y)Nc3�4K�td�D]}|���y�w�Nrrp��numbers r�number_generatorz5TestGetGeneratorState.setUp.<locals>.number_generator�s������(�
����
�rs)�	generator)rUrls  rr�zTestGetGeneratorState.setUp�s��	�*�+��rc�@�tj|j�Sr)rO�getgeneratorstatermr_s r�_generatorstatez%TestGetGeneratorState._generatorstate�����(�(����8�8rc�`�|j|j�tj�yr)r1rprO�GEN_CREATEDr_s r�test_createdz"TestGetGeneratorState.test_created�s!������-�-�/��1D�1D�Erc��t|j�|j|j�tj
�yr)�nextrmr1rprO�
GEN_SUSPENDEDr_s r�test_suspendedz$TestGetGeneratorState.test_suspended�s-���T�^�^������-�-�/��1F�1F�Grc��|jD]}�|j|j�tj�yr)rmr1rprO�
GEN_CLOSEDrqs  r�test_closed_after_exhaustionz2TestGetGeneratorState.test_closed_after_exhaustion�s7�����	�A��	�����-�-�/��1C�1C�Drc���|jt�5|jjt�ddd�|j	|j�tj�y#1swY�8xYwr)r�r@rmr=r1rprOrzr_s r�%test_closed_after_immediate_exceptionz;TestGetGeneratorState.test_closed_after_immediate_exception�sV��
�
�
�|�
,�	/��N�N� � ��.�	/�����-�-�/��1C�1C�D�	/�	/��� A-�-A6c��|jj�|j|j�tj
�yr)rmr�r1rprOrzr_s r�test_closed_after_closez-TestGetGeneratorState.test_closed_after_close�s1������������-�-�/��1C�1C�Drc�|���fd�}|��_t�j�t�j�y)Nc3���K�td�D]b}�j�j�tj�|���j�j�tj��dy�wri)r/r1rprO�GEN_RUNNING�rkrUs �r�running_check_generatorzCTestGetGeneratorState.test_running.<locals>.running_check_generator�s_�������(�
N��� � ��!5�!5�!7��9L�9L�M���� � ��!5�!5�!7��9L�9L�M�
N�s�A2A5)rmrv)rUr�s` r�test_runningz"TestGetGeneratorState.test_running�s-���
	N�
1�2����T�^�^���T�^�^�rc��dj�}|D]H}tt|�}|j|t	|��|j|t|���Jy)Nz0GEN_CREATED GEN_RUNNING GEN_SUSPENDED GEN_CLOSED�r�r�rOr�reprr��rU�namesr�states    r�test_easy_debuggingz)TestGetGeneratorState.test_easy_debugging�sO��B�H�H�J���	,�D��G�T�*�E��M�M�$��U��,��M�M�$��E�
�+�	,rc	�@�d
d�}|gd��}|jtj|�dgd�d��t|�|jtj|�dgd�ddd��t|�|jtj|�dgd�ddd��t|�|jtj|�dgd�dddd	��	t|�|jtj|�i�y#t$rY�1wxYw)Nc3�4K�d}|D]
}|dk(rd}|���y�w�NrurbrHr#��lstr&r�r�rs     r�eachz;TestGetGeneratorState.test_getgeneratorlocals.<locals>.each�s+�����A��
����6��A���
�rsru�r&r�r�r&r�r�r�r-rbrH�r&r�r�r�rr�r1rO�getgeneratorlocalsrv�
StopIteration�rUr��numberss   r�test_getgeneratorlocalsz-TestGetGeneratorState.test_getgeneratorlocals�s��	��y�/������3�3�G�<�#�I�6�	8��W�
�����3�3�G�<�#�I�A�(�*�	+�	
�W�
�����3�3�G�<�#�I�A�(�*�	+�	
�W�
�����3�3�G�<�#�I�A�(�r�3�	4�	���M�	
����3�3�G�<�b�A���	��	�s� D�	D�Dc���d�}|�}|jtj|�i�	t|�|jtj|�i�y#t$rY�1wxYw)Nc3�K�d��y�wr1r#r#rr�	yield_onezFTestGetGeneratorState.test_getgeneratorlocals_empty.<locals>.yield_one	s�����G�r}r��rUr�r!s   r�test_getgeneratorlocals_emptyz3TestGetGeneratorState.test_getgeneratorlocals_empty	sf��	��k������3�3�C�8�"�=�	���I�	
����3�3�C�8�"�=���	��	�s�A"�"	A.�-A.c�6�|jttjd�|jttjd��|jttjt�|jttjd�y)Nrc��yr&r#rs rr�zETestGetGeneratorState.test_getgeneratorlocals_error.<locals>.<lambda>!	r�r�r-rb)r�r�rOr�rNr_s r�test_getgeneratorlocals_errorz3TestGetGeneratorState.test_getgeneratorlocals_error	sb�����)�W�%?�%?��C����)�W�%?�%?��P����)�W�%?�%?��E����)�W�%?�%?��GrN)rLrarbr�rprtrxr{r}r�r�r�r�r�r�r#rrrfrf�sE��,�9�F�H�E�
E�
E�� ,�B�:	>�Hrrfc�H�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zy)�TestGetCoroutineStatec�T��tjd����fd�}|�|_y)Nc3�4K�td�D]}|���y�wrirprjs r�number_coroutinez5TestGetCoroutineState.setUp.<locals>.number_coroutine)	s������(�
����
�rsc��0�K����d{���y7��wrr#)r�s�r�	coroutinez.TestGetCoroutineState.setUp.<locals>.coroutine-	s�����"�$�$�$�s���)r�r�)rUr�r�s  @rr�zTestGetCoroutineState.setUp(	s'���	���	�
�	�	%�"���rc�8�|jj�yr)r�r�r_s rr-zTestGetCoroutineState.tearDown1	s�������rc�@�tj|j�Sr)rO�getcoroutinestater�r_s r�_coroutinestatez%TestGetCoroutineState._coroutinestate4	rqrc�`�|j|j�tj�yr)r1r�rO�CORO_CREATEDr_s rrtz"TestGetCoroutineState.test_created7	s!������-�-�/��1E�1E�Frc��|jjd�|j|j�tj
�yr)r��sendr1r�rO�CORO_SUSPENDEDr_s rrxz$TestGetCoroutineState.test_suspended:	s3�������D�!�����-�-�/��1G�1G�Hrc��		|jjd��#t$rYnwxYw|j|j	�t
j�yr)r�r�r�r1r�rO�CORO_CLOSEDr_s rr{z2TestGetCoroutineState.test_closed_after_exhaustion>	sV���
����#�#�D�)���!�
��
��	
����-�-�/��1D�1D�Es��	+�+c���|jt�5|jjt�ddd�|j	|j�tj�y#1swY�8xYwr)r�r@r�r=r1r�rOr�r_s rr}z;TestGetCoroutineState.test_closed_after_immediate_exceptionG	sV��
�
�
�|�
,�	/��N�N� � ��.�	/�����-�-�/��1D�1D�E�	/�	/�r~c��|jj�|j|j�tj
�yr)r�r�r1r�rOr�r_s rr�z-TestGetCoroutineState.test_closed_after_closeL	s1������������-�-�/��1D�1D�Erc��dj�}|D]H}tt|�}|j|t	|��|j|t|���Jy)Nz4CORO_CREATED CORO_RUNNING CORO_SUSPENDED CORO_CLOSEDr�r�s    rr�z)TestGetCoroutineState.test_easy_debuggingP	�O��F�L�L�N���	,�D��G�T�*�E��M�M�$��U��,��M�M�$��E�
�+�	,rc���tjd������d�fd�	}|�}|jtj|�d�d��|jd�|jtj|�d�dd��y)Nc3�K�d��y�wrr#r#rr�gencoroz>TestGetCoroutineState.test_getcoroutinelocals.<locals>.gencoroY	s	�����r}c��*�K�d}��d{���y7��wrwr#)r&r�r�s  �rr�z;TestGetCoroutineState.test_getcoroutinelocals.<locals>.func^	s������A��M�M�s���)r&r�rx)r&r�r�r)r�r�r1rO�getcoroutinelocalsr�)rUr�r�r�s   @r�test_getcoroutinelocalsz-TestGetCoroutineState.test_getcoroutinelocalsX	s����	���	�
�	��)��	��v������3�3�D�9�#��8�	:��	�	�$������3�3�D�9�#��f�E�	GrN)
rLrarbr�r-r�rtrxr{r}r�r�r�r#rrr�r�&	s:��%��9�G�I�F�F�
F�,�Grr�c�T�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zy
)�TestGetAsyncGenStatec�"�d�}|�|_y)Nc�6K�td�D]}|����	y�wrirprjs r�number_asyncgenz3TestGetAsyncGenState.setUp.<locals>.number_asyncgenn	s������(�
����
���)�asyncgen)rUr�s  rr�zTestGetAsyncGenState.setUpm	s��	�(�)��
rc��TK�|jj��d{���y7��wr)r��acloser_s r�
asyncTearDownz"TestGetAsyncGenState.asyncTearDowns	s�����m�m�"�"�$�$�$�s�(�&�(c�@�tj|j�Sr)rO�getasyncgenstater�r_s r�_asyncgenstatez#TestGetAsyncGenState._asyncgenstatev	s���'�'��
�
�6�6rc�`�|j|j�tj�yr)r1r�rO�AGEN_CREATEDr_s rrtz!TestGetAsyncGenState.test_createdy	s!������,�,�.��0D�0D�Erc���K�t|j��d{���}|j|j�tj
�|j|d�y7�E�wr�)�anextr�r1r�rO�AGEN_SUSPENDED�rUr�s  rrxz#TestGetAsyncGenState.test_suspended|	sK�����D�M�M�*�*������,�,�.��0F�0F�G������"�+�s�A#�A!�AA#c��@K�d}|jt�5|dz
x}r%t|j��d{���|dz
x}r�%ddd�|j	|d�|j	|j�tj�y7�U#1swY�LxYw�w)Nr7r)r��StopAsyncIterationr�r�r1r�rO�AGEN_CLOSED)rU�	countdowns  rr{z1TestGetAsyncGenState.test_closed_after_exhaustion�	s������	�
�
�
�1�
2�	+�(�1�}�,�)�,��D�M�M�*�*�*� )�1�}�,�)�,�	+�	
����A�&�����,�,�.��0C�0C�D�+��	+�	+�s-�B� B�B�B�A	B�B�B�Bc��K�|jt�5|jjt��d{���ddd�|j	|j�tj�y7�;#1swY�:xYw�wr)r�r@r��athrowr1r�rOr�r_s rr}z:TestGetAsyncGenState.test_closed_after_immediate_exception�	se����
�
�
�|�
,�	5��-�-�&�&�|�4�4�4�	5�����,�,�.��0C�0C�D�
5��	5�	5�s,�B�#A9�A7�A9�7B�7A9�9B�>Bc��d�K��fd�}|��_t�j��d{����j�j�tj
�t�j��d{����j�j�tj
�y7�~7�5�w)Nc���K�td�D]c}�j�j�tj�|����j�j�tj��ey�wri)r/r1r�rO�AGEN_RUNNINGr�s �r�running_check_asyncgenzATestGetAsyncGenState.test_running.<locals>.running_check_asyncgen�	s_�������(�
N��� � ��!4�!4�!6��8L�8L�M���� � ��!4�!4�!6��8L�8L�M�
N�s�A3A6)r�r�r1r�rOr�)rUr�s` rr�z!TestGetAsyncGenState.test_running�	s������	N�
/�0��
��D�M�M�"�"�"�����,�,�.��0F�0F�G��D�M�M�"�"�"�����,�,�.��0F�0F�G�		#��	#�s"�*B0�B,�A
B0�8B.�94B0�.B0c��dj�}|D]H}tt|�}|j|t	|��|j|t|���Jy)Nz4AGEN_CREATED AGEN_RUNNING AGEN_SUSPENDED AGEN_CLOSEDr�r�s    rr�z(TestGetAsyncGenState.test_easy_debugging�	r�rc	���K�d
d�}|gd��}|jtj|�dgd�d��t|��d{���|jtj|�dgd�ddd��t|��d{���|jtj|�dgd�ddd��t|��d{���|jtj|�dgd�dddd	��|j	t
�5t|��d{���ddd�|jtj|�i�y7��7��7��7�9#1swY�8xYw�w)Nc�6K�d}|D]}|dk(rd}|����y�wr�r#r�s     rr�z9TestGetAsyncGenState.test_getasyncgenlocals.<locals>.each�	s+�����A��
����6��A���
�r�rur�rr�r-rbrHr�r�r1rO�getasyncgenlocalsr�r�r�r�s   r�test_getasyncgenlocalsz+TestGetAsyncGenState.test_getasyncgenlocals�	sI����	��y�/������2�2�7�;�#�I�6�	8��G�n�������2�2�7�;�#�I�A�(�*�	+��G�n�������2�2�7�;�#�I�A�(�*�	+��G�n�������2�2�7�;�#�I�A�(�r�3�	4��
�
�1�
2�	!���.� � �	!�����2�2�7�;�R�@�	��	��	��

!��	!�	!�sa�AE%�	E�
>E%�E�	>E%�E�AE%�E�E�E�"/E%�E%�E%�E�E"�E%c��K�d�}|�}|jtj|�i�t|��d{���|jtj|�i�|j	t
�5t|��d{���ddd�|jtj|�i�y7��7�4#1swY�3xYw�w)Nc�K�d���y�wr1r#r#rrr�zDTestGetAsyncGenState.test_getasyncgenlocals_empty.<locals>.yield_one�	s�����G�s�	r�r�s   r�test_getasyncgenlocals_emptyz1TestGetAsyncGenState.test_getasyncgenlocals_empty�	s�����	��k������2�2�3�7��<��C�j�������2�2�3�7��<�
�
�
�1�
2�	���*���	�����2�2�3�7��<�		��
��	�	�s;�>C�C�>C�?C�C�C�/C�C�C�
Cc�6�|jttjd�|jttjd��|jttjt�|jttjd�y)Nrc��yr&r#rs rr�zCTestGetAsyncGenState.test_getasyncgenlocals_error.<locals>.<lambda>�	r�rr�)r�r�rOr�rNr_s r�test_getasyncgenlocals_errorz1TestGetAsyncGenState.test_getasyncgenlocals_error�	sb�����)�W�%>�%>��B����)�W�%>�%>��O����)�W�%>�%>��D����)�W�%>�%>��FrN)rLrarbr�r�r�rtrxr{r}r�r�r�r�r�r#rrr�r�j	sD��*�%�7�F�#�
E�E�
H�,�A�6	=�Grr�c��eZdZy)�MySignatureNr�r#rrr�r��	���	rr�c��eZdZy)�MyParameterNr�r#rrr�r��	r�rr�c�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*��Z0ejed
�d+��Z1d,�Z2d-�Z3d.�Z4d/�Z5d0�Z6d1�Z7d2�Z8d3�Z9y4)5�TestSignatureObjectc���tj|fi|��}td�|jj	�D��|j
|jurdfS|j
fS)Nc3�K�|]}}|j|j|jurdn|j|j|jurdn|jt	|j
�j
�f���y�w).N)rrg�empty�
annotationr�rfr�)�.0�params  r�	<genexpr>z0TestSignatureObject.signature.<locals>.<genexpr>�	sn����J�
).��z�z�$�}�}����;�����$�/�/�5�;�;�>��=B�=M�=M��5�:�:��,�,�.�	0�J�s�BB.)rOr��tupler4�values�return_annotationr�)r��kw�sigs   rr�zTestSignatureObject.signature�	sw������+��+���J�
25���1F�1F�1H�J�J��-�-����:��
I�	I�25�1F�1F�I�	Irc��tj}tj}|jt	|��d�|jt|�j�d�ddd�d�}tj|�}|jt|�jd��|jdt|�v�dd�}tj|�}|jt|�jd��|jd	t|�v�|jd
}|jd}|jd}	|jd
}
|jd}|jd}|jd}
|jd}|||	|||f�|||	||
f�||||f�||||
f�||||
f�|||
f�||||
|f�||
|f�||
||f�|||
|f�|jtd�5||	||||f�ddd�|jtd�5||||	||f�ddd�|jtd�5||||	||f�ddd�|jtd�5|||	|||f�ddd�|jd��}|jtd�5|||	|||f�ddd�|jtd�5|||f�ddd�|jtd�5|||	f�ddd�|jtd�5||||	f�ddd�|jtd�5|||
|	f�ddd�|jtd�5||
|	f�ddd�y#1swY���xYw#1swY��}xYw#1swY��^xYw#1swY��?xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swYyxYw)N�()zmappingproxy(OrderedDict())r=)�kodc��yrr#)�po�pk�pkd�korrr<s       rr�z7TestSignatureObject.test_signature_object.<locals>.test�	r�rz
<Signaturez
(po, /, pkc��yrr#)�pods r�test2z8TestSignatureObject.test_signature_object.<locals>.test2�	r�rz(pod=42, /)rrrrrrrr<zwrong parameter order�rzduplicate parameter namezfollows default argument)�d)r�)
rOr�r�r1r�r�r4r�rKr�r�rk�replace)rU�S�Pr�r�r�sig2rrrrrrrr<�kwargs2s                r�test_signature_objectz)TestSignatureObject.test_signature_object�	s"��������������Q�S��4�(�����a�c�n�n�-�/L�M�	�B�	�����%������S�	�,�,�\�:�;������S�	�1�2�	�� � ��'������T�
�-�-�l�;�<����
��d��3�4�
�^�^�D�
!���o�o�e�$��
�^�^�D�
!���n�n�U�#���~�~�f�%��
�^�^�D�
!���n�n�U�#������)��	�2�r�4��V�
$�%�	�2�r�2�s�
��	�2�s�B�-��	�2�s�C�.��	�3��C�.��	�3��*�
�	�3��c�6�
"�#�	
�3��)��	�3��F�
��	�4��b�/��
�
#�
#�J�0G�
H�	*�
�r�2�t�R��(�)�	*��
#�
#�J�0G�
H�	*�
�r�4��R��(�)�	*��
#�
#�J�0G�
H�	*�
�t�R��R��(�)�	*��
#�
#�J�0G�
H�	*�
�r�2�t�V�R�(�)�	*��.�.�f�.�-��
�
#�
#�J�0J�
K�	+�
�r�2�t�W�b�)�*�	+��
#�
#�J�0J�
K�	�
�s�B�i�L�	��
#�
#�J�0J�
K�	�
�s�B�i�L�	��
#�
#�J�0J�
K�	�
�r�3��m��	��
#�
#�J�0J�
K�	�
�r�3��m��	��
#�
#�J�0J�
K�	�
�s�B�i�L�	�	�9	*�	*��	*�	*��	*�	*��	*�	*��	+�	+��	�	��	�	��	�	��	�	��	�	�sx�(O�O�O*�,O7�*P�P�?P�(P)�P5�<Q�O�O'�*O4�7P�P�P�P&�)P2�5P>�Q
c���id�dddddifd�}tj|d��}tj|�}t	t
jdz�D]Y}|j|d	�
�5tjtj||��}|j||�ddd��[tj|�}tdtjj��}tj|j |��}t#�j%|j'�|j(�
�}|j+t-|t"��|j+t-|j dt��t	t
jdz�D]�}|j|d�
�5tjtj||��}|j||�|j+t-|t"��|j+t-|j dt��ddd���y#1swY��xYw#1swY��xYw)N�rrrr�r�r�c��yrr#�r&r�rr�s    rr.z=TestSignatureObject.test_signature_object_pickle.<locals>.foo7
r�rr�F)�
pickle_ver�subclassr,)rrf)r4r�T)r�r�rOr�r/�pickle�HIGHEST_PROTOCOL�subTest�loads�dumpsr1r�r�r��collections�OrderedDictr4r�rr�r�rKr�)	rUr.�foo_partialr��ver�sig_pickled�myparam�myparams�mysigs	         r�test_signature_object_picklez0TestSignatureObject.test_signature_object_pickle6
s����:�1�:�2�e�*�:��'�'��q�1������,����0�0�1�4�5�	3�C�����u��=�
3�$�l�l�6�<�<��S�+A�B��� � ��k�2�
3�
3�	3�����$���3�W�->�->�-N�-N�O���*�*�3�>�>�W�E���
�%�%����1B�8;�8M�8M�&�O�����
�5�+�6�7����
�5�#3�#3�C�#8�+�F�G���0�0�1�4�5�	9�C�����t��<�
9�$�l�l�6�<�<��s�+C�D��� � ���4����
�;�� D�E����
�;�+A�+A�#�+F�+6�!8�9�	
9�
9�	9�
3�
3��
9�
9�s�,<I�=BI�I	�I%	c��d�}tj|�}|jt�5d|_ddd�|jt
�5d|jd<ddd�y#1swY�7xYw#1swYyxYw)Nc��yrr#r�s rr�z=TestSignatureObject.test_signature_immutability.<locals>.testS
r�rr'r&)rOr�r�r�r.r�r4�rUr�r�s   r�test_signature_immutabilityz/TestSignatureObject.test_signature_immutabilityR
sy��	�����%��
�
�
�~�
.�	��C�G�	��
�
�y�
)�	'�"&�C�N�N�3��	'�	'�	�	��	'�	'�s�A,�A8�,A5�8Bc�L�d�}|j|j|�d�y)Nc��yrr#r#rrr�z9TestSignatureObject.test_signature_on_noarg.<locals>.test^
r�r�r#.�r1r�rs  r�test_signature_on_noargz+TestSignatureObject.test_signature_on_noarg]
s ��	��������-�y�9rc�N�dd�}|j|j|�d�y)Nc��yrr#r�s  rr�z9TestSignatureObject.test_signature_on_wargs.<locals>.testc
r�r))�r&..�positional_or_keyword)r�.r.r1rh)r�r.r�rhr,rs  r�test_signature_on_wargsz+TestSignatureObject.test_signature_on_wargsb
s%��	��������-��	 rc��dtdtdtfd�}|j|j	|�ddtdfddtdfftf�y)Nr&r�r�c��yrr#r�s  rr�z;TestSignatureObject.test_signature_on_wkwonly.<locals>.testk
r�r.�keyword_only)�floatr�r�r1r�rs  r�test_signature_on_wkwonlyz-TestSignatureObject.test_signature_on_wkwonlyj
sZ��	�e�	�s�	�s�	��������-���e�^�<���c�>�:�<�� �	!rc��ddd�ddddddd	tfd
�}|j|j|�ddd
ddd	dtdffdf�y)Nrh)r�r�r.rr'rxr-r<c��yrr#)r&r�rxr�rr<s      rr�z@TestSignatureObject.test_signature_on_complex_args.<locals>.tests
r�rr0)r�r=r.r1)r.r'�var_positional)rx.r-r5)r�rh.r5.�var_keyword�r=)r�r1r�rs  r�test_signature_on_complex_argsz2TestSignatureObject.test_signature_on_complex_argsr
sn��	�S�	�e�	�e�	�%�	�3�	��������-�C�D�A�?�<�$�c�3�
�>�@��
�	 rc�
���d��d��G��fd�d�}|j|j��d�|j|j��d�|j|j|j�d�|j|j|j�d�|j|j|j�d�|j|j|j
�d�y)Nc��yrr#r<s r�test_args_onlyzGTestSignatureObject.test_signature_without_self.<locals>.test_args_only
r�rc��yrr#�rr<s  r�test_args_kwargs_onlyzNTestSignatureObject.test_signature_without_self.<locals>.test_args_kwargs_only�
r�rc����eZdZed��Zed��Zejed�Z	ejW�d�Z
ejed�ZejW�d�Zy)�:TestSignatureObject.test_signature_without_self.<locals>.Ac��yrr#r<s r�test_classmethodzKTestSignatureObject.test_signature_without_self.<locals>.A.test_classmethod�
r�rc��yrr#r<s r�test_staticmethodzLTestSignatureObject.test_signature_without_self.<locals>.A.test_staticmethod�
r�rrN)
rLrarbr�rGr�rIr��
partialmethodrnrorprq)rCr@s��rrSrE�
s~���
�
��
��
��
�)��(�(�*:�Q�?�B�(��(�(�.�1�=�B�(��(�(�*;�a�@�B�(��(�(�*?��C�BrrS�)�r..r:.�)rL�r<..r;.)r1r�rnrorprq)rUrSrCr@s  @@r�test_signature_without_selfz/TestSignatureObject.test_signature_without_self~
s����	�	�	D�	D�	
�������7�G�	I�������(=�>�F�	G�	
���������-�G�	I����������-�G�	I����������-�G�	I����������-�G�	Hrr�c���	�ddl}�fd�}�fd�}||j��	�	fd�}�j|d�d��j|d�d��j|d	�d
��j|d�d��j|d
�d��j|d�d��j|d�d��j|d�d��j|d�tj��j|d�tjdz
�|t
�|tjj�t
jtj��}||j�|tj�|dj�|tj�|ij�|tj �|t"j$�|dj$�|t&j ��j)t*d�5Gd�d�}||��ddd�|tj,�|t.j0�||j2�t4j6}||�}�jt9|j:�ddg�y#1swY��xYw)Nrc���tj|�}�jt|tj���jt
|jj��djd�|S)zAUse this to test unbound methods (things that should have a self)rrU)
rOr�rKr�r�r1r�r4r�r�rr�rUs  �r�test_unbound_methodzKTestSignatureObject.test_signature_on_builtins.<locals>.test_unbound_method�
sa����)�)�!�,�I��O�O�J�y�'�2C�2C�D�E����T�)�"6�"6�"=�"=�"?�@��C�H�H�&�Q��rc���tj|�}�jt|tj��|j
r@�j
t|j
j��djd�|S)zRUse this to test bound methods or normal callables (things that don't expect self)rrU)
rOr�rKr�r�r4r�r�r�rrRs  �r�
test_callablezETestSignatureObject.test_signature_on_builtins.<locals>.test_callable�
sk����)�)�!�,�I��O�O�J�y�'�2C�2C�D�E��#�#��#�#�D��)=�)=�)D�)D�)F�$G��$J�$O�$O�QW�X��rc�6���j|jSr)r4rg)rr�s �rr6z9TestSignatureObject.test_signature_on_builtins.<locals>.p�
s���I�0�0��6�>�>�>rr�r�r�sbytesrsg��Q�	@r5�#�nrLTrtF�localrbr�rWrsabczno signature foundc��eZdZeZy)�DTestSignatureObject.test_signature_on_builtins.<locals>.ThisWorksNowN)rLrarbr�r�r#rr�ThisWorksNowr[�
s���rr\rU�buffer)r�r�r1r��maxsizer�r�r�r�r��StringIO�bytes�	maketransr��fromkeysr�r�r�r��minr�rk�__delitem__r�r��#docstring_with_signature_but_no_doc�	bytearray�__release_buffer__r�r4)
rUr�rSrUr6rsr\r�r�r�s
`        @r�test_signature_on_builtinsz.TestSignatureObject.test_signature_on_builtins�
s@���	�	�	�"�)�"R�"R�S�	�>�����3���+�����3���*�����3���&�����3���$�����3���&�����3���&�����3���'�����7��Q�'�����5��3�;�;�/�����5��3�;�;��?�3��f��	�G�O�O�0�0�1��O�O�B�K�K�M�*���a�f�f��	�e�o�o�&��f�&�&�'�	�d�m�m�$��b�k�k�"�	�D�M�M�*��C�K�K�(��q�k�k�"�	�c�l�l�#��
#�
#�J�0D�
E�	*�
 �
 ��,�.�)�	*�	�D�,�,�-��H�/�/�0�	�i�C�C�D��-�-��!�&�)������c�n�n�-���/A�B�	*�	*�s�K4�4K=c�2�ddl}|j}d�}||�}|jtj|�tj|��dt
fd�}|jtj|d��tj|��y)Nrc�P��tj��dtf�fd��}|S)Nr�c����|i|��Srr#�rr<r�s  �rr�z\TestSignatureObject.test_signature_on_decorated_builtins.<locals>.decorator.<locals>.wrapper�
�����T�,�V�,�,r�r�r�r��r�r�s` r�	decoratorzKTestSignatureObject.test_signature_on_decorated_builtins.<locals>.decorator�
�*���
�_�_�T�
"�
-�C�
-�#�
-��Nrr�c��yrr#rBs  r�wrapper_likezNTestSignatureObject.test_signature_on_decorated_builtins.<locals>.wrapper_liker�rF��follow_wrapped)r�r�r1rOr�r�)rUr�r�rp�decorated_funcrss      r�$test_signature_on_decorated_builtinsz8TestSignatureObject.test_signature_on_decorated_builtins�
s���	��?�?��	�#�4�������*�*�4�0� �*�*�>�:�	<�	7�S�6�����*�*�>�:?�A� �*�*�<�8�	:rc�(�ddl}|jtd�5tj|j
�ddd�|jtd�5tjt�ddd�y#1swY�BxYw#1swYyxYw)Nrzno signature found for builtin)r�r�rkrOr�r�r�)rUr�s  r�'test_signature_on_builtins_no_signaturez;TestSignatureObject.test_signature_on_builtins_no_signatures����
�
#�
#�J�$D�F�	@����i�>�>�?�	@��
#�
#�J�$D�F�	#����c�"�	#�	#�		@�	@��	#�	#�s� A<�B�<B�Bc��|jtd�5tjd�ddd�y#1swYyxYw)N�is not a callable objectr�)r�r�rOr�r_s r�test_signature_on_non_functionz2TestSignatureObject.test_signature_on_non_functions6��
�
#�
#�I�/I�
J�	"����b�!�	"�	"�	"�s�6�?c���dd�d�}Gd�d�}tjj|�}tjj||��}|j||�tj||��}|j||�||�}|`|j|j	|�d�tj��fd�}tjjd|�5||�}|jtj|��d|_|jtj|��|jtj|�|�ddd�y#1swYyxYw)	NT��kwonlyc��yrr#�r&r�r�	kwonlyreqrr<s      rr�zITestSignatureObject.test_signature_from_functionlike_object.<locals>.funcr�rc��eZdZd�Zd�Zy)�MTestSignatureObject.test_signature_from_functionlike_object.<locals>.funclikec��|j|_|j|_|j|_|j|_|j|_||_yr�rLrr��__defaults__�__kwdefaults__r��rUr�s  rr�zVTestSignatureObject.test_signature_from_functionlike_object.<locals>.funclike.__init__�I�� $�
�
��
� $�
�
��
�'+�';�';��$�$(�$5�$5��!�&*�&9�&9��#� ��	rc�&�|j|i|��Srr;r;s   rr�zVTestSignatureObject.test_signature_from_functionlike_object.<locals>.funclike.__call__&��� �t�y�y�$�1�&�1�1rN�rLrarbr�r�r#rr�funcliker����

!�
2rr�rMc�.��t|d�ry�|�S)N�_builtinmockT�r�)rX�_orig_isdescs �r�_isdesczLTestSignatureObject.test_signature_from_functionlike_object.<locals>._isdesc=s����s�N�+����$�$rzinspect.ismethoddescriptor)
rOr��
from_callabler1r�r�r[r�r�r�rTr�rK)	rUr�r��sig_func�sig_funclike�flr��builtin_funcr�s	        @r�'test_signature_from_functionlike_objectz;TestSignatureObject.test_signature_from_functionlike_objectsG���$(�	�	2�	2� �$�$�2�2�4�8���(�(�6�6�x��~�F������x�0��(�(��$��8������x�0�
�d�^���O��������+� �	!��1�1��	%�
�]�]�
 �
 �!=�w�
G�	H�#�D�>�L����W�7�7��E�F�(,�L�%��O�O�G�6�6�|�D�E����W�.�.�|�<�h�G�
	H�	H�	H�s
�5A=E;�;Fc���dd�d��G�fd�d�}|jttj|��d�y)NTr~c��yrr#r�s      rr�zCTestSignatureObject.test_signature_functionlike_class.<locals>.funcNr�rc���eZdZd�ZW�jZW�jZW�j
ZW�jZW�jZy)�GTestSignatureObject.test_signature_functionlike_class.<locals>.funclikec��yrr#)rU�markers  rr�zPTestSignatureObject.test_signature_functionlike_class.<locals>.funclike.__init__Rr�rN)rLrarbr�rr�r�r�r;s�rr�r�Qs=���
��}�}�H��}�}�H�"�2�2�O��,�,�L�!�0�0�Nrr�z(marker))r1r�rOr�)rUr�r�s  @r�!test_signature_functionlike_classz5TestSignatureObject.test_signature_functionlike_classJs9���%)�	�	1�	1�	
����W�.�.�x�8�9�:�Frc��Gd�d�}|j|j|�j�dtf�|j|j|�j�d�|j|j|�d�|jtd�5|j|��ddd�y#1swYyxYw)Nc�,�eZdZd�Zddefd�Zd�Zd�Zy)�:TestSignatureObject.test_signature_on_method.<locals>.Testc��yrr#r<s rr�zCTestSignatureObject.test_signature_on_method.<locals>.Test.__init___r�rr�c��yrr#�rUrqrrs   rr�z=TestSignatureObject.test_signature_on_method.<locals>.Test.m1ar�rc��yrr#r<s r�m2z=TestSignatureObject.test_signature_on_method.<locals>.Test.m2cr�rc��yrr#r�s rr�zCTestSignatureObject.test_signature_on_method.<locals>.Test.__call__er�rN�r)rLrarbr�r�r�r�r�r#rrr�r�^s��
�
�#�
�
�
rr���rq..r1)rrr.r1rKzinvalid method signature)r1r�r�r�r�r�rk)rUr�s  r�test_signature_on_methodz,TestSignatureObject.test_signature_on_method]s���	�	�	
��������	�	�2�F���	 �
	
��������	�	�2��	 �	
�������-��	 ��
#�
#�J�0J�
K�	#��N�N�4�6�"�	#�	#�	#�s�(C�Cc��Gd�d�}tj|�j�d��}|j|j	|�dt
f�y)Nc��eZdZddefd�Zy)�ETestSignatureObject.test_signature_wrapped_bound_method.<locals>.Testr�c��yrr#r�s   rr�zHTestSignatureObject.test_signature_wrapped_bound_method.<locals>.Test.m1{r�rNr�)rLrarbr�r�r#rrr�r�zs��
�#�
rr�c��yrr#rBs  r�m1dzDTestSignatureObject.test_signature_wrapped_bound_method.<locals>.m1d}r�rr�)r�r�r�r1r�r�)rUr�r�s   r�#test_signature_wrapped_bound_methodz7TestSignatureObject.test_signature_wrapped_bound_methodxsV��	�	�
�������	#�	�
$�	��������,�F���	 rc���Gd�d�}|�j}|j|j|�d�|j}|j|j|�d�y)Nc�"�eZdZedd�d��Zy)�?TestSignatureObject.test_signature_on_classmethod.<locals>.Testr)rrc��yrr#)r�rqrrs   rr.zCTestSignatureObject.test_signature_on_classmethod.<locals>.Test.foo�r�rN)rLrarbr�r.r#rrr�r��s��
�'(�
��
rr�))r�)rrr.r5.�r.r1r��rUr��meths   r�test_signature_on_classmethodz1TestSignatureObject.test_signature_on_classmethod��`��	�	�
�v�z�z���������-��	 �
�x�x���������-��	 rc���Gd�d�}|�j}|j|j|�d�|j}|j|j|�d�y)Nc��eZdZed��Zy)�@TestSignatureObject.test_signature_on_staticmethod.<locals>.Testc��yrr#)r�rss  rr.zDTestSignatureObject.test_signature_on_staticmethod.<locals>.Test.foo�r�rN)rLrarbr�r.r#rrr�r��s��
�
��
rr�)))r�..r1)rs..r5.r�r�s   r�test_signature_on_staticmethodz2TestSignatureObject.test_signature_on_staticmethod�r�rc��ddlm}d�}|j|j||��d�|j	t
d�5t
j||d��ddd�|j	t
d�5t
j||d���ddd�d�}|j|j||��d	�|j|j||d��d
�|j|j||dd���d
�|j|j||dd���d�|j|j||ddd���d�|j|j||d���d�d�}|j|j||d��d�|j|j||d���d�|j|j||ddd��d�|j|j||dddd���d�|j|j||ddddd���d�|j|j||d���d�|j|j||dd���d�dtddfd �}t
j|�x}|_|j|j|||d���d!dd"td#ffdf�|j|j|||d�d��dd"td#ffdf�d$�}|||d%��d&��}|j|j|�d'�|j|�d&�d(�}|||dd&��d)��}|j|j|�d*�|j|d%��d+�d,�}|||d&d&�-�d%d)�.�}|j|j|�d/�t
j|�jd0d1�2�}|j||ji|j��d3�dBd4�}||d5��}t
j|�jd1��}|j||ji|j��d6�t
j|�jd1d7�}|j||ji|j��d8�t
j|�jd1d7��}|j||ji|j��d8�t
j|�jd7��}|j||ji|j��d9�||d%d&��}t
j|�jd7�}|j||ji|j��d:�d;�}t
j|�}|jt|�d<�|j|j||d��d=�|j|j||dd��d>�|j|j||ddd��d?�|j|j||ddd���d@�|j|j||dd���dA�y#1swY���xYw#1swY���xYw)CNr)r�c��yrr#r#rrr�z;TestSignatureObject.test_signature_on_partial.<locals>.test�r�rr+�has incorrect argumentsrr�c��yrr#rts    rr�z;TestSignatureObject.test_signature_on_partial.<locals>.test�r�r))r0�r�..r1�r..r5�rs..r5.))r�r�r�.r-r))r��rr-.r5r�.)r�r))r0�r�r.r5r�r�.))r�r�r�.))�r&r.r5�r�..r5r�r�.c��yrr#)r&r�rr<s    rr�z;TestSignatureObject.test_signature_on_partial.<locals>.test�r�r))rLr�rN.))r�r�rN.rbTr)r�r�))rL�r�r.r5rN.�r�))r0rLr�rN.)r�r�rr�r�c��yrr#r�s   rr�z;TestSignatureObject.test_signature_on_partial.<locals>.testr�rr�.r1c��|Srr#r�s rr.z:TestSignatureObject.test_signature_on_partial.<locals>.foos���Hrr=�)))r&r�.r5.c��|||fSrr#r�s   rr.z:TestSignatureObject.test_signature_on_partial.<locals>.foo(�
���a��7�NrrP)))r�rP.r5r�.)rrPr=c��||||fSrr#rts    rr.z:TestSignatureObject.test_signature_on_partial.<locals>.foo2s���a��A�:�r)rsr)r�rs))r0)r�r=.r5)rr�.r5)rsrP.r5.��rir�)r�rir�rPc��|||fSrr#r�s   rr.z:TestSignatureObject.test_signature_on_partial.<locals>.foo?r�rrd)rir-rdrH)rirHrd)rrHrd)rHr=r�c��yrr#)r&r�rrsr<s     rr.z:TestSignatureObject.test_signature_on_partial.<locals>.fooTr�rz(a, b, /, c, d, **kwargs)))�r�..�positional_only�r..r1�rs..r1rN.))r�r�rN.))r�rN.))�rrb.r5r�rN.))r�r�r�rN.ru)
r�r�r1r�r�rkrOr�r��bindrr<r�)rUr�r�r�r.�_foo�bas       r�test_signature_on_partialz-TestSignatureObject.test_signature_on_partial�s���%�	�	
��������
�6�	�B�
�
#�
#�J�0I�
J�	0����g�d�A�.�/�	0��
#�
#�J�0I�
J�	2����g�d�a�0�1�	2�	�	
��������
�6��	 �	
��������a�(8�9��	 �	
��������a�1�(=�>��	 �	
���������Q�(?�@��	 �	
��������a�1��(B�C��	 �	
���������(:�;��	 �	�	
��������a�(8�9��	 �	
���������(:�;��	 �	
��������a��A�(>�?��	 �	
��������a��A�D�(I�J��	 �	
��������a��A�A��(K�L��	 �	
���������(:�;��	 �	
����������(B�C��	 �	��	��	�$+�#4�#4�T�#:�:��d� ����������a�0@�(A�B�C���c�+B�C�E���	�
	
���������a�0@�!�(D�E���c�+B�C�E���	�	��w�s�b�)�R�0���������-��	 �
	
������$�	��w�s�A��,��3���������-��	 �	
������[�1�	��w�s�b�B�/�2��<���������-��	 ��
�
�t�
$�
)�
)�C�2�
)�
6������r�w�w�4�"�)�)�4�6G�H�	��s�b�!��
�
�
�t�
$�
)�
)�B�
)�
/������r�w�w�4�"�)�)�4�k�B�
�
�
�t�
$�
)�
)�"�b�
1������r�w�w�4�"�)�)�4�l�C�
�
�
�t�
$�
)�
)�"��
)�
3������r�w�w�4�"�)�)�4�l�C�
�
�
�t�
$�
)�
)�B�
)�
/������r�w�w�4�"�)�)�4�k�B��t�r�R�(��
�
�
�t�
$�
)�
)�"�
-������r�w�w�4�"�)�)�4�l�C�	�����$������S��#>�?���������Q��8��	�	
��������Q��(:�;��	�	
��������Q��1�(=�>��	�
	
��������Q��Q�(?�@��	�	
��������Q�!�(<�=��	�A	0�	0��	2�	2�s�]�]�]�]c���ddlm�G�fd�d�}|jtd�5t	j
|j�ddd�G�fd�d�}|j|j|jd��d	�|j|j|�jd��d
�G�fd�d�}|j|j|jd��d�y#1swY��xYw)
Nr�rJc�&��eZdZd�ZW�e�Zy)�ATestSignatureObject.test_signature_on_partialmethod.<locals>.Spamc��yrr#r#rrr�zFTestSignatureObject.test_signature_on_partialmethod.<locals>.Spam.test|r�rN�rLrarbr�r�r�s�r�Spamr�{s���
���%�Crr�r�c�,��eZdZdd�ZW�ed��Zy)r�c��yrr#)�itr&rs   rr�zFTestSignatureObject.test_signature_on_partialmethod.<locals>.Spam.test�r�rrrN)r�rxr�r�s�rr�zATestSignatureObject.test_signature_on_partialmethod.<locals>.Spam�s���
����*�CrFr�)))r�..r1r0�rr.r5rx))r0r�rxc�*��eZdZdd�ZW�ed�Zy)r�c��yrr#r�s  rr�zFTestSignatureObject.test_signature_on_partialmethod.<locals>.Spam.test�r�rrN)rU�anno)rLrarbr�rur�s�rr�zATestSignatureObject.test_signature_on_partialmethod.<locals>.Spam�s���
��d�A�&�Ar)))rU.r�r1.)	r�rJr�rkrOr�r�r1ru)rUr�rJs  @r�test_signature_on_partialmethodz3TestSignatureObject.test_signature_on_partialmethodxs����+�	&�	&�
�
#�
#�J�0I�
J�	(����d�h�h�'�	(�	+�	+�
	
���������5��A�"�	#�	
��������
�
�U��C�"�	#�
	'�	'�	
�����������?��	 �3	(�	(�s� C7�7Dc�t�d�}d|_|jttj|��d�y)Nc��yrr#r�s rr.zETestSignatureObject.test_signature_on_fake_partialmethod.<locals>.foo�r�rrxz(a))�_partialmethodr1r�rOr��rUr.s  r�$test_signature_on_fake_partialmethodz8TestSignatureObject.test_signature_on_fake_partialmethod�s-���#�������W�.�.�s�3�4�e�<rc����d��G�fd�d�}�|�j�}|j|j|j�d�|j|j|�j�d�|j|j|jd��d�|j|j|�d�d	��G�fd
�d�}|j|j|j�d�|j|j|�j�d�d�}|j|_|j|j|�d�y)
Nc�P��tj��dtf�fd��}|S)Nr�c����|i|��Srr#rls  �rr�zSTestSignatureObject.test_signature_on_decorated.<locals>.decorator.<locals>.wrapper�rmrrnros` rrpzBTestSignatureObject.test_signature_on_decorated.<locals>.decorator�rqrc� ��eZdZW�d��Zy)�<TestSignatureObject.test_signature_on_decorated.<locals>.Fooc��yrr#�rUr&r�s   rr'z@TestSignatureObject.test_signature_on_decorated.<locals>.Foo.bar�r�rN)rLrarbr'�rps�rrxr������
�
��
rrx))�rU..r1r0r�.))r0r�.FrtrMc����tj��dtf�fd��}tj��}t|jj��dd}|j|��|_	|S)Nr�c����dg|��i|��SrAr#rls  �rr�zSTestSignatureObject.test_signature_on_decorated.<locals>.decorator.<locals>.wrapper�s����B�0��0��0�0rrr�)
r�r�r�rOr�r�r4r�rr�)r�r�r��
new_paramss`   rrpzBTestSignatureObject.test_signature_on_decorated.<locals>.decorator�sk���
�_�_�T�
"�
1�C�
1�#�
1��#�#�D�)�C��s�~�~�4�4�6�7���;�J�$'�K�K�:�K�$F�G�!��Nrc� ��eZdZW�d��Zy)r�c��yrr#r�s   rr�zETestSignatureObject.test_signature_on_decorated.<locals>.Foo.__call__�r�rNr�r�s�rrxz<TestSignatureObject.test_signature_on_decorated.<locals>.Foo�rr�)r�.c��yrr#r#rr�wrapped_foo_callzITestSignatureObject.test_signature_on_decorated.<locals>.wrapped_foo_call�r�r)r'r1r�r��__wrapped__)rUrxr'r	rps    @r�test_signature_on_decoratedz/TestSignatureObject.test_signature_on_decorated�s>���	�	�	�
���	�	�"�����������0��	 �	
��������	�	�2��	 �
	
�����������F��	 �	
�������,��	 �	�	�	�
	
���������5��	 �
	
����������7��	 �
	�'*�|�|��$�������(8�9��	 rc�"�Gd�d�}|j|j|�d�Gd�dt�}Gd�d|��}|j|j|�d�Gd�dt�}Gd	�d|��}|j|j|�d
�|j|j|�d�Gd�d
t�}Gd�dt|��}Gd�d|��}|j|j|�d�|j|j|�d�|j|j|�d
�Gd�dt�}Gd�d|��}|j|j|�d�y)Nc��eZdZd�Zy)�6TestSignatureObject.test_signature_on_class.<locals>.Cc��yrr#�rUr&s  rr�z?TestSignatureObject.test_signature_on_class.<locals>.C.__init__�r�rN�rLrarbr�r#rrr�r�r�rr��)r0.c��eZdZd�Zy)�7TestSignatureObject.test_signature_on_class.<locals>.CMc��yrr#)r�r&s  rr�z@TestSignatureObject.test_signature_on_class.<locals>.CM.__call__�r�rNr�r#rrr�r�r�rr�c��eZdZd�Zy)rc��yrr#�rUr�s  rr�z?TestSignatureObject.test_signature_on_class.<locals>.C.__init__�r�rNrr#rrr�z6TestSignatureObject.test_signature_on_class.<locals>.C�r�rrc�$��eZdZdd��fd�
Z�xZS)rrr�c�(��t�|�||||�Sr�r'r���mclsr�bases�dctr.r)s     �rr�z?TestSignatureObject.test_signature_on_class.<locals>.CM.__new__������w��t�T�5�#�>�>r�rLrarbr�r1r2s@rr�z7TestSignatureObject.test_signature_on_class.<locals>.CM�����78�
?�
?rc��eZdZd�Zy)rc��yrr#rs  rr�z?TestSignatureObject.test_signature_on_class.<locals>.C.__init__
r�rNrr#rrr�z6TestSignatureObject.test_signature_on_class.<locals>.C
r�rr))�r..r1�r..r1�r..r1)r.r.r5.c�*��eZdZdd��fd�
Zd�Z�xZS)�8TestSignatureObject.test_signature_on_class.<locals>.CMMrr�c�(��t�|�||||�Srrrs     �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)rLrarbr�r�r1r2s@r�CMMr)
s���78�
?�
(rr/c�$��eZdZdd��fd�
Z�xZS)rr-�r'c�(��t�|�||||�Srr)rrrrr'r)s     �rr�z?TestSignatureObject.test_signature_on_class.<locals>.CM.__new__
r rr!r2s@rr�z7TestSignatureObject.test_signature_on_class.<locals>.CM
r"rc��eZdZd�Zy)rc��yrr#rs  rr�z?TestSignatureObject.test_signature_on_class.<locals>.C.__init__
r�rNrr#rrr�z6TestSignatureObject.test_signature_on_class.<locals>.C
r�r)))r,..r1)r-..r1)r...r1.c�$��eZdZdd��fd�
Z�xZS)rr-r1c�&��t�|�|||�Sr�r'r�)r�rrrr'r)s     �rr�z@TestSignatureObject.test_signature_on_class.<locals>.CM.__init__.
s����w�'��e�S�9�9r�rLrarbr�r1r2s@rr�z7TestSignatureObject.test_signature_on_class.<locals>.CM-
s���78�
:�
:rc��eZdZd�Zy)rc��yrr#rs  rr�z?TestSignatureObject.test_signature_on_class.<locals>.C.__init__1
r�rNrr#rrr�z6TestSignatureObject.test_signature_on_class.<locals>.C0
r�r))r%r&r')r'r-.r5.)r1r�r�)rUr�r�r/s    r�test_signature_on_classz+TestSignatureObject.test_signature_on_class�sz��	�	�	
�������*��	 �	��	�	�"�	�	
�������*��	 �	?��	?�	�"�	�	
�������*��	 �	
�������+��	 �	(�$�	(�
	?���	?�	�"�	�	
�������,��	 �	
�������+��	 �	
�������*��	 �	:��	:�	�"�	�	
�������+��	 rc� �Gd�d�}Gd�d|�}Gd�d|�}Gd�d|�}|j|j|�d	�|j|j|�d
�|j|j|�d�y)Nc��eZdZdd�Zy)�9TestSignatureObject.test_signature_on_subclass.<locals>.Ac�,�tj|�Sr�r�r�)r�r&rr<s    rr�zATestSignatureObject.test_signature_on_subclass.<locals>.A.__new__=
����~�~�c�*�*rNr��rLrarbr�r#rrrSr><
���
+rrSc��eZdZd�Zy)�9TestSignatureObject.test_signature_on_subclass.<locals>.Bc��yrr#rs  rr�zBTestSignatureObject.test_signature_on_subclass.<locals>.B.__init__@
r�rNrr#rrrVrE?
r�rrVc��eZdZdd�Zy)�9TestSignatureObject.test_signature_on_subclass.<locals>.Cc�,�tj|�Srr@)r�r&r�rr<s     rr�zATestSignatureObject.test_signature_on_subclass.<locals>.C.__new__C
rArN�rr-rBr#rrr�rHB
rCrr�c��eZdZy)�9TestSignatureObject.test_signature_on_subclass.<locals>.DNr�r#rrr[rLE
r*rr[r))�r&r.r1�r�r-.r1rLrN.))rMrLrN.r,)rUrSrVr�r[s     r�test_signature_on_subclassz.TestSignatureObject.test_signature_on_subclass;
s���	+�	+�	��	�	+��	+�	��	�	
�������*��	 �	
�������*��	 �	
�������*��	 rc��ddlm}m}|d�}Gd�d||�}|j|j	|�ddt
dffdf�y)	Nr)�Generic�TypeVarr,c��eZdZdeddfd�Zy)�ATestSignatureObject.test_signature_on_generic_subclass.<locals>.Ar&r�Nc��yrr#rs  rr�zJTestSignatureObject.test_signature_on_generic_subclass.<locals>.A.__init__]
r�r)rLrarbr�r�r#rrrSrT\
s��
�S�
�T�
rrSr&.r5)�typingrQrRr1r�r�)rUrQrRr,rSs     r�"test_signature_on_generic_subclassz6TestSignatureObject.test_signature_on_generic_subclassW
sP��+��C�L��	���
�	�	
�������*���c�>�:�<�� �	!rc�Z�Gd�d�}|jttj|��d�Gd�d|�}|jttj|��d�Gd�dt�}Gd�d|�}|jtd�5|jtj|�d�ddd�|jtd�5|jtj|�d�ddd�y#1swY�NxYw#1swYyxYw)	Nc��eZdZy��CTestSignatureObject.test_signature_on_class_without_init.<locals>.CNr�r#rrr�r[h
r�rr�r�c��eZdZy��CTestSignatureObject.test_signature_on_class_without_init.<locals>.DNr�r#rrr[r^j
r�rr[c��eZdZyrZr�r#rrr�zCTestSignatureObject.test_signature_on_class_without_init.<locals>.Cn
r�rc��eZdZyr]r�r#rrr[zCTestSignatureObject.test_signature_on_class_without_init.<locals>.Do
r�rzcallable.*is not supported)r1r�rOr�r�r�rk)rUr�r[s   r�$test_signature_on_class_without_initz8TestSignatureObject.test_signature_on_class_without_initd
s���	�
�����W�.�.�q�1�2�D�9��������W�.�.�q�1�2�D�9�	������
�
#�
#�J�0L�
M�	9����W�.�.�q�1�4�8�	9�
�
#�
#�J�0L�
M�	9����W�.�.�q�1�4�8�	9�	9�	9�	9��	9�	9�s�"&D�&&D!�D�!D*c��d}|jttjtj
��|�Gd�dtj
�}Gd�d�}Gd�d||�}|jttj|��|�|jttj|��|�Gd�d	|�}|jttj|��d
�Gd�dt�}Gd
�d||��}|jttj|��d�y)Nz=(file, protocol=None, fix_imports=True, buffer_callback=None)c��eZdZy)�>TestSignatureObject.test_signature_on_builtin_class.<locals>.PNr�r#rrr
rd|
r�rr
c��eZdZy)�GTestSignatureObject.test_signature_on_builtin_class.<locals>.EmptyTraitNr�r#rr�
EmptyTraitrf}
r�rrgc��eZdZy)�?TestSignatureObject.test_signature_on_builtin_class.<locals>.P2Nr�r#rr�P2ri~
r�rrjc��eZdZd�Zy)�?TestSignatureObject.test_signature_on_builtin_class.<locals>.P3c��yrr#)rUrxs  rr�zHTestSignatureObject.test_signature_on_builtin_class.<locals>.P3.__init__�
r�rNrr#rr�P3rl�
r�rrnz(spam)c��eZdZd�Zy)�BTestSignatureObject.test_signature_on_builtin_class.<locals>.MetaPc��yrr#)r�r.r's   rr�zKTestSignatureObject.test_signature_on_builtin_class.<locals>.MetaP.__call__�
r�rNr�r#rr�MetaPrp�
r�rrrc��eZdZy)�?TestSignatureObject.test_signature_on_builtin_class.<locals>.P4Nr�r#rr�P4rt�
r*rrurz
(foo, bar))r1r�rOr�r�r�r�)rUr]r
rgrjrnrrrus        r�test_signature_on_builtin_classz3TestSignatureObject.test_signature_on_builtin_classu
s���,������W�.�.�w���?�@�(�K�&����&���%��Q�%�����W�.�.�q�1�2�H�=�����W�.�.�r�2�3�X�>�	��	�	
����W�.�.�r�2�3�X�>�	�D�	�	��u�	�����W�.�.�r�2�3�\�Brc�R�Gd�d�}|j|j|��d�Gd�d�}|jtd�5t	j|��ddd�Gd�d||�}|j|j|��d�Gd	�d
�}d�|_|j|j|�d�||_|jtd�5|j|�ddd�y#1swY��xYw#1swYyxYw)
Nc��eZdZd�Zy)�CTestSignatureObject.test_signature_on_callable_objects.<locals>.Fooc��yrr#rs  rr�zLTestSignatureObject.test_signature_on_callable_objects.<locals>.Foo.__call__�
r�rNr�r#rrrxry�
r�rrxrc��eZdZy)�DTestSignatureObject.test_signature_on_callable_objects.<locals>.SpamNr�r#rrr�r|�
r*rr�r{c��eZdZy)�CTestSignatureObject.test_signature_on_callable_objects.<locals>.BarNr�r#rrr(r~�
r*rr(c��eZdZy)�GTestSignatureObject.test_signature_on_callable_objects.<locals>.WrappedNr�r#rr�Wrappedr��
r*rr�c��yrr#r�s rr�zHTestSignatureObject.test_signature_on_callable_objects.<locals>.<lambda>�
r�r�wrapper loop)r1r�r�r�rOr
rk)rUrxr�r(r�s     r�"test_signature_on_callable_objectsz6TestSignatureObject.test_signature_on_callable_objects�
s��	�	�	
��������.��	 �	�	�
�
#�
#�I�/I�
J�	&����d�f�%�	&�	�$��	�	
��������.��	 �	�	�,����������0��	 �&���
�
#�
#�J��
?�	$��N�N�7�#�	$�	$�%	&�	&��$	$�	$�s�D�6D�D�D&c�J�|j|jdd��d�y)Nc��|Srr#r�s rr�z?TestSignatureObject.test_signature_on_lambdas.<locals>.<lambda>�
s��a�r)))r&r=.r1.r<r,r_s r�test_signature_on_lambdasz-TestSignatureObject.test_signature_on_lambdas�
s ���������9��	 rc	�j�tjj�tjj�tjj	�fD]K}|j|��5|j
ttj|��d�ddd��My#1swY�XxYw)N�r�z(*args, **kwargs))
r�r�r�r��	MagicMockrr1r�rOr��rUr�s  r�test_signature_on_mocksz+TestSignatureObject.test_signature_on_mocks�
s���
�M�M��� ��M�M�#�#�%��M�M�#�#�%�
�	T�D�
���4��(�
T�� � ��W�%6�%6�t�%<�!=�?R�S�
T�
T�	T�

T�
T�s�//B)�)B2	c�R�tjj�tjj�fD]P}|j	|��5|jt�5tj|�ddd�ddd��Ry#1swY�xYw#1swY�ixYw)Nr�)	r�r��NonCallableMock�NonCallableMagicMockrr�r�rOr�r�s  r�#test_signature_on_noncallable_mocksz7TestSignatureObject.test_signature_on_noncallable_mocks�
s����M�M�)�)�+��M�M�.�.�0�
�	,�D����4��(�
,��&�&�y�1�,��%�%�d�+�,�
,�
,�		,�
,�,��
,�
,�s$�B�(B�>B�B�B�B&	c��dtdtfd�}|jtj|�dk(�|jtj|�dk7�|jtj|�tk(�|jtj|�tk7�dtdtfd�}|jtj|�tj|�k(�|jtj|�tj|�k7�|jttj|��ttj|���dtdtfd�}|jtj|�tj|�k(�|jtj|�tj|�k7�|jttj|��ttj|���dtfd�}|jtj|�tj|�k(�|jtj|�tj|�k7�|jttj|��ttj|���dd�dtdtfd	�}|jtj|�tj|�k(�|jtj|�tj|�k7�|jttj|��ttj|���dtfd
�}|jtj|�tj|�k(�|jtj|�tj|�k7�|jttj|��ttj|���dtdtfd�}|jtj|�tj|�k(�|jtj|�tj|�k7�|jttj|��ttj|���dtdtfd�}|jtj|�tj|�k(�|jtj|�tj|�k7�|jttj|��ttj|���d
�}d�}|jtj|�tj|�k(�|jtj|�tj|�k7�|jttj|��ttj|���dd�d�}dd�d�}|jtj|�tj|�k(�|jtj|�tj|�k7�|jttj|��ttj|���dd�d�}dd�d�}|jtj|�tj|�k(�|jtj|�tj|�k7�|jttj|��ttj|���d�}dd�d�}|jtj|�tj|�k(�|jtj|�tj|�k7�|jttj|��ttj|���dd�dtfd�}dd�dtfd�}|jtj|�tj|�k(�|jtj|�tj|�k7�|jttj|��ttj|���y)Nr�r�c��yrr#r�s  rr.z8TestSignatureObject.test_signature_equality.<locals>.foo�
r�rr�c��yrr#r�s  rr'z8TestSignatureObject.test_signature_equality.<locals>.bar�
r�rc��yrr#r�s  rr'z8TestSignatureObject.test_signature_equality.<locals>.bar�
r�rc��yrr#r�s  rr'z8TestSignatureObject.test_signature_equality.<locals>.bar�
r�rr�c��yrr#r�s  rr'z8TestSignatureObject.test_signature_equality.<locals>.bar�
r�rc��yrr#�r&rs  rr'z8TestSignatureObject.test_signature_equality.<locals>.bar�
r�rc��yrr#r�s  rr'z8TestSignatureObject.test_signature_equality.<locals>.bar�
r�rc��yrr#�r�r&s  rrxz9TestSignatureObject.test_signature_equality.<locals>.spam�
r�rc��yrr#r�s   rr.z8TestSignatureObject.test_signature_equality.<locals>.foo�
r�rc��yrr#�rr�r&s   rr'z8TestSignatureObject.test_signature_equality.<locals>.bar�
r�rrr�c��yrr#r�s   rr.z8TestSignatureObject.test_signature_equality.<locals>.foo�
r�rc��yrr#r�s   rr'z8TestSignatureObject.test_signature_equality.<locals>.bar�
r�rc��yrr#��posr&r�rs    rr.z8TestSignatureObject.test_signature_equality.<locals>.foor�rc��yrr#�r�rr�r&s    rr'z8TestSignatureObject.test_signature_equality.<locals>.barr�rc��yrr#r�s    rr.z8TestSignatureObject.test_signature_equality.<locals>.foor�rc��yrr#r�s    rr'z8TestSignatureObject.test_signature_equality.<locals>.barr�rr<c��yrr#)r�r&r�rrr<s      rr.z8TestSignatureObject.test_signature_equality.<locals>.foor�rc��yrr#)r�rr�r&rr<s      rr'z8TestSignatureObject.test_signature_equality.<locals>.barr�r)
r�r6rTrOr�rKrr1�hashr�)rUr.r'rxs    r�test_signature_equalityz+TestSignatureObject.test_signature_equality�
sX��+��+��+�����*�*�3�/�2�5�6�����)�)�#�.�"�4�5�����)�)�#�.�)�;�<�����*�*�3�/�9�<�=�+��+��+�����)�)�#�.�'�2C�2C�C�2H�H�I�����*�*�3�/�7�3D�3D�S�3I�I�J������"�"�3�'�(�$�w�/@�/@��/E�*F�	H�	*��)��)�����*�*�3�/�7�3D�3D�S�3I�I�J�����)�)�#�.�'�2C�2C�C�2H�H�I������"�"�3�'�(�$�w�/@�/@��/E�*F�	H�	#��"�����*�*�3�/�7�3D�3D�S�3I�I�J�����)�)�#�.�'�2C�2C�C�2H�H�I������"�"�3�'�(�$�w�/@�/@��/E�*F�	H��.��.�5�.�����*�*�3�/�7�3D�3D�S�3I�I�J�����)�)�#�.�'�2C�2C�C�2H�H�I������"�"�3�'�(�$�w�/@�/@��/E�*F�	H�	(�E�'�����*�*�3�/�7�3D�3D�S�3I�I�J�����)�)�#�.�'�2C�2C�C�2H�H�I������"�"�3�'�(�$�w�/@�/@��/E�*F�	H�	)�S�(�U�(�����*�*�3�/�7�3D�3D�S�3I�I�J�����)�)�#�.�'�2C�2C�C�2H�H�I������"�"�3�'�(�$�w�/@�/@��/E�*F�	H�)�3�)�e�)�����*�*�4�0�G�4E�4E�c�4J�J�K�����)�)�$�/�7�3D�3D�S�3I�I�J������"�"�4�(�)�4��0A�0A�#�0F�+G�	I�	"�!�����)�)�#�.�'�2C�2C�C�2H�H�I�����*�*�3�/�7�3D�3D�S�3I�I�J������"�"�3�'�(�$�w�/@�/@��/E�*F�	H��#��#�����)�)�#�.�'�2C�2C�C�2H�H�I�����*�*�3�/�7�3D�3D�S�3I�I�J������"�"�3�'�(�$�w�/@�/@��/E�*F�	H��(� !�(�����)�)�#�.�'�2C�2C�C�2H�H�I�����*�*�3�/�7�3D�3D�S�3I�I�J������"�"�3�'�(�$�w�/@�/@��/E�*F�	H�	'� !�(�����*�*�3�/�7�3D�3D�S�3I�I�J�����)�)�#�.�'�2C�2C�C�2H�H�I������"�"�3�'�(�$�w�/@�/@��/E�*F�	H�!�;��;�$&�;��;�����)�)�#�.�'�2C�2C�C�2H�H�I�����*�*�3�/�7�3D�3D�S�3I�I�J������"�"�3�'�(�$�w�/@�/@��/E�*F�	Hrc�
�tj}tj}d�}tj|�}||d|j�g��}|jt
|�t
|��|jt
|�t
|jd����dd�}|jt
|�t
tj|���ifd�}|jtd	�5t
tj|��ddd�difd
�}|jtd	�5t
tj|��ddd�y#1swY�MxYw#1swYyxYw)Nc��yrr#r�s rr.z8TestSignatureObject.test_signature_hashable.<locals>.foor�rr&r�rx�r�r�c��yrr#r�s rr'z8TestSignatureObject.test_signature_hashable.<locals>.bar&r�rc��yrr#r�s rr.z8TestSignatureObject.test_signature_hashable.<locals>.foo)r�r�unhashable typec��yrr#r�s rr.z8TestSignatureObject.test_signature_hashable.<locals>.foo-r�r)r�r)rOr�r�r��POSITIONAL_OR_KEYWORDr1r�r�rr�r�)rUrr
r.�foo_sig�
manual_sigr's       r�test_signature_hashablez+TestSignatureObject.test_signature_hashables9������������#�#�C�(���1�S�!�*A�*A�#B�"C�D�
�����g���Z�(8�9����D��M� ��!3�!3�f�!3�!M�N�	P�	����D��M�4��0A�0A�#�0F�+G�H���
�
#�
#�I�/@�
A�	)���"�"�3�'�(�	)�	�b��
�
#�
#�I�/@�
A�	)���"�"�3�'�(�	)�	)�		)�	)��	)�	)�s�E-�E9�-E6�9Fc��ddd�dtddfd�}|jttj|��d�ddd�dtddfd�}|jttj|��d�d	�}|jttj|��d
�dt
tdtttffd�}|jttj|��d�d
dlm	}dt
td|ttffd�}|jttj|��d�y)Nrr&r�r�c��yrr#�r&r�rr<s    rr.z3TestSignatureObject.test_signature_str.<locals>.foo2r�rz*(a: int = 1, *, b, c=None, **kwargs) -> 42c��yrr#)r&r�rrr<s     rr.z3TestSignatureObject.test_signature_str.<locals>.foo7r�rz.(a: int = 1, *args, b, c=None, **kwargs) -> 42c��yrr#r#rrr.z3TestSignatureObject.test_signature_str.<locals>.foo<r�rr�c��yrr#r�s rr.z3TestSignatureObject.test_signature_str.<locals>.foo@r�rz#(a: list[str]) -> tuple[str, float]r)�Tuplec��yrr#r�s rr.z3TestSignatureObject.test_signature_str.<locals>.fooFr�rz#(a: list[str]) -> Tuple[str, float]r�)
r�r1r�rOr�r�r�r6rVr�)rUr.r�s   r�test_signature_strz&TestSignatureObject.test_signature_str1s0��	��	�#�	�B�	�����W�.�.�s�3�4�E�	G�	�T�	�#�	��	�����W�.�.�s�3�4�I�	K�	�����W�.�.�s�3�4�d�;�	�4��9�	��s�E�z�!2�	�����W�.�.�s�3�4�>�	@�	!�	�4��9�	��s�E�z�!2�	�����W�.�.�s�3�4�>�	@rc�&�tj}tj}d�}|jt	tj
|��d�|jt	||d|j�g���d�|jt	||d|j�|d|j�g���d�|jt	||d|j�|d|j�g���d�y)	Nc�
�||fSrr#)�a_por�r<s   rr�zDTestSignatureObject.test_signature_str_positional_only.<locals>.testO�����<�rz(a_po, /, *, b, **kwargs)r.r�z(foo, /)r'z(foo, /, **bar)z(foo, /, *bar))	rOr�r�r1r�r�r�rl�VAR_POSITIONAL)rUr
rr�s    r�"test_signature_str_positional_onlyz6TestSignatureObject.test_signature_str_positional_onlyKs�����������	 �	
����W�.�.�t�4�5�4�	6�	
����Q�1�U�A�4E�4E�+F�*G�H�I�#�	%�	
����Q� !�%��):�):� ;� !�%���� 7�+9�:�;�+�	,�
	
����Q� !�%��):�):� ;� !�%��)9�)9� :�+<�=�>�*�	+rc��dd�}tj|�}|jd��}|j|jd�|j|j
��}|j|j|j
�|jd��}|j
|jd�|j
|tj|��y)Nr�c��yrr#r#rrr�z=TestSignatureObject.test_signature_replace_anno.<locals>.testcr�rr�)r�r�)rOr�rrQr�r�r1r's   r�test_signature_replace_annoz/TestSignatureObject.test_signature_replace_annobs���	�����%���k�k�D�k�1���
�
�c�+�+�T�2��k�k�C�I�I�k�6���
�
�c�+�+�S�Y�Y�7��k�k�B�k�/������.�.��3�����g�/�/��5�6rc���d�}tjdtjj�}tj|f��x}|_|j|tj|��y)Nc��yrr#r#rrr�z9TestSignatureObject.test_signature_replaced.<locals>.testpr�rrxr�)rOr�r�r�r�r1r�)rUr�r�r�s    r�test_signature_replacedz+TestSignatureObject.test_signature_replacedos\��	��&�&�v�w�/@�/@�/P�/P�Q�
�#*�#4�#4��
�#N�N��d� �����g�/�/��5�6rc��Gd�d�}Gd�d|�}|j|j|j�d�|j|j|j�|j|j��y)Nc��eZdZddd�dd�Zy)�FTestSignatureObject.test_signature_on_mangled_parameters.<locals>.Spamrb)�	_Spam__p2c��yrr#)rU�	_Spam__p1r�s   rr.zJTestSignatureObject.test_signature_on_mangled_parameters.<locals>.Spam.fooyr�rN)r-)r�rr�r-r
r#rrr�r�xs��
�a�
rr�c��eZdZy)�ETestSignatureObject.test_signature_on_mangled_parameters.<locals>.HamNr�r#rr�Hamr�{r*rr�))r)r�r-rr1)r�rbr-r5.)r1r�r.)rUr�r�s   r�$test_signature_on_mangled_parametersz8TestSignatureObject.test_signature_on_mangled_parameterswsk��	�	�	�$�	�	
���������1��	 �	
���������1�������0�	2rc��Gd�dtj�}dd�}|j|�}|j||�y)Nc��eZdZy)�PTestSignatureObject.test_signature_from_callable_python_obj.<locals>.MySignatureNr�r#rrr�r��r�rr�c��yrr#r�s  rr.zHTestSignatureObject.test_signature_from_callable_python_obj.<locals>.foo�r�r�r�r�rOr�r��assertIsInstance�rUr�r.r�s    r�'test_signature_from_callable_python_objz;TestSignatureObject.test_signature_from_callable_python_obj�s3��2�'�+�+�2� ��+�+�C�0�����g�{�3rc��Gd�dtj�}Gd�d�}|j|�}|j||�y)Nc��eZdZy)�KTestSignatureObject.test_signature_from_callable_class.<locals>.MySignatureNr�r#rrr�r��r�rr�c��eZdZy)�CTestSignatureObject.test_signature_from_callable_class.<locals>.fooNr�r#rrr.r��r�rr.r�r�s    r�"test_signature_from_callable_classz6TestSignatureObject.test_signature_from_callable_class�s7��	3�'�+�+�2����+�+�C�0�����g�{�3rc��Gd�dtj�}|jtj�}|j||�y)Nc��eZdZy)�QTestSignatureObject.test_signature_from_callable_builtin_obj.<locals>.MySignatureNr�r#rrr�r��r�rr�)rOr�r�r�r�r�)rUr�r�s   r�(test_signature_from_callable_builtin_objz<TestSignatureObject.test_signature_from_callable_builtin_obj�s6��	3�'�+�+�2��'�'����8�����c�;�/rc�Z�t�D]Z}tj|�}t|j�}t|�}|j
|�|j||��\tjt�}t|j�}|j|t�yr)
r;rOr�r�r4r�rKr1rDr�r�s     r�3test_signature_definition_order_preserved_on_kwonlyzGTestSignatureObject.test_signature_definition_order_preserved_on_kwonly�s���G�I�	*�B��)�)�"�-�I��Y�)�)�*�A��a�y�H��O�O�A�����Q��)�	*��%�%�&I�J�	���%�%�&������<�=rc��tjd��j}tjd��j}|j||�y)Nc��yrr#rs  rr�zITestSignatureObject.test_signater_parameters_is_ordered.<locals>.<lambda>�r�rc��yrr#rs  rr�zITestSignatureObject.test_signater_parameters_is_ordered.<locals>.<lambda>�r�r)rOr�r4r�)rU�p1�p2s   r�#test_signater_parameters_is_orderedz7TestSignatureObject.test_signater_parameters_is_ordered�s@��
�
�
�0�
1�
<�
<��
�
�
�0�
1�
<�
<�����B��#rc�l�Gd�d�}d|dtfd�}d|dddtfd�}tjtjjfD�]U}|j|�	�5||�}|j
|jt�|j
|jdj|�||t��
�}|j
|jt�|j
|jdj|�||dtit���}|j
|jt�|j
|jdj|�|j
|jdjd�ddd���Xy#1swY��dxYw)Nc��eZdZy)�QTestSignatureObject.test_signature_annotations_with_local_namespaces.<locals>.FooNr�r#rrrxr��r�rrxr.r�c��yrr#r�s rr�zRTestSignatureObject.test_signature_annotations_with_local_namespaces.<locals>.func�r�rr'r(c��yrr#�r.r's  r�func2zSTestSignatureObject.test_signature_annotations_with_local_namespaces.<locals>.func2�r�r��signature_func)rp)r�rp)r�rOr�r�r�rr1r�r4r�rp)rUrxr�r�r��sig1r�sig3s        r�0test_signature_annotations_with_local_namespaceszDTestSignatureObject.test_signature_annotations_with_local_namespaces�se����'�c�'�c�'�4�s�4��4�3�4�&�0�0�'�2C�2C�2Q�2Q�R�
	K�N����~��>�
K�%�d�+��� � ��!7�!7��=�� � �����!7�!B�!B�C�H�%�d�6�8�<��� � ��!7�!7��=�� � �����!7�!B�!B�C�H�%�e�e�S�\�&�(�S��� � ��!7�!7��=�� � �����!7�!B�!B�C�H�� � �����!7�!B�!B�E�J�
K�
K�
	K�
K�
K�s
�%D8F)�)F3	c�v�t}tj}tj}tjj}tj
tjjfD�]�}|j|��5|j||j�||d|�|d|�f���|j||j�|d|d|d��|d|d��f�	��|j||j�|d|d|d��|d|d
��|d|d��f�	��|j||j�||d|d��|d|d
��|d|d
��f���ts'|j||j�|��|j||j�||d|�|d|�|d|�f���|j||jd��||d|�|d|�f���|j||jd��||j|d|t ��|d|t"��f�	��|j||jd��||j|d|t ��|d|d��|d||j��f�	��|j||jd��||d|d��|d|d��|d|d��f���t$t&d�}t(t*d�}|j-t.�5||jd|��ddd�|j||jd|��|t*|d|t ��|d|t(��f�	��|j||jd||��|t*|d|t$��|d|t(��f�	��ddd����y#1swY��xYw#1swY���xYw)Nr�r&r�r�r�r��r�r�)r�r4r�rr�r�Tr�)r�r�)r�r�r�r�)r�r�rp)rrOr�r�r�r�r�rr1r�rVr�r�rr�r�r�r�r6�complexr�r�r��	NameError)rUr�r��par�PORKr��globalns�localnss        r�test_signature_eval_strz+TestSignatureObject.test_signature_eval_str�s��,����������� � �6�6��&�0�0�'�2C�2C�2Q�2Q�R�c	�N����~��>�b
�� � �"�3�;�;�/����T�N���T�N�$���� � �"�3�<�<�0��*3���T�e�<���T�e�<�$���� � �"�3�=�=�1��*3���T�e�<���T�g�>���T�i�@�$���� � �"�3�=�=�1����T�g�>���T�g�>���T�k�B�$���,��$�$�^�C�4H�4H�%I�3�5�Q�� � ���0H�0H�!I����T�N���T�N���T�N�$���� � �"�3�;�;��>����T�N���T�N�$���� � �"�3�<�<�$�?��*-�+�+���T�c�:���T�c�:�$���� � �"�3�=�=�4�@��*-�+�+���T�c�:���T�e�<���T�c�k�k�B�$���� � �"�3�=�=�4�@����T�e�<���T�e�<���T�i�@�$���$)��9��"'�D�9���&�&�y�1�R�"�3�<�<�$��Q�R�� � �"�3�<�<�$�w�O��*.���T�c�:���T�e�<�$���� � �"�3�<�<�$��Y`�a��*.���T�e�<���T�e�<�$���wb
�b
�c	�`R�R��_b
�b
�s&�KP.�P"�3B#P.�"P+�'P.�.P8	c��Gd�d�}d�}||�}d|_tjtjjfD]G}|j|��5|j
||�tj��ddd��I|j
tj|�i�y#1swY�yxYw)Nc��eZdZd�Zd�Zy)�DTestSignatureObject.test_signature_none_annotation.<locals>.funclikec��|j|_|j|_|j|_|j|_|j|_||_yrr�r�s  rr�zMTestSignatureObject.test_signature_none_annotation.<locals>.funclike.__init__1r�rc�&�|j|i|��Srr;r;s   rr�zMTestSignatureObject.test_signature_none_annotation.<locals>.funclike.__call__9r�rNr�r#rrr�r	,r�rr�c��yrr#r#rrr.z?TestSignatureObject.test_signature_none_annotation.<locals>.foo<r�rr�)r�rOr�r�r�rr1r�)rUr�r.r�s    r�test_signature_none_annotationz2TestSignatureObject.test_signature_none_annotation+s���	2�	2� 	��s�m��"���&�0�0�'�2C�2C�2Q�2Q�R�	K�N����~��>�
K�� � ���!4�g�6G�6G�6I�J�
K�
K�	K�	
����0�0��5�r�:�
K�
K�s�+B7�7C	c�h�d|_Gd�d�}|j|j|�d�y)Nc��eZdZdZy)�4TestSignatureObject.test_signature_as_str.<locals>.S�(a, b=2)N)rLrarbr�r#rrrr	Fs��&�Mrr�)r0rN.)r2r1r��rUrs  r�test_signature_as_strz)TestSignatureObject.test_signature_as_strDs3�����	'�	'�	
�������*��	 rc��Gd�d�}|j|j|�d�Gd�d�}|j|j|�d�y)Nc��eZdZed��Zy)�9TestSignatureObject.test_signature_as_callable.<locals>.Sc��y�Nr	r#r�s rr�zGTestSignatureObject.test_signature_as_callable.<locals>.S.__signature__Q���!rN)rLrarbr�r�r#rrrr	Ps��
�
"��
"rrr	c��eZdZed��Zy)r	c��yr	r#r#rrr�zGTestSignatureObject.test_signature_as_callable.<locals>.S.__signature__[r	rN)rLrarbr�r�r#rrrz9TestSignatureObject.test_signature_as_callable.<locals>.SZs��
�
"��
"rr,r	s  r�test_signature_as_callablez.TestSignatureObject.test_signature_as_callableNsV��	"�	"�
	
�������*��	 �
	"�	"�
	
�������*��	 rc��Gd�d�}Gd�d|�}Gd�d|�}|jtj|�tj|��y)Nc�$��eZdZ�fd�Zd�Z�xZS)�@TestSignatureObject.test_signature_on_derived_classes.<locals>.Bc�"��t�|�|�Srr)rUrr<r)s   �rr�zHTestSignatureObject.test_signature_on_derived_classes.<locals>.B.__new__hs����w��t�,�,rc��||_yr)r�r�s  rr�zITestSignatureObject.test_signature_on_derived_classes.<locals>.B.__init__js	��"��
r)rLrarbr�r�r1r2s@rrVr	gs
���
-�
#rrVc���eZdZ�fd�Z�xZS)�ATestSignatureObject.test_signature_on_derived_classes.<locals>.D1c�$��t�|�|�yrr7)rUr�r)s  �rr�zJTestSignatureObject.test_signature_on_derived_classes.<locals>.D1.__init__ns����� ��'rr8r2s@r�D1r#	ms
���
(�
(rr%	c��eZdZy)�ATestSignatureObject.test_signature_on_derived_classes.<locals>.D2Nr�r#rr�D2r'	qr*rr(	)r1rOr�)rUrVr%	r(	s    r�!test_signature_on_derived_classesz5TestSignatureObject.test_signature_on_derived_classesdsL��	#�	#�	(��	(�	��	�	
����*�*�2�.��0A�0A�"�0E�FrN):rLrarbr�r�rr$r(r-r2r7r=rOrr�r$rrhrwryr|r�r�r�r�r�r�r�r�r�rr;rOrWrarvr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r	r	r	r	r)	r#rrr�r��	s���	I��	I�J�X9�8	'�:�
 �!�
 �"H�F��X�_�_�)�M�O�IC�O��IC�V��X�_�_�)�M�O�:�O��:�(�#��#�"�3H�jG�&#�6 � �$ �$M�^# �J=�
E �PO �b �8!��X�_�_�)�M�O�
9�O�
9��X�_�_�)�M�O�C�O�C�.$�@ �
T�,�QH�f)�0@�4+�.7�7�2� 4��X�_�_�)�M�O�4�O�4��X�_�_�)�M�O�0�O�0�
	>�$�
K�(h�T;�2 � �,Grr�c�F�eZdZd�Zd�Zd�Zd�Zd�Zd�Ze	d��Z
d�Zy	)
�TestParameterObjectc�|�tj}|j|j|jcxkxr3|j
cxkxr!|jcxkxr|jknc�|jt|j�d�|jdt|j�v�y)Nr�)rOr�rKr�r�r��KEYWORD_ONLYrlr1r�r�)rUr
s  r�test_signature_parameter_kindsz2TestParameterObject.test_signature_parameter_kindsxs�����������)�)�A�,C�,C�J��(�(�J�+,�>�>�J�<=�M�M�J�	K�	
����Q�.�.�/�1B�C����)�T�!�2C�2C�-D�D�Erc��tjddtjj��}|j|jd�|j|j
d�|j
|j|j�|j|jtjj�|jtd�5tjddd��ddd�|jtd�5tjdtjj��ddd�|jtd�5tjd	tjj��ddd�|jtd
�5tjdtjj��ddd�|jtd�5tjdtjj��ddd�|jtd�5tjd
tjj��ddd�|jtd�5tjddtjj��ddd�|jtd�5tjddtjj��ddd�tjddtjj��}|jtd�5|j!tjj��ddd�|j#t%|�j'd��|j#dt%|�v�y#1swY���xYw#1swY���xYw#1swY��kxYw#1swY��*xYw#1swY���xYw#1swY���xYw#1swY��fxYw#1swY��$xYw#1swY��xYw)Nr.r=�rgrfz)value '123' is not a valid Parameter.kind�123znot a valid parameter namer�ri�from�name must be a strzis not a valid parameter name�$z.azcannot have default valuesr&r�z
<Parameterz"a=42")rOr�r�r1rrgrQr�r�rfr�rkrlr�r�r�rrKr�r��rUr6s  r�test_signature_parameter_objectz3TestParameterObject.test_signature_parameter_object�se�����e�R�#*�#4�#4�#D�#D�
F���������'�������B�'��
�
�a�l�l�A�G�G�,��������!2�!2�!B�!B�C�
�
#�
#�J�1A�B�	=����e�R�e�<�	=��
#�
#�J�0L�
M�	G����c��(9�(9�(E�(E�F�	G��
#�
#�J�0L�
M�	J����f�7�+<�+<�+H�+H�I�	J��
#�
#�I�/C�
D�	H����d��):�):�)F�)F�G�	H��
#�
#�J�$C�E�	G����c��(9�(9�(E�(E�F�	G��
#�
#�J�$C�E�	H����d��):�):�)F�)F�G�	H��
#�
#�J�0L�
M�	B����c�2�#*�#4�#4�#@�#@�
B�	B��
#�
#�J�0L�
M�	E����c�2�#*�#4�#4�#C�#C�
E�	E�
���c�2�#*�#4�#4�#J�#J�
L��
�
#�
#�J�0L�
M�	=�
�I�I�7�,�,�;�;�I�<�	=�	
����Q��*�*�<�8�9�����D��G�+�,�G	=�	=��	G�	G��	J�	J��	H�	H��	G�	G��	H�	H��	B�	B��	E�	E��	=�	=�sl�O�0O*�0O7�,0P�:0P�0P�1P+�%1P8�$+Q�O'�*O4�7P�P�P�P(�+P5�8Q�Qc
��tj}|d|j��}|jt	|�t	|d|j����|jt	|�t	|d|jd����|jt	|�t	|j
|j����y)Nr.rir�re)rOr�r�r1r�r�rr�)rUr
r.s   r�!test_signature_parameter_hashablez5TestParameterObject.test_signature_parameter_hashable�s���������A�-�-�.������c��D��5�q�7H�7H�)I�$J�K����D��I�t�A�e�!�:K�:K�68�-:�(;�	<����D��I� ����!�2B�2B��!C�D�	Frc�>�tj}|ddtjj��}|j||k(�|j	||k7�|j	|dk(�|j|dk7�|j|t
k(�|j	|t
k7�|j||ddtjj��k(�|j	||ddtjj��k7�y)Nr.r�r0	)rOr�r-	rKrTr)rUr
r6s   r�!test_signature_parameter_equalityz5TestParameterObject.test_signature_parameter_equality�s�������
�e�R�g�&7�&7�&D�&D�E������Q�������a�� �����b��!�����R�� �����Y��'�����i��(�����Q�u�b�$+�$5�$5�$B�$B�D�D�	E�����a��r�%,�%6�%6�%C�%C�E�E�	Frc�H�tjddtjj��}|j||j	��|j||j	��|j	d��}|j|jd�|j	|j��}|j||�|j	d��}|j|jd�|j||�|jtd�5|j	|j��}ddd�|j	dd�	�}|j|jd�|j||�|j	d|j�	�}|j|j|j�|j	d|j��}|j|j|j�|j||�|jtd
�5|j	|j��}ddd�|j	|j��}|j||�y#1swY��MxYw#1swY�ExYw)Nr.r�r0	rr�r'r	zname is a required attribute)rrgz<value <class 'inspect._empty'> is not a valid Parameter.kindri)rOr�r-	r�rr1r�r�rr�r�rkrQrgr�rf)rUr6r�s   r� test_signature_parameter_replacez4TestParameterObject.test_signature_parameter_replace�s�����e�R�#*�#4�#4�#A�#A�
C��	
����A�I�I�K�(�����A�I�I�K�(�
�Y�Y�!�Y�
$���������*�
�Z�Z�2�8�8�Z�
,������B��
�Z�Z�U�Z�
#��������%�(����B��"�
�
#�
#�J�$B�D�	+��������*�B�	+��Z�Z�U�D�Z�
1���
�
�b�j�j�$�'����B��"�
�Z�Z�U�B�H�H�Z�
5���
�
�b�j�j�"�(�(�+��Z�Z���)A�)A�Z�
B��������"�":�":�;����B��"�
�
#�
#�J�%D�E�	+��������*�B�	+�
�Z�Z�R�_�_�Z�
-������Q��-	+�	+�� 	+�	+�s�#J�7J�J�J!c��|jtd�5tjdtjj��ddd�y#1swYyxYw)Nr3	ri)r�r�rOr�r�r_s r�(test_signature_parameter_positional_onlyz<TestParameterObject.test_signature_parameter_positional_only�sH��
�
#�
#�I�/C�
D�	L����d��):�):�)J�)J�K�	L�	L�	L�s�0A�Ac��|jtd�5tjdtjj��ddd�tjdtjj
��}|j
|jtjj�|j
|jd�y#1swY��xYw)NzYimplicit arguments must be passed as positional or keyword arguments, not positional-onlyz.0ri�	implicit0)	r�rkrOr�r�r�r1rfr)rUr�s  r�!test_signature_parameter_implicitz5TestParameterObject.test_signature_parameter_implicit�s���
�
#�
#�J�%:�;�	L�
���d��):�):�)J�)J�K�		L��!�!��w�(�(�>�>�@��������W�%6�%6�%F�%F�G�������[�1�	L�	L�s�0C�Cc�&�tjdtjj��}|jt�5d|_ddd�|jt�5d|_ddd�y#1swY�/xYw#1swYyxYw)Nrxrir'rh)rOr�r-	r�r�r.rfr5	s  r�%test_signature_parameter_immutabilityz9TestParameterObject.test_signature_parameter_immutability�s{�����f�7�+<�+<�+I�+I�J��
�
�
�~�
.�	��A�E�	��
�
�~�
.�	��A�F�	�	�	�	��	�	�s�A;�*B�;B�BN)rLrarbr.	r6	r8	r:	r<	r>	rrA	rC	r#rrr+	r+	ws?��F�+-�ZF�F� & �PL��
2��
2�rr+	c�z�eZdZed��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zed��Zd�Zy)�TestSignatureBindc��tj|�}|j|i|��}||ji|j��Sr)rOr�r�rr<)r�rr<r�r�s     r�callzTestSignatureBind.call
s?������%��
�S�X�X�t�
&�v�
&���R�W�W�*��	�	�*�*rc��d�}|j|j|�d�|jtd�5|j|d�ddd�|jtd�5|j|dd��ddd�|jtd�5|j|d��ddd�y#1swY�oxYw#1swY�HxYw#1swYyxYw)Nc��yrAr#r#rrr�z9TestSignatureBind.test_signature_bind_empty.<locals>.tests��rr��too many positional argumentsrr=rB�)got an unexpected keyword argument 'spam'�r1rG	r�r�rs  r�test_signature_bind_emptyz+TestSignatureBind.test_signature_bind_emptys���	�	
������4��"�-�
�
#�
#�I�/N�
O�	��I�I�d�A��	�
�
#�
#�I�/N�
O�	(��I�I�d�A�B�I�'�	(�
�
#�
#��B�D�	$�
�I�I�d��I�#�	$�	$�		�	��	(�	(��	$�	$�s#�B<�,C�C�<C�C�Cc� �d�}|j|j|�dif�|j|j|d�dif�|j|j|dd�dif�|j|j|d��dd	dif�|j|j|dd��dd	dif�|j|j|d
��ddd
if�|j|j|ddd��dd	dif�y)
Nc�
�||fSrr#rBs  rr�z7TestSignatureBind.test_signature_bind_var.<locals>.testr�rr#rr�r-rJr'r�r.r=r<r�r1rG	rs  r�test_signature_bind_varz)TestSignatureBind.test_signature_bind_vars��	 �	
������4��2�r�(�3�������4��+�d�B�Z�8�������4��A�.����=�������4�U��3�b�5�%�.�5I�J�������4����6���u�~�8N�O�������4�b��1�B����3E�F�������4��A�5��9� �5�%�.�1�	3rc�:�d�}|j|j|ddd�d�|jtd�5|j|dddd�ddd�|jtd�5|j|d�ddd�|jtd	�5|j|�ddd�dd�}|j|j|ddd�d�|j|j|dd�d�dd
�}|j|j|d
d��d�|j|j|d
��d�|j|j|d
��d�y#1swY��%xYw#1swY��xYw#1swY��xYw)Nc��|||fSrr#r�s   rr�z=TestSignatureBind.test_signature_bind_just_args.<locals>.test,r�rrr-rbrurJ	rDz missing a required argument: 'b'z missing a required argument: 'a'r=c��|||fSrr#r�s   rr�z=TestSignatureBind.test_signature_bind_just_args.<locals>.test<r�r)rr-r=c��|||fSrr#r�s   rr�z=TestSignatureBind.test_signature_bind_just_args.<locals>.testAr�rrdr�)r=r-rdr�)r=r-rbr�)rr=rbr<rL	rs  r�test_signature_bind_just_argsz/TestSignatureBind.test_signature_bind_just_args+sp��	�	
������4��A�q�1�9�=�
�
#�
#�I�/N�
O�	(��I�I�d�A�q�!�Q�'�	(��
#�
#�I�$F�H�	��I�I�d�A��	��
#�
#�I�$F�H�	��I�I�d�O�	�	�������4��A�q�1�9�=�������4��A�.�
�;�	�������4�2���4�k�B�������4�2��.�
�;�������4�2��.�
�;�)	(�	(��	�	��	�	�s#�E7�2F�#F�7F�F�Fc��d�}|j|j|�d�|j|j|ddd�d�y)Nc��|Srr#r<s rr�zATestSignatureBind.test_signature_bind_varargs_order.<locals>.testHs���Krr#rr-rbrurP	rs  r�!test_signature_bind_varargs_orderz3TestSignatureBind.test_signature_bind_varargs_orderGs@��	�	
������4��"�-�������4��A�q�1�9�=rc
��dd�}|j|j|ddddd�d�|j|j|dd�d�|j|j|dd�	�d
�|j|j|dd��d�|jtd�5|j|dddd�
�ddd�y#1swYyxYw)Nrbc��||||fSrr#)r&r�rrs    rr�zDTestSignatureBind.test_signature_bind_args_and_varargs.<locals>.testOs���a��D�=� rrr-rDr)rr-rb)rDr)rr-rbr#r�)r-rrbr#r�z multiple values for argument 'c'r�rbrL	rs  r�$test_signature_bind_args_and_varargsz6TestSignatureBind.test_signature_bind_args_and_varargsNs���	!�	
������4��A�q�!�Q�7�9J�K�������4��A�.�
�>�������4�1���2�M�B�������4��a��0�-�@�
�
#�
#�I�%G�I�	*��I�I�d�A�q�!�q�I�)�	*�	*�	*�s�,C�Cc��d�}|j|j|�i�|j|j|dd��ddd��y)Nc��|Srr#)r<s rr�z?TestSignatureBind.test_signature_bind_just_kwargs.<locals>.test\s���Mrr'r��r.rxrP	rs  r�test_signature_bind_just_kwargsz1TestSignatureBind.test_signature_bind_just_kwargs[sH��	�	
������4��"�-�������4�U���?�!&��6�	8rc
���dd�}|j|j|dd�dddif�|j|j|dddd��dddddd�f�|j|j|dddd��dddddd�f�|j|j|dddd�	�dddddd�f�|j|j|dddd�
�dddddd�f�|j|j|ddddd��dddddd�f�|j|j|dddd�
�dddddif�|j|j|ddd��dddif�y)Nrbc��||||fSrr#r�s    rr�zCTestSignatureBind.test_signature_bind_args_and_kwargs.<locals>.testds���a��F�?�"rrr-r'r�r`	)r�r&r.rx)r&r�r.rx)r�r.rxrD)r�rr.rxr�r.r)rr&r�r\	rP	rs  r�#test_signature_bind_args_and_kwargsz5TestSignatureBind.test_signature_bind_args_and_kwargscs���	#�	
������4��A�.��A�q�"�
�>�������4��A�5�u��E��Q��5�%�#@�A�	C�������4�1��u�5��I��Q��5�%�#@�A�	C�������4�1��u�5��I��Q��5�%�#@�A�	C�������4��a�U���G��Q��5�%�#@�A�	C�������4��a�1�%�e��L��Q��5�%�#@�A�	C�������4��A�q�e��<��Q��E�5�>�2�	4�������4�1��Q��7��Q��2��	(rc	��d�}|jtd�5|j|d�ddd�|j|j|d��d�dd�d�}|jtd�5|j|d�ddd�d�}|j|j|dd�	�d
�|j|j|dd��d
�|jtd�5|j|ddd
��ddd�|jtd�5|j|dd�ddd�|jtd�5|j|ddd�	�ddd�|jtd�5|j|ddd��ddd�|jtd�5|j|d�ddd�d�}|j|j|dd�	�ddif�|j|j|dd��ddif�|j|j|ddd��ddddif�|j|j|ddd��ddddif�|jtd�5|j|dd��ddd�|j|j|dddd
��dddd
d�f�y#1swY���xYw#1swY��fxYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY��]xYw#1swY��xYw)Nc��|Srr#r�s rr�z:TestSignatureBind.test_signature_bind_kwonly.<locals>.testx����JrrJ	rr�c��|Srr#)r&r.r's   rr�z:TestSignatureBind.test_signature_bind_kwonly.<locals>.testrg	rz"missing a required argument: 'bar'c�
�||fSrr#r�s  rr�z:TestSignatureBind.test_signature_bind_kwonly.<locals>.test�s����8�Orr-r1rJ)r'r.rK	r=)r'r.rxr�)r'rxz/missing a required keyword-only argument: 'bar'c��|||fSrr#)r.r'�bins   rr�z:TestSignatureBind.test_signature_bind_kwonly.<locals>.test�s����S�=� rr�rx)rxr.r'z"missing a required argument: 'foo')rxr')r'rk	rx)rk	rx)r�r�rG	r1rs  r�test_signature_bind_kwonlyz,TestSignatureBind.test_signature_bind_kwonlyws4��	�
�
#�
#�I�%D�F�	��I�I�d�A��	�	
������4�Q��/��3��	�
�
#�
#�I�%I�K�	��I�I�d�A��	�	�������4����2�F�;�������4�Q�A��6��?�
�
#�
#��B�D�	3�
�I�I�d��q�r�I�2�	3�
�
#�
#�I�%D�F�	"��I�I�d�A�q�!�	"��
#�
#�I�%D�F�	)��I�I�d�A�q�a�I�(�	)��
#�
#��B�D�	2�
�I�I�d�A�1�5�I�1�	2�
�
#�
#�I�&7�8�	�
�I�I�d�A��	�
	!�������4����2�Q��2�J�?�������4�Q�A��6��A�r�
�C�������4�����>��Q����0�	2�������4�e����B��Q����0�	2�
�
#�
#�I�$H�J�	/��I�I�d��A�I�.�	/�	
������4���q�r��B��Q��2� 6�7�	9�e	�	��	�	��	3�	3��
	"�	"��	)�	)��	2�	2��
	�	��	/�	/�s_�K�4K+�0K8�$L�L�
L�>L,�L9�K(�+K5�8L�L�L�L)�,L6�9Mc�\�dd�d�}tj|�}|jdddddd	�
�}|jt	|j
j
��ddd
dddd	d�ff�|j|jdddd	d
��|j|jd�y)Nr
�r,c��yrr#)r&r�r,rr<s     rr�z=TestSignatureBind.test_signature_bind_arguments.<locals>.test�r�rr=r�rPrhr��<)r�rrr<�r&r=)r)r�)r�rPr<)rrr<)r=r�)	rOr�r�r1r��	arguments�itemsr<r�rUr�r�r�s    r�test_signature_bind_argumentsz/TestSignatureBind.test_signature_bind_arguments�s��� #�	�����%��
�X�X�b�"��b�r�"�X�
=��	
����r�|�|�1�1�3�4�#�_�i�#�2�r�R�%H�I�K�	L�	
������!��B�"�E�	G�������(�+rc
��ddd�d�}|j|j|dddd	d
��dddd	d
if�|j|j|dd�dddddif�|j|j|dddd	��ddddd	if�|jtd�5|j|dddd	d
��ddd�|jtd�5|j|ddd��ddd�|jtd�5|j|dd��ddd�y#1swY�qxYw#1swY�IxYw#1swYyxYw)Nrbr�r�r1c��||||||fSrr#)r��b_po�c_por.r'r<s      rr�zCTestSignatureBind.test_signature_bind_positional_only.<locals>.test�s����t�S�#�v�5�5rrr-rDr�r�zbut was passed as a keywordr=)r.r'ry	zparameter is positional only)ry	)r�rx	)rbr�rL	rs  r�#test_signature_bind_positional_onlyz5TestSignatureBind.test_signature_bind_positional_only�sd��	6�r�	6�	
������4��A�q�!���;��Q��1�a��,�	.�	
������4��A�.��Q��2�r�2�.�	0�	
������4��A�1�!��<��Q��1�a��,�	.��
#�
#�I�/L�
M�	9��I�I�d�A�q�a�Q�R�I�8�	9��
#�
#�I�/M�
N�	*��I�I�d�A�q�q�I�)�	*��
#�
#�I�/M�
N�	,��I�I�d���I�+�	,�	,�
	9�	9��	*�	*��	,�	,�s$� D(�D4�
E�(D1�4D=�E	c���d�}tj|�}|jddd�}|j|jd�|jddd��}|j|jd�y)Nc��yrr#)r&rUr�s   rr�zATestSignatureBind.test_signature_bind_with_self_arg.<locals>.test�r�rrr-rbrur)rOr�r�r1rrt	s    r�!test_signature_bind_with_self_argz3TestSignatureBind.test_signature_bind_with_self_arg�se��	�����%��
�X�X�a��A�
��������)�,�
�X�X�a�a�1�X�
%��������)�,rc��d�}tj|�}|jtd�5|j	dd��ddd�d�}|j|j
|d��dd	dif�tj|�}|j	d��}|j|jd
d	dii�y#1swY�{xYw)Nc�
�||fSrr#�r&rs  rr�z?TestSignatureBind.test_signature_bind_vararg_name.<locals>.test�s���d�7�Nrz)got an unexpected keyword argument 'args'rrr�	c�
�||fSrr#rBs  rr�z?TestSignatureBind.test_signature_bind_vararg_name.<locals>.test�r�rr<r#rr<)rOr�r�r�r�r1rG	rr	rt	s    r�test_signature_bind_vararg_namez1TestSignatureBind.test_signature_bind_vararg_name�s���	�����%��
�
#�
#��B�D�	"�
�H�H�q�q�H�!�	"�
	 �������4�a��0�2���{�2C�D�����%��
�X�X�1�X�
���������6�1�+�'>�?�	"�	"�s�B=�=Cc���d�}|jjd}tj|i�}t	td��}|j
t|j||��hd��y)Nc�8�td�td�D��S)Nc3�&K�|]	}||z���y�wrr#)r�r,s  rr�zWTestSignatureBind.test_signature_bind_implicit_arg.<locals>.make_set.<locals>.<genexpr>�s����/��q�1�u�/�s�r)rNr/r#rr�make_setzDTestSignatureBind.test_signature_bind_implicit_arg.<locals>.make_set�s���/�e�A�h�/�/�/rrr>rrrDr9r@)	r�	co_constsr��FunctionType�iterr/r1rNrG	)rUr�	�gencomp_code�gencomp_func�iterators     r� test_signature_bind_implicit_argz2TestSignatureBind.test_signature_bind_implicit_arg�s]��	0��(�(�2�2�1�5���)�)�,��;����a��>������T�Y�Y�|�X�>�?�AQ�Rrc���d�}tj|�}|jdd��}|j|jddi�|jd|jj��y)Nc�(�||j|�fSr)r3)r'r<s  rr.zATestSignatureBind.test_signature_bind_posonly_kwargs.<locals>.foo�s����
�
�3��'�'r�pos-only�keywordr1r')r'r�	)rOr�r�r1r<rrr	rs	)rUr.r��results    r�"test_signature_bind_posonly_kwargsz4TestSignatureBind.test_signature_bind_posonly_kwargs�sb��	(�����$�����*�)��4���������	�(:�;��
�
�)�6�+;�+;�+A�+A�+C�DrN)rLrarbr�rG	rM	rQ	rV	rY	r]	ra	rd	rl	ru	r{	r~	r�	rr�	r�	r#rrrE	rE		sn���+��+�
$�3�<�8>�*�8�(�(69�p,�,�,-�@�$�S��S�ErrE	c�0�eZdZd�Zd�Zd�Zd�Zd�Zd�Zy)�TestBoundArgumentsc��d�}tj|�jd�}|jtd�5t|�ddd�y#1swYyxYw)Nc��yrr#r�s rr.zITestBoundArguments.test_signature_bound_arguments_unhashable.<locals>.foor�rrr�)rOr�r�r�r�r��rUr.r�s   r�)test_signature_bound_arguments_unhashablez<TestBoundArguments.test_signature_bound_arguments_unhashablesM���
�
�
�s�
#�
(�
(��
+��
�
#�
#�I�/@�
A�	���H�	�	�	�s�A�Ac�
�d�}tj|�jd�}|j||k(�|j	||k7�|j|t
k(�|j	|t
k7�tj|�jd�}|j||k(�|j	||k7�tj|�jd�}|j	||k(�|j||k7�d|jd<|j||k(�|j	||k7�d�}tj|�jd�}|j	||k(�|j||k7�d�}tj|�}|jdd��}|jdd��}|j||k(�|j	||k7�y)	Nc��yrr#r�s rr.zGTestBoundArguments.test_signature_bound_arguments_equality.<locals>.foor�rrr-r&c��yrr#r�s rr'zGTestBoundArguments.test_signature_bound_arguments_equality.<locals>.bar r�rc��yrr#r�s  rr.zGTestBoundArguments.test_signature_bound_arguments_equality.<locals>.foo%r�rr�r�)rOr�r�rKrTrrr	)	rUr.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�v�id�dddddifd�}tj|�}|jdd	i�
�}ttj
dz�D]X}|j
|��5t	jt	j||��}|j||�ddd��Zy#1swY�exYw)Nrrrr�r�r�c��yrr#rs    rr.zETestBoundArguments.test_signature_bound_arguments_pickle.<locals>.foo-r�rr�rPrn	)r)
rOr�r�r/rrrrrr1)rUr.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�0�1�4�5�	1�C������-�
1�#�\�\�&�,�,�r�3�*?�@�
�� � ��Z�0�
1�
1�	1�
1�
1�s�(<B/�/B8	c��id�dddddifd�}tj|�}|jdd	i�
�}|jt	|�d�y)Nrrrr�r�r�c��yrr#rs    rr.zCTestBoundArguments.test_signature_bound_arguments_repr.<locals>.foo7r�rr�rPrn	z <BoundArguments \(a=20,.*\}\}\)>)rOr�r��assertRegexr��rUr.r�r�s    r�#test_signature_bound_arguments_reprz6TestBoundArguments.test_signature_bound_arguments_repr6sO���:�1�:�2�e�*�:�����$��
�X�X�b�"��X�
#������b��#F�Grc
�H�did�dd�}tj|�}|jd�}|j�|j	t|jj��ddddifd	ifg�|jd
ddd��}|j�|j	t|jj��d
dddifd	ddifg�d�}tj|�}|jd�}|j�|j	t|jj��dg�d�}tj|�}|j�}|j�|j	t|jj��g�dd�}tj|�}|j�}|j�|j	t|jj��dg�y)Nrrrc��yrr#)r&r�rrr�s     rr.zMTestBoundArguments.test_signature_bound_arguments_apply_defaults.<locals>.foo=r�rr�)r&r�r�)rr#r�r=rP)rsrq	)r�r�)r)rPrsc��yrr#r�s  rr.zMTestBoundArguments.test_signature_bound_arguments_apply_defaults.<locals>.fooPr�rc��yrr#r#rrr.zMTestBoundArguments.test_signature_bound_arguments_apply_defaults.<locals>.fooYr�rc��yrr#r�s rr.zMTestBoundArguments.test_signature_bound_arguments_apply_defaults.<locals>.foo`r�r)r&rxr�)rrrB)	rOr�r��apply_defaultsr1r�rr	rs	�bind_partialr�	s    r�-test_signature_bound_arguments_apply_defaultsz@TestBoundArguments.test_signature_bound_arguments_apply_defaults<s���2�2�2�����$��
�X�X�b�\��
�����������#�#�%�&�
��,��b�	�D�"�:�F�	H��X�X�b�"�b�A�X�
&��
�����������#�#�%�&�
�	�?�S�"�I��s�1�g��O�	Q�	�����$��
�
�
�b�
!��
�����������#�#�%�&�
�K�	�
	�����$��
�X�X�Z��
��������b�l�l�0�0�2�3�R�8�	 �����$��
�X�X�Z��
��������b�l�l�0�0�2�3�m�_�Erc��d�}tj|�jd�}|jt	|j
�t�y)Nc��yrr#r�s rr.zMTestBoundArguments.test_signature_bound_arguments_arguments_type.<locals>.foogr�rr)rOr�r�rQr�rr	r�r�	s   r�-test_signature_bound_arguments_arguments_typez@TestBoundArguments.test_signature_bound_arguments_arguments_typefs7���
�
�
�s�
#�
(�
(��
+���
�
�d�2�<�<�(�$�/rN)	rLrarbr�	r�	r�	r�	r�	r�	r#rrr�	r�	s#���%�>1�H�(F�T0rr�	c��eZdZd�Zd�Zy)�TestSignaturePrivateHelpersc�|�tj|�\}}|j||�|j||�yr)rO�"_signature_strip_non_python_syntaxr1)rU�input�clean_signature�self_parameter�computed_clean_signature�computed_self_parameters      r�_strip_non_python_syntaxz4TestSignaturePrivateHelpers._strip_non_python_syntaxls?��
�6�6�u�=�	$� �#����1�?�C����0�.�Arc��|jddd�|jddd�|jddd�|jddd�|jddd�|jd	d	d�|jddd�y)
NzZ($module, /, path, mode, *, dir_fd=None, effective_ids=False,
       follow_symlinks=True)zR(module, /, path, mode, *, dir_fd=None, effective_ids=False, follow_symlinks=True)rz($module, word, salt, /)z(module, word, salt, /)z(x, y=None, z=None, /)z(x, y=None, z=None)z!(x,
    y=None,
      z = None  )r�)r�	r_s r�&test_signature_strip_non_python_syntaxzBTestSignaturePrivateHelpers.test_signature_strip_non_python_syntaxts����%�%�
E�
=�
�	�	
�%�%�&�%�
�	�
	
�%�%�$�$��	�
	
�%�%�!�!��	�
	
�%�%�1�!��	�
	
�%�%����	�
	
�%�%����	rN)rLrarbr�	r�	r#rrr�	r�	ks
��B�$rr�	c�T�eZdZeej
ed�d���Zd�Zd�Z	y)�TestSignatureDefinitionsr�c�Z�t�}hd�}||z}dh}||z}hd�}||z}hd�}tt�}t|j	��D]z\}}t|�s�t
|t�r||vr|j|�||vr�<|j|��5|jtj|��ddd��|||z
|z
D];}|j|��5|j||j�ddd��=y#1swY��xYw#1swY�TxYw)N>r�r�	rv�varsr/�slicer�r�>�maxrc�
breakpoint�__build_class__>	r�r6r�r�r�r��reversed�	enumerate�
memoryview)r�)rNr�	r�r�rs	�callabler�r�rr�assertIsNotNonerOr�r��__text_signature__)	rU�no_signature�needs_groups�
needs_null�
needs_varargs�types_with_signaturesr rrXs	         r�test_builtins_have_signaturesz6TestSignatureDefinitions.test_builtins_have_signatures�s>���u��0����$���Y�
��
�"��G�
��
�%��!
��
�(�^������
�+�	=�I�D�#��C�=���#�t�$�$�6K�*K�� � ��&���$�����d��+�
=��$�$�W�%6�%6�s�%;�<�
=�
=�	=� !�:�-��<�	?�D����d��+�
?��!�!�"�T�(�"=�"=�>�
?�
?�	?�

=�
=��
?�
?�s�%D�+D!�D	�!D*	c��d�}d|_tj|�}|j|�|j	t|�d�d|_tj|�}|j	t|�d�d|_tj|�}|j	t|�d�d|_tj|�}|j	t|�d	�d
|_|j
t�5tj|�ddd�d|_|j
t�5tj|�ddd�d|_|j
t�5tj|�ddd�y#1swY�~xYw#1swY�PxYw#1swYyxYw)
Nc��yrr#rBs  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))r�	rOr�r�	r1r�r�rk)rUr�r�s   r�'test_python_function_override_signaturez@TestSignatureDefinitions.test_python_function_override_signature�sy��	�"L�������%�����S�!�����S��#O�P�"O�������%������S��#O�P�"F�������%������S��#;�<�"B�������%������S��#:�;�"<���
�
�
�z�
*�	$����d�#�	$�"<���
�
�
�z�
*�	$����d�#�	$�"/���
�
�
�z�
*�	$����d�#�	$�	$�
	$�	$��	$�	$��	$�	$�s$�
F �F,�F8� F)�,F5�8Gc���ddlm}Gd�d|�}|j}|j|d�t	j
|�}|jt
|�d�y)Nr)�BufferedReaderc��eZdZdZy)�VTestSignatureDefinitions.test_base_class_have_text_signature.<locals>.MyBufferedReaderzbuffer reader class.N)rLrarbr�r#rr�MyBufferedReaderr�	�s��&rr�	z&(raw, buffer_size=DEFAULT_BUFFER_SIZE)z(raw, buffer_size=8192))�test.typinganndata.ann_module7r�	r�	r1rOr�r�)rUr�	r�	�text_signaturer�s     r�#test_base_class_have_text_signaturez<TestSignatureDefinitions.test_base_class_have_text_signature�sU��A�	'�~�	'�(�:�:������)Q�R���� 0�1������S��#<�=rN)
rLrarbrr�r$rr�	r�	r�	r#rrr�	r�	�s<����X�_�_�)�M�O�-?�O��-?�^$�<	>rr�	c�"�eZdZd�Zed��Zy)�NTimesUnwrappablec� �||_d|_yr)rX�_next)rUrXs  rr�zNTimesUnwrappable.__init__�s�������
rc��|jdkrtd��|j�t|jdz
�|_|jS)NrzUnwrapped too many timesr)rXr�r�	r�	r_s rr
zNTimesUnwrappable.__wrapped__�sA���6�6�Q�;��6�7�7��:�:��*�4�6�6�A�:�6�D�J��z�z�rN)rLrarbr�r�r
r#rrr�	r�	�s������rr�	c�0�eZdZd�Zd�Zd�Zd�Zd�Zd�Zy)�
TestUnwrapc��d�}tjd��|�}|jtj|�|�y)Nc��||zSrr#r�s  rr�z(TestUnwrap.test_unwrap_one.<locals>.func
rrr�)r^)r��	lru_cacherQrO�unwrap)rUr�r�s   r�test_unwrap_onezTestUnwrap.test_unwrap_one	s5��	�1�)�%�%�b�1�$�7���
�
�g�n�n�W�-�t�4rc���d�}|}td�D]}tj|�d��}�|j|j|�|jt
j|�|�y)Nc��||zSrr#r�s  rr�z,TestUnwrap.test_unwrap_several.<locals>.funcrrr=c��yrr#r#rrr�z/TestUnwrap.test_unwrap_several.<locals>.wrapperr�r)r/r�r�r�r
rQrOr�	)rUr�r��__s    r�test_unwrap_severalzTestUnwrap.test_unwrap_severalsi��	�����)�	�B�
�_�_�W�
%�
�&�
�	�	
����,�,�d�3��
�
�g�n�n�W�-�t�4rc���d�}tj|�d��}tj|�d��}d|_tj|d���}|j||�y)Nc��||zSrr#r�s  r�func1z#TestUnwrap.test_stop.<locals>.func1rrc��yrr#r#rrr�z#TestUnwrap.test_stop.<locals>.func2r�rc��yrr#r#rrr�z%TestUnwrap.test_stop.<locals>.wrapper r�rrc��t|d�S)N�	stop_herer�rs rr�z&TestUnwrap.test_stop.<locals>.<lambda>%s
��7�1�k�3J�r)�stop)r�r�r�	rOr�	rQ)rUr�	r�r��	unwrappeds     r�	test_stopzTestUnwrap.test_stopsf��	�	����	�	�
 �	�	����	�	�
 �	�����N�N�7�)J�M�	��
�
�i��'rc��d�}||_|jtd�5tj|�ddd�d�}||_||_|jtd�5tj|�ddd�|jtd�5tj|�ddd�y#1swY��xYw#1swY�JxYw#1swYyxYw)Nc��yrr#r#rrr�	z$TestUnwrap.test_cycle.<locals>.func1)r�rr�c��yrr#r#rrr�z$TestUnwrap.test_cycle.<locals>.func2.r�r)r
r�rkrOr�	)rUr�	r�s   r�
test_cyclezTestUnwrap.test_cycle(s����!���
�
#�
#�J��
?�	"��N�N�5�!�	"�	�!���!���
�
#�
#�J��
?�	"��N�N�5�!�	"�
�
#�
#�J��
?�	"��N�N�5�!�	"�	"�	"�	"��	"�	"��	"�	"�s#�B9�&C�C�9C�C�Cc���d��d�_G�fd�d�}|jtj|���y)Nc��yrr#r#rrr�z(TestUnwrap.test_unhashable.<locals>.func7r�rc���eZdZdZW�Zy)�%TestUnwrap.test_unhashable.<locals>.CN)rLrarb�__hash__r
r;s�rr�r
9s
����H��Krr�)r
r�rOr�	)rUr�r�s  @r�test_unhashablezTestUnwrap.test_unhashable6s3�������	�	�	
���'�.�.���-�.rc���ttj�dz�}|jtd�5tj|�ddd�y#1swYyxYw)Nrr�)r�	r��getrecursionlimitr�rkrOr�	)rUrXs  r�test_recursion_limitzTestUnwrap.test_recursion_limit>sK���� 5� 5� 7�!� ;�<��
�
#�
#�J��
?�	 ��N�N�3��	 �	 �	 �s�A�AN)	rLrarbr�	r�	r�	r
r
r

r#rrr�	r�	s ��5�	5�(�"�/� rr�	c�Z�eZdZd�Zd�Zejedud�d��Zd�Z	d�Z
y)�TestMainc��tjd�}tddd�\}}}|j�j	�}|j|ddt
j|�j	��|j|d�y)Nr��-mrOrr)�	importlib�
import_moduler�decoderr1rOr�)rU�module�rcr>�errr�s      r�test_only_sourcezTestMain.test_only_sourceDsw���(�(��4��'��i�(2�4���C���
�
��'�'�)������s���W�%6�%6�v�%>�%I�%I�%K�L�����c�"rc��d�}d|_|jt�5tj|�ddd�y#1swYyxYw)Nc��yrr#r#rrr.z)TestMain.test_custom_getattr.<locals>.fooNr�rr�)r�r�r�rOr�r�s  r�test_custom_getattrzTestMain.test_custom_getattrMs@��	����
�
�
�y�
)�	#����c�"�	#�	#�	#�s	�?�ANz6threads required to test __qualname__ for source filesc��tddd�\}}}|j�j�}|j|ddt	j
t�j��|j|d�y)Nr
rOz%concurrent.futures:ThreadPoolExecutorrr)rr
rr1rOr�r)rUr
r>r
r�s     r�test_qualname_sourcezTestMain.test_qualname_sourceTso��(��i�%L�N���C���
�
��'�'�)������s��� �*�*�+=�>�I�I�K�	M�����c�"rc��tddd�\}}}|j�j�}|j|dg�y)Nr
rOr�z#Can't get info for builtin modules.)r
r
rr1)rUr]r>r
r�s     r�
test_builtinszTestMain.test_builtins_sA��+�D�)�,1�3���3���
�
��'�'�)������!F� G�Hrc�T�tjd�}tj�}t	g|�d�d�d�d���\}}}|j�}|j
|jj|�|j
|j|�|j
|jj|�|j
|j|�|j
|jj|�|j
|j|�|j|d�y)Nr�r
rOz	--detailsr)r
r
r�!optim_args_from_interpreter_flagsrr
r�__spec__rrL�originrU�cached�
__cached__r1)rUr
rr
r>r
�outputs       r�test_detailszTestMain.test_detailses����(�(��4���8�8�:��'�A��A�t�A�Y�A�(2�A�4?�A���C��������
�
�f�o�o�*�*�F�3��
�
�f�o�o�v�.��
�
�f�o�o�,�,�f�5��
�
�f�o�o�v�.��
�
�f�o�o�,�,�f�5��
�
�f�'�'��0�����c�"r)rLrarbr
r
r�r$rr
r
r$
r#rrr
r
CsC��#�#��X�_�_�'�4�/�D�F�#�F�#�I�
#rr
c�`�eZdZejd�Zejd�Zd�Zd�Zy)�
TestReloadz def foo():
    print("Bla")
    z#def foo():
    print("Oh no!")
    c���tj|�}t|d��5}|j|j	�jd�|jd��ddd�y#1swYyxYw)Nr|r}T)rOr�rr1r�r)rUr#r��
inspected_srcr�s     r�assertInspectEqualzTestReload.assertInspectEqual�sc���)�)�&�1�
�
�$��
)�	�S�������
�%�%�d�+��(�(��.�
�	�	�	�s�?A+�+A4c�N�td|j�5\}}tj|�}|j	||�t|dd��5}|j
|j�ddd�|j	||�ddd�y#1swY�$xYw#1swYyxYw)N�
reload_bugrr|r})r
�
src_beforer
r
r)
rr%�	src_after)rUrr#r
r�s     r�test_getsource_reloadz TestReload.test_getsource_reload�s���
�\�4�?�?�
;�	2�|��d��,�,�T�2�F��#�#�D�&�1��d�C�'�2�
*�c��	�	�$�.�.�)�
*��#�#�D�&�1�	2�	2�
*�
*��	2�	2�s#�9B�B�,B�B	�B�B$N)	rLrarb�textwrap�dedentr,
r-
r)
r.
r#rrr&
r&
us8�� ����"�	�J�
 ����!�	�I�
�2rr&
�__main__)qr!r�rr�r�r
rOr�r�r!rO�os.pathrr�rr+r�r�r/
r�r��
unittest.mockr��concurrent.futuresr�ImportError�test.supportrrr�test.support.import_helperr	r
�test.support.os_helperr�test.support.script_helperrr
r�rr�rr�rr�rrrrUrMrrr�r�r$r;rDr�r�r:rFrrruryr�r|rr5rzr�r�r(r/r7rJryr�rr4r�r9rDrMrOr�r�r�r�r9rtr}r�rfr��requires_working_socket�IsolatedAsyncioTestCaser�r�r�r�r�r�r+	rE	r�	r�	r�	r�	r�	r
r&
rL�mainr#rr�<module>r=
s���������	��	�
���
�
�
��������5�&�8�E�)�N��#�%�'�,�.��,�,��
���J���c�r�l�G��7�
��(��c�m�m�o��,�
�$	�$M�#R�#R�#T� �M��"�"�M�0���������]A�Z�]A�@	B>�:�B>�H8�H�%�%�8� 7�7�
T:�}�T:�l	E�x�0�0�	E�0�
�0�
7�]�
7�87�M�87�t
C�
�
C�nO�]�nO�`:�
�:�&N�=�N�7�F�7�9�f�9�>�vn�h�/�/�vn�rb�8�,�,�b�5>�8�,�,�5>�p�h��w>��*�*�w>�tG+�x�0�0�G+�R �5� �:�$:�:�(u&��)�)�u&�p	dH�H�-�-�dH�NAG�H�-�-�AG�H!�� � �"�cG�8�;�;�cG�#�cG�L	�'�#�#�	�
	�'�#�#�	�WG�(�+�+�WG�t,O�(�+�+�O�dyE��)�)�yE�xd0��*�*�d0�L-�(�"3�"3�-�^]>�x�0�0�]>�@��: ��"�"�: �x/#�x� � �/#�d2��"�"�2�<�z���H�M�M�O���sS�����s�O#�#O.�-O.