TL idZddlmZddlmZddlmZddlmZddl m Z dZ dZ d Z d Zedd ZGd d eZy)a  This module is responsible for inferring *args and **kwargs for signatures. This means for example in this case:: def foo(a, b, c): ... def bar(*args): return foo(1, *args) The signature here for bar should be `bar(b, c)` instead of bar(*args). ) Parameter)tree)to_list)ParamNameWrapper)is_big_annoying_libraryc#Kddlm}ddlm}|j}t j|j dd}|j}|jdj}|jdj}|jj|jD]}||jcxkr|ksn|j} | jdk(s8| jdd|j zk(sX|| d } | d|j#| } t%|| |st'| | } |j)|j*| | jd | } | D]}|| f yw) Nr)search_ancestor) TreeArgumentsfuncdeflambdefargument*trailer)context argument_noder)parso.python.treer jedi.inference.argumentsr parent_contextr tree_name get_root_nodechildren start_posend_posget_used_namesget string_nameparenttype star_countcreate_context_goes_to_param_name _to_callables create_cachedinference_state) param_namer r execution_context function_node module_nodestartendnamerrrvaluesargscs ^/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/jedi/inference/star_args.py_iter_nodes_for_paramr2sa16"11 (()=)=y)TM--/K  " "2 & 0 0E   $ , ,C**,001G1GH* DNN (S ({{H}} * ))!,j6K6K0KK)(I>&/>>wGG*:wE!.w!@,::-==$+*1*:*:1*=$+ ;  "(*A"#T'M*%*s%B=E2E2E2? E2 E2*AE2c|jdk7ryddlm}|||j}t fd|DS)Nr-Fr)TreeNameDefinitionc3K|]8}j|jk(xrj|jk(:ywN)rr).0pr's r1 z&_goes_to_param_name..>sF((A,<,<<7''1;;67s>A)r jedi.inference.namesr4gotoany)r'rpotential_namer4founds` r1r#r#9sFf$7 w 7 < < >E  cddlm}|j}|jddk(}|j |j|}|j|dzdD]}||k(r|S||||}|S)Nr) infer_trailerawaitr)jedi.inference.syntax_treerArr infer_node)rrrA atom_exprindexr.trailer2s r1r$r$Cs8I   q !W ,E    2 25 9 :F&&uqyz2: h   Mw9: Mr?c# Kd}t}|jD]\}}||dz }|j| |D]=}|r|jr|dz}|j|vr|j r:|?yw)Nrr)setunpackaddmaybe_positional_argumentrmaybe_keyword_argument) arguments param_namescount used_keyskey_r8s r1_remove_given_paramsrTQs EI""$Q ; QJE MM#    Q002 QJE  ==I %!*B*B*D  sBBc #K|r#t|djr |Ed{yt}g}g}g}g}g}d}d} |D]2} | j} | tj k(r|dzs-t | }| };| jtjk(r|dzsbtt | }| } y| tjk(r|dzs|j| | tjk(r |dzs| |dk(rt| tj|dk(r+|jt| tj|j| j| 5d} d} d}|D]=}|\}}|}||vr|j|nd}|j!D]}d} |dk(rd}g}t#tt%||j'd|D]} | jtjk(r|j| 6| jtj k(r|j| i| jtjk(r|j| |j| t)|t)| kDs|}  @| D]} |dk(r>| jtj k7rt| tjF| jtj*k(r|j| j| | s||n |r|d|D]\}}|j!D]}d}t#tt%||j'dd D]h} | jtjk(r|j| 6| jtjk(sX|j| j|D]0} | j|vr| |j| j2|s| | y|r|dyy7@w) NrrFT) resolve_stars)r!)rrrIget_kindrVAR_POSITIONALr2 VAR_KEYWORDlist KEYWORD_ONLYappendPOSITIONAL_ONLYParamNameFixedKindrKrremoveget_signaturesprocess_paramsrTget_param_nameslenPOSITIONAL_OR_KEYWORD)rOr! used_names arg_callableskwarg_callables kw_only_names kwarg_names arg_namesoriginal_arg_nameoriginal_kwarg_namer8kindlongest_param_namesfound_arg_signaturefound_kwarg_signaturefunc_and_argumentfuncrNnew_star_count signatureargs_for_this_funcs r1rdrdcs< ";q>#@#@ A# " " JMOMKI zz| 9++ +A~ 5a 8 $%! ZZ\Y22 2A~"&'>>q}}-G  #4#@ l+ ,i,,. ,I$( !#-!!111F$% & , ::<9#8#88&&q)ZZ\Y%;%;;!((+ , , ,& ==J & q}}% & !%8%D!! !n S #s7 Q%Q"A Q%/4Q%$/Q%*Q%?F8Q%9EQ%A!Q%c$eZdZfdZdZxZS)rac2t||||_yr6)super__init__ _new_kind)selfr'new_kind __class__s r1r|zParamNameFixedKind.__init__s $!r?c|jSr6)r})r~s r1rZzParamNameFixedKind.get_kinds ~~r?)__name__ __module__ __qualname__r|rZ __classcell__)rs@r1raras "r?raN)rX)__doc__inspectrparsorjedi.inference.utilsrr:rjedi.inference.helpersrr2r#r$rTrdrarWr?r1rsT (1: *F $ o od)r?