o
    GEDiA                     @   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_langN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   W/var/www/www-root/data/www/ovozai.pdev.uz/venv/lib/python3.10/site-packages/gtts/cli.pysys_encoding   s   r   c                 C   s4   |sd| j vrtd|rd| j v rt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clickBadParameter)ctxparamtextr   r   r   validate_text   s
   

r    c              
   C   sx   | j d r|S t|}z|t vrtd| d| j d< W |S  ty; } ztjt|dd W Y d}~|S d}~ww )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 zt  t fdd D }tdd|  W n ty; } ztjt	|dd t
dd}~ww |   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langsr   r   	<genexpr>P   s    z"print_languages.<locals>.<genexpr>z  z
  Tr"   zCouldn't fetch language list.)resilient_parsingr   sortedr   echojoinr%   r&   r'   r(   ClickExceptionexit)r   r   valuelangs_str_listr*   r   r.   r   print_languagesG   s   

r9   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   r=   )context_settingsr   z<text>F)metavarrequiredcallbackz-fz--filez<file>)encodingz#Read from <file> instead of <text>.)r?   typehelpz-oz--outputwb)modez"Write to <file> instead of stdout.z-sz--slowTzRead more slowly.)r	   is_flagrD   z-lz--langz<lang>enzIIETF language tag. Language to speak in. List documented tags with --all.)r?   r	   show_defaultrA   rD   z-tz--tldz<tld>comzHTop-level domain for the Google host, i.e https://translate.google.<tld>)r?   r	   rI   is_eagerrD   z	--nocheckzCDisable strict IETF language tag checking. Allow undocumented tags.)r	   rG   rK   rD   z--allz;Print all documented available IETF language tags and exit.)r	   rG   rK   expose_valuerA   rD   z--debugzShow debug information.)r   c           	   
   C   s   | dkrt d } |st d}|r:z| } W n ty9 } ztjt|dd t |j	dt
  d}~ww zt| |||| d}|| W dS  ttfya } zt t|d}~w tys } zt t|d}~ww )	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tld
lang_check)r   get_text_streamreadget_binary_streamUnicodeDecodeErrorr&   r'   r(   	FileErrornamer   r   write_to_fp
ValueErrorAssertionErrorr$   r   r5   )	r   r   outputrP   rQ   r)   r!   r*   ttsr   r   r   tts_clia   s0   D
r^   )r   r   r   r   	gtts.langr   r   r   r;   logging.configCONTEXT_SETTINGSLOGGER_SETTINGSconfig
dictConfig	getLoggerr&   r   r    r+   r9   r=   commandargumentoptionFileversion_optionr^   r   r   r   r   <module>   s   


	
			
	"