Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_inspect.cpython-39.opt-2.pyc

a

��gp�@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZzddlmZWney�dZYn0ddlmZmZmZddlmZmZddlmZm Z ddl!m"Z#ddl!m$Z%dd	l!m&Z&dd
l'm(Z(e#j)Z*e*�+d��rNe*dd�Z*e
e*�Z*d
d�Z,e#�-�Z.dd�Z/dd�Z0d�1�Z2Gdd�dej3�Z4dd�Z5dd�Z6dd�Z7ej8dd��Z9Gdd�de4�Z:Gd d!�d!e4�Z;Gd"d#�d#ej3�Z<Gd$d%�d%�Z=Gd&d'�d'e<�Z>Gd(d)�d)e<�Z?Gd*d+�d+e<�Z@Gd,d-�d-e<�ZAGd.d/�d/e<�ZBGd0d1�d1e<�ZCGd2d3�d3e<�ZDGd4d5�d5eE�ZFGd6d7�d7eE�ZGd8d9�ZHGd:d;�d;ej3�ZIGd<d=�d=ej3�ZJeE�ZKGd>d?�d?ej3�ZLGd@dA�dAej3�ZMGdBdC�dCeM�ZNGdDdE�dEeN�ZOGdFdG�dGej3�ZPGdHdI�dIej3�ZQGdJdK�dKej3�ZRGdLdM�dMejS�ZTGdNdO�dOejU�ZVGdPdQ�dQej3�ZWGdRdS�dSej3�ZXGdTdU�dUej3�ZYGdVdW�dWej3�ZZGdXdY�dYej3�Z[GdZd[�d[ej3�Z\Gd\d]�d]�Z]Gd^d_�d_ej3�Z^Gd`da�daej3�Z_Gdbdc�dcej3�Z`eaddk�re�b�dS)e�N��normcase)�ThreadPoolExecutor)�TESTFN�
DirsOnSysPath�cpython_only)�MISSING_C_DOCSTRINGS�	ALWAYS_EQ)�assert_python_ok�assert_python_failure)�inspect_fodder)�inspect_fodder2)�support)�_ready_to_import)�c�o���cGst|�f|S�Nr)�filename�args�r�-/usr/local/lib/python3.9/test/test_inspect.py�revise7srccs�gd�}tddt|��D]d}g}d}tt|��D]}|||>@r2|�||�q2dd�|�d}i}t|||�|dVqdS)N)�a�barrZdeltaZephraimZmagicalZyoyo�z��zdef foo(*, z, z): pass�foo)�range�len�append�join�exec)�
parameters�i�p�bit�jZfn_textZsymbolsrrr�5signatures_with_lexicographic_keyword_only_parameters=sr)cCsdSrr)�throw�outZtheZbabyZwith_Zthe_Z	bathwaterrrr�#unsorted_keyword_only_parameters_fnOsr,z'throw out the baby with_ the_ bathwaterc@sTeZdZeejejejejej	ej
ejejej
ejejejejejg�Zdd�ZdS)�
IsTestBasecCs�t|�}|�||�d|j|f�|jt|g�D]H}|tjksT|tjksT|tjkr`|tj	kr`q2|�
||�d|j|f�q2dS)Nz%s(%s)z
not %s(%s))�eval�
assertTrue�__name__�
predicates�set�inspect�isgeneratorfunction�isasyncgenfunction�iscoroutinefunction�
isfunction�assertFalse)�self�	predicate�exp�obj�otherrrr�istest]s
���zIsTestBase.istestN)r0�
__module__�__qualname__r2r3�	isbuiltin�isclass�iscode�isframer7�ismethod�ismodule�istraceback�isgeneratorr4�iscoroutiner6�
isasyncgenr5r1r>rrrrr-Us�r-ccstd�D]
}|VqdS�Nr�r�r9r%rrr�generator_function_exampleisrNcCs"td�2z3dHW}|Vq6dSrKrLrMrrr� async_generator_function_examplemsrOc�sdS�N�spamr�r9rrr�coroutine_function_exampleqsrSccs
dVdSrPrrRrrr�gen_coroutine_function_exampletsrTc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�TestPredicatesc
Cs�|�tjd�|�tjd�|�tjd�z�zddWnxty�}z`|ja|�tjd�|�tjd�t	t
d�r�|�tjd	�n|�t�t
tj�j��WYd}~n
d}~00Wdanda0|�tjd
�|�tjd�|�tjd�|�tjd
�|�tjd�|�tjd�|�tjd�|�tjd�|�tjd�|�tjd�t���6t�d�|�tjd�|�tjd�Wd�n1�s�0Yt	t
d��r�|�tjd�n|�t�tjj ��dS)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))rNz#async_generator_function_example(1)rO�ignorezcoroutine_function_example(1)rS�MemberDescriptorTypezdatetime.timedelta.days)!r>r3rArC�	Exception�
__traceback__rVrDrG�hasattr�typesZisgetsetdescriptorr8�type�tb_frame�f_localsr7rErF�isdatadescriptorrHr4rJr5�warnings�catch_warnings�simplefilterrIr6Zismemberdescriptor�datetimeZ	timedeltaZdays�r9�errr�test_excluding_predicates{sH
�0��

.z(TestPredicates.test_excluding_predicatesc	CsXtd�}td�}td�}|�t�t��|�t�t�t�t����|�t�|��|�	t�
t��|�	t�
t�t�t����|�	t�|��|�	t�t��|�	t�t�t�t����|�	t�|��|�t�
t��|�t�
t�t�t����|�t�|��|�	t�t��|�	t�t�t�t����|�	t�
|��|��|��dS�Nr)rOrTrSr8r3r6�	functools�partialrIr/r4rHr5rJ�close)r9Zasync_gen_coro�gen_coro�cororrr�test_iscoroutine�sv��������������������zTestPredicates.test_iscoroutinecCs�dd�}|�t�|���td�}td�}|�t�|��|�t�|��Gdd�d�}|�t�|���|�t�|��Gdd�d�}|�}dd	�|_|�t�|��|��|��dS)
Ncss
dVdSrrrrrr�gen��z,TestPredicates.test_isawaitable.<locals>.genrc@seZdZdd�ZdS)z/TestPredicates.test_isawaitable.<locals>.FuturecSsdSrrrrrr�	__await__�sz9TestPredicates.test_isawaitable.<locals>.Future.__await__N)r0r?r@rsrrrr�Future�srtc@seZdZdS)z2TestPredicates.test_isawaitable.<locals>.NotFutureN�r0r?r@rrrr�	NotFuture�rrrvcSsdSrrrrrr�<lambda>�rrz1TestPredicates.test_isawaitable.<locals>.<lambda>)r8r3ZisawaitablerSrTr/rsrm)r9rqrornrtrvZnot_futrrr�test_isawaitable�s
zTestPredicates.test_isawaitablecCs(|�t�tj��|�t�gj��dSr)r/r3Z	isroutinerXrQ�countrRrrr�test_isroutine�szTestPredicates.test_isroutinecCsD|�tjd�|�t�t��Gdd�dt�}|�t�|���dS)Nz
mod.StupidGitc@seZdZdd�ZdS)z2TestPredicates.test_isclass.<locals>.CustomGetattrcSsdSrr)r9�attrrrr�__getattr__�sz>TestPredicates.test_isclass.<locals>.CustomGetattr.__getattr__N)r0r?r@r|rrrr�
CustomGetattr�sr})r>r3rBr/�list�objectr8)r9r}rrr�test_isclass�szTestPredicates.test_isclasscCsFGdd�dt�}|�}d|_tt�|��}|�d|�|�d|�dS)Nc@seZdZdZdS)z/TestPredicates.test_get_slot_members.<locals>.C�r�bN�r0r?r@�	__slots__rrrr�C�sr��*rr�)rr�dictr3�
getmembers�assertIn�assertNotIn)r9r��x�membersrrr�test_get_slot_members�sz$TestPredicates.test_get_slot_memberscs�ddlm}m�G�fdd�d|d�}Gdd�d|�}|�}|�t�|��|�t�|��|�t�|��|�t�t��|�t�d��dS)	Nr��ABCMeta�abstractmethodcseZdZ�dd��ZdS)z<TestPredicates.test_isabstract.<locals>.AbstractClassExamplecSsdSrrrRrrrrsz@TestPredicates.test_isabstract.<locals>.AbstractClassExample.fooN�r0r?r@rr�r�rr�AbstractClassExamplesr���	metaclassc@seZdZdd�ZdS)z4TestPredicates.test_isabstract.<locals>.ClassExamplecSsdSrrrRrrrrsz8TestPredicates.test_isabstract.<locals>.ClassExample.fooNr�rrrr�ClassExample
sr��)�abcr�r�r/r3�
isabstractr8�int)r9r�r�r�rrr�r�test_isabstractszTestPredicates.test_isabstractcs�ddlm}m�g�G�fdd�d|d�}G�fdd�d|�}Gdd	�d	|�}|��d
dg����Gdd
�d
|�}Gdd�d|�}Gdd�d|�}|��gd��dS)Nrr�cseZdZ�fdd�ZdS)zLTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractCheckercs��t�|��dSr)r!r3r���cls��isabstract_checksrr�__init_subclass__sz^TestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractChecker.__init_subclass__N)r0r?r@r�rr�rr�AbstractCheckersr�r�cseZdZ�dd��ZdS)zQTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractClassExamplecSsdSrrrRrrrrszUTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractClassExample.fooNr�rr�rrr�sr�c@seZdZdd�ZdS)zITestPredicates.test_isabstract_during_init_subclass.<locals>.ClassExamplecSsdSrrrRrrrr"szMTestPredicates.test_isabstract_during_init_subclass.<locals>.ClassExample.fooNr�rrrrr�!sr�TFc@seZdZdS)zJTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractChildNrurrrr�
AbstractChild'sr�c@seZdZdS)zOTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractGrandchildNrurrrr�AbstractGrandchild)sr�c@seZdZdS)zOTestPredicates.test_isabstract_during_init_subclass.<locals>.ConcreteGrandchildNrurrrr�ConcreteGrandchild+sr�)TTF)r�r�r��assertEqual�clear)r9r�r�r�r�r�r�r�r)r�r�r�$test_isabstract_during_init_subclasssz3TestPredicates.test_isabstract_during_init_subclassN)r0r?r@rirprxrzr�r�r�r�rrrrrUys*/		rUc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestInterpreterStackcOs,tjj|g|�Ri|��t�ddd�dS)N���	)�unittest�TestCase�__init__�git�abuse�r9r�kwargsrrrr�1szTestInterpreterStack.__init__cCs |�tjd�|�tjd�dS)Nz	git.ex[2]zmod.fr)r>r3rGrDrRrrr�test_abuse_done6sz$TestInterpreterStack.test_abuse_donecCs&|�ttj�dk�|�ttjddd��tdddgdf�|�ttjddd��tddd	gdf�|�ttjd
dd��tddd
gdf�|�ttjddd��tdddgdf�tjd}|�|jtj	�|�|j
d�|�|jtj�|�|j
d�|�d|jd�|�|jd�dS)Nr�rr��eggsz    st = inspect.stack()
r�rQ�    eggs(b + d, c + f)
r�+�argue�            spam(a, b, c)
��'r�z        self.argue(a, b, c)
zinspect.stack())r/r rX�str�r�modfile�assertIs�frame�fr�linenor�__file__�functionr��code_context�index)r9�recordrrr�
test_stack:s(����
zTestInterpreterStack.test_stackcCs�|�ttj�d�|�ttjddd��tdddgdf�|�ttjddd��tddd	gdf�|�ttjd
dd��tddd
gdf�dS)Nr�rrr�r�r�r�rQr�r�r�z    q = y / 0
)r�r r��trrr�rRrrr�
test_traceMs���zTestInterpreterStack.test_tracecCslt�tj�\}}}}|�|ddg�|�|d�|�|d�|�|dddd��|�t�||||�d�dS)Nr��y��)r�r&r�z(x=11, y=14))r3�getargvaluesrXr�r��formatargvalues�r9r�varargs�varkw�localsrrr�
test_frameVs�zTestInterpreterStack.test_framecCsZt�tjj�\}}}}|�|gd��|�|d�|�|d�|�t�||||�d�dS)N�rr�r�drh�f�g�hz-(a=7, b=8, c=9, d=3, e=4, f=5, *g=(), **h={}))r3r�rXr��f_backr�r�r�rrr�test_previous_frame_s�z(TestInterpreterStack.test_previous_frameN)	r0r?r@r�r�r�r�r�r�rrrrr�0s		r�c@s(eZdZdZdd�Zdd�Zdd�ZdS)�
GetSourceBaseNcCs>tt�|j���}|��|_Wd�n1s00YdSr)�openr3�
getsourcefile�fodderModule�read�source)r9�fprrr�setUpkszGetSourceBase.setUpcCs.|j�d�}d�||d|��|r(dndS)N�
r�)r��splitr")r9�top�bottom�linesrrr�sourcerangeoszGetSourceBase.sourcerangecCs|�t�|�|�||��dSr)r�r3�	getsourcer�)r9r<r�r�rrr�assertSourceEqualss
�zGetSourceBase.assertSourceEqual)r0r?r@r�r�r�r�rrrrr�gsr�c@seZdZddd�ZdS)�SlotUser�measured in kilowatts�measured in kilometers)�power�distanceNr�rrrrr�ws�r�c@s�eZdZeZdd�Zdd�Ze�e	j
jdkd�dd��Ze�e	j
jdkd�d	d
��Z
e�ed�dd
��Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.S)/�TestRetrievingSourceCodecCs.t�ttj�}|�|dtjfdtjfdtjfdtjfdtjfdtj	fg�t�
dd�|D��}|�|td	ftjtfftjtjtjffgtjtfftjtjfftjtjtjffggtj	tffgg�t�
d
d�|D�d�}|�|td	ftjtfftjtfftjtjfftjtjtjffggtj	tffgg�dS)N�FesteringGob�MalodorousPervert�ParrotDroppings�	StupidGitZTit�
WhichCommentscSsg|]}|d�qS�rr��.0r�rrr�
<listcomp>�rrz<TestRetrievingSourceCode.test_getclasses.<locals>.<listcomp>rcSsg|]}|d�qSr�rr�rrrr��rrT)r3r�rXrBr�r�r�r�r�r�Zgetclasstreer)r9�classesZtreerrr�test_getclassessR��
�
��
���

��
���z(TestRetrievingSourceCode.test_getclassescCs6t�ttj�}|�|dtjfdtjfdtjfg�dS)Nr��lobbestrQ)r3r�rXr7r�r�r�rQ)r9Z	functionsrrr�test_getfunctions�s
�z*TestRetrievingSourceCode.test_getfunctionsrz)Docstrings are omitted with -O2 and abovecCsf|�t�t�d�|�t�tj�d�|�t�tj�d�|�t�tj�d�|�t�tj	�d�dS)NzA module docstring.�A longer,

indented

docstring.�$Another

docstring

containing

tabsr�r�)
r�r3�getdocrXr�r�r�r�r�r�rRrrr�test_getdoc�s����z$TestRetrievingSourceCode.test_getdoccCs\|�t�tj�d�|�t�tjj�d�|�t�t��j�d�|�t�tjj�d�dS)NrrzThe automatic gainsaying.)r�r3rrXr�r�Z
contradictionrRrrr�test_getdoc_inherited�s����z.TestRetrievingSourceCode.test_getdoc_inheritedztest requires docstringscCsvtj}|�|t�tj�|�|tj�tjj�|�|t�j�tjj�|�|tj�tjj�|�|tj�tjj�dSr)r3Z_finddocr�r��__doc__�to_bytes�
from_bytes�real)r9Zfinddocrrr�test_finddoc�sz%TestRetrievingSourceCode.test_finddoccCs|�t�d�d�dS)NzAn
    indented
    docstring.zAn
indented
docstring.)r�r3ZcleandocrRrrr�
test_cleandoc�s�z&TestRetrievingSourceCode.test_cleandoccCsj|�t�t�d�|�t�tj�d�|�t�tj�d�tddd�}|�t�|��|�t�t	��dS)N�	# line 1
z
# line 20
z# line 159
�x=1z_non_existing_filename.pyr#)
r�r3ZgetcommentsrXr��mod2�cls160�compile�assertIsNoner~)r9�corrr�test_getcomments�sz)TestRetrievingSourceCode.test_getcommentscCs�|�t�t�t�|�t�tj�t�|�t�tjj�t�|�t�tjj�t�|�t�t�tjd�|�t�dt	�t�dS)N�builtins)
r�r3�	getmodulerXr�r��str�sys�modulesr�rRrrr�test_getmodule�sz'TestRetrievingSourceCode.test_getmodulecCs\dd�}tj�d|��2t��}|�t�|��t�|�Wd�n1sN0YdS)NcSstd��dS)Nzbad file)�FileNotFoundError)r<Z	_filenamerrr�_getabsfile�szKTestRetrievingSourceCode.test_getmodule_file_not_found.<locals>._getabsfilezinspect.getabsfile)r��mock�patchr3�currentframerrZgetouterframes)r9rr�rrr�test_getmodule_file_not_found�s
z6TestRetrievingSourceCode.test_getmodule_file_not_foundcCs8t�|jjd�}|�|jdd�|�|jdd�dS)N�2rrrz'A module docstring.'
)r3Zgetframeinfor�r�r�r�)r9Z
frame_inforrr� test_getframeinfo_get_first_line�sz9TestRetrievingSourceCode.test_getframeinfo_get_first_linecCs4|�tjdd�|�tjdd�|�tjdd�dS)N�r���3�K�L)r�r�r�rXr�r�rRrrr�test_getsource�sz'TestRetrievingSourceCode.test_getsourcecCs�|�tt�tj��t�|�tt�tj��t�d}t	d|d�}|�t�|�d�ddd|j
ftj|j
<z$|�tt�|��|�Wtj|j
=ntj|j
=0dS)Nz2_non_existing_filename_used_for_sourcefile_test.pyrr#r�None)
r�rr3r�rXrQr�r�r�r�co_filename�	linecache�cache)r9�fnrrrr�test_getsourcefile�sz+TestRetrievingSourceCode.test_getsourcefilecCs|�t�tj�tj�dSr)r�r3�getfilerXr�r�rRrrr�test_getfile
sz%TestRetrievingSourceCode.test_getfilecCsN|�t��}t�t�Wd�n1s*0Y|�t|j��d��dS)Nz<module)	�assertRaises�	TypeErrorr3r-rr/r�	exception�
startswithrgrrr�test_getfile_builtin_module
s(z4TestRetrievingSourceCode.test_getfile_builtin_modulecCsN|�t��}t�t�Wd�n1s*0Y|�t|j��d��dS)Nz<class)	r/r0r3r-r�r/rr1r2rgrrr�test_getfile_builtin_classs(z3TestRetrievingSourceCode.test_getfile_builtin_classcCs�|�t��}t�t�Wd�n1s*0Y|�dt|j��|�t��}t�tj	�Wd�n1sr0Y|�dt|j��dS)Nz
expected, got)
r/r0r3r-�absr�rr1r~r!)r9Ze_absZe_appendrrr�'test_getfile_builtin_function_or_methods(*z@TestRetrievingSourceCode.test_getfile_builtin_function_or_methodcCsZGdd�dt�}Gdd�d|d�}|�t��t�|�Wd�n1sL0YdS)Nc@seZdZedd��ZdS)zFTestRetrievingSourceCode.test_getfile_class_without_module.<locals>.CMcSst�dSr��AttributeErrorr�rrrr?!szQTestRetrievingSourceCode.test_getfile_class_without_module.<locals>.CM.__module__N)r0r?r@�propertyrrrr�CM sr:c@seZdZdS)zETestRetrievingSourceCode.test_getfile_class_without_module.<locals>.CNrurrrrr�$sr�r�)r_r/r0r3r-)r9r:r�rrr�!test_getfile_class_without_modulesz:TestRetrievingSourceCode.test_getfile_class_without_modulecCsLGdd�d�}|�}|�t��t�|�Wd�n1s>0YdS)Nc@seZdZdd�ZdS)zDTestRetrievingSourceCode.test_getfile_broken_repr.<locals>.ErrorReprcSstd��dS)NZxyz)r[rRrrr�__repr__+szMTestRetrievingSourceCode.test_getfile_broken_repr.<locals>.ErrorRepr.__repr__N)r0r?r@r<rrrr�	ErrorRepr*sr=)r/r0r3r-)r9r=Zerrrr�test_getfile_broken_repr)sz1TestRetrievingSourceCode.test_getfile_broken_reprcCsnddlm}d}||�}tj|<d|_d|_td|j�|�t	�
|jj�d�tj|=t	�
tddd	��dS)
Nr)�
ModuleTypeZ__inspect_dummy�<string>�dummyz
def x(): passza=10r��single)r^r?rrr��
__loader__r#�__dict__r�r3r�r��__code__rr)r9r?�name�mrrr�test_getmodule_recursion1sz1TestRetrievingSourceCode.test_getmodule_recursioncsbd\��tj�d���fdd�	}|t_z.i}tt��d�|�t�|d�W�t_n�t_0dS)N)z<test>zdef x(): pass
cs"|�kr�jdd�S�||�SdS)NT)�keepends)�
splitlines)r�module_globals�r+�getlinesr�rr�monkey@szHTestRetrievingSourceCode.test_proceed_with_fake_filename.<locals>.monkeyrBr�)N)r)rMr#rr3r�)r9rN�nsrrLr�test_proceed_with_fake_filename<sz8TestRetrievingSourceCode.test_proceed_with_fake_filenamecCs|�tjjdd�dS)N�r�)r�rXr�rErRrrr�test_getsource_on_code_objectMsz6TestRetrievingSourceCode.test_getsource_on_code_objectN) r0r?r@rXr�r�r�r��skipIfr�flags�optimizerrrr	r
rrrr r&r,r.r3r4r6r;r>rHrPrRrrrrr�|s:(�
�




	
r�c@s eZdZeZdd�Zdd�ZdS)�!TestGettingSourceOfToplevelFramescCsd|_|�tjdd�dSrj)ZmaxDiffr�rXrrRrrr�test_range_toplevel_frameSsz;TestGettingSourceOfToplevelFrames.test_range_toplevel_framecCs|�tjdd�dSrj)r�rXrVrRrrr�#test_range_traceback_toplevel_frameWszETestGettingSourceOfToplevelFrames.test_range_traceback_toplevel_frameN)r0r?r@rXr�rWrXrrrrrVPsrVc@s0eZdZeZdd�Zdd�Zdd�Zdd�Zd	S)
�TestDecoratorscCs|�tjdd�dS)Nr��)r�r
�wrappedrRrrr�test_wrapped_decorator]sz%TestDecorators.test_wrapped_decoratorcCs|�tjdd�dS)Nr��
)r�r
ZgonerRrrr�test_replacing_decorator`sz'TestDecorators.test_replacing_decoratorcCs|�tjdd�dS)N��)r�r
rrRrrr�test_getsource_unwrapcsz$TestDecorators.test_getsource_unwrapcCs|�tjdd�dS)N�q�s)r�r
Zfunc114rRrrr�test_decorator_with_lambdafsz)TestDecorators.test_decorator_with_lambdaN)	r0r?r@r
r�r\r^rardrrrrrYZs
rYc@sPeZdZeZdd�Zdd�Zdd�Zdd�Zd	d
�Z	dd�Z
d
d�Zdd�ZdS)�
TestOnelinerscCs|�tjdd�dS)N�)r�r
ZollrRrrr�test_oneline_lambdaksz!TestOneliners.test_oneline_lambdacCs|�tjdd�dS)N��)r�r
ZtllrRrrr�test_threeline_lambdaosz#TestOneliners.test_threeline_lambdacCs|�tjdd�dS)N�!�")r�r
ZtllirRrrr�test_twoline_indented_lambdatsz*TestOneliners.test_twoline_indented_lambdacCs|�tjdd�dS)N�%)r�r
ZonelinefuncrRrrr�test_onelinefuncyszTestOneliners.test_onelinefunccCs|�tjdd�dS)N�(�))r�r
ZmanyargsrRrrr�
test_manyargs}szTestOneliners.test_manyargscCs|�tjdd�dS)N�,�-)r�r
ZtwolinefuncrRrrr�test_twolinefunc�szTestOneliners.test_twolinefunccCs|�tjddd�dS)Nr�1)r�r
rrRrrr�test_lambda_in_list�sz!TestOneliners.test_lambda_in_listcCs|�tjdd�dS)N�7)r�r
Z	anonymousrRrrr�test_anonymous�szTestOneliners.test_anonymousN)
r0r?r@r
r�rgrjrmrorrrurwryrrrrreisrec@s(eZdZeZdd�Zdd�Zdd�ZdS)�TestBlockCommentscCs|�tjdd�dS)N�`�r)r�rXr�rRrrr�test_toplevel_class�sz%TestBlockComments.test_toplevel_classcCs|�tjjdd�dS)N�c�h)r�rXr�r�rRrrr�test_class_method�sz#TestBlockComments.test_class_methodcCs|�tjjdd�dS)N�m�p)r�rXr�ZasyncfrRrrr�test_class_async_method�sz)TestBlockComments.test_class_async_methodN)r0r?r@rXr�r}r�r�rrrrrz�srzc@s�eZdZeZdd�Zdd�Zdd�Zdd�Zd	d
�Z	dd�Z
d
d�Ze�
eed�p^ej�d�d�dd��Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Z d0S)1�TestBuggyCasescCs|�tjdd�dS)N�:�;)r�r
Zwith_commentrRrrr�test_with_comment�sz TestBuggyCases.test_with_commentcCs|�tjddd�dS)Nr�?�@)r�r
Z
multiline_sigrRrrr�test_multiline_sig�sz!TestBuggyCases.test_multiline_sigcCs|�t��jdd�dS)N�G�H)r�r
Zfunc69Zfunc71rRrrr�test_nested_class�sz TestBuggyCases.test_nested_classcCs|�tjdd�dS)N�M)r�r
Zfunc77rRrrr�#test_one_liner_followed_by_non_name�sz2TestBuggyCases.test_one_liner_followed_by_non_namecCs|�tjjdd�dS)N�S)r�r
Zcls82Zfunc83rRrrr�test_one_liner_dedent_non_name�sz-TestBuggyCases.test_one_liner_dedent_non_namecCs|�tjdd�dS)N�X�Z)r�r
Zfunc88rRrrr�&test_with_comment_instead_of_docstring�sz5TestBuggyCases.test_with_comment_instead_of_docstringcCs|�tjdd�dS)N�_�a)r�r
Zmethod_in_dynamic_classrRrrr�test_method_in_dynamic_class�sz+TestBuggyCases.test_method_in_dynamic_classr�z.pyz,unicodedata is not an external binary modulecCs$|�ttjt�|�ttjt�dSr)r/�OSErrorr3r��unicodedata�
findsourcerRrrr�test_findsource_binary�sz%TestBuggyCases.test_findsource_binarycCs�dg}t|ddd�}|�ttj|�|�ttj|�dd||jftj|j<z:|�	t�|�|df�|�	t�|�|d�Wtj|j=ntj|j=0dS)NrrZ_dynamically_created_filer#r)
rr/r�r3r�r�r(r)r*r�)r9r�rrrr�!test_findsource_code_in_linecache�sz0TestBuggyCases.test_findsource_code_in_linecachecCs:dD]0}td|d�}|�ttj|�|�ttj|�qdS)N)r�r@rr#)rr/�IOErrorr3r�r�)r9Zfnamerrrr� test_findsource_without_filename�sz/TestBuggyCases.test_findsource_without_filenamecCs�tt�t��}d|d}t|tjd�}ii}}t|||�|d}|�|jj	dd|�|�
td��t�|�Wd�n1s�0YdS)Nz

z
def f(): passr#r�rrzlineno is out of bounds)
r r3r�rXrr�r.r�rE�co_firstlineno�assertRaisesRegexr�r�)r9Zmod_len�srcrr��l�funcrrr�)test_findsource_with_out_of_bounds_lineno�s
z8TestBuggyCases.test_findsource_with_out_of_bounds_linenocCs|�tjjdd�dS)N�v�w)r�r
ZClassWithMethod�methodrRrrr�test_getsource_on_method�sz'TestBuggyCases.test_getsource_on_methodcCs|�tjjdd�dS)N��)r�r
Zcls135Zfunc136rRrrr�test_nested_func�szTestBuggyCases.test_nested_funccCs|�tjdd�dS)N��)r�r
Zcls149rRrrr�4test_class_definition_in_multiline_string_definition�szCTestBuggyCases.test_class_definition_in_multiline_string_definitioncCs|�tjdd�dS)N��)r�r
rrRrrr�*test_class_definition_in_multiline_comment�sz9TestBuggyCases.test_class_definition_in_multiline_commentcCs|�tjjdd�dS)N��)r�r
Zcls173Zcls175rRrrr�,test_nested_class_definition_indented_string�sz;TestBuggyCases.test_nested_class_definition_indented_stringcCs&|�tjdd�|�tjjdd�dS)N���)r�r
Zcls183Zcls185rRrrr�test_nested_class_definition�sz+TestBuggyCases.test_nested_class_definitioncCs&|�tjdd�|�tjjdd�dS)N������)r�r
Zcls196Zcls200rRrrr�test_class_decorator�sz#TestBuggyCases.test_class_decoratorcCs&|�tjdd�|�tjjdd�dS)N������)r�r
Zcls238Zcls239rRrrr�test_class_inside_conditional�sz,TestBuggyCases.test_class_inside_conditionalcCs`|�tjdd�|�tjjdd�|�tjjjdd�|�tjjdd�|�tjjjdd�dS)N��������������)r�r
Zcls203Zcls204Zcls205Zcls207rRrrr�test_multiple_children_classes�s
z-TestBuggyCases.test_multiple_children_classescCs<|�t��dd�|�tjdd�|�t����dd�dS)N������������)r�r
Zfunc212Zcls213Zfunc219rRrrr�,test_nested_class_definition_inside_function�sz;TestBuggyCases.test_nested_class_definition_inside_functioncCs^ddl}|�|jd�|�|�t���dd�|�tjdd�|�|�t�����dd�dS)Nr������������)	�asyncioZ
addCleanupZset_event_loop_policyr��runr
Zfunc225Zcls226Zfunc232)r9r�rrr�2test_nested_class_definition_inside_async_functions
zATestBuggyCases.test_nested_class_definition_inside_async_functionN)!r0r?r@r
r�r�r�r�r�r�r�r�r�rSr]r�r��endswithr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr��s6
�
r�cs,eZdZ�fdd�Zdd�Zdd�Z�ZS)�	TestNoEOLcs�td|_t�|j�ttj�|jdtj�d��}|�d�Wd�n1sR0Yt	|j��ddl
}Wd�n1s�0Y||_t��
�dS)NZ_dirzinspect_fodder3%spy�wzclass X:
    pass # No EOLr)r�tempdir�os�mkdirr��pathr"�extsep�writerZinspect_fodder3r��superr�)r9r�Zmod3��	__class__rrr�s
