o
    NK&h                     @   s   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mZ ddlmZmZmZ G dd	 d	eZed
krVedddZedZede dS dS )z"Copyright (C) 2020 Nidhal Baccouri    N)ListOptional)BaseTranslator)	BASE_URLSDEEPL_ENV_VARDEEPL_LANGUAGE_TO_CODE)ApiKeyExceptionAuthorizationExceptionServerExceptionTranslationNotFound)is_emptyis_input_validrequest_failedc                	       s   e Zd ZdZddeeddfdededee d	e	f fd
dZ
dedefddZdedefddZdee dee fddZ  ZS )DeeplTranslatorzv
    class that wraps functions, which use the DeeplTranslator translator
    under the hood to translate word(s)
    deenNTsourcetargetapi_keyuse_free_apic                    sf   |st tdd| _|| _|rtdj| jdn	tdj| jd}t jd|||t	d| dS )	z
        @param api_key: your DeeplTranslator api key.
        Get one here: https://www.deepl.com/docs-api/accessing-the-api/
        @param source: source language
        @param target: target language
        )env_varv2
DEEPL_FREE)versionDEEPL)base_urlr   r   	languagesN )
r   r   r   r   r   getformatsuper__init__r   )selfr   r   r   r   kwargsurl	__class__r   H/var/www/html/venv/lib/python3.10/site-packages/deep_translator/deepl.pyr!      s    

zDeeplTranslator.__init__textreturnc                 K   s   t |rY|  st|r|S d}| j| j| j|d}ztj| j| |d}W n t	y1   t
dw |jdkr<t| jt|jdrGt
|j| }|sQt||d d d	 S d
S )zQ
        @param text: text to translate
        @return: translated text
        	translate)auth_keysource_langtarget_langr(   )paramsi  i  )status_codetranslationsr   r(   N)r   _same_source_targetr   r   _source_targetrequestsr   	_base_urlConnectionErrorr
   r/   r	   r   jsonr   )r"   r(   r#   translate_endpointr.   responseresr   r   r'   r*   =   s2   




zDeeplTranslator.translatepathc                 K      | j |fi |S )N)_translate_file)r"   r;   r#   r   r   r'   translate_filea   s   zDeeplTranslator.translate_filebatchc                 K   r<   )z`
        @param batch: list of texts to translate
        @return: list of translations
        )_translate_batch)r"   r?   r#   r   r   r'   translate_batchd   s   zDeeplTranslator.translate_batch)__name__
__module____qualname____doc__osgetenvr   strr   boolr!   r*   r>   r   rA   __classcell__r   r   r%   r'   r      s$    
 $"r   __main__r   zsome-key)r   r   zIch habe keine ahnungztext: )__copyright__rF   typingr   r   r4   deep_translator.baser   deep_translator.constantsr   r   r   deep_translator.exceptionsr   r	   r
   r   deep_translator.validater   r   r   r   rB   dr*   tprintr   r   r   r'   <module>   s    U
