U
    祡c	                     @   s<  d dl Z d dlmZmZmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ e jd	krpd d
lmZ nd d
lmZ erddlmZmZmZ ed ZG dd deZG dd deZedkr8d dl Z d dlmZ d dlmZ eddZedd ee D ddZe e e!e j"dkr8e#e j"d  dS )    N)TYPE_CHECKINGOptionalUnion   )JupyterMixin)Segment)Style)EMOJI_emoji_replace)      )Literal)ConsoleConsoleOptionsRenderResult)emojitextc                   @   s   e Zd ZdZdS )NoEmojizNo emoji by that name.N)__name__
__module____qualname____doc__ r   r   ./tmp/pip-unpacked-wheel-qkhzhrww/rich/emoji.pyr      s   r   c                   @   s   e Zd ZddddgZdddZdeeeef ee	 d	d
ddZ
eeedddZedddZedddZddddddZd	S )Emojinamestyle_charvariantu   ︎u   ️)r   r   noneN)r   r   r   returnc                 C   sh   || _ || _|| _zt| | _W n" tk
rB   td|Y nX |dk	rd|  j| j|d7  _dS )zA single emoji character.

        Args:
            name (str): Name of emoji.
            style (Union[str, Style], optional): Optional style. Defaults to None.

        Raises:
            NoEmoji: If the emoji doesn't exist.
        zNo emoji called N )	r   r   r   r	   r   KeyErrorr   VARIANTSget)selfr   r   r   r   r   r   __init__    s    zEmoji.__init__)r   r!   c                 C   s   t |S )zReplace emoji markup with corresponding unicode characters.

        Args:
            text (str): A string with emojis codes, e.g. "Hello :smiley:!"

        Returns:
            str: A string with emoji codes replaces with actual emoji.
        r
   )clsr   r   r   r   replace9   s    
zEmoji.replace)r!   c                 C   s   d| j dS )Nz<emoji >)r   r&   r   r   r   __repr__E   s    zEmoji.__repr__c                 C   s   | j S N)r   r+   r   r   r   __str__H   s    zEmoji.__str__r   r   r   )consoleoptionsr!   c                 c   s   t | j|| jV  d S r-   )r   r   Z	get_styler   )r&   r/   r0   r   r   r   __rich_console__K   s    zEmoji.__rich_console__)r    N)r   r   r   	__slots__r$   strr   r   r   EmojiVariantr'   classmethodr)   r,   r.   r1   r   r   r   r   r      s$   
  
 r   __main__)Columns)r   T)recordc                 c   s&   | ]}d |krd| d| V  qdS )u   ‍:z: Nr   ).0r   r   r   r   	<genexpr>Z   s      r;   )Zcolumn_first)$systypingr   r   r   Zjupyterr   segmentr   r   r   Z_emoji_codesr	   r   version_infor   Ztyping_extensionsr/   r   r   r   r4   	Exceptionr   r   r   Zrich.columnsr7   Zrich.consolesortedkeyscolumnsprintlenargvZ	save_htmlr   r   r   r   <module>   s4   
6