��(&zTestNoEOL.setUpcCst�|j�dSr)�shutil�rmtreer�rRrrr�tearDownszTestNoEOL.tearDowncCs|�|jjdd�dS)Nrr)r�r��XrRrrr�
test_classszTestNoEOL.test_class)r0r?r@r�r�r��
__classcell__rrr�rr�sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�_BrokenDataDescriptorcGstd��dS�Nzbroken data descriptorr7�rrrr�__get__"sz_BrokenDataDescriptor.__get__cGst�dSr)�RuntimeErrorr�rrr�__set__%sz_BrokenDataDescriptor.__set__cGstd��dSr�r7r�rrrr|(sz!_BrokenDataDescriptor.__getattr__N)r0r?r@r�r�r|rrrrr�sr�c@seZdZdd�Zdd�ZdS)�_BrokenMethodDescriptorcGstd��dS�Nzbroken method descriptorr7r�rrrr�0sz_BrokenMethodDescriptor.__get__cGstd��dSr�r7r�rrrr|3sz#_BrokenMethodDescriptor.__getattr__N)r0r?r@r�r|rrrrr�,sr�cCsdd�t�|�D�S)NcSsg|]}|dd��qS�Nr�r)r��trrrr�9rrz!attrs_wo_objs.<locals>.<listcomp>)r3�classify_class_attrsr�rrr�
attrs_wo_objs8sr�c@seZdZdd�Zd5dd�Zdddggdidfdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
e�e
d�dd��Zee�e
d�dd���Zee�e
d�dd���Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�ZdS)6�TestClassesAndFunctionscCsjGdd�dt�}Gdd�d|�}Gdd�d|�}Gdd�d||�}||||tf}t�|�}|�||�dS)	Nc@seZdZdS)z4TestClassesAndFunctions.test_newstyle_mro.<locals>.ANrurrrr�A?rrr�c@seZdZdS)z4TestClassesAndFunctions.test_newstyle_mro.<locals>.BNrurrrr�B@rrr�c@seZdZdS)z4TestClassesAndFunctions.test_newstyle_mro.<locals>.CNrurrrrr�Arrr�c@seZdZdS)z4TestClassesAndFunctions.test_newstyle_mro.<locals>.DNrurrrr�DBrrr�)rr3Zgetmror�)r9r�r�r�r��expectedZgotrrr�test_newstyle_mro=s
z)TestClassesAndFunctions.test_newstyle_mroNc	Cs�|�t��"t�|�\}}}	}
Wd�n1s20Y|�||�|�||�|�|	|�|�|
|�|dur�|�t��(|�t�|||	|
�|�Wd�n1s�0YdSr)�assertWarns�DeprecationWarningr3Z
getargspecr��
formatargspec)r9�routine�args_e�	varargs_e�varkw_e�
defaults_e�	formattedrr�r��defaultsrrr�assertArgSpecEqualsHs0�z+TestClassesAndFunctions.assertArgSpecEqualscCs�t�|�\}}}
}}}}|�||�|�||�|�|
|�|�||�|�||�|�||�|�||	�|
dur�|�t��.|�t�|||
||||�|
�Wd�n1s�0YdSr)r3�getfullargspecr�r�r�r�)r9rrrrrZ
posonlyargs_e�kwonlyargs_e�kwonlydefaults_e�ann_errr�r�r�
kwonlyargsZkwonlydefaults�annrrr�assertFullArgSpecEqualsUs ���z/TestClassesAndFunctions.assertFullArgSpecEqualscCsp|jtjddgdd�|�tjgd�dddd	�|�t|jtjg�|�t|jtjg�|�t|jtj	g�dS)
Nr�r��(x, y)�rr�r�r�)r��r�z!(a, b, c, d=3, e=4, f=5, *g, **h))
rrXr�rQr/�
ValueErrorr
�	keyworded�	annotated�keyword_only_argrRrrr�test_getargspecis�
�
�
�z'TestClassesAndFunctions.test_getargspeccCs�|jtjgddgddidd�|jtjdgdtidd�|jtjgdgd	d
�|jtjgd�dd
gdd
�|jtjgd�dddd
gdd�|jtjgd�ddd
gddd�dd�dS)N�arg1�arg2rz(*arg1, arg2=1))rr	r
rz(arg1: list))rr�argz(*, arg))r	r�rr�rr�rhr�z(a, b, c, d, *, e, f)rr�z#(a, b, c, d, *args, e, f, **kwargs))rrr	r�rrr�rr�)rhr�z(a, b=1, c=2, d=3, *, e=4, f=5))rr	r
r)	rr
rrr~rZall_markersZ all_markers_with_args_and_kwargsZall_markers_with_defaultsrRrrr�test_getfullargspeczs<��
����z+TestClassesAndFunctions.test_getfullargspeccs�t�tj�dd��}�j|ddgdd��j|ddgdd��jt�|�ddgdd��fdd�}Gd	d
�d
�}||��||j�||�j�||j�||�j�Gdd�d�}||�Gd
d�d�}||�dS)NcSsdSrr�r�r�rrr�ham�szETestClassesAndFunctions.test_argspec_api_ignores_wrapped.<locals>.hamr�r�rrcs�j|gd�dd�dS)N�r9r�r�z(self, x, y)r)r�r�rRrr�check_method�s�zNTestClassesAndFunctions.test_argspec_api_ignores_wrapped.<locals>.check_methodc@s>eZdZe�ej�dd��Ze�e�Z	e�ej�dd��Z
dS)zCTestClassesAndFunctions.test_argspec_api_ignores_wrapped.<locals>.CcSsdSrrrrrrr�szGTestClassesAndFunctions.test_argspec_api_ignores_wrapped.<locals>.C.hamcSsdSrrrrrr�__call__�szLTestClassesAndFunctions.test_argspec_api_ignores_wrapped.<locals>.C.__call__N)r0r?r@rk�wrapsrXrQr�
partialmethod�phamr"rrrrr��s




r�c@s eZdZe�ej�dd��ZdS)zGTestClassesAndFunctions.test_argspec_api_ignores_wrapped.<locals>.C_newcSsdSrrrrrr�__new__�szOTestClassesAndFunctions.test_argspec_api_ignores_wrapped.<locals>.C_new.__new__N)r0r?r@rkr#rXrQr&rrrr�C_new�s
r'c@s eZdZe�ej�dd��ZdS)zHTestClassesAndFunctions.test_argspec_api_ignores_wrapped.<locals>.C_initcSsdSrrrrrrr��szQTestClassesAndFunctions.test_argspec_api_ignores_wrapped.<locals>.C_init.__init__N)r0r?r@rkr#rXrQr�rrrr�C_init�s
r()	rkr#rXrQrrrlrr%)r9rr!r�r'r(rrRr� test_argspec_api_ignores_wrapped�s$

�


z8TestClassesAndFunctions.test_argspec_api_ignores_wrappedcCs>dd�}t�dtjj�}tj|fd�|_|j|dgdd�dS)NcSsdSrrrrrr�test�szHTestClassesAndFunctions.test_getfullargspec_signature_attr.<locals>.testrQ�r$�(spam)r)r3�	Parameter�POSITIONAL_ONLY�	Signature�
__signature__r)r9r*Z
spam_paramrrr�"test_getfullargspec_signature_attr�sz:TestClassesAndFunctions.test_getfullargspec_signature_attrcCsPddd�dd�}t�|�}|�|j|j�dd�}t�|�}|�|j|j�dS)NrQr�r�returncSsdSrr�rrrrr*�rrzITestClassesAndFunctions.test_getfullargspec_signature_annos.<locals>.testcSsdSrrrrrrr*�rr)r3rr��__annotations__�annotations)r9r*�specrrr�#test_getfullargspec_signature_annos�s

