
    gi`&                    f   d dl mZ d dlmZ d dlmZ d dlmZmZ d dlm	Z
 ddlmZ dd	gZ G d
 d          Zd  ej                    D             Zd  ej                    D             Zi Z	 ee
j                  D ]\  Z\  ZZZdededede	e<   ddZ G d de          Z e            ZdS )    )annotations)	Formatter)	Generator)BG_ANSI_COLORSFG_ANSI_COLORS)_256_colors   )StyleAndTextTuplesANSIansi_escapec                  R    e Zd ZdZddZddZddZddZddZddZ	ddZ
ddZdS )r   a  
    ANSI formatted text.
    Take something ANSI escaped text, for use as a formatted string. E.g.

    ::

        ANSI('\x1b[31mhello \x1b[32mworld')

    Characters between ``\001`` and ``\002`` are supposed to have a zero width
    when printed, but these are literally sent to the terminal output. This can
    be used for instance, for inserting Final Term prompt commands.  They will
    be translated into a prompt_toolkit '[ZeroWidthEscape]' fragment.
    valuestrreturnNonec                4   || _         g | _        d | _        d | _        d| _        d| _        d| _        d| _        d| _        d| _	        d| _
        d| _        |                                 }|                    d            |D ]}|                    |           d S )NF)r   _formatted_text_color_bgcolor_bold_dim
_underline_strike_italic_blink_reverse_hidden_parse_corotsend)selfr   parsercs       r/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/prompt_toolkit/formatted_text/ansi.py__init__zANSI.__init__    s    
35 #'$(
	 ""$$D 	 	AKKNNNN	 	    Generator[None, str, None]c              #    K   d}| j         }	 d}dV }|dk    r9d}|dk    r1dV }|dk    r|                    d|f           dV }n||z  }|dk    1|dk    rdV }|d	k    rd}n	Z|d
k    rd}|rd}g }	 dV }	|	                                r||	z  }n|                    t          t	          |pd          d                     |	dk    rd}ng|	dk    r*|                     |           |                                 }n8|	dk    r0t          |d                   D ]}
|                    |df           nnn|                    ||f           C)zB
        Coroutine that parses the ANSI escape sequences.
         TFNz[ZeroWidthEscape][   r   i'  ;mC )r   appendisdigitminint_select_graphic_rendition_create_style_stringrange)r    styleformatted_textcsir"   escaped_textsquare_bracketcurrentparamscharis              r#   r   zANSI._parse_corot6   s      -L	2 CA F{{!6kkAF{{&--/BL.QRRR!EE$) 6kk F{{!&!S((CCf -2 " 55D ||~~ "4
 c#gl*;*;T&B&BCCC  3;;&(GG "S[[ ::6BBB$($=$=$?$?E! "S[[%*6!9%5%5 D D . 5 5ucl C C C C! "A "P %%uaj111YL	2r%   attrs	list[int]c                   |sdg}nt          |ddd                   }|r|                                }|t          v rt          |         | _        n|t          v rt          |         | _        n|dk    r	d| _        ns|dk    r	d| _        nd|dk    r	d| _        nU|dk    r	d| _	        nF|d	k    r	d| _
        n7|d
k    r	d| _
        n(|dk    r	d| _        n|dk    r	d| _        n
|dk    r	d| _        n|dk    rd| _        d| _        n|dk    r	d| _        n|dk    r	d| _	        n|dk    r	d| _
        n|dk    r	d| _        n|dk    r	d| _        n|dk    r	d| _        n|sHd| _        d| _        d| _        d| _        d| _	        d| _        d| _        d| _
        d| _        d| _        nA|dv r<t          |          dk    r(|                                }|d	k    rt          |          dk    rs|dk    r4|                                }t                              |          | _        n9|dk    r3|                                }t                              |          | _        |dk    rt          |          dk    ro	 d|                                d|                                d|                                d}|dk    r|| _        n|dk    r|| _        n# t"          $ r Y nw xY w|dS dS )zH
        Taken a list of graphics attributes and apply changes.
        r   Nr	   T                     	      F                  )&   0   rU   rV   #02x)listpop
_fg_colorsr   
_bg_colorsr   r   r   r   r   r   r   r   r   lenr   get
IndexError)r    rB   attrnr/   	color_strs         r#   r6   zANSI._select_graphic_rendition   sB     	&CEEttt%%E M	699;;Dz!!(.## *4 0!

 		#"&"" $##"
!		$"'# %$$ %6" $"
!	"'$$# %$!!c%jj1nnIIKK 66c%jjAoorzz!IIKK&1ooa&8&8!IIKK(3(:(: 66c%jjAoo
6S		SSSS%))++SSS "  2::*3DKK!RZZ,5DM &   O  M	6 M	6 M	6 M	6 M	6s   AK" "
K/.K/c                z   g }| j         r|                    | j                    | j        r|                    d| j        z              | j        r|                    d           | j        r|                    d           | j        r|                    d           | j        r|                    d           | j        r|                    d           | j        r|                    d           | j	        r|                    d           | j
        r|                    d	           d
                    |          S )zW
        Turn current style flags into a string for usage in a formatted text.
        zbg:bolddim	underlinestrikeitalicblinkreversehiddenr1   )r   r2   r   r   r   r   r   r   r   r   r   join)r    results     r#   r7   zANSI._create_style_string   s<    ; 	'MM$+&&&= 	1MM%$-/000: 	"MM&!!!9 	!MM%   ? 	'MM+&&&< 	$MM(###< 	$MM(###; 	#MM'"""= 	%MM)$$$< 	$MM(###xxr%   c                    d| j         dS )NzANSI())r   r    s    r#   __repr__zANSI.__repr__   s    &tz&&&&r%   r
   c                    | j         S N)r   rp   s    r#   __pt_formatted_text__zANSI.__pt_formatted_text__  s    ##r%   argskwargsc                ^    t          t                              | j        ||                    S )z
        Like `str.format`, but make sure that the arguments are properly
        escaped. (No ANSI escapes can be injected.)
        )r   	FORMATTERvformatr   )r    ru   rv   s      r#   formatzANSI.format  s&    
 I%%dj$??@@@r%   objectc                    t          |t                    s|f}t          d |D                       }t          | j        |z            S )z+
        ANSI('<b>%s</b>') % value
        c              3  4   K   | ]}t          |          V  d S rs   )r   ).0rA   s     r#   	<genexpr>zANSI.__mod__.<locals>.<genexpr>  s(      44k!nn444444r%   )
isinstancetupler   r   )r    r   s     r#   __mod__zANSI.__mod__  sN     %'' 	HE44e44444DJ&'''r%   N)r   r   r   r   )r   r&   )rB   rC   r   r   )r   r   )r   r
   )ru   r   rv   r   r   r   )r   r{   r   r   )__name__
__module____qualname____doc__r$   r   r6   r7   rq   rt   rz   r    r%   r#   r   r      s            ,S2 S2 S2 S2jV6 V6 V6 V6p       8' ' ' '$ $ $ $A A A A( ( ( ( ( (r%   c                    i | ]\  }}||	S r   r   r~   kvs      r#   
<dictcomp>r         666tq!a666r%   c                    i | ]\  }}||	S r   r   r   s      r#   r   r     r   r%   rW   rX   textr{   r   r   c                p    t          |                               dd                              dd          S )z4
    Replace characters with a special meaning.
    r+   ?)r   replace)r   s    r#   r   r   "  s0     t99VS))11$<<<r%   c                      e Zd ZddZdS )	ANSIFormatterr   r{   format_specr   r   c                <    t          t          ||                    S rs   )r   rz   )r    r   r   s      r#   format_fieldzANSIFormatter.format_field*  s    6%55666r%   N)r   r{   r   r   r   r   )r   r   r   r   r   r%   r#   r   r   )  s(        7 7 7 7 7 7r%   r   N)r   r{   r   r   )
__future__r   stringr   typingr   prompt_toolkit.output.vt100r   r   r   _256_colors_tablebaser
   __all__r   itemsr[   r\   	enumeratecolorsrA   rgbr   r   rx   r   r%   r#   <module>r      s   " " " " " "             F F F F F F F F H H H H H H $ $ $ $ $ $ C( C( C( C( C( C( C( C(N 763~355666
663~355666
 I/677 / /LAy1a.....q...KNN= = = =7 7 7 7 7I 7 7 7
 MOO			r%   