
    Ng3                     T   U d dl Z d dlmZ d dlmZ d dlmZ d dl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ededee         fd            Z G d de	eef                   Ze	ee	eef         f         ed<   d ZdefdZ e             dS )    N)	lru_cache)Path)warn)OptionalDictListAny)STATUS	LANGUAGES)get_emoji_by_nameload_from_json
EMOJI_DATAr
   r   )enaliasEstatus_loaded_keysi  )maxsizenamelanguagereturnc                 N   t           d         }|dk    rIt                                          D ]-\  }}| |                    dg           v r|d         |k    r|c S .d}t                                          D ].\  }}|                    |          | k    r|d         |k    r|c S /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datas        X/var/www/html/ai-engine/env/lib/python3.11/site-packages/emoji/unicode_codes/__init__.pyr   r      s     ./O7#))++ 	 	ICtxx,,,,h?1R1R


%%''  	T88H%%$x.O*K*KJJJ4    c                   "    e Zd ZdZdedef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           	          |t           v rE|t          vr<t          |           || v r)t          d| d| d| dt          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"   s     r   __missing__zEmojiDataDict.__missing__;   s    )< 7 73d{{R R Rbe R RR R R& 	    Cy smmr   N)__name__
__module____qualname____doc__strr)    r   r   r!   r!   2   s@         s s      r   r!   r   c                     t          t                                        d          } t          | d          5 }t	          t          j        |t                              ad d d            n# 1 swxY w Y   t          t                    ad S )Nz
emoji.jsonrb)object_pairs_hook)r   __file__	with_nameopendictjsonloadr!   r   list_DEFAULT_KEYSr   )filefs     r   _load_default_from_jsonr=   N   s     >>##L11D	dD		 IQ$)AGGGHH
I I I I I I I I I I I I I I I&&LLLs   )A--A14A1r"   c                    | t           v rdS | t          vrt          d|           t          t                                        d|  d          }t          |d          5 }t          j        |          	                                D ]\  }}|t          |         | <   	 ddd           n# 1 swxY w Y   t                               |            dS )z<Load values from the file 'emoji_{key}.json' into EMOJI_DATANzLanguage not supportedemoji_z.jsonr1   )r   r   NotImplementedErrorr   r3   r4   r5   r7   r8   r   r   append)r"   r;   r<   r   values        r   r   r   X   s    l
)!":C@@@>>##$7S$7$7$788D	dD		 )Q)A,,,,.. 	) 	)JC#(JsOC  	)) ) ) ) ) ) ) ) ) ) ) ) ) ) ) s    =B**B.1B.)r7   	functoolsr   pathlibr   warningsr   typingr   r   r   r	   emoji.unicode_codes.data_dictr
   r   __all__r:   r9   r   r.   __annotations__r   r!   r=   r   r/   r   r   <module>rJ      s                      , , , , , , , , , , , , ; ; ; ; ; ; ; ;   /$ d3i   
 4C 3 8C=    0    DcN   2 d38n$% % % %' ' '    "       r   