z;TestClassesAndFunctions.test_getfullargspec_signature_annos�6Signature information for builtins requires docstringscCs^|jtjjddgdd�|jt�t���jddgdd�|jtjdgddgddd	�d
d�dS)Nr9r<z(self, obj)rr��dir_fd�follow_symlinksT)r:r;z,(path, *, dir_fd=None, follow_symlinks=True))rr	r
r)r�_pickle�Pickler�dump�io�BytesIOr��statrRrrr�#test_getfullargspec_builtin_methods�s���z;TestClassesAndFunctions.test_getfullargspec_builtin_methodscCs.ddl}|j}t�|�}|�|jdd�dS)Nr�avocado)�	_testcapi�&docstring_with_signature_with_defaultsr3rr�r)r9rD�builtinr7rrr� test_getfullargspec_builtin_func�s
z8TestClassesAndFunctions.test_getfullargspec_builtin_funccCsFddl}|j}|�t��t�|�Wd�n1s80YdS)Nr)rD�docstring_no_signaturer/r0r3r)r9rDrFrrr�-test_getfullargspec_builtin_func_no_signature�szETestClassesAndFunctions.test_getfullargspec_builtin_func_no_signaturecCsbt�D]6}t�|�}t|j�}t|�}|�|�|�||�qt�t�}t|j�}|�|t	�dSr)
r)r3rr~r�sortedr/r�r,� unsorted_keyword_only_parameters�r9r+�	signaturer�Zsorted_lrrr�8test_getfullargspec_definition_order_preserved_on_kwonly�s





zPTestClassesAndFunctions.test_getfullargspec_definition_order_preserved_on_kwonlycCs$Gdd�dt�}|�|jdg�dS)Nc@seZdZdd�ZdS)z9TestClassesAndFunctions.test_getargspec_method.<locals>.AcSsdSrrrRrrrrGsz;TestClassesAndFunctions.test_getargspec_method.<locals>.A.mN�r0r?r@rGrrrrr��sr�r9)rrrG�r9r�rrr�test_getargspec_method�sz.TestClassesAndFunctions.test_getargspec_methodcCsGdd�dt�}t|�}|�ddtf|d�|�ddtf|d�|�d	d|f|d
�|�dd|f|d
�|�dd|f|d�|�dd|f|d|�|�dd|f|d�|�dd|f|d�|�dd|f|d�|�dd|f|d�Gdd�d|�}t|�}|�d	d|f|d
�|�dd|f|d
�|�dd|f|d�|�dd|f|d�|�dd|f|d�|�dd|f|d�|�dd|f|d�|�dd|f|d�Gdd�d|�}t|�}|�d	d|f|d
�|�dd|f|d�|�dd|f|d�|�dd|f|d�|�dd|f|d�|�dd|f|d�|�dd|f|d�|�dd|f|d�Gd d!�d!||�}t|�}|�d	d|f|d
�|�dd|f|d�|�dd|f|d�|�dd|f|d�|�dd|f|d�|�dd|f|d�|�dd|f|d�|�dd|f|d�dS)"Nc@s\eZdZdd�Zee�Zdd�Zee�Zdd�Zee�Z	dd�Z
d	d
�ZdZe
�Ze�ZdS)
z9TestClassesAndFunctions.test_classify_newstyle.<locals>.AcSsdSrrrrrr�srrz;TestClassesAndFunctions.test_classify_newstyle.<locals>.A.scSsdSrrr�rrrr
rrz;TestClassesAndFunctions.test_classify_newstyle.<locals>.A.ccSsdSrrrRrrr�getp
rrz>TestClassesAndFunctions.test_classify_newstyle.<locals>.A.getpcSsdSrrrRrrrrGrrz;TestClassesAndFunctions.test_classify_newstyle.<locals>.A.mcSsdSrrrRrrr�m1rrz<TestClassesAndFunctions.test_classify_newstyle.<locals>.A.m1�1N)r0r?r@rR�staticmethodr�classmethodrSr9r&rGrT�datablobr��ddr��mdrrrrr�sr�r&�
static method�missing __new__r�r�zmissing __init__rRzmissing static methodr�class method�missing class methodr&r9zmissing propertyrGzmissing plain method: %rrT�missing plain methodrX�datazmissing datarZzmissing method descriptorrYzmissing data descriptorc@seZdZdd�ZdS)z9TestClassesAndFunctions.test_classify_newstyle.<locals>.BcSsdSrrrRrrrrG+rrz;TestClassesAndFunctions.test_classify_newstyle.<locals>.B.mNrOrrrrr�)sr�c@seZdZdd�Zdd�ZdS)z9TestClassesAndFunctions.test_classify_newstyle.<locals>.CcSsdSrrrRrrrrG:rrz;TestClassesAndFunctions.test_classify_newstyle.<locals>.C.mcSsdSrrrRrrrr;rrz;TestClassesAndFunctions.test_classify_newstyle.<locals>.C.cN)r0r?r@rGrrrrrr�8sr�c@seZdZdd�ZdS)z9TestClassesAndFunctions.test_classify_newstyle.<locals>.DcSsdSrrrRrrrrTIrrz<TestClassesAndFunctions.test_classify_newstyle.<locals>.D.m1N)r0r?r@rTrrrrr�Gsr�)rr�r�)r9r��attrsr�r�r�rrr�test_classify_newstyles\��z.TestClassesAndFunctions.test_classify_newstylecCs�tt�D]"}tt|�}t|t�rt�|�qtt�}|�	ddtf|d�|�	ddt
f|d�|�	ddt
f|d	�|�	d
dt
f|d	�|�	ddtf|d	�dS)Nr&r[r\rr]r^rr�r_�__add__�__and__)�dir�__builtins__�getattr�
isinstancer_r3r�r��boolr�r�)r9rFrFrarrr�test_classify_builtin_typesUs(

�����z3TestClassesAndFunctions.test_classify_builtin_typescCspGdd�dt�}Gdd�d|d�}t�dd||jd�}|�|t�|��t�dd|d�}|�|t�|��dS)	NcseZdZ�fdd�Z�ZS)zITestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.Metacs|dkrdSt��|�S)NrrQ�r�r|�r9rFr�rrr|kszUTestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.Meta.__getattr__�r0r?r@r|r�rrr�r�Metajsrnc@seZdZejdd��ZdS)zGTestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.VAcSsdS)Nr�rrRrrrrpszKTestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.VA.hamN)r0r?r@r^�DynamicClassAttributerrrrr�VAosrpr�rr`rQ)r_r3�	AttributerDr�r�)r9rnrpZshould_find_dcaZshould_find_garrr�#test_classify_DynamicClassAttributeisz;TestClassesAndFunctions.test_classify_DynamicClassAttributecsPG�fdd�dt��G�fdd�dt�}t�dd||j�}|�|t�|��dS)Ncs eZdZ�fdd�Zdd�ZdS)zDTestClassesAndFunctions.test_classify_overrides_bool.<locals>.NoBoolcs��Srr)r9r=��NoBoolrr�__eq__zszKTestClassesAndFunctions.test_classify_overrides_bool.<locals>.NoBool.__eq__cSstd��dS)Nz,This object does not specify a boolean value)�NotImplementedErrorrRrrr�__bool__}s�zMTestClassesAndFunctions.test_classify_overrides_bool.<locals>.NoBool.__bool__N)r0r?r@rurwrrsrrrtysrtcseZdZ��ZdS)zCTestClassesAndFunctions.test_classify_overrides_bool.<locals>.HasNBN)r0r?r@rYrrsrr�HasNB�srxrYr`)rr3rqrYr�r�)r9rxZshould_find_attrrrsr�test_classify_overrides_boolxsz4TestClassesAndFunctions.test_classify_overrides_boolcCsHGdd�dt�}Gdd�d|d�}t�dd|d�}|�|t�|��dS)	Nc@seZdZdZdd�ZdS)zMTestClassesAndFunctions.test_classify_metaclass_class_attribute.<locals>.Meta�slapcSsgd�S)N)r�r?r0�fishrrRrrr�__dir__�szUTestClassesAndFunctions.test_classify_metaclass_class_attribute.<locals>.Meta.__dir__N)r0r?r@r{r|rrrrrn�srnc@seZdZdS)zNTestClassesAndFunctions.test_classify_metaclass_class_attribute.<locals>.ClassNrurrrr�Class�sr}r�r{r`rz�r_r3rqr�r��r9rnr}Zshould_findrrr�'test_classify_metaclass_class_attribute�sz?TestClassesAndFunctions.test_classify_metaclass_class_attributecCsHGdd�dt�}Gdd�d|d�}t�dd|d�}|�|t�|��dS)	Ncs$eZdZdd�Z�fdd�Z�ZS)zDTestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.MetacSsgd�S)N)r�r?r0�BOOMrr�rrrr|�szLTestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.Meta.__dir__cs|dkrdSt��|�S)Nr�r�)r�Z_Meta__getattrrlr�rrr|�szPTestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.Meta.__getattr__�r0r?r@r|r|r�rrr�rrn�srnc@seZdZdS)zETestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.ClassNrurrrrr}�sr}r�r�r`r�r~rrrr�test_classify_VirtualAttribute�sz6TestClassesAndFunctions.test_classify_VirtualAttributec	s�Gdd�dt��Gdd�dt��G��fdd�d���}Gdd�d�d	�}Gd
d�d||d	�}t�dd
�d�}t�dd
�d�}t�dd
|d�}t�|�}|||fD]}|�||�q�dS)Ncs$eZdZdd�Z�fdd�Z�ZS)zSTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta1cSsgd�S)N)r�r?r0�onerr�rrrr|�sz[TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta1.__dir__cs|dkrdSt��|�S)Nr�rrkrlr�rrr|�sz_TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta1.__getattr__r�rrr�r�Meta1�sr�cs$eZdZdd�Z�fdd�Z�ZS)zSTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta2cSsgd�S)N)r�r?r0�tworr�rrrr|�sz[TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta2.__dir__cs|dkrdSt��|�S)Nr�rrkrlr�rrr|�sz_TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta2.__getattr__r�rrr�r�Meta2�sr�cs*eZdZ��fdd�Z�fdd�Z�ZS)zSTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta3cs(tttgd���|���|����S)N)r�r?r0�three)r~rJr2r|r��r�r�rrr|�s
��z[TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta3.__dir__cs|dkrdSt��|�S)Nr�r�rkrlr�rrr|�sz_TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta3.__getattr__r�rr�r�r�Meta3�sr�c@seZdZdS)zTTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Class1Nrurrrr�Class1�sr�r�c@seZdZdS)zTTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Class2Nrurrrr�Class2�sr�r�r`rr�rr�r�)r_r3rqr�r�)	r9r�r�r�Zshould_find1Zshould_find2Zshould_find3ZccaZsfrr�r�,test_classify_VirtualAttribute_multi_classes�s
zDTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classescCsFGdd�dt�}Gdd�d|d�}dd�t�|�D�}|�d|�dS)	Nc@seZdZdd�ZdS)zKTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.McSsgd�S�N)r�r0�missingrr�rrrr|�szSTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.M.__dir__N�r0r?r@r|rrrr�M�sr�c@seZdZdS)zKTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.CNrurrrrr��sr�r�cSsg|]}|d�qS�rr�r�rrrrr��rrzTTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.<listcomp>r�)r_r3r�r��r9r�r�rarrr�(test_classify_class_attrs_with_buggy_dir�sz@TestClassesAndFunctions.test_classify_class_attrs_with_buggy_dircCs�Gdd�dt�}dd�}|tj�}|tj�}|�t�||�d|jdfg�|�t�||�d|jdfg�Gdd�d|�}|�t�||�d|jdfg�|�t�||�d|jdfg�dS)	Nc@seZdZe�Ze�ZdS)z>TestClassesAndFunctions.test_getmembers_descriptors.<locals>.AN)r0r?r@r�rYr�rZrrrrr��sr�cs"Gdd�dt����fdd�}|S)Nc@seZdZdS)zXTestClassesAndFunctions.test_getmembers_descriptors.<locals>.pred_wrapper.<locals>.EmptyNrurrrr�Empty�sr�cs$dt|�vrt�|j�rdS�|�S)Nr0F)rer]r0�r��r��predrrr[�szZTestClassesAndFunctions.test_getmembers_descriptors.<locals>.pred_wrapper.<locals>.wrapped�r)r�r[rr�r�pred_wrapper�szITestClassesAndFunctions.test_getmembers_descriptors.<locals>.pred_wrapperrZrYc@seZdZdS)z>TestClassesAndFunctions.test_getmembers_descriptors.<locals>.BNrurrrrr��sr�)rr3�ismethoddescriptorrbr�r�rD)r9r�r�r�rbr�rrr�test_getmembers_descriptors�s"

����z3TestClassesAndFunctions.test_getmembers_descriptorscCs�Gdd�d�}|�d|jft�|��|�d|jft�|tj��|�}|�d|jft�|��|�d|jft�|tj��dS)Nc@seZdZdd�ZdS)z9TestClassesAndFunctions.test_getmembers_method.<locals>.BcSsdSrrrRrrrr��sz;TestClassesAndFunctions.test_getmembers_method.<locals>.B.fN�r0r?r@r�rrrrr��sr�r�)r�r�r3r�r�rE)r9r�r�rrr�test_getmembers_method�sz.TestClassesAndFunctions.test_getmembers_methodcCsLGdd�dt�}Gdd�d|d�}|�dt�|��|�dt�|���dS)NcseZdZ�fdd�Z�ZS)zCTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.Mcs|dkrdSt��|�S)Nr��	scrambledrk)r�rFr�rrr|�szOTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.M.__getattr__rmrrr�rr��sr�c@seZdZejdd��ZdS)zCTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.AcSsdSrPrrRrrrr��szHTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.A.eggsN)r0r?r@r^ror�rrrrr��sr�r�)r�r�)r�rQ)r_r�r3r�)r9r�r�rrr� test_getmembers_VirtualAttribute�sz8TestClassesAndFunctions.test_getmembers_VirtualAttributecCsFGdd�dt�}Gdd�d|d�}dd�t�|�D�}|�d|�dS)	Nc@seZdZdd�ZdS)zATestClassesAndFunctions.test_getmembers_with_buggy_dir.<locals>.McSsgd�Sr�rr�rrrr|szITestClassesAndFunctions.test_getmembers_with_buggy_dir.<locals>.M.__dir__Nr�rrrrr�sr�c@seZdZdS)zATestClassesAndFunctions.test_getmembers_with_buggy_dir.<locals>.CNrurrrrr�sr�r�cSsg|]}|d�qSr�rr�rrrr�rrzJTestClassesAndFunctions.test_getmembers_with_buggy_dir.<locals>.<listcomp>r�)r_r3r�r�r�rrr�test_getmembers_with_buggy_dirsz6TestClassesAndFunctions.test_getmembers_with_buggy_dir)NNNN) r0r?r@r�rrrrr)r1r8r�rSrrBrrGrIrNrQrbrjrrryr�r�r�r�r�r�r�r�rrrrr�<sV�

�
(	�
��Q

#	 
r�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestIsDataDescriptorcCs�Gdd�d�}Gdd�d�}Gdd�d�}Gdd�d�}|�t�|��d	�|�t�|��d
�|�t�|��d�|�t�|��d�dS)
Nc@seZdZddd�ZdS)zGTestIsDataDescriptor.test_custom_descriptors.<locals>.NonDataDescriptorNcSsdSrr)r9�valuer_rrrr�rrzOTestIsDataDescriptor.test_custom_descriptors.<locals>.NonDataDescriptor.__get__)N�r0r?r@r�rrrr�NonDataDescriptorsr�c@seZdZdd�ZdS)zETestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor0cSsdSrr)r9rFr�rrrr�rrzMTestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor0.__set__N�r0r?r@r�rrrr�DataDescriptor0sr�c@seZdZdd�ZdS)zETestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor1cSsdSrrrlrrr�
__delete__rrzPTestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor1.__delete__N)r0r?r@r�rrrr�DataDescriptor1sr�c@seZdZdZdS)zETestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor2Nr�rrrr�DataDescriptor2sr�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)r8r3rbr/)r9r�r�r�r�rrr�test_custom_descriptors
s ����z,TestIsDataDescriptor.test_custom_descriptorscCs&Gdd�d�}|�t�|j�d�dS)Nc@seZdZdZdS)z/TestIsDataDescriptor.test_slot.<locals>.Slotted�rNr�rrrr�Slotted sr�za slot is a data descriptor)r/r3rbr)r9r�rrr�	test_slots�zTestIsDataDescriptor.test_slotcCs&Gdd�d�}|�t�|j�d�dS)Nc@seZdZedd��ZdS)z6TestIsDataDescriptor.test_property.<locals>.PropertiedcSsdSrrrRrrr�
a_property'szATestIsDataDescriptor.test_property.<locals>.Propertied.a_propertyN)r0r?r@r9r�rrrr�
Propertied&sr�za property is a data descriptor)r/r3rbr�)r9r�rrr�
test_property%s�z"TestIsDataDescriptor.test_propertycCs�Gdd�dt�}dd�}dd�}|�t�|�j�d�|�t�|�j�d�|�t�|�j�d	�|�t�|�d
�|�t�|�d�dS)Nc@s,eZdZdd�Zedd��Zedd��ZdS)z1TestIsDataDescriptor.test_functions.<locals>.TestcSsdSrrrRrrr�instance_method/rrzATestIsDataDescriptor.test_functions.<locals>.Test.instance_methodcSsdSrrr�rrr�class_method0sz>TestIsDataDescriptor.test_functions.<locals>.Test.class_methodcSsdSrrrrrr�
static_method2sz?TestIsDataDescriptor.test_functions.<locals>.Test.static_methodN)r0r?r@r�rWr�rVr�rrrr�Test.s

r�cSsdSrrrrrrr�4sz5TestIsDataDescriptor.test_functions.<locals>.functioncSsdSrrrrrrrw6rrz5TestIsDataDescriptor.test_functions.<locals>.<lambda>z*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)rr8r3rbr�r�r�)r9r�r�Za_lambdarrr�test_functions-s$�����z#TestIsDataDescriptor.test_functionsN)r0r?r@r�r�r�r�rrrrr�sr�c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�TestGetClosureVarscCsVdd�}t�}d|i}dti}dti}dh}t�||||�}|�t�||��|�dS)Ncs�fdd�}|S)Ncst|�tt�dSr��print�_global_ref�unbound_ref�Z	local_ref��nonlocal_refrrr�Isz=TestGetClosureVars.test_name_resolution.<locals>.f.<locals>.gr�r�r�rr�rr�Hsz2TestGetClosureVars.test_name_resolution.<locals>.fr�r�r�r��rr�r�r3�ClosureVarsr��getclosurevars�r9r��_arg�
nonlocal_vars�global_vars�builtin_vars�
unbound_namesr�rrr�test_name_resolutionFs�z'TestGetClosureVars.test_name_resolutioncCsVdd�}t�}d|i}dti}dti}dh}t�||||�}|�t�||��|�dS)Ncs�fdd�}|S)Nc3st|�tt�dVdSrr�r�r�rrr�Wsz?TestGetClosureVars.test_generator_closure.<locals>.f.<locals>.grr�rr�rr�Vsz4TestGetClosureVars.test_generator_closure.<locals>.fr�r�r�r�r�r�rrr�test_generator_closureUs�z)TestGetClosureVars.test_generator_closurecCs`Gdd�d�}t�}d|i}dti}dti}dh}t�||||�}|�t�|��|��|�dS)Nc@seZdZdd�ZdS)z1TestGetClosureVars.test_method_closure.<locals>.Ccs�fdd�}|S)Ncst|�tt�dSrr�r�r�rrr�gsz>TestGetClosureVars.test_method_closure.<locals>.C.f.<locals>.gr)r9r�r�rr�rr�fsz3TestGetClosureVars.test_method_closure.<locals>.C.fNr�rrrrr�esr�r�r�r�r�)rr�r�r3r�r�r�r�)r9r�r�r�r�r�r�r�rrr�test_method_closureds�z&TestGetClosureVars.test_method_closurecs�dd��dd�}dd�}dd�}�fd	d
�����fdd�}|d
�}|d�}||d�}���|�dd
i����|�ddi����|�d|d�����dd�d��ddi��|�dS)NcSst�|�jSr)r3r�Z	nonlocalsr rrr�_nonlocal_varsusz=TestGetClosureVars.test_nonlocal_vars.<locals>._nonlocal_varscs�fdd�}|S)Ncs�|Srr�r�r�rr�addyszFTestGetClosureVars.test_nonlocal_vars.<locals>.make_adder.<locals>.addr)r�r�rr�r�
make_adderxsz9TestGetClosureVars.test_nonlocal_vars.<locals>.make_addercs��fdd�S)Ncs
��|�Srr�r�rr�rrrw~rrzFTestGetClosureVars.test_nonlocal_vars.<locals>.curry.<locals>.<lambda>r)r�rrr�r�curry}sz4TestGetClosureVars.test_nonlocal_vars.<locals>.currycSs||kSrrr�rrr�	less_than�sz8TestGetClosureVars.test_nonlocal_vars.<locals>.less_thancs�fdd�}|�_||�S)Ncs��fdd��S)Ncs���|�Srrr�r rrrw�rrzMTestGetClosureVars.test_nonlocal_vars.<locals>.Y.<locals>.g.<locals>.<lambda>rr ��ler rr��sz;TestGetClosureVars.test_nonlocal_vars.<locals>.Y.<locals>.g)�g_ref)r�r�)�Yr�rr��sz0TestGetClosureVars.test_nonlocal_vars.<locals>.Ycs���|�d�ji�dS)Nr�)r�r��r��r�r�r9rr�check_y_combinator�szATestGetClosureVars.test_nonlocal_vars.<locals>.check_y_combinatorrrr�r�r�cs�fdd�S)Ncs�|Srrr�r�rrrw�rrzITestGetClosureVars.test_nonlocal_vars.<locals>.<lambda>.<locals>.<lambda>rr�rr�rrw�rrz7TestGetClosureVars.test_nonlocal_vars.<locals>.<lambda>r�)r�)r9r�r�r�r�ZincZadd_twoZgreater_than_fiverr�r�test_nonlocal_varsss$

