Current File : //opt/imh-python/lib/python3.9/__pycache__/inspect.cpython-39.opt-2.pyc
a

-�h\��@s�dZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlmZddlmZmZe�Zej��D]\ZZeede<q�dZdd�Zd	d
�Z dd�Z!d
d�Z"dd�Z#e$ed��rdd�Z%ndd�Z%e$ed��r.dd�Z&ndd�Z&dd�Z'dd�Z(dd�Z)dd �Z*d!d"�Z+d#d$�Z,d%d&�Z-d'd(�Z.d)d*�Z/d+d,�Z0d-d.�Z1d/d0�Z2d1d2�Z3d3d4�Z4d5d6�Z5d�d7d8�Z6ed9d:�Z7d;d<�Z8d=d>�Z9dd?�d@dA�Z:dBdC�Z;dDdE�Z<dFdG�Z=dHdI�Z>dJdK�Z?dLdM�Z@dNdO�ZAdPdQ�ZBd�dRdS�ZCiZDiZEd�dTdU�ZFGdVdW�dWeG�ZHGdXdY�dYejI�ZJdZd[�ZKd\d]�ZLGd^d_�d_eG�ZMGd`da�da�ZNdbdc�ZOddde�ZPdfdg�ZQdhdi�ZRd�dkdl�ZSedmdn�ZTdodp�ZUedqdr�ZVdsdt�ZWedudv�ZXdwdx�ZYedydz�ZZd{d|�Z[d�d}d~�Z\dd��Z]dddd�iie^d�d��d�d��d�d��d�d��e\fd�d��Z_e^d�d��d�d��d�d��fd�d��Z`d�d��Zad�d��Zbd�d��Zced�d��Zdd�d��Zeed�d��Zfd�d�d��Zgd�d��Zhed�d�efji�Zjd�d�d��Zkd�d�d��Zld�d��Zmd�d�d��Zn�dd�d��Zoep�Zqd�d��Zrd�d��Zsd�d��Ztd�d��Zud�d��Zveqfd�d��Zwd�Zxd�Zyd�Zzd�Z{d�d��Z|d�d��Z}d�Z~d�Zd�Z�d�Z�d�dĄZ�d�dƄZ�e�e�j��Z�e�e�j��Z�e�e�j�d��Z�e�e�e�ej�fZ�d�dɄZ��dd�d˄Z�d�d̈́Z�d�dτZ�d�dфZ�d�dӄZ�d�dՄZ��dd�d؄Z��dd�dڄZ��dd�d܄Z�d�d�dݜd�d߄Z�Gd�d�d�Z�Gd�d�d�Z�Gd�d�d�ej��Z�e�j�Z�e�j�Z�e�j�Z�e�j�Z�e�j�Z�e�d�e�d�e�d�e�d�e�d�iZ�Gd�d�d�Z�Gd�d�d�Z�Gd�d�d�Z�d�d�d�d�Z�d�d��Z�e�d�k�r�e��dS()zKa-Ping Yee <ping@lfw.org>z'Yury Selivanov <yselivanov@sprymix.com>�N)�
attrgetter)�
namedtuple�OrderedDictZCO_icCst|tj�S�N)�
isinstance�types�
ModuleType��object�r�(/opt/imh-python/lib/python3.9/inspect.py�ismodule@sr
cCs
t|t�Sr)r�typer	rrr�isclassIsrcCst|tj�Sr)rr�
MethodTyper	rrr�ismethodQsrcCs:t|�st|�st|�rdSt|�}t|d�o8t|d�S)NF�__get__�__set__�rr�
isfunctionr�hasattr�r
�tprrr�ismethoddescriptor[srcCs8t|�st|�st|�rdSt|�}t|d�p6t|d�S)NFr�
__delete__rrrrr�isdatadescriptorosr�MemberDescriptorTypecCst|tj�Sr)rrrr	rrr�ismemberdescriptorsrcCsdS�NFrr	rrrr�s�GetSetDescriptorTypecCst|tj�Sr)rrrr	rrr�isgetsetdescriptor�sr cCsdSrrr	rrrr �scCst|tj�Sr)rr�FunctionTyper	rrrr�srcCs6t|�r|j}qt�|�}t|�s&dSt|jj|@�Sr)r�__func__�	functools�_unwrap_partialr�bool�__code__�co_flags)�f�flagrrr�_has_code_flag�s
r*cCs
t|t�Sr)r*ZCO_GENERATOR��objrrr�isgeneratorfunction�sr-cCs
t|t�Sr)r*ZCO_COROUTINEr+rrr�iscoroutinefunction�sr.cCs
t|t�Sr)r*ZCO_ASYNC_GENERATORr+rrr�isasyncgenfunction�sr/cCst|tj�Sr)rr�AsyncGeneratorTyper	rrr�
isasyncgen�sr1cCst|tj�Sr)rr�
GeneratorTyper	rrr�isgenerator�sr3cCst|tj�Sr)rr�
CoroutineTyper	rrr�iscoroutine�sr5cCs6t|tj�p4t|tj�r(t|jjt@�p4t|tj	j
�Sr)rrr4r2r%�gi_coder'ZCO_ITERABLE_COROUTINE�collections�abc�	Awaitabler	rrr�isawaitable�s��r:cCst|tj�Sr)rr�
TracebackTyper	rrr�istraceback�sr<cCst|tj�Sr)rr�	FrameTyper	rrr�isframe�sr>cCst|tj�Sr)rr�CodeTyper	rrr�iscodesr@cCst|tj�Sr)rr�BuiltinFunctionTyper	rrr�	isbuiltinsrBcCs t|�pt|�pt|�pt|�Sr)rBrrrr	rrr�	isroutine's���rCcCs�t|t�sdS|jt@rdStt|�tj�s0dSt|d�r>dS|j�	�D]\}}t
|dd�rHdSqH|jD]6}t
|dd�D]$}t
||d�}t
|dd�rzdSqzqjdS)NFT�__abstractmethods__�__isabstractmethod__r)rr�	__flags__�TPFLAGS_IS_ABSTRACT�
issubclassr8�ABCMetar�__dict__�items�getattr�	__bases__)r
�name�value�baserrr�
isabstract.s"



rQc	Cst|�r|ft|�}nd}g}t�}t|�}z:|jD].}|j��D]\}}t|tj	�rD|�
|�qDq6WntyzYn0|D]|}	zt||	�}
|	|vr�t�Wn8ty�|D]}|	|jvr�|j|	}
q�q�Yq�Yn0|r�||
�r�|�
|	|
f�|�
|	�q�|jdd�d�|S)NrcSs|dS)Nrr)Zpairrrr�<lambda>o�zgetmembers.<locals>.<lambda>��key)r�getmro�set�dirrMrJrKrr�DynamicClassAttribute�append�AttributeErrorrL�add�sort)r
�	predicate�mro�results�	processed�namesrP�k�vrUrOrrr�
getmembersFs:




