
    rp0j
                     x    S r SSKrSSKrSSKJr  SSKJr  \ " S S5      5       r " S S\R                  5      r	g)	zData models for edge-tts.    N)	dataclass)Literalc            	           \ rS rSr% Sr\\S'   \\S'   \\S'   \\S'   \S   \S'   \S	\S
\S\S\4S j5       r	SS jr
Srg)	TTSConfig   zM
Represents the internal TTS configuration for edge-tts's Communicate class.
voiceratevolumepitch)WordBoundarySentenceBoundaryboundary
param_nameparam_valuepatternreturnc                     [        U[        5      (       d  [        U  S35      e[        R                  " X!5      c  [        SU  SU S35      eU$ )a  
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      O/home/wildlama/miniconda3/lib/python3.13/site-packages/edge_tts/data_classes.pyvalidate_string_paramTTSConfig.validate_string_param   sR     +s++zl,78888G)1x
|2k]"EFF    Nc                    [        U R                  [        5      (       d  [        S5      e[        R
                  " SU R                  5      nUb  UR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      S:w  a/  U SUSUR                  S5        3nXDR                  S5      S-   S nS	S
U SU SU S3-   U l        U R                  SU R                  S5        U R                  SU R                  S5        U R                  SU R                  S5        U R                  SU R                  S5        g)z6
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__TTSConfig.__post_init__+   s3    $**c**/00@$**M;;q>D[[^F;;q>Dyy~#"81T/499S>%:$;<IIcNQ.01>tfAfXRvQ/0 J 	""JJG	

 	""6499mD""8T[[-H""7DJJGr   )r   )r   N)__name__
__module____qualname____firstlineno____doc__r   __annotations__r   staticmethodr   r+   __static_attributes__ r   r   r   r      s^     J
IKJ899# C # RU  $!Hr   r   c                   ~    \ rS rSr% Sr\\S'   \\S'   \\S'   \\S'   \\S'   \\S'   \\S	'   \\S
'   \\S'   \\S'   Srg)UtilArgsO   zCLI arguments.textfiler   list_voicesr	   r
   r   write_mediawrite_subtitlesproxyr5   N)	r-   r.   r/   r0   r1   r   r2   boolr4   r5   r   r   r7   r7   O   s:    
I
IJ
IKJJr   r7   )
r1   argparser   dataclassesr   typing_extensionsr   r   	Namespacer7   r5   r   r   <module>rD      sE      	 ! % ?H ?H ?HDx!! r   