��z%TestGetClosureVars.test_nonlocal_varscCsFdd�}t�iiit��}|�t�dd��|�|�t�|�|�dS)NcSsdSrrrrrrr�rrz9TestGetClosureVars.test_getclosurevars_empty.<locals>.foocSsdS�NTrrrrrrw�rrz>TestGetClosureVars.test_getclosurevars_empty.<locals>.<lambda>)r3r�r2r�r�)r9rZ_emptyrrr�test_getclosurevars_empty�sz,TestGetClosureVars.test_getclosurevars_emptycCsBGdd�d�}|�ttjd�|�ttjt�|�ttji�dS)Nc@seZdZdS)z7TestGetClosureVars.test_getclosurevars_error.<locals>.TNrurrrr�T�rrr�r)r/r0r3r�r~)r9r�rrr�test_getclosurevars_error�sz,TestGetClosureVars.test_getclosurevars_errorcCsd}i}t||�|d|fS)Nzdef f(): print(path)r�)r#)r9�coderOrrr�_private_globals�s
z#TestGetClosureVars._private_globalscCsD|��\}}|�dd�t�iidtidh�}|�t�|�|�dS)Nrfr�r�)r��popr3r�r�r�r��r9r�rOr�rrr�test_builtins_fallback�sz)TestGetClosureVars.test_builtins_fallbackcCsD|��\}}ddi|d<t�iiddidh�}|�t�|�|�dS)Nr�rrfr�)r�r3r�r�r�r�rrr�test_builtins_as_dict�sz(TestGetClosureVars.test_builtins_as_dictcCsB|��\}}t|d<t�iidtjidh�}|�t�|�|�dS)Nrfr�r�)r�r�r3r�r�r�r�r�rrr�test_builtins_as_module�sz*TestGetClosureVars.test_builtins_as_moduleN)
r0r?r@r�r�r�r�r�r�r�r�r�r�rrrrr�Ds&r�c@s`eZdZddd�Zddd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�ZdS)�TestGetcallargsFunctionsNcCs@t|pi|d�}td|d|�}td|d|�}|�||�dS)Nr��func(%s)�inspect.getcallargs(func, %s))r�r.r�)r9r��call_params_string�locsZr1Zr2rrr�assertEqualCallArgs�s
�z,TestGetcallargsFunctions.assertEqualCallArgsc
Cs�t|pi|d�}ztd|d|�Wn(tyL}z|}WYd}~nd}~00|�d�ztd|d|�Wn(ty�}z|}WYd}~nd}~00|�d�|�t|�t|��|�t|�t|��~~dS)Nr�r�zException not raisedr�)r�r.r[Zfailr�r_r�r)r9r�Zcall_param_stringr�rhZex1Zex2rrr�assertEqualException�s 

�
z-TestGetcallargsFunctions.assertEqualExceptioncCsd}t||�S)Nzlambda %s: locals())r.)r9rMr�rrr�makeCallable�sz%TestGetcallargsFunctions.makeCallablecCs�|�d�}|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�|�|d	�|�|d
�|�|d�|�|d�|�|d
�|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�dS)N�a, b=1�2�2, 3�a=2zb=3, a=2z2, b=3z*(2,)z*[2]z*(2, 3)z*[2, 3]z	**{"a":2}zb=3, **{"a":2}z2, **{"b":3}z**{"b":3, "a":2}z*collections.UserList([2])z*collections.UserList([2, 3])z**collections.UserDict(a=2)z2, **collections.UserDict(b=3)z b=2, **collections.UserDict(a=3)�r�r��r9r�rrr�
test_plain�s&
z#TestGetcallargsFunctions.test_plaincCsV|�d�}|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�dS)Nz
a, b=1, *cr�r��2, 3, 4z*(2,3,4)z	2, *[3,4]z 2, 3, *collections.UserList([4])r�r�rrr�test_varargs�s
z%TestGetcallargsFunctions.test_varargscCsz|�d�}|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�|�|d	�|�|d
�dS)Nza, b=1, **cr�z2, b=3, c=4z
b=3, a=2, c=4zc=4, **{"a":2, "b":3}z2, c=4, **{"b":3}zb=2, **{"a":3, "c":4}z%**collections.UserDict(a=2, b=3, c=4)z#2, c=4, **collections.UserDict(b=3)z%b=2, **collections.UserDict(a=3, c=4)r�r�rrr�
test_varkw�s
z#TestGetcallargsFunctions.test_varkwcCsV|�d�}|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�dS)N�**cr�za=1za=1, b=2zc=3, **{"a": 1, "b": 2}z **collections.UserDict(a=1, b=2)z%c=3, **collections.UserDict(a=1, b=2)r�r�rrr�test_varkw_onlys
z(TestGetcallargsFunctions.test_varkw_onlycCs�|�d�}|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�|�|d	�|�d
�}|�|d�|�|d�|�|d�dS)
Nza=3, *, c, d=2zc=3zc=3, a=3za=2, c=4z4, c=4r��3za=3zd=4z	*, c, d=2zc=3, d=4zd=4, c=3)r�r�r�r�rrr�test_keyword_onlys

z*TestGetcallargsFunctions.test_keyword_onlycCs�|�d�}|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�|�d	�}|�|d�|�|d�|�|d
�|�|d�|�|d�|�|d
�dS)Nza, b=2, *f, **gz2, 3, 7z	2, 3, x=8z2, 3, x=8, *[(4,[5,6]), 7]z2, x=8, *[3, (4,[5,6]), 7], y=9zx=8, *[2, 3, (4,[5,6])], y=9z@x=8, *collections.UserList([2, 3, (4,[5,6])]), **{"y":9, "z":10}zP2, x=8, *collections.UserList([3, (4,[5,6])]), **collections.UserDict(y=9, z=10)za, b=2, *f, x, y=99, **gz%2, x=8, *[3, (4,[5,6]), 7], y=9, z=10z"x=8, *[2, 3, (4,[5,6])], y=9, z=10zEx=8, *collections.UserList([2, 3, (4,[5,6])]), q=0, **{"y":9, "z":10}zU2, x=8, *collections.UserList([3, (4,[5,6])]), q=0, **collections.UserDict(y=9, z=10)r�r�rrr�test_multiple_features%s

z/TestGetcallargsFunctions.test_multiple_featuresc	Cs�|�d�}|�d�}|�d�}|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�||fD]�}|�|d	�|�|d
�|�|d�|�|d�|�|d
�|�|d�|�|d�|�|d�|�|d�|�|d�|�|d�q�|�d�}|�|d�|�|d�|�d�}|�|d�|�|d�dd�}|�td��t�|�Wd�n1�s�0Ydd�}|�td��t�|�Wd�n1�s�0Y|�td��$tjdtjjd d!�Wd�n1�s0Y|�td"�� tjd#d$d d!�Wd�n1�sV0Y|�td%��tjd&d'd(�Wd�n1�s�0YdS))Nr�za, br�rUrz1,x=1r�zb=3r�z1, 2, 3, a=1z2, 3, 4, c=5zc=2z2, c=3z	2, 3, c=4z2, c=4, b=3u**{u"πι": 4}z1, a=2z1, **{"a":2}z	1, 2, b=3r�z1, 2z1, 2, a=1, b=2z	*, a, b=0cSsdSrrr4rrr�f5lrrz0TestGetcallargsFunctions.test_errors.<locals>.f5zmissing 1 required keyword-onlycSsdSrr�rr�rrrr�f6ssz0TestGetcallargsFunctions.test_errors.<locals>.f6z'a', 'b' and 'c'z6variadic keyword parameters cannot have default valuesrr���kind�defaultz%value 5 is not a valid Parameter.kindrr�zname must be a str, not a int�{r�r)	r�r�r�r0r3Zgetcallargsrr-�VAR_KEYWORD)	r9Zf0�f1�f2r��f3�f4r�rrrr�test_errors=sh




�**��&�0�z$TestGetcallargsFunctions.test_errors)N)N)
r0r?r@r�r�r�r�r�r�r�r�r�rrrrrr��s

	
r�cs$eZdZdd�Z�fdd�Z�ZS)�TestGetcallargsMethodscCs"Gdd�dt�}||_|�|_dS)Nc@seZdZdS)z)TestGetcallargsMethods.setUp.<locals>.FooNrurrrr�Foo�sr)rr��inst)r9rrrrr��szTestGetcallargsMethods.setUpcs$tt|�j}|d|�|j_|jjS)Nzself, )r�r
r�r�r�r)r9rM�mkr�rrr��sz#TestGetcallargsMethods.makeCallable)r0r?r@r�r�r�rrr�rr
�sr
csBeZdZ�fdd�Zd
�fdd�	Zd�fdd�	Zddd	�Z�ZS)
�TestGetcallargsUnboundMethodscstt|��|�|jjSr)r�rr�r�r��r9rMr�rrr��sz*TestGetcallargsUnboundMethods.makeCallableNcstt|�j|�|||��Sr)r�rr��_getAssertEqualParams�r9r�r�r�r�rrr��s
�z1TestGetcallargsUnboundMethods.assertEqualCallArgscstt|�j|�|||��Sr)r�rr�rrr�rrr��s
�z2TestGetcallargsUnboundMethods.assertEqualExceptioncCs t|pi|jd�}|d||fS)N)rzinst,)r�rrrrrr�sz3TestGetcallargsUnboundMethods._getAssertEqualParams)N)N)N)r0r?r@r�r�r�rr�rrr�rr�src@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-S).�TestGetattrStaticcCs�Gdd�dt�}|�}|�t�|d�|j�|�t�|dd�|j�|�t��t�|d�Wd�n1sp0Y|�t�|dd�d�dS)Nc@seZdZe�ZdS)z+TestGetattrStatic.test_basic.<locals>.ThingN�r0r?r@rr�rrrr�Thing�srr�r�r�)rr�r3�getattr_staticr�r/r8�r9r�thingrrr�
test_basic�s*zTestGetattrStatic.test_basiccCs@Gdd�dt�}Gdd�d|�}|�}|�t�|d�|j�dS)Nc@seZdZe�ZdS)z/TestGetattrStatic.test_inherited.<locals>.ThingNrrrrrr�src@seZdZdS)z4TestGetattrStatic.test_inherited.<locals>.OtherThingNrurrrr�
OtherThing�srr��rr�r3rr�)r9rrZ	somethingrrr�test_inherited�sz TestGetattrStatic.test_inheritedcCsHGdd�dt�}|d�}|�t�|d�d�|`|�t�|d�d�dS)Nc@seZdZdZdd�ZdS)z3TestGetattrStatic.test_instance_attr.<locals>.ThingrcSs
||_dSrr��r9r�rrrr��sz<TestGetattrStatic.test_instance_attr.<locals>.Thing.__init__N)r0r?r@r�r�rrrrr�srr�r�rrrrrr�test_instance_attr�s
z$TestGetattrStatic.test_instance_attrcCs0Gdd�dt�}|�}|�t�|d�|j�dS)Nc@seZdZedd��ZdS)z.TestGetattrStatic.test_property.<locals>.ThingcSstd��dS�NzI'm pretending not to existr7rRrrrr��sz0TestGetattrStatic.test_property.<locals>.Thing.xN)r0r?r@r9r�rrrrr�srr�rrrrrr��szTestGetattrStatic.test_propertycsHGdd�dt�}|��G�fdd�dt�}|�}|�t�|d���dS)Nc@seZdZdd�ZdS)zKTestGetattrStatic.test_descriptor_raises_AttributeError.<locals>.descriptorcWstd��dSr!r7)�_rrrr��szSTestGetattrStatic.test_descriptor_raises_AttributeError.<locals>.descriptor.__get__Nr�rrrr�
descriptor�sr#cseZdZ�ZdS)zFTestGetattrStatic.test_descriptor_raises_AttributeError.<locals>.ThingN�r0r?r@r�r�Zdescrrr�srr�)rr�r3r)r9r#rrrr%r�%test_descriptor_raises_AttributeError�s
z7TestGetattrStatic.test_descriptor_raises_AttributeErrorcCs*Gdd�dt�}|�t�|d�|j�dS)Nc@seZdZe�ZdS)z4TestGetattrStatic.test_classAttribute.<locals>.ThingNrrrrrr�srr�r�r9rrrr�test_classAttribute�sz%TestGetattrStatic.test_classAttributecCs.Gdd�dt�}|�t�|d�|jd�dS)Nc@s eZdZejdd��Ze�ZdS)z;TestGetattrStatic.test_classVirtualAttribute.<locals>.ThingcSs|jSr)�_xrRrrrr��sz=TestGetattrStatic.test_classVirtualAttribute.<locals>.Thing.xN)r0r?r@r^ror�rr)rrrrr�s
rr�)rr�r3rrDr'rrr�test_classVirtualAttribute�sz,TestGetattrStatic.test_classVirtualAttributecCs:Gdd�dt�}Gdd�d|�}|�t�|d�|j�dS)Nc@seZdZe�ZdS)z>TestGetattrStatic.test_inherited_classattribute.<locals>.ThingNrrrrrr�src@seZdZdS)zCTestGetattrStatic.test_inherited_classattribute.<locals>.OtherThingNrurrrrr�srr�r�r9rrrrr�test_inherited_classattribute�sz/TestGetattrStatic.test_inherited_classattributecCs^Gdd�dt�}|�}|�t�|d�|j�|�t�|d�d�|`|�t�|d�|j�dS)Nc@seZdZdZdgZdd�ZdS)z+TestGetattrStatic.test_slots.<locals>.Thingrr�cSs
d|_dS�Nrr�rRrrrr��sz4TestGetattrStatic.test_slots.<locals>.Thing.__init__N)r0r?r@r�r�r�rrrrr�srr�r�rrrrrr�
test_slots�szTestGetattrStatic.test_slotscCs�Gdd�dt�}Gdd�dt|d�}|�t�|d�d�Gdd	�d	|�}Gd
d�dt|d�}|�t�|d�d�Gdd
�d
|�}|�t�|d�d�dS)Nc@seZdZdZdS)z.TestGetattrStatic.test_metaclass.<locals>.metarN)r0r?r@r{rrrr�metasr/c@seZdZdS)z/TestGetattrStatic.test_metaclass.<locals>.ThingNrurrrrrsrr�r{rc@seZdZdS)z-TestGetattrStatic.test_metaclass.<locals>.subNrurrrr�subsr0c@seZdZdZdS)z4TestGetattrStatic.test_metaclass.<locals>.OtherThingr�Nr$rrrrrsrc@seZdZdS)z9TestGetattrStatic.test_metaclass.<locals>.OtherOtherThingNrurrrr�OtherOtherThingsr1r�r��r_rr�r3r)r9r/rr0rr1rrr�test_metaclass�sz TestGetattrStatic.test_metaclasscCs.|�t�ddd�d�|�t�dd�d�dS)Nrr�lower)r�r3r�assertNotEqualrRrrr�test_no_dict_no_slotssz'TestGetattrStatic.test_no_dict_no_slotscCsFtt��*}|�t�|d�t|�j�Wd�n1s80YdS)NrF)r�r�r�r3rr_rF)r9�handlerrr�%test_no_dict_no_slots_instance_members
z7TestGetattrStatic.test_no_dict_no_slots_instance_membercCs<Gdd�dt�}Gdd�d|�}|�t�|�d�|j�dS)Nc@seZdZdgZdd�ZdS)z5TestGetattrStatic.test_inherited_slots.<locals>.Thingr�cSs
d|_dSr-r�rRrrrr�sz>TestGetattrStatic.test_inherited_slots.<locals>.Thing.__init__N)r0r?r@r�r�rrrrrsrc@seZdZdS)z:TestGetattrStatic.test_inherited_slots.<locals>.OtherThingNrurrrrr!srr�rr+rrr�test_inherited_slotssz&TestGetattrStatic.test_inherited_slotscspGdd�dt��G�fdd�dt�}|�}d|jd<|�t�|d�d�dd��_|�t�|d�|jd�dS)	Nc@seZdZdd�ZdS)z5TestGetattrStatic.test_descriptor.<locals>.descriptorcSsdSr�r�r9�instance�ownerrrrr�)sz=TestGetattrStatic.test_descriptor.<locals>.descriptor.__get__Nr�rrrrr#(sr#cseZdZ��ZdS)z.TestGetattrStatic.test_descriptor.<locals>.FooN�r0r?r@r�r�r#rrr+srrr�cSsdSrr)rRr%�vrrrrw6rrz3TestGetattrStatic.test_descriptor.<locals>.<lambda>)rrDr�r3rr��r9rrrr>r�test_descriptor's

