o
    
 ¢ih  ã                   @   sV  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 d e d e d e d e d e d e d e
 d Ze	d e d e d e d e d e d e d e d e
 d Zde
 d e
 d Ze ee d e e ej¡ZdZdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Z dS )$é   )Ú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                 C   sp   |   d¡\}}}t|ƒ}|tv r$|dkrdn|}|d | t|ƒ d S |dkr,d| n|}|d t|ƒ d S )Nr   Ú ú ú-)Úgroupsr   r   r   )ÚmatchÚprefixÚnegative_symbolÚnumber© r   úS/home/ubuntu/.local/lib/python3.10/site-packages/misaki/vi_cleaner/numberical_vi.pyÚ_expand_numberD   s   r   c                 C   s   |   d¡ ¡  ¡ }t|ƒS )Nr   )ÚgroupÚstripÚrstripr   )r   Útextr   r   r   Ú_expand_phoneO   s   r   c           	      C   s„   |   d¡\}}}}}}}}|dkrdn|}|tv r|  d¡S |dkr&d| n|}|dkr0d| n|}|| t|ƒ d t|ƒ | S )Nr   r   r   u    Ä‘áº¿n )r   r   r   r   )	r   Úprefix0Úprefix1Únegative_symbol1Únumber_startÚspaceÚnegative_symbol2Ú
number_endÚendingr   r   r   Ú_expand_rangeT   s   
 r#   c                 C   sH   |   d¡\}}}|dkr|| d S |dkr|| d S || t|ƒ S )Nr   Ú1u   nháº¥tÚ4u   tÆ°©r   r   )r   r   r   r   r   r   r   Ú_expand_ordinal_   s   r'   c                 C   s$   |   d¡\}}}t|ƒd t|ƒ S )Nr   u    nhÃ¢n r&   )r   Únumber1Úmultiphy_symbolÚnumber2r   r   r   Ú_expand_multiply_numberi   s   r+   c                 C   sJ   t  tt| ¡} t  tt| ¡} t  tt| ¡} t  tt	| ¡} t  t
t| ¡} | S )N)ÚreÚsubÚ_special_ordinal_patternr'   Ú_multiply_number_rer+   Ú_range_number_rer#   Ú	_phone_rer   Ú
_number_rer   )r   r   r   r   Únormalize_number_vin   s   r3   )!Únum2vir   r   r,   Ú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_rer1   Ú_prefix_rangeÚ_end_number_rer2   r/   ÚcompileÚ
IGNORECASEr0   r.   r   r   r#   r'   r+   r3   r   r   r   r   Ú<module>   s¼    ÿþýüûúùø	÷
öõôóòñðÿÿþýüûúùø	÷
öõôóòñðïÿ
