TL i [dZddlmZddlmZddlmZmZmZddlm Z m Z m Z m Z ddl mZmZddlmZddlmZmZdd lmZmZmZmZmZmZmZdd lmZdd lm Z dd l!m"Z"Gd dZ#Gddee#Z$Gdde$Z%dZ&GddZ'GddZ(Gddee#Z)Gdde'Z*Gdde*e)Z+Gdde*e)Z,Gd d!e*e$Z-Gd"d#Z.Gd$d%e'e)e.Z/Gd&d'e)Z0Gd(d)e(e0e.Z1Gd*d+e)Z2Gd,d-e2Z3Gd.d/e2Z4Gd0d1e(e)e.Z5Gd2d3e)Z6d4Z7Gd5d6eZ8y7)8zd Contains all classes and functions to deal with lists, dicts, generators and iterators in general. )compiled)analysis)LazyKnownValueLazyKnownValues LazyTreeValue)get_int_or_none is_stringreraise_getitem_errorsSimpleGetItemNotFound) safe_propertyto_list)inference_state_method_cache)LazyAttributeOverwritepublish_method)ValueSetValue NO_VALUESContextualizedNodeiterate_valuessentinelLazyValueWrapper)get_sync_comp_forsCompForContext)check_array_additionsc2eZdZddZdZej Zy) IterableMixinNc$|j|SN) py__iter__selfcontextualized_nodes c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/jedi/inference/value/iterable.py py__next__zIterableMixin.py__next__s233cVttj|jdgSNNonerrbuiltin_from_nameinference_stater"s r$py__stop_iteration_returnsz(IterableMixin.py__stop_iteration_returns#33D4H4H&QRSSr&r)__name__ __module__ __qualname__r%r.rget_safe_valuer&r$rrs4T))Nr&rceZdZdZdZdZdZeddZededd Z d Z e d Z d Z y) GeneratorBaseNcF|jj\}|Sr)_get_clsexecute_annotation)r"instances r$_get_wrapped_valuez GeneratorBase._get_wrapped_value)sMMO668 r&cT|jjjd\}|SN Generator)r, typing_modulepy__getattribute__)r" generators r$r8zGeneratorBase._get_cls-s&))77JJ;W r&cy)NTr4r-s r$ py__bool__zGeneratorBase.py__bool__1r&__iter__ct|gSr)rr" argumentss r$_iterzGeneratorBase._iter4sr&send__next__cVtjd|jDS)Nc3<K|]}|jywrinfer.0 lazy_values r$ z&GeneratorBase._next..;!Y*"2"2"4!Yr from_setsr rGs r$_nextzGeneratorBase._next8s"!!!YtGX!YYYr&cVttj|jdgSr(r*r-s r$r.z(GeneratorBase.py__stop_iteration_returns=r/r&c.tj|dSr=)rCompiledValueNamer-s r$namezGeneratorBase.name@s))$ <>@ *i!C D}},,R00r&)r0r1r2 array_typer;r8rCrrIrXr.propertyr\rfr4r&r$r6r6&svJJ   FJZ ZT==1r&r6c6eZdZdZfdZddZdZdZxZS)r>zHandling of `yield` functions.c2t||||_yr)super__init___func_execution_context)r"r,func_execution_context __class__s r$rlzGenerator.__init__Ms )'=$r&c|jj}|r|j|S|jjSr)rminfer_annotationsiterateget_yield_lazy_values)r"r# iteratorss r$r zGenerator.py__iter__Qs@00BBD $$%89 9++AACCr&c6|jjSr)rmget_return_valuesr-s r$r.z$Generator.py__stop_iteration_returnsWs++==??r&cNdt|jd|jdSN)typer0rmr-s r$__repr__zGenerator.__repr__Zs#Dz22D4P4PQQr&r) r0r1r2__doc__rlr r.r| __classcell__ros@r$r>r>Ks(>D @Rr&r>c|jd}|jd}|dk(r}|jdjddk(rW|jd}|jdk(r|jd}t||||jd|jdSt}n|d k(rt}n |d k(rt }|jd}|jdk(r|jd}||||jd S) Nr{:comp_for)sync_comp_for_nodekey_node value_node([)defining_contextr entry_node)childrenr{DictComprehensionSetComprehensionGeneratorComprehensionListComprehension)r,valueatombrackettest_list_comp sync_comp_forclss r$comprehension_from_atomr^smmAG]]1%N#~ ==  $ $Q '3 .*33A6M!!Z/ - 6 6q 9 $#0'003)2215  #C C$ C"++A.MZ'%..q1 (!**1-  r&cdeZdZedZddZegedZddZdZ y) ComprehensionMixinct||Srr)r"parent_contextrs r$_get_comp_for_contextz(ComprehensionMixin._get_comp_for_contextsnh77r&Nc#K|d}|jjdk(}|jd}|xs |j}|j |}t ||}|j ||}|jd} t|D]m\} } | j} t|| | } |j||}|j|| 5 |j|dd|Ed{dddoy7#t$rQ|j |j}|jdk(r ||j |j fn|YfwxYw#1swYxYww)Nrrr)is_asyncrdict)parentr{r_defining_context infer_noderrr enumeraterOunpack_tuple_to_dictrpredefine_names_nested IndexError _entry_noderg _value_node)r" comp_forsrrr input_node input_typescniteratedexprlistirRtypesdctcontexts r$rzComprehensionMixin._nestedsqQ<??'':5&&q) 'A4+A+A$// ;  ;&&rH&=$$Q'&x0 'MAz$$&E&~uhGC00G((37 ''#||IabM7CCC ' ' 'D!'&11$2B2BCH&0&(:(:4;K;K(LLL& ' ' 'sOCE&EC=+C;,C=0 E&;C==AEEEEE# E&defaultc#~Ktt|j}|j|Ed{y7wr)tupler_sync_comp_for_noder)r"rs r$_iteratezComprehensionMixin._iterates0,T-E-EFG << ***s 3=;=c#PK|jD]}t|ywrrr)r"r#set_s r$r zComprehensionMixin.py__iter__s&MMO (D!$' ' (s$&cNdt|jd|jdSrx)r{r0rr-s r$r|zComprehensionMixin.__repr__s#Dz22D4L4LMMr&r) r0r1r2rrrr rr r|r4r&r$rrsH!#8$8':""- + .+(Nr&rceZdZdZy) _DictMixincBtd|jDS)Nc3<K|]}|jywr)rb)rQc_sets r$rSz+_DictMixin._get_generics..sUUU&&(UrU)rget_mapping_item_valuesr-s r$ _get_genericsz_DictMixin._get_genericssUd6R6R6TUUUr&N)r0r1r2rr4r&r$rrsVr&rcfeZdZdZedZdZeddZdZ dZ e d Z d Z y ) Sequencer:cBtj||jSr)rr[rgr-s r$r\z Sequence.names))$@@r&c@|jjfSr)rarbr-s r$rzSequence._get_genericss++-99;==r&r4rc"|jSr)rr-s r$_cached_genericszSequence._cached_genericss!!##r&cddlm}ddlm}t j |j |j}||||jj\}|S)Nr) GenericClassr^) jedi.inference.gradual.baserr`r_rr+r,rgrr9)r"rr_klasscs r$r;zSequence._get_wrapped_valuesY<G**4+?+?Q    5 5 7 8     r&cyrr4r-s r$rCzSequence.py__bool__rDr&c.|jjSr)r,builtins_moduler-s r$rzSequence.parents##333r&cj|jdk(r|jStt|gS)Nr)rg _dict_valuesrr)r"index_value_setr#s r$ py__getitem__zSequence.py__getitem__s/ ??f $$$& &hv.//r&N)r0r1r2api_typerhr\rrrr;rCr rrr4r&r$rrs\H AA>""-$.$440r&rceZdZfdZxZS)_BaseComprehensioncp|jdk(sJt| |||_||_||_yNr)r{rkrlrrr)r"r,rrrros r$rlz_BaseComprehension.__init__s<!&&/999 )!1#5 %r&)r0r1r2rlr~rs@r$rrs &&r&rceZdZdZdZy)rlistct|tr t|gSt|j }t t t5||}ddd|jS#1swYjSxYwr) isinstanceslicerrr r r TypeErrorrO)r"index all_typesrRs r$py__simple_getitem__z&ListComprehension.py__simple_getitem__sl eU #TF# #*+ #J : *"5)J *!! *!!s A((BN)r0r1r2rgrr4r&r$rrs J"r&rceZdZdZy)rsetNr0r1r2rgr4r&r$rrsJr&rc eZdZy)rN)r0r1r2r4r&r$rrsr&rceZdZdZdZy) _DictKeyMixincB|j|jfSr) _dict_keysrr-s r$rz%_DictKeyMixin.get_mapping_item_valuess $"3"3"555r&c"|jSr)rr-s r$get_key_valuesz_DictKeyMixin.get_key_valuess  r&N)r0r1r2rrr4r&r$rrs 6!r&rczeZdZdZfdZd dZdZdZdZe ddZ e d d Z d Z xZ S) rrc~|jdk(sJt| |||_||_||_||_yr)r{rkrlrrrr)r"r,rrrrros r$rlzDictComprehension.__init__sD!&&/999 )!1#5 #%r&c#VK|jD]\}}t|ywrr)r"r#keysvaluess r$r zDictComprehension.py__iter__s* MMO (LD&!$' ' (s')c|jD]/\}}|D]%}|jt|k(s!|ccS1t)Nr)rr3objectr )r"rrrks r$rz&DictComprehension.py__simple_getitem__sT MMO "LD& "##FH#5>!M  " " $%%r&cVtjd|jDS)Nc3&K|] \}}| ywrr4rQrrs r$rSz/DictComprehension._dict_keys..s!K<4$!KrrWrr-s r$rzDictComprehension._dict_keyss!!!K4==?!KKKr&cVtjd|jDS)Nc3&K|] \}}| ywrr4rs r$rSz1DictComprehension._dict_values.. s!M\T6&!Mrrr-s r$rzDictComprehension._dict_valuess!!!MT]]_!MMMr&rcvt|j}tt|j|ggSrrrrFakeListr,r"rHrRs r$_imitate_valuesz!DictComprehension._imitate_values"2$T%6%6%89 $"6"6 EFGGr&itemsc |jDcgc]8\}}tt|jt |t |g:}}}t t |j|gScc}}wr)rr FakeTupler,rrr)r"rHkeyr lazy_valuess r$_imitate_itemsz DictComprehension._imitate_items'sz#mmo  U (($S)$U+-    $"6"6 DEFF  s=A4cgSrr4r-s r$exact_key_itemsz!DictComprehension.exact_key_items6s  r&r)r0r1r2rgrlr rrrrrr r r~rs@r$rrs^J&(&LNHHHG G Gr&rcXeZdZdZddddZfdZfdZdZd d Zd Z d Z d Z xZ S)SequenceLiteralValue)testlist_star_exprtestlist subscriptlistrrr)rrrct||||_||_|jj|j vrd|_ytj|jd|_y)Nrr) rkrlrrr{ _TUPLE_LIKErgrmappingr)r"r,rrros r$rlzSequenceLiteralValue.__init__BsZ ) !1 99>>T-- -%DO2::4==;KLDO Kr&c~|jdk(r td|jDSt|S)Nrc3XK|]"}|jj$ywr)rOrb)rQxs r$rSz5SequenceLiteralValue._get_generics..OsLQ..0Ls(*)rgrr rkr)r"ros r$rz"SequenceLiteralValue._get_genericsMs5 ??g %L$//:KLL Lw$&&r&c&t|tr t|gSttt t 5|j|}ddddk(s|jdk(rtS|jj|S#1swY>xYw)9Here the index is an int/str. Raises IndexError/KeyError.Nr subscript) rrrr rKeyErrorrget_tree_entriesr{rrr)r"rnodes r$rz)SequenceLiteralValue.py__simple_getitem__Rs| eU #TF# #' 8ZH 6,,.u5 6s{dii;6  ))44T: :  6 6s BBc #K|jD]R}|dk(s|jdk(r$tt|jddd;t |j|Tt |j|Ed{y7w) While values returns the possible values for any array field, this function returns the value for a certain index. rrN)rr{rSlicerrr)r"r#rs r$r zSequenceLiteralValue.py__iter__]s} ))+ BDs{dii;6%U4+A+A4t%TUU#D$:$:DAA  B))?)?FFFsA?B BB c4t|jSr)lenrr-s r$ py__len__zSequenceLiteralValue.py__len__ks4((*++r&c|jj}|jj|jvr|dddS|d}|dvrgS|jdk(r/|jdddDcgc]}|jdk7r|c}S|jdk(rg}t |j}|D]}|dk(rt |t |d t |d}||dk(r"|jdk(rC|j |U|d k(sJ|j |t |ft |d|S|jdk(rgS|gScc}w) Nrr)]}) testlist_comp star_exprdictorsetmakerz**,r)rrr{riternextappend)r"r array_noderkviteratorr ops r$rz%SequenceLiteralValue.get_tree_entriesos[ II   99>>T-- -SqS6MqT  (I ??o -'1':':3Q3'?2ezz[02 2 __ 0 0BJ//0H -$;N4(h-BzR3Y88{2!IIcN!Sy(y 3X"78Xt,% -&I+- "|#?2s/EcPd|jjd|jdSrx)ror0rr-s r$r|zSequenceLiteralValue.__repr__s#~~66 BBr&r) r0r1r2rrrlrrr r$rr|r~rs@r$rr<s?CKG L' ; G,+$ZCr&rcneZdZdZdZdZd dZeddZedd Z d Z d Z d Z y)DictLiteralValuercLtj||||_||_yr)rrlrr)r"r,rrs r$rlzDictLiteralValue.__init__s# $0!1 r&c^tj|j|}|jD]m\}}|jj |D]J}|j |dD]3}|js|jj |cccSLotd|z)rz==zNo key found in dictionary %s.) rcreate_simple_objectr,rrrexecute_operationr3r )r"rcompiled_value_indexr rrkey_vs r$rz%DictLiteralValue.py__simple_getitem__s'<,,. d>T>TV[0\\\ ] ]s AA0-A0c\tjfdjDS)Nc3ZK|]"\}}jj|$ywrrrrQrvr"s r$rSz0DictLiteralValue._dict_values..." 1  " " - -a 0" (+rrWrr-s`r$rzDictLiteralValue._dict_values,!!" --/"   r&c\tjfdjDS)Nc3ZK|]"\}}jj|$ywrrDrEs r$rSz.DictLiteralValue._dict_keys..rGrHrIr-s`r$rzDictLiteralValue._dict_keysrJr&r) r0r1r2rgrlrr rrr r rrr4r&r$r6r6s]JM )HHHG G G]  r&r6c8eZdZfdZdZddZdZdZxZS) _FakeSequencec2t||||_y)z7 type should be one of "tuple", "list" N)rkrl_lazy_value_list)r"r,lazy_value_listros r$rlz_FakeSequence.__init__s ) /r&ct|tr t|gSttt 5|j |}ddd|jS#1swYjSxYwr)rrrr rrrPrOr"rrRs r$rz"_FakeSequence.py__simple_getitem__sa eU #TF# # #J : 6..u5J 6!! 6!!s AA1c|jSr)rPr!s r$r z_FakeSequence.py__iter__s$$$r&c>tt|jSr)boolr#rPr-s r$rCz_FakeSequence.py__bool__sC--.//r&cNdt|jd|jdSrx)r{r0rPr-s r$r|z_FakeSequence.__repr__s#Dz22D4I4IJJr&r) r0r1r2rlrr rCr|r~rs@r$rNrNs0"%0Kr&rNceZdZdZy)rrNrr4r&r$rrJr&rceZdZdZy)rrNrr4r&r$rrrYr&rcdeZdZdZfdZd dZdZeddZdZ dZ d Z d Z xZ S) FakeDictrc2t||||_yr)rkrl_dct)r"r,rros r$rlzFakeDict.__init__s ) r&c#K|jD]-}ttj|j|/ywr)r^rrr9r,)r"r#r s r$r zFakeDict.py__iter__s:99 [C !>!>t?S?SUX!YZ Z [s>Acttt5|j|}ddd|j S#1swYj SxYwr)r rrr^rOrSs r$rzFakeDict.py__simple_getitem__sH #Hi 8 *5)J *!! *!!s =Arc rtt|jt|j ggSr)rrr,rrrGs r$_valueszFakeDict._valuess8  T..0 1 2    r&cjtjd|jjDS)Nc3<K|]}|jywrrNrPs r$rSz(FakeDict._dict_values..$s!Z*"2"2"4!ZrU)rrWr^rr-s r$rzFakeDict._dict_values#s&!!!ZtyyGWGWGY!ZZZr&cVtjd|jDS)Nc3<K|]}|jywrrNrPs r$rSz&FakeDict._dict_keys..'rTrUrVr-s r$rzFakeDict._dict_keys& !!!YtGX!YYYr&c6|jjSr)r^rr-s r$r zFakeDict.exact_key_items)syy  r&cPd|jjd|jdS)Nryz: rz)ror0r^r-s r$r|zFakeDict.__repr__,s!^^44dii@@r&r)r0r1r2rgrlr rrrbrrr r|r~rs@r$r\r\ sHJ[" H  [Z!Ar&r\c,eZdZfdZddZdZxZS) MergedArraycZt|||dj|_||_y)N)rkrlrg_arrays)r"r,arraysros r$rlzMergedArray.__init__1s( ) *// r&c#bK|jD]}|jEd{y7wr)rnr )r"r#arrays r$r zMergedArray.py__iter__6s.\\ *E'') ) ) * )s #/-/cVtjd|jDS)Nc3<K|]}|jywrrNrPs r$rSz3MergedArray.py__simple_getitem__..;rTrUrV)r"rs r$rz MergedArray.py__simple_getitem__:rgr&r)r0r1r2rlr rr~rs@r$rkrk0s *Zr&rkc |jdk(r|j|iS|jdk(r+|jddvrt|||jdS|jdvri}t |jddd}d}|j t ||D]=}|dz } t|}|jt||j|?t|d}|r|tj|d |d |z |S|jdk(s|jdk(riS|jdk(riSt#t$rtj|d d |z YwxYw)zG Unpacking tuple assignments in for statements and expr_stmts. r\rr)rrr)rr)rrNrzvalue-error-too-many-valuesz3ValueError: too many values to unpack (expected %s))messagezvalue-error-too-few-valuesz.ValueError: need more than %s values to unpackpower atom_exprr*)r{rrrr-rrrr.updaterO StopIterationraddNotImplementedError) rrrrpartsnrRpart has_partss r$rr>s}}&& & X%6%6q%9Z%G#GUH4E4Ea4HII 1 1X&&ss+, --(:7H(MN TJ FA TE{  /9I9I9KTRS T% Y* LL"> !QTU!U W ' !X]]k%A + % %! ` W&CT%Z]^%^` `s) E%E-,E-c"eZdZdZdZefdZy)r!c^|j|_||_||_||_||_yr)r,_context_start_stop_step)r"python_contextstartstopsteps r$rlzSlice.__init__es,-==&    r&c~tj|jjd}|j \}|S)Nr)rr+rr,execute_with_values)r"r slice_values r$r;zSlice._get_wrapped_valuems4**4==+H+H'R002 r&cfd} t|j|j|jS#t$rtdddcYSwxYw)ze Imitate CompiledValue.obj behavior and return a ``builtin.slice()`` object. c|yjj|}t|dk7rt|\}t |S)Nr)rrr#rr)elementresultrr"s r$getz!Slice.get_safe_value..getwsE]]--g6F6{a! FE"5) )r&N)rrrrr)r"rrs` r$r3zSlice.get_safe_valuersS * +T[[)3tzz?C OL L +tT* * +srrrrrrrrrrrr6rNrrr\rkrr!r4r&r$rsu$#227=I11E * * "1*M"1JR R&!H-N-N`VV "0%}"0J&+& "*H ")8 / !!5*Hm5paC8aCHG z#7G TKHK4 }!Az8]!AH Z( Z#L#+ #+r&