z!TestGetattrStatic.test_descriptorcsVGdd�dt��G�fdd�dt�}Gdd�dt|d�}|�t�|d�|jd�dS)	Nc@seZdZdd�ZdS)zDTestGetattrStatic.test_metaclass_with_descriptor.<locals>.descriptorcSsdSr�rr:rrrr�<szLTestGetattrStatic.test_metaclass_with_descriptor.<locals>.descriptor.__get__Nr�rrrrr#;sr#cseZdZ��ZdS)z>TestGetattrStatic.test_metaclass_with_descriptor.<locals>.metaNr=rr>rrr/>sr/c@seZdZdS)z?TestGetattrStatic.test_metaclass_with_descriptor.<locals>.ThingNrurrrrr@srr�r�)rr_r�r3rrD)r9r/rrr>r�test_metaclass_with_descriptor:sz0TestGetattrStatic.test_metaclass_with_descriptorcCs^Gdd�dt�}Gdd�d|�}|�}|�t�|d�d�|�|j�|�t�|d�d�dS)Nc@seZdZdZdS)z6TestGetattrStatic.test_class_as_property.<locals>.Baser�Nr�rrrr�BaseFsrCc@seZdZdZedd��ZdS)z;TestGetattrStatic.test_class_as_property.<locals>.SomethingFcSs
d|_tSr�)�executedrrRrrrr�KszETestGetattrStatic.test_class_as_property.<locals>.Something.__class__N)r0r?r@rDr9r�rrrr�	SomethingIsrErr�)rr�r3rr8rD)r9rCrEr;rrr�test_class_as_propertyEsz(TestGetattrStatic.test_class_as_propertycCsbGdd�dt�}Gdd�dt�}Gdd�d||d�}|�t�|�d�d	�|�t�|d�d	�dS)
Nc@seZdZedd��ZdS)z4TestGetattrStatic.test_mro_as_property.<locals>.MetacSstfSrr�rRrrr�__mro__Wsz<TestGetattrStatic.test_mro_as_property.<locals>.Meta.__mro__N)r0r?r@r9rGrrrrrnVsrnc@seZdZdZdS)z4TestGetattrStatic.test_mro_as_property.<locals>.Baser�Nr�rrrrrC[srCc@seZdZdS)z9TestGetattrStatic.test_mro_as_property.<locals>.SomethingNrurrrrrE^srEr�rr�r2)r9rnrCrErrr�test_mro_as_propertyUs
z&TestGetattrStatic.test_mro_as_propertycsN|�d�_G�fdd�dt�}|�}d|_|�t�|d�d�|��j�dS)NFcs eZdZdZe�fdd��ZdS)z4TestGetattrStatic.test_dict_as_property.<locals>.Foor�cs
d�_iSr�)�calledrR�r*rrrDjsz=TestGetattrStatic.test_dict_as_property.<locals>.Foo.__dict__N)r0r?r@rr9rDrrJrrrhsrrrr�)rIr�rr�r3rr8r@rrJr�test_dict_as_propertydsz'TestGetattrStatic.test_dict_as_propertycs`|�d�_G�fdd�dt�}Gdd�dt�}|�}|�|_|�t�|d�d�|��j�dS)NFcs eZdZd��fdd�	Z�ZS)z9TestGetattrStatic.test_custom_object_dict.<locals>.CustomNcsd�_t��||�dSr�)rIr��get)r9�keyr)r�r*rrrLysz=TestGetattrStatic.test_custom_object_dict.<locals>.Custom.get)N)r0r?r@rLr�rrJr�r�CustomxsrNc@seZdZdZdS)z6TestGetattrStatic.test_custom_object_dict.<locals>.Foor�N)r0r?r@rrrrrr}srrr�)rIr�rrDr�r3rr8)r9rNrrrrJr�test_custom_object_dicttsz)TestGetattrStatic.test_custom_object_dictcCsLGdd�dt�}Gdd�d|d�}|�}|�t�|d�d�|�|j�dS)Nc@seZdZedd��ZdS)z?TestGetattrStatic.test_metaclass_dict_as_property.<locals>.MetacSs
d|_dSr�)rDrRrrrrD�szHTestGetattrStatic.test_metaclass_dict_as_property.<locals>.Meta.__dict__N�r0r?r@r9rDrrrrrn�srnc@seZdZdZdd�ZdS)z@TestGetattrStatic.test_metaclass_dict_as_property.<locals>.ThingFcSs
d|_dS�Nr��rQrRrrrr��szITestGetattrStatic.test_metaclass_dict_as_property.<locals>.Thing.__init__N)r0r?r@rDr�rrrrr�srr�rQr�)r_r�r3rr8rD)r9rnrr;rrr�test_metaclass_dict_as_property�s
z1TestGetattrStatic.test_metaclass_dict_as_propertycCs t�}|�t�td|�|�dS)N�version)r�assertIsNotr3rr)r9�sentinelrrr�test_module�s�zTestGetattrStatic.test_modulecCs|Gdd�dt�}Gdd�dt|d�}Gdd�d|d�}|�t��t�|d�Wd�n1sb0Y|�|j�dS)	Nc@seZdZedd��ZdS)zWTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.MetaMetacSsd|_tdd�S)NTr�rR)rDr�rRrrrrD�sz`TestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.MetaMeta.__dict__NrPrrrr�MetaMeta�srXc@seZdZdZdS)zSTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.MetaFN)r0r?r@rDrrrrrn�srnr�c@seZdZdS)zTTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.ThingNrurrrrr�srrQ)r_r/r8r3rr8rD)r9rXrnrrrr�3test_metaclass_with_metaclass_with_dict_as_property�s*zETestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_propertyN)r0r?r@rrr r�r&r(r*r,r.r3r6r8r9rArBrFrHrKrOrSrWrYrrrrr�s,	

	

rc@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�TestGetGeneratorStatecCsdd�}|�|_dS)Ncsstd�D]
}|VqdS�Nr�rL��numberrrr�number_generator�sz5TestGetGeneratorState.setUp.<locals>.number_generator)�	generator)r9r^rrrr��szTestGetGeneratorState.setUpcCst�|j�Sr)r3Zgetgeneratorstater_rRrrr�_generatorstate�sz%TestGetGeneratorState._generatorstatecCs|�|��tj�dSr)r�r`r3ZGEN_CREATEDrRrrr�test_created�sz"TestGetGeneratorState.test_createdcCs t|j�|�|��tj�dSr)�nextr_r�r`r3Z
GEN_SUSPENDEDrRrrr�test_suspended�s
z$TestGetGeneratorState.test_suspendedcCs"|jD]}q|�|��tj�dSr)r_r�r`r3�
GEN_CLOSEDrMrrr�test_closed_after_exhaustion�s
z2TestGetGeneratorState.test_closed_after_exhaustioncCsL|�t��|j�t�Wd�n1s,0Y|�|��tj�dSr)r/r�r_r*r�r`r3rdrRrrr�%test_closed_after_immediate_exception�s*z;TestGetGeneratorState.test_closed_after_immediate_exceptioncs,�fdd�}|��_t�j�t�j�dS)Nc3s<td�D].}�����tj�|V�����tj�qdSr[)rr�r`r3ZGEN_RUNNINGr\rRrr�running_check_generator�szCTestGetGeneratorState.test_running.<locals>.running_check_generator)r_rb)r9rgrrRr�test_running�s
z"TestGetGeneratorState.test_runningcCs@d��}|D].}tt|�}|�|t|��|�|t|��qdS)Nz0GEN_CREATED GEN_RUNNING GEN_SUSPENDED GEN_CLOSED�r�rgr3r��reprr�r9�namesrF�staterrr�test_easy_debugging�s

z)TestGetGeneratorState.test_easy_debuggingc	Cs�ddd�}|gd��}|�t�|�dgd�d��t|�|�t�|�dgd�ddd��t|�|�t�|�dgd�ddd��t|�|�t�|�dgd�ddd	d
��zt|�Wnty�Yn0|�t�|�i�dS)Ncss$d}|D]}|dkrd}|VqdS)Nrr�rQr)�lstrr�r?rrrr�each�s
z;TestGetGeneratorState.test_getgeneratorlocals.<locals>.eachr)rror)rror?r�rr�rQ)rror?r�r)N�r�r3�getgeneratorlocalsrb�
StopIteration)r9rpZnumbersrrr�test_getgeneratorlocals�s8
�
��
��
��z-TestGetGeneratorState.test_getgeneratorlocalscCsVdd�}|�}|�t�|�i�zt|�Wnty>Yn0|�t�|�i�dS)Ncss
dVdSrjrrrrr�	yield_one�szFTestGetGeneratorState.test_getgeneratorlocals_empty.<locals>.yield_onerq)r9rur�rrr�test_getgeneratorlocals_empty�sz3TestGetGeneratorState.test_getgeneratorlocals_emptycCsH|�ttjd�|�ttjdd��|�ttjt�|�ttjd�dS)NrcSsdSr�rr�rrrrwrrzETestGetGeneratorState.test_getgeneratorlocals_error.<locals>.<lambda>)rr�)r/r0r3rrr2rRrrr�test_getgeneratorlocals_errorsz3TestGetGeneratorState.test_getgeneratorlocals_errorN)r0r?r@r�r`rarcrerfrhrnrtrvrwrrrrrZ�srZc@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�TestGetCoroutineStatecs&tjdd����fdd�}|�|_dS)Ncsstd�D]
}|VqdSr[rLr\rrr�number_coroutinesz5TestGetCoroutineState.setUp.<locals>.number_coroutinec�s��IdHdSrrr�ryrr�	coroutinesz.TestGetCoroutineState.setUp.<locals>.coroutine)r^r{)r9r{rrzrr�s
zTestGetCoroutineState.setUpcCs|j��dSr)r{rmrRrrrr�szTestGetCoroutineState.tearDowncCst�|j�Sr)r3Zgetcoroutinestater{rRrrr�_coroutinestatesz%TestGetCoroutineState._coroutinestatecCs|�|��tj�dSr)r�r|r3ZCORO_CREATEDrRrrrrasz"TestGetCoroutineState.test_createdcCs"|j�d�|�|��tj�dSr)r{�sendr�r|r3ZCORO_SUSPENDEDrRrrrrc!sz$TestGetCoroutineState.test_suspendedcCs@z|j�d�Wqty&Yq*Yq0q|�|��tj�dSr)r{r}rsr�r|r3�CORO_CLOSEDrRrrrre%s
z2TestGetCoroutineState.test_closed_after_exhaustioncCsL|�t��|j�t�Wd�n1s,0Y|�|��tj�dSr)r/r�r{r*r�r|r3r~rRrrrrf.s*z;TestGetCoroutineState.test_closed_after_immediate_exceptioncCs@d��}|D].}tt|�}|�|t|��|�|t|��qdS)Nz4CORO_CREATED CORO_RUNNING CORO_SUSPENDED CORO_CLOSEDrirkrrrrn3s

z)TestGetCoroutineState.test_easy_debuggingcshtjdd������d�fdd�	}|�}|�t�|�d�d��|�d�|�t�|�d�dd��dS)	Ncss
dVdSrrrrrr�gencoro<sz>TestGetCoroutineState.test_getcoroutinelocals.<locals>.gencoroc�sd}�IdHdSrPrr��rrrr�Asz;TestGetCoroutineState.test_getcoroutinelocals.<locals>.func)rrrQ)rrr�)N)r^r{r�r3Zgetcoroutinelocalsr})r9r�rorr�r�test_getcoroutinelocals;s
�

�z-TestGetCoroutineState.test_getcoroutinelocalsN)r0r?r@r�r�r|rarcrerfrnr�rrrrrx
s		rxc@seZdZdS)�MySignatureNrurrrrr�Msr�c@seZdZdS)�MyParameterNrurrrrr�Rsr�c@s�eZdZedd��Zdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Ze
e�ed�dd���Ze
e�ed�dd���Ze
dd��Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Z d4d5�Z!e�ed�d6d7��Z"e�ed�d8d9��Z#d:d;�Z$d<d=�Z%d>d?�Z&d@dA�Z'dBdC�Z(dDdE�Z)dFdG�Z*dHdI�Z+dJdK�Z,dLdM�Z-e�ed�dNdO��Z.dPdQ�Z/dRdS�Z0dTS)U�TestSignatureObjectcKs@tj|fi|��}tdd�|j��D��|j|jur8dn|jfS)NcssJ|]B}|j|j|jurdn|j|j|jur.dn|jt|j���fVqdS).N)rFr�empty�
annotationrrr4)r��paramrrr�	<genexpr>]s��z0TestSignatureObject.signature.<locals>.<genexpr>.)r3rM�tupler$�values�return_annotationr�)r��kw�sigrrrrMZs��zTestSignatureObject.signaturec
Cs�tj}tj}|�t|��d�|�t|�j�d�ddd�}t�|�}|jdj|j	d�}|jd	j|j	d�}|jd
}|jd}|jd}	|jd
}
|jd}||||	|
|f�|�
td��"||||	|
|f�Wd�n1s�0Y|�
td��"|||	||
|f�Wd�n1�s&0Y|�
td��"||	|||
|f�Wd�n1�sf0Y|�
td��"||||	||
f�Wd�n1�s�0Y|jdd�}|�
td��"||||	||
f�Wd�n1�s�0Y|�
td��|||f�Wd�n1�s,0Y|�
td��||||f�Wd�n1�sh0Y|�
td��|||f�Wd�n1�s�0Y|�t|��
d��|�dt|�v�dS)N�()zmappingproxy(OrderedDict())r��dc_sdSrr)�po�pk�pod�pkd�korr�rrrr*msz7TestSignatureObject.test_signature_object.<locals>.testr�rr�r�r�rr�r�zwrong parameter order�rFzduplicate parameter namezfollows default argumentz
<Signaturez(po, pk)r�r�)r3r/r-r�rrjr$rM�replacer.r�rr/r2)
r9�S�Pr*r�r�r�r�r�rr�r�Zkwargs2rrr�test_signature_objectfsB






02222,.,z)TestSignatureObject.test_signature_objectc		Cs�id�dddid�dd�}tj|dd�}t�|�}ttjd�D]P}|j|d	d
��.t�t�	||��}|�
||�Wd�q@1s�0Yq@t�|�}tdtjj
d�}tj|j|d�}t�j|��|jd
�}|�t|t��|�t|jdt��ttjd�D]z}|j|dd
��Tt�t�	||��}|�
||�|�t|t��|�t|jdt��Wd�n1�st0Y�qdS)N�rrr�r�rr3c[sdSrr�rr�rr�rrrr�rrz=TestSignatureObject.test_signature_object_pickle.<locals>.foor4F)�
pickle_ver�subclassr)rFr)r$r�T)rkrlr3rMr�pickle�HIGHEST_PROTOCOL�subTest�loads�dumpsr�r�r-r.�collections�OrderedDictr$r�r�r�r�r/rh)	r9rZfoo_partialr��verZsig_pickledZmyparamZmyparamsZmysigrrr�test_signature_object_pickle�s.
,
��z0TestSignatureObject.test_signature_object_picklecCszdd�}t�|�}|�t��d|_Wd�n1s80Y|�t��d|jd<Wd�n1sl0YdS)NcSsdSrrr4rrrr*�sz=TestSignatureObject.test_signature_immutability.<locals>.testrr)r3rMr/r8rr0r$�r9r*r�rrr�test_signature_immutability�s
$z/TestSignatureObject.test_signature_immutabilitycCsdd�}|�|�|�d�dS)NcSsdSrrrrrrr*�sz9TestSignatureObject.test_signature_on_noarg.<locals>.test�r.�r�rM�r9r*rrr�test_signature_on_noarg�sz+TestSignatureObject.test_signature_on_noargcCs&ddd�dd�}|�|�|�d�dS)Nrr�r�r3cSsdSrrr�rrrr*�sz9TestSignatureObject.test_signature_on_wargs.<locals>.test))�r..�positional_or_keyword)r�.rr�rr�r�rrr�test_signature_on_wargs�s�z+TestSignatureObject.test_signature_on_wargscCs@tttd�dd�}|�|�|�ddtdfddtdfftf�dS)N)rr�r3cSsdSrrr�rrrr*�sz;TestSignatureObject.test_signature_on_wkwonly.<locals>.testr.�keyword_onlyr�)�floatrr�r�rMr�rrr�test_signature_on_wkwonly�s

���z-TestSignatureObject.test_signature_on_wkwonlycCsJddd�dddtd�dd	�}|�|�|�d
ddd
dddtdffdf�dS)Nr]r)rrr�baz)r�rrQr�c_sdSrr)rr�rQrrr�rrrr*�sz@TestSignatureObject.test_signature_on_complex_args.<locals>.testr�)r�r]rr�)r.r�var_positional)rQ.r�r�)rr.r�r�.�var_keyword)r])r�r�rMr�rrr�test_signature_on_complex_args�s
���z2TestSignatureObject.test_signature_on_complex_argscs�dd��dd��G��fdd�d�}|�|���d�|�|���d�|�|�|j�d�|�|�|j�d�|�|�|j�d�|�|�|j�d�dS)	NcWsdSrrr�rrr�test_args_only�szGTestSignatureObject.test_signature_without_self.<locals>.test_args_onlyc_sdSrr�rr�rrr�test_args_kwargs_only�szNTestSignatureObject.test_signature_without_self.<locals>.test_args_kwargs_onlycsTeZdZedd��Zedd��Ze�ed�Z	e��d�Z
e�ed�Ze��d�ZdS)z:TestSignatureObject.test_signature_without_self.<locals>.AcWsdSrrr�rrr�test_classmethod�szKTestSignatureObject.test_signature_without_self.<locals>.A.test_classmethodcWsdSrrr�rrr�test_staticmethod�szLTestSignatureObject.test_signature_without_self.<locals>.A.test_staticmethodrN)
r0r?r@rWr�rVr�rkr$rr	r
rr�r�r�rrr��s

r��)�r..r�.�)r��r�..r�.)r�rMrr	r
rrPrr�r�test_signature_without_self�s*������z/TestSignatureObject.test_signature_without_selfr9cs�ddl}�fdd�}�fdd�}||j���fdd�}��|d�d	���|d
�d���|d�d
���|d�d���|d�d���|d�d���|d�d���|d�d���|d�tj���d�j�|t�|tj	j
�t�	t���}||j
�|t
j�|dj�|tj�|ij�|tj�|tj�|dj�|tj���td��(Gdd�d�}||��Wd�n1�s�0Y|tj�|tj�||j�dS)Nrcs<t�|�}��t|tj����t|j���dj	d�|S�Nrr9)
r3rMr/rhr/r�r~r$r�rF�rrMrRrr�test_unbound_method	s
zKTestSignatureObject.test_signature_on_builtins.<locals>.test_unbound_methodcsBt�|�}��t|tj��|jr>��t|j���dj	d�|Sr�)
r3rMr/rhr/r$r5r~r�rFr�rRrr�
test_callable	s

zETestSignatureObject.test_signature_on_builtins.<locals>.test_callablecs�j|jSr)r$rr�)rMrrr&	rrz9TestSignatureObject.test_signature_on_builtins.<locals>.prRrCr�sbytesr�g��Q�	@r%�#�nr�Tr�F�localr�rr;sabczno signature foundc@seZdZeZdS)zDTestSignatureObject.test_signature_on_builtins.<locals>.ThisWorksNowN)r0r?r@r_r"rrrr�ThisWorksNow?	sr�)rDrEr�r�maxsizer�r$rr<r=r>r?�StringIO�bytes�	maketransr��fromkeysr_r"r�rc�minr�r�__delitem__r9r�Z#docstring_with_signature_but_no_doc)r9rDr�r�r&r�r�rrr�test_signature_on_builtins	sB









*

z.TestSignatureObject.test_signature_on_builtinscCsdddl}|j}dd�}||�}|�t�|�t�|��td�dd�}|�tj|dd�t�|��dS)	Nrcs t���td��fdd��}|S)N�r3cs�|i|��Srrr�r�rr�wrapperR	sz\TestSignatureObject.test_signature_on_decorated_builtins.<locals>.decorator.<locals>.wrapper)rkr#r��r�r�rr�r�	decoratorQ	szKTestSignatureObject.test_signature_on_decorated_builtins.<locals>.decoratorr�c_sdSrrr�rrr�wrapper_like\	rrzNTestSignatureObject.test_signature_on_decorated_builtins.<locals>.wrapper_likeF�Zfollow_wrapped)rDrEr�r3rMr�)r9rDr�r�Zdecorated_funcr�rrr�$test_signature_on_decorated_builtinsJ	s�
��z8TestSignatureObject.test_signature_on_decorated_builtinscCszddl}|�td��t�|j�Wd�n1s60Y|�td��t�t�Wd�n1sl0YdS)Nrzno signature found for builtin)rDr�rr3rMrHr)r9rDrrr�'test_signature_on_builtins_no_signaturea	s�*�z;TestSignatureObject.test_signature_on_builtins_no_signaturecCs:|�td��t�d�Wd�n1s,0YdS)N�is not a callable objectr�)r�r0r3rMrRrrr�test_signature_on_non_functionl	sz2TestSignatureObject.test_signature_on_non_functioncsdd�dd�}Gdd�d�}tj�|�}tj�||��}|�||�t�||��}|�||�||�}|`|�|�|�d�tj��fdd	�}tj�	d
|��P||�}|�
t�|��d|_|�t�|��|�t�|�|�Wd�n1s�0YdS)NT��kwonlyc_sdSrr�rr�r�Z	kwonlyreqrr�rrrr�q	szITestSignatureObject.test_signature_from_functionlike_object.<locals>.funcc@seZdZdd�Zdd�ZdS)zMTestSignatureObject.test_signature_from_functionlike_object.<locals>.funclikecSs2|j|_|j|_|j|_|j|_|j|_||_dSr)r0rEr5�__defaults__�__kwdefaults__r�)r9r�rrrr�y	szVTestSignatureObject.test_signature_from_functionlike_object.<locals>.funclike.__init__c_s|j|i|��Srr�r�rrrr"�	szVTestSignatureObject.test_signature_from_functionlike_object.<locals>.funclike.__call__N)r0r?r@r�r"rrrr�funcliket	sr�r�cst|d�rdS�|�S)N�_builtinmockT�r])r<�Z_orig_isdescrr�_isdesc�	s
zLTestSignatureObject.test_signature_from_functionlike_object.<locals>._isdesczinspect.ismethoddescriptor)
r3r/�
from_callabler�rMr�r�r�rrr8r�r/)r9r�r�Zsig_funcZsig_funclikeZflr�Zbuiltin_funcrr�r�'test_signature_from_functionlike_objectp	s(�z;TestSignatureObject.test_signature_from_functionlike_objectcs:dd�dd��G�fdd�d�}|�tt�|��d�dS)NTr�c_sdSrrr�rrrr��	szCTestSignatureObject.test_signature_functionlike_class.<locals>.funccs2eZdZdd�Z�jZ�jZ�jZ�jZ�jZdS)zGTestSignatureObject.test_signature_functionlike_class.<locals>.funclikecSsdSrr)r9Zmarkerrrrr��	szPTestSignatureObject.test_signature_functionlike_class.<locals>.funclike.__init__N)r0r?r@r�rEr5r�r�rr�rrr��	sr�z(marker))r�rr3rM)r9r�rr�r�!test_signature_functionlike_class�	s
z5TestSignatureObject.test_signature_functionlike_classcCs�Gdd�d�}|�|�|�j�dtf�|�|�|�j�d�|�|�|�d�|�td��|�|��Wd�n1s~0YdS)Nc@s4eZdZdd�Zded�dd�Zdd�Zd	d
�ZdS)
z:TestSignatureObject.test_signature_on_method.<locals>.TestcWsdSrrr�rrrr��	szCTestSignatureObject.test_signature_on_method.<locals>.Test.__init__rr�cSsdSrr�r9rrrrrrT�	sz=TestSignatureObject.test_signature_on_method.<locals>.Test.m1cWsdSrrr�rrr�m2�	sz=TestSignatureObject.test_signature_on_method.<locals>.Test.m2cSsdSrrr4rrrr"�	szCTestSignatureObject.test_signature_on_method.<locals>.Test.__call__N)r)r0r?r@r�r�rTr�r"rrrrr��	sr���r..r�)rr.r�r�zinvalid method signature)r�rMrTr�r�r�r)r9r�rrr�test_signature_on_method�	s
����z,TestSignatureObject.test_signature_on_methodcCs>Gdd�d�}t�|�j�dd��}|�|�|�dtf�dS)Nc@seZdZded�dd�ZdS)zETestSignatureObject.test_signature_wrapped_bound_method.<locals>.Testrr�cSsdSrrr�rrrrT�	szHTestSignatureObject.test_signature_wrapped_bound_method.<locals>.Test.m1N)r)r0r?r@r�rTrrrrr��	sr�c_sdSrrr�rrr�m1d�	szDTestSignatureObject.test_signature_wrapped_bound_method.<locals>.m1dr�)rkr#rTr�rMr�)r9r�r�rrr�#test_signature_wrapped_bound_method�	s
��z7TestSignatureObject.test_signature_wrapped_bound_methodcCsDGdd�d�}|�j}|�|�|�d�|j}|�|�|�d�dS)Nc@seZdZedd�dd��ZdS)z?TestSignatureObject.test_signature_on_classmethod.<locals>.Testrr�cSsdSrr)r�rrrrrr�	szCTestSignatureObject.test_signature_on_classmethod.<locals>.Test.fooN)r0r?r@rWrrrrrr��	sr�))r�)rr.r�.�rr�rM�r9r��methrrr�test_signature_on_classmethod�	s��z1TestSignatureObject.test_signature_on_classmethodcCsDGdd�d�}|�j}|�|�|�d�|j}|�|�|�d�dS)Nc@seZdZedd��ZdS)z@TestSignatureObject.test_signature_on_staticmethod.<locals>.TestcSsdSrr)r�rrrrr�	szDTestSignatureObject.test_signature_on_staticmethod.<locals>.Test.fooN)r0r?r@rVrrrrrr��	sr�)))r�..r�)r..r�.r�r�rrr�test_signature_on_staticmethod�	s��z2TestSignatureObject.test_signature_on_staticmethodc
Cs�ddlm}tj}dd�}|�|�||��d�|�td�� t�||d��Wd�n1sb0Y|�td��"t�||dd��Wd�n1s�0Yd	d�}|�|�||��d
�|�|�||d��d�|�|�||ddd
��d�|�|�||ddd��d�|�|�||dddd��d�|�|�||dd��d�dd�}|�|�||d��d�|�|�||dd��d�|�|�||ddd��d�|�|�||ddddd��d�|�|�||dddddd��d�|�|�||dd��d�|�|�||ddd��d�tdd�d d�}t�|�}|_	|�|�|||d���d!d"d#td$ffdf�|�|�|||d�d��d"d#td$ffdf�t�|||d�d��}d%d&�}|||d'd�d(d�}|�|�|�d)�|�|�d(�d*d&�}|||dd(d�d+d�}|�|�|�d,�|�|d'd
�d-�d.d&�}|||d(d(d/�d'd+d0�}|�|�|�d1�t�|�j
d2d3d4�}|�||ji|j��d5�dGd6d&�}||d7d
�}t�|�j
d3d�}|�||ji|j��d8�t�|��
d3d9�}|�||ji|j��d:�t�|�j
d3d9d�}|�||ji|j��d:�t�|�j
d9d�}|�||ji|j��d;�||d'd(d�}t�|��
d9�}|�||ji|j��d<�d=d&�}t�|�}|j
��}	|	d>j|jd?�|	d><|	d@j|jd?�|	d@<t�|	���|_	t�|�}|�t|�dA�|�|�||d��dB�|�|�||dd��dC�|�|�||ddd��dD�|�|�||dddd
��dE�|�|�||ddd
��dF�dS)HNr)rlcSsdSrrrrrrr*	
sz;TestSignatureObject.test_signature_on_partial.<locals>.testr��has incorrect argumentsrr4cSsdSrrrrrrr*
s))r��r�..r��r..r��r�..r�.))r�r�r�.rr�))r��rr.r�r�.)r�r))r��r�r.r�r�r�.))r�r�r�.))�rr.r��r�..r�r�r�.c_sdSrr)rr�rr�rrrr*>
s))r�r�r�.))r�r�r�.r�TrJ)r*r�))r��r�r.r�r�.�r�))r�r�r�r�.)r�r*r�r�cSsdSrrrrrrr*m
sr�r.r�cSs|Srrr4rrrr}
sz:TestSignatureObject.test_signature_on_partial.<locals>.foor]�)))rr.r�.cSs
|||fSrrrrrrr�
sri)))r�ri.r�r�.)rrir]cSs||||fSrrrrrrr�
s)r�r)r�r�))r�)r�r].r�)rr.r�)r�ri.r�.��r�r�)rr�rricSs
|||fSrrrrrrr�
s�
)r�rrrQ)r�rQr)rrQr)rQr]rc[sdSrr)rr�rr�r�rrrr�
srrr�z(a, b, /, c, d, **kwargs)))�r�..Zpositional_only�r..r��r�..r�r�.))rrr�.))rr�.))�rr�.r�r�r�.))rrr�r�.)rrr�)rkrlr3r-r�rMr�rr�r0�bindrr�r$�copyr�r.r/r�r)
r9rlr-r*r�ZpsigrZ_foo�ba�paramsrrr�test_signature_on_partial
s�.0�������������
��������



