TL idZddlZddlmZddlmZddlmZddlm Z e Z GddeZ d Z d Zd Zd Zd ZdZddZy)ap This module is here for string completions. This means mostly stuff where strings are returned, like `foo = dict(bar=3); foo["ba` would complete to `"bar"]`. It however does the same for numbers. The difference between string completions and other completions is mostly that this module doesn't return defined names in a module, but pretty much an arbitrary string. N)AbstractArbitraryName)infer_call_of_leaf) Completion)cut_value_at_positionceZdZdZdZy) StringNamestringFN)__name__ __module__ __qualname__api_type is_value_nameV/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/jedi/api/strings.pyrrs HMrrc p|}|dk7r|j}d}|rt|||d}|dk(r|||ur t||}|j|}|jx} } | dvr | j} | j dvr3t || } tt|j| |dn|||SgS)N[T) invert_result))]})atomtrailername)fuzzy) get_previous_leafget_quote_endingrcreate_contextparenttyperlist_completions_for_dictsinference_state) module_context code_linesleafpositionr r bracket_leaf cut_end_quotecontext before_nodebefore_bracket_leafvaluess r complete_dictr/sLs--/ M (XUYZ s >d,6*4:F // =,8,J,J,LL ) / )%,,K   : :'1DEF...n&   Irc #Ktt|dD]X}t||}|j|s!t ||dt | xsd}t ||dt ||Zyw)Nct|S)N)repr)xs rz(_completions_for_dicts..8s $q'r)key)stacklike_name_lengthis_fuzzy)sorted_get_python_keys_create_repr_string startswithrlenr)r$dictsliteral_stringr*rdict_key dict_key_strrs rr#r#7s+E28IJ *>8D  " "> 2o|P=P=XTX/YZD!$^!4   s 8A6;A6ct|ttfr|s t|St|}t |\}}||S||dk(r||zS||z|ddz|zS)Nr) isinstancestrbytesr2_get_string_prefix_and_quote)r?r@rprefixquotes rr;r;Esl he -^H~ XA0@MFE } !}z E>AaG #e ++rc#K|D]J}|jdk(s|jD]%}|jt}|tus"|'Lyw)Ndict)default) array_typeget_key_valuesget_safe_value _sentinel)r>dctr5r@s rr:r:RsY# >>V #))+ #--i-@9,"N ##sA1A Acxtjd|}|y|jd|jdfS)Nz(\w*)("""|\'{3}|"|\'))NNrC)rematchgroup)r rWs rrHrH[s6 HH-v 6E } ;;q>5;;q> ))rcL||ddz |d|dt|z}||k(S)NrrC)r=)r&rKr(r s r_matches_quote_at_positionrZbs6  a (!Xa[3u:5M NF U?rcJt|\}}|yt||||k7ry|S)Nr)rHrZ)r r&r(r_rKs rrrgs3+F3HAu }"*eX>-O Lr)F)__doc__rVjedi.inference.namesrjedi.inference.helpersrjedi.api.classesrjedi.parser_utilsrobjectrRrr/r#r;r:rHrZrrrrrcsR 65'3 H & <  ,#* r