o
    Phr                     @   s   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	m
Z
mZ d dlmZ d dlmZmZ dd	 e D Zed
ZG dd dZG dd dZedZG dd dZdS )    )compile)remove_spaces)Union)UnknownLanguage)CODESLANGUAGE_DATAVECTORS)LRUDictCache)StringVectorfuzzy_searchc                 C   s   g | ]
\}}t ||d qS ))data)r
   ).0languager    r   O/var/www/html/env_mimamsha/lib/python3.10/site-packages/translatepy/language.py
<listcomp>   s    r   z\(.+\)c                   @   s@   e Zd ZG dd dZdefddZedZedZedZd	S )
Scopesc                   @   ,   e Zd ZdeddfddZdefddZdS )zScopes.ScopenamereturnNc                 C      t || _d S Nstrr   selfr   r   r   r   __init__      zScopes.Scope.__init__c                 C      dj | jdS )NzLanguageScope({name})r   formatr   r   r   r   r   __repr__   r   zScopes.Scope.__repr____name__
__module____qualname__r   r   r#   r   r   r   r   Scope       r(   r   c                 C   sB   |d u rd S t | dd}|dkr| jS |dkr| jS | jS )N  
individualmacrolanguage)r   lowerreplace
INDIVIDUALMACROLANGUAGESPECIALr   r   r   r   get   s   z
Scopes.get
IndividualMacrolanguageSpecialN)	r%   r&   r'   r(   r   r3   r0   r1   r2   r   r   r   r   r      s    
r   c                   @   sX   e Zd ZG dd dZdefddZedZedZedZed	Z	ed
Z
edZdS )Typesc                   @   r   )z
Types.Typer   r   Nc                 C   r   r   r   r   r   r   r   r   )   r   zTypes.Type.__init__c                 C   r   )NzLanguageType({name})r   r    r"   r   r   r   r#   ,   r   zTypes.Type.__repr__r$   r   r   r   r   Type(   r)   r8   r   c                 C   sl   |d u rd S t | dd}|dkr| jS |dkr| jS |dkr%| jS |dkr,| jS |dkr3| jS | jS )Nr*   r+   livingancientextinct
historicalconstructed)	r   r.   r/   LIVINGANCIENTEXTINCT
HISTORICALCONSTRUCTEDr2   r   r   r   r   r3   /   s   z	Types.getAncientConstructedExtinct
HistoricalLivingr6   N)r%   r&   r'   r8   r   r3   r?   rB   r@   rA   r>   r2   r   r   r   r   r7   '   s    r7   i   c                   @   s`   e Zd ZG dd dZddedeeef ddfdd	Zdd
dZ	defddZ
defddZdS )Languagec                   @   s,   e Zd ZdeddfddZdefddZdS )zLanguage.LanguageExtrar   r   Nc                 C   s0   t  |dd | _t |dd | _d S )Nts)r7   r3   typer   scope)r   r   r   r   r   r   M   s   zLanguage.LanguageExtra.__init__c                 C   s   dj | j| jdS )Nz)LanguageExtra(type={type}, scope={scope}))rK   rL   )r!   rK   rL   r"   r   r   r   r#   Q   s   zLanguage.LanguageExtra.__repr__)r%   r&   r'   dictr   r   r#   r   r   r   r   LanguageExtraL   s    rN   ]   r   	thresholdr   Nc                 C   sv  |d u s
t |dkrtdddt|tr|j| _|j| _nZt|}t td|	 }|t
v r9t
| \| _| _n7|tv rFt| | _d| _n*tt|\}}|d | _| j|k rid||t| jd}t|| j|t| d | _| j| jft
|< t| j }|d	d | _|d
d | _|dd | _t|d | _t|d | _| |di | _t|di | _| j| jd< d S )Nr+   zN/Ar   zYou need to pass in a languaged   zQCouldn't recognize the given language ({0})
Did you mean: {1} (Similarity: {2}%)?   i2brI   3exfen)r   r   
isinstancerH   id
similarityr   LANGUAGE_CLEANUP_REGEXsubr.   _languages_cacher   r   LOADED_VECTORSr!   roundr   r   r3   alpha2alpha3balpha3talpha3r   rN   extrarM   in_foreign_languages)r   r   rP   normalized_language_search_result_similarityraising_messager   r   r   r   r   T   s8   





zLanguage.__init__c                 C   s   t   d S r   )r`   clearr"   r   r   r   clean_cache{   s   zLanguage.clean_cachec                 C   r   )NzLanguage({language}))r   )r!   r\   r"   r   r   r   r#   ~   r   zLanguage.__repr__c                 C   s
   t | jS r   )r   r\   r"   r   r   r   __str__   s   
zLanguage.__str__)rO   )r   N)r%   r&   r'   rN   r   r   intfloatr   rn   r#   ro   r   r   r   r   rH   J   s     
'rH   N)rer   translatepy.utils.sanitizer   typingr   translatepy.exceptionsr    translatepy.utils._language_datar   r   r   translatepy.utils.lru_cacherr	   translatepy.utils.similarityr
   r   itemsra   r^   r   r7   r`   rH   r   r   r   r   <module>   s     