§
    ŒŸ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dS )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dS )Ú
StringNameÚstringFN)Ú__name__Ú
__module__Ú__qualname__Úapi_typeÚis_value_name© ó    ú]/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/jedi/api/strings.pyr   r      s   € € € € € Ø€HØ€M€M€Mr   r   c           	      ó–  — |}|dk    r|                      ¦   «         }d}|rt          |||d¬¦  «        }|dk    r�|€||urt          ||¦  «        }|                      |¦  «        }|                      ¦   «         x}	}
|	dv r|	j        }	|	j        dv r:t          ||
¦  «        }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ÑZÔZˆà�sÒÐØˆ>˜d¨,Ð6Ð6Ý*¨4°Ñ:Ô:ˆFà ×/Ò/°Ñ=Ô=ˆà,8×,JÒ,JÑ,LÔ,LÐLˆÐ)Ø˜/Ð)Ð)Ø%Ô,ˆKØÔÐ:Ð:Ð:Ý'¨Ð1DÑEÔEˆFÝÕ.ØÔ.ØØ�n��¨&ØØðñ ô ñ ô ð ð €Ir   c           	   #   ó.  K  — t          t          |¦  «        d„ ¬¦  «        D ]r}t          ||¦  «        }|                     |¦  «        rKt	          | |d t          |¦  «         pd …         ¦  «        }t          | |d t          |¦  «        |¬¦  «        V — Œsd S )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Ô2Ð8IÐ8IÐJÑJÔJð 
ð 
ˆÝ*¨>¸8ÑDÔDˆØ×"Ò" >Ñ2Ô2ð 	Ý˜o¨|Ð<X½cÀ-Ñ>PÔ>PÐ=PÐ=XÐTXÐ<XÔ/YÑZÔZˆDÝØØØÝ!$ ^Ñ!4Ô!4Øðñ ô ð ð ð øð	
ð 
r   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   s„   € Ý�h¥¥e Ñ-Ô-ð °^ð Ý�H‰~Œ~ÐåˆX‰Œ€AÝ0°Ñ@Ô@�M€FˆEØ€}ØˆØ��!”‚}€}Ø˜‰zÐØ�E‰>˜A˜a ˜dœGÑ# eÑ+Ð+r   c              #   ó¨   K  — | D ]L}|j         dk    r?|                     ¦   «         D ]*}|                     t          ¬¦  «        }|t          ur|V — Œ+ŒMd S )NÚdict)Údefault)Ú
array_typeÚget_key_valuesÚget_safe_valueÚ	_sentinel)r>   Údctr5   r@   s       r   r:   r:   R   ss   è è € Øð #ð #ˆØŒ>˜VÒ#Ð#Ø×)Ò)Ñ+Ô+ð #ð #�Ø×-Ò-µiÐ-Ñ@Ô@�Ø¥9Ð,Ð,Ø"�N�N�Nøøð#ð #r   c                 óˆ   — t          j        d| ¦  «        }|€dS |                     d¦  «        |                     d¦  «        fS )Nz(\w*)("""|\'{3}|"|\'))NNrC   é   )ÚreÚmatchÚgroup)r	   rW   s     r   rH   rH   [   s=   € ÝŒHÐ-¨vÑ6Ô6€EØ€}ØˆzØ�;Š;�q‰>Œ>˜5Ÿ;š; q™>œ>Ð)Ð)r   c                 óx   — | |d         dz
           |d         |d         t          |¦  «        z   …         }||k    S )Nr   rC   )r=   )r&   rK   r(   r	   s       r   Ú_matches_quote_at_positionrZ   b   s;   € Ø˜ œ a™Ô(¨°!¬°X¸a´[Å3ÀuÁ:Ä:Ñ5MÐ)MÔN€FØ�UŠ?Ðr   Fc                 ó`   — t          | ¦  «        \  }}|€dS t          |||¦  «        |k    rdS |S )Nr   )rH   rZ   )r	   r&   r(   r   Ú_rK   s         r   r   r   g   s@   € Ý+¨FÑ3Ô3�H€A€uØ€}Øˆrõ " *¨e°XÑ>Ô>À-ÒOÐOØˆrØ€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      s  ððð ð 
€	€	€	à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3àˆF‰HŒH€	ðð ð ð ð Ð&ñ ô ð ð
ð ð ð<ð ð ð
,ð 
,ð 
,ð#ð #ð #ð*ð *ð *ðð ð ð
ð ð ð ð ð r   