U
    ouf                     @  s   d Z ddlmZ ddlmZ ddlmZ erDddlmZ ddl	m
Z
 ddd	gZd
ddddZdddddZddddd	ZdS )z
Adaptor for building prompt_toolkit styles, starting from a Pygments style.

Usage::

    from pygments.styles.tango import TangoStyle
    style = style_from_pygments_cls(pygments_style_cls=TangoStyle)
    )annotations)TYPE_CHECKING   Style)Tokenstyle_from_pygments_clsstyle_from_pygments_dictpygments_token_to_classnameztype[PygmentsStyle]r   )pygments_style_clsreturnc                 C  s$   ddl m} t| |stt| jS )a  
    Shortcut to create a :class:`.Style` instance from a Pygments style class
    and a style dictionary.

    Example::

        from prompt_toolkit.styles.from_pygments import style_from_pygments_cls
        from pygments.styles import get_style_by_name
        style = style_from_pygments_cls(get_style_by_name('monokai'))

    :param pygments_style_cls: Pygments style class to start from.
    r   r   )pygments.styler   
issubclassAssertionErrorr	   Zstyles)r   PygmentsStyle r   B/tmp/pip-unpacked-wheel-8milen2s/prompt_toolkit/styles/pygments.pyr      s    zdict[Token, str])pygments_dictr   c                 C  s0   g }|   D ]\}}|t||f qt|S )z
    Create a :class:`.Style` instance from a Pygments style dictionary.
    (One that maps Token objects to style strings.)
    )itemsappendr
   r   )r   Zpygments_styletokenstyler   r   r   r	   0   s    r   str)r   r   c                 C  s   d|  }d | S )z
    Turn e.g. `Token.Name.Exception` into `'pygments.name.exception'`.

    (Our Pygments lexer will also turn the tokens that pygments produces in a
    prompt_toolkit list of fragments that match these styling rules.)
    )Zpygments.)joinlower)r   partsr   r   r   r
   =   s    N)__doc__
__future__r   typingr   r   r   r   r   Zpygments.tokenr   __all__r   r	   r
   r   r   r   r   <module>   s   