uBFj/ddlZddlmZddlmZddlmZddlmZddl m Z ddl m Z ddl mZmZmZmZdd lmZmZmZdd lmZmZmZdd lmZdd lmZd d ZGddeZ dZ!dZ"dZ#GddZ$Gdde$Z%dZ&Gdde%Z'Gdde%Z(Gdde$Z)d!dZ*dZ+dS)"N) zip_longest)Any)tree)debug)PushBackIterator)analysis)LazyKnownValueLazyKnownValues LazyTreeValueget_merged_lazy_value) ParamNameTreeNameDefinitionAnonymousParamName) NO_VALUESValueSetContextualizedNode)iterable)%inference_state_as_method_param_cachec|dkrdS|D]L} |j}|D]'}t||dz(=#t$rYIwxYwdS)z"Helper method for static analysis. N) py__iter__try_iter_contentinferAttributeError)typesdepthtypf lazy_values FC:\PYTHON\_runtimes\venv\Lib\site-packages\jedi/inference/arguments.pyrrs rzz @@ @A acc @ @  !1!1!3!3UQY???? @    D @@sA AAceZdZdS) ParamIssueN)__name__ __module__ __qualname__r!r#r##sDr(r#cfd}|S)aN Transforms a function or method with arguments to the signature that is given as an argument clinic notation. Argument clinic is part of CPython and used for all the functions that are implemented in C (Python 3.7): str.split.__text_signature__ # Results in: '($self, /, sep=None, maxsplit=-1)' cfd}|S)Nc tt|j|}|g|RS#t$r tcYSwxYwN)tupleiterate_argument_clinicinference_stater#r)value argumentsargs clinic_stringfuncs r!wrapperz?repack_with_argument_clinic..decorator..wrapper3ss *4)!tE)D)))) ! ! !     !s#/AAr')r4r5r3s` r! decoratorz.repack_with_argument_clinic..decorator2s) * * * * * *r(r')r3r6s` r!repack_with_argument_clinicr7's$      r(c#Ktt|}t|}t |D]'\}\}}}} | dkrbg} |D]5\} } | || | fn| | 6ttj || gV| s| dkrtt|d\} } | tj dt| -|s+tj d|t||t| t n| } | s|stj d|t| V)dS)z;Uses a list with argument clinic information (see PEP 436).rN)NNzAKeyword arguments in argument clinic are currently not supported.z4TypeError: %s expected at least %s arguments, got %sz$argument_clinic "%s" not resolvable.)list_parse_argument_clinicrunpack enumerate push_backappendrr FakeTupleNotImplementedErrornextrwarningr#lenrr)r/r1r3 clinic_argsiteratorinameoptional allow_kwargsstars lazy_valueskeyargument value_sets r!r.r.Cs-m<<==K 0 0 2 233H4=k4J4J0 0D(L% A::K!) - - X?&&X777E""8,,,,H. LLMNN N N N K  aZZ%'' 'X|44 X ? M] ^ ^ ^   H  MPK 0 0! 5 5 5 !)!1IIx~~7G7G    M@$ G G G ?r(c#Kd}d}|rtjd|}|t|dd}|dsd}Y|p!t |d}|d}|d}||d}||||fV|rd}|dSdS)NFz%(?:(?:(\[),? ?|, ?|)(\**\w+)|, ?/)\]*rr9Tr*)rematchrDgroupboolcount)stringrJrIrSwordrKs r!r;r;jsLH  A6JJEKKNN++,,-{{1~~ L 3tEKKNN33{{1~~ 3EFF|X|U3333  L!      r(ceZdZddZdZdS)_AbstractArgumentsMixinNctr,rA)selffuncdefs r!r<z_AbstractArgumentsMixin.unpack!!r(cgSr,r'r]s r!get_calling_nodesz)_AbstractArgumentsMixin.get_calling_nodess r(r,)r$r%r&r<rbr'r(r!rZrZs7""""r(rZc&eZdZUdZdZeed<dZdS)AbstractArgumentsN argument_node)r$r%r&contextrer__annotations__trailerr'r(r!rdrds*GM3GGGr(rdc#K|dS|jdkr"|jdkr|jddvsd|fVdSt|j}|D]}|dkr |dvr-t|d}|Jt |j|fV:|jdkrX|jddvrIt |jdksJt |jdj|jdfVd|fVdS)NarglistrNr)rQz**,r9r)typechildreniterrBrDr0)rjrFchildcs r!unpack_arglistrqs=|y  LJ & &7+;A+>++M+MjG$%%H   C<<  k ! !Xt$$A===ek""A% % % % % Z: % %q![00u~&&!++++enQ'-..q0AA A A A AU(NNNN  r(cxeZdZUeed<d dZeedZd dZ dZ dZ dZ d Z dS) TreeArgumentsrfNc>||_||_||_||_dS)zS :param argument_node: May be an argument_node or a list of nodes. N)rerf_inference_staterh)r]r/rfrerhs r!__init__zTreeArguments.__init__s&+ / r(c||i|Sr,r')clsr2kwargss r! create_cachedzTreeArguments.create_cachedssD#F###r(c #t Kg}tjD]\} |dkraj } fd|D}t t |D]}dt d|DfV m|dkr=j }|D]}tj| Ed{V jdkr j }t|dkr=| |dj tj|df j d} | jdkr | j d} tjjj| j d } dt#| fVydtj fV|Ed{VdS) Nrc>g|]}tj|Sr')_iterate_star_argsrf).0aelr^r]s r! z(TreeArguments.unpack..s9...!"0 aWMM...r(cg|]}||Sr,r')r~vs r!rz(TreeArguments.unpack..s<< 1-1\/<'){1~     #N4$8$888888 dlB ? ??????r(c#Kt|jD]D\}}d}|jdkr+t|jdkr|jddd\}}|||fVEdS)NrNrr9)rqrerlrDrm)r]rrNdefaults r!_as_tree_tuple_objectsz$TreeArguments._as_tree_tuple_objectss$243E$F$F 0 0 JG} **x())Q..(0(9##A#(>%HgGZ/ / / / /  0 0r(c#K|D]:\}}}|rt|tjs#t |j|V;dSr,)r isinstancerNamerrf)r]rHrrs r!iter_calling_names_with_starz*TreeArguments.iter_calling_names_with_starsk)-)D)D)F)F 9 9 %D': Zdi%@%@ $T\488 8 8 8 8  9 9r(c2d|jjd|jdSN) __class__r$reras r!__repr__zTreeArguments.__repr__s#!^444d6H6H6HIIr(cjg}|}||vrt|tsn||tt |D]}|}t|dkrn^t|dtrgcSt|dtsn"|d }|j }||v|j t|j|j gS|jt|j|jgSgS)Nrr)rrsr?reversedr:rgotorDrr get_executed_param_namer1rerrfrh)r]old_arguments_listr1 calling_namenamesexecuted_param_names r!rbzTreeArguments.get_calling_nodessI 111i77   % %i 0 0 0 (i.T.T.V.V)W)W X X   $))++u::??EeAh(:;;III!%(I66E&+Ah&F&F&H&H#/9 #111&  " .&y'8):QRRS S   (&y'8):KLLM M r(r,)r$r%r&rrgrv classmethodrrzr<rrrrbr'r(r!rsrss LLL**,,$$-,[$%%%%N000999JJJr(rsc"eZdZdZddZdZdS)ValuesArgumentsc||_dSr,) _values_list)r] values_lists r!rvzValuesArguments.__init__s'r(Nc#DK|jD]}dt|fVdSr,)rr )r]r^rs r!r<zValuesArguments.unpacks>' 0 0F/// / / / / 0 0r(c2d|jjd|jdSr)rr$rras r!rzValuesArguments.__repr__s#!^444d6G6G6GHHr(r,)r$r%r&rvr<rr'r(r!rrsK(((0000IIIIIr(rcjeZdZdZedZedZedZd dZdZ dZ dS) TreeArgumentsWrapperc||_dSr,)_wrapped_arguments)r]r1s r!rvzTreeArgumentsWrapper.__init__s"+r(c|jjSr,)rrfras r!rfzTreeArgumentsWrapper.context &..r(c|jjSr,)rreras r!rez"TreeArgumentsWrapper.argument_node$s&44r(c|jjSr,)rrhras r!rhzTreeArgumentsWrapper.trailer(rr(Nctr,r\)r]r4s r!r<zTreeArgumentsWrapper.unpack,r_r(c4|jSr,)rrbras r!rbz&TreeArgumentsWrapper.get_calling_nodes/s&88:::r(c2d|jjd|jdSr)rr$rras r!rzTreeArgumentsWrapper.__repr__2s#!^444d6M6M6MNNr(r,) r$r%r&rvpropertyrfrerhr<rbrr'r(r!rrs,,,//X/55X5//X/"""";;;OOOOOr(rc#K|ds,|*d|jjd|}tj|d|| |j}|Ed{VdS#t $rYdSwxYw)N__iter__ TypeError: z,() argument after * must be a sequence, not ztype-error-starmessage)py__getattribute__rHr0raddrr)rfarray input_noder^miter_s r!r}r}6s  # #J / /L   <%%%uu.A L"3Z K K K K 577      sA A,+A,c ddlm}t||r|jjdkriSt|t jr|jdkr|S|*d|jj d|}tj |d||iS)Nr)CompiledInstancedictrz* argument after ** must be a mapping, not ztype-error-star-starr) jedi.inference.value.instancerrrH string_namerSequence array_typeexact_key_itemsr0rr)rfrrr^rrs r!rrEs>>>>>>%)** uz/E/O/O E8, - -%2Bf2L2L$$&&&   <%%%uu.A L"8*a P P P P r()rr,),rR itertoolsrtypingr parso.pythonrjedirjedi.inference.utilsrjedi.inferencerjedi.inference.lazy_valuer r r r jedi.inference.namesr rrjedi.inference.base_valuerrrjedi.inference.valuerjedi.inference.cacherr Exceptionr#r7r.r;rZrdrqrsrrr}rr'r(r!rs !!!!!!111111######))))))))))))RRRRRRRRRRMMMMMMMMMM))))))FFFFFF@@@@"        8$$$N   ,/ 2fffff%fffR I I I I I' I I IOOOOO2OOO4         r(