re�	Attributezname kind defining_class objectcCsTt|�}tt|��}tdd�|D��}|f|}||}t|�}|D].}|j��D]\}}t|tj�rR|�	|�qRqDg}	t
�}
|D�]�}d}d}
d}||
v�rzz|dkr�td��t||�}
Wn$ty�}zWYd}~n�d}~00t|
d|�}||v�rzd}d}|D] }t||d�}||
u�r|}�q|D]@}z|�
||�}Wnt�yXY�q*Yn0||
u�r*|}�q*|du�rz|}|D]0}||jv�r~|j|}||v�r�|}�q��q~|du�r�q�|
du�r�|
n|}t|ttjf��r�d}|}nFt|ttjf��rd}|}n*t|t��rd}|}nt|��r,d	}nd
}|	�	t||||��|
�|�q�|	S)Ncss|]}|ttfvr|VqdSr)rr
)�.0�clsrrr�	<genexpr>�rSz'classify_class_attrs.<locals>.<genexpr>rJz)__dict__ is special, don't want the proxy�__objclass__z
static methodzclass method�property�method�data)rVr�tuplerXrJrKrrrYrZrW�	ExceptionrL�__getattr__r[�staticmethod�BuiltinMethodType�classmethod�ClassMethodDescriptorTyperkrCrfr\)rhr_ZmetamroZclass_basesZ	all_basesrbrPrcrd�resultrarNZhomeclsZget_objZdict_obj�excZlast_clsZsrch_clsZsrch_objr,�kindrrr�classify_class_attrsts�












rxcCs|jSr)�__mro__)rhrrrrV�srV��stopcs|�durdd�}n�fdd�}|}t|�|i}t��}||�rx|j}t|�}||vs`t|�|krntd�|���|||<q6|S)NcSs
t|d�S�N�__wrapped__�r�r(rrr�_is_wrapper�szunwrap.<locals>._is_wrappercst|d�o�|�Sr|r~rrzrrr�sz!wrapper loop when unwrapping {!r})�id�sys�getrecursionlimitr}�len�
ValueError�format)�funcr{r�r(�memoZrecursion_limitZid_funcrrzr�unwrap�s

r�cCs|��}t|�t|���Sr)�
expandtabsr��lstrip)�lineZexplinerrr�
indentsizesr�cCsNtj�|j�}|durdS|j�d�dd�D]}t||�}q.t|�sJdS|S)N�.���)r��modules�get�
__module__�__qualname__�splitrLr)r�rhrNrrr�
_findclasssr�c	Cst|�rR|jD]>}|turz
|j}Wnty:YqYn0|dur|SqdSt|�r�|jj}|j}t|�r�t	t	||d�d�|jur�|}n|j
}�n$t|�r�|j}t|�}|dus�t	||�|ur�dSn�t
|��r|j}|j}t|��r|jd||jk�r|}n|j
}n�t|t��rN|j}|j}t|�}|du�sHt	||�|u�r�dSnnt|��sbt|��r�|j}|j}t	||�|u�r�dSt|��r�t	|dd�}t|t��r�||v�r�||SndS|jD]D}zt	||�j}Wnt�y�Y�q�Yn0|du�r�|S�q�dS)Nr"r��	__slots__)rryr
�__doc__r[rr"�__name__�__self__rL�	__class__rr�rBr�rrk�fgetrrrjr�dict)r,rP�docrN�selfrhr��slotsrrr�_finddoc!sn



�


�



r�c	Csdz
|j}WntyYdS0|durNzt|�}WnttfyLYdS0t|t�s\dSt|�Sr)r�r[r��	TypeErrorr�str�cleandoc)r
r�rrr�getdoc_s

r�cCs�z|���d�}Wnty&YdS0tj}|dd�D]*}t|���}|r:t|�|}t||�}q:|rz|d��|d<|tjkr�tdt|��D]}|||d�||<q�|r�|ds�|�	�q�|r�|ds�|�	d�q�d�
|�SdS)N�
�rr�)r�r��UnicodeErrorr��maxsizer�r��min�range�pop�join)r��linesZmarginr�Zcontent�indent�irrrr�rs&
(
r�cCs�t|�r(t|dd�r|jStd�|���t|�rht|d�rZtj�	|j
�}t|dd�rZ|jStd�|���t|�rv|j}t
|�r�|j}t|�r�|j}t|�r�|j}t|�r�|jStd�t|�j���dS)N�__file__z{!r} is a built-in moduler�z{!r} is a built-in classzVmodule, class, method, function, traceback, frame, or code object was expected, got {})r
rLr�r�r�rrr�r�r�r�rr"rr&r<�tb_framer>�f_coder@�co_filenamerr�)r
�modulerrr�getfile�s.
�r�cCsTtj�|�}dd�tj��D�}|��|D]"\}}|�|�r,|d|�Sq,dS)NcSsg|]}t|�|f�qSr)r�)rg�suffixrrr�
<listcomp>�s�z!getmodulename.<locals>.<listcomp>)�os�path�basename�	importlib�	machinery�all_suffixesr]�endswith)r�Zfname�suffixesZneglenr�rrr�
getmodulename�s�
r�cs�t|��tjjdd�}|tjjdd�7}t�fdd�|D��r`tj���dtjj	d�nt�fdd�tjj
D��r~dStj���r��Stt
|��dd�dur��S�tjvr��SdS)Nc3s|]}��|�VqdSr�r��rg�s��filenamerrri�rSz getsourcefile.<locals>.<genexpr>rc3s|]}��|�VqdSrr�r�r�rrri�rS�
__loader__)r�r�r��DEBUG_BYTECODE_SUFFIXES�OPTIMIZED_BYTECODE_SUFFIXES�anyr�r��splitext�SOURCE_SUFFIXES�EXTENSION_SUFFIXES�existsrL�	getmodule�	linecache�cache)r
Zall_bytecode_suffixesrr�r�
getsourcefile�s"
��
r�cCs,|durt|�pt|�}tj�tj�|��Sr)r�r�r�r��normcase�abspath)r
�	_filenamerrr�
getabsfile�sr�c
Cs~t|�r|St|d�r$tj�|j�S|durD|tvrDtj�t|�Szt||�}WntyfYdS0|tvr�tj�t|�Stj�	��
�D]\\}}t|�r�t|d�r�|j}|t�|d�kr�q�|t|<t|�}|j
t|<ttj�|�<q�|tv�rtj�t|�Stjd}t|d��s dSt||j
��rHt||j
�}||u�rH|Stjd}t||j
��rzt||j
�}	|	|u�rz|SdS)Nr�r��__main__r��builtins)r
rr�r�r�r��
modulesbyfiler�r��copyrKr��_filesbymodnamer�r�r��realpathrL)
r
r��file�modnamer�r(�mainZ
mainobjectZbuiltinZ
builtinobjectrrrr��sJ
�

�




r�c@seZdZdS)�ClassFoundExceptionN�r�r�r�rrrrr�sr�c@s(eZdZdd�Zdd�ZeZdd�ZdS)�_ClassFindercCsg|_||_dSr)�stack�qualname)r�r�rrr�__init__sz_ClassFinder.__init__cCs<|j�|j�|j�d�|�|�|j��|j��dS)Nz<locals>)r�rZrN�
generic_visitr��r��noderrr�visit_FunctionDefs


z_ClassFinder.visit_FunctionDefcCsb|j�|j�|jd�|j�krJ|jr4|jdj}n|j}|d8}t|��|�|�|j�	�dS)Nr�rr�)
r�rZrNr�r��decorator_list�linenor�r�r�)r�r��line_numberrrr�visit_ClassDefs
z_ClassFinder.visit_ClassDefN)r�r�r�r�r�Zvisit_AsyncFunctionDefr�rrrrr�
sr�c

Cs�t|�}|rt�|�n$t|�}|�d�r4|�d�s<td��t||�}|rZt�||j	�}n
t�|�}|sptd��t
|�r�|dfSt|��r�|j}d�
|�}t�|�}t|�}z|�|�Wn6ty�}z|jd}	||	fWYd}~Sd}~00td��t|��r
|j}t|��r|j}t|��r*|j}t|��r:|j}t|��r�t|d��sXtd	��|jd
}
t� d�}|
dk�r�z||
}Wnt!�y�td��Yn0|�"|��r��q�|
d
}
�ql||
fStd
��dS)N�<�>zsource code not availablezcould not get source coder�zcould not find class definition�co_firstlinenoz"could not find function definitionr�z>^(\s*def\s)|(\s*async\s+def\s)|(.*(?<!\w)lambda(:|\s))|^(\s*@)zlineno is out of boundszcould not find code object)#r�r��
checkcacher��
startswithr��OSErrorr��getlinesrJr
rr�r��ast�parser��visitr��argsrr"rr&r<r�r>r�r@rr��re�compile�
IndexError�match)
r
r�r�r�r��sourceZtreeZclass_finder�er��lnum�patr�rrr�
findsource)s`













rc	Cs,zt|�\}}Wnttfy(YdS0t|�r�d}|rR|ddd�dkrRd}|t|�krx||��dvrx|d}qR|t|�kr�||dd�dkr�g}|}|t|�kr�||dd�dkr�|�||���|d}q�d�|�S�n>|dk�r(t	||�}|d}|dk�r(||�
�dd�dk�r(t	||�|k�r(||���
�g}|dk�r�|d}||���
�}|dd�dk�r�t	||�|k�r�|g|dd�<|d}|dk�r��q�||���
�}�qr|�r�|d��dk�r�g|dd�<�q�|�r|d��dk�rg|dd�<�q�d�|�SdS)	Nr�z#!r�)r��#rr�r�)rr�r�r
r��striprZr�r�r�r�)r
r�r��startZcomments�endr�Zcommentrrr�getcommentsmsH
  

$�
$rc@seZdZdS)�
EndOfBlockNr�rrrrr�rSrc@seZdZdd�Zdd�ZdS)�BlockFindercCs4d|_d|_d|_d|_d|_d|_d|_d|_dS)NrFr�)r��islambda�started�passline�indecorator�decoratorhasargs�last�	body_col0�r�rrrr��szBlockFinder.__init__cCsr|jsB|jsB|dkrd|_n|dvr8|dkr2d|_d|_d|_�n,|dkrZ|jrVd|_�n|dkrv|jrtd|_d|_n�|tjkr�d|_|d|_|jr�t�|jr�|js�d|_n�|jr�n�|tj	kr�|j
dur�|jr�|d	|_
|jd	|_d|_n�|tjk�r|jd	|_|jdk�rnt�nV|tj
k�rL|j
du�rn|d	|j
k�rn|d|_n"|jdk�rn|tj
tjfv�rnt�dS)
N�@T)�def�class�lambdar�(�)Frr�)rr
r
rr�tokenize�NEWLINErr�INDENTrr��DEDENT�COMMENT�NL)r�r�tokenZsrowcolZerowcolr�rrr�
tokeneater�sL





zBlockFinder.tokeneaterN)r�r�r�r�rrrrrr	�s
r	c	CsTt�}z(t�t|�j�}|D]}|j|�qWnttfyDYn0|d|j�Sr)	r	r�generate_tokens�iter�__next__rr�IndentationErrorr)r�Zblockfinder�tokensZ_tokenrrr�getblock�sr%cCsbt|�}t|�\}}t|�r"|j}t|�s>t|�rF|jjdkrF|dfSt||d��|dfSdS)Nz<module>rr�)	r�rr<r�r
r>r��co_namer%�r
r�r�rrr�getsourcelines�s�
�r(cCst|�\}}d�|�S)Nr�)r(r�r'rrr�	getsource�sr)cCsRg}|jtdd�d�|D]2}|�||jf�||vr|�t||||��q|S)Nr�r�rT)r]rrZrM�walktree)�classes�children�parentr`�crrrr*sr*FcCs�i}g}|D]d}|jr^|jD]>}||vr0g||<|||vrJ||�|�|r||vrqpqq||vr|�|�q|D]}||vrv|�|�qvt||d�Sr)rMrZr*)r+�uniquer,�rootsr.r-rrr�getclasstrees 	
r1�	Argumentszargs, varargs, varkwc	Cs�t|�std�|���|j}|j}|j}t|d|��}t||||��}d}||7}d}|jt@rx|j|}|d}d}|jt	@r�|j|}t
||||�S)Nz{!r} is not a code objectrr�)r@r�r��co_varnames�co_argcount�co_kwonlyargcount�listr'�
CO_VARARGS�CO_VARKEYWORDSr2)	�corb�nargsZnkwargsr��
kwonlyargs�step�varargs�varkwrrr�getargs+s"



