
    -h                         S r SSKrSSKJr  SSKJr  SSKJr  SSKJ	r	  \
" 5       r " S S\5      rS	 rS
 rS rS rS rS rSS jrg)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_positionc                       \ rS rSrSrSrSrg)
StringName   stringF N)__name__
__module____qualname____firstlineno__api_typeis_value_name__static_attributes__r       cC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\jedi/api/strings.pyr   r      s    HMr   r   c           
      v   UnUS:w  a  UR                  5       nSnU(       a  [        XAUSS9nUS:X  a  Uc  X&La  [        X#5      nU R                  U5      nUR                  5       =pU	S;   a  U	R                  n	U	R
                  S;   a0  [        X5      n[        [        U R                  UUc  SOUUUS95      $ / $ )N[ T)invert_result))]})atomtrailername)fuzzy)
get_previous_leafget_quote_endingr   create_contextparenttyper   list_completions_for_dictsinference_state)module_context
code_linesleafpositionr
   r   bracket_leafcut_end_quotecontextbefore_nodebefore_bracket_leafvaluess               r   complete_dictr2      s    Ls--/M(XUYZs>d6*4:F //=,8,J,J,LL/)%,,K::'EF...n&   Ir   c           	   #      #    [        [        U5      S S9 H_  n[        X%5      nUR                  U5      (       d  M&  [	        XS [        U5      * =(       d    S  5      n[        U US [        U5      US9v   Ma     g 7f)Nc                     [        U 5      $ )N)repr)xs    r   <lambda>(_completions_for_dicts.<locals>.<lambda>8   s    $q'r   )key)stacklike_name_lengthis_fuzzy)sorted_get_python_keys_create_repr_string
startswithr   lenr   )r'   dictsliteral_stringr-   r   dict_keydict_key_strr   s           r   r&   r&   7   sz     +E28IJ*>D"">22o<Xc->P=P=XTX/YZD!$^!4 	 Ks
   7A;>A;c                     [        U[        [        45      (       a  U (       d  [        U5      $ [        U5      n[	        U 5      u  p4Uc  U$ XBS   :X  a  X2-   $ X4-   USS -   U-   $ )Nr      )
isinstancestrbytesr5   _get_string_prefix_and_quote)rC   rD   rprefixquotes        r   r?   r?   E   sg    he--^H~XA0@MF}!}z>AaG#e++r   c              #      #    U  HN  nUR                   S:X  d  M  UR                  5        H%  nUR                  [        S9nU[        Ld  M!  Uv   M'     MP     g 7f)Ndict)default)
array_typeget_key_valuesget_safe_value	_sentinel)rB   dctr9   rD   s       r   r>   r>   R   sN     >>V#))+--i-@9,"N , s   A-AAc                 |    [         R                  " SU 5      nUc  gUR                  S5      UR                  S5      4$ )Nz(\w*)("""|\'{3}|"|\'))NNrG      )rematchgroup)r
   r[   s     r   rL   rL   [   s6    HH-v6E};;q>5;;q>))r   c                 H    XS   S-
     US   US   [        U5      -    nX1:H  $ )Nr   rG   )rA   )r)   rO   r+   r
   s       r   _matches_quote_at_positionr^   b   s2    a(!Xa[3u:5MNF?r   c                 J    [        U 5      u  pEUc  g[        XU5      U:w  a  gU$ )Nr   )rL   r^   )r
   r)   r+   r   _rO   s         r   r!   r!   g   s/    +F3HA} "*X>-OLr   )F)__doc__rZ   jedi.inference.namesr   jedi.inference.helpersr   jedi.api.classesr   jedi.parser_utilsr   objectrV   r   r2   r&   r?   r>   rL   r^   r!   r   r   r   <module>rg      sR    
 6 5 ' 3H	& 
<
,#*
r   