o
    Ph	                     @   sD   d dl mZ d dlmZ d dlmZ d dlmZ G dd deZdS )    Language)BaseTranslator)Tuple)Requestc                
   @   s   e Zd ZdZe fdefddZdedededeeef fd	d
ZdedefddZ	de
defddZdede
fddZdefddZdS )LibreTranslatez8
    translatepy's implementation of LibreTranslate
    requestc                 C   s
   || _ d S )N)session)selfr    r   X/var/www/html/env_mimamsha/lib/python3.10/site-packages/translatepy/translators/libre.py__init__   s   
zLibreTranslate.__init__textdestination_languagesource_languagereturnc                 C   sP   |dkr	|  |}| jjdt|t|t|dddddd}|| d	 fS )
zp
        This is the translating endpoint

        Must return a tuple with (detected_language, result)
        autoz$https://libretranslate.com/translate)qsourcetargethttps://libretranslate.comlibretranslate.comhttps://libretranslate.com/OriginHostRefererdataheaderstranslatedText)	_languager	   poststrjson)r
   r   r   r   responser   r   r   
_translate   s   
.zLibreTranslate._translatec                 C   s2   | j jddt|iddddd}| d d	 S )
zn
        This is the language detection endpoint

        Must return a string with the language code
        z!https://libretranslate.com/detectr   r   r   r   r   r   r   language)r	   r"   r#   r$   )r
   r   r%   r   r   r   r!      s   "zLibreTranslate._languager'   c                 C   s   |j S )z
        This is the language validation function
        It receives a "translatepy.language.Language" object and returns the correct language code

        Must return a string with the correct language code
        )alpha2)r
   r'   r   r   r   _language_normalize#   s   z"LibreTranslate._language_normalizelanguage_codec                 C   s   t |S )z
        This is the language denormalization function
        It receives a string with the translator language code and returns a "translatepy.language.Language" object

        Must return a string with the correct language code
        r   )r
   r*   r   r   r   _language_denormalize,   s   z$LibreTranslate._language_denormalizec                 C   s   dS )a+  
        This is optional but you can use it if you want to change the way the class is represented as a string.

        It defaults (if not defined) to:
        ... class_name = self.__class__.__name__.split("Translate")[0]
        ... return "Unknown" if class_name == "" else class_name
        Librer   )r
   r   r   r   __str__5   s   zLibreTranslate.__str__N)__name__
__module____qualname____doc__r   r   r#   r   r&   r!   r   r)   r+   r-   r   r   r   r   r      s    "			r   N)	translatepy.languager   translatepy.translators.baser   translatepy.utils.annotationsr   translatepy.utils.requestr   r   r   r   r   r   <module>   s
    