�����z-TestSignatureObject.test_signature_on_partialcs�ddlm�G�fdd�d�}|�td��t�|j�Wd�n1sL0YG�fdd�d�}|�|�|j�d�|�|�|�j�d�G�fd	d�d�}|�|�|j�d
�dS)Nr�r$cseZdZdd�Z�e�ZdS)�ATestSignatureObject.test_signature_on_partialmethod.<locals>.SpamcSsdSrrrrrrr*�
s�FTestSignatureObject.test_signature_on_partialmethod.<locals>.Spam.testN�r0r?r@r*rrr
rr�Spam�
srr�cs&eZdZdd�dd�Z�edd�ZdS)rrQr�cSsdSrr)�itrrrrrr*�
srrr�Nrrr
rrr�
s)))r..r�r��rr.r�rQ))r�rrQcs$eZdZdd�dd�Z�ed�ZdS)r�annorRcSsdSrrrrrrr*�
srrN)r0r?r@r*r�rr
rrr�
s)))r9.rr�.)	rkr$r�rr3rMrr�r�)r9rrr
r�test_signature_on_partialmethod�
s*���z3TestSignatureObject.test_signature_on_partialmethodcCs(dd�}d|_|�tt�|��d�dS)NcSsdSrrr4rrrrrrzETestSignatureObject.test_signature_on_fake_partialmethod.<locals>.foorQz(a))�_partialmethodr�rr3rM�r9rrrr�$test_signature_on_fake_partialmethodsz8TestSignatureObject.test_signature_on_fake_partialmethodcs�ddl��fdd��G�fdd�d�}|�|�|j�d�|�|�|�j�d�|�|j|jdd	�d
��fdd��G�fdd�d�}|�|�|j�d�|�|�|�j�d
�dd�}|j|_|�|�|�d�dS)Nrcs ����td��fdd��}|S)Nr�cs�|i|��Srrr�r�rrr�
s�STestSignatureObject.test_signature_on_decorated.<locals>.decorator.<locals>.wrapper)r#r�r��rkr�rr�	szBTestSignatureObject.test_signature_on_decorated.<locals>.decoratorcseZdZ�dd��ZdS)�<TestSignatureObject.test_signature_on_decorated.<locals>.FoocSsdSrr�r9rr�rrrrsz@TestSignatureObject.test_signature_on_decorated.<locals>.Foo.barN)r0r?r@rr�r�rrrsr))�r9..r�r�r�.))r�r�.Fr�r�csN����td��fdd��}t���}t|j���dd�}|j|d�|_|S)Nr�cs�dg|�Ri|��SrQrr�r�rrr�(srrr+)	r#r�r3rMr�r$r�r�r0)r�r�r��
new_paramsrr�rr�'s
cseZdZ�dd��ZdS)rcSsdSrrrrrrr"1szETestSignatureObject.test_signature_on_decorated.<locals>.Foo.__call__N�r0r?r@r"rrrrr0s�)r�.cSsdSrrrrrr�wrapped_foo_call?szITestSignatureObject.test_signature_on_decorated.<locals>.wrapped_foo_call)rkr�rMrr"�__wrapped__)r9rr"r)r�rkr�test_signature_on_decorateds2���	���z/TestSignatureObject.test_signature_on_decoratedcCs>Gdd�d�}|�|�|�d�Gdd�dt�}Gdd�d|d�}|�|�|�d�Gdd�dt�}Gd	d�d|d�}|�|�|�d
�|�|�|�d�Gdd
�d
t�}Gdd�dt|d�}Gdd�d|d�}|�|�|�d�|�|�|�d�|�|�|�d
�Gdd�dt�}Gdd�d|d�}|�|�|�d�dS)Nc@seZdZdd�ZdS)�6TestSignatureObject.test_signature_on_class.<locals>.CcSsdSrr�r9rrrrr�Ks�?TestSignatureObject.test_signature_on_class.<locals>.C.__init__N�r0r?r@r�rrrrr�Jsr��)r�.c@seZdZdd�ZdS)�7TestSignatureObject.test_signature_on_class.<locals>.CMcSsdSrr)r�rrrrr"Ssz@TestSignatureObject.test_signature_on_class.<locals>.CM.__call__Nr rrrrr:Rsr:c@seZdZdd�ZdS)r%cSsdSrr�r9r�rrrr�Vsr'Nr(rrrrr�Usr�cs"eZdZdd��fdd�
Z�ZS)r*rr�cst��||||�Sr�r�r&��mclsrF�bases�dctrr�rrr&^s�?TestSignatureObject.test_signature_on_class.<locals>.CM.__new__�r0r?r@r&r�rrr�rr:]sc@seZdZdd�ZdS)r%cSsdSrrr+rrrr�asr'Nr(rrrrr�`sr!))�rF..r��r/..r��r0..r�)rr.r�.cs*eZdZdd��fdd�
Zdd�Z�ZS)z8TestSignatureObject.test_signature_on_class.<locals>.CMMrr�cst��||||�Srr,r-r�rrr&psz@TestSignatureObject.test_signature_on_class.<locals>.CMM.__new__cSst|||�Sr)r_)r��nm�bs�dtrrrr"rszATestSignatureObject.test_signature_on_class.<locals>.CMM.__call__)r0r?r@r&r"r�rrr�r�CMMosr9cs"eZdZdd��fdd�
Z�ZS)r*r�rcst��||||�Srr,)r.rFr/r0rr�rrr&usr1r2rrr�rr:tsc@seZdZdd�ZdS)r%cSsdSrrr+rrrr�xsr'Nr(rrrrr�ws)))r6..r�)r7..r�)r8..r�.cs"eZdZdd��fdd�
Z�ZS)r*rr:cst��|||�Sr)r�r�)r�rFr/r0rr�rrr��sz@TestSignatureObject.test_signature_on_class.<locals>.CM.__init__)r0r?r@r�r�rrr�rr:�sc@seZdZdd�ZdS)r%cSsdSrrr+rrrr��sr'Nr(rrrrr��s))r3r4r5)rr.r�.)r�rMr_)r9r�r:r9rrr�test_signature_on_classIsD��������z+TestSignatureObject.test_signature_on_classcCsxGdd�d�}Gdd�d|�}Gdd�d|�}Gdd�d|�}|�|�|�d	�|�|�|�d
�|�|�|�d�dS)Nc@seZdZddd�ZdS)z9TestSignatureObject.test_signature_on_subclass.<locals>.Arc_s
t�|�Sr�rr&)r�rrr�rrrr&�szATestSignatureObject.test_signature_on_subclass.<locals>.A.__new__N)r�r0r?r@r&rrrrr��sr�c@seZdZdd�ZdS)z9TestSignatureObject.test_signature_on_subclass.<locals>.BcSsdSrrr+rrrr��szBTestSignatureObject.test_signature_on_subclass.<locals>.B.__init__Nr(rrrrr��sr�c@seZdZddd�ZdS)z9TestSignatureObject.test_signature_on_subclass.<locals>.Crrc_s
t�|�Srr<)r�rr�rr�rrrr&�szATestSignatureObject.test_signature_on_subclass.<locals>.C.__new__N)rrr=rrrrr��sr�c@seZdZdS)z9TestSignatureObject.test_signature_on_subclass.<locals>.DNrurrrrr��sr�r!))�rr.r�)r�r.r�r�r�.))r>r�r�.r�)r9r�r�r�r�rrr�test_signature_on_subclass�s���z.TestSignatureObject.test_signature_on_subclasscCsPddlm}m}|d�}Gdd�d||�}|�|�|�ddtdffdf�dS)	Nr)�Generic�TypeVarr�c@seZdZedd�dd�ZdS)zATestSignatureObject.test_signature_on_generic_subclass.<locals>.ANr2cSsdSrrr&rrrr��szJTestSignatureObject.test_signature_on_generic_subclass.<locals>.A.__init__)r0r?r@r�r�rrrrr��sr�r.r�)�typingr@rAr�rMr�)r9r@rAr�r�rrr�"test_signature_on_generic_subclass�s��z6TestSignatureObject.test_signature_on_generic_subclasscCs�Gdd�d�}|�tt�|��d�Gdd�d|�}|�tt�|��d�Gdd�dt�}Gdd�d|�}|�td��"|�t�|�d�Wd�n1s�0Y|�td��"|�t�|�d�Wd�n1s�0YdS)	Nc@seZdZdS�zCTestSignatureObject.test_signature_on_class_without_init.<locals>.CNrurrrrr��rrr�r�c@seZdZdS�zCTestSignatureObject.test_signature_on_class_without_init.<locals>.DNrurrrrr��rrr�c@seZdZdSrDrurrrrr��rrc@seZdZdSrErurrrrr��rrzcallable.*is not supported)r�rr3rMr_r�r)r9r�r�rrr�$test_signature_on_class_without_init�s0z8TestSignatureObject.test_signature_on_class_without_initcCs�d}|�tt�tj��|�Gdd�dtj�}Gdd�d�}Gdd�d||�}|�tt�|��|�|�tt�|��|�Gdd	�d	|�}|�tt�|��d
�Gdd�dt�}Gd
d�d||d�}|�tt�|��d�dS)Nz=(file, protocol=None, fix_imports=True, buffer_callback=None)c@seZdZdS)z>TestSignatureObject.test_signature_on_builtin_class.<locals>.PNrurrrrr��rrr�c@seZdZdS)zGTestSignatureObject.test_signature_on_builtin_class.<locals>.EmptyTraitNrurrrr�
EmptyTrait�rrrGc@seZdZdS)z?TestSignatureObject.test_signature_on_builtin_class.<locals>.P2Nrurrrr�P2�rrrHc@seZdZdd�ZdS)z?TestSignatureObject.test_signature_on_builtin_class.<locals>.P3cSsdSrr)r9rQrrrr��szHTestSignatureObject.test_signature_on_builtin_class.<locals>.P3.__init__Nr(rrrr�P3�srIr,c@seZdZdd�ZdS)zBTestSignatureObject.test_signature_on_builtin_class.<locals>.MetaPcSsdSrr)r�rrrrrr"�szKTestSignatureObject.test_signature_on_builtin_class.<locals>.MetaP.__call__Nr rrrr�MetaP�srJc@seZdZdS)z?TestSignatureObject.test_signature_on_builtin_class.<locals>.P4Nrurrrr�P4�srKr�z
(foo, bar))r�rr3rMr<r=r_)r9r�r�rGrHrIrJrKrrr�test_signature_on_builtin_class�sz3TestSignatureObject.test_signature_on_builtin_classcCs�Gdd�d�}|�|�|��d�Gdd�d�}|�td��t�|��Wd�n1s^0YGdd�d||�}|�|�|��d�Gd	d
�d
�}dd�|_|�|�|�d�||_|�td
��|�|�Wd�n1s�0YdS)Nc@seZdZdd�ZdS)zCTestSignatureObject.test_signature_on_callable_objects.<locals>.FoocSsdSrrr&rrrr"�szLTestSignatureObject.test_signature_on_callable_objects.<locals>.Foo.__call__Nr rrrrr�srr)c@seZdZdS)zDTestSignatureObject.test_signature_on_callable_objects.<locals>.SpamNrurrrrr�srr�c@seZdZdS)zCTestSignatureObject.test_signature_on_callable_objects.<locals>.BarNrurrrr�Bar�srMc@seZdZdS)zGTestSignatureObject.test_signature_on_callable_objects.<locals>.WrappedNrurrrr�WrappedsrNcSsdSrrr4rrrrwrrzHTestSignatureObject.test_signature_on_callable_objects.<locals>.<lambda>�wrapper loop)r�rMr�r0r3r#r)r9rrrMrNrrr�"test_signature_on_callable_objects�s&�*�
�z6TestSignatureObject.test_signature_on_callable_objectscCs|�|�ddd��d�dS)Nr]cSs|Srrr4rrrrwrrz?TestSignatureObject.test_signature_on_lambdas.<locals>.<lambda>)))rr].r�.)r]r�rRrrr�test_signature_on_lambdas
s�z-TestSignatureObject.test_signature_on_lambdascCsLttd�dd�}|�t�|�dk�|�t�|�dk�|�t�|�tk�|�t�|�tk�ttd�dd�}|�t�|�t�|�k�|�t�|�t�|�k�|�tt�|��tt�|���ttd�dd�}|�t�|�t�|�k�|�t�|�t�|�k�|�	tt�|��tt�|���td�d	d�}|�t�|�t�|�k�|�t�|�t�|�k�|�	tt�|��tt�|���dd�ttd�d
d�}|�t�|�t�|�k�|�t�|�t�|�k�|�	tt�|��tt�|���td�dd�}|�t�|�t�|�k�|�t�|�t�|�k�|�	tt�|��tt�|���ttd�d
d�}|�t�|�t�|�k�|�t�|�t�|�k�|�	tt�|��tt�|���ttd�dd�}|�t�|�t�|�k�|�t�|�t�|�k�|�	tt�|��tt�|���dd�}dd�}|�t�|�t�|�k�|�t�|�t�|�k�|�tt�|��tt�|���dd�dd�}dd�dd�}|�t�|�t�|�k�|�t�|�t�|�k�|�tt�|��tt�|���dd�dd�}dd�dd�}|�t�|�t�|�k�|�t�|�t�|�k�|�tt�|��tt�|���dd�}dd�dd�}|�t�|�t�|�k�|�t�|�t�|�k�|�	tt�|��tt�|���dd�td�dd�}dd�td�dd�}|�t�|�t�|�k�|�t�|�t�|�k�|�tt�|��tt�|���dS)Nr�cSsdSrrr�rrrrrrz8TestSignatureObject.test_signature_equality.<locals>.foor�cSsdSrrr�rrrrrrz8TestSignatureObject.test_signature_equality.<locals>.barcSsdSrrr�rrrrrrrcSsdSrrr�rrrr%rrcSsdSrrr�rrrr+rrr�cSsdSrr�rrrrrr1rrcSsdSrrr�rrrr7rrcSsdSrr�r�rrrrrQ<rrz9TestSignatureObject.test_signature_equality.<locals>.spamcSsdSrrrrrrrBrrcSsdSrr�rr�rrrrrCrrrr4cSsdSrrrrrrrIrrcSsdSrrrTrrrrJrrcSsdSrr��posrr�rrrrrPrrcSsdSrr�rVrr�rrrrrQrrcSsdSrrrUrrrrWrrcSsdSrrrWrrrrXrr�r�c_sdSrr)rVrr�rrr�rrrr^rrc_sdSrr)rVrr�rrr�rrrr_rr)
r�r�r8r3rMr/r	r��hashr5)r9rrrQrrr�test_signature_equalitys�������������z+TestSignatureObject.test_signature_equalitycCstj}tj}dd�}t�|�}||d|j�gd�}|�t|�t|��|�t|�t|jdd���dd�d	d
�}|�t|�tt�|���ifdd�}|�	t
d��tt�|��Wd�n1s�0Yid�d
d�}|�	t
d��tt�|��Wd�n1�s0YdS)NcSsdSrrr4rrrrirrz8TestSignatureObject.test_signature_hashable.<locals>.foorr+rQ�r�rr�cSsdSrrr4rrrrrrrz8TestSignatureObject.test_signature_hashable.<locals>.barcSsdSrrr4rrrrurr�unhashable typecSsdSrrr4rrrryrr)r3r/r-rM�POSITIONAL_OR_KEYWORDr�rYr5r�r�r0)r9r�r�r�foo_sigZ
manual_sigrrrr�test_signature_hashablees"

