o
    Niw                     @   s   U d dl mZ ddlmZmZ eeeef Zi Zeeeef ef e	d< ed d Z
ed d ZdZh dZh d	Zd
dhZh dZh deB ZdededefddZdededefddZdededefddZdS )   )LANGUAGE_DISTANCES    )DictTuple_DISTANCE_CACHE*z*_*   >   DZEHLYMAMRTN>   ASGUMHMPPRUMUSVIHKMO>   ARBOBRBZCLCOCRECFKGFGTGYHNMXNIPAPEPYSRSVUYVE005013419>%   AGAIAWBBBLBMBQBSCACUCWDMDOGDGLGPHTJMKNKYLCMFMQMSPMr   SXTCTTr   VCVGr   003019021029desired	supportedreturnc                 C   s>   || krdS | |ft v rt | |f S t| |}|t | |f< |S )z
    Takes in triples of (language, script, territory), which can be derived by
    'maximizing' a language tag. Returns a number from 0 to 135 indicating the
    'distance' between these for the purposes of language matching.
    r   )r   _tuple_distance)rT   rU   result rY   O/home/ubuntu/.local/lib/python3.10/site-packages/langcodes/language_distance.pytuple_distance_cacheda   s   
r[   
dictionarykey1key2c                 C   s   |  |i  ||S )N)get)r\   r]   r^   defaultrY   rY   rZ   _get2t   s   ra   c                 C   sH  | \}}}|\}}}d}||kr|t t||t7 }| d| }	| d| }
||kr4|t t|	|
t7 }||krt}|	|
kr|dkrM|tv |tv krLd}nQ|dkrr|dkr\|tvr\d}nB|tvrg|dkrgd}n7|tv |tv krqd}n,|tv r}|dkr}d	}n!|d
ks|dkr|tv |tv krd}n|	dkr|t	v |t	v krd}||7 }|S )Nr   _ar   enGB   r1   r   esptzh_Hant)
ra   r   DEFAULT_LANGUAGE_DISTANCEDEFAULT_SCRIPT_DISTANCEDEFAULT_TERRITORY_DISTANCEMAGHREBr   LATIN_AMERICAAMERICASCNSAR)rT   rU   desired_languagedesired_scriptdesired_territorysupported_languagesupported_scriptsupported_territorydistancedesired_script_pairsupported_script_pairtdistrY   rY   rZ   rW   x   sZ   

rW   N)
data_dictsr   typingr   r   str	TagTripler   int__annotations__rk   rl   rm   rn   r   rq   ro   rp   r[   dictra   rW   rY   rY   rY   rZ   <module>   s"    ),