a DOg @sdZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlmZddlmZmZeZejD]\ZZeede<qdZddZd d Z d d Z!d dZ"ddZ#e$edrddZ%nddZ%e$edr.ddZ&nddZ&ddZ'ddZ(ddZ)dd Z*d!d"Z+d#d$Z,d%d&Z-d'd(Z.d)d*Z/d+d,Z0d-d.Z1d/d0Z2d1d2Z3d3d4Z4d5d6Z5dd7d8Z6ed9d:Z7d;d<Z8d=d>Z9dd?d@dAZ:dBdCZ;dDdEZdJdKZ?dLdMZ@dNdOZAdPdQZBddRdSZCiZDiZEddTdUZFGdVdWdWeGZHGdXdYdYejIZJdZd[ZKd\d]ZLGd^d_d_eGZMGd`dadaZNdbdcZOdddeZPdfdgZQdhdiZRddkdlZSedmdnZTdodpZUedqdrZVdsdtZWedudvZXdwdxZYedydzZZd{d|Z[dd}d~Z\ddZ]ddddiie^dddddddde\f ddZ_e^ddddddfddZ`ddZaddZbddZceddZdddZeeddZfdddZgddZheddefjiZjdddZkdddZlddZmdddZndddZoepZqddZrddZsddZtddZuddZveqfddZwdZxdZydZzdZ{ddZ|ddZ}dZ~dZdZdZddĄZddƄZeejZeejZeejdZeeeejfZddɄZddd˄Zdd̈́ZddτZddфZddӄZddՄZddd؄ZdddڄZddd܄Zdddݜdd߄ZGdddZGdddZGdddejZejZejZejZejZejZededededediZGdddZGdddZGdddZddddZddZedkredS()zKa-Ping Yee z'Yury Selivanov N) attrgetter) namedtuple OrderedDictZCO_icCs t|tjSN) isinstancetypes ModuleTypeobjectr ,/opt/alt/python39/lib64/python3.9/inspect.pyismodule@sr cCs t|tSr)rtyper r r r isclassIsrcCs t|tjSr)rr MethodTyper r r r ismethodQsrcCs:t|st|st|rdSt|}t|do8t|d S)NF__get____set__rr isfunctionrhasattrr tpr r r ismethoddescriptor[srcCs8t|st|st|rdSt|}t|dp6t|dS)NFr __delete__rrr r r isdatadescriptorosrMemberDescriptorTypecCs t|tjSr)rrrr r r r ismemberdescriptorsrcCsdSNFr r r r r rsGetSetDescriptorTypecCs t|tjSr)rrrr r r r isgetsetdescriptorsr cCsdSrr r r r r r scCs t|tjSr)rr FunctionTyper r r r rs rcCs6t|r|j}qt|}t|s&dSt|jj|@Sr)r__func__ functools_unwrap_partialrbool__code__co_flags)fflagr r r _has_code_flags  r*cCs t|tSr)r*Z CO_GENERATORobjr r r isgeneratorfunctionsr-cCs t|tSr)r*Z CO_COROUTINEr+r r r iscoroutinefunctionsr.cCs t|tSr)r*ZCO_ASYNC_GENERATORr+r r r isasyncgenfunctionsr/cCs t|tjSr)rrAsyncGeneratorTyper r r r isasyncgensr1cCs t|tjSr)rr GeneratorTyper r r r isgeneratorsr3cCs t|tjSr)rr CoroutineTyper r r r iscoroutinesr5cCs6t|tjp4t|tjr(t|jjt@p4t|tj j Sr) rrr4r2r%gi_coder'ZCO_ITERABLE_COROUTINE collectionsabc Awaitabler r r r isawaitables    r:cCs t|tjSr)rr TracebackTyper r r r istracebacksr<cCs t|tjSr)rr FrameTyper r r r isframes r>cCs t|tjSr)rrCodeTyper r r r iscodesr@cCs t|tjSr)rrBuiltinFunctionTyper r r r isbuiltinsrBcCs t|pt|pt|pt|Sr)rBrrrr r r r isroutine'srCcCst|tsdS|jt@rdStt|tjs0dSt|dr>dS|j D]\}}t |ddrHdSqH|j D]6}t |ddD]$}t ||d}t |ddrzdSqzqjdS)NFT__abstractmethods____isabstractmethod__r ) rr __flags__TPFLAGS_IS_ABSTRACT issubclassr8ABCMetar__dict__itemsgetattr __bases__)r namevaluebaser r r isabstract.s"        rQc Cst|r|ft|}nd}g}t}t|}z:|jD].}|jD]\}}t|tj rD| |qDq6Wnt yzYn0|D]|} zt || } | |vrt Wn8t y|D]}| |jvr|j| } qqYqYn0|r|| r| | | f| | q|jddd|S)Nr cSs|dS)Nrr )Zpairr r r ozgetmembers..key)rgetmrosetdirrMrJrKrrDynamicClassAttributeappendAttributeErrorrLaddsort) r Z predicatemroresults processednamesrPkvrUrOr r r getmembersFs:          rd Attributezname kind defining_class objectc CsTt|}tt|}tdd|D}|f|}||}t|}|D].}|jD]\}}t|tjrR| |qRqDg} t } |D]} d} d} d}| | vrzz| dkrt dt || } Wn$t y}z WYd}~nd}~00t | d| } | |vrzd} d}|D] }t || d}|| ur|}q|D]@}z| || }WntyXYq*Yn0|| ur*|}q*|durz|} |D]0}| |jvr~|j| }| |vr|} qq~| durq| dur| n|}t|ttjfrd}|}nFt|ttjfrd}|}n*t|trd}|}nt|r,d }nd }| t| || || | q| S) Ncss|]}|ttfvr|VqdSr)rr ).0clsr r r rSz'classify_class_attrs..rJz)__dict__ is special, don't want the proxy __objclass__z static methodz class methodpropertymethoddata)rVrtuplerXrJrKrrrYrZrW ExceptionrL __getattr__r[ staticmethodBuiltinMethodType classmethodClassMethodDescriptorTyperjrCrer\)rgr^ZmetamroZ class_basesZ all_basesrarPrbrcresultr`rNZhomeclsZget_objZdict_objexcZlast_clsZsrch_clsZsrch_objr,kindr r r classify_class_attrsts                    rwcCs|jSr)__mro__)rgr r r rVsrVstopcs|durdd}n fdd}|}t||i}t}||rx|j}t|}||vs`t||krntd||||<q6|S)NcSs t|dSN __wrapped__rr(r r r _is_wrapperszunwrap.._is_wrappercst|do| Sr{r}r~ryr r rsz!wrapper loop when unwrapping {!r})idsysgetrecursionlimitr|len ValueErrorformat)funcrzrr(memoZrecursion_limitZid_funcr ryr unwraps    rcCs|}t|t|Sr) expandtabsrlstrip)lineZexpliner r r indentsizesrcCsNtj|j}|durdS|jdddD]}t||}q.t|sJdS|S)N.)rmodulesget __module__ __qualname__splitrLr)rrgrNr r r _findclasss rc Cs t|rR|jD]>}|turz |j}Wnty:YqYn0|dur|SqdSt|r|jj}|j}t|rt t ||dd|jur|}n|j }n$t |r|j}t |}|dust |||urdSnt |r|j}|j}t|r|jd||jkr|}n|j }nt|trN|j}|j}t |}|dusHt |||urdSnnt|sbt|r|j}|j}t |||urdSt|rt |dd}t|tr||vr||SndS|jD]D}zt ||j}WntyYqYn0|dur|SqdS)Nr"r __slots__)rrxr __doc__r[rr"__name____self__rL __class__rrrBrrrjfgetrrrirdict)r,rPdocrNselfrgrslotsr r r _finddoc!sn                rc Csdz |j}WntyYdS0|durNz t|}WnttfyLYdS0t|ts\dSt|Sr)rr[r TypeErrorrstrcleandoc)r rr r r getdoc_s    rcCsz|d}Wnty&YdS0tj}|ddD]*}t|}|r:t||}t||}q:|rz|d|d<|tjkrtdt|D]}|||d||<q|r|ds| q|r|ds| dqd |SdS)N rr) rr UnicodeErrorrmaxsizerrminrangepopjoin)rlinesZmarginrZcontentindentir r r rrs&     (    rcCst|r(t|ddr|jStd|t|rht|drZtj |j }t|ddrZ|jStd|t |rv|j }t |r|j}t|r|j}t|r|j}t|r|jStdt|jdS)N__file__z{!r} is a built-in modulerz{!r} is a built-in classzVmodule, class, method, function, traceback, frame, or code object was expected, got {})r rLrrrrrrrrrrr"rr&r<tb_framer>f_coder@ co_filenamerr)r moduler r r getfiles.   rcCsTtj|}ddtjD}||D]"\}}||r,|d|Sq,dS)NcSsg|]}t| |fqSr )r)rfsuffixr r r sz!getmodulename..)ospathbasename importlib machinery all_suffixesr]endswith)rZfnamesuffixesZneglenrr r r getmodulenames   rcst|tjjdd}|tjjdd7}tfdd|Dr`tjdtjj dntfddtjj Dr~dStj rSt t |dddurStjvrSdS)Nc3s|]}|VqdSrrrfsfilenamer r rhrSz getsourcefile..rc3s|]}|VqdSrrrrr r rhrS __loader__)rrrDEBUG_BYTECODE_SUFFIXESOPTIMIZED_BYTECODE_SUFFIXESanyrrsplitextSOURCE_SUFFIXESEXTENSION_SUFFIXESexistsrL getmodule linecachecache)r Zall_bytecode_suffixesr rr getsourcefiles"    rcCs,|durt|pt|}tjtj|Sr)rrrrnormcaseabspath)r _filenamer r r getabsfilesrc Cst|r |St|dr$tj|jS|durD|tvrDtjt|Szt||}Wntt fyjYdS0|tvrtjt|Stj D]\\}}t|rt|dr|j }|t |dkrq|t |<t|}|jt|<ttj|<q|tvr tjt|Stjd}t|ds$dSt||jrLt||j}||urL|Stjd}t||jr~t||j} | |ur~|SdS)Nrr__main__rbuiltins)r rrrrr modulesbyfilerrFileNotFoundErrorcopyrKr_filesbymodnamerrrrealpathrL) r rfilemodnamerr(mainZ mainobjectZbuiltinZ builtinobjectr r r rsJ           rc@s eZdZdS)ClassFoundExceptionNrrrr r r r rsrc@s(eZdZddZddZeZddZdS) _ClassFindercCsg|_||_dSr)stackqualname)rrr r r __init__ sz_ClassFinder.__init__cCs<|j|j|jd|||j|jdS)Nz)rrZrN generic_visitrrnoder r r visit_FunctionDefs    z_ClassFinder.visit_FunctionDefcCsb|j|j|jd|jkrJ|jr4|jdj}n|j}|d8}t||||j dS)Nrrr) rrZrNrrdecorator_listlinenorrr)rr line_numberr r r visit_ClassDefs z_ClassFinder.visit_ClassDefN)rrrrrZvisit_AsyncFunctionDefrr r r r r src Cst|}|rt|n$t|}|dr4|dszsource code not availablezcould not get source coderzcould not find class definitionco_firstlinenoz"could not find function definitionrz>^(\s*def\s)|(\s*async\s+def\s)|(.*(?rr@rrrecompile IndexErrormatch) r rrrrsourceZtreeZ class_findererlnumZpatrr r r findsource)s`                   rc Cs,zt|\}}Wnttfy(YdS0t|rd}|rR|ddddkrRd}|t|krx||dvrx|d}qR|t|kr||dddkrg}|}|t|kr||dddkr||||d}qd|Sn>|dkr(t ||}|d}|dkr(|| dddkr(t |||kr(|| g}|dkr|d}|| }|dddkrt |||kr|g|dd<|d}|dkrq|| }qr|r|ddkrg|dd<q|r|ddkrg|dd<qd|SdS) Nrz#!r)r#rrr) rrrr rstriprZrrrr)r rrstartZcommentsendrZcommentr r r getcommentsmsH      $ $rc@s eZdZdS) EndOfBlockNrr r r r rrSrc@seZdZddZddZdS) BlockFindercCs4d|_d|_d|_d|_d|_d|_d|_d|_dS)NrFr)rislambdastartedpassline indecoratordecoratorhasargslast body_col0rr r r rszBlockFinder.__init__cCsr|jsB|jsB|dkrd|_n|dvr8|dkr2d|_d|_d|_n,|dkrZ|jrVd|_n|dkrv|jrtd|_d|_n|tjkrd|_|d|_|jrt|jr|jsd|_n|jrn|tj kr|j dur|jr|d |_ |j d |_ d|_n|tj kr|j d |_ |j dkrntnV|tj krL|j durn|d |j krn|d|_n"|j dkrn|tj tjfvrntdS) N@T)defclasslambdar()Frr)r r r r r tokenizeNEWLINErrINDENTrrDEDENTCOMMENTNL)rrtokenZsrowcolZerowcolrr r r tokeneatersL              zBlockFinder.tokeneaterN)rrrrrr r r r rs rc CsTt}z(tt|j}|D]}|j|qWnttfyDYn0|d|jSr) rrgenerate_tokensiter__next__rrIndentationErrorr)rZ blockfindertokensZ_tokenr r r getblocksr$cCsbt|}t|\}}t|r"|j}t|s>t|rF|jjdkrF|dfSt||d|dfSdS)Nzrr) rrr<rr r>rco_namer$r rrr r r getsourceliness  r'cCst|\}}d|S)Nr)r'rr&r r r getsources r(cCsRg}|jtddd|D]2}|||jf||vr|t||||q|S)NrrrT)r]rrZrMwalktree)classeschildrenparentr_cr r r r)sr)FcCsi}g}|D]d}|jr^|jD]>}||vr0g||<|||vrJ||||r||vrqpqq ||vr ||q |D]}||vrv||qvt||dSr)rMrZr))r*uniquer+rootsr-r,r r r getclasstrees     r0 Argumentszargs, varargs, varkwc Cst|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@rr co_varnames co_argcountco_kwonlyargcountlistr' CO_VARARGSCO_VARKEYWORDSr1) coranargsZnkwargsr kwonlyargsstepvarargsvarkwr r r getargs+s"    r>ArgSpeczargs varargs keywords defaultscCsDtjdtddt|\}}}}}}}|s.|r6tdt||||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)warningswarnDeprecationWarninggetfullargspecrr?)rrr<r=defaultsr:kwonlydefaultsannr r r getargspecHsrI 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<|jD]} | j} | j } | t ur| | | j | jur| | j f7} nv| t ur| | | j | jur| | j f7} nJ| tur| }n<| tur(| | | j | jur6| j | | <n| tur6| }| j| jur| j|| <q| sXd} | sbd} t||||| || |S)NFfollow_wrapper_chainsskip_bound_argsigclszunsupported callabler return)_signature_from_callable Signaturernrreturn_annotationempty parametersvaluesrvrN_POSITIONAL_ONLYrZdefault_POSITIONAL_OR_KEYWORD_VAR_POSITIONAL _KEYWORD_ONLY _VAR_KEYWORD annotationrJ)rsigexrr<r= posonlyargsr: annotationsrF kwdefaultsparamrvrNr r r rEis\              rEArgInfozargs varargs keywords localscCs t|j\}}}t||||jSr)r>rrcf_locals)framerr<r=r r r getargvaluessrfcCsjt|dddkr t|ddSt|tjr4t|St|trb|jd|fvrR|j S|jd|j St|S)Nrtypingztyping.rrr) rLreprreplacerr GenericAliasrrrr)r\Z base_moduler r r formatannotations  rkcst|ddfdd}|S)Nrcs t|Sr)rk)r\rr r _formatannotationsz5formatannotationrelativeto.._formatannotation)rL)r rmr rlr formatannotationrelativetos  rnr cCsd|SN*r rNr r r rRrSrRcCsd|SN**r rqr r r rRrScCs dt|SN=rhrOr r r rRrScCsd|S)Nz -> r )textr r r rRrSc s<ddlm} | dtddfdd}g}|rBt|t|}t|D]:\}}||}|rz||krz|| |||}||qJ|dur||||n|r|d|r|D]2}||}|r||vr|| ||7}||q|dur|| ||d d |d }d vr8|| d 7}|S) Nr)rCzc`formatargspec` is deprecated since Python 3.5. Use `signature` and the `Signature` object directlyrr@cs(|}|vr$|d|7}|S)Nz: r )argrtr`rk formatargr r formatargandannotationsz-formatargspec..formatargandannotationrpr, rrO)rBrCrDr enumeraterZr)rr<r=rFr:rGr`r{ formatvarargs formatvarkw formatvalueZ formatreturnsrkrCr|specsZ firstdefaultrryspecZ kwonlyargrtr rzr formatargspecs<        rcCsd|Sror rqr r r rRrScCsd|Srrr rqr r r rRrScCs dt|Srtrvrwr r r rR rSc Cs|||fdd}g} tt|D]} | ||| q |rV| ||||||rt| |||||dd| dS)NcSs|||||Srr )rNlocalsr{rr r r convert'sz formatargvalues..convertrr}r)rrrZr) rr<r=rr{rrrrrrr r r formatargvaluess  rcsfdd|D}t|}|dkr,|d}n>|dkr@dj|}n*dj|dd}|dd=d ||}td |||rzd nd |dkrd nd|fdS)Ncsg|]}|vrt|qSr rv)rfrNrUr r r4rSz&_missing_arguments..rrrz {} and {}z , {} and {}r}z*%s() missing %i required %s argument%s: %s positional keyword-onlyrr)rrrr)f_nameZargnamesposrUramissingrtailr rr _missing_arguments3s    rc st||}tfdd|D}|r:|dk} d|f} n2|rTd} d|t|f} nt|dk} tt|} d} |rd} | |dkrd nd||dkrd ndf} td || | rd nd|| |dkr|sd nd fdS) Ncsg|]}|vr|qSr r )rfryrr r rErSz_too_many..rz at least %dTz from %d to %drz7 positional argument%s (and %d keyword-only argument%s)rz5%s() takes %s positional argument%s but %d%s %s givenZwasZwere)rrr) rrZkwonlyr<ZdefcountZgivenrUZatleastZ kwonly_givenZpluralr]Z kwonly_sigmsgr rr _too_manyCs*    rcOst|}|\}}}}}} } |j} i} t|rB|jdurB|jf|}t|} t|}|r^t|nd}t| |}t|D]}||| ||<qt|rt||d| |<t||}|ri| |<| D]T\}}||vr|st d| |f|| ||<q|| vrt d| |f|| |<q| |kr<|ssz"getclosurevars.. __builtins__)NoneTrueFalse)rr"rrrr& __closure__zip co_freevars __globals__rrrJr rWco_namesKeyErrorr\r) rcodeZ nonlocal_varsZ global_nsZ builtin_nsZ global_varsZ builtin_varsZ unbound_namesrNr r r getclosurevarss<      r Tracebackz+filename lineno function code_context indexrcCst|r|j}|j}n|j}t|s2td|t|p@t|}|dkr|d|d}zt |\}}Wnt yd}}Yq0t dt |t ||}||||}|d|}nd}}t|||jj||S)Nz'{!r} is not a frame or traceback objectrrr)r< tb_linenorf_linenor>rrrrrrmaxrrrrr%)recontextrrrrrindexr r r getframeinfos$ rcCs|jSr)rrer r r getlinenosr FrameInforcCs2g}|r.|ft||}|t||j}q|Sr)rrZrf_back)rer framelist frameinfor r r getouterframess rcCs4g}|r0|jft||}|t||j}q|Sr)rrrZrtb_next)tbrrrr r r getinnerframess rcCsttdrtdSdS)N _getframer)rrrr r r r currentframe srcCsttd|S)Nr)rrrrr r r rsrcCsttd|S)Nr)rrexc_inforr r r tracesrcCstjd|S)Nrx)rrJr)klassr r r _static_getmrosrcCs6i}zt|d}Wnty&Yn0t||tSNrJ)r __getattribute__r[rr _sentinel)r,attrZ instance_dictr r r _check_instance s  rc CsFt|D]8}tt|turz|j|WSty>Yq0qtSr)r_shadowed_dictrrrJr)rrentryr r r _check_class)s  rcCs&z t|Wnty YdS0dSNFT)rrr+r r r _is_type2s   rc Csltjd}t|D]T}z||d}Wnty:Yq0t|tjur^|jdkr^|j|us|Sqt Sr) rrJrrrrrrrir)r dict_attrrZ class_dictr r r r9s    rc Cst}t|s>t|}t|}|tus2t|tjurBt||}n|}t||}|tur|turtt|dturtt|dtur|S|tur|S|tur|S||urtt|D]8}tt|turz|j |WSt yYq0q|tur|St |dS)Nrr) rrrrrrrrrrJrr[)r,rrWZinstance_resultrrZ klass_resultrr r r getattr_staticGs:     r GEN_CREATED GEN_RUNNING GEN_SUSPENDED GEN_CLOSEDcCs,|jr tS|jdurtS|jjdkr(tStSNr) gi_runningrgi_framerf_lastirr) generatorr r r getgeneratorstate|s   rcCs:t|std|t|dd}|dur2|jjSiSdS)Nz{!r} is not a Python generatorr)r3rrrLrrd)rrer r r getgeneratorlocalss  r CORO_CREATED CORO_RUNNINGCORO_SUSPENDED CORO_CLOSEDcCs,|jr tS|jdurtS|jjdkr(tStSr) cr_runningrcr_framerrrr) coroutiner r r getcoroutinestates   rcCs"t|dd}|dur|jSiSdS)Nr)rLrd)rrer r r getcoroutinelocalss r from_bytescCs6zt||}Wnty"YdS0t|ts2|SdSr)rLr[r_NonUserDefinedCallables)rgZ method_nameZmethr r r "_signature_get_user_defined_methods   rc Cs|j}t|}|jpd}|jp$i}|r2||}z|j|i|}Wn8ty~}z d|} t| |WYd}~n d}~00d} |D]\} } z|j | } Wnt yYnl0| j t ur| | q| j tur| |vrd} | j| d|| <n| | jq| j tur | j| d|| <| r| j turT|| jtd}||| <|| q| j ttfvrp|| q| j tur| | jq|j|dS)Nr z+partial object {!r} has incorrect argumentsFT)rWrvrT)rTrrKrkeywords bind_partialrrr argumentsrrvrVrrXrirNrZ move_to_endr[rYrU) wrapped_sigpartialZ extra_argsZ old_params new_paramsZ partial_argsZpartial_keywordsZbar^rZtransform_to_kwonly param_namerbZ arg_valueZ new_paramr r r _signature_get_partialsL                rcCslt|j}|r$|djttfvr,td|dj}|ttfvrP|dd}n|t ur`td|j |dS)Nrzinvalid method signaturerzinvalid argument typer) rmrTrUrvr[rZrrXrVrYri)r]paramsrvr r r _signature_bound_method0s  rcCs&t|p$t|p$t|tp$|ttfvSr)rBrrrrr r+r r r _signature_is_builtinJs rcCst|rt|rdSt|dd}t|dd}t|dt}t|dt}t|dd}t|tjot|to|dusxt|to|dust|t ot|t S)NFrr& __defaults____kwdefaults____annotations__) callablerrL_voidrrr?rrmr)r,rNrrFrar`r r r _signature_is_functionlikeVs       rcCs<|d}|dkr|d}|d}|d}|d|S)N,rr:rur)find)rrZcposr r r _signature_get_bound_paramos    rcCs |s|ddfSd}d}dd|dD}t|j}t|}d}d}g}|j} d} tj} tj} t|} |D]} | j | j }}|| kr|dkr|rd}qld}| d7} ql|d krd}| d}ql|| kr|d kr| }ql|rd}|| kr|d ks| d | ||dkrl| d qld |}|||fS)NcSsg|]}|dqS)ascii)encode)rflr r r rrSz6_signature_strip_non_python_syntax..rFrrTr/$rr} r) rr r!rrZrOP ERRORTOKENnextrstringr) signatureself_parameterlast_positional_onlyrrZ token_streamZ delayed_commaZskip_next_commarxr\Zcurrent_parameterrrtrrclean_signaturer r r "_signature_strip_non_python_syntaxsP      r Tc s^ddl|jt|\}}}d|d}z|}WntyLd}Yn0t|jshtd||j d} gj t d}it |dd} | rt j| d}|r|jt j fdd fdd  G fd d d jffd d } t| jj} t| jj} tj| | dd}|durHjnjttt|D](\}\}}| ||||kr^jq^| jjrj| | jjjt| jj | jj!D]\}}| ||q| jj"rj#| | jj"|durPt |dd}|du}t$|}|r6|s*|r6%dndj&jd} | d<||j dS)Nrzdef fooz: passz"{!r} builtin has invalid signaturercs|jdurtd|jS)Nz'Annotations are not currently supported)r\rry)r)rr r parse_names z&_signature_fromstr..parse_namec sxzt|}Wn:tyHzt|}WntyBtYn0Yn0t|tttttt dfrn |StdSr) eval NameError RuntimeErrorrrintfloatbytesr%rZConstant)rrO)r module_dictsys_module_dictr r wrap_values   z&_signature_fromstr..wrap_valuecs(eZdZfddZfddZdS)z,_signature_fromstr..RewriteSymbolicscs\g}|}t|jr(||j|j}qt|js:t||jdt |}|S)Nr) rrerZrrONamerrrreversed)rrarrOrrr r visit_Attributes    z<_signature_fromstr..RewriteSymbolics.visit_Attributecst|jjst|jSr)rctxZLoadrrrrr r visit_Namesz7_signature_fromstr..RewriteSymbolics.visit_NameN)rrrrrr rr r RewriteSymbolicss rcs|}|urdS|rn|turnz|}|}WntyP}Yn0|ur^dS|urj|n|}||ddSNrWr\)_emptyrZ literal_evalrrZ)Z name_nodeZ default_noderWrNo) ParameterrrrSinvalidrvrTr r r ps    z_signature_fromstr..p) fillvaluerrrR)'r_parameter_clsr r SyntaxErrorrZModulerrbodyrSr rLrrrrJrZNodeTransformerrrrF itertools zip_longestPOSITIONAL_ONLYPOSITIONAL_OR_KEYWORDr~r5varargVAR_POSITIONAL KEYWORD_ONLYrr: kw_defaultsr VAR_KEYWORDr rri)rgr,rrMr rrZprogramrr(Z module_namer#rrFr rrNrWZ_selfZ self_isboundZ self_ismoduler ) r!rrrSr"rvrrTr rrr _signature_fromstrsn                    r2cCsBt|std|t|dd}|s4td|t||||S)Nz%{!r} is not a Python builtin function__text_signature__z#no signature found for builtin {!r})rrrrLrr2)rgrrMrr r r _signature_from_builtinXs r4c CsHd}t|s(t|rd}ntd|t|dd}|rFt||||S|j}|j}|j}|j }|j } |d|} |j } |||| } |j } |j }|j}|rt|}nd}g}||}| }| d|D]<}|rtnt}| |t}|||||d|r|d8}qt| |dD]L\}}|r&tnt}| |t}|||||||d|r|d8}q|jt@r||| }| |t}||||td| D]B}t}|dur||t}| |t}||||t|dq|jt@r2|| }|jt@r |d7}||}| |t}||||td||| d t|d S) NFTrr3r)r\rvr)r\rvrWrOrR__validate_parameters__)rrrrrLr2r&r&r3r2co_posonlyargcountr4rrrrrVrXrrrZr~r'r6rYrZr7r[)rgrrMZis_duck_functionrr!Z func_code pos_count arg_namesZ posonly_countrZkeyword_only_countZ keyword_onlyr`rFraZpos_default_countrTZnon_default_countZ posonly_leftrNrvr\offsetrWrr r r _signature_from_functionhs                        r;)rLrMc Cstjt|||d}t|s(td|t|tjrN||j }|rJt |S|S|rvt |ddd}t|tjrv||Sz |j }Wnt yYn&0|durt|tstd||Sz |j}Wnt yYnn0t|tjrB||j}t||d}t|jd}|jtjur|St|j} |f| } |j| d St|sVt|rdt|||d St|r|t|||d St|tjr||j}t||Sd}t|trt t|d } | dur|| }nld} t |d } t |d }d |j!vr| } n0d |j!vr |} n| dur| } n|dur*|} | dur<|| }|dur@|j"ddD]<}z |j#}Wnt yvYn0|rTt$|||SqTt|j"vr@|j%t&j%ur|j't&j'ur|(t&St)d|nlt|t*s@t t|d } | dur@z || }Wn:t)y>}z d|}t)||WYd}~n d}~00|dur\|rXt |S|St|tj+r|d|}t)|t)d|dS)NrKz{!r} is not a callable objectcSs t|dS)N __signature__r}r~r r r rRrSz*_signature_from_callable..ryz1unexpected object {!r} in __signature__ attributerrr)rM__call____new__rrz(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#rrPrrrrrrr"rrr<r[rQ_partialmethod partialmethodrrrmrTrUrvr!r.rirrr;rr4rrrJrxr3r2rr r> from_callablerrrA)r,rLrMrNZ_get_signature_ofr]r@rZfirst_wrapped_paramZ sig_paramsrZcallZfactory_methodnewinitrPZtext_sigr^rr r r rPs                                      rPc@s eZdZdS)rNrr r r r r} src@s eZdZdS)rNrr r r r r src@s4eZdZdZdZdZdZdZddZe dd Z d S) _ParameterKindrrrcCs|jSr)_name_rr r r __str__ sz_ParameterKind.__str__cCst|Sr)_PARAM_NAME_MAPPINGrr r r description sz_ParameterKind.descriptionN) rrrr+r,r.r/r1rHrjrJr r r r rD srDzpositional-onlyzpositional or keywordzvariadic positionalrzvariadic keywordc@seZdZdZeZeZeZ e Z e Z eZeedddZddZddZed d Zed d Zed dZeddZeeeedddZddZddZddZddZdS)r!)_name_kind_default _annotationrcCszt||_Wn"ty0td|dYn0|turb|jttfvrbd}||jj}t|||_||_ |tur~tdt |t sdt |j }t||ddkr|ddr|jtkrd }||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 {}rrrzLimplicit arguments must be passed as positional or keyword arguments, not {}z implicit{}z"{!r} is not a valid parameter name)rDrLrrrYr[rrJrMrNrrrrrisdigitrXrV isidentifierrK)rrNrvrWr\rr r r r s6    zParameter.__init__cCs t||j|jf|j|jdfS)NrMrN)rrKrLrMrNrr r r __reduce__ s  zParameter.__reduce__cCs|d|_|d|_dS)NrMrNrQrstater r r __setstate__ s zParameter.__setstate__cCs|jSr)rKrr r r rN szParameter.namecCs|jSr)rMrr r r rW szParameter.defaultcCs|jSr)rNrr r r r\ szParameter.annotationcCs|jSr)rLrr r r rv szParameter.kind)rNrvr\rWcCsL|tur|j}|tur|j}|tur*|j}|tur8|j}t|||||dSr)rrKrLrNrMr)rrNrvr\rWr r r ri szParameter.replacecCs|j}|j}|jtur(d|t|j}|jturb|jturPd|t|j}nd|t|j}|tkrtd|}n|t krd|}|S)Nz{}: {}z{} = {}z{}={}rprs) rvrKrNrrrkrMrhrYr[)rrv formattedr r r rH s    zParameter.__str__cCsd|jj|S)Nz <{} "{}">rrrrr r r __repr__, szParameter.__repr__cCst|j|j|j|jfSr)hashrNrvr\rWrr r r __hash__/ szParameter.__hash__cCsJ||ur dSt|tstS|j|jkoH|j|jkoH|j|jkoH|j|jkSNT)rr!NotImplementedrKrLrMrNrotherr r r __eq__2 s     zParameter.__eq__N)rrrrrVr+rXr,rYr.rZr/r[r1rrSrrRrUrjrNrWr\rvrrirHrXrZr_r r r r r! s2(     r!c@sdeZdZdZddZeddZeddZedd Zd d Z d d Z ddZ ddZ ddZ dS)BoundArguments)r _signature __weakref__cCs||_||_dSr)rra)rrrr r r rP szBoundArguments.__init__cCs|jSr)rarr r r rT szBoundArguments.signaturec Cs|g}|jjD]b\}}|jttfvr*qtz|j|}WntyPYqtYq0|jtkrh| |q| |qt |Sr) rarTrKrvr[rZrrrYextendrZrm)rrrrbryr r r rX s     zBoundArguments.argsc Csi}d}|jjD]v\}}|sD|jttfvr4d}n||jvrDd}q|sJqz|j|}WntyjYq0|jtkr||q|||<q|Sr) rarTrKrvr[rZrrupdate)rkwargsZkwargs_startedrrbryr r r reo s&     zBoundArguments.kwargsc Cs|j}g}|jjD]v\}}z||||fWqty|jturT|j}n$|jt urdd}n|jt urti}nYq|||fYq0qt ||_dS)Nr ) rrarTrKrZrrWrrvrYr[r)rrZ new_argumentsrNrbvalr r r apply_defaults s     zBoundArguments.apply_defaultscCs2||ur dSt|tstS|j|jko0|j|jkSr[)rr`r\rrr]r r r r_ s   zBoundArguments.__eq__cCs|d|_|d|_dS)NrarrarrSr r r rU s zBoundArguments.__setstate__cCs|j|jdS)Nrhrhrr r r __getstate__ szBoundArguments.__getstate__cCs@g}|jD]\}}|d||qd|jjd|S)Nz{}={!r}z <{} ({})>r})rrKrZrrrr)rrryrOr r r rX szBoundArguments.__repr__N)rrrrrrjrrrergr_rUrirXr r r r r`= s   r`c@seZdZdZeZeZeZ d+eddddZ e ddZ e d d Z e dd d d ZeddZeddZeedddZddZddZddZddddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*ZdS),rQ)_return_annotation _parametersNTr5c Cs|durt}n|rt}t}d}|D]}|j}|j} ||kr\d} | |j|j} t| n||krld}|}|ttfvr|jt ur|rd} t| nd}| |vrd| } t| ||| <q&ntdd|D}t ||_ ||_ dS)NFz7wrong parameter order: {} parameter before {} parameterz-non-default argument follows default argumentTzduplicate parameter name: {!r}css|]}|j|fVqdSrrqrfrbr r r rh rSz%Signature.__init__..)rrVrvrNrrJrrXrWrrMappingProxyTyperkrj) rrTrRr6rZtop_kindZ kind_defaultsrbrvrNrr r r r s@       zSignature.__init__cCstjdtddt||S)Nz_inspect.Signature.from_function() is deprecated since Python 3.5, use Signature.from_callable()rr@)rBrCrDr;rgrr r r from_function szSignature.from_functioncCstjdtddt||S)Nz^inspect.Signature.from_builtin() is deprecated since Python 3.5, use Signature.from_callable()rr@)rBrCrDr4rnr r r from_builtin szSignature.from_builtinfollow_wrappedcCst|||dS)N)rNrL)rP)rgr,rrr r r rA+ szSignature.from_callablecCs|jSr)rkrr r r rT1 szSignature.parameterscCs|jSrrjrr r r rR5 szSignature.return_annotation)rTrRcCs0|tur|j}|tur |j}t|||dS)Nr%)rrTrUrjr)rrTrRr r r ri9 s zSignature.replacecCs8tdd|jD}dd|jD}|||jfS)Ncss|]}|jtkr|VqdSr)rvrZrlr r r rhI s z(Signature._hash_basis..cSsi|]}|jtkr|j|qSr )rvrZrNrlr r r rL s z)Signature._hash_basis..)rmrTrUrR)rr kwo_paramsr r r _hash_basisH szSignature._hash_basiscCs(|\}}}t|}t|||fSr)ru frozensetrUrY)rrrtrRr r r rZQ s zSignature.__hash__cCs*||ur dSt|tstS||kSr[)rrQr\rur]r r r r_V s  zSignature.__eq__Frc Csi}t|j}d}t|}z t|}Wntyz t|} Wnty`YYqYn0| jtkrtYqn| j|vr| jtkrd} | j | jd} t | d| f}YqnP| jt ks| j t ur| f}Yqn.|r| f}Yqnd} | j | jd} t | dYq0z t|} Wnty2t ddYq0| jt tfvrNt dd| jtkr||g} | |t| || j<q| j|vr| jtkrt dj | jdd||| j<qd} t||D]} | jt kr| } q| jtkrq| j} z|| }WnDtyD|s@| jtkr@| j t ur@t dj | ddYn(0| jtkrdt dj | jd||| <q|r| dur||| j<nt dj tt|d|||S)Nr zA{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 rTrUr StopIterationrvrYrNrVrrr[rWrrZrcrmr)chainrr_bound_arguments_cls)rrrerrrTZ parameters_exZarg_valsZarg_valrbrrUZ kwargs_paramrr r r _bind] s                   zSignature._bindcOs |||Srr{rrrer r r bind szSignature.bindcOs|j||ddS)NTrwr|r}r r r r szSignature.bind_partialcCs t|t|jfd|jifSNrj)rrmrkrUrjrr r r rR szSignature.__reduce__cCs|d|_dSrrsrSr r r rU szSignature.__setstate__cCsd|jj|S)Nz<{} {}>rWrr r r rX szSignature.__repr__c Csg}d}d}|jD]d}t|}|j}|tkr6d}n|rH|dd}|tkrVd}n|tkrp|rp|dd}||q|r|ddd |}|j t urt |j }|d|7}|S)NFTrrpz({})r}z -> {}) rTrUrrvrVrZrYrZrrrRrrk) rrtZrender_pos_only_separatorZrender_kw_only_separatorrbrVrvZrenderedZannor r r rH s0       zSignature.__str__)N)rrrrr!r&r`rzrrSrrrrorprArjrTrRrrirurZr_r{r~rrRrUrXrHr r r r rQ s: 6     rQrqcCstj||dS)Nrq)rQrA)r,rrr r r r' src Csddl}ddl}|}|jddd|jddddd |}|j}|d \}}}z||}} WnPty} z8d |t | j | } t | t jd t d WYd} ~ n d} ~ 00|r|d} | }| D]} t|| }q| j t jvrt dt jd t d|jrt d |t d t| t d | j|| urzt d t| jt| drt d | jn4zt|\}}WntyYn0t d |t dn 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)actionrrzFailed to import {} ({}: {}))rrrz#Can't get info for builtin modules.rz Target: {}z Origin: {}z Cached: {}z Loader: {}__path__zSubmodule search path: {}zLine: {}r)argparserArgumentParser add_argument parse_argsr partition import_modulernrrrprintrstderrexitrrLbuiltin_module_namesZdetailsr __cached__rhrrrrr()rrparserrtargetZmod_nameZ has_attrsattrsr,rrurpartspart__rr r r _main, s\       rr)N)N)N)F)N)r)r)r)r)r)r )T)T)T) __author__r8rdiscollections.abcr7enumimportlib.machineryrr)rrrrrrrrBr#roperatorrrrglobalsZmod_dictZCOMPILER_FLAG_NAMESrKrbrcrGr rrrrrrr rr*r-r.r/r1r3r5r:r<r>r@rBrCrQrdrerwrVrrrrrrrrrrrrrrnrZ NodeVisitorrrrrrr$r'r(r)r0r1r>r?rIrJrErcrfrkrnrrrrrrrrrrr_fieldsrrrrrrr rrrrrrrrrrrrrrrrrrrrr=Z_WrapperDescriptorallZ_MethodWrapperrrJZ_ClassMethodWrapperrArrrrrrrr r2r4r;rPrrIntEnumrDr+rVr,rXr.rYr/rZr1r[rIr!r`rQrrrr r r r sp            , t$ >   /D->     \   ; < 5        0   L H   _ 8 j: