uBFjdZddlZddlmZddlmZddlmZddlm Z e Z GddeZ d Z d Zd Zd Zd ZdZddZdS)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_positionceZdZdZdZdS) StringNamestringFN)__name__ __module__ __qualname__api_type is_value_name>C:\PYTHON\_runtimes\venv\Lib\site-packages\jedi/api/strings.pyrrsHMMMrrc |}|dkr|}d}|rt|||d}|dkr|||urt||}||}|x} } | dvr| j} | jdvr:t || } 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 [(XUYZZZ s >d,66*4::F // ==,8,J,J,L,LL ) / ) )%,K  : : :'1DEEF..n&   Irc #.Ktt|dD]r}t||}||rKt ||dt | pd}t ||dt ||VsdS)Nc t|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+E228I8IJJJ  *>8DD  " "> 2 2 o|P>P=P=XTXAadG #e ++rc#K|D]L}|jdkr?|D]*}|t}|tur|V+MdS)Ndict)default) array_typeget_key_valuesget_safe_value _sentinel)r>dctr5r@s rr:r:Rss## >V # #))++ # #--i-@@9,,"NNN ##rctjd|}|dS|d|dfS)Nz(\w*)("""|\'{3}|"|\'))NNrC)rematchgroup)r rWs rrHrH[s= H-v 6 6E }z ;;q>>5;;q>> ))rcx||ddz |d|dt|z}||kS)NrrC)r=)r&rKr(r s r_matches_quote_at_positionrZbs;  a (!Xa[3u::5M)M NF U?rFc`t|\}}|dSt||||krdS|S)Nr)rHrZ)r r&r(r_rKs rrrgs@+F33HAu }r"*eX>>-OOr Lr)F)__doc__rVjedi.inference.namesrjedi.inference.helpersrjedi.api.classesrjedi.parser_utilsrobjectrRrr/r#r;r:rHrZrrrrrcs 666666555555''''''333333 FHH & <    , , ,###*** r