o
    4ѹg
                     @   sH   d Z ddlZddl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)	dataclassc                	   @   sZ   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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
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   Y/Users/admin/.pyenv/versions/3.10.0/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rR|d}|d}|d}|ddkrC|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   langZregionnamer   r   r   __post_init__(   s,   



zTTSConfig.__post_init__)r   N)	__name__
__module____qualname____doc__r   __annotations__staticmethodr   r    r   r   r   r   r   
   s   
 r   c                   @   sj   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< eed< dS )UtilArgszCLI arguments.textfiler   Zlist_voicesr   r   r   Zwords_in_cueZwrite_mediaZwrite_subtitlesproxyN)r!   r"   r#   r$   r   r%   boolintr   r   r   r   r'   L   s   
 r'   )r$   argparser   dataclassesr   r   Z	Namespacer'   r   r   r   r   <module>   s    A