TL iWddlmZddlmZddlmZddlmZddlmZddl m Z ddl m Z m Z ddlmZmZdd lmZmZmZmZdd lmZmZmZmZmZdd lmZmZdd lm Z dd l!m"Z"m#Z#ddl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*ddl+m,Z,ddl-m.Z.ddl/m0Z0m1Z1GddeZ2GddeZ3Gdde(Z4Gdde)Z5GddeZ6Gdde6Z7Gdde6Z8Gd d!e8Z9Gd"d#e8Z:Gd$d%eZ;Gd&d'eZ<Gd(d)e&eZ=Gd*d+eZ>Gd,d-eZ?Gd.d/eZ@Gd0d1eZAGd2d3e,ZBGd4d5e#ZCy6)7)abstractproperty)search_ancestor)debug)settings)compiled)CompiledValueFilter)values_from_qualified_namesis_big_annoying_library)AbstractFilter AnonymousFunctionExecutionFilter) ValueNameTreeNameDefinition ParamName NameWrapper)Value NO_VALUESValueSetiterator_to_value_set ValueWrapper)LazyKnownValueLazyKnownValues)inference_state_method_cache)ValuesArgumentsTreeArgumentsWrapper) FunctionValue FunctionMixinOverloadedFunctionValueBaseFunctionExecutionContextFunctionExecutionContextFunctionNameInClass) ClassFilter)get_dynamic_array_instance)function_is_staticmethodfunction_is_classmethodc*eZdZfdZdZdZxZS)InstanceExecutedParamNamec8t|||d||_y)N) argumentssuper__init__ _instance)selfinstancefunction_value tree_name __class__s c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/jedi/inference/value/instance.pyr+z"InstanceExecutedParamName.__init__s#  I  7!c.t|jgSN)rr,r-s r2inferzInstanceExecutedParamName.infer s())r3cyNTr6s r2matches_signaturez+InstanceExecutedParamName.matches_signature#r3)__name__ __module__ __qualname__r+r7r; __classcell__r1s@r2r&r&s" *r3r&c(eZdZfdZfdZxZS)AnonymousMethodExecutionFilterc2t||i|||_yr5r)r-r.argskwargsr1s r2r+z'AnonymousMethodExecutionFilter.__init__(s $)&)!r3c^|jdk(rt|jjr/t |j j |j|St|jjs!t |j |j|St|%||SNr) position_indexr$_function_value tree_noder&r, py__class__r#r*_convert_param)r-paramnamer1s r2rNz-AnonymousMethodExecutionFilter._convert_param,s   1 $&t';';'E'EF0NN..0(( .d.B.B.L.LM0NN(( w%eT22r3)r=r>r?r+rNr@rAs@r2rCrC's"33r3rCc,eZdZfdZddZdZxZS)AnonymousMethodExecutionContextc2t||||_yr5r*r+r.)r-r.valuer1s r2r+z(AnonymousMethodExecutionContext.__init__>s   r3c#XKt|j||j||yw)N)until_position origin_scope)rCr._value)r-rWrXs r2 get_filtersz+AnonymousMethodExecutionContext.get_filtersBs(, MM4)%  s(*ct|jj}t|j|j|dj |d<|SrI)listrYget_param_namesr&r.r0)r- param_namess r2r]z/AnonymousMethodExecutionContext.get_param_namesIsJ4;;6689 2 MM KK N $ $ A r3)NN)r=r>r?r+rZr]r@rAs@r2rRrR=s! r3rRceZdZfdZxZS)MethodExecutionContextc2t||i|||_yr5rTrEs r2r+zMethodExecutionContext.__init__Us $)&)  r3)r=r>r?r+r@rAs@r2r`r`Ts !!r3r`ceZdZdZfdZdZdZdZdZdZ e dZ d Z d Z d Zdd Zfd Zdfd ZdZxZS)AbstractInstanceValuer.c4t|||||_yr5)r*r+ class_value)r-inference_stateparent_contextrer1s r2r+zAbstractInstanceValue.__init__]s .9'r3cyr9r:r6s r2 is_instancez!AbstractInstanceValue.is_instancecr<r3c6|jjSr5)reget_qualified_namesr6s r2rkz)AbstractInstanceValue.get_qualified_namesfs3355r3c|jSr5rer6s r2get_annotated_class_objectz0AbstractInstanceValue.get_annotated_class_objectir3c|jSr5rmr6s r2rMz!AbstractInstanceValue.py__class__lror3cyr5r:r6s r2 py__bool__z AbstractInstanceValue.py__bool__osr3ctr5)NotImplementedErrorr6s r2rPzAbstractInstanceValue.namess!!r3c|jdj||j}|jDcgc]}|j |c}Scc}w)N__call__)py__getattribute__ py__get__reget_signaturesbind)r- call_funcsss r2ryz$AbstractInstanceValue.get_signatureswsJ,,Z8BB4IYIYZ &0&?&?&ABt BBBsAcb|jdD]}|j|}|s|cSgS)NF)include_self_names)rZget)r-rPfilternamess r2get_function_slot_namesz-AbstractInstanceValue.get_function_slot_names{s>&&%&@ FJJt$E   r3c@tjfd|DS)Nc3XK|]!}|jj#ywr5)r7execute_with_values).0rP inferred_argss r2 z?AbstractInstanceValue.execute_function_slots..s,"  -DJJL , ,m <" s'*)r from_sets)r-rrs `r2execute_function_slotsz,AbstractInstanceValue.execute_function_slotss#!!" "   r3c"|jSr5) py__name__)r-add_class_infos r2 get_type_hintz#AbstractInstanceValue.get_type_hints  r3c|jd}|st| ||St|gt j fd|DS)N __getitem__c3\K|]#}|jj%ywr5r7execute)rrPrFs r2rz6AbstractInstanceValue.py__getitem__..s"!O$**,"6"6t".iterates;!88I E $//0CDDD EDs )646)rr* py__iter__)r-rrrr1s`` @r2rz AbstractInstanceValue.py__iter__s766zB7%&9: : Eyr3cPd|jjd|jdS)N< of >)r1r=rer6s r2__repr__zAbstractInstanceValue.__repr__s#~~668H8HIIr3)Tr5)r=r>r?api_typer+rirkrnrMrrrrPryrrrrrrr@rAs@r2rcrcZs`H' 6  ""C ! PJr3rcc<eZdZfdZddZedZdZxZS)CompiledInstancec6t||||||_yr5)r*r+ _argumentsr-rfrgrer(r1s r2r+zCompiledInstance.__init__s .+F#r3c#|K|j}|j|d}|D]}t||ywNT)rXri)rnrZCompiledInstanceClassFilter)r-rXr~re class_filtersfs r2rZzCompiledInstance.get_filterssM557 #//%0  7A-dA6 6 7s:<cjtj||jjjSr5)rCompiledValueNamererP string_namer6s r2rPzCompiledInstance.names'))$0@0@0E0E0Q0QRRr3cy)NFr:r6s r2is_stubzCompiledInstance.is_stubsr3r9) r=r>r?r+rZpropertyrPrr@rAs@r2rrs($7SSr3rcteZdZedZedZd dZedZdZ d dZ fdZ dZ xZ S) _BaseTreeInstancec|jj}|dvr*|jjj r|Sy)N)r\setdict)rerrgget_root_contextis_builtins_moduler-rPs r2 array_typez_BaseTreeInstance.array_typesB**, * *''88:MMOKr3cVt||jjjSr5)r rerPr0r6s r2rPz_BaseTreeInstance.names!t//44>>??r3c#pK|j}|rD|jD]1}|jrt|||j |3|j |d}|D]D}t |trt||"t |trt||A|Fywr) rn py__mro__ is_compiledSelfAttributeFilter as_contextrZ isinstancer!InstanceClassFilterrr)r-rXr~reclsrrs r2rZz_BaseTreeInstance.get_filterss557 ",,. a(.dKAQS_``  a$//%0  A![))$22A231$:: s 6B6A=B6c8|} |}t|dd}|j|uritj||}t |||}|j j dk(r|j|j}n|j}n|j|S)Nfuncdefclassdefr+) rrLr from_context BoundMethodrPrUrrcreate_context)r- class_contextnodenew func_nodefunc bound_methodcontexts r2create_instance_contextz)_BaseTreeInstance.create_instance_contextsI!#y*=C&&#-$11-K*4E >>'':5*55dooFG*557G%%d++r3c|jrtStj|j|}t |j rtS|jdxs|jd}|j||S)z Since nothing was inferred, now check the __getattr__ and __getattribute__ methods. Stubs don't need to be checked, because they don't contain any logic. __getattr____getattribute__) rrrcreate_simple_objectrfr rgrr)r-rrPrs r2py__getattribute__alternativesz0_BaseTreeInstance.py__getattribute__alternativess| <<> ,,T-A-A;O #4#6#6 7 --m<E001CD **5$77r3c#Kd}|j|}|rt|j|ytjd|yw)N__next__z(Instance has no __next__ function in %s.)rrrrwarning)r-rrPnext_slot_namess r2rz_BaseTreeInstance.py__next__ sJ66t< !++O<  MMDd KsA A c|jd}|st| Stjfd|DS)Nrvc3\K|]#}|jj%ywr5r)rrPr(s r2rz/_BaseTreeInstance.py__call__..s"!Td$**,"6"6y"A!Tr)rr* py__call__rr)r-r(rr1s ` r2rz_BaseTreeInstance.py__call__s=,,Z87%i0 0!!!Te!TTTr3c&|jjD]!}|j|||}|tus|cS|j d}|r5| t j |jd}|j|||St|gS)z" obj may be None. __get__None) rerpy__get__on_classNotImplementedrrbuiltin_from_namerfrr)r-r.rerresultrs r2rxz_BaseTreeInstance.py__get__s ##--/ C**4;GF^+   ,,Y7 #55d6J6JFS..uh L LTF# #r3r9r5)r=r>r?rrrPrZrrrrrrxr@rAs@r2rrs] @@."# ,$ ,80LU$r3rcXeZdZfdZeddZdZdZfdZdZ xZ S) TreeInstancec|jdvr:|jjrtjr t ||}t ||||||_|j|_ y)N)r\r) rrrrdynamic_array_additionsr"r*r+rrLrs r2r+zTreeInstance.__init__2se  ! ! # 6"335HHJ//6tYG  .+F#$..r3N)defaultc*ddlm}m}t||j}|j j djD]}|jj}| |jdk7s|j|s|jxs |jSr5)rrer6s r2rnz'TreeInstance.get_annotated_class_object[s//1ET5E5EEr3cTt}|jdk(rt|jj D]l\}\}}|2|dk(r-|t j d|jDz}|s@|t tj|j|gz}n|S)Nrrc3ZK|]#}|jdk(r|j%ywrN)rget_key_values)rvs r2rz.TreeInstance.get_key_values..cs-1<<61((*1s)+) rr enumeraterunpackrrr7rrrf)r-valuesikeyr.s r2rzTreeInstance.get_key_values^s ??f $&/0F0F0H&I "?C;16h001!)!11F h(E(E,,)(F  r3cB|jdk(rtt|jj D]Q\}}|3t j fd|jD}|s7|cS|k(sA|jcSt|%S)Nrc3^K|]$}|jdk(r|j&ywr)rpy__simple_getitem__)r dct_valueindexs r2rz4TreeInstance.py__simple_getitem__..{s20%$//69"66u=0s*-) rreversedr\rrrrr7r*r )r-r r lazy_contextrr1s ` r2r z!TreeInstance.py__simple_getitem__ps ??f $&.d4??3I3I3K.L%M 4!\;%//0)5););)=0F % e|+1133 4w+E22r3cjd|jjd|jd|jdS)Nrr(z)>)r1r=rerr6s r2rzTreeInstance.__repr__s(#'>>#:#:Dr?r+rrrnrr rr@rAs@r2rr1s6 /"$/02F$3.4r3rceZdZdZy)AnonymousInstanceN)r=r>r?rr:r3r2rrsJr3rceZdZedZy)CompiledInstanceNamec#K|jjD]#}|jdk(rt| |%yw)Nfunction) _wrapped_namer7rCompiledBoundMethodr- result_values r2r7zCompiledInstanceName.infersC ..446 #L$$ 2),77""  #sAAN)r=r>r?rr7r:r3r2rrs##r3rc$eZdZdZdZdZdZy)rc ||_||_yr5r, _class_filter)r-r.rs r2r+z$CompiledInstanceClassFilter.__init__s!r3cV|j|jj|Sr5_convertrrrs r2rzCompiledInstanceClassFilter.get"}}T//33D9::r3cT|j|jjSr5r!rrr6s r2rz"CompiledInstanceClassFilter.values }}T//66899r3c>|Dcgc] }t|c}Scc}wr5)rr-rns r2r!z$CompiledInstanceClassFilter._converts167A$Q'777sN)r=r>r?r+rrr!r:r3r2rrs;:8r3rcheZdZfdZdZefdZdZdZd dZ dZ dZ fd Z d Z xZS) rc@t||||_||_yr5)r*r+r._class_context)r-r.rrr1s r2r+zBoundMethod.__init__s "  +r3cyr9r:r6s r2is_bound_methodzBoundMethod.is_bound_methodr<r3c@t|jt| Sr5)r r+r*rP)r-r1s r2rPzBoundMethod.names "    GL  r3c8t|jdd\}|S)Ntypes MethodType)r rf)r-cs r2rMzBoundMethod.py__class__s ()=)=w Ur3c6|Jt|j|Sr5)rr.r-r(s r2_get_argumentszBoundMethod._get_argumentss$$$  ::r3c|t|j|S|j|}t|j||Sr5)rRr.r5r`r4s r2 _as_contextzBoundMethod._as_contexts<  24==$G G'' 2 %dmmT9EEr3ct|jtr*|jj|j |S|j |}|j Sr5)r_wrapped_valuerrr5rr7)r-r(function_executions r2rzBoundMethod.py__call__sS d))+B C&&11$2E2Ei2PQ Q!__Y7!''))r3c|jjDcgc]#}t|j|j|%c}Scc}wr5)r9get_signature_functionsrr.r+)r-rs r2r<z#BoundMethod.get_signature_functionssF((@@B   t':':A >   s(Acdt|Dcgc]}|j|c}Scc}wr5)r*ryrz)r-sigr1s r2ryzBoundMethod.get_signaturess'*/'*@*BC3CCCs-cPd|jjd|jdS)Nrz: r)r1r=r9r6s r2rzBoundMethod.__repr__s!^^44d6I6IJJr3r5)r=r>r?r+r-rrPrMr5r7rr<ryrr@rAs@r2rrsG,   ;F* DKr3rceZdZdZdZy)rcyr9r:r6s r2r-z#CompiledBoundMethod.is_bound_methodr<r3cz|jjDcgc]}|j|c}Scc}wr5)r9ryrz)r-r>s r2ryz"CompiledBoundMethod.get_signaturess-*.*=*=*L*L*NO3OOOs8N)r=r>r?r-ryr:r3r2rrs Pr3rc>eZdZdZdZedZdZfdZxZ S)SelfNamez9 This name calculates the parent_context lazily. c.||_||_||_yr5)r,rr0)r-r.rr0s r2r+zSelfName.__init__s!*"r3cb|jj|j|jSr5)r,rrr0r6s r2rgzSelfName.parent_contexts#~~55d6H6H$..YYr3c|jSr5r,r6s r2get_defining_qualified_valuez%SelfName.get_defining_qualified_value ~~r3ct|jd}|a|jdjdk(rEddlm}||j |jdjdj}|r|St|%S)N expr_stmt annassignr)infer_annotation) rr0childrenrrrOrgexecute_annotationr*r7)r-stmtrOrr1s r2r7zSelfName.infers~t~~{;  }}Q$$ 3N)''q)9)B)B1)E$$&!Mw}r3) r=r>r?__doc__r+rrgrIr7r@rAs@r2rDrDs2# ZZ  r3rDc:eZdZfdZedZdZdZxZS)LazyInstanceClassNamec2t||||_yr5r))r-r.class_member_namer1s r2r+zLazyInstanceClassName.__init__s *+!r3c#K|jjD]>}|j|j|jj Ed{@y7wr5)rr7rxr,rMrs r2r7zLazyInstanceClassName.infersP ..446 \L#--dnndnn>X>X>Z[ [ [ \ [sAA!AA!c>|jjSr5)r7ryr6s r2ryz$LazyInstanceClassName.get_signatures szz|**,,r3c|jSr5rHr6s r2rIz2LazyInstanceClassName.get_defining_qualified_valuerJr3) r=r>r?r+rr7ryrIr@rAs@r2rUrUs("\\-r3rUc.eZdZdZdZdZdZdZdZy)rz This filter is special in that it uses the class filter and wraps the resulting names in LazyInstanceClassName. The idea is that the class name filtering can be very flexible and always be reflected in instances. c ||_||_yr5r)r-r. class_filters r2r+zInstanceClassFilter.__init__s!)r3cV|j|jj|Sr5r rs r2rzInstanceClassFilter.getr"r3cT|j|jjSr5r$r6s r2rzInstanceClassFilter.valuesr%r3cT|Dcgc]}t|j|c}Scc}wr5)rUr,r's r2r!zInstanceClassFilter._convert"s/  "$..! 4   s%cPd|jjd|jdS)Nrz for r)r1r=rr6s r2rzInstanceClassFilter.__repr__(s $ 7 79K9KLLr3N) r=r>r?rSr+rrr!rr:r3r2rrs! *;: Mr3rc@eZdZdZfdZdZdZdZdZdZ xZ S)rzU This class basically filters all the use cases where `self.*` was assigned. c:t||||d||_y)NT)re node_contextrXrir))r-r.instance_classrdrXr1s r2r+zSelfAttributeFilter.__init__0s* &%%  "r3c|jj|jj}}|Dcgc]}||jcxkr|ksnn|}}|j|Scc}wr5) _parser_scope start_posend_pos_filter_self_names)r-rstartendr(s r2_filterzSelfAttributeFilter._filter9s]''1143E3E3M3Ms!?qUQ[[%>3%>??&&u--@s A& A&c#`K|D]}|j}|jdk(st|jjdk(sB|jddk(sU|j sf|j |sx|j |jjd|s|yw)Ntrailerr.)parentrlenrP is_definition_access_possible_is_in_right_scope)r-rrPros r2rjz&SelfAttributeFilter._filter_self_names>s #DkkG||y(GNN3349((+s2%%'D,A,A$,G..w~~/F/Fq/I4P"  #s(!B."B.B.B.+B.=)B.'B.cjj|}|j||j}t fd|DS)N)positionc3K|]`}|jdk(xrK|jjjdk(xr"|jj j ubyw)rOrN)rr0get_definitionrJrgrLrg)rr(r-s r2rz9SelfAttributeFilter._is_in_right_scope..Msk  JJ' ! A **,;;q@ A  **d.@.@@ A sA&A)) _node_contextrgotorhany)r- self_namerP self_contextrs` r2rvz&SelfAttributeFilter._is_in_right_scopeJsP))88C !!)i6I6I!J     r3cj|Dcgc]#}t|j|j|%c}Scc}wr5)rDr,r{)r-rrPs r2_convert_namesz"SelfAttributeFilter._convert_namesTs)OTUt););TBUUUs(0c|Sr5r:)r-rs r2 _check_flowsz SelfAttributeFilter._check_flowsWs r3) r=r>r?rSr+rmrjrvrrr@rAs@r2rr,s'". # Vr3rc&eZdZfdZddZxZS)rc2t||||_yr5rT)r-r.r(r1s r2r+zInstanceArguments.__init__\s #  r3c#Kdt|jf|jj|Ed{y7wr5)rr._wrapped_argumentsr)r-rs r2rzInstanceArguments.unpack`s4N4==111**11$777s8AAAr5)r=r>r?r+rr@rAs@r2rr[s !8r3rN)Dabcr parso.treerjedirrjedi.inferencerjedi.inference.compiled.valuerjedi.inference.helpersr r jedi.inference.filtersr r jedi.inference.namesr rrrjedi.inference.base_valuerrrrrjedi.inference.lazy_valuerrjedi.inference.cacherjedi.inference.argumentsrrjedi.inference.value.functionrrrrrr jedi.inference.value.klassr!#jedi.inference.value.dynamic_arraysr"jedi.parser_utilsr#r$r&rCrRr`rcrrrrrrrrrDrUrrrr:r3r2rsG &#=WS((E=JPP3JO  3%E3,&B.!5! JJEJJZ,0o$-o$dX4$X4v)#;# 8. 80K-0KfP,P!:K"M.M4,+,^8,8r3