§
    ŒŸj÷  ã                  óØ   — d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl	m
Z
mZmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ erddlmZ ddlmZ ddgZeZd!d„Zd!d„Zd"d„Zd#d$d „Z dS )%z2
Key binding handlers for displaying completions.
é    )ÚannotationsN)ÚTYPE_CHECKING)Úin_terminal)ÚCompleteEventÚ
CompletionÚget_common_complete_suffix)ÚStyleAndTextTuples)ÚKeyBindings)ÚKeyPressEvent)ÚKeys)Ú
get_cwidth)ÚApplication©ÚPromptSessionÚgenerate_completionsÚ!display_completions_like_readlineÚeventÚEÚreturnÚNonec                óz   — | j         }|j        r|                     ¦   «          dS |                     d¬¦  «         dS )z{
    Tab-completion: where the first tab completes the common suffix and the
    second tab lists all the completions.
    T)Úinsert_common_partN)Úcurrent_bufferÚcomplete_stateÚcomplete_nextÚstart_completion)r   Úbs     ú{/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/prompt_toolkit/key_binding/bindings/completion.pyr   r   #   sL   € ð
 	Ô€Að 	Ôð 4Ø	�ŠÑÔÐÐÐà	×Ò¨dÐÑ3Ô3Ð3Ð3Ð3ó    c                óÚ  — | j         }|j        €dS t          d¬¦  «        }t          |j                             |j        |¦  «        ¦  «        }t          |j        |¦  «        }t          |¦  «        dk    rC|                     |d         j	         ¦  «         | 
                    |d         j        ¦  «         dS |r| 
                    |¦  «         dS |rt          | j        |¦  «         dS dS )aš  
    Key binding handler for readline-style tab completion.
    This is meant to be as similar as possible to the way how readline displays
    completions.

    Generate the completions immediately (blocking) and display them above the
    prompt in columns.

    Usage::

        # Call this handler when 'Tab' has been pressed.
        key_bindings.add(Keys.ControlI)(display_completions_like_readline)
    NT)Úcompletion_requestedé   r   )r   Ú	completerr   ÚlistÚget_completionsÚdocumentr   ÚlenÚdelete_before_cursorÚstart_positionÚinsert_textÚtextÚ"_display_completions_like_readlineÚapp)r   r   Úcomplete_eventÚcompletionsÚcommon_suffixs        r   r   r   1   sý   € ð 	Ô€AØ„{ÐØˆÝ"¸Ð=Ñ=Ô=€NÝ�q”{×2Ò2°1´:¸~ÑNÔNÑOÔO€Kõ /¨q¬z¸;ÑGÔG€Mõ ˆ;ÑÔ˜1ÒÐØ	×Ò ¨A¤Ô =Ð=Ñ>Ô>Ð>Ø	�Š�k !”nÔ)Ñ*Ô*Ð*Ð*Ð*à	ð CØ	�Š�mÑ$Ô$Ð$Ð$Ð$à	ð CÝ*¨5¬9°kÑBÔBÐBÐBÐBðCð Cr   r-   úApplication[object]r/   úlist[Completion]úasyncio.Task[None]c                óæ  ‡ ‡‡‡‡‡	‡
‡‡— ddl mŠ ddlmŠ ‰ j                             ¦   «         }|j        }|j        }t          |t          d„ ‰D ¦   «         ¦  «        dz   ¦  «        Š
t          d|‰
z  ¦  «        Š‰|dz
  z  Št          t          j        t          ‰¦  «        t          ‰¦  «        z  ¦  «        ¦  «        Šdˆ ˆˆˆˆ
ˆfd
„Š	dˆ ˆˆˆˆ	ˆfd„}‰                       |¦   «         ¦  «        S )z×
    Display the list of completions in columns above the prompt.
    This will ask for a confirmation if there are too many completions to fit
    on a single page and provide a paginator to walk through them.
    r   )Úto_formatted_text)Úcreate_confirm_sessionc              3  ó>   K  — | ]}t          |j        ¦  «        V — Œd S )N)r   Údisplay_text)Ú.0Úcs     r   ú	<genexpr>z5_display_completions_like_readline.<locals>.<genexpr>i   s,   è è € ÐHÐH°q�
 1¤>Ñ2Ô2ÐHÐHÐHÐHÐHÐHr   r"   ÚpageÚintr   r   c                ó¦  •‡‡	— ‰| ‰z  | dz   ‰z  …         Št          t          j        t          ‰¦  «        t	          ‰¦  «        z  ¦  «        ¦  «        Š	ˆˆ	fd„t          ‰¦  «        D ¦   «         }g }t          ‰	¦  «        D ]¯}t          ‰¦  «        D ]ˆ}	 ||         |         }d|j        pdz   }|                      ‰|j        |¬¦  «        ¦  «         ‰t          |j
        ¦  «        z
  }|                     |j        d|z  f¦  «         Œy# t          $ r Y Œ…w xY w|                     d¦  «         Œ°‰
                      ‰|d¦  «        ¦  «         d S )	Nr"   c                ó6   •— g | ]}‰|‰z  |d z   ‰z  …         ‘ŒS )r"   © )r9   ÚiÚpage_completionsÚpage_row_counts     €€r   ú
