§
    û�Äjg  ã                   ó¦   — d Z 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mZmZ ddlmZmZmZmZ ddlmZmZ  G d	„ d
e
¦  «        ZdS )z
baidu translator API
z"Copyright (C) 2020 Nidhal Baccourié    N)ÚListÚOptional)ÚBaseTranslator)ÚBAIDU_APPID_ENV_VARÚBAIDU_APPKEY_ENV_VARÚBAIDU_LANGUAGE_TO_CODEÚ	BASE_URLS)ÚApiKeyExceptionÚBaiduAPIerrorÚServerExceptionÚTranslationNotFound)Úis_emptyÚis_input_validc            
       óÚ   ‡ — e Zd ZdZdd ej        ed¦  «         ej        ed¦  «        fdedede	e         de	e         fˆ f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 )ÚBaiduTranslatorzv
    class that wraps functions, which use the BaiduTranslator translator
    under the hood to translate word(s)
    ÚenÚzhNÚsourceÚtargetÚappidÚappkeyc                 óê   •— |st          t          ¬¦  «        ‚|st          t          ¬¦  «        ‚|| _        || _         t          ¦   «         j        dt          j        d¦  «        ||t          dœ|¤Ž dS )zö
        @param appid: your baidu cloud api appid.
        Get one here: https://fanyi-api.baidu.com/choose
        @param appkey: your baidu cloud api appkey.
        @param source: source language
        @param target: target language
        )Úenv_varÚBAIDU)Úbase_urlr   r   Ú	languagesN© )
r
   r   r   r   r   ÚsuperÚ__init__r	   Úgetr   )Úselfr   r   r   r   ÚkwargsÚ	__class__s         €úFC:\Projects\Historical\venv\Lib\site-packages\deep_translator/baidu.pyr   zBaiduTranslator.__init__$   s—   ø€ ð ð 	?Ý!Õ*=Ð>Ñ>Ô>Ð>àð 	@Ý!Õ*>Ð?Ñ?Ô?Ð?àˆŒ
ØˆŒØ�‰ŒÔð 	
Ý”] 7Ñ+Ô+ØØÝ,ð		
ð 	
ð
 ð	
ð 	
ð 	
ð 	
ð 	
ó    ÚtextÚreturnc                 ó$  — t          |¦  «        �r|                      ¦   «         st          |¦  «        r|S t          j        dd¦  «        }t          j        | j        |z   t          |¦  «        z   | j	        z    
                    d¦  «        ¦  «                             ¦   «         }ddi}| j        || j        | j        ||dœ}	 t          j        | j        ||¬¦  «        }n# t"          $ r t%          d¦  «        ‚w xY w|j        d	k    rt%          |j        ¦  «        ‚|                     ¦   «         }|st+          |¦  «        ‚d
|v rt-          |d         ¦  «        ‚d|v r%d                     d„ |d         D ¦   «         ¦  «        S t+          |¦  «        ‚dS )zQ
        @param text: text to translate
        @return: translated text
        i €  i   zutf-8zContent-Typez!application/x-www-form-urlencoded)r   ÚqÚfromÚtoÚsaltÚsign)ÚparamsÚheadersi÷  éÈ   Ú
error_codeÚ	error_msgÚtrans_resultú
c                 ó   — g | ]
}|d          ‘ŒS )Údstr   )Ú.0Úss     r$   ú
<listcomp>z-BaiduTranslator.translate.<locals>.<listcomp>l   s   € Ð!HÐ!HÐ!H¨q ! E¤(Ð!HÐ!HÐ!Hr%   N)r   Ú_same_source_targetr   ÚrandomÚrandintÚhashlibÚmd5r   Ústrr   ÚencodeÚ	hexdigestr   r   ÚrequestsÚpostÚ	_base_urlÚConnectionErrorr   Ústatus_codeÚjsonr   r   Újoin)	r!   r&   r"   r,   r-   r/   ÚpayloadÚresponseÚress	            r$   Ú	translatezBaiduTranslator.translateC   sÀ  € õ
 ˜$ÑÔñ &	0Ø×'Ò'Ñ)Ô)ð ­X°d©^¬^ð Ø�õ ”> %¨Ñ/Ô/ˆDÝ”;Ø”˜dÑ"¥S¨¡Y¤YÑ.°´Ñ<×DÒDÀWÑMÔMñô çŠi‰kŒkð ð &Ð'JÐKˆGàœØØœØ”kØØðð ˆGð+Ý#œ=Ø”N¨7¸Gðñ ô ��øõ #ð +ð +ð +Ý% cÑ*Ô*Ð*ð+øøøàÔ# sÒ*Ð*Ý% hÔ&:Ñ;Ô;Ð;à—-’-‘/”/ˆCØð 0Ý)¨$Ñ/Ô/Ð/à˜sÐ"Ð"Ý# C¨Ô$4Ñ5Ô5Ð5Ø Ð$Ð$Ø—y’yÐ!HÐ!H°C¸Ô4GÐ!HÑ!HÔ!HÑIÔIÐIå)¨$Ñ/Ô/Ð/ðM&	0ð &	0s   ÃC ÃC8Úpathc                 ó   —  | j         |fi |¤ŽS )N)Ú_translate_file)r!   rM   r"   s      r$   Útranslate_filezBaiduTranslator.translate_filep   s   € Ø#ˆtÔ# DÐ3Ð3¨FÐ3Ð3Ð3r%   Úbatchc                 ó   —  | j         |fi |¤ŽS )z`
        @param batch: list of texts to translate
        @return: list of translations
        )Ú_translate_batch)r!   rQ   r"   s      r$   Útranslate_batchzBaiduTranslator.translate_batchs   s   € ð
 %ˆtÔ$ UÐ5Ð5¨fÐ5Ð5Ð5r%   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚosÚgetenvr   r   r?   r   r   rL   rP   r   rT   Ú__classcell__)r#   s   @r$   r   r      s  ø€ € € € € ðð ð ØØ(˜rœyÐ)<¸dÑCÔCØ ) ¤	Ð*>ÀÑ EÔ Eð
ð 
àð
ð ð
ð ˜Œ}ð	
ð
 ˜”ð
ð 
ð 
ð 
ð 
ð 
ð>+0˜cð +0°ð +0ð +0ð +0ð +0ðZ4 3ð 4°Sð 4ð 4ð 4ð 4ð6 T¨#¤Yð 6¸TÀ#¼Yð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6r%   r   )rX   Ú__copyright__r=   rY   r;   Útypingr   r   rB   Údeep_translator.baser   Údeep_translator.constantsr   r   r   r	   Údeep_translator.exceptionsr
   r   r   r   Údeep_translator.validater   r   r   r   r%   r$   ú<module>rb      s4  ððð ð 5€à €€€Ø 	€	€	€	Ø €€€Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !à €€€à /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð >Ð =Ð =Ð =Ð =Ð =Ð =Ð =ðZ6ð Z6ð Z6ð Z6ð Z6�nñ Z6ô Z6ð Z6ð Z6ð Z6r%   