
    $HJjh                        d dl mZmZ ddlZd dlmZ d dlmZmZ dZ	dZ
dZd	Zd
ZdZdZdZdZdZdZdez   dz   ez   dz   ez   dz   ez   dz   ez   dz   ez   dz   ez   dz   e
z   dz   Ze	dz   ez   dz   ez   dz   ez   dz   ez   dz   ez   dz   ez   dz   ez   dz   e
z   dz   Zde
z   dz   e
z   dz   Z ej.                  eez   dz   ez   ez   ej0                        ZdZd Zd Zd Zd Zd Zd Z y)   )n2w
n2w_single    N)_remove_prefix_zero)vietnamese_setvietnamese_without_num_rez
(.)(-{1})?z[\d]+z[\d]+[\s]{1}[\d]{3}z![\d]+[\s]{1}[\d]{3}[\s]{1}[\d]{3}z/[\d]+[\s]{1}[\d]{3}[\s]{1}[\d]{3}[\s]{1}[\d]{3}z[\d]+[.]{1}[\d]{3}z[\d]+[.]{1}[\d]{3}[.]{1}[\d]{3}z,[\d]+[.]{1}[\d]{3}[.]{1}[\d]{3}[.]{1}[\d]{3}z[\d]+[,]{1}[\d]+z-(((\+84|84|0|0084){1})(3|5|7|8|9))+([0-9]{8})u%   (từ|tới|còn|đến|khoảng|sau)z(-)?(|)(z)(x|\sx\s)(z
(-|\s\-\s)u   (thứ|hạng)(\s)(1|4)c                     | j                  d      \  }}}t        |      }|t        v r |dk(  rdn|}|dz   |z   t        |      z   dz   S |dk(  rd|z   n|}|dz   t        |      z   dz   S )Nr     -)groupsr   r   r   )matchprefixnegative_symbolnumbers       i/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/misaki/vi_cleaner/numberical_vi.py_expand_numberr   D   s}    &+ll1o#FOV (F /1 4"/|o-F;cAA!0C!7vV|c&k)C//    c                 r    | j                  d      j                         j                         }t        |      S )Nr   )groupstriprstripr   )r   texts     r   _expand_phoner   O   s,    A$$&--/Ddr   c                     | j                  d      \  }}}}}}}}|dk(  rdn|}|t        v r| j                  d      S |dk(  rd|z   n|}|dk(  rd|z   n|}||z   t        |      z   dz   t        |      z   |z   S )Nr   r   r   u    đến )r   r   r   r   )	r   prefix0prefix1negative_symbol1number_startspacenegative_symbol2
number_endendings	            r   _expand_ranger'   T   s    didpdpqrdsaGW&e=Mz[aqLbgG. {{1~-=-Ds\),)9S)@S:%j
 3|#44zAC
OSV\\\r   c                     | j                  d      \  }}}|dk(  r||z   dz   S |dk(  r||z   dz   S ||z   t        |      z   S )Nr   1u   nhất4u   tưr   r   )r   r   r#   r   s       r   _expand_ordinalr,   _   sU    !LLOFE6}~((	3~%%~F++r   c                 `    | j                  d      \  }}}t        |      dz   t        |      z   S )Nr   u    nhân r+   )r   number1multiphy_symbolnumber2s       r   _expand_multiply_numberr1   i   s.    (-Q%G_gw<)#c'l22r   c                 <   t        j                  t        t        |       } t        j                  t        t
        |       } t        j                  t        t        |       } t        j                  t        t        |       } t        j                  t        t        |       } | S )N)resub_special_ordinal_patternr,   _multiply_number_rer1   _range_number_rer'   	_phone_rer   
_number_rer   )r   s    r   normalize_number_vir:   n   se    66*OTBD66%'>ED66"M48D66)]D1D66*nd3DKr   )!num2vir   r   r3   datestime_vir   	symbol_vir   r   _negative_symbol_re_normal_number_re _number_with_one_middle_space_re _number_with_two_middle_space_re"_number_with_three_middle_space_re_number_with_one_dot_middle_re_number_with_two_dot_middle_re _number_with_three_dot_middle_re_float_number_rer8   _prefix_range_end_number_rer9   r6   compile
IGNORECASEr7   r5   r   r   r'   r,   r1   r:    r   r   <module>rL      s'   # 	 - @ $  #9  #G  %W "!6 !C #R  & <	7 	
 '' 
	

 %% 

 %% 

 )	) 


 '' 

 '' 

   ! ( 
 

 '	'
 

 %% 

 %% 
	
 )
) 

 '' 

 '' 

  !" # * -->ARRUXX 2::mj8=H>Y\uuwy  xE  xE  F 5 0
],3
r   