
    :Qg3                        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        y)    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                    t         d   }|dk(  r?t        j                         D ]&  \  }}| |j                  dg       v s|d   |k  s$|c S  d}t        j                         D ]&  \  }}|j                  |      | k(  s|d   |k  s$|c S  y)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        Y/var/www/html/answerous/venv/lib/python3.12/site-packages/emoji/unicode_codes/__init__.pyr   r      s     ./O7#))+ 	ICtxx,,h?1R
	 %%' 	T88H%$x.O*KJ     c                        e Zd ZdZdedefdZy)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 r8|t        vr0t        |       || 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__;   sh    )< 73d{8=abeaf g5 NR& 	 Cy smr   N)__name__
__module____qualname____doc__strr)    r   r   r!   r!   2   s    s s r   r!   r   c                      t        t              j                  d      } t        | d      5 }t	        t        j                  |t                    ad d d        t        t              ay # 1 sw Y   xY w)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1D	dD	 IQ$))AGH
I&LI Is   %A((A1r"   c                 ^   | t         v ry| t        vrt        d|       t        t              j                  d|  d      }t        |d      5 }t        j                  |      j                         D ]  \  }}|t        |   | <    	 ddd       t         j                  |        y# 1 sw Y   xY w)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@@>##fSE$78D	dD	 )Q))A,,,. 	)JC#(JsOC 	)) 	) )s   8B##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   