r?�ArgSpeczargs varargs keywords defaultscCsDtjdtdd�t|�\}}}}}}}|s.|r6td��t||||�S)Nzhinspect.getargspec() is deprecated since Python 3.0, use inspect.signature() or inspect.getfullargspec()r��
stacklevelzgFunction has keyword-only parameters or annotations, use inspect.signature() API which can support them)�warnings�warn�DeprecationWarning�getfullargspecr�r@)r�r�r=r>�defaultsr;�kwonlydefaults�annrrr�
getargspecHs��rJ�FullArgSpeczGargs, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, annotationsc
Cszzt|ddtd�}Wn.tyB}ztd�|�WYd}~n
d}~00g}d}d}g}g}i}d}	i}
|j|jurz|j|d<|j��D]�}|j}|j	}
|t
ur�|�|
�|j|jur�|	|jf7}	nv|t
ur�|�|
�|j|jur�|	|jf7}	nJ|tur�|
}n<|tu�r(|�|
�|j|ju�r6|j|
|
<n|tu�r6|
}|j|jur�|j||
<q�|
�sXd}
|	�sbd}	t|||||	||
|�S)NF��follow_wrapper_chains�skip_bound_arg�sigclszunsupported callabler�return)�_signature_from_callable�	Signatureror��return_annotation�empty�
parameters�valuesrwrN�_POSITIONAL_ONLYrZ�default�_POSITIONAL_OR_KEYWORD�_VAR_POSITIONAL�
_KEYWORD_ONLY�_VAR_KEYWORD�
annotationrK)r��sig�exr�r=r>�posonlyargsr;�annotationsrG�
kwdefaults�paramrwrNrrrrFis\�
 





�rF�ArgInfozargs varargs keywords localscCs t|j�\}}}t||||j�Sr)r?r�rd�f_locals)�framer�r=r>rrr�getargvalues�srgcCsVt|dd�dkr t|��dd�St|t�rN|jd|fvr>|jS|jd|jSt|�S)Nr��typingztyping.r�r�r�)rL�repr�replacerrr�r�)r]Zbase_modulerrr�formatannotation�s
rkcst|dd���fdd�}|S)Nr�cs
t|��Sr)rk)r]�r�rr�_formatannotation�sz5formatannotationrelativeto.<locals>._formatannotation)rL)r
rmrrlr�formatannotationrelativeto�srnrcCsd|S�N�*r�rNrrrrR�rSrRcCsd|S�N�**rrqrrrrR�rScCsdt|�S�N�=�ri�rOrrrrR�rScCsd|S)Nz -> r)�textrrrrR�rSc
s<ddlm}
|
dtdd����fdd�}g}|rBt|�t|�}t|�D]:\}}||�}|rz||krz||
|||�}|�|�qJ|dur�|�|||���n|r�|�d�|r�|D]2}||�}|r�||vr�||
||�7}|�|�q�|du�r|�|	||���d	d
�|�d}d�v�r8||��d��7}|S)
Nr)rDzc`formatargspec` is deprecated since Python 3.5. Use `signature` and the `Signature` object directlyrrAcs(�|�}|�vr$|d��|�7}|S)Nz: r)�argru�rark�	formatargrr�formatargandannotation�sz-formatargspec.<locals>.formatargandannotationrpr�, rrP)rCrDrEr��	enumeraterZr�)r�r=r>rGr;rHrar{�
formatvarargs�formatvarkw�formatvalueZ
formatreturnsrkrDr|�specsZfirstdefaultr�ry�specZ	kwonlyargrurrzr�
formatargspec�s<�


r�cCsd|SrorrqrrrrRrScCsd|SrrrrqrrrrRrScCsdt|�SrtrvrwrrrrRrScCs�|||fdd�}g}	tt|��D]}
|	�|||
��q |rV|	�||�|||��|rt|	�||�|||��dd�|	�dS)NcSs||�|||�Srr)rN�localsr{r�rrr�convert%sz formatargvalues.<locals>.convertrr}r)r�r�rZr�)r�r=r>r�r{rr�r�r�r�r�rrr�formatargvaluess�
r�cs��fdd�|D�}t|�}|dkr,|d}n>|dkr@dj|�}n*dj|dd��}|dd�=d	�|�|}td
|||rzdnd|dkr�d
nd|f��dS)Ncsg|]}|�vrt|��qSrrv)rgrN�rVrrr�2rSz&_missing_arguments.<locals>.<listcomp>r�rrz	{} and {}z, {} and {}���r}z*%s() missing %i required %s argument%s: %s�
positional�keyword-onlyr�r�)r�r�r�r�)�f_nameZargnames�posrVrb�missingr��tailrr�r�_missing_arguments1s


��r�c
	s�t|�|}t�fdd�|D��}|r:|dk}	d|f}
n2|rTd}	d|t|�f}
nt|�dk}	tt|��}
d}|r�d}||dkr�d	nd||dkr�d	ndf}td
||
|	r�d	nd|||dkr�|s�dndf��dS)
Ncsg|]}|�vr|�qSrr)rgryr�rrr�CrSz_too_many.<locals>.<listcomp>r�zat least %dTz
from %d to %dr�z7 positional argument%s (and %d keyword-only argument%s)r�z5%s() takes %s positional argument%s but %d%s %s givenZwasZwere)r�r�r�)
r�r�Zkwonlyr=ZdefcountZgivenrVZatleastZkwonly_given�pluralr^Z
kwonly_sig�msgrr�r�	_too_manyAs*���r�cOst|�}|\}}}}}}	}
|j}i}t|�rB|jdurB|jf|}t|�}
t|�}|r^t|�nd}t|
|�}t|�D]}|||||<qt|r�t||d��||<t||�}|r�i||<|�	�D]T\}}||vr�|s�t
d||f��||||<q�||v�rt
d||f��|||<q�|
|k�r<|�s<t||||||
|�|
|k�r�|d||�}|D]}||v�rZt||d|��qZt
|||d��D] \}}||v�r�||||<�q�d}|D]6}||v�r�|	�r�||	v�r�|	|||<n|d7}�q�|�rt||d|�|S)Nrz*%s() got an unexpected keyword argument %rz(%s() got multiple values for argument %rTr�F)rFr�rr�r�r�r�rnrWrKr�r�r�r~)r�r��namedr�r�r=r>rGr;rHrIr�Z	arg2valueZnum_posZnum_argsZnum_defaults�nr�Zpossible_kwargs�kwrOZreqryr��kwargrrr�getcallargsVsf
�
�
�



