a
    TgA                     @   s  d dl mZmZmZ d dlmZmZ d dlZd dlZd dl	ZdddgiZ
ddd	d
iiddddiddgddidZeje edZdd Zdd Zdd Zdd Zdd Zeje
dejddded ejd!d"d#eje d$d%d&ejd'd(d#ejd)d*d+d&ejd,d-dd.d/d0ejd1d2d3d4d.ed5d6ejd7d8d9d:d.d.d;d<ejd=dd.d.d>d?ejd@dd.d.dedAdBejdCdd.d.dedDdBejedEdFdG ZdS )H    )gTTS	gTTSError__version__)	tts_langs_fallback_deprecated_langNZhelp_option_namesz-hz--help   defaultformatz&%(name)s - %(levelname)s - %(message)sconsolezlogging.StreamHandler)class	formattergttsWARNING)handlerslevel)version
formattersr   loggersc                   C   s   dS )z*Charset to use for --file <path>|- (stdin)utf8 r   r   r   F/var/www/html/texto_audio/venv/lib/python3.9/site-packages/gtts/cli.pysys_encoding   s    r   c                 C   s4   |sd| j vrtd|r0d| j v r0td|S )zrValidation callback for the <text> argument.
    Ensures <text> (arg) and <file> (opt) are mutually exclusive
    filez#<text> or -f/--file <file> requiredz2<text> and -f/--file <file> can't be used together)paramsclickZBadParameter)ctxparamtextr   r   r   validate_text   s
    

r   c              
   C   sz   | j d r|S t|}z(|t vr2td| n
d| j d< W n6 tyt } ztjt|dd W Y d}~n
d}~0 0 |S )z{Validation callback for the <lang> option.
    Ensures <lang> is a supported language unless the <nocheck> flag is set
    nocheckzp'%s' not in list of supported languages.
Use --all to list languages or add --nocheck to disable language check.Texc_infoN)	r   r   r   r   
UsageErrorRuntimeErrorlogdebugstr)r   r   langer   r   r   validate_lang*   s    

(r)   c              
      s   |r
| j rdS z4t  t fdd D }tdd|  W n@ ty } z(tjt	|dd t
dW Y d}~n
d}~0 0 |   dS )	z_Callback for <all> flag.
    Prints formatted sorted list of supported languages and exits
    Nc                 3   s   | ]}d  | | V  qdS )z{}: {}N)r	   ).0kZlangsr   r   	<genexpr>P       z"print_languages.<locals>.<genexpr>z  z
  Tr    zCouldn't fetch language list.)Zresilient_parsingr   sortedr   Zechojoinr#   r$   r%   r&   ClickExceptionexit)r   r   valueZlangs_str_listr(   r   r,   r   print_languagesG   s    
 r4   c                 C   s   |rt tj dS )z>Callback for <debug> flag.
    Sets logger level to DEBUG
    N)r$   setLevelloggingDEBUG)r   r   r%   r   r   r   	set_debugX   s    r8   )Zcontext_settingsr   z<text>F)metavarrequiredcallbackz-fz--filez<file>)encodingz#Read from <file> instead of <text>.)r9   typehelpz-oz--outputwb)modez"Write to <file> instead of stdout.z-sz--slowTzRead more slowly.)r   is_flagr>   z-lz--langz<lang>enzIIETF language tag. Language to speak in. List documented tags with --all.)r9   r   show_defaultr;   r>   z-tz--tldz<tld>comzHTop-level domain for the Google host, i.e https://translate.google.<tld>)r9   r   rC   is_eagerr>   z	--nocheckzCDisable strict IETF language tag checking. Allow undocumented tags.)r   rA   rE   r>   z--allz;Print all documented available IETF language tags and exit.)r   rA   rE   Zexpose_valuer;   r>   z--debugzShow debug information.)r   c           	   
   C   s  | dkrt d } |s$t d}|rz| } W nJ ty~ } z2tjt|dd t |j	dt
  W Y d}~n
d}~0 0 z"t| |||| d}|| W nh ttfy } zt t|W Y d}~n<d}~0  ty
 } zt t|W Y d}~n
d}~0 0 dS )	zRead <text> to mp3 format using Google Translate's Text-to-Speech API
    (set <text> or --file <file> to - for standard input)
    -stdinstdoutTr    z"<file> must be encoded using '%s'.N)r   r'   slowtldZ
lang_check)r   Zget_text_streamreadZget_binary_streamUnicodeDecodeErrorr$   r%   r&   Z	FileErrornamer   r   Zwrite_to_fp
ValueErrorAssertionErrorr"   r   r1   )	r   r   outputrI   rJ   r'   r   r(   Zttsr   r   r   tts_clia   s&    D
"rQ   )r   r   r   r   Z	gtts.langr   r   r   r6   logging.configZCONTEXT_SETTINGSZLOGGER_SETTINGSconfig
dictConfig	getLoggerr$   r   r   r)   r4   r8   commandargumentoptionFileZversion_optionrQ   r   r   r   r   <module>   s   

	

				
