o
    h                     @   s  U d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
mZmZmZ d dlmZmZ g dZdZeeaee ed< ed	d
dededee fddZG dd deee	f Zeeeee	f f ed< dede
fddZdd ZdefddZe  dS )    N)	lru_cache)warn)AnyBinaryIODictListOptional)STATUS	LANGUAGES)get_emoji_by_nameload_from_json
EMOJI_DATAr	   r
   )enaliasEstatus_loaded_keysi  )maxsizenamelanguagereturnc                 C   s   t d }|dkr%t D ]\}}| |dg v r"|d |kr"|  S qd}t D ]\}}||| kr>|d |kr>|  S q)dS )z
    Find emoji by short-name in a specific language.
    Returns None if not found

    :param name: emoji short code e.g. ":banana:"
    :param language: language-code e.g. 'es', 'de', etc. or 'alias'
    fully_qualifiedr   r   r   N)r	   r   itemsget)r   r   r   emjdata r   W/var/www/html/env_mimamsha/lib/python3.10/site-packages/emoji/unicode_codes/__init__.pyr      s   
r   c                   @   s"   e Zd ZdZdedefddZdS )EmojiDataDictus  Replaces built-in-dict in the values of the EMOJI_DATA dict.
    Auto loads language data when accessing language data via
    key-access without prior loading of the language:
    e.g. EMOJI_DATA['👌']['fr'] will auto load French language and not throw
    a KeyError.
    Shows a deprecation warning explainging that `emoji.config.load_language()`
    should be used.keyr   c                 C   sR   |t v r%|tvr%t| || v r%td| d| d| dtdd | | S t|)zFAuto load language `key`, raises KeyError if language is no supported.z Use emoji.config.load_language('z$') before accesing EMOJI_DATA[emj]['z'].
Accessing EMOJI_DATA[emj]['z.'] without loading the language is deprecated.   )
stacklevel)r
   r   r   r   DeprecationWarningKeyError)selfr   r   r   r   __missing__<   s   zEmojiDataDict.__missing__N)__name__
__module____qualname____doc__strr%   r   r   r   r   r   3   s    r   r   c                 C   s0   t jdkrtjd| dS tjd| S )N)r    	   zemoji.unicode_codesrb)sysversion_info	importlib	resourcesfilesjoinpathopenopen_binary)r   r   r   r   
_open_fileO   s   
r5   c                  C   sF   t d} ttj| tdaW d    n1 sw   Y  ttad S )Nz
emoji.json)object_pairs_hook)	r5   dictjsonloadr   r   list_DEFAULT_KEYSr   )fr   r   r   _load_default_from_jsonV   s   
r=   r   c                 C   s   | t v rdS | tvrtd| td|  d}t| D ]
\}}|t| | < qW d   n1 s4w   Y  t |  dS )z<Load values from the file 'emoji_{key}.json' into EMOJI_DATANzLanguage not supportedemoji_z.json)	r   r
   NotImplementedErrorr5   r8   r9   r   r   append)r   r<   r   valuer   r   r   r   _   s   
r   )r-   importlib.resourcesr/   r8   	functoolsr   warningsr   typingr   r   r   r   r   emoji.unicode_codes.data_dictr	   r
   __all__r;   r:   r   r*   __annotations__r   r   r5   r=   r   r   r   r   r   <module>   s(   
 	