r��ClosureVarsz"nonlocals globals builtins unboundc	Cs�t|�r|j}t|�s$td�|���|j}|jdur:i}ndd�t|j|j�D�}|j	}|�
dtj�}t
|�rt|j}i}i}t�}|jD]`}|dvr�q�z||||<Wq�ty�z||||<Wnty�|�|�Yn0Yq�0q�t||||�S)N�{!r} is not a Python functioncSsi|]\}}||j�qSr)�
cell_contents)rg�varZcellrrr�
<dictcomp>�s�z"getclosurevars.<locals>.<dictcomp>�__builtins__)�None�True�False)rr"rr�r�r&�__closure__�zip�co_freevars�__globals__r�r�rJr
rW�co_names�KeyErrorr\r�)	r��codeZ
nonlocal_varsZ	global_nsZ
builtin_nsZglobal_varsZbuiltin_varsZ
unbound_namesrNrrr�getclosurevars�s<	
�
�r��	Tracebackz+filename lineno function code_context indexr�cCs�t|�r|j}|j}n|j}t|�s2td�|���t|�p@t|�}|dkr�|d|d}zt	|�\}}Wnt
y�d}}Yq�0tdt|t
|�|��}||||�}|d|}nd}}t|||jj||�S)Nz'{!r} is not a frame or traceback objectrr�r)r<�	tb_linenor��f_linenor>r�r�r�r�rr��maxr�r�r�r�r&)rf�contextr�r�rr�r��indexrrr�getframeinfo�s$r�cCs|jSr)r��rfrrr�	getlineno�sr��	FrameInfor�cCs2g}|r.|ft||�}|�t|��|j}q|Sr)r�rZr��f_back)rfr��	framelist�	frameinforrr�getouterframes�sr�cCs4g}|r0|jft||�}|�t|��|j}q|Sr)r�r�rZr��tb_next)�tbr�r�r�rrr�getinnerframes�sr�cCsttd�rt�d�SdS)N�	_getframer�)rr�r�rrrr�currentframe
sr�cCstt�d�|�S)Nr�)r�r�r��r�rrrr�sr�cCstt��d|�S)Nr)r�r��exc_infor�rrr�tracesr�cCstjd�|�S)Nry)rrJr)�klassrrr�_static_getmrosr�cCs6i}zt�|d�}Wnty&Yn0t�||t�S�NrJ)r
�__getattribute__r[r�r��	_sentinel)r,�attrZ
instance_dictrrr�_check_instancesr�c	CsFt|�D]8}tt|��turz|j|WSty>Yq0qtSr)r��_shadowed_dictrr�rJr�)r�r��entryrrr�_check_class'sr�cCs&zt|�Wnty YdS0dS�NFT)r�r�r+rrr�_is_type0s
r�c	Csltjd}t|�D]T}z|�|�d}Wnty:Yq0t|�tjur^|jdkr^|j|us|Sqt	Sr�)
rrJr�rr�rrr�rjr�)r��	dict_attrr�Z
class_dictrrrr�7s
��
r�c	Cst}t|�s>t|�}t|�}|tus2t|�tjurBt||�}n|}t||�}|tur�|tur�tt|�d�tur�tt|�d�tur�|S|tur�|S|tur�|S||ur�tt|��D]8}tt|��tur�z|j	|WSt
y�Yq�0q�|tur�|St|��dS)Nrr)r�r�rr�rrr�r�r�rJr�r[)r,r�rXZinstance_resultr�r�Zklass_resultr�rrr�getattr_staticEs:�
�r��GEN_CREATED�GEN_RUNNING�
GEN_SUSPENDED�
GEN_CLOSEDcCs,|jr
tS|jdurtS|jjdkr(tStS�Nr�)�
gi_runningr��gi_framer��f_lastir�r�)�	generatorrrr�getgeneratorstatezs	
r�cCs:t|�std�|���t|dd�}|dur2|jjSiSdS)Nz{!r} is not a Python generatorr�)r3r�r�rLr�re)r�rfrrr�getgeneratorlocals�sr��CORO_CREATED�CORO_RUNNING�CORO_SUSPENDED�CORO_CLOSEDcCs,|jr
tS|jdurtS|jjdkr(tStSr�)�
cr_runningr��cr_framer�r�r�r�)�	coroutinerrr�getcoroutinestate�s	
r�cCs"t|dd�}|dur|jSiSdS)Nr�)rLre)r�rfrrr�getcoroutinelocals�sr��
from_bytescCs6zt||�}Wnty"YdS0t|t�s2|SdSr)rLr[r�_NonUserDefinedCallables)rhZmethod_name�methrrr�"_signature_get_user_defined_method�s
r�c
Cs�|j}t|���}|jpd}|jp$i}|r2||}z|j|i|��}Wn8ty~}z d�|�}	t|	�|�WYd}~n
d}~00d}
|��D]�\}}z|j	|}
Wnt
y�Ynl0|jtur�|�
|�q�|jtu�r||vr�d}
|j|
d�||<n|�
|j�q�|jtu�r |j|
d�||<|
r�|jtu�rT||jtd�}|||<|�|�q�|jttfv�rp|�|�q�|jtur�|�
|j�q�|j|��d�S)Nrz+partial object {!r} has incorrect argumentsFT)rX�rw�rU)rUrrKr��keywords�bind_partialr�r�r��	argumentsr�rwrWr�rYrjrNr[�move_to_endr\rZrV)�wrapped_sig�partial�
extra_argsZ
old_params�
new_paramsZpartial_argsZpartial_keywordsZbar_r�Ztransform_to_kwonly�
param_namercZ	arg_valueZ	new_paramrrr�_signature_get_partial�sL


 



r�cCslt|j���}|r$|djttfvr,td��|dj}|ttfvrP|dd�}n|t	ur`td��|j
|d�S)Nrzinvalid method signaturer�zinvalid argument typer�)rnrUrVrwr\r[r�rYrWrZrj)r^�paramsrwrrr�_signature_bound_method.s
r�cCs&t|�p$t|�p$t|t�p$|ttfvSr)rBrrr�rr
r+rrr�_signature_is_builtinHs��
�r�cCs�t|�rt|�rdSt|dd�}t|dd�}t|dt�}t|dt�}t|dd�}t|tj�o�t|t�o�|dusxt|t�o�|dus�t|t	�o�t|t	�S)NFr�r&�__defaults__�__kwdefaults__�__annotations__)
�callablerrL�_voidrrr?r�rnr�)r,rNr�rGrbrarrr�_signature_is_functionlikeTs ����r�cCs<|�d�}|dkr|�d�}|�d�}|�d�}|d|�S)N�,r�r�:rur)�find)r�r�Zcposrrr�_signature_get_bound_paramms




r�cCs |s|ddfSd}d}dd�|�d�D�}t|�j}t�|�}d}d}g}|j}	d}
tj}tj}t|�}
|D]�}
|
j	|
j
}}||kr�|dkr�|r�d}qld}|
d7}
ql|d	kr�d}|
d}ql||kr�|d
kr�|
}ql|r�d}||kr�|dks�|	d�|	|�|dkrl|	d
�qld�|�}|||fS)NcSsg|]}|�d��qS)�ascii)�encode)rg�lrrrr��rSz6_signature_strip_non_python_syntax.<locals>.<listcomp>r�Frr�Tr��/�$rr}� r�)r�r!r"rrZr�OP�
ERRORTOKEN�nextr�stringr�)�	signature�self_parameter�last_positional_onlyr�r�Ztoken_streamZ
delayed_commaZskip_next_commarxr\Zcurrent_parameterrr�trr�clean_signaturerrr�"_signature_strip_non_python_syntax�sP





