o
    Df                     @  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
 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sYJ ee ee@ reJ 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Hashable
NamedTuple)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   S/home/ubuntu/webapp/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'   r/   r$   r&   r.   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;   r=   r   r   r   get_attrs_for_style_strr       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   r   rG   rH   r   r   r   r   r   m   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   rN   r   rF   r   r   r   rG      s   zDummyStyle.style_rulesNrI   rK   rJ   )	r   r   r   rL   r
   rB   rH   propertyrG   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 rN   )rQ   r   _dummy)rA   rQ   r   r   r   __init__   s   zDynamicStyle.__init__r;   r<   r=   r	   r>   c                 C  s   |   p| j}|||S rN   )rQ   rS   rB   )rA   r;   r=   styler   r   r   rB      s   z$DynamicStyle.get_attrs_for_style_strr   c                 C  s   |   p| j S rN   )rQ   rS   rH   rF   r   r   r   rH      s   zDynamicStyle.invalidation_hashrD   c                 C  s   |   p| jjS rN   )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   rP   rG   r   r   r   r   r      s    

r   N)rL   
__future__r   abcr   r   r   typingr   r   r   __all__r	   r
   r   r   r   setvaluesissubsetkeysr   r   r   r   r   r   r   <module>   sF    "