o
    i                     @  s  U d Z ddlmZ ddlmZmZmZ ddlmZm	Z	m
Z
mZmZmZmZ g dZG dd deZ	 e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saJ ee ee@ rmJ 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abstractproperty)CallableDictHashableList
NamedTupleOptionalTuple)AttrsDEFAULT_ATTRSANSI_COLOR_NAMESANSI_COLOR_NAMES_ALIASES	BaseStyle
DummyStyleDynamicStylec                   @  sV   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S )r   z
str | Nonecolorbgcolorzbool | Nonebold	underlinestrikeitalicblinkreversehiddenN)__name__
__module____qualname____annotations__ r!   r!   U/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/prompt_toolkit/styles/base.pyr      s   
 r    F)	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+   r3   r(   r*   r2   r,   r&   r'   r)   )
ansidarkgrayansitealansiturquoise	ansibrown
ansipurpleansifuchsiaansilightgrayansidarkredansidarkgreenansidarkbluezdict[str, str]r   c                   @  s>   e Zd ZdZeefdddZ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?   rA   r!   r!   r"   get_attrs_for_style_strq       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!   rE   r!   r!   r"   style_rules}   s   zBaseStyle.style_rulesr   c                 C  rC   )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!   rJ   r!   r!   r"   invalidation_hash   rG   zBaseStyle.invalidation_hashNr?   r@   rA   r   rB   r   rB   rH   rB   r   )
r   r   r   __doc__r   r   rF   r   rK   rL   r!   r!   r!   r"   r   l   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@   rA   r   rB   c                 C  s   |S Nr!   rD   r!   r!   r"   rF      s   z"DummyStyle.get_attrs_for_style_strr   c                 C  rC   )N   r!   rJ   r!   r!   r"   rL      s   zDummyStyle.invalidation_hashrH   c                 C  rI   rR   r!   rJ   r!   r!   r"   rK      s   zDummyStyle.style_rulesNrM   rO   rN   )	r   r   r   rP   r   rF   rL   propertyrK   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 rR   )rU   r   _dummy)rE   rU   r!   r!   r"   __init__   s   zDynamicStyle.__init__r?   r@   rA   r   rB   c                 C  s   |   p| j}|||S rR   )rU   rW   rF   )rE   r?   rA   styler!   r!   r"   rF      s   z$DynamicStyle.get_attrs_for_style_strr   c                 C  s   |   p| j S rR   )rU   rW   rL   rJ   r!   r!   r"   rL      s   zDynamicStyle.invalidation_hashrH   c                 C  s   |   p| jjS rR   )rU   rW   rK   rJ   r!   r!   r"   rK      s   zDynamicStyle.style_rulesN)rU   rV   rM   rO   rN   )
r   r   r   rP   rX   r   rF   rL   rT   rK   r!   r!   r!   r"   r      s    

r   N)rP   
__future__r   abcr   r   r   typingr   r   r   r	   r
   r   r   __all__r   r   r   r   r    setvaluesissubsetkeysr   r   r   r!   r!   r!   r"   <module>   sF    $"