<listcomp>zG_display_completions_like_readline.<locals>.display.<locals>.<listcomp>w   sA   ø€ ð 
ð 
ð 
àð ˜Q Ñ/°1°q±5¸NÑ2JÐJÔKð
ð 
ð 
r   z+class:readline-like-completions.completion Ú )Ústyleú )rE   ú
zclass:readline-like-completions)r=   ÚmathÚceilr'   ÚfloatÚrangerF   ÚextendÚdisplayr   r8   ÚappendÚ
IndexErrorÚ
print_text)r<   Úpage_columnsÚresultÚrr:   Ú
completionrF   ÚpaddingrB   rC   r-   Úcolumn_countr/   Úcompletions_per_pageÚmax_compl_widthr5   s           @@€€€€€€r   rN   z3_display_completions_like_readline.<locals>.displayp   s¥  øøø€ à&ØÐ'Ñ'¨4°!©8Ð7KÑ*KÐKô
Ðõ �TœY¥sÐ+;Ñ'<Ô'<½uÀ\Ñ?RÔ?RÑ'RÑSÔSÑTÔTˆð
ð 
ð 
ð 
ð 
å˜<Ñ(Ô(ð
ñ 
ô 
ˆð
 &(ˆå�~Ñ&Ô&ð 	&ð 	&ˆAÝ˜<Ñ(Ô(ð ð �ðØ!-¨a¤°Ô!3�JØIØ"Ô(Ð.¨Bñ�Eð —M’MÐ"3Ð"3°JÔ4FÈeÐ"TÑ"TÔ"TÑUÔUÐUð .µ
¸:Ô;RÑ0SÔ0SÑS�GØ—M’M :Ô#3°S¸7±]Ð"CÑDÔDÐDÐDøÝ!ð ð ð Ø�Dðøøøà�MŠM˜*Ñ%Ô%Ð%Ð%à�ŠÐ(Ð(¨Ð1RÑSÔSÑTÔTÐTÐTÐTs   ÂA5DÄ
DÄDc               “  ó&  •K  — t          d¬¦  «        4 ƒd{V —† t          ‰¦  «        ‰k    r´ ‰dt          ‰¦  «        › d�¦  «                             ¦   «         ƒ d{V —†} | rdt          ‰¦  «        D ]S} ‰|¦  «         |‰dz
  k    r=t	          d¦  «                             ¦   «         ƒ d{V —†}|s ddd¦  «        ƒd{V —† dS ŒTn%‰j                             ¦   «          n ‰d¦  «         ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )	z
Coroutine.T)Úrender_cli_doneNzDisplay all z possibilities?r"   ú--MORE--r   )r   r'   Úprompt_asyncrL   Ú_create_more_sessionÚoutputÚflush)	Úconfirmr<   Ú	show_morer-   r/   rX   r6   rN   Ú
page_counts	      €€€€€€r   Ú	run_complz5_display_completions_like_readline.<locals>.run_compl’   s0  øè è € å¨tÐ4Ñ4Ô4ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	Ý�;ÑÔÐ"6Ò6Ð6à 6Ð 6ØD¥3 {Ñ#3Ô#3ÐDÐDÐDñ!ô !ç’,‘.”.ð!ð !ð !ð !ð !ð !�ð ð 'å % jÑ 1Ô 1ð 
'ð 
'˜Ø˜ ™œ˜à :°¡>Ò1Ð1å.BØ *ñ/ô /ç*šl™nœnð)-ð )-ð )-ð )-ð )-ð )-˜Ið $-ð 'Ø &ð'	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øð
'ð ”J×$Ò$Ñ&Ô&Ð&Ð&ð �˜‘
”
�
ð1	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   šBD Ã'D Ä 
D
ÄD
)r<   r=   r   r   )r   r   )Úprompt_toolkit.formatted_textr5   Úprompt_toolkit.shortcuts.promptr6   r_   Úget_sizeÚcolumnsÚrowsÚminÚmaxr=   rI   rJ   r'   rK   Úcreate_background_task)r-   r/   Ú	term_sizeÚ
term_widthÚterm_heightrd   rW   rX   r6   rN   rY   rc   r5   s   ``    @@@@@@@r   r,   r,   U   sp  øøøøøøøøø€ ð @Ð?Ð?Ð?Ð?Ð?ØFÐFÐFÐFÐFÐFð ”
×#Ò#Ñ%Ô%€IØÔ"€JØ”.€Kõ
 Ø•CÐHÐH¸KÐHÑHÔHÑHÔHÈ1ÑLñô €Oõ �q˜*¨Ñ7Ñ8Ô8€LØ'¨;¸©?Ñ;ÐÝ•T”Y�s ;Ñ/Ô/µ%Ð8LÑ2MÔ2MÑMÑNÔNÑOÔO€JðUð Uð Uð Uð Uð Uð Uð Uð Uð Uð UðDð ð ð ð ð ð ð ð ð ð ð8 ×%Ò% i i¡k¤kÑ2Ô2Ð2r   r\   ÚmessageÚstrúPromptSession[bool]c                óJ  — ddl m} t          ¦   «         }|                     d¦  «        |                     d¦  «        |                     d¦  «        |                     t          j        ¦  «        |                     t          j        ¦  «        |                     t          j        ¦  «        dd
„¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         }|                     d¦  «        |                     d¦  «        |                     d¦  «        |                     d¦  «        |                     t          j        ¦  «        dd„¦   «         ¦   «         ¦   «         ¦   «         ¦   «         }|                     t          j	        ¦  «        dd„¦   «         } || |d¬¦  «        S )zH
    Create a `PromptSession` object for displaying the "--MORE--".
    r   r   rG   ÚyÚYr   r   r   r   c                ó<   — | j                              d¬¦  «         d S )NT©rS   ©r-   Úexit©r   s    r   Ú_yesz"_create_more_session.<locals>._yes¹   s    € ð 	Œ	�Š˜dˆÑ#Ô#Ð#Ð#Ð#r   ÚnÚNÚqÚQc                ó<   — | j                              d¬¦  «         d S )NFrw   rx   rz   s    r   Ú_noz!_create_more_session.<locals>._noÂ   s    € ð 	Œ	�Š˜eˆÑ$Ô$Ð$Ð$Ð$r   c                ó   — dS )zDisable inserting of text.Nr@   rz   s    r   Ú_ignorez%_create_more_session.<locals>._ignoreÊ   s   € € € r   T)Úkey_bindingsÚerase_when_done©r   r   r   r   )
Úprompt_toolkit.shortcutsr   r
   Úaddr   ÚControlJÚControlMÚControlIÚControlCÚAny)rp   r   Úbindingsr{   r�   rƒ   s         r   r^   r^   ±   s–  € ð 7Ð6Ð6Ð6Ð6Ð6å‰}Œ}€Hà‡\‚\�#ÑÔØ‡\‚\�#ÑÔØ‡\‚\�#ÑÔØ‡\‚\•$”-Ñ Ô Ø‡\‚\•$”-Ñ Ô Ø‡\‚\•$”-Ñ Ô ð$ð $ð $ñ !Ô ñ !Ô ñ !Ô ñ Ôñ Ôñ Ôð$ð ‡\‚\�#ÑÔØ‡\‚\�#ÑÔØ‡\‚\�#ÑÔØ‡\‚\�#ÑÔØ‡\‚\•$”-Ñ Ô ð%ð %ð %ñ !Ô ñ Ôñ Ôñ Ôñ Ôð
%ð ‡\‚\•$”(ÑÔð%ð %ð %ñ Ôð%ð ˆ=˜¨xÈÐNÑNÔNÐNr   r†   )r-   r1   r/   r2   r   r3   )r\   )rp   rq   r   rr   )!Ú__doc__Ú
__future__r   ÚasynciorI   Útypingr   Ú*prompt_toolkit.application.run_in_terminalr   Úprompt_toolkit.completionr   r   r   re   r	   Ú'prompt_toolkit.key_binding.key_bindingsr
   Ú(prompt_toolkit.key_binding.key_processorr   Úprompt_toolkit.keysr   Úprompt_toolkit.utilsr   Úprompt_toolkit.applicationr   r‡   r   Ú__all__r   r   r   r,   r^   r@   r   r   ú<module>r›      s™  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø  Ð  Ð  Ð  Ð  Ð  à BÐ BÐ BÐ BÐ BÐ Bðð ð ð ð ð ð ð ð ð ð
 =Ð <Ð <Ð <Ð <Ð <Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø BÐ BÐ BÐ BÐ BÐ BØ $Ð $Ð $Ð $Ð $Ð $Ø +Ð +Ð +Ð +Ð +Ð +àð 7Ø6Ð6Ð6Ð6Ð6Ð6Ø6Ð6Ð6Ð6Ð6Ð6ð Ø'ð€ð
 €ð4ð 4ð 4ð 4ð!Cð !Cð !Cð !CðHY3ð Y3ð Y3ð Y3ðxOð Oð Oð Oð Oð Oð Or   