§
    û�Äjä  ã                   ó†   — d 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 ddlmZ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ÚQCRI_ENV_VARÚQCRI_LANGUAGE_TO_CODE)ÚApiKeyExceptionÚServerExceptionÚTranslationNotFound)Úrequest_failedc                   ó  ‡ — e Zd ZdZdd ej        ed¦  «        fdededee         fˆ fd„Z		 	 dd	ed
ee
         defd„Zed„ ¦   «         Zd„ Ze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 )ÚQcriTranslatorzg
    class that wraps functions, which use the QRCI translator under the hood to translate word(s)
    ÚenNÚsourceÚtargetÚapi_keyc                 óÞ   •— |st          t          ¦  «        ‚|| _        ddddœ| _        d| j        i| _         t          ¦   «         j        d	t          j        d¦  «        ||t          dœ|¤Ž dS )
zq
        @param api_key: your qrci api key.
        Get one for free here https://mt.qcri.org/api/v1/ref
        ÚgetLanguagePairsÚ
getDomainsÚ	translate)Úget_languagesÚget_domainsr   ÚkeyÚQCRI)Úbase_urlr   r   Ú	languagesN© )
r	   r   r   Úapi_endpointsÚparamsÚsuperÚ__init__r   Úgetr   )Úselfr   r   r   ÚkwargsÚ	__class__s        €úEC:\Projects\Historical\venv\Lib\site-packages\deep_translator/qcri.pyr!   zQcriTranslator.__init__   s™   ø€ ð ð 	0Ý!¥,Ñ/Ô/Ð/àˆŒà/Ø'Ø$ð
ð 
ˆÔð ˜dœlÐ+ˆŒØ�‰ŒÔð 	
Ý”] 6Ñ*Ô*ØØÝ+ð		
ð 	
ð
 ð	
ð 	
ð 	
ð 	
ð 	
ó    TÚendpointr   Úreturn_textc                 óÈ   — |s| j         }	 t          j        | j                             | j        |         ¬¦  «        |¬¦  «        }|r|j        n|S # t          $ r}|‚d }~ww xY w)N)r(   )r   )r   Úrequestsr"   Ú	_base_urlÚformatr   ÚtextÚ	Exception)r#   r(   r   r)   ÚresÚes         r&   Ú_getzQcriTranslator._get:   s†   € ð ð 	!Ø”[ˆFð	Ý”,Ø”×%Ò%¨tÔ/AÀ(Ô/KÐ%ÑLÔLØðñ ô ˆCð  +Ð3�3”8�8°Ð3øÝð 	ð 	ð 	ØˆGøøøøð	øøøs   ‹AA Á
A!ÁAÁA!c                 ó*   — |                       ¦   «         S ©N)Úget_supported_languages©r#   s    r&   r   zQcriTranslator.languagesK   s   € à×+Ò+Ñ-Ô-Ð-r'   c                 ó0   — |                       d¦  «        }|S )Nr   )r2   )r#   Údomainss     r&   r   zQcriTranslator.get_domainsO   s   € Ø—)’)˜MÑ*Ô*ˆØˆr'   c                 ó*   — |                       ¦   «         S r4   )r   r6   s    r&   r8   zQcriTranslator.domainsS   s   € à×ÒÑ!Ô!Ð!r'   r.   Úreturnc                 ó~  — | j         | j        › d| j        › �|d         |dœ}	 |                      d|d¬¦  «        }t	          |j        ¬¦  «        rt          |j        ¦  «         d S |                     ¦   «         }|                     d¦  «        }|st          |¦  «        ‚|S # t          $ r t          d	¦  «        ‚w xY w)
Nú-Údomain)r   Úlangpairr=   r.   r   F)r   r)   )Ústatus_codeÚtranslatedTexti÷  )r   Ú_sourceÚ_targetr2   r   r?   r
   Újsonr"   r   ÚConnectionError)r#   r.   r$   r   Úresponser0   Útranslations          r&   r   zQcriTranslator.translateW   sä   € à”<Øœ<Ð8Ð8¨$¬,Ð8Ð8Ø˜XÔ&Øð	
ð 
ˆð	#Ø—y’y °VÈ�yÑOÔOˆHõ
 ¨(Ô*>Ð?Ñ?Ô?ð #Ý Ô 4Ñ5Ô5Ð5Ð5Ð5à—m’m‘o”o�Ø!ŸgšgÐ&6Ñ7Ô7�Ø"ð 4Ý-¨dÑ3Ô3Ð3Ø"Ð"øõ ð 	'ð 	'ð 	'Ý! #Ñ&Ô&Ð&ð	'øøøs   £B" Â"B<Úpathc                 ó   —  | j         |fi |¤ŽS r4   )Ú_translate_file)r#   rG   r$   s      r&   Útranslate_filezQcriTranslator.translate_filem   s   € Ø#ˆtÔ# DÐ3Ð3¨FÐ3Ð3Ð3r'   Úbatchc                 ó   —  | j         |fi |¤ŽS )z›
        translate a batch of texts
        @domain: domain
        @param batch: list of texts to translate
        @return: list of translations
        )Ú_translate_batch)r#   rK   r$   s      r&   Útranslate_batchzQcriTranslator.translate_batchp   s   € ð %ˆtÔ$ UÐ5Ð5¨fÐ5Ð5Ð5r'   )NT)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚosÚgetenvr   Ústrr   r!   ÚdictÚboolr2   Úpropertyr   r   r8   r   rJ   r   rN   Ú__classcell__)r%   s   @r&   r   r      sz  ø€ € € € € ðð ð ØØ!* ¤¨<¸Ñ!>Ô!>ð	
ð 
àð
ð ð
ð ˜#”ð	
ð 
ð 
ð 
ð 
ð 
ðD "&Ø ð	ð àðð ˜”ðð ð	ð ð ð ð" ð.ð .ñ „Xð.ðð ð ð ð"ð "ñ „Xð"ð#˜cð #°ð #ð #ð #ð #ð,4 3ð 4°Sð 4ð 4ð 4ð 4ð6 T¨#¤Yð 6¸TÀ#¼Yð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6r'   r   )Ú__copyright__rS   Útypingr   r   r+   Údeep_translator.baser   Údeep_translator.constantsr   r   r   Údeep_translator.exceptionsr	   r
   r   Údeep_translator.validater   r   r   r'   r&   ú<module>r`      sü   ðØ4€à 	€	€	€	Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !à €€€à /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð
 4Ð 3Ð 3Ð 3Ð 3Ð 3ða6ð a6ð a6ð a6ð a6�^ñ a6ô a6ð a6ð a6ð a6r'   