§
    û�Äj   ã                   óŽ   — d Z ddlZddlZddlZddl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 ddlmZ  G d„ d	e	¦  «        ZdS )
z"Copyright (C) 2020 Nidhal Baccourié    N)ÚListÚOptional)ÚBaseTranslator)Ú	BASE_URLSÚMSFT_ENV_VAR)ÚApiKeyExceptionÚMicrosoftAPIerror)Úis_input_validc                   óÔ   ‡ — e Zd ZdZdd ej        ed¦  «        ddfdededee         dee         d	ee	         f
ˆ fd
„Z
d„ Zdedefd„Zdedefd„Zdee         dee         fd„Zˆ xZS )ÚMicrosoftTranslatorzp
    the class that wraps functions, which use the Microsoft translator under the hood to translate word(s)
    ÚautoÚenNÚsourceÚtargetÚapi_keyÚregionÚproxiesc                 ó$  •— |st          t          ¬¦  «        ‚|| _        || _        | j        ddœ| _        |r|| _        | j        | j        d<    t          ¦   «         j        dt          j	        d¦  «        |||  
                    ¦   «         dœ|¤Ž dS )	z¢
        @params api_key and target are the required params
        @param api_key: your Microsoft API key
        @param region: your Microsoft Location
        )Úenv_varzapplication/json)zOcp-Apim-Subscription-KeyzContent-typezOcp-Apim-Subscription-RegionÚMICROSOFT_TRANSLATE)Úbase_urlr   r   Ú	languagesN© )r   r   r   r   Úheadersr   ÚsuperÚ__init__r   ÚgetÚ_get_supported_languages)Úselfr   r   r   r   r   ÚkwargsÚ	__class__s          €úJC:\Projects\Historical\venv\Lib\site-packages\deep_translator/microsoft.pyr   zMicrosoftTranslator.__init__   s¿   ø€ ð ð 	8Ý!­,Ð7Ñ7Ô7Ð7àˆŒØˆŒà)-¬Ø.ð
ð 
ˆŒð
 ð 	GØ ˆDŒKØ;?¼;ˆDŒLÐ7Ñ8Ø�‰ŒÔð 	
Ý”]Ð#8Ñ9Ô9ØØØ×3Ò3Ñ5Ô5ð		
ð 	
ð
 ð	
ð 	
ð 	
ð 	
ð 	
ó    c                 ó¤   ‡— d}t          j        |¦  «        }|                     ¦   «         d         Šˆfd„‰                     ¦   «         D ¦   «         S )NzZhttps://api.cognitive.microsofttranslator.com/languages?api-version=3.0&scope=translation Útranslationc                 óv   •— i | ]5}‰|         d                                ¦   «         |                      ¦   «         “Œ6S )Úname)Úlower)Ú.0ÚkÚtranslation_dicts     €r"   ú
<dictcomp>z@MicrosoftTranslator._get_supported_languages.<locals>.<dictcomp>H   sI   ø€ ð 
ð 
ð 
àð ˜QÔ Ô'×-Ò-Ñ/Ô/°·²±´ð
ð 
ð 
r#   )Úrequestsr   ÚjsonÚkeys)r   Úmicrosoft_languages_api_urlÚmicrosoft_languages_responser+   s      @r"   r   z,MicrosoftTranslator._get_supported_languages>   st   ø€ ðð 	$õ (0¤|Ø'ñ(
ô (
Ð$ð 8×<Ò<Ñ>Ô>¸}ÔMÐð
ð 
ð 
ð 
à%×*Ò*Ñ,Ô,ð
ñ 
ô 
ð 	
r#   ÚtextÚreturnc                 óÜ  — d}t          |¦  «        �rW| j        | j        d<   | j        | j        d<   d|ig}	 t	          j        | j        | j        | j        || j        ¬¦  «        }nM# t          j	        j
        $ r6 t          j        ¦   «         \  }}}t          j        d|j        › �¦  «         Y nw xY wt!          |                     ¦   «         ¦  «        t$          u r)|                     ¦   «         d         }t'          |¦  «        ‚t!          |                     ¦   «         ¦  «        t(          u rAd„ |                     ¦   «         d	         d
         D ¦   «         }	d                     |	¦  «        S dS dS )z¡
        function that uses microsoft translate to translate a text
        @param text: desired text to translate
        @return: str: translated text
        NÚfromÚtor2   )Úparamsr   r.   r   zReturned error: Úerrorc                 ó   — g | ]
}|d          ‘ŒS )r2   r   )r)   Úis     r"   ú
<listcomp>z1MicrosoftTranslator.translate.<locals>.<listcomp>n   s)   € ð $ð $ð $Ø"#�A�f”Ið$ð $ð $r#   r   Útranslationsú
)r
   Ú_sourceÚ_url_paramsÚ_targetr-   ÚpostÚ	_base_urlr   r   Ú