rTc	s^ddl�|j�t|�\}}}d|d}z��|�}WntyLd}Yn0t|�j�shtd�|���|j	d}	g��j
�t��d}i�t|dd�}
|
r�t
j�|
d�}|r�|j�t
j���	�fdd�����	fdd	��
G��
fd
d�d�j���f��������fdd
�	}t|	jj�}t|	jj�}
tj||
dd�}|du�rH�j�n�j�ttt|���D](\}\}}|||�||k�r^�j��q^|	jj�r��j�||	jj���j�t|	jj |	jj!�D]\}}|||��q�|	jj"�r�j#�||	jj"��|du�rPt|dd�}|du}t$|�}|�r6|�s*|�r6��%d�n�dj&�jd�}|�d<|�|j
d�S)Nrzdef fooz: passz"{!r} builtin has invalid signaturer�cs|jdurtd��|jS)Nz'Annotations are not currently supported)r]r�ry)r�)r�rr�
parse_name�s
z&_signature_fromstr.<locals>.parse_namecsxzt|��}Wn:tyHzt|��}WntyBt��Yn0Yn0t|tttttt	d�f�rn��
|�St��dSr)�eval�	NameError�RuntimeErrorrr��int�float�bytesr%rZConstant)r�rO)r��module_dict�sys_module_dictrr�
wrap_value�s
z&_signature_fromstr.<locals>.wrap_valuecs(eZdZ��fdd�Z��fdd�ZdS)z,_signature_fromstr.<locals>.RewriteSymbolicscs\g}|}t|�j�r(|�|j�|j}qt|�j�s:t��|�|j�d�t	|��}�|�S)Nr�)
rrfrZr�rO�Namerr�r��reversed)r�r��ar�rO�r�rrr�visit_Attributesz<_signature_fromstr.<locals>.RewriteSymbolics.visit_Attributecst|j�j�st���|j�Sr)r�ctxZLoadr�r�r�rrr�
visit_Namesz7_signature_fromstr.<locals>.RewriteSymbolics.visit_NameN)r�r�r�rrrrrr�RewriteSymbolicssr cs��|�}|�urdS|rn|turnz���|�}��|�}WntyP�}Yn0|�ur^dS|�urj|n|}���|�|�d��dS�N�rXr])�_emptyr�Zliteral_evalr�rZ)Z	name_nodeZdefault_noderXrN�o)�	Parameterr r�rT�invalidrwrUrrr�ps
z_signature_fromstr.<locals>.p)�	fillvaluer�r��rS)'r��_parameter_clsrr��SyntaxErrorrZModuler�r��bodyrTr
rLr�r�r�rJr�ZNodeTransformerrr�rG�	itertools�zip_longest�POSITIONAL_ONLY�POSITIONAL_OR_KEYWORDr~r6�vararg�VAR_POSITIONAL�KEYWORD_ONLYr�r;�kw_defaultsr��VAR_KEYWORDr
r�rj)rhr,r�rNr
r
rZprogramr�r(�module_namer'r�rGr!r�rNrXZ_selfZself_isboundZ
self_ismoduler)r%r r�rTr&rwrrUrrrr�_signature_fromstr�sn�










r7cCsBt|�std�|���t|dd�}|s4td�|���t||||�S)Nz%{!r} is not a Python builtin function�__text_signature__z#no signature found for builtin {!r})r�r�r�rLr�r7)rhr�rNr�rrr�_signature_from_builtinVs�r9c	CsHd}t|�s(t|�rd}ntd�|���t|dd�}|rFt||||�S|j}|j}|j}|j	}|j
}	|d|�}
|j}||||�}|j}
|j
}|j}|r�t|�}nd}g}||}|	}|
d|�D]<}|r�tnt}|
�|t�}|�||||d��|r�|d8}q�t|
|d��D]L\}}|�r&tnt}|
�|t�}|�||||||d��|�r|d8}�q|jt@�r�|||}|
�|t�}|�|||td��|D]B}t}|du�r�|�|t�}|
�|t�}|�|||t|d���q�|jt@�r2||}|jt@�r
|d7}||}|
�|t�}|�|||td��|||
�d	t�|d
�S)NFTr�r8r)r]rwr�)r]rwrXrP�rS�__validate_parameters__)rr�r�r�rLr7r*r&r4r3�co_posonlyargcountr5r�r�r�r�rWrYr�r#rZr~r'r7rZr[r8r\)rhr�rNZis_duck_functionr�r%Z	func_code�	pos_count�	arg_namesZ
posonly_countr�Zkeyword_only_countZkeyword_onlyrarGrbZpos_default_countrUZnon_default_countZposonly_leftrNrwr]�offsetrXr�rrr�_signature_from_functionfs�

�

�
�

�
�
�r@)rMrNc
Cs�tjt|||d�}t|�s(td�|���t|tj�rN||j	�}|rJt
|�S|S|rvt|dd�d�}t|tj�rv||�Sz
|j}Wnt
y�Yn&0|dur�t|t�s�td�|���|Sz
|j}Wnt
y�Ynn0t|tj��rB||j�}t||d�}t|j���d}|jtju�r|St|j���}	|f|	}
|j|
d	�St|��sVt|��rdt|||d
�St|��r|t|||d
�St|tj��r�||j�}t||�Sd}t|t��r�t t|�d�}|du�r�||�}nld}t |d�}
t |d
�}d|j!v�r�|
}n0d
|j!v�r|}n|
du�r|
}n|du�r*|}|du�r<||�}|du�r@|j"dd�D]<}z
|j#}Wnt
�yvYn0|�rTt$|||�S�qTt|j"v�r@|j%t&j%u�r�|j't&j'u�r�|�(t&�St)d�|���nlt|t*��s@t t|�d�}|du�r@z||�}Wn:t)�y>}z d�|�}t)|�|�WYd}~n
d}~00|du�r\|�rXt
|�S|St|tj+��r|d�|�}t)|��t)d�|���dS)NrLz{!r} is not a callable objectcSs
t|d�S)N�
__signature__r~rrrrrR�rSz*_signature_from_callable.<locals>.<lambda>rzz1unexpected object {!r} in __signature__ attributerrr�)rN�__call__�__new__r�r�z(no signature found for builtin type {!r}zno signature found for {!r}z,no signature found for builtin function {!r}z+callable {!r} is not supported by signature),r#r�rQr�r�r�rrrr"r�r�rAr[rR�_partialmethod�
partialmethodr�r�rnrUrVrwr%r2rjrr�r@r�r9rr�rJryr8r7r�r
rC�
from_callabler�r�rA)r,rMrNrOZ_get_signature_ofr^rEr�Zfirst_wrapped_paramZ
sig_paramsr��callZfactory_method�new�initrPZtext_sigr_r�rrrrQ�s�	�


��


�
�











�
�

 