�,z+TestSignatureObject.test_signature_hashablecCs�ddd�tdd�dd�}|�tt�|��d�ddd�tdd�dd�}|�tt�|��d	�d
d�}|�tt�|��d�tttttfd�dd�}|�tt�|��d
�ddlm	}tt|ttfd�dd�}|�tt�|��d�dS)Nrr�r�r2c[sdSrr�rr�rr�rrrr~sz3TestSignatureObject.test_signature_str.<locals>.fooz*(a: int = 1, *, b, c=None, **kwargs) -> 42c_sdSrr)rr�rrr�rrrr�sz.(a: int = 1, *args, b, c=None, **kwargs) -> 42cSsdSrrrrrrr�sr�cSsdSrrr4rrrr�sz#(a: list[str]) -> tuple[str, float]r)�TuplecSsdSrrr4rrrr�sz#(a: list[str]) -> Tuple[str, float])r)r)
r�r�rr3rMr~r�r�rBra)r9rrarrr�test_signature_str}s&����z&TestSignatureObject.test_signature_strcCs�tj}tj}dd�}t�|�}t|j���}|dj|jd�|d<|j|d�|_	|�
tt�|��d�|�
t||d|j�gd��d�|�
t||d|j�|d	|j�gd��d
�|�
t||d|j�|d	|j
�gd��d�dS)Nc[s||fSrr)�a_por�r�rrrr*�szDTestSignatureObject.test_signature_str_positional_only.<locals>.testrrr+z(a_po, /, *, b, **kwargs)rz(foo, /)rz(foo, /, **bar)z(foo, /, *bar))r3r-r/rMr~r$r�r�r.r0r�rr�VAR_POSITIONAL)r9r�r�r*r�rrrr�"test_signature_str_positional_only�s2
��

��

��z6TestSignatureObject.test_signature_str_positional_onlycCs�dd�dd�}t�|�}|jdd�}|�|jd�|j|jd�}|�|j|j�|jdd�}|�|jd�|�|t�|��dS)Nr�r�cSsdSrrrrrrr*�sz=TestSignatureObject.test_signature_replace_anno.<locals>.testr[)r3rMr�r�r�r�r�r�rrr�test_signature_replace_anno�s
z/TestSignatureObject.test_signature_replace_annocCsRGdd�d�}Gdd�d|�}|�|�|j�d�|�|�|j�|�|j��dS)Nc@s$eZdZd	dd�ddd�dd�ZdS)
zFTestSignatureObject.test_signature_on_mangled_parameters.<locals>.Spamrr�)�	_Spam__p2r)�	_Spam__p1rgcSsdSrr)r9rhrgrrrr�szJTestSignatureObject.test_signature_on_mangled_parameters.<locals>.Spam.fooN)rr�rrrrr�src@seZdZdS)zETestSignatureObject.test_signature_on_mangled_parameters.<locals>.HamNrurrrr�Ham�sri))r)rhrrr�)rgr�rr�.)r�rMr)r9rrirrr�$test_signature_on_mangled_parameters�s�
�z8TestSignatureObject.test_signature_on_mangled_parameterscCs:Gdd�dtj�}dd�dd�}|�|�}|�||�dS)Nc@seZdZdS)zPTestSignatureObject.test_signature_from_callable_python_obj.<locals>.MySignatureNrurrrrr��rrr�rrcSsdSrrr�rrrr�rrzHTestSignatureObject.test_signature_from_callable_python_obj.<locals>.foo�r3r/r��assertIsInstance�r9r�rr^rrr�'test_signature_from_callable_python_obj�s
z;TestSignatureObject.test_signature_from_callable_python_objcCs:Gdd�dtj�}Gdd�d�}|�|�}|�||�dS)Nc@seZdZdS)zKTestSignatureObject.test_signature_from_callable_class.<locals>.MySignatureNrurrrrr��rrr�c@seZdZdS)zCTestSignatureObject.test_signature_from_callable_class.<locals>.fooNrurrrrr�rrrrkrmrrr�"test_signature_from_callable_class�s
z6TestSignatureObject.test_signature_from_callable_classcCs.Gdd�dtj�}|�tj�}|�||�dS)Nc@seZdZdS)zQTestSignatureObject.test_signature_from_callable_builtin_obj.<locals>.MySignatureNrurrrrr��rrr�)r3r/r�r<r=rl)r9r�r�rrr�(test_signature_from_callable_builtin_obj�sz<TestSignatureObject.test_signature_from_callable_builtin_objcCsbt�D]6}t�|�}t|j�}t|�}|�|�|�||�qt�t�}t|j�}|�|t	�dSr)
r)r3rMr~r$rJr/r�r,rKrLrrr�3test_signature_definition_order_preserved_on_kwonly�s





zGTestSignatureObject.test_signature_definition_order_preserved_on_kwonlycCs0t�dd��j}t�dd��j}|�||�dS)NcSsdSrrrrrrrw�rrzITestSignatureObject.test_signater_parameters_is_ordered.<locals>.<lambda>cSsdSrr)r�r�rrrrw�rr)r3rMr$r5)r9Zp1�p2rrr�#test_signater_parameters_is_ordered�sz7TestSignatureObject.test_signater_parameters_is_orderedN)1r0r?r@rVrMr�r�r�r�r�r�r�r�rr�rSrr�r�r�r�r�r�r�r�r�r�rrrr$r;r?rCrFrLrPrQrZr_rbrerfrjrnrorprqrsrrrrr�Ysz
0#�F�

5
Y%CQ
�
�
 S
�
r�c@sPeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	d
d��Z
dd�ZdS)�TestParameterObjectcCsltj}|�|j|jko:|jko:|jko:|jkn�|�t	|j�d�|�dt
|j�v�dS)Nr.)r3r-r/r.r]rd�KEYWORD_ONLYrr�rrj)r9r�rrr�test_signature_parameter_kinds�s���z2TestParameterObject.test_signature_parameter_kindscCs�tjddtjjd�}|�|jd�|�|jd�|�|j|j�|�|j	tjj�|�
td�� tjdddd�Wd�n1s�0Y|�
td��"tjdtjjd�Wd�n1s�0Y|�
t
d	��"tjdtjjd�Wd�n1�s0Y|�
td
��"tjdtjjd�Wd�n1�sB0Y|�
td
��"tjdtjjd�Wd�n1�s�0Y|�
td
��$tjddtjjd�Wd�n1�s�0Y|�
td
��$tjddtjjd�Wd�n1�s0Ytjddtjjd�}|�
td
�� |jtjjd�Wd�n1�sX0Y|�t|��d��|�dt|�v�dS)Nrr]�rrz)value '123' is not a valid Parameter.kindZ123znot a valid parameter namerUr�name must be a strzis not a valid parameter name�$z.azcannot have default valuesrr�z
<Parameterz"a=42")r3r-r.r�rFrr�r�r�rr�rrr0rdr]r�r/rjr2�r9r&rrr�test_signature_parameter_object�sH�.02�2�2�&�&�0z3TestParameterObject.test_signature_parameter_objectc	Csttj}|d|jd�}|�t|�t|d|jd���|�t|�t|d|jdd���|�t|�t|j|jd���dS)Nrrr�r)r3r-r.r�rYr5r�rd)r9r�rrrr�!test_signature_parameter_hashable(
s�

�z5TestParameterObject.test_signature_parameter_hashablecCs�tj}|ddtjjd�}|�||k�|�||k�|�|dk�|�|dk�|�|tk�|�|tk�|�||ddtjjd�k�|�||ddtjjd�k�dS)Nrr�rw)r3r-rur/r8r	)r9r�r&rrr�!test_signature_parameter_equality1
s�
�z5TestParameterObject.test_signature_parameter_equalitycCs�tjddtjjd�}|�||���|�||���|jdd�}|�|jd�|j|jd�}|�||�|jdd�}|�|jd�|�	||�|�
td��|j|jd�}Wd�n1s�0Y|jddd	�}|�|j
d�|�	||�|jd|jd	�}|�|j
|j�|jd|jd�}|�|j|j�|�	||�|�
td
��|j|jd�}Wd�n1�sn0Y|j|jd�}|�||�dS)Nrr�rwr)r�rr�zname is a required attribute)rFrz<value <class 'inspect._empty'> is not a valid Parameter.kindr)r3r-rurUr�r�r�r�rFr5r�rr�rr]r)r9r&rrrrr� test_signature_parameter_replaceA
s<��,�.z4TestParameterObject.test_signature_parameter_replacecCsB|�td��"tjdtjjd�Wd�n1s40YdS)Nrxr)r�r0r3r-r.rRrrr�(test_signature_parameter_positional_onlyi
sz<TestParameterObject.test_signature_parameter_positional_onlycCst|�td��"tjdtjjd�Wd�n1s40Ytjdtjjd�}|�|jtjj�|�|jd�dS)NzYimplicit arguments must be passed as positional or keyword arguments, not positional-onlyz.0rZ	implicit0)	r�rr3r-r.r]r�rrF)r9r�rrr�!test_signature_parameter_implicitm
s�0�z5TestParameterObject.test_signature_parameter_implicitcCsvtjdtjjd�}|�t��d|_Wd�n1s80Y|�t��d|_Wd�n1sh0YdS)NrQrrr)r3r-rur/r8rrrzrrr�%test_signature_parameter_immutabilityz
s
$z9TestParameterObject.test_signature_parameter_immutabilityN)r0r?r@rvr{r|r}r~rrr�r�rrrrrt�s*	(
rtc@s�eZdZedd��Zdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zedd��Zdd�ZdS) �TestSignatureBindcOs,t�|�}|j|i|��}||ji|j��Sr)r3rMrrr�)r�rr�r�r
rrr�call�
s
zTestSignatureBind.callcCs�dd�}|�|�|�d�|�td��|�|d�Wd�n1sH0Y|�td�� |j|ddd�Wd�n1s�0Y|�td��|j|dd�Wd�n1s�0YdS)	NcSsdSrQrrrrrr*�
sz9TestSignatureBind.test_signature_bind_empty.<locals>.testr��too many positional argumentsrr]rR�)got an unexpected keyword argument 'spam'�r�r�r�r0r�rrr�test_signature_bind_empty�
s*.�z+TestSignatureBind.test_signature_bind_emptycCs�dd�}|�|�|�dif�|�|�|d�dif�|�|�|dd�dif�|�|j|dd	�dd
dif�|�|j|ddd	�dd
dif�|�|j|dd�dd
dif�|�|j|dddd	�dd
dif�dS)Nc_s||fSrrr�rrrr*�
sz7TestSignatureBind.test_signature_bind_var.<locals>.testrrr�r�rrrr�rr]r�r�r�r�r�rrr�test_signature_bind_var�
s 
�z)TestSignatureBind.test_signature_bind_varcCsVdd�}|�|�|ddd�d�|�td��"|�|dddd�Wd�n1sT0Y|�td	��|�|d�Wd�n1s�0Y|�td
��|�|�Wd�n1s�0Yddd�}|�|�|ddd�d�|�|�|dd�d
�ddd�}|�|j|ddd�d�|�|j|dd�d�|�|j|dd�d�dS)NcSs
|||fSrrrrrrr*�
sz=TestSignatureBind.test_signature_bind_just_args.<locals>.testrrr�rr�rz missing a required argument: 'b'z missing a required argument: 'a'r]cSs
|||fSrrrrrrr*�
s)rrr]cSs
|||fSrrrrrrr*�
srrR)r]rrr4)r]rr�r)rr]r�)r])rrr�r�r�rrr�test_signature_bind_just_args�
s&0�*�(

z/TestSignatureBind.test_signature_bind_just_argscCs6dd�}|�|�|�d�|�|�|ddd�d�dS)NcWs|Srrr�rrrr*�
szATestSignatureBind.test_signature_bind_varargs_order.<locals>.testrrrr�rr�r�rrr�!test_signature_bind_varargs_order�
sz3TestSignatureBind.test_signature_bind_varargs_orderc
Cs�ddd�}|�|�|ddddd�d�|�|�|dd�d	�|�|j|ddd
�d�|�|j|ddd�d	�|�td
��$|j|ddddd�Wd�n1s�0YdS)Nr�cWs||||fSrr)rr�rrrrrr*�
szDTestSignatureBind.test_signature_bind_args_and_varargs.<locals>.testrrrr�)rrr�)rr�)rrr�rrS)rrr�rrz multiple values for argument 'c'r�)r�r�r�rrr�$test_signature_bind_args_and_varargs�
s
�z6TestSignatureBind.test_signature_bind_args_and_varargscCs<dd�}|�|�|�i�|�|j|ddd�ddd��dS)Nc[s|SrrrXrrrr*�
sz?TestSignatureBind.test_signature_bind_just_kwargs.<locals>.testrr�rrQr�r�rrr�test_signature_bind_just_kwargs�
s
�z1TestSignatureBind.test_signature_bind_just_kwargsc
CsJddd�}|�|�|dd�dddif�|�|j|ddddd�dddddd�f�|�|j|ddddd	�dddddd�f�|�|j|ddddd
�dddddd�f�|�|j|ddddd�dddddd�f�|�|j|dddddd
�dddddd�f�|�|j|ddddd�dddddif�|�|j|dddd�dddif�dS)Nr�c[s||||fSrrr`rrrr*�
szCTestSignatureBind.test_signature_bind_args_and_kwargs.<locals>.testrrrrr�)r�rrrQ)rr�rrQ)r�rrQr)r�rrrQr�rr�)rrr�)r�r�r�rrr�#test_signature_bind_args_and_kwargs�
s.
������
�z5TestSignatureBind.test_signature_bind_args_and_kwargsc	Csdd�}|�td��|�|d�Wd�n1s60Y|�|j|dd�d�dd�dd�}|�td��|�|d�Wd�n1s�0Ydd�}|�|j|dd	d
�d�|�|j|d	dd�d�|�td
��"|j|d	ddd�Wd�n1�s
0Y|�td��|�|dd	�Wd�n1�sF0Y|�td��"|j|dd	d	d
�Wd�n1�s�0Y|�td
��"|j|dd	dd�Wd�n1�s�0Y|�td��|�|d�Wd�n1�s0Ydd�}|�|j|dd	d
�dd	if�|�|j|dd	d�dd	if�|�|j|dd	dd�dd	ddif�|�|j|ddd	d�dd	ddif�|�td�� |j|dd	d�Wd�n1�s�0Y|�|j|dd	ddd�dd	ddd�f�dS)NcSs|Srrr�rrrr*�
sz:TestSignatureBind.test_signature_bind_kwonly.<locals>.testr�rr�cSs|Srr)rrrrrrr*�
sz"missing a required argument: 'bar'cSs||fSrr�rrrrrr*srr:r�)rrr�r])rrrQr)rrQc[s
|||fSrr)rr�binrrrr*sr�rQ)rQrrz"missing a required argument: 'foo')rQr)rr�rQ)r�rQ)r�r0r�r�r�rrr�test_signature_bind_kwonly�
sd�*�*�2�.�2�2�,���0�z,TestSignatureBind.test_signature_bind_kwonlycCs�dd�dd�}t�|�}|jddddd	d
d�}|�t|j���dd
dddd	d
d�ff�|�|jddd	d
d��|�|jd�dS)Nr��rc_sdSrr)rr�rrr�rrrr**sz=TestSignatureBind.test_signature_bind_arguments.<locals>.testr]rrirpr�<)r�rrr��rr])r)r)r�rir�)rrr�)r]r)	r3rMrr�r��	arguments�itemsr�r�r9r*r�r
rrr�test_signature_bind_arguments)s
���z/TestSignatureBind.test_signature_bind_argumentsc
Cs�tj}ddd�dd�}t�|�}t�t|j����}dD]}||j|j	d�||<q8|j|�
�d	�}||_|�|j
|d
ddd
dd�d
ddd
dif�|�|�
|d
d�d
ddddif�|�|j
|d
ddd
d�d
dddd
if�|�td��&|j
|d
ddd
dd�Wd�n1�s0Y|�td��"|j
|d
ddd�Wd�n1�sX0Y|�td�� |j
|d
dd�Wd�n1�s�0YdS)Nr�r�rr:c[s||||||fSrr)rc�b_po�c_porrr�rrrr*:szCTestSignatureBind.test_signature_bind_positional_only.<locals>.test)rcr�r�rr+rrrr��r�zbut was passed as a keywordr])rrr�zparameter is positional only)r�)rcr�)r�r�)r3r-rMr�r�r�r$r�r�r.r�r0r�r�r�r0)r9r�r*r�rrFZnew_sigrrr�#test_signature_bind_positional_only7s.
���62z5TestSignatureBind.test_signature_bind_positional_onlycCsPdd�}t�|�}|�ddd�}|�|jd�|jdddd�}|�|jd�dS)NcSsdSrr)rr9r�rrrr*XszATestSignatureBind.test_signature_bind_with_self_arg.<locals>.testrrr�rr+)r3rMrr�rr�rrr�!test_signature_bind_with_self_argVs
z3TestSignatureBind.test_signature_bind_with_self_argcCs�dd�}t�|�}|�td��|jddd�Wd�n1sB0Ydd�}|�|j|dd�d	d
dif�t�|�}|jdd�}|�|jdd
dii�dS)NcWs||fSrr�rrrrrr*asz?TestSignatureBind.test_signature_bind_vararg_name.<locals>.testz)got an unexpected keyword argument 'args'rrr�c_s||fSrrr�rrrr*jsr�rrr�)r3rMr�r0rr�r�r�r�rrr�test_signature_bind_vararg_name`s
�,
z1TestSignatureBind.test_signature_bind_vararg_namecCsHdd�}|jjd}t�|i�}ttd��}|�|�||�hd��dS)NcSsdd�td�D�S)NcSsh|]}||�qSrr)r�rrrr�	<setcomp>vrrzWTestSignatureBind.test_signature_bind_implicit_arg.<locals>.make_set.<locals>.<setcomp>r�rLrrrr�make_setuszDTestSignatureBind.test_signature_bind_implicit_arg.<locals>.make_setrr�>rrrr�r�)rE�	co_constsr^�FunctionType�iterrr�r�)r9r�Zsetcomp_codeZsetcomp_func�iteratorrrr� test_signature_bind_implicit_argrs
z2TestSignatureBind.test_signature_bind_implicit_argcCsHdd�}t�|�}|jddd�}|�|jddi�|�d|j���dS)Nc[s||�|�fSr)rL)rr�rrrr~szATestSignatureBind.test_signature_bind_posonly_kwargs.<locals>.foo�pos-only�keywordr:r)rr�)r3rMrr�r�r�r�r�)r9rr��resultrrr�"test_signature_bind_posonly_kwargs}s

