o
    �õ±jã  ã                   @  s  U d Z ddlmZ ddlmZmZ ddlmZmZ ddl	m
Z
 g d¢ZG dd„ de
ƒZ	 ed	d	d
d
d
d
d
d
d
d
d�
Zg d¢Zdddddddddddœ
Zded< ee ¡ ƒ eeƒ¡s\J ‚ee ¡ ƒeeƒ@ rhJ ‚G dd„ ded�ZG dd„ deƒZG dd „ d eƒZd!S )"z#
The base classes for the styling.
é    )Úannotations)ÚABCMetaÚabstractmethod)ÚCallableÚHashable)Ú
NamedTuple)ÚAttrsÚDEFAULT_ATTRSÚANSI_COLOR_NAMESÚANSI_COLOR_NAMES_ALIASESÚ	BaseStyleÚ
DummyStyleÚDynamicStylec                   @  s^   e Zd ZU ded< ded< ded< ded< ded< ded< ded	< ded
< ded< ded< dS )r   z
str | NoneÚcolorÚbgcolorzbool | NoneÚboldÚ	underlineÚstrikeÚitalicÚblinkÚreverseÚhiddenÚdimN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© r   r   ú�/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/prompt_toolkit/styles/base.pyr      s   
 r   Ú F)
r   r   r   r   r   r   r   r   r   r   )ÚansidefaultÚ	ansiblackÚansiredÚ	ansigreenÚ
ansiyellowÚansiblueÚansimagentaÚansicyanÚansigrayÚansibrightblackÚansibrightredÚansibrightgreenÚansibrightyellowÚansibrightblueÚansibrightmagentaÚansibrightcyanÚ	ansiwhiter)   r'   r/   r$   r&   r.   r(   r"   r#   r%   )
ÚansidarkgrayÚansitealÚansiturquoiseÚ	ansibrownÚ
ansipurpleÚansifuchsiaÚansilightgrayÚansidarkredÚansidarkgreenÚansidarkbluezdict[str, str]r   c                   @  sB   e Zd ZdZeefddd„ƒZeedd
d„ƒƒZeddd„ƒZ	dS )r   z8
    Abstract base class for prompt_toolkit styles.
    Ú	style_strÚstrÚdefaultr   Úreturnc                 C  ó   dS )a  
        Return :class:`.Attrs` for the given style string.

        :param style_str: The style string. This can contain inline styling as
            well as classnames (e.g. "class:title").
        :param default: `Attrs` to be used if no styling was defined.
        Nr   ©Úselfr;   r=   r   r   r   Úget_attrs_for_style_strv   ó    z!BaseStyle.get_attrs_for_style_strúlist[tuple[str, str]]c                 C  ó   g S )z‡
        The list of style rules, used to create this style.
        (Required for `DynamicStyle` and `_MergedStyle` to work.)
        r   ©rA   r   r   r   Ústyle_rules‚   s   zBaseStyle.style_rulesr   c                 C  r?   )z¾
        Invalidation hash for the style. When this changes over time, the
        renderer knows that something in the style changed, and that everything
        has to be redrawn.
        Nr   rF   r   r   r   Úinvalidation_hash‹   rC   zBaseStyle.invalidation_hashN©r;   r<   r=   r   r>   r   ©r>   rD   ©r>   r   )
r   r   r   Ú__doc__r   r	   rB   ÚpropertyrG   rH   r   r   r   r   r   q   s    ÿr   )Ú	metaclassc                   @  s6   e Zd ZdZefddd„Zdd
d„Zeddd„ƒZdS )r   z.
    A style that doesn't style anything.
    r;   r<   r=   r   r>   c                 C  s   |S ©Nr   r@   r   r   r   rB   ™   s   z"DummyStyle.get_attrs_for_style_strr   c                 C  r?   )Né   r   rF   r   r   r   rH   ž   s   zDummyStyle.invalidation_hashrD   c                 C  rE   rO   r   rF   r   r   r   rG   ¡   s   zDummyStyle.style_rulesNrI   rK   rJ   )	r   r   r   rL   r	   rB   rH   rM   rG   r   r   r   r   r   ”   s    ÿ
r   c                   @  s@   e Zd ZdZddd„Zefddd„Zddd„Zeddd„ƒZ	dS )r   z‹
    Style class that can dynamically returns an other Style.

    :param get_style: Callable that returns a :class:`.Style` instance.
    Ú	get_styleúCallable[[], BaseStyle | None]c                 C  s   || _ tƒ | _d S rO   )rQ   r   Ú_dummy)rA   rQ   r   r   r   Ú__init__­   s   zDynamicStyle.__init__r;   r<   r=   r   r>   c                 C  s   |   ¡ p| j}| ||¡S rO   )rQ   rS   rB   )rA   r;   r=   Ústyler   r   r   rB   ±   s   z$DynamicStyle.get_attrs_for_style_strr   c                 C  s   |   ¡ p| j ¡ S rO   )rQ   rS   rH   rF   r   r   r   rH   ¸   s   zDynamicStyle.invalidation_hashrD   c                 C  s   |   ¡ p| jjS rO   )rQ   rS   rG   rF   r   r   r   rG   »   s   zDynamicStyle.style_rulesN)rQ   rR   rI   rK   rJ   )
r   r   r   rL   rT   r	   rB   rH   rM   rG   r   r   r   r   r   ¦   s    
ÿ
r   N)rL   Ú
__future__r   Úabcr   r   Úcollections.abcr   r   Útypingr   Ú__all__r   r	   r
   r   r   ÚsetÚvaluesÚissubsetÚkeysr   r   r   r   r   r   r   Ú<module>   sJ    öö#