o
    ¢Äié
  ã                   @   sT   d Z ddlZddlZddlmZ ddlmZ eG dd„ dƒƒZG dd„ dejƒZ	dS )	zData models for edge-tts.é    N)Ú	dataclass)ÚLiteralc                	   @   sf   e Zd ZU dZeed< eed< eed< eed< ed ed< eded	ed
edefdd„ƒZddd„Z	dS )Ú	TTSConfigzU
    Represents the internal TTS configuration for edge-tts's Communicate class.
    ÚvoiceÚrateÚvolumeÚpitch)ZWordBoundaryZSentenceBoundaryÚboundaryÚ
param_nameÚparam_valueÚpatternÚreturnc                 C   sB   t |tƒst| › dƒ‚t ||¡du rtd| › d|› dƒ‚|S )aZ  
        Validates the given string parameter based on type and pattern.

        Args:
            param_name (str): The name of the parameter.
            param_value (str): The value of the parameter.
            pattern (str): The pattern to validate the parameter against.

        Returns:
            str: The validated parameter.
        z must be strNzInvalid z 'z'.)Ú
isinstanceÚstrÚ	TypeErrorÚreÚmatchÚ
ValueError)r
   r   r   © r   úO/home/kim/smarthome/.venv/lib/python3.10/site-packages/edge_tts/data_classes.pyÚvalidate_string_param   s
   
zTTSConfig.validate_string_paramNc                 C   sê   t | jtƒs
tdƒ‚t d| j¡}|durS| d¡}| d¡}| d¡}| d¡dkrD|› d|d| d¡… › }|| d¡d d… }d	d
|› d|› d|› d | _|  d| jd¡ |  d| j	d¡ |  d| j
d¡ |  d| jd¡ dS )zF
        Validates the TTSConfig object after initialization.
        zvoice must be strz$^([a-z]{2,})-([A-Z]{2,})-(.+Neural)$Né   é   é   ú-éÿÿÿÿz,Microsoft Server Speech Text to Speech Voicez (z, ú)r   z8^Microsoft Server Speech Text to Speech Voice \(.+,.+\)$r   z
^[+-]\d+%$r   r   z^[+-]\d+Hz$)r   r   r   r   r   r   ÚgroupÚfindr   r   r   r   )Úselfr   ÚlangÚregionÚnamer   r   r   Ú__post_init__+   s,   



ÿÿýzTTSConfig.__post_init__)r   N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   Ústaticmethodr   r#   r   r   r   r   r      s   
 r   c                   @   sb   e Zd ZU dZeed< eed< eed< eed< eed< eed< eed< eed	< eed
< eed< dS )ÚUtilArgszCLI arguments.ÚtextÚfiler   Zlist_voicesr   r   r   Zwrite_mediaZwrite_subtitlesÚproxyN)r$   r%   r&   r'   r   r(   Úboolr   r   r   r   r*   O   s   
 r*   )
r'   Úargparser   Údataclassesr   Ztyping_extensionsr   r   Ú	Namespacer*   r   r   r   r   Ú<module>   s    B