z4TestSignatureBind.test_signature_bind_posonly_kwargsN)r0r?r@rVr�r�r�r�r�r�r�r�r�r�r�r�r�rr�r�rrrrr��
s"


7


r�c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestBoundArgumentscCsPdd�}t�|��d�}|�td��t|�Wd�n1sB0YdS)NcSsdSrrr4rrrr�rrzITestBoundArguments.test_signature_bound_arguments_unhashable.<locals>.foorr\)r3rMrr�r0rY�r9rr
rrr�)test_signature_bound_arguments_unhashable�sz<TestBoundArguments.test_signature_bound_arguments_unhashablec	CsPdd�}t�|��d�}|�||k�|�||k�|�|tk�|�|tk�t�|��d�}|�||k�|�||k�t�|��d�}|�||k�|�||k�d|jd<|�||k�|�||k�dd�}t�|��d�}|�||k�|�||k�dd�}t�|�}|jddd	�}|jddd
�}|�||k�|�||k�dS)NcSsdSrrr4rrrr�rrzGTestBoundArguments.test_signature_bound_arguments_equality.<locals>.foorrrcSsdSrrrrrrr�rrzGTestBoundArguments.test_signature_bound_arguments_equality.<locals>.barcSsdSrrr�rrrr�rrr�rS)r3rMrr/r8r	r�)	r9rr
Zba2Zba3rZba4r�Zba1rrr�'test_signature_bound_arguments_equality�s2

z:TestBoundArguments.test_signature_bound_arguments_equalityc	Cs�id�dddid�dd�}t�|�}|jdd	id
�}ttjd�D]N}|j|d��.t�t�||��}|�	||�Wd�qB1s�0YqBdS)Nr�rr�rr�c[sdSrrr�rrrr�rrzETestBoundArguments.test_signature_bound_arguments_pickle.<locals>.foorrir�)r�)
r3rMrrr�r�r�r�r�r�)r9rr�r
r�Z
ba_pickledrrr�%test_signature_bound_arguments_pickle�s
z8TestBoundArguments.test_signature_bound_arguments_picklecCsHid�dddid�dd�}t�|�}|jdd	id
�}|�t|�d�dS)Nr�rr�rr�c[sdSrrr�rrrr�rrzCTestBoundArguments.test_signature_bound_arguments_repr.<locals>.foorrir�z <BoundArguments \(a=20,.*\}\}\)>)r3rMrZassertRegexrj�r9rr�r
rrr�#test_signature_bound_arguments_repr�s
z6TestBoundArguments.test_signature_bound_arguments_reprc
CsTdid�dd�dd�}t�|�}|�d�}|��|�t|j���dddd	ifd
ifg�|jddddd
�}|��|�t|j���dddd	ifd
ddifg�dd�}t�|�}|�d�}|��|�t|j���dg�dd�}t�|�}|��}|��|�t|j���g�ddd�}t�|�}|��}|��|�t|j���dg�dS)Nrr�c_sdSrr)rr�rrr�rrrr�rrzMTestBoundArguments.test_signature_bound_arguments_apply_defaults.<locals>.foor)rr)r�r)rrrr�r]ri)r�r�)r�r)r)rir�cSsdSrrr�rrrr�rrcSsdSrrrrrrr�rrrQcSsdSrrr4rrrr�rr)rrQ)r)rQ)	r3rMrZapply_defaultsr�r~r�r�Zbind_partialr�rrr�-test_signature_bound_arguments_apply_defaults�s@

��

�


z@TestBoundArguments.test_signature_bound_arguments_apply_defaultscCs.dd�}t�|��d�}|�t|j�t�dS)NcSsdSrrr4rrrr�rrzMTestBoundArguments.test_signature_bound_arguments_arguments_type.<locals>.foor)r3rMrr�r_r�r�r�rrr�-test_signature_bound_arguments_arguments_type�sz@TestBoundArguments.test_signature_bound_arguments_arguments_typeN)	r0r?r@r�r�r�r�r�r�rrrrr��s
*r�c@s$eZdZdd�Zdd�Zdd�ZdS)�TestSignaturePrivateHelperscCs:tj}|�|d�d�|�|d�d�|�|d�d�dS)Nz($self)r9z($self, obj)z($cls, /, obj)r�)r3Z_signature_get_bound_paramr�)r9�getterrrr�test_signature_get_bound_param�sz:TestSignaturePrivateHelpers.test_signature_get_bound_paramcCs8t�|�\}}}|�||�|�||�|�||�dSr)r3Z"_signature_strip_non_python_syntaxr�)r9�inputZclean_signatureZself_parameterZlast_positional_onlyZcomputed_clean_signatureZcomputed_self_parameterZcomputed_last_positional_onlyrrr�_strip_non_python_syntax�s�z4TestSignaturePrivateHelpers._strip_non_python_syntaxcCst|�dddd�|�dddd�|�dddd�|�dddd�|�d	ddd�|�d
d
dd�|�dddd�dS)NzZ($module, /, path, mode, *, dir_fd=None, effective_ids=False,
       follow_symlinks=True)zO(module, path, mode, *, dir_fd=None, effective_ids=False, follow_symlinks=True)rz($module, word, salt, /)z(module, word, salt)rz(x, y=None, z=None, /)z(x, y=None, z=None)z!(x,
    y=None,
      z = None  )r�)r�rRrrr�&test_signature_strip_non_python_syntaxsT�������zBTestSignaturePrivateHelpers.test_signature_strip_non_python_syntaxN)r0r?r@r�r�r�rrrrr��s
r�c@s4eZdZee�ed�dd���Zdd�Zdd�Z	dS)	�TestSignatureDefinitionsr9c
	Cst�}hd�}||O}dh}||O}hd�}||O}ddh}||O}t�}tt�}t|���D]t\}}	t|	�spq^t|	t�r�||vr�|�|�||vr�q^|j	|d�� |�
t�|	��Wd�q^1s�0Yq^|D]>}|j	|d��|�
|	j�Wd�q�1�s0Yq�dS)N>r�rbrer�varsrg�slice�round>�max�
breakpointr��__build_class__r�r��
__import__)rF)r2r�rrJr��callablerhr_r�r��assertIsNotNoner3rMr�__text_signature__)
r9Zno_signatureZneeds_groupsZneeds_semantic_updateZ
needs_varargsZnot_converted_yetZtypes_with_signaturesrOrFr<rrr�test_builtins_have_signatures1s.
0z6TestSignatureDefinitions.test_builtins_have_signaturescCsVdd�}d|_t�|�}|�|�|�t|�d�d|_t�|�}|�t|�d�dS)Nc_sdSrrr�rrrr�fszNTestSignatureDefinitions.test_python_function_override_signature.<locals>.funcz(($self, a, b=1, *args, c, d=2, **kwargs)z*(self, /, a, b=1, *args, c, d=2, **kwargs)z+($self, a, b=1, /, *args, c, d=2, **kwargs)z*(self, a, b=1, /, *args, c, d=2, **kwargs))r�r3rMr�r�r)r9r�r�rrr�'test_python_function_override_signaturees


z@TestSignatureDefinitions.test_python_function_override_signaturecCsLddlm}Gdd�d|�}|j}|�|d�t�|�}|�t|�d�dS)Nr)�BufferedReaderc@seZdZdS)zVTestSignatureDefinitions.test_base_class_have_text_signature.<locals>.MyBufferedReaderNrurrrr�MyBufferedReaderssr�z&(raw, buffer_size=DEFAULT_BUFFER_SIZE)z(raw, buffer_size=8192))Ztest.ann_module7r�r�r�r3rMr)r9r�r�Ztext_signaturer�rrr�#test_base_class_have_text_signatureps
z<TestSignatureDefinitions.test_base_class_have_text_signatureN)
r0r?r@rr�rSrr�r�r�rrrrr�-s�1r�c@s eZdZdd�Zedd��ZdS)�NTimesUnwrappablecCs||_d|_dSr)r��_next)r9r�rrrr�}szNTimesUnwrappable.__init__cCs2|jdkrtd��|jdur,t|jd�|_|jS)NrzUnwrapped too many timesr)r�r[r�r�rRrrrr#�s


zNTimesUnwrappable.__wrapped__N)r0r?r@r�r9r#rrrrr�|sr�c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�
TestUnwrapcCs.dd�}tjdd�|�}|�t�|�|�dS)NcSs||Srrr�rrrr��sz(TestUnwrap.test_unwrap_one.<locals>.funcr)r�)rk�	lru_cacher�r3�unwrap)r9r�r�rrr�test_unwrap_one�szTestUnwrap.test_unwrap_onecCsPdd�}|}td�D]}t�|�dd��}q|�|j|�|�t�|�|�dS)NcSs||Srrr�rrrr��sz,TestUnwrap.test_unwrap_several.<locals>.funcr]cSsdSrrrrrrr��sz/TestUnwrap.test_unwrap_several.<locals>.wrapper)rrkr#rUr#r�r3r�)r9r�r��__rrr�test_unwrap_several�szTestUnwrap.test_unwrap_severalcCsTdd�}t�|�dd��}t�|�dd��}d|_tj|dd	�d
�}|�||�dS)NcSs||Srrr�rrr�func1�sz#TestUnwrap.test_stop.<locals>.func1cSsdSrrrrrr�func2�sz#TestUnwrap.test_stop.<locals>.func2cSsdSrrrrrrr��sz%TestUnwrap.test_stop.<locals>.wrapperrcSs
t|d�S)N�	stop_herer�r rrrrw�rrz&TestUnwrap.test_stop.<locals>.<lambda>)�stop)rkr#r�r3r�r�)r9r�r�r�Z	unwrappedrrr�	test_stop�s

�zTestUnwrap.test_stopcCs�dd�}||_|�td��t�|�Wd�n1s:0Ydd�}||_||_|�td��t�|�Wd�n1s�0Y|�td��t�|�Wd�n1s�0YdS)NcSsdSrrrrrrr��rrz$TestUnwrap.test_cycle.<locals>.func1rOcSsdSrrrrrrr��rrz$TestUnwrap.test_cycle.<locals>.func2)r#r�rr3r�)r9r�r�rrr�
test_cycle�s((zTestUnwrap.test_cyclecs6dd��d�_G�fdd�d�}|�t�|���dS)NcSsdSrrrrrrr��rrz(TestUnwrap.test_unhashable.<locals>.funccseZdZdZ�ZdS)z%TestUnwrap.test_unhashable.<locals>.CN)r0r?r@�__hash__r#rr�rrr��sr�)r#rr3r�)r9r�rr�r�test_unhashable�szTestUnwrap.test_unhashablecCsJtt��d�}|�td��t�|�Wd�n1s<0YdS)NrrO)r�r�getrecursionlimitr�rr3r�)r9r<rrr�test_recursion_limit�szTestUnwrap.test_recursion_limitN)	r0r?r@r�r�r�r�r�r�rrrrr��sr�c@sDeZdZdd�Zdd�Ze�edud�dd��Zd	d
�Z	dd�Z
dS)
�TestMaincCsVt�d�}tddd�\}}}|����}|�|dd�t�|����|�|d�dS)Nr��-mr3rrr)�	importlib�
import_moduler
�decoderJr�r3r�)r9�module�rcr+�errr�rrr�test_only_source�s
�
zTestMain.test_only_sourcecCsFdd�}d|_|�t��t�|�Wd�n1s80YdS)NcSsdSrrrrrrr�sz)TestMain.test_custom_getattr.<locals>.foor�)r0r/r0r3rMrrrr�test_custom_getattr�szTestMain.test_custom_getattrNz6threads required to test __qualname__ for source filescCsLtddd�\}}}|����}|�|dd�t�t����|�|d�dS)Nr�r3z%concurrent.futures:ThreadPoolExecutorrrr)r
r�rJr�r3r�r)r9r�r+r�r�rrr�test_qualname_source�s�
�zTestMain.test_qualname_sourcecCs:t�d�}tddd�\}}}|����}|�|dg�dS)Nr�r�r3rz#Can't get info for builtin modules.)r�r�rr�rJr�)r9r�r"r+r�r�rrr�
test_builtins�s
�
zTestMain.test_builtinscCsxt�d�}t��}tg|�d�d�d�d�R�\}}}|��}|�|j|�|�|j|�|�|j	|�|�
|d�dS)Nr�r�r3z	--detailsrr)r�r�rZ!optim_args_from_interpreter_flagsr
r�r�r0r��
__cached__r�)r9r�rr�r+r��outputrrr�test_details�s
��zTestMain.test_details)r0r?r@r�r�r�rSrr�r�r�rrrrr��s	
�
	r�c@s0eZdZe�d�Ze�d�Zdd�Zdd�ZdS)�
TestReloadz def foo():
    print("Bla")
    z#def foo():
    print("Oh no!")
    cCsRt�|�}t|��,}|�|���d�|�d��Wd�n1sD0YdSr�)r3r�r�r�r�rJ)r9r�r�Z
inspected_srcr�rrr�assertInspectEquals

�zTestReload.assertInspectEqualc	Cs�td|j��l\}}t�|�}|�||�t|d��}|�|j�Wd�n1sT0Y|�||�Wd�n1s~0YdS)NZ
reload_bugr�)r�
src_beforer�r�r�r�r��	src_after)r9rFr�r�r�rrr�test_getsource_reload	s
*z TestReload.test_getsource_reloadN)	r0r?r@�textwrap�dedentr�r�r�r�rrrrr��s

r��__main__)crr�rfrkr�r3r?r)r�Zos.pathrr<r�r�rr^r�r�r�Z
unittest.mockrc�concurrent.futuresr�ImportErrorZtest.supportrrrrr	Ztest.support.script_helperr
rr*rrXr
r
rZtest.test_importrr�r�r�rr�r�r)r,r�rKr�r-rNrOrSr{rTrUr�r�r�r�rVrYrerzr�r�rr�r�r�r�r�r�r�r�r
rrrZrxr/r�r-r�r�rtr�r�r�r�r�r�r�r�r0�mainrrrr�<module>s�


87U
*lR8zIc@%f?O
<0


Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists