o h @s dZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlmZddlmZmZeZejD] \ZZeede<q]dZddddd d Zd d Z d dZ!ddZ"ddZ#ddZ$e%edrddZ&nddZ&e%edrddZ'nddZ'ddZ(dd Z)d!d"Z*d#d$Z+d%d&Z,d'd(Z-d)d*Z.d+d,Z/d-d.Z0d/d0Z1d1d2Z2d3d4Z3d5d6Z4d7d8Z5d9d:Z6dd;d<Z7ed=d>Z8d?d@Z9dAdBZ:ddCdDdEZ;dFdGZdLdMZ?dNdOZ@dPdQZAdRdSZBdTdUZCddVdWZDiZEiZFddXdYZGGdZd[d[eHZIGd\d]d]ejJZKd^d_ZLd`daZMGdbdcdceHZNGdddedeZOdfdgZPdhdiZQdjdkZRdldmZSddndoZTedpdqZUdrdsZVedtduZWdvdwZXedxdyZYdzd{ZZed|d}Z[d~dZ\dddZ]ddZ^ddddiie_dddddddde]f ddZ`e_ddddddfddZaddZbddZcddZdeddZeddZfeddZgdddZhddZieddegjjZkdddZldddZmddZndddZodddZpeqZrddZsddZtddZuddZvddZwerfddZxdZydZzdZ{dZ|ddZ}ddZ~dZdZdZdZddDŽZddɄZeejZeejZeejdZeeeejfZdd̄Zddd΄ZddЄZdd҄ZddԄZddքZdd؄ZdddۄZddd݄Z ddd߄ZddddddddZGdddZGdddZGdddejZejZejZejZejZejZededededediZGdddZGdddZGdddZdddddddZddZedkredSdS()zKa-Ping Yee z'Yury Selivanov N) attrgetter) namedtuple OrderedDictZCO_iFglobalslocalseval_strc s t|trFt|dd}|r"t|dr"|dd}t|tjr!d}nd}d}t|dd}|r=tj|d}|r=t|dd}t t |} |} n2t|tj r\t|dd}t|d}d} d} nt |rqt|dd}t|dd}d} |} nt |d|dur~iSt|t st|d|siS|st |S| dur t| d r| j} qt| tjr| j} q t| dr| j}dur|dur| fd d |D} | S) N__dict__get__annotations__ __module__ __globals__z% is not a module, class, or callable.z+.__annotations__ is neither a dict nor NoneT __wrapped__cs,i|]\}}|t|ts|nt|qS) isinstancestreval).0keyvaluerrr./opt/alt/python310/lib64/python3.10/inspect.py s z#get_annotations..)rtypegetattrhasattrr typesGetSetDescriptorTypesysmodulesdictvars ModuleTypecallable TypeError ValueErrorr functoolspartialfuncr items) objrrrZobj_dictannZ obj_globals module_namemoduleZ obj_localsunwrapZ return_valuerrrget_annotationsBsn ,                r/cC t|tjSN)rrr"objectrrrismodule r4cC t|tSr1)rrr2rrrisclass r7cCr0r1)rr MethodTyper2rrrismethod r:cCs< t|s t|s t|rdSt|}t|dot|d S)NF__get____set__r7r: isfunctionrrr3tprrrismethoddescriptors  rBcCs: t|s t|s t|rdSt|}t|dpt|dS)NFr= __delete__r>r@rrrisdatadescriptors rDMemberDescriptorTypecCr0r1)rrrEr2rrrismemberdescriptor rFcC dSNFrr2rrrrFrcCr0r1)rrrr2rrrisgetsetdescriptorrGrKcCrHrIrr2rrrrKrJcCr0r1)rr FunctionTyper2rrrr?s r?cCsF t|r |j}t|st|}t|st|sdSt|jj|@SrI) r:__func__r&_unwrap_partialr?_signature_is_functionlikebool__code__co_flags)fflagrrr_has_code_flag"s rUcCr6r1)rUZ CO_GENERATORr*rrrisgeneratorfunction- rWcCr6r1)rUZ CO_COROUTINErVrrriscoroutinefunction4rXrYcCr6r1)rUZCO_ASYNC_GENERATORrVrrrisasyncgenfunction;r8rZcCr0r1)rrAsyncGeneratorTyper2rrr isasyncgenC r\cCr0r1)rr GeneratorTyper2rrr isgeneratorGs r_cCr0r1)rr CoroutineTyper2rrr iscoroutineXr]racCs8 t|tjpt|tjot|jjt@pt|tj j Sr1) rrr`r^rPgi_coderRZCO_ITERABLE_COROUTINE collectionsabc Awaitabler2rrr isawaitable\s   rfcCr0r1)rr TracebackTyper2rrr istracebackcr;rhcCr0r1)rr FrameTyper2rrrisframems rjcCr0r1)rrCodeTyper2rrriscode{s rlcCr0r1)rrBuiltinFunctionTyper2rrr isbuiltinr5rncCs" t|pt|pt|pt|Sr1)rnr?r:rBr2rrr isroutinesrocCs t|tsdS|jt@rdStt|tjsdSt|dr dS|j D] \}}t |ddr2dSq%|j D]}t |ddD]}t ||d}t |ddrPdSq>q6dS)NFT__abstractmethods____isabstractmethod__r) rr __flags__TPFLAGS_IS_ABSTRACT issubclassrdABCMetarr r)r __bases__)r3namerbaserrr isabstracts*       ryc Cs t|r |ft|}nd}g}t}t|}z|jD]}|jD]\}}t|tj r2| |q#qWn t y>Ynw|D]>} z t || } | |vrOt Wnt yl|D]}| |jvrg|j| } nqYYqAYnw|rs|| rz| | | f| | qA|jddd|S)NrcSs|dS)Nrr)Zpairrrrzgetmembers..r)r7getmrosetdirrvr r)rrDynamicClassAttributeappendAttributeErrorraddsort) r3Z predicatemroresults processednamesrxkvrrrrr getmemberssL          r Attributezname kind defining_class objectc Cs6 t|}tt|}tdd|D}|f|}||}t|}|D]}|jD]\}}t|tjr>|j dur>| |q*q#g} t } |D]} d} d} d}| | vrz| dkr\t dt || } Wnt yt}zWYd}~nGd}~wwt | d| } | |vrd} d}|D]}t || d}|| ur|}q|D]}z||| }Wn tyYqw|| ur|}q|dur|} |D]}| |jvr|j| }| |vr|} nq| durqG| dur| n|}t|ttjfrd}|}n!t|ttjfrd}|}nt|trd}|}n t|rd }nd }| t| || || | qG| S) Ncss |] }|ttfvr|VqdSr1)rr3)rclsrrr sz'classify_class_attrs..r z)__dict__ is special, don't want the proxy __objclass__z static methodz class methodpropertymethoddata)r}rtuplerr r)rrrfgetrr~ Exceptionr __getattr__r staticmethodBuiltinMethodType classmethodClassMethodDescriptorTyperrorr)rrZmetamroZ class_basesZ all_basesrrxrrresultrrwZhomeclsZget_objZdict_objexcZlast_clsZsrch_clsZsrch_objr*kindrrrclassify_class_attrss             rcC |jSr1)__mro__)rrrrr}^sr}stopcs dur dd}nfdd}|}t||i}t}||r@|j}t|}||vs1t||kr8td||||<||s |S)NcSs t|dSNrrrSrrr _is_wrapperu zunwrap.._is_wrappercst|do | Srrrrrrrxsz!wrapper loop when unwrapping {!r})idrgetrecursionlimitrlenr%format)r(rrrSZmemoZrecursion_limitZid_funcrrrr.ds   r.cCs |}t|t|Sr1) expandtabsrlstrip)lineZexplinerrr indentsizesrcCsNtj|j}|dur dS|jdddD]}t||}qt|s%dS|S)N.)rrr r __qualname__splitrr7)r(rrwrrr _findclasss rc Cst|r'|jD]}|tur$z|j}Wn tyYqw|dur$|SqdSt|rI|jj}|j}t|rEt t ||dd|jurE|}n|j }nt |rb|j}t |}|dus_t |||uradSnmt |r|j}|j}t|r}|jd||jkr}|}nR|j }nNt|tr|j}|j}t |}|dust |||urdSn1t|st|r|j}|j}t |||urdSt|rt |dd}t|tr||vr||SndS|jD]}zt ||j}Wn tyYqw|dur|SqdS)NrMr __slots__)r7rr3__doc__rr:rM__name____self__r __class__r?rrnrrrrrBrDrrFr )r*rxdocrwselfrr(slotsrrr_finddocsx       rc Csf z|j}Wn tyYdSw|dur(zt|}Wn ttfy'YdSwt|ts/dSt|Sr1)rrrr$rrcleandoc)r3rrrrgetdocs    rcCs z |d}Wn tyYdSwtj}|ddD]}t|}|r3t||}t||}q|r>|d|d<|tjkrWtdt|D] }|||d||<qJ|rg|dsg| |rg|dr]|rx|dsx| d|rx|drmd |S)N rr) rr UnicodeErrorrmaxsizerrminrangepopjoin)rlinesZmarginrZcontentindentirrrrs0     (    rcCs t|rt|ddr|jStd|t|r>t|dr7tj |j }t|ddr.|jS|j dkr7t dtd|t |rE|j }t|rL|j}t|rS|j}t|rZ|j}t|ra|jStdt|j)N__file__z{!r} is a built-in moduler __main__source code not availablez{!r} is a built-in classzVmodule, class, method, function, traceback, frame, or code object was expected, got {})r4rrr$rr7rrrr r OSErrorr:rMr?rQrhtb_framerjf_coderl co_filenamerr)r3r-rrrgetfiles8    rcCsV tj|}ddtjD}||D]\}}||r(|d|SqdS)NcSsg|] }t| |fqSr)r)rsuffixrrr %sz!getmodulename..)ospathbasename importlib machinery all_suffixesrendswith)rZfnamesuffixesZneglenrrrr getmodulename!s   rcs t|tjjdd}|tjjdd7}tfdd|Dr1tjdtjj dntfddtjj Dr@dStj rHSt |}t |dddurWSt t |dddddureStjvrlSdS)Nc3|]}|VqdSr1rrsfilenamerrr4z getsourcefile..rc3rr1rrrrrr7r __loader____spec__loader)rrrDEBUG_BYTECODE_SUFFIXESOPTIMIZED_BYTECODE_SUFFIXESanyrrsplitextSOURCE_SUFFIXESEXTENSION_SUFFIXESexists getmoduler linecachecache)r3Zall_bytecode_suffixesr-rrr getsourcefile-s,     rcCs. |dur t|p t|}tjtj|Sr1)rrrrnormcaseabspath)r3 _filenamerrr getabsfileFsrc Cs| t|r|St|drtj|jS|dur#|tvr#tjt|Szt||}Wn tt fy6YdSw|tvrCtjt|Stj D].\}}t|rxt|drx|j }|t |dkrcqJ|t |<t|}|jt|<ttj|<qJ|tvrtjt|Stjd}t|dsdSt||jrt||j}||ur|Stjd}t||jrt||j} | |ur|SdSdS)Nr rrrbuiltins)r4rrrr r modulesbyfilerr$FileNotFoundErrorcopyr)r_filesbymodnamerrrrealpathr) r3rfilemodnamer-rSmainZ mainobjectZbuiltinZ builtinobjectrrrrRsT         rc@ eZdZdS)ClassFoundExceptionNrr rrrrrrrc@s(eZdZddZddZeZddZdS) _ClassFindercCsg|_||_dSr1)stackqualname)rrrrr__init__ z_ClassFinder.__init__cCs<|j|j|jd|||j|jdS)Nz)rrrw generic_visitrrnoderrrvisit_FunctionDefs    z_ClassFinder.visit_FunctionDefcCsb|j|j|jd|jkr%|jr|jdj}n|j}|d8}t||||j dS)Nrrr) rrrwrrdecorator_listlinenorr r)rr  line_numberrrrvisit_ClassDefs z_ClassFinder.visit_ClassDefN)rr rrr Zvisit_AsyncFunctionDefrrrrrrs  rc Cs t|}|r t|nt|}|dr|dstdt||}|r.t||j }nt|}|s9tdt |rA|dfSt |r||j }d |}t|}t|}z ||Wtdty{}z|jd} || fWYd}~Sd}~wwt|r|j}t|r|j}t|r|j}t|r|j}t|rt|dstd |jd } t d } | dkrz|| } Wn t!ytd w| "| r || fS| d } | dks|| fStd )N<>rzcould not get source coderzcould not find class definitionco_firstlinenoz"could not find function definitionrz>^(\s*def\s)|(\s*async\s+def\s)|(.*(?rr) r.r#rhrr4rjrco_namerEr3rr"rrrgetsourcelinesXs  rHcCs t|\}}d|S)Nr)rHrrGrrr getsourcems  rIcCsT g}|jtddd|D]}|||jf||vr'|t||||q|S)Nr rr|)rrrrvwalktree)classeschildrenparentrcrrrrJwsrJcCs i}g}|D]2}|jr0|jD]}||vrg||<|||vr&||||r.||vr.nqq||vr9||q|D] }||vrG||q| sd} | sd} t||||| || |S)NF)follow_wrapper_chainsskip_bound_argsigclsrzunsupported callablerreturn)_signature_from_callable Signaturerr$return_annotationempty parametersvaluesrrw_POSITIONAL_ONLYrdefault_POSITIONAL_OR_KEYWORD_VAR_POSITIONAL _KEYWORD_ONLY _VAR_KEYWORD annotationrj)r(sigexrr]r^ posonlyargsr[ annotationsrg kwdefaultsparamrrwrrrrfsl               rfArgInfozargs varargs keywords localscCs" t|j\}}}t||||jSr1)r_rrf_locals)framerr]r^rrr getargvalues;srcCstt|dddkrdd}td|t|St|tjrt|St|tr6|j d|fvr.|j S|j d|j St|S)Nr typingcSs|}|dS)Nztyping.)group removeprefix)rtextrrrreplGs zformatannotation..replz[\w\.]+rr) rrsubreprrr GenericAliasrrr r)r{Z base_modulerrrrformatannotationEs  rcst|ddfdd}|S)Nr cs t|Sr1)r)r{r-rr_formatannotationUrz5formatannotationrelativeto.._formatannotation)r)r3rrrrformatannotationrelativetoSs  rrcCd|SN*rrwrrrrz\r{rzcCrN**rrrrrrz]r{cC dt|SN=rrrrrrz^r+cCr)Nz -> r)rrrrrz_r{c s: ddlm} | dtddfdd}g}|r"t|t|}t|D]\}}||}|r>||kr>|| |||}||q&|durR||||n|rY|d|rw|D]}||}|rq||vrq|| ||7}||q]|dur|| ||d d |d }d vr|| d 7}|S) Nr)rdzc`formatargspec` is deprecated since Python 3.5. Use `signature` and the `Signature` object directlyr$racs(|}|vr|d|7}|S)Nz: r)argrrr formatargrrformatargandannotationtsz-formatargspec..formatargandannotationr(, )rn)rcrdrer enumeraterr)rr]r^rgr[rhrr formatvarargs formatvarkw formatvalueZ formatreturnsrrdrspecsZ firstdefaultrrspecZ kwonlyargrrrr formatargspecYs>      rcCrrrrrrrrzr{cCrrrrrrrrzr{cCrrrrrrrrzr+c Cs |||fdd}g} tt|D] } | ||| q|r,| ||||||r;| |||||dd| dS)NcSs|||||Sr1r)rwrrrrrrconvertsz formatargvalues..convertrrr)rrrr) rr]r^rrrrrrrrrrrformatargvaluess rcsfdd|D}t|}|dkr|d}n|dkr dj|}ndj|dd}|dd=d ||}td |||r=d nd |dkrDd nd|f)Ncsg|] }|vrt|qSrr)rrwrtrrrsz&_missing_arguments..rrr$z {} and {}z , {} and {}rz*%s() missing %i required %s argument%s: %s positional keyword-onlyrr)rrrr$)f_nameZargnamesposrtrmissingrtailrrr_missing_argumentss    rc st||}tfdd|D}|r|dk} d|f} n|r*d} d|t|f} n t|dk} tt|} d} |rOd} | |dkrCd nd||dkrKd ndf} td || | rWd nd|| |dkre|sed fd f) Ncsg|]}|vr|qSrr)rrrrrrsz_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]ZdefcountZgivenrtZatleastZ kwonly_givenZpluralr|Z kwonly_sigmsgrrr _too_manys0    rcOs t|}|\}}}}}} } |j} i} t|r"|jdur"|jf|}t|} t|}|r0t|nd}t| |}t|D] }||| ||<q;|rRt||d| |<t||}|r^i| |<| D])\}}||vr{|stt d| |f|| ||<qb|| vrt d| |f|| |<qb| |kr|st | ||||| | | |kr|d||}|D] }|| vrt | |d| qt |||dD]\}}|| vr||| |<qd}|D]}|| vr| r|| vr| || |<q|d7}q|rt | |d| | S)Nrz*%s() got an unexpected keyword argument %rz(%s() got multiple values for argument %rTrF)rfrr:rrrrrr~r)r$rrr)r(rZnamedrrr]r^rgr[rhr+rZ arg2valueZnum_posZnum_argsZ num_defaultsnrZpossible_kwargskwrZreqrrkwargrrr getcallargssn          r ClosureVarsz"nonlocals globals builtins unboundc Cs t|r|j}t|std||j}|jduri}n ddt|j|jD}|j }| dt j }t |r;|j }i}i}t}|jD]/}|dvrLqEz||||<WqEtytz||||<Wntyq||YnwYqEwt||||S)N{!r} is not a Python functioncSsi|]\}}||jqSr) cell_contents)rvarZcellrrrr"sz"getclosurevars.. __builtins__)NoneTrueFalse)r:rMr?r$rrQ __closure__zip co_freevarsr r rr r4r~co_namesKeyErrorrr) r(codeZ nonlocal_varsZ global_nsZ builtin_nsZ global_varsZ builtin_varsZ unbound_namesrwrrrgetclosurevars sD     r Tracebackz+filename lineno function code_context indexrcCs t|r |j}|j}n|j}t|std|t|p!t|}|dkr_|d|d}zt |\}}Wn t yCd}}Yn wt dt |t ||}||||}|d|}nd}}t|||jj||S)Nz'{!r} is not a frame or traceback objectrrr$)rh tb_linenorf_linenorjr$rrrr#rmaxrrrrrF)rcontextrrr'rr"indexrrr getframeinfoDs(  rcCrr1)rrrrr getlinenodsr FrameInforcCs6 g}|r|ft||}|t||j}|s|Sr1)rrrf_back)rr framelist frameinforrrgetouterframesksrcCs8 g}|r|jft||}|t||j}|s|Sr1)rrrrtb_next)tbrrrrrrgetinnerframeswsrcCs ttdr tdSdS)N _getframer)rrrrrrr currentframesrcCs ttd|S)Nr)rrrrrrrrsrcCs ttd|S)Nr$)rrexc_inforrrrtracesrcCstjd|S)Nr)rr r<)klassrrr_static_getmrorcCs6i}zt|d}Wn tyYnwt||tSNr )r3__getattribute__rr r _sentinel)r*attrZ instance_dictrrr_check_instances rc CsFt|D]}tt|tur z|j|WStyYqwqtSr1)r_shadowed_dictrrr r)rrentryrrr _check_classs  rcCs$zt|WdStyYdSwNFT)rr$rVrrr_is_types   rc Csltjd}t|D]*}z ||d}Wn tyYq wt|tjur/|jdkr/|j|us3|Sq t Sr) rr rr<rrrrrr)r dict_attrrZ class_dictrrrrs     rc Cs t}t|s t|}t|}|tust|tjurt||}n|}t||}|turC|turCtt|dturCtt|dturC|S|turI|S|turO|S||urvtt|D]}tt|turuz|j |WSt ytYqYwqY|tur||St |)Nr<r=) rrrrrrErrrr rr)r*rrvZinstance_resultrrZ klass_resultrrrrgetattr_statics>    r GEN_CREATED GEN_RUNNING GEN_SUSPENDED GEN_CLOSEDcC. |jrtS|jdur tS|jjdkrtStSNr) gi_runningrgi_framerf_lastirr) generatorrrrgetgeneratorstate  rcCs8 t|s td|t|dd}|dur|jjSiS)Nz{!r} is not a Python generatorr)r_r$rrrr)rrrrrgetgeneratorlocalss r CORO_CREATED CORO_RUNNINGCORO_SUSPENDED CORO_CLOSEDcCrr) cr_runningrcr_framerrrr) coroutinerrrgetcoroutinestaterrcCs t|dd}|dur|jSiS)Nr)rr)rrrrrgetcoroutinelocals/s  r from_bytescCs8 zt||}Wn tyYdSwt|ts|SdSr1)rrr_NonUserDefinedCallables)rZ method_nameZmethrrr"_signature_get_user_defined_methodKs  rc Cs |j}t|}|jpd}|jpi}|r||}z |j|i|}Wnty:}z d|} t| |d}~wwd} |D]y\} } z|j | } Wn t yUYn4w| j t ura| | qA| j tur|| |vrud} | j| d|| <n| | jqA| j tur| j| d|| <| r| j tur|| jtd}||| <|| qA| j ttfvr|| qA| j tur| | jqA|j|dS)Nrz+partial object {!r} has incorrect argumentsFT)rvrrs)rsrr)rkeywords bind_partialr$rr% argumentsrrrurrwreplacerwry move_to_endrzrxrt) wrapped_sigr'Z extra_argsZ old_params new_paramsZ partial_argsZpartial_keywordsZbar}rZtransform_to_kwonly param_namerZ arg_valueZ new_paramrrr_signature_get_partial[sV                 rcCsn t|j}|r|djttfvrtd|dj}|ttfvr)|dd}n|t ur1td|j |dS)Nrzinvalid method signaturerzinvalid argument typer ) rrsrtrrzryr%rwrurxr)r|paramsrrrr_signature_bound_methods   rcCs( t|pt|pt|tp|ttfvSr1)rnrBrrrr3rVrrr_signature_is_builtins rcCs t|r t|r dSt|dd}t|dd}t|dt}t|dt}t|dd}t|tjoNt|toN|dup |d}|dkr|d}|d}|d}|d|S)N,rr:rr$)find)rrZcposrrr_signature_get_bound_params     rcCs" |s|ddfSd}d}dd|dD}t|j}t|}d}d}g}|j} d} tj} tj} t|} |D]O} | j | j }}|| kr_|dkrT|rMd}nd}| d7} q7|d kr_d}| d}q7|| krj|d krj| }q7|rzd}|| krv|d ksz| d | ||dkr| d q7d |}|||fS)NcSsg|] }|r|dqS)ascii)encode)rlrrrrsz6_signature_strip_non_python_syntax..rFrrTr/$rr r) rrArBr8rr>OP ERRORTOKENnextrstringr) signatureself_parameterlast_positional_onlyrrZ token_streamZ delayed_commaZskip_next_commarrZcurrent_parameterr$r%trr'clean_signaturerrr"_signature_strip_non_python_syntaxsT     r-Tc sN ddl|jt|\}}}d|d}z|}Wn ty'd}Ynwt|js5td|j d} gj d}it dd} | rWt j | d}|rW|jt j  fdd fdd  G fd d d jffd d } t| jj} t| jj} tj| | dd}|durjnjttt|D]\}\}}| ||||krjq| jjr͈j| | jjjt| jj| jj D] \}}| ||q| jj!rj"| | jj!|dur t dd}|du}t#|}|r|s |r$dn dj%jd} | d<||j dS)Nrzdef fooz: pass"{!r} builtin has invalid signaturer cs|jdur td|jS)Nz'Annotations are not currently supported)r{r%r)r rrr parse_namejs z&_signature_fromstr..parse_namec slzt|}Wnty!zt|}Wn tytwYnwt|tttttt dfr4 |Str1) r NameErrorr%rrintfloatbytesrPrConstant)rr)r module_dictsys_module_dictrr wrap_valueps   z&_signature_fromstr..wrap_valuecs4eZdZfddZfddZfddZdS)z,_signature_fromstr..RewriteSymbolicscsdg}|}t|jr||j|j}t|js t|js!t||jdt |}|S)Nr) rrrrrNamer%rrreversed)rr arrrr8rrvisit_Attribute~s    z<_signature_fromstr..RewriteSymbolics.visit_Attributecst|jjs t|jSr1)rctxZLoadr%rr r<rr visit_Names z7_signature_fromstr..RewriteSymbolics.visit_Namecs||j}||j}t|jrt|jstt|jjr*|j|jSt|jj r:|j|jSt|jj rJ|j|jBStr1) rleftrightrr5r%opZAddrZSubZBitOr)rr r@rAr/rr visit_BinOps  z8_signature_fromstr..RewriteSymbolics.visit_BinOpN)rr rr=r?rCrr<rrRewriteSymbolics}s rDcsh|}|r'|tur'z |}|}Wnty&tddw||ddS)Nr.rvr{)_emptyrZ literal_evalr%rr)Z name_nodeZ default_nodervrw) ParameterrDrrrrr*rsr0rrps   z_signature_fromstr..p) fillvaluerr rq)&r_parameter_clsr-r SyntaxErrorrZModuler%rbodyrrrrrr r rZNodeTransformerr:rrg itertools zip_longestPOSITIONAL_ONLYPOSITIONAL_OR_KEYWORDrrVvarargVAR_POSITIONAL KEYWORD_ONLYrr[ kw_defaultsr VAR_KEYWORDr4rr)rr*rrlr,r)r*Zprogramr-rSr,rHrrgrArrwrvZ_selfZ self_isboundZ self_ismoduler) rGrDrrrrr6r*rsr0r7r8r_signature_fromstrEsr        !      rWcCsD t|s td|t|dd}|std|t||||S)Nz%{!r} is not a Python builtin function__text_signature__z#no signature found for builtin {!r})rr$rrr%rW)rr(rlrrrr_signature_from_builtins rYc CsH d}t|st|rd}ntd|t|dd}|r$t||||S|j}|j} | j} | j } | j } | d| } | j }| | | |}t ||||d}|j }|j}|rYt|}nd}g}| |}| }| d|D]}|rotnt}||t}|||||d|r|d8}qit| |dD]#\}}|rtnt}||t}|||||||d |r|d8}q| jt@r| | |}||t}||||td|D]}t}|dur||t}||t}||||t|d q| jt@r| |}| jt@r|d7}| |}||t}||||td|||d t|d S) NFTrrXrr)r{rr)r{rrvrnrq__validate_parameters__)r?rOr$rrrWrKrQrTrSco_posonlyargcountrUr/rrrrurwr rFrrrRrWrxryrXrz)rr(rlrrrZis_duck_functionrrGZ func_codeZ pos_countZ arg_namesZ posonly_countrZkeyword_only_countZ keyword_onlyrrgrZpos_default_countrsZnon_default_countZ posonly_leftrwrr{offsetrvrrrr_signature_from_functions                     r^)rkrlrrrc Cs~ tjt||||||d}t|std|t|tjr+||j }|r)t |S|S|r?t |ddd}t|tjr?||Sz|j }Wn t yMYnw|dur`t|ts^td||Sz|j} Wn t ynYn5wt| tjr|| j} t| | d}t| jd} | jtjur|St|j} | f| } |j| d St|st|rt||||||d St|rt|||d St|tjr||j} t| |Sd}t|trjt t|d }|dur||}n5d}t |d }t |d}d |j!vr|}nd|j!vr|}n|dur |}n|dur|}|dur||}|duri|j"ddD]}z|j#}Wn t y;Yq)w|rGt$|||Sq)t|j"vri|j%t&j%urb|j't&j'urb|(t&St)d|n0t|t*st t|d }|durz||}Wnt)y}z d|}t)||d}~ww|dur|rt |S|St|tj+rd|}t)|t)d|)N)rkrlrrrmrz{!r} is not a callable objectcSst|dp t|tjS)N __signature__)rrrr9rrrrrzl s z*_signature_from_callable..rz1unexpected object {!r} in __signature__ attributer1rr )rlrrr)rl__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&r'ror#r$rrrr9rMrr.r_rrp_partialmethod partialmethodr(rrrsrtrrGrSrr?rOr^rrYrrr rrXrWrr3ra from_callabler%rrm)r*rkrlrrrrmZ_get_signature_ofr|rcrZfirst_wrapped_paramZ sig_paramsrZcallZfactory_methodnewZinitrxZtext_sigr}rrrrroG s                                     roc@r)rNrrrrrr rrc@r)rFNrrrrrrF rrFc@s4eZdZdZdZdZdZdZddZe dd Z d S) _ParameterKindrrr$cC|jSr1)_name_r3rrr__str__ sz_ParameterKind.__str__cCst|Sr1)_PARAM_NAME_MAPPINGr3rrr description sz_ParameterKind.descriptionN) rr rrPrQrSrTrVrkrrmrrrrrf srfzpositional-onlyzpositional or keywordzvariadic positionalrzvariadic keywordc@seZdZ dZeZeZeZ e Z e Z eZeedddZddZddZed d Zed d Zed dZeddZeeeedddZddZddZddZddZdS)rG)_name_kind_default _annotationrEcCszt||_Wntytd|dw|tur/|jttfvr/d}||jj}t|||_||_ |tur=tdt |t sNdt |j }t||ddkrz|ddrz|jtkrnd }||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)rfror%rFrxrzrrmrprqrrrrr$isdigitrwru isidentifierrn)rrwrrvr{rrrrrM s8    zParameter.__init__cCs t||j|jf|j|jdfS)Nrprq)rrnrorprqr3rrr __reduce__u s  zParameter.__reduce__cC|d|_|d|_dS)Nrprqrtrstaterrr __setstate__{  zParameter.__setstate__cCrir1)rnr3rrrrw zParameter.namecCrir1)rpr3rrrrv r{zParameter.defaultcCrir1)rqr3rrrr{ r{zParameter.annotationcCrir1)ror3rrrr r{zParameter.kind)rwrr{rvcCsN |tur|j}|tur|j}|tur|j}|tur|j}t|||||dS)NrE)rrnrorqrpr)rrwrr{rvrrrr szParameter.replacecCs|j}|j}|jturd|t|j}|jtur1|jtur(d|t|j}n d|t|j}|tkr;d|}|S|t krCd|}|S)Nz{}: {}z{} = {}z{}={}rr) rrnrqrFrrrprrxrz)rr formattedrrrrk s    zParameter.__str__cCd|jj|S)Nz <{} "{}">rrrr3rrr__repr__ rzParameter.__repr__cCst|j|j|j|jfSr1)hashrwrr{rvr3rrr__hash__ szParameter.__hash__cCsJ||urdSt|ts tS|j|jko$|j|jko$|j|jko$|j|jkSNT)rrGNotImplementedrnrorprqrotherrrr__eq__ s     zParameter.__eq__N)rr rrrurPrwrQrxrSryrTrzrVrFrrrruryrrwrvr{rrrrkrrrrrrrrG- s6(      rGc@sfeZdZ dZddZeddZeddZedd Zd d Z d d Z ddZ ddZ ddZ dS)BoundArguments)r  _signature __weakref__cCs||_||_dSr1)r r)rr(r rrrr rzBoundArguments.__init__cCrir1)rr3rrrr( r{zBoundArguments.signaturec Csg}|jjD]5\}}|jttfvrt |Sz|j|}Wn ty,Yt |Sw|jtkr8| |q| |qt |Sr1) rrsr)rrzryr rrxextendrr)rrrrrrrrr s     zBoundArguments.argsc Csi}d}|jjD];\}}|s"|jttfvrd}n||jvr"d}q |s%q z|j|}Wn ty5Yq w|jtkrA||q |||<q |Sr) rrsr)rrzryr rupdate)rkwargsZkwargs_startedrrrrrrr s(     zBoundArguments.kwargsc Cs |j}g}|jjD]:\}}z ||||fWq tyF|jtur+|j}n|jt ur3d}n |jt ur;i}nYq |||fYq wt ||_dS)Nr) r rrsr)rrrvrFrrxrzr )rr Z new_argumentsrwrvalrrrapply_defaults s"     zBoundArguments.apply_defaultscCs2||urdSt|ts tS|j|jko|j|jkSr)rrrr(r rrrrr4 s   zBoundArguments.__eq__cCrv)Nrr rr rwrrrry< rzzBoundArguments.__setstate__cCs|j|jdS)Nrrr3rrr __getstate__@ zBoundArguments.__getstate__cCs@g}|jD] \}}|d||qd|jjd|S)Nz{}={!r}z <{} ({})>r)r r)rrrrr)rrrrrrrrC szBoundArguments.__repr__N)rr rrrrr(rrrrryrrrrrrr s    rc@seZdZ dZeZeZeZ d+eddddZ e ddZ e d d Z e dddd d d dZeddZeddZeedddZddZddZddZd dddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*ZdS),rp)_return_annotation _parametersNTrZc Cs |dur t}n_|r_t}t}d}|D]I}|j}|j} ||kr.d} | |j|j} t| ||kr6d}|}|ttfvrL|jt urJ|rId} t| nd}| |vrYd| } t| ||| <qn tdd|D}t ||_ ||_ dS)NFz7wrong parameter order: {} parameter before {} parameterz-non-default argument follows default argumentTzduplicate parameter name: {!r}css|]}|j|fVqdSr1rrrrrrr rz%Signature.__init__..)rrurrwrrmr%rwrvrFrMappingProxyTyperr) rrsrqr[rZtop_kindZ kind_defaultsrrrwrrrrrh sF     #  zSignature.__init__cC tjdtddt||S)Nz_inspect.Signature.from_function() is deprecated since Python 3.5, use Signature.from_callable()r$ra)rcrdrer^rr(rrr from_function  zSignature.from_functioncCr)Nz^inspect.Signature.from_builtin() is deprecated since Python 3.5, use Signature.from_callable()r$ra)rcrdrerYrrrr from_builtin rzSignature.from_builtinFfollow_wrappedrrrcCs t||||||dS)N)rmrkrrr)ro)rr*rrrrrrrrd s zSignature.from_callablecCrir1)rr3rrrrs r{zSignature.parameterscCrir1rr3rrrrq r{zSignature.return_annotation)rsrqcCs2 |tur |j}|tur|j}t|||dS)NrJ)rrsrtrr)rrsrqrrrr s zSignature.replacecCs8tdd|jD}dd|jD}|||jfS)Ncss|] }|jtkr|VqdSr1)rryrrrrr s  z(Signature._hash_basis..cSsi|] }|jtkr|j|qSr)rryrwrrrrr s z)Signature._hash_basis..)rrsrtrq)rr kwo_paramsrrr _hash_basis s zSignature._hash_basiscCs(|\}}}t|}t|||fSr1)r frozensetrtr)rrrrqrrrr s zSignature.__hash__cCs*||urdSt|ts tS||kSr)rrprrrrrrr s  zSignature.__eq__r'c Cs~ i}t|j}d}t|} zt|}Wn`tywzt|} Wn ty.YYnw| jtkr6Yn| j|vrS| jtkrNd} | j | jd} t | d| f}Yns| jt ks]| j t urb| f}Ynd|ri| f}Yn]d} | j | jd} t | dwzt|} Wn tyt ddw| jt tfvrt dd| jtkr|g} | |t| || j<n| j|vr| jtkrt dj | jdd||| j<qd} t||D]P} | jt kr| } q| jtkrq| j} z|| }Wn"ty |s| jtkr| j t urt dj | ddYqw| jtkrt dj | jd||| <q|r9| dur-||| j<n t dj tt|d|||S) NrTzA{arg!r} parameter is positional only, but was passed as a keyword)rz$missing a required argument: {arg!r}ztoo many positional argumentsz$multiple values for argument {arg!r}z*got an unexpected keyword argument {arg!r})rArsrtr& StopIterationrrxrwrurr$rzrvrFryrrrNchainrr_bound_arguments_cls)rrrr'r rsZ parameters_exZarg_valsZarg_valrrrtZ kwargs_paramrrrr_bind s           (      J         zSignature._bindcOs |||Sr1rrrrrrrbindm rGzSignature.bindcOs |j||ddS)NTrrrrrrr t szSignature.bind_partialcCs t|t|jfd|jifSNr)rrrrtrr3rrrru{ szSignature.__reduce__cCs|d|_dSrrrwrrrry rzSignature.__setstate__cCr})Nz<{} {}>r~r3rrrr rzSignature.__repr__c Csg}d}d}|jD]2}t|}|j}|tkrd}n |r$|dd}|tkr+d}n |tkr8|r8|dd}||q |rE|ddd |}|j t ur^t |j }|d|7}|S)NFTr!rz({})rz -> {}) rsrtrrrurrxryrrrqrFr) rrZrender_pos_only_separatorZrender_kw_only_separatorrr|rZrenderedZannorrrrk s0       zSignature.__str__r1)rr rrrGrKrrrFrrrrrrrdrrsrqrrrrrrrr ruryrrkrrrrrpJ s@ 6       rprcCs tj|||||dS)Nr)rprd)r*rrrrrrrr( sr(c Cs ddl}ddl}|}|jddd|jddddd |}|j}|d \}}}z ||}} Wn(ty]} zd |t | j | } t | t jd t d WYd} ~ nd} ~ ww|rq|d} | }| D]} t|| }qi| j t jvrt dt jd t d|jrt d |t d t| t d | j|| urt d t| jt| drt d | jnzt|\}}Wn tyYnwt d |t ddSt t|dS)Nrr3zCThe 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 {} ({}: {}))rr$rz#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_argsr3 partition import_modulerrrrprintrstderrexitrrbuiltin_module_namesZdetailsr __cached__rrrrr#rI)rrparserrtargetZmod_nameZ has_attrsZattrsr*r-rrpartspart__rrrr_main sf       rrr1)F)r)r)T)TNNF) __author__rdrdisZcollections.abcrcenumimportlib.machineryrrNrrrrr8r>rrcr&roperatorrrrrZmod_dictZCOMPILER_FLAG_NAMESr)rrrsr/r4r7r:rBrDrrFrKr?rUrWrYrZr\r_rarfrhrjrlrnroryrrrr}r.rrrrrrrrrrrrrrZ NodeVisitorrr#r)r*r,rErHrIrJrQrRr_r`rirjrfrrrrrrrrrrrrrrr_fieldsrrrrrrr3rrrrrrrrrrrrrrrrrrrrr`Z_WrapperDescriptorallZ_MethodWrapperr2r Z_ClassMethodWrapperrmrrrrrrOrr-rWrYr^rorrFIntEnumrfrPrurQrwrSrxrTryrVrzrlrGrrpr(rrrrrrs  t            ,t$ >   /D-6    ]  ;  < 5         0   L  H  ` B l :