§
    ŒŸj*  ã                  ój  — d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
 d dlmZ erd dlmZ d dlmZ g d¢Ze	eeef         eeeeegdf         f         f         Zee         Zerd dlmZ  G d	„ d
e¦  «        Ze	ed
eeg ef         df         Z	 d d!d„Zd"d„Z G d„ de¦  «        Z G d„ d¦  «        Zd#d„ZdS )$é    )Úannotations)ÚTYPE_CHECKINGÚAnyÚCallableÚIterableÚListÚTupleÚUnionÚcast)Ú
MouseEvent)ÚProtocol)ÚNotImplementedOrNone)	ÚOneStyleAndTextTupleÚStyleAndTextTuplesÚMagicFormattedTextÚAnyFormattedTextÚto_formatted_textÚis_formatted_textÚTemplateÚmerge_formatted_textÚFormattedTextr   )Ú	TypeGuardc                  ó   — e Zd ZdZdd„ZdS )r   zi
        Any object that implements ``__pt_formatted_text__`` represents formatted
        text.
        Úreturnr   c                ó   — d S ©N© ©Úselfs    úo/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/prompt_toolkit/formatted_text/base.pyÚ__pt_formatted_text__z(MagicFormattedText.__pt_formatted_text__)   s   € € € ó    N©r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   r   r"   r    r   r   #   s)   € € € € € ð	ð 	ð
 	CÐBÐBÐBÐBÐBr"   r   NÚ FÚvaluer   ÚstyleÚstrÚauto_convertÚboolr   r   c                óò  ‡— | €g }n©t          | t          ¦  «        rd| fg}nŽt          | t          ¦  «        r| }nvt          | d¦  «        r#t	          d| ¦  «                             ¦   «         }nCt          | ¦  «        rt           | ¦   «         ‰¬¦  «        S |rd| › fg}nt          d| ›�¦  «        ‚‰r!t	          t          ˆfd„|D ¦   «         ¦  «        }t          |t          ¦  «        r|S t          |¦  «        S )at  
    Convert the given value (which can be formatted text) into a list of text
    fragments. (Which is the canonical form of formatted text.) The outcome is
    always a `FormattedText` instance, which is a list of (style, text) tuples.

    It can take a plain text string, an `HTML` or `ANSI` object, anything that
    implements `__pt_formatted_text__` or a callable that takes no arguments and
    returns one of those.

    :param style: An additional style string which is applied to all text
        fragments.
    :param auto_convert: If `True`, also accept other types, and convert them
        to a string first.
    Nr(   r!   r   )r*   z[No formatted text. Expecting a unicode object, HTML, ANSI or a FormattedText instance. Got c                ó,   •— g | ]^}}‰d z   |z   g|¢R ‘ŒS )ú r   )Ú.0Ú