exceptionsÚRequestExceptionÚsysÚexc_infoÚloggingÚwarningÚ__name__Útyper.   Údictr	   ÚlistÚjoin)
r   r2   r    ÚresponseÚvalid_microsoft_jsonÚexc_typeÚvalueÚ	tracebackÚerror_messageÚall_translationss
             r"   Ú	translatezMicrosoftTranslator.translateM   s‡  € ð ˆÝ˜$ÑÔñ 	3Ø'+¤|ˆDÔ˜VÑ$Ø%)¤\ˆDÔ˜TÑ"à%+¨T NÐ#3Ð ð
HÝ#œ=Ø”NØÔ+Ø œLØ-Ø œLðñ ô ��øõ Ô&Ô7ð Hð Hð HÝ-0¬\©^¬^Ñ*�˜% Ý”Ð F°8Ô3DÐ FÐ FÑGÔGÐGÐGÐGðHøøøõ
 �H—M’M‘O”OÑ$Ô$­Ð,Ð,Ø (§¢¡¤°Ô 8�Ý'¨Ñ6Ô6Ð6õ �h—m’m‘o”oÑ&Ô&­$Ð.Ð.ð$ð $Ø'/§}¢}¡¤°qÔ'9¸.Ô'Ið$ñ $ô $Ð ð —y’yÐ!1Ñ2Ô2Ð2ð7	3ð 	3ð. /Ð.s   ·-A% Á%AB/Â.B/Úpathc                 ó   —  | j         |fi |¤ŽS )zj
        translate from a file
        @param path: path to file
        @return: translated text
        )Ú_translate_file)r   rV   r    s      r"   Útranslate_filez"MicrosoftTranslator.translate_files   s   € ð $ˆtÔ# DÐ3Ð3¨FÐ3Ð3Ð3r#   Úbatchc                 ó   —  | j         |fi |¤ŽS )zƒ
        translate a batch of texts
        @param batch: list of texts to translate
        @return: list of translations
        )Ú_translate_batch)r   rZ   r    s      r"   Útranslate_batchz#MicrosoftTranslator.translate_batch{   s   € ð %ˆtÔ$ UÐ5Ð5¨fÐ5Ð5Ð5r#   )rI   Ú
__module__Ú__qualname__Ú__doc__ÚosÚgetenvr   Ústrr   rK   r   r   rU   rY   r   r]   Ú__classcell__)r!   s   @r"   r   r      s&  ø€ € € € € ðð ð ØØ!* ¤¨<¸Ñ!>Ô!>Ø $Ø"&ð"
ð "
àð"
ð ð"
ð ˜#”ð	"
ð
 ˜”ð"
ð ˜$”ð"
ð "
ð "
ð "
ð "
ð "
ðN
ð 
ð 
ð$3˜cð $3°ð $3ð $3ð $3ð $3ðL4 3ð 4°Sð 4ð 4ð 4ð 4ð6 T¨#¤Yð 6¸TÀ#¼Yð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6r#   r   )Ú__copyright__rG   ra   rE   Útypingr   r   r-   Údeep_translator.baser   Údeep_translator.constantsr   r   Údeep_translator.exceptionsr   r	   Údeep_translator.validater
   r   r   r#   r"   ú<module>rk      sÚ   ðð 5€à €€€Ø 	€	€	€	Ø 
€
€
€
Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !à €€€à /Ð /Ð /Ð /Ð /Ð /Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ 3Ð 3Ð 3Ð 3Ð 3Ð 3ðo6ð o6ð o6ð o6ð o6˜.ñ o6ô o6ð o6ð o6ð o6r#   