
    Xi
                     x    d Z ddlZddlZddlmZ ddlmZ e G d d             Z G d dej                        Z	y)	zData models for edge-tts.    N)	dataclass)Literalc            	       t    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       ZddZ	y)	TTSConfigzU
    Represents the internal TTS configuration for edge-tts's Communicate class.
    voiceratevolumepitch)WordBoundarySentenceBoundaryboundary
param_nameparam_valuepatternreturnc                     t        |t              st        |  d      t        j                  ||      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 strzInvalid z 'z'.)
isinstancestr	TypeErrorrematch
ValueError)r   r   r   s      _/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/edge_tts/data_classes.pyvalidate_string_paramzTTSConfig.validate_string_param   sQ     +s+zl,78888G[)1x
|2k]"EFF    Nc                    t        | j                  t              st        d      t	        j
                  d| j                        }||j                  d      }|j                  d      }|j                  d      }|j                  d      dk7  r0| d|d|j                  d        }||j                  d      dz   d }d	d
| d| d| dz   | _        | j                  d| j                  d       | j                  d| j                  d       | j                  d| j                  d       | j                  d| j                  d       y)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names        r   __post_init__zTTSConfig.__post_init__+   s2    $**c*/00@$**M;;q>D[[^F;;q>Dyy~#"81T/499S>%:$;<DIIcNQ.01>tfAfXRvQ/0 J 	""JJG	

 	""6499mD""8T[[-H""7DJJGr   )r   N)
__name__
__module____qualname____doc__r   __annotations__r   staticmethodr   r)    r   r   r   r      s^     J
IKJ899# C # RU  $!Hr   r   c                   v    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<   y)UtilArgszCLI arguments.textfiler   list_voicesr   r	   r
   write_mediawrite_subtitlesproxyN)r*   r+   r,   r-   r   r.   boolr0   r   r   r2   r2   O   s:    
I
IJ
IKJJr   r2   )
r-   argparser   dataclassesr   typing_extensionsr   r   	Namespacer2   r0   r   r   <module>r>      sE      	 ! % ?H ?H ?HDx!! r   