§
    û�Äj+  ã                   óŠ   — d Z dZddlmZmZmZ ddlZddlmZ ddl	m
Z
mZ ddlmZmZmZ ddlmZmZmZ  G d	„ d
e¦  «        ZdS )z
mymemory translator API
z"Copyright (C) 2020 Nidhal Baccourié    )ÚListÚOptionalÚUnionN)ÚBaseTranslator)Ú	BASE_URLSÚMY_MEMORY_LANGUAGES_TO_CODES)ÚRequestErrorÚTooManyRequestsÚTranslationNotFound)Úis_emptyÚis_input_validÚrequest_failedc            
       ó°   ‡ — e Zd ZdZ	 	 	 ddededee         fˆ fd„Z	 dd
edede	ee
e         f         fd„Zdedefd„Zde
e         de
e         fd„Zˆ xZS )ÚMyMemoryTranslatorzD
    class that uses the mymemory translator to translate texts
    ÚautoÚenNÚsourceÚtargetÚproxiesc                 óÆ   •— || _         |                     dd¦  «        | _        t          ¦   «                              t          j        d¦  «        ||dt          ¬¦  «         dS )zy
        @param source: source language to translate from
        @param target: target language to translate to
        ÚemailNÚMYMEMORYÚq)Úbase_urlr   r   Úpayload_keyÚ	languages)r   Úgetr   ÚsuperÚ__init__r   r   )Úselfr   r   r   ÚkwargsÚ	__class__s        €úIC:\Projects\Historical\venv\Lib\site-packages\deep_translator/mymemory.pyr   zMyMemoryTranslator.__init__   se   ø€ ð ˆŒØ—Z’Z ¨Ñ.Ô.ˆŒ
Ý‰Œ×ÒÝ”] :Ñ.Ô.ØØØÝ2ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
ó    FÚtextÚ
return_allÚreturnc                 ón  — t          |d¬¦  «        �r |                     ¦   «         }|                      ¦   «         st          |¦  «        r|S | j        › d| j        › �| j        d<   | j        r|| j        | j        <   | j        r| j        | j        d<   t          j
        | j        | j        | j        ¬¦  «        }|j        dk    rt          ¦   «         ‚t          |j        ¬¦  «        rt!          ¦   «         ‚|                     ¦   «         }|st%          |¦  «         |                     ¦   «          | 
                    d	¦  «         
                    d
¦  «        }| 
                    dg ¦  «        }|r|s|S |gt)          |¦  «        z   S |s0d„ |D ¦   «         }t+          |¦  «        }	|s|	nt)          |¦  «        S dS dS )a  
        function that uses the mymemory translator to translate a text
        @param text: desired text to translate
        @type text: str
        @param return_all: set to True to return all synonym/similars of the translated text
        @return: str or list
        iô  )Ú	max_charsú|ÚlangpairÚde)Úparamsr   i­  )Ústatus_codeÚresponseDataÚtranslatedTextÚmatchesc              3   ó&   K  — | ]}|d          V — ŒdS )ÚtranslationN© )Ú.0Úmatchs     r#   ú	<genexpr>z/MyMemoryTranslator.translate.<locals>.<genexpr>]   s'   è è € ÐIÐI°E˜5 Ô/ÐIÐIÐIÐIÐIÐIr$   N)r   ÚstripÚ_same_source_targetr   Ú_sourceÚ_targetÚ_url_paramsr   r   Úrequestsr   Ú	_base_urlr   r.   r
   r   r	   Újsonr   ÚcloseÚlistÚnext)
r    r%   r&   r!   ÚresponseÚdatar3   Úall_matchesr1   Ú
next_matchs
             r#   Ú	translatezMyMemoryTranslator.translate/   sì  € õ ˜$¨#Ð.Ñ.Ô.ñ &	KØ—:’:‘<”<ˆDØ×'Ò'Ñ)Ô)ð ­X°d©^¬^ð Ø�à.2¬lÐ+KÐ+K¸T¼\Ð+KÐ+KˆDÔ˜ZÑ(ØÔð :Ø59�Ô  Ô!1Ñ2ØŒzð 4Ø)-¬�Ô  Ñ&å”|Ø” tÔ'7ÀÄðñ ô ˆHð Ô# sÒ*Ð*Ý%Ñ'Ô'Ð'Ý¨(Ô*>Ð?Ñ?Ô?ð %Ý"‘n”nÐ$à—=’=‘?”?ˆDØð *Ý# DÑ)Ô)Ð)à�NŠNÑÔÐØŸ(š( >Ñ2Ô2×6Ò6Ð7GÑHÔHˆKØŸ(š( 9¨bÑ1Ô1ˆKàð 
KØ!ð =Ø&Ð&ð (˜=­4°Ñ+<Ô+<Ñ<Ð<à ð KØIÐI¸[ÐIÑIÔI�Ý! '™]œ]�
Ø)3ÐJ�z�z½¸kÑ9JÔ9JÐJðM&	Kð &	KðFKð Kr$   Úpathc                 ó   —  | j         |fi |¤ŽS )z¯
        translate directly from file
        @param path: path to the target file
        @type path: str
        @param kwargs: additional args
        @return: str
        )Ú_translate_file)r    rH   r!   s      r#   Útranslate_filez!MyMemoryTranslator.translate_filea   s   € ð $ˆtÔ# DÐ3Ð3¨FÐ3Ð3Ð3r$   Úbatchc                 ó   —  | j         |fi |¤ŽS )z‹
        translate a list of texts
        @param batch: list of texts you want to translate
        @return: list of translations
        )Ú_translate_batch)r    rL   r!   s      r#   Útranslate_batchz"MyMemoryTranslator.translate_batchk   s   € ð %ˆtÔ$ UÐ5Ð5¨fÐ5Ð5Ð5r$   )r   r   N)F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   Údictr   Úboolr   r   rG   rK   rO   Ú__classcell__)r"   s   @r#   r   r      s  ø€ € € € € ðð ð ØØ"&ð	
ð 
àð
ð ð
ð ˜$”ð	
ð 
ð 
ð 
ð 
ð 
ð, -2ð0Kð 0KØð0KØ%)ð0Kà	ˆs�D˜”Iˆ~Ô	ð0Kð 0Kð 0Kð 0Kðd4 3ð 4°Sð 4ð 4ð 4ð 4ð6 T¨#¤Yð 6¸TÀ#¼Yð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6r$   r   )rS   Ú__copyright__Útypingr   r   r   r=   Údeep_translator.baser   Údeep_translator.constantsr   r   Údeep_translator.exceptionsr	   r
   r   Údeep_translator.validater   r   r   r   r4   r$   r#   ú<module>r^      sø   ððð ð 5€à (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (à €€€à /Ð /Ð /Ð /Ð /Ð /Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mðð ð ð ð ð ð ð ð ð ð
 NÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mð\6ð \6ð \6ð \6ð \6˜ñ \6ô \6ð \6ð \6ð \6r$   