Ë
    ^ãj*  ã                  ór  — U d dl mZ d dlZej                  dk7  sJ ‚d dlZd dlZd dlZd dlZd dlm	Z	m
Z
 d dl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 d
dlmZ g d¢Z G d„ de«      Zi Zded<   ej:                  	 	 	 	 	 	 dd„«       Zej:                  dd„«       Z G d„ d«      Z  G d„ de «      Z!y)é    )ÚannotationsNÚwin32)ÚAbstractEventLoopÚget_running_loop)ÚCallableÚ	Generator)ÚAbstractContextManager)ÚTextIOé   )ÚKeyPressé   )ÚInput)ÚPosixStdinReader)ÚVt100Parser)Ú
Vt100InputÚraw_modeÚcooked_modec                  óŒ   — e Zd ZU dZ e«       Zded<   dd„Z	 	 	 	 dd„Zdd„Z	dd„Z
dd„Zedd	„«       Zdd
„Zdd„Zdd„Zdd„Zy)r   zz
    Vt100 input for Posix systems.
    (This uses a posix file descriptor that can be registered in the event loop.)
    zset[int]Ú_fds_not_a_terminalc                ó¼  ‡ — 	 |j                  «        |j                  «       }|j                  «       }|ss|t        j                  vrad}t        j                  j                  ||z  «       t        j                  j                  «        t        j                  j                  |«       |‰ _        |j                  «       ‰ _        g ‰ _        t        ‰ j                  |j                   ¬«      ‰ _        t%        ˆ fd„«      ‰ _        y # t        j                  $ rC}dt        j                  v rt        j                  d«      |‚t        j                  d«      |‚d }~ww xY w)Nzidlelib.runz<Stdin is not a terminal. Running from Idle is not supported.zStdin is not a terminal.z*Warning: Input is not a terminal (fd=%r).
)Úencodingc                ó:   •— ‰j                   j                  | «      S ©N)Ú_bufferÚappend)Ú	key_pressÚselfs    €ú\/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/prompt_toolkit/input/vt100.pyú<lambda>z%Vt100Input.__init__.<locals>.<lambda>L   s   ø€ ˜dŸl™l×1Ñ1°)Ó<€ ó    )ÚfilenoÚioÚUnsupportedOperationÚsysÚmodulesÚisattyr   r   ÚstderrÚwriteÚflushÚaddÚstdinÚ_filenor   r   r   Ústdin_readerr   Úvt100_parser)r   r+   Úer&   ÚfdÚmsgs   `     r   Ú__init__zVt100Input.__init__&   s  ø€ ð		Qà�L‰LŒNð —‘“ˆØ�\‰\‹^ˆá˜"¤J×$BÑ$BÑBØ?ˆCÜ�J‰J×Ñ˜S 2™XÔ&Ü�J‰J×ÑÔÜ×*Ñ*×.Ñ.¨rÔ2ð ˆŒ
ð —|‘|“~ˆŒà')ˆŒÜ,¨T¯\©\ÀEÇNÁNÔSˆÔÜ'Û<ó
ˆÕøô? ×&Ñ&ò 	QØ¤§¡Ñ+Ü×-Ñ-ØRóàðô ×-Ñ-Ð.HÓIÈqÐPûð	Qús   ƒD ÄEÄ>EÅEc                ó   — t        | |«      S )zj
        Return a context manager that makes this input active in the current
        event loop.
        )Ú_attached_input)r   Úinput_ready_callbacks     r   ÚattachzVt100Input.attachO   s   € ô ˜tÐ%9Ó:Ð:r    c                ó   — t        | «      S )z{
        Return a context manager that makes sure that this input is not active
        in the current event loop.
        )Ú_detached_input©r   s    r   ÚdetachzVt100Input.detachX   s   € ô
 ˜tÓ$Ð$r    c                ó–   — | j                   j                  «       }| j                  j                  |«       | j                  }g | _        |S )zRead list of KeyPress.)r-   Úreadr.   Úfeedr   )r   ÚdataÚresults      r   Ú	read_keyszVt100Input.read_keys_   sE   € ð × Ñ ×%Ñ%Ó'ˆð 	×Ñ×Ñ˜tÔ$ð —‘ˆØˆŒØˆr    c                ó`   — | j                   j                  «        | j                  }g | _        |S )zc
        Flush pending keys and return them.
        (Used for flushing the 'escape' key.)
        )r.   r)   r   )r   r?   s     r   Ú
flush_keyszVt100Input.flush_keysl   s-   € ð 	×Ñ×ÑÔ!ð —‘ˆØˆŒØˆr    c                ó.   — | j                   j                  S r   )r-   Úclosedr9   s    r   rD   zVt100Input.closedz   s   € à× Ñ ×'Ñ'Ð'r    c                óH   — t        | j                  j                  «       «      S r   )r   r+   r!   r9   s    r   r   zVt100Input.raw_mode~   s   € Ü˜Ÿ
™
×)Ñ)Ó+Ó,Ð,r    c                óH   — t        | j                  j                  «       «      S r   )r   r+   r!   r9   s    r   r   zVt100Input.cooked_mode�   s   € Ü˜4Ÿ:™:×,Ñ,Ó.Ó/Ð/r    c                ó6   — | j                   j                  «       S r   )r+   r!   r9   s    r   r!   zVt100Input.fileno„   s   € Ø�z‰z× Ñ Ó"Ð"r    c                ó    — d| j                   › �S )Nzfd-)r,   r9   s    r   Útypeahead_hashzVt100Input.typeahead_hash‡   s   € Ø�T—\‘\�NÐ#Ð#r    N)r+   r
   ÚreturnÚNone)r5   úCallable[[], None]rJ   úAbstractContextManager[None])rJ   rM   )rJ   zlist[KeyPress])rJ   Úbool)rJ   Úint)rJ   Ústr)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úsetr   Ú__annotations__r2   r6   r:   r@   rB   ÚpropertyrD   r   r   r!   rI   © r    r   r   r      sh   … ññ %(£EÐ˜Ó)ó'
ðR;Ø$6ð;à	%ó;ó%óóð ò(ó ð(ó-ó0ó#ô$r    r   z>dict[tuple[AbstractEventLoop, int], Callable[[], None] | None]Ú_current_callbacksc              #  óò  ‡ ‡‡‡K  — t        «       Š‰ j                  «       Št        j                  ‰‰f«      }dˆˆˆ ˆfd„}	 ‰j	                  ‰|«       ‰t        ‰‰f<   	 d–— ‰j                  ‰«       |r‰j	                  ‰|«       |t        ‰‰f<   yt        ‰‰f= y# t
        t        f$ r t        ‚w xY w# ‰j                  ‰«       |r‰j	                  ‰|«       |t        ‰‰f<   w t        ‰‰f= w xY w­w)zÎ
    Context manager that makes this input active in the current event loop.

    :param input: :class:`~prompt_toolkit.input.Input` object.
    :param callback: Called when the input is ready to read.
    c                 óN   •— ‰j                   r‰j                  ‰«        ‰ «        y)a:  Wrapper around the callback that already removes the reader when
        the input is closed. Otherwise, we keep continuously calling this
        callback, until we leave the context manager (which can happen a bit
        later). This fixes issues when piping /dev/null into a prompt_toolkit
        application.N)rD   Úremove_reader)Úcallbackr0   ÚinputÚloops   €€€€r   Úcallback_wrapperz)_attached_input.<locals>.callback_wrapperž   s   ø€ ð �<Š<Ø×Ñ˜rÔ"Ù�
