TL iSdZddlZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z dd lmZdd lmZdd lmZmZmZdd lmZmZmZdd lmZddlmZddlmZddl m!Z!ddl"m#Z#ddl$m%Z%m&Z&GddZ'GddeZ(Gdde(Z)GddeZ*GddeeZ+GddeeZ,Gdd eeZ-Gd!d"eZ.Gd#d$eZ/d%d&d'd(d&d)Z0d*Z1d+Z2d,Z3d-Z4e3ed.Z5y)/z$ Imitate the parser representation. N)partial) Parameter)Path)Optional)debug)to_list)memoize_method)AbstractFilter)AbstractNameDefinitionValueNameMixinParamNameInterface)ValueValueSet NO_VALUES)LazyKnownValue) _sentinel)inference_state_function_cache)reraise_getitem_errors)BuiltinSignature)CompiledContextCompiledModuleContextc$eZdZdZddZdZdZy)CheckAttributezARaises :exc:`AttributeError` if the attribute X is not available.Nc||_yN) check_name)selfrs c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/jedi/inference/compiled/value.py__init__zCheckAttribute.__init__s $cT||_|j|jdd|_|S)N)funcr__name__)rr#s r__call__zCheckAttribute.__call__s* ?? ""mmAB/DO r c||S|jj|jt|j|Sr) access_handle getattr_pathsrrr#)rinstanceowners r__get__zCheckAttribute.__get__%s8  K ,,T__=tyy(++r r)r$ __module__ __qualname____doc__rr%r+r rrrsK% ,r rceZdZd%fd ZfdZedZedZedZdZ dZ dZ d Z d Z d Zd Zd ZdZedZdZdZedZedZd&dZedZfdZfdZd%fd ZdZedZ dZ!e"fdZ#dZ$fdZ%dZ&d Z'd!Z(ed"Z)d#Z*d'd$Z+xZ,S)( CompiledValuec4t|||||_yr)superrr')rinference_stater'parent_context __class__s rrzCompiledValue.__init__/s .9*r c|jj}|$t|j|j S |jj d|jj r/ddlm}t||j|j||gSt|j|S#t$rt|9|cYSwxYw)Nr%r)CompiledInstance)r'get_return_annotationcreate_from_access_pathr4execute_annotationr(is_classjedi.inference.valuer8rr5_execute_functionAttributeErrorr3 py__call__)r argumentsreturn_annotationr8r6s rr@zCompiledValue.py__call__3s ..DDF  (*$$!! " # C    , ,Z 8!!**,A$T%9%94;N;NPTV_`!  6 6y ABB 17%i0 0 1sCCCc^t|j|jjSr)r:r4r' py__class__rs rrDzCompiledValue.py__class__Hs$&t';';T=O=O=[=[=]^^r cdftfdjjDzS)Nc3JK|]}tj|ywrr:r4.0accessrs r z*CompiledValue.py__mro__..Ns&  $D$8$8& A  #)tupler'py__mro__accessesrEs`r py__mro__zCompiledValue.py__mro__Ls5w ,,>>@    r c\tfdjjDS)Nc3JK|]}tj|ywrrHrIs rrLz,CompiledValue.py__bases__..Us&  $D$8$8& A rM)rNr' py__bases__rEs`rrSzCompiledValue.py__bases__Ss, ,,88:   r c6|jjSr)r'get_qualified_namesrEs rrUz!CompiledValue.get_qualified_namesZs!!5577r c6|jjSr)r' py__bool__rEs rrWzCompiledValue.py__bool__]!!,,..r c6|jjSr)r'r<rEs rr<zCompiledValue.is_class`s!!**,,r c6|jjSr)r' is_functionrEs rr[zCompiledValue.is_functionc!!--//r c6|jjSr)r' is_modulerEs rr^zCompiledValue.is_modulef!!++--r cy)NTr/rEs r is_compiledzCompiledValue.is_compiledisr cy)NFr/rEs ris_stubzCompiledValue.is_stublsr c6|jjSr)r' is_instancerEs rrezCompiledValue.is_instanceor\r c6|jjSr)r' py__doc__rEs rrgzCompiledValue.py__doc__rr_r c#K |jj}|D]}t||y#t$r|j \}}|sg}n|j d}|jj r|jdd|D]4}|jjd\}}} t||| 6YywxYww)N,rr=) r'get_signature_paramsSignatureParamName ValueError_parse_function_docsplitismethoddescriptorinsertstrip partitionUnresolvableParamName) rsignature_paramssignature_param params_strrettokenspname_defaults rget_param_nameszCompiledValue.get_param_namesus @#11FFH $4 @(?? @ A"668OJ#))#.!!446 a( A#$779#6#6s#; a+D$@@ A As&C4CBC C CCcB|j\}}t||gSr)rnr)rr| return_strings rget_signatureszCompiledValue.get_signaturess%335= }566r cld|jjd|jjdSN<: >)r6r$r'get_reprrEs r__repr__zCompiledValue.__repr__s&!^^44d6H6H6Q6Q6STTr c>|j}|yt|S)N)r)rgrn)rdocs rrnz!CompiledValue._parse_function_docs!nn ;"3''r c6|jjSr)r' get_api_typerEs rapi_typezCompiledValue.api_types!!..00r c#2K|j|ywr)_ensure_one_filter)rre origin_scopes r get_filterszCompiledValue.get_filterss%%k22sc0t|j||Sr)CompiledValueFilterr4)rres rrz CompiledValue._ensure_one_filters"4#7#7{KKr cxtttt5 |jj ||j j } dddt||Stt|j |gS#t$rt||cYcdddSwxYw#1swYaxYwN)safe) r IndexErrorKeyError TypeErrorr'py__simple_getitem__r4allow_unsafe_executionsr?r3rr:)rindexrKr6s rrz"CompiledValue.py__simple_getitem__s #J) D ; ;++@@!11IIIA ; >7/6 601E1EvNOPP " ;w3E:: ; ;  ;  ; ;s(B02B  B-!B0,B--B00B9cjj}|t ||St fd|DS)Nc3JK|]}tj|ywrrHrIs rrLz.CompiledValue.py__getitem__..s&  $D$8$8& A rM)r'py__getitem__all_valuesr3 py__getitem__r)rindex_value_setcontextualized_nodeall_access_pathsr6s` rrzCompiledValue.py__getitem__sM--EEG  #7(:MN N *   r c#K|jjst| |Ed{|jj }|y|D]#}t t |j|%y7Jwr)r'has_iterr3 py__iter__py__iter__listrr:r4)rraccess_path_listrKr6s rrzCompiledValue.py__iter__sz!!**,w)*=> > >--<<>  # & XF !89M9Mv!VW W X ?s-A=A;A A=c6|jjSr)r' py__name__rEs rrzCompiledValue.py__name__rXr cr|j}||jj}t||Sr)rr'rCompiledValueNamerr{s rr{zCompiledValue.names4  <%%..0D t,,r c#Kddlm}ddlm}|jdk7ry|j dj D]i} |jjjj|||j|}|jj||Ed{k|j|Ed{y7 #t$rYwxYw7w)Nr) docstringsbuiltin_from_namefunction)jedi.inferencerjedi.inference.compiledrrrnror4builtins_moduler'r(executer?infer_return_types)rparamsrrr{bltn_objs rr>zCompiledValue._execute_functions-= ==J & ,,.q1779 JD J$$44BBPPQUV-T-A-A4H//77&III J00666J "   7sBAC/C32C%C&CCC CCCCcn |jjS#t$r|tk(r|cYSwxYwr)r'get_safe_valuermr)rr}s rrzCompiledValue.get_safe_values; %%446 6 )#N s 44c  tt|j|jj |j|gS#t $r t cYSwxYwr)rr:r4r'execute_operationrr)rotheroperators rrzCompiledValue.execute_operations] 4$$""44U5H5H(S    sAAAAc |jjdk(r t|gS|jj\}}|Dcgc]"}tt |j |g$}}|dk(rtj d|DS|rYt|j jj|Dcgc]}|j|c}jSt|)Scc}wcc}w)NNoneUnionc3<K|]}|jywr)r;)rJargs rrLz3CompiledValue.execute_annotation..s%T3c&<&<&>%Ts) r'rrget_annotation_name_and_argsr:r4 from_sets typing_modulepy__getattribute__ with_genericsr;r3)rr{argspathrAvr6s rr;z CompiledValue.execute_annotations    & & (F 2TF# #''DDF d  -d.B.BDIJ K   7?%%%T)%TT T --;;NNtT *"!# $w)++ s 'C?Dc^t|j|jjSr)r:r4r'negaterEs rrzCompiledValue.negate s$&t';';T=O=O=V=V=XYYr ctSrrrEs rget_metaclasseszCompiledValue.get_metaclasses r ct|Sr)rrEs r _as_contextzCompiledValue._as_contexts t$$r c6|jjSr)r'get_array_typerEs r array_typezCompiledValue.array_types!!0022r c|jjDcgc]}t|j|c}Scc}wr)r' get_key_pathsr:r4)rks rget_key_valueszCompiledValue.get_key_valuess@''557  $D$8$8! <   s=c>|jjdvryy)N)rzr)r'r)radd_class_infos r get_type_hintzCompiledValue.get_type_hints    & & (,J Jr r)FN)T)-r$r,r-rr@rrDrPrSrUrWr<r[r^rarcrergrr~rrr rnpropertyrrrrrrrr{r>rrrr;rrrrrr __classcell__)r6s@rr1r1.sW+C*__    8/-0.0. @ @$7U((113LL Q   X/-- 7$&/,,Z%33 r r1cDeZdZdZdZdZdZedZde e fdZ y)CompiledModuleNct|Sr)rrEs rrzCompiledModule._as_context&s $T**r c6|jjSr)r' py__path__rEs rrzCompiledModule.py__path__)rXr c&|jduSr)rrEs r is_packagezCompiledModule.is_package,s ,,r c\|j}|yt|jdS)Nr/.)rrNrors r string_nameszCompiledModule.string_names/s+  <TZZ_%%r returnc6|jjSr)r' py__file__rEs rrzCompiledModule.py__file__7rXr ) r$r,r-file_iorrrrrrrrr/r rrr#s:G+/-&&/HTN/r rcPeZdZdZdZdZdZdZedZ dZ e dZ y ) CompiledNamecf||_|j|_||_||_||_yr)_inference_state as_contextr5 _parent_value string_name is_descriptor)rr4 parent_valuer{rs rrzCompiledName.__init__<s3 /*557)*r c>|jjSr)infer_compiled_valuergrEs rrgzCompiledName.py__doc__Cs((*4466r c\|jj}|y||jfzSr)r5rUr)rparent_qualified_namess r_get_qualified_namesz!CompiledName._get_qualified_namesFs4!%!4!4!H!H!J ! )%)9)9(;;;r c|j}|js|jr|jjSyr)r5r^r< get_value)rcontexts rget_defining_qualified_valuez)CompiledName.get_defining_qualified_valueLs<%%    '"2"2"4&&002 2r c |jj}d|jjd|d|j dS#t$rd}Y7wxYw)Nrz: (z).r)r5r{r?r6r$rrs rrzCompiledName.__repr__SsN &&++D#'.."9"94AQAQRR D sA AAcP|jry|jjS)Nr))rrrrEs rrzCompiledName.api_typeZs%   ((*333r c6t|jgSr)rrrEs rinferzCompiledName.infercs224566r cXt|j|j|jSr)create_from_namerrrrEs rrz!CompiledName.infer_compiled_valuefs# 5 5t7I7I4K[K[\\r N) r$r,r-rrgrrrrrrr rr/r rrr;sK+7< S447]]r rc4eZdZdZedZdZdZdZy)rlc4|j|_||_yr)r5_signature_param)rcompiled_valuervs rrzSignatureParamName.__init__ls,;; /r c.|jjSr)r r{rEs rrzSignatureParamName.string_nameps$$)))r c|j|jz}|jjr|d|jjzz }|jj r|d|jj zz }|S)Nrrj) _kind_stringrr has_annotationannotation_string has_defaultdefault_string)rss r to_stringzSignatureParamName.to_stringtst    $"2"2 2  / / --??? ?A  , , t,,;;; ;Ar cJtt|jjSr)getattrrr  kind_namerEs rget_kindzSignatureParamName.get_kind|sy$"7"7"A"ABBr c|j}|jj}t}|jr t t ||jg}|jr)t ||j}||jz}|Sr) r r5r4rrrr:r}r annotationexecute_with_values)rrzr4valuesrs rrzSignatureParamName.inferst  ! !--== ==6 RSTF  0!,,OJ j446 6F r N) r$r,r-rrrrrrr/r rrlrlks+0**C r rlc$eZdZdZdZdZdZy)rtcB|j|_||_||_yr)r5r_default)rr r{r}s rrzUnresolvableParamName.__init__s,;; r c"tjSr)rPOSITIONAL_ONLYrEs rrzUnresolvableParamName.get_kinds(((r cZ|j}|jr|d|jzz }|S)Nrj)rr )rstrings rrzUnresolvableParamName.to_strings,!! == cDMM) )F r ctSrrrEs rrzUnresolvableParamName.inferrr N)r$r,r-rrrrr/r rrtrts ) r rtceZdZdZy)rcB||_||_|j|_yr)r_valuer5)rvaluer{s rrzCompiledValueName.__init__s #22r N)r$r,r-rr/r rrrs3r rceZdZdZdZdZy)EmptyCompiledNamez Accessing some names will raise an exception. To avoid not having any completions, just give Jedi the option to return this object. It infers to nothing. c4|j|_||_yr)rr5r)rr4r{s rrzEmptyCompiledName.__init__s-==r ctSrrrEs rrzEmptyCompiledName.inferrr N)r$r,r-r.rrr/r rr+r+s  r r+cLeZdZd dZdZd dZed dddZdZdZ d Z y ) rFc.||_||_||_yr)rr re)rr4r res rrzCompiledValueFilter.__init__s /,&r c|jj|jj |j |fdfddS)Nc*j|Sr)is_allowed_getattr)r{r'rs rz)CompiledValueFilter.get..s99$T9Jr c(|jvSr)dir)r{r's rr3z)CompiledValueFilter.get..s!2!2!44r T)check_has_attribute)r r'rr_get)rr{r'rs @@rgetzCompiledValueFilter.getsJ++99 ((@@@yy  J 4 $   r cd||\}}}|@t|j|j}|r|D cgc]} t| |c} S|r|sgS|s|s*|jjs|j |dgS|j r ||sgS|j ||gScc} w)zU To remove quite a few access calls we introduced the callback here. T)is_emptyr)r:rr;rr_get_cached_namere) rr{allowed_getattr_callbackin_dir_callbackr6 has_attributerproperty_return_annotationrrs rr7zCompiledValueFilter._getsD\ D @ }&@ & 1,%%*! " ? ?   OD$9I%%d-%HIIDsB-r;cX|rt|j|S|j||S)Nr;)r+r _create_name)rr{r:rs rr<z$CompiledValueFilter._get_cached_names. $T%:%:DA A$$T$G Gr c:ddlm}g}|jjj \}D]}||j |fdfdz } |j s;|r9||jdjD]}||jz }|S)Nrrc|Srr/r{ dir_infoss rr3z,CompiledValueFilter.values..s Yt_r c |vSrr/rEs rr3z,CompiledValueFilter.values..s TY.r type) rrr r' get_dir_infosr7rerrr)rrnamesneeds_type_completionsr{filterrFs @rrzCompiledValueFilter.valuess=,0,?,?,M,M,[,[,])  D TYY,. E $:+D,A,A6JVVX )( ) r cFt|j|j||Sr)rrr )rr{rs rrBz CompiledValueFilter._create_names'  ! !        r cPd|jjd|jdSr)r6r$r rEs rrzCompiledValueFilter.__repr__s!^^44d6I6IJJr N)F) r$r,r-rr8r7r r<rrBrr/r rrrs@'  J4HeHH , Kr rfloatstrintdict)zfloating point number characterinteger dictionaryr$c d}|jd}t||dD]&\}}|dk(r|dz }n |dk(r|dz}|dk(s!||z}n||dz}d} tjd||\}}|dk(rn!|jd d }tjd |||d z} | d } || fS|| jz} tjd} | j|| jdj} tjdd| } t j#| | } || fS#tt f$rt jdd}d }YwxYw)z Takes a function and returns the params and return value as a tuple. This is nothing more than a docstring parser. TODO docstrings like utime(path, (atime, mtime)) and a(b [, b]) -> None TODO docstrings like 'tuple of integers' r(Nr)c|jdjd}t|D]\}}|s d|vs||xxdz cc<dj|S)Nrrirjz=None)groupro enumeratejoin)mrias rchange_optionsz+_parse_function_doc..change_options,sX771:##C(D!$ '1AGw&G '88D> !r z ?\[([^\[\]]+)\]zno brackets found - no paramr-r|z-[>-]* z (,\n|[^\n-])+z [nN]ew (.*)z\1())rr[resubnrmUnboundLocalErrorrdbgreplacesearchendcompilematchrZrrsubdocstr_defaultsr8)rcountstartr^rri param_strr`changesrrxrpatternret_strs rrnrns #c%&k* DAqCx c zai  #&  "!#)<)7"D Iw!|  !!#s+I )SS1W-.Ay c>aeeg **-.--U+11!4::<&&':!!'73 c>I ) *  01 sAD7D77(E"!E"c|jj|d}d}|D]"}t|||dn|j}$|S)N)r}r5)r'r(create_cached_compiled_valuer)r4r r{ access_pathsr) access_paths rrrKsZ!//==dD=QL E# ,  #(=4e6F6F6H  Lr cdfd }|S)z5The cache doesn't care about keyword vs. normal args.c|||Srr/)r4objr5r#s rwrapperz'_normalize_create_args..wrapperZsOS.99r rr/)r#r}s` r_normalize_create_argsr~Xs : Nr crd}|jD]%\}}t|||dn|j}'|S)Nrv)accessesrwr)r4ryr)r{rKs rr:r:_sI E#,, f,  #(=4e6F6F6H  Lr cXt|trJ|t}nt}||||Sr) isinstancer1r)r4r'r5clss rrwrwjs3.-88 8  ~ >>r )6r.rc functoolsrinspectrpathlibrtypingrjedirjedi.inference.utilsr jedi.cacher jedi.inference.filtersr jedi.inference.namesr r r jedi.inference.base_valuerrrjedi.inference.lazy_valuerjedi.inference.compiled.accessrjedi.inference.cacherjedi.inference.helpersrjedi.inference.signaturerjedi.inference.contextrrrr1rrrlrtrr+rrmrnrr~r:rwr/r rrs (%1@@44?95I,,*rErj/]/0-])-]`+-C@.0F&3(>3 . PK.PKh% 9x !?"?r