Ë
    ¬;j  ã                   ó�   — d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	  e
«       Z G d„ de«      Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zdd„Zy)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                   ó   — e Zd ZdZdZy)Ú
StringNameÚstringFN)Ú__name__Ú
__module__Ú__qualname__Úapi_typeÚis_value_name© ó    úa/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jedi/api/strings.pyr   r      s   „ Ø€HØ�Mr   r   c           	      óp  — |}|dk7  r|j                  «       }d}|rt        |||d¬«      }|dk(  r†|€||urt        ||«      }| j                  |«      }|j                  «       x}	}
|	dv r|	j                  }	|	j
                  dv r3t        ||
«      }t        t        | j                  ||€dn|||¬«      «      S g S )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_dictr/      sà   € Ø€LØ�sÒØ×-Ñ-Ó/ˆà€MÙÜ(¨°¸XÐUYÔZˆà�sÒØˆ>˜d¨,Ñ6Ü*¨4°Ó:ˆFà ×/Ñ/°Ó=ˆà,8×,JÑ,JÓ,LÐLˆÐ)Ø˜/Ñ)Ø%×,Ñ,ˆKØ×ÑÐ:Ñ:Ü'¨Ð1DÓEˆFÜÔ.Ø×.Ñ.ØØ�n‘¨&ØØôó ð ð €Ir   c           	   #   óð   K  — t        t        |«      d„ ¬«      D ]X  }t        ||«      }|j                  |«      sŒ!t	        | |d t        |«       xs d  «      }t        | |d t        |«      |¬«      –— ŒZ y ­w)Nc                 ó   — t        | «      S )N)Úrepr)Úxs    r   Ú<lambda>z(_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   s|   è ø€ ÜÔ+¨EÓ2Ñ8I×JˆÜ*¨>¸8ÓDˆØ×"Ñ" >Õ2Ü˜o¨|Ð<X¼cÀ-Ó>PÐ=PÒ=XÐTXÐ/YÓZˆDÜØØØÜ!$ ^Ó!4Øôó ñ	 Kùs
   ‚8A6»;A6c                 ó¸   — t        |t        t        f«      r| st        |«      S t        |«      }t	        | «      \  }}|€|S ||d   k(  r||z   S ||z   |dd z   |z   S )Nr   é   éÿÿÿÿ)Ú
isinstanceÚstrÚbytesr2   Ú_get_string_prefix_and_quote)r?   r@   ÚrÚprefixÚquotes        r   r;   r;   E   sl   € Ü�h¤¤e Ô-±^Ü�H‹~ÐäˆX‹€AÜ0°Ó@�M€FˆEØ€}ØˆØ��!‘‚}Ø˜‰zÐØ�E‰>˜A˜a ˜GÑ# eÑ+Ð+r   c              #   óª   K  — | D ]J  }|j                   dk(  sŒ|j                  «       D ]%  }|j                  t        ¬«      }|t        usŒ"|–— Œ' ŒL y ­w)NÚdict)Údefault)Ú
array_typeÚget_key_valuesÚget_safe_valueÚ	_sentinel)r>   Údctr5   r@   s       r   r:   r:   R   sO   è ø€ ÛˆØ�>‰>˜VÓ#Ø×)Ñ)Ö+�Ø×-Ñ-´iÐ-Ó@�Ø¤9Ò,Ø"“Nñ ,ñ ùs   ‚A˜1AÁ
	Ac                 óx   — t        j                  d| «      }|€y|j                  d«      |j                  d«      fS )Nz(\w*)("""|\'{3}|"|\'))NNrC   é   )ÚreÚmatchÚgroup)r	   rW   s     r   rH   rH   [   s6   € Ü�H‰HÐ-¨vÓ6€EØ€}ØØ�;‰;�q‹>˜5Ÿ;™; q›>Ð)Ð)r   c                 óL   — | |d   dz
     |d   |d   t        |«      z    }||k(  S )Nr   rC   )r=   )r&   rK   r(   r	   s       r   Ú_matches_quote_at_positionrZ   b   s6   € Ø˜ ™ a™Ñ(¨°!©°X¸a±[Ä3ÀuÃ:Ñ5MÐN€FØ�U‰?Ðr   c                 óJ   — t        | «      \  }}|€yt        |||«      |k7  ry|S )Nr   )rH   rZ   )r	   r&   r(   r   Ú_rK   s         r   r   r   g   s3   € Ü+¨FÓ3�H€A€uØ€}Øô " *¨e°XÓ>À-ÒOØØ€Lr   )F)Ú__doc__rV   Újedi.inference.namesr   Újedi.inference.helpersr   Újedi.api.classesr   Újedi.parser_utilsr   ÚobjectrR   r   r/   r#   r;   r:   rH   rZ   r   r   r   r   Ú<module>rc      sR   ðñó 
å 6Ý 5Ý 'Ý 3á‹H€	ôÐ&ô ò
ò<ò
,ò#ò*òô
r   