r    N©rJ   rK   )	r   r!   rY   ÚgetÚ
add_readerÚPermissionErrorÚOSErrorÚEOFErrorr\   )r^   r]   Úpreviousr`   r0   r_   s   ``  @@r   r4   r4   �   sú   ûè ø€ ô Ó€DØ	�‰‹€BÜ!×%Ñ% t¨R jÓ1€H÷ð ðØ�‰˜Ð,Ô-ð $,Ô�t˜R�xÑ ð	-Ûà×Ñ˜2ÔáØ�O‰O˜B Ô)Ø+3Ô˜t R˜xÒ(ä" 4¨ 8Ñ,øô/ œWÐ%ò 
ô ˆð
ûð" 	×Ñ˜2ÔáØ�O‰O˜B Ô)Ø+3Ô˜t R˜xÒ(ä" 4¨ 8Ñ,üs5   †;C7ÁB ÁC7Á B8 Á$;C7ÂB5Â5C7Â8<C4Ã4C7c              #  ó>  K  — t        «       }| j                  «       }t        j                  ||f«      }|r|j	                  |«       d t        ||f<   	 d –— |r|j                  ||«       |t        ||f<   y y # |r|j                  ||«       |t        ||f<   w w xY w­wr   )r   r!   rY   rb   r\   rc   )r^   r_   r0   rg   s       r   r8   r8   Ä   sŸ   è ø€ äÓ€DØ	�‰‹€BÜ!×%Ñ% t¨R jÓ1€HáØ×Ñ˜2ÔØ'+Ô˜4 ˜8Ñ$ð4ÛáØ�O‰O˜B Ô)Ø+3Ô˜t R˜xÒ(ð ø‰8Ø�O‰O˜B Ô)Ø+3Ô˜t R˜xÒ(ð üs   ‚ABÁA8 Á!BÁ8"BÂBc                  óL   — e Zd ZdZdd„Zd	d„Zed
d„«       Zed
d„«       Zdd„Z	y)r   z©
    ::

        with raw_mode(stdin):
            ''' the pseudo-terminal stdin is now used in raw mode '''

    We ignore errors when executing `tcgetattr` fails.
    c                óŒ   — || _         |  	 t        j                  |«      | _        y # t        j                  $ r
 d | _        Y y w xY wr   )r!   ÚtermiosÚ	tcgetattrÚattrs_beforeÚerror)r   r!   s     r   r2   zraw_mode.__init__î   s?   € ØˆŒÙð	%Ü '× 1Ñ 1°&Ó 9ˆDÕøÜ�}‰}ò 	%à $ˆDÖð	%ús   ‹& ¦AÁAc                óè  — 	 t        j                  | j                  «      }| j                  |t        j
                     «      |t        j
                  <   | j                  |t        j                     «      |t        j                  <   d|t        j                     t         j                  <   t        j                  | j                  t         j                  |«       y # t         j                  $ r Y y w xY w)Nr   )rk   rl   r!   Ú_patch_lflagÚttyÚLFLAGÚ_patch_iflagÚIFLAGÚCCÚVMINÚ	tcsetattrÚTCSANOWrn   )r   Únewattrs     r   Ú	__enter__zraw_mode.__enter__÷   s¬   € ð	EÜ×'Ñ'¨¯©Ó4ˆGð "&×!2Ñ!2°7¼3¿9¹9Ñ3EÓ!FˆG”C—I‘IÑØ!%×!2Ñ!2°7¼3¿9¹9Ñ3EÓ!FˆG”C—I‘IÑð -.ˆG”C—F‘F‰OœGŸL™LÑ)ä×Ñ˜dŸk™k¬7¯?©?¸GÕDøô �}‰}ò 	Ùð	ús   ‚C ÃC1Ã0C1c                ó�   — |t         j                  t         j                  z  t         j                  z  t         j                  z   z  S r   ©rk   ÚECHOÚICANONÚIEXTENÚISIG©ÚclsÚattrss     r   rp   zraw_mode._patch_lflag
  s/   € àœŸ™¬¯©Ñ6¼¿¹ÑGÌ'Ï,É,ÑVÐWÑWÐWr    c                ó²   — |t         j                  t         j                  z  t         j                  z  t         j                  z  t         j
                  z   z  S r   )rk   ÚIXONÚIXOFFÚICRNLÚINLCRÚIGNCRr�   s     r   rs   zraw_mode._patch_iflag  sS   € àô �L‰LÜ�m‰mñô �M‰Mñ	ô
 �m‰mñô �m‰mñð	
ñ 
ð 	
r    c                óÄ   — | j                   �;	 t        j                  | j                  t        j                  | j                   «       y y # t        j
                  $ r Y y w xY wr   )rm   rk   rw   r!   rx   rn   )r   Úas     r   Ú__exit__zraw_mode.__exit__  sP   € Ø×ÑÐ(ðÜ×!Ñ! $§+¡+¬w¯©À×@QÑ@QÕRð )øô —=‘=ò Ùðús   Ž9A	 Á	AÁAN)r!   rO   rJ   rK   ra   ©rƒ   rO   rJ   rO   )r‹   ÚobjectrJ   rK   )
rQ   rR   rS   rT   r2   rz   Úclassmethodrp   rs   rŒ   rX   r    r   r   r   Ö   sA   „ ñó.%óEð& òXó ðXð ò
ó ð
ôr    r   c                  ó4   — e Zd ZdZedd„«       Zedd„«       Zy)r   zú
    The opposite of ``raw_mode``, used when we need cooked mode inside a
    `raw_mode` block.  Used in `Application.run_in_terminal`.::

        with cooked_mode(stdin):
            ''' the pseudo-terminal stdin is now used in cooked mode. '''
    c                óŽ   — |t         j                  t         j                  z  t         j                  z  t         j                  z  z  S r   r|   r�   s     r   rp   zcooked_mode._patch_lflag1  s,   € àœŸ™¤w§~¡~Ñ5¼¿¹ÑFÌÏÉÑUÑVÐVr    c                ó(   — |t         j                  z  S r   )rk   r‡   r�   s     r   rs   zcooked_mode._patch_iflag5  s   € ð ”w—}‘}Ñ$Ð$r    Nr�   )rQ   rR   rS   rT   r�   rp   rs   rX   r    r   r   r   (  s1   „ ñð òWó ðWð ò%ó ñ%r    r   )r^   r   r]   rL   rJ   úGenerator[None, None, None])r^   r   rJ   r“   )"Ú
__future__r   r$   ÚplatformÚ
contextlibr"   rk   rq   Úasyncior   r   Úcollections.abcr   r   r	   Útypingr
   Úkey_bindingr   Úbaser   Úposix_utilsr   r.   r   Ú__all__r   rY   rV   Úcontextmanagerr4   r8   r   r   rX   r    r   ú<module>rŸ      sÑ   ðÞ "ã 
à
‡|�|�wÒÐ Ðã Û 	Û Û 
ß 7ß /Ý -Ý å "Ý Ý )Ý %ò€ôl$�ô l$ðb ð ð ó ð
 ×Ñð0-Øð0-Ø!3ð0-à ò0-ó ð0-ðf ×Ñò4ó ð4÷"Lñ Lôd%�(õ %r    