item_styleÚrestr*   s      €r    ú
<listcomp>z%to_formatted_text.<locals>.<listcomp>_   s2   ø€ ÐOÐOÐOÐ3D°:Àˆe�c‰k˜JÑ&Ð.¨Ð.Ð.ÐOÐOÐOr"   )Ú
isinstancer+   ÚlistÚhasattrr   r!   Úcallabler   Ú
ValueErrorr   r   )r)   r*   r,   Úresults    `  r    r   r   6   s;  ø€ ð& €}ØˆˆÝ	�E�3Ñ	Ô	ð 
Ø�u�+�ˆˆÝ	�E�4Ñ	 Ô	 ð 
ØˆˆÝ	�Ð/Ñ	0Ô	0ð 

ÝÐ*¨EÑ2Ô2×HÒHÑJÔJˆˆÝ	�%‰Œð 
Ý   ¡¤°Ð6Ñ6Ô6Ð6Ø	ð 
Ø˜%�zÐ"Ð#ˆˆåðEØ;@ðEð Eñ
ô 
ð 	
ð ð 
ÝÝØOÐOÐOÐOÈÐOÑOÔOñ
ô 
ˆõ �&�-Ñ(Ô(ð %Øˆå˜VÑ$Ô$Ð$r"   ÚobjectúTypeGuard[AnyFormattedText]c                óˆ   — t          | ¦  «        rdS t          | t          t          f¦  «        rdS t	          | d¦  «        rdS dS )zš
    Check whether the input is valid formatted text (for use in assert
    statements).
    In case of a callable, it doesn't check the return type.
    Tr!   F)r8   r5   r+   r6   r7   )r)   s    r    r   r   k   sO   € õ ��„ð ØˆtÝ�%�#�t˜Ñ%Ô%ð ØˆtÝˆuÐ-Ñ.Ô.ð ØˆtØˆ5r"   c                  ó,   ‡ — e Zd ZdZdd„Zdˆ fd„Zˆ xZS )	r   z†
    A list of ``(style, text)`` tuples.

    (In some situations, this can also be ``(style, text, mouse_handler)``
    tuples.)
    r   r   c                ó   — | S r   r   r   s    r    r!   z#FormattedText.__pt_formatted_text__‚   s   € Øˆr"   r+   c                óL   •— dt          ¦   «                              ¦   «         › d�S )NzFormattedText(ú))ÚsuperÚ__repr__)r   Ú	__class__s    €r    rC   zFormattedText.__repr__…   s$   ø€ Ø5¥¡¤× 0Ò 0Ñ 2Ô 2Ð5Ð5Ð5Ð5r"   r#   )r   r+   )r$   r%   r&   r'   r!   rC   Ú__classcell__)rD   s   @r    r   r   z   s[   ø€ € € € € ðð ðð ð ð ð6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6r"   c                  ó"   — e Zd ZdZdd„Zdd	„Zd
S )r   z¡
    Template for string interpolation with formatted text.

    Example::

        Template(' ... {} ... ').format(HTML(...))

    :param text: Plain text.
    Útextr+   r   ÚNonec                ó    — d|vsJ ‚|| _         d S )Nz{0})rG   )r   rG   s     r    Ú__init__zTemplate.__init__”   s   € Ø˜DÐ Ð Ð Ð ØˆŒ	ˆ	ˆ	r"   Úvaluesr   c                ó   ‡ ‡— dˆ ˆfd„}|S )Nr   r   c                 óz  •— ‰j                              d¦  «        } t          | ¦  «        dz
  t          ‰¦  «        k    sJ ‚t          ¦   «         }t	          | ‰¦  «        D ]>\  }}|                     d|f¦  «         |                     t          |¦  «        ¦  «         Œ?|                     d| d         f¦  «         |S )Nz{}é   r(   éÿÿÿÿ)rG   ÚsplitÚlenr   ÚzipÚappendÚextendr   )Úpartsr:   ÚpartÚvalr   rK   s       €€r    Ú
get_resultz#Template.format.<locals>.get_result™   s°   ø€ à”I—O’O DÑ)Ô)ˆEÝ�u‘:”: ‘>¥S¨¡[¤[Ò0Ð0Ð0Ð0å"‘_”_ˆFÝ  ¨Ñ/Ô/ð 6ð 6‘	��cØ—’˜r 4˜jÑ)Ô)Ð)Ø—’Õ/°Ñ4Ô4Ñ5Ô5Ð5Ð5Ø�MŠM˜2˜u Rœy˜/Ñ*Ô*Ð*ØˆMr"   ©r   r   r   )r   rK   rX   s   `` r    ÚformatzTemplate.format˜   s/   øø€ ð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð Ðr"   N)rG   r+   r   rH   )rK   r   r   r   )r$   r%   r&   r'   rJ   rZ   r   r"   r    r   r   ‰   sF   € € € € € ðð ðð ð ð ðð ð ð ð ð r"   r   ÚitemsúIterable[AnyFormattedText]c                ó   ‡ — dˆ fd„}|S )zH
    Merge (Concatenate) several pieces of formatted text together.
    r   r   c                 ór   •— t          ¦   «         } ‰D ]$}|                      t          |¦  «        ¦  «         Œ%| S r   )r   rT   r   )r:   Úir[   s     €r    Ú_merge_formatted_textz3merge_formatted_text.<locals>._merge_formatted_text­   s>   ø€ Ý‘”ˆØð 	0ð 	0ˆAØ�MŠMÕ+¨AÑ.Ô.Ñ/Ô/Ð/Ð/Øˆr"   rY   r   )r[   r`   s   ` r    r   r   ¨   s)   ø€ ð
ð ð ð ð ð ð !Ð r"   )r(   F)r)   r   r*   r+   r,   r-   r   r   )r)   r;   r   r<   )r[   r\   r   r   )Ú
__future__r   Útypingr   r   r   r   r   r	   r
   r   Úprompt_toolkit.mouse_eventsr   Útyping_extensionsr   Ú'prompt_toolkit.key_binding.key_bindingsr   Ú__all__r+   r   r   r   r   r   r   r   r   r   r   r   r"   r    ú<module>rg      s  ðØ "Ð "Ð "Ð "Ð "Ð "à SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ Sà 2Ð 2Ð 2Ð 2Ð 2Ð 2àð MØ*Ð*Ð*Ð*Ð*Ð*àLÐLÐLÐLÐLÐLð
ð 
ð 
€ð Ø	ˆ#ˆsˆ(„O�U˜3  X¨z¨lÐ<RÐ.RÔ%SÐSÔTÐTôÐ ð
 Ð.Ô/Ð ð ð 	CØ+Ð+Ð+Ð+Ð+Ð+ðCð Cð Cð Cð C˜Xñ Cô Cð Cð ØØØàˆR�ˆWÔØð
ôÐ ð DIð2%ð 2%ð 2%ð 2%ð 2%ðjð ð ð ð6ð 6ð 6ð 6ð 6Ð&ñ 6ô 6ð 6ðð ð ð ð ñ ô ð ð>!ð !ð !ð !ð !ð !r"   