rQc@seZdZdS)r�Nr�rrrrr�{	sr�c@seZdZdS)r#Nr�rrrrr#	sr#c@s4eZdZdZdZdZdZdZdd�Ze	dd	��Z
d
S)�_ParameterKindrr�r��cCs|jSr)�_name_rrrr�__str__�	sz_ParameterKind.__str__cCst|Sr)�_PARAM_NAME_MAPPINGrrrr�description�	sz_ParameterKind.descriptionN)r�r�r�r/r0r2r3r5rNrkrPrrrrrJ�	srJzpositional-onlyzpositional or keywordzvariadic positionalr�zvariadic keywordc@s�eZdZdZeZeZeZ	e
ZeZ
eZeed�dd�Zdd�Zdd�Zed	d
��Zedd��Zed
d��Zedd��Zeeeed�dd�Zdd�Zdd�Zdd�Zdd�ZdS)r%)�_name�_kind�_default�_annotationr"cCszt|�|_Wn"ty0td|�d���Yn0|turb|jttfvrbd}|�|jj�}t|��||_||_	|tur~td��t
|t�s�d�t|�j
�}t|��|ddkr�|dd���r�|jtkr�d	}|�|jj�}t|��t|_d
�|dd��}|���std�|���||_dS)Nzvalue z is not a valid Parameter.kindz({} parameters cannot have default valuesz*name is a required attribute for Parameterzname must be a str, not a {}rr�r�zLimplicit arguments must be passed as positional or keyword arguments, not {}z
implicit{}z"{!r} is not a valid parameter name)rJrRr�r#rZr\r�rPrSrTrr�rr�r��isdigitrYrW�isidentifierrQ)r�rNrwrXr]r�rrrr��	s6

�
zParameter.__init__cCs t|�|j|jf|j|jd�fS)N�rSrT)rrQrRrSrTrrrr�
__reduce__�	s
��zParameter.__reduce__cCs|d|_|d|_dS)NrSrTrW�r��staterrr�__setstate__�	s
zParameter.__setstate__cCs|jSr)rQrrrrrN�	szParameter.namecCs|jSr)rSrrrrrX�	szParameter.defaultcCs|jSr)rTrrrrr]�	szParameter.annotationcCs|jSr)rRrrrrrw�	szParameter.kind)rNrwr]rXcCsL|tur|j}|tur|j}|tur*|j}|tur8|j}t|�||||d�Sr!)r�rQrRrTrSr)r�rNrwr]rXrrrrj
szParameter.replacecCs�|j}|j}|jtur(d�|t|j��}|jturb|jturPd�|t|j��}nd�|t|j��}|tkrtd|}n|t	kr�d|}|S)Nz{}: {}z{} = {}z{}={}rprs)
rwrQrTr#r�rkrSrirZr\)r�rw�	formattedrrrrN
s
�


zParameter.__str__cCsd�|jj|�S)Nz	<{} "{}">�r�r�r�rrrr�__repr__*
szParameter.__repr__cCst|j|j|j|jf�Sr)�hashrNrwr]rXrrrr�__hash__-
szParameter.__hash__cCsJ||urdSt|t�stS|j|jkoH|j|jkoH|j|jkoH|j|jkS�NT)rr%�NotImplementedrQrRrSrT�r��otherrrr�__eq__0
s

�
�
�zParameter.__eq__N)r�r�r�r�rWr/rYr0rZr2r[r3r\r5r#rTr�rXr[rkrNrXr]rwr�rjrNr^r`rerrrrr%�	s2(



�r%c@sdeZdZdZdd�Zedd��Zedd��Zedd	��Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dS)�BoundArguments)r��
_signature�__weakref__cCs||_||_dSr)r�rg)r�r	r�rrrr�N
szBoundArguments.__init__cCs|jSr)rgrrrrr	R
szBoundArguments.signaturec	Cs|g}|jj��D]b\}}|jttfvr*qtz|j|}WntyPYqtYq0|jtkrh|�	|�q|�
|�qt|�Sr)rgrUrKrwr\r[r�r�rZ�extendrZrn)r�r�r�rcryrrrr�V
s
zBoundArguments.argsc	Cs�i}d}|jj��D]v\}}|sD|jttfvr4d}n||jvrDd}q|sJqz|j|}WntyjYq0|jtkr�|�|�q|||<q|Sr�)	rgrUrKrwr\r[r�r��update)r��kwargsZkwargs_startedr�rcryrrrrkm
s&


zBoundArguments.kwargsc	Cs�|j}g}|jj��D]v\}}z|�|||f�Wqty�|jturT|j}n$|jt	urdd}n|jt
urti}nYq|�||f�Yq0qt|�|_dS)Nr)r�rgrUrKrZr�rXr#rwrZr\r�)r�r�Z
new_argumentsrNrc�valrrr�apply_defaults�
s	


zBoundArguments.apply_defaultscCs2||urdSt|t�stS|j|jko0|j|jkSra)rrfrbr	r�rcrrrre�
s

�zBoundArguments.__eq__cCs|d|_|d|_dS)Nrgr��rgr�rYrrrr[�
s
zBoundArguments.__setstate__cCs|j|jd�S)Nrnrnrrrr�__getstate__�
szBoundArguments.__getstate__cCs@g}|j��D]\}}|�d�||��qd�|jjd�|��S)Nz{}={!r}z	<{} ({})>r})r�rKrZr�r�r�r�)r�r�ryrOrrrr^�
szBoundArguments.__repr__N)r�r�r�r�r�rkr	r�rkrmrer[ror^rrrrrf;
s


rfc@s�eZdZdZeZeZeZ	d+edd�dd�Z
edd��Zed	d
��Z
edd�dd
��Zedd��Zedd��Zeed�dd�Zdd�Zdd�Zdd�Zdd�dd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�ZdS),rR)�_return_annotation�_parametersNTr:cCs�|durt�}n�|r�t�}t}d}|D]�}|j}|j}	||kr\d}
|
�|j|j�}
t|
��n||krld}|}|ttfvr�|jt	ur�|r�d}
t|
��nd}|	|vr�d�|	�}
t|
��|||	<q&ntdd�|D��}t
�|�|_||_
dS)NFz7wrong parameter order: {} parameter before {} parameterz-non-default argument follows default argumentTzduplicate parameter name: {!r}css|]}|j|fVqdSrrq�rgrcrrrrirSz%Signature.__init__.<locals>.<genexpr>)rrWrwrNr�rPr�rYrXr#r�MappingProxyTyperqrp)r�rUrSr;r�Ztop_kindZ
kind_defaultsrcrwrNr�rrrr��
s@��



zSignature.__init__cCstjdtdd�t||�S)Nz_inspect.Signature.from_function() is deprecated since Python 3.5, use Signature.from_callable()rrA)rCrDrEr@�rhr�rrr�
from_functions�zSignature.from_functioncCstjdtdd�t||�S)Nz^inspect.Signature.from_builtin() is deprecated since Python 3.5, use Signature.from_callable()rrA)rCrDrEr9rtrrr�from_builtins�zSignature.from_builtin��follow_wrappedcCst|||d�S)N)rOrM)rQ)rhr,rxrrrrF)s�zSignature.from_callablecCs|jSr)rqrrrrrU/szSignature.parameterscCs|jSr�rprrrrrS3szSignature.return_annotation)rUrScCs0|tur|j��}|tur |j}t|�||d�S)Nr))r�rUrVrpr)r�rUrSrrrrj7s
�zSignature.replacecCs8tdd�|j��D��}dd�|j��D�}|||jfS)Ncss|]}|jtkr|VqdSr)rwr[rrrrrriGs
�z(Signature._hash_basis.<locals>.<genexpr>cSsi|]}|jtkr|j|�qSr)rwr[rNrrrrrr�Js
�z)Signature._hash_basis.<locals>.<dictcomp>)rnrUrVrS)r�r��
kwo_paramsrrr�_hash_basisFszSignature._hash_basiscCs(|��\}}}t|���}t|||f�Sr)r{�	frozensetrVr_)r�r�rzrSrrrr`OszSignature.__hash__cCs*||urdSt|t�stS|��|��kSra)rrRrbr{rcrrrreTs

zSignature.__eq__F�r�cCs�i}t|j���}d}t|�}zt|�}Wn�t�yzt|�}	Wnty`YY�q�Yn�0|	jtkrtY�q�n�|	j|vr�|	jtkr�d}
|
j	|	jd�}
t
|
�d�|	f}Y�q�nP|	jtks�|	jt
ur�|	f}Y�q�n.|r�|	f}Y�q�nd}
|
j	|	jd�}
t
|
�d�Yq0zt|�}	Wnt�y2t
d�d�Yq0|	jttfv�rNt
d�d�|	jtk�r||g}|�|�t|�||	j<�q�|	j|v�r�|	jtk�r�t
dj	|	jd��d�|||	j<qd}t�||�D]�}	|	jtk�r�|	}�q�|	jtk�r�q�|	j}
z|�|
�}WnDt�yD|�s@|	jtk�r@|	jt
u�r@t
dj	|
d��d�Yn(0|	jtk�rdt
dj	|	jd���|||
<�q�|�r�|du�r�|||j<nt
dj	tt|��d���|�||�S)NrzA{arg!r} parameter is positional only, but was passed as a keyword)ryz$missing a required argument: {arg!r}ztoo many positional argumentsz$multiple values for argument {arg!r}z*got an unexpected keyword argument {arg!r})r!rUrVr�
StopIterationrwrZrNrWr�r�r\rXr#r[rirnr-�chainr�r��_bound_arguments_cls)r�r�rkr�r�rUZ
parameters_exZarg_valsZarg_valrcr�rVZkwargs_paramr�rrr�_bind[s�




���
�������

��zSignature._bindcOs|�||�Sr�r��r�r�rkrrr�bind�szSignature.bindcOs|j||dd�S)NTr}r�r�rrrr��szSignature.bind_partialcCs t|�t|j���fd|jifS�Nrp)rrnrqrVrprrrrrX�s�zSignature.__reduce__cCs|d|_dSr�ryrYrrrr[�szSignature.__setstate__cCsd�|jj|�S)Nz<{} {}>r]rrrrr^�szSignature.__repr__c	Cs�g}d}d}|j��D]d}t|�}|j}|tkr6d}n|rH|�d�d}|tkrVd}n|tkrp|rp|�d�d}|�|�q|r�|�d�d�d�	|��}|j
tur�t|j
�}|d�|�7}|S)NFTrrpz({})r}z -> {})
rUrVr�rwrWrZrZr[r�r�rSr#rk)	r�ruZrender_pos_only_separatorZrender_kw_only_separatorrcr\rwZrenderedZannorrrrN�s0




zSignature.__str__)N)r�r�r�r�r%r*rfr�r#rTr�rsrurvrFrkrUrSr�rjr{r`rer�r�r�rXr[r^rNrrrrrR�
s:�6



	rRrwcCstj||d�S)Nrw)rRrF)r,rxrrrr	%sr	c
Cs�ddl}ddl}|��}|jddd�|jddddd	�|��}|j}|�d
�\}}}z|�|�}}	WnPty�}
z8d�	|t
|
�j|
�}t|t
jd�t
�d
�WYd}
~
n
d}
~
00|r�|�d�}|	}|D]}
t||
�}q�|	jt
jv�rtdt
jd�t
�d�|j�r�td�	|��td�	t|	���td�	|	j��||	u�rztd�	t|	j���t|	d��r�td�	|	j��n4zt|�\}}Wnt�y�Yn0td�	|��td�ntt|��dS)Nrr
zCThe object to be analysed. It supports the 'module:qualname' syntax)�helpz-dz	--details�
store_truez9Display info about the module rather than its source code)�actionr�r�zFailed to import {} ({}: {}))r�rr�z#Can't get info for builtin modules.r�z
Target: {}z
Origin: {}z
Cached: {}z
Loader: {}�__path__zSubmodule search path: {}zLine: {}r�)�argparser��ArgumentParser�add_argument�
parse_argsr
�	partition�
import_moduleror�rr��printr��stderr�exitr�rL�builtin_module_namesZdetailsr��
__cached__rir�rr�rr))r�r��parserr��targetZmod_nameZ	has_attrs�attrsr,r�rvr��parts�part�__r�rrr�_main*s\��� 



r�r�)N)N)N)F)N)r�)r�)r�)r�)r�)r)T)T)T)��
__author__r8r��dis�collections.abcr7�enumZimportlib.machineryr�r-r�r�r�r�rrrrCr#r��operatorrrr�globalsZmod_dictZCOMPILER_FLAG_NAMESrKrcrdrGr
rrrrrrr rr*r-r.r/r1r3r5r:r<r>r@rBrCrQrerfrxrVr�r�r�r�r�r�r�r�r�r�r�r�r�ror�ZNodeVisitorr�rrrr	r%r(r)r*r1r2r?r@rJrKrFrdrgrkrnr�r�r�r�r�r�r�r�r�r�r��_fieldsr�r�r�r�r�r�r
r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrBZ_WrapperDescriptor�allZ_MethodWrapperrrJZ_ClassMethodWrapperrAr�r�r�r�r�r�r�rr7r9r@rQr�r#�IntEnumrJr/rWr0rYr2rZr3r[r5r\rOr%rfrRr	r�r�rrrr�<module>sp	




	
,
t$
>
	
/D->




�\


	�
;�
<
5

 


		0

�LH_�8�	j: