o
    
i                     @   s  d dl Z d dlmZ ddlmZmZ ddlmZ g dZdZ	dZ
d	Zd
e e e	 d e Zde d e	 d e	 d e Zde d e	 d e	 d e Ze
e d e	 d e Zde d e	 d e Zde d e	 d e Zde d e	 d e Zed e Zed e Zdd Zdd Zdd Zd0ddZdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Z d*d+ Z!d,d- Z"d.d/ Z#dS )1    N)n2w   )vietnamese_revietnamese_for_date_re)normalize_roman_numbers)      r      r   r	   r   r   r	   r   r	   r   z	(\/|-|\.)u2   (ngày|hôm|sáng|trưa|chiều|tối|đêm|khuya)z(\d{1,2}|(I|II|III|IV))u   (quý)z(\d{4})u   (ngày)?z	(\d{1,2})z(\d{1,2})(\-)(\d{1,2})u	   (tháng)?z/(\d{1,2})(g|:|h)(\d{1,2})(p|:|m)(\d{1,2})(s|g)?z(\d{1,2})(g|:|h)(\d{1,2})(p|m)?c                 C   s   |    } t| dkr<| d dkr<t| dkr<| d dkr<| dd  } t| dkr<| d dkr<t| dkr<| d dkst| dkrD| S dS )Nr   0r   ,)striprstriplentext r   R/home/ubuntu/.local/lib/python3.10/site-packages/misaki/vi_cleaner/datestime_vi.py_remove_prefix_zero*   s
   00r   c                 C   s   | t ddv S )Nr      range)quarterr   r   r   _is_valid_quarter1   s   r   c                 C   s(   |t ddv o| t dt|d  d v S )Nr      )r   day_in_month)daymonthr   r   r   _is_valid_date5   s   (r   c                 C   s$   | t dv o|t dv o|t dv S )N   <   r   )hourminutesecondr   r   r   _is_valid_time9   s   $r#   c           	      C   s   |  d\}}}}}}}}|dkrdn|}t|}t|}t|}tt|t|r.||kr3| dS |d t| d t| d t| | d S )Nr        ngày     tháng     năm  groupsr   r   intgroupr   )	matchprefixspacer   
seporator1r   
seporator2yearsuffixr   r   r   _expand_full_date=   s   
0r4   c              
   C   s   |  d\
}}}}}}}}}	}
|dkrdn|}t|}t|}t|}t|	}	t|}tt|t|r=tt|t|sB| dS |d t| d t| d t| d t|	 |
 d S )Nr   r$   r%       đến ngày r&   r'   r(   r)   )r-   r.   r/   	day_starthypenday_endr0   r   r1   r2   r3   r   r   r   _expand_range_full_dateI   s   $
<r9   c                 C   s   |  d\}}}}}}|dkr|d n|}|dkrdn|}t|}t|}tt|t|r2||kr7| dS || | t| d t| | d S )Nr   u   ngàyu    ngàyr$   r&   r(   r)   )r-   r.   r/   r   r0   r   r3   r   r   r   _expand_day_monthW   s   
(r:   c           	      C   s   |  d\}}}}}}}}|dkrdn|}t|}t|}t|}tt|t|r3tt|t|s8| dS |d t| d t| d t| | d S )Nr   r$   r%   r5   r&   r(   r)   )	r-   r.   r/   r6   r7   r8   r0   r   r3   r   r   r   _expand_range_day_monthb      $
0r;   c                 C   sz   |  d\}}}}}}|dkrdn|}t|}t|}tdt|r&||kr+| dS |d t| d t| | d S )Nr   r$   r   r&   r'   r(   r)   )r-   r.   r/   r   	seporatorr2   r3   r   r   r   _expand_month_yearn   s   
$r>   c                 C   s   |  d\}}}}}}}|dkrdn|}z
t|}t|}W n   t|}Y t|}|dvr>tt|r9||kr>| dS |d | d t| | d S )Nr   r$   )IIIIIIIVu    quý r'   r(   )r*   r   r   r   r   r+   r,   )r-   _r/   r   r=   r2   r3   quarter_stringr   r   r   _expand_quarter_month_yearx   s   

 rE   c           	      C   s   |  d\}}}}}}}}|dkrdn|}t|}t|}t|}tdt|r3tdt|r3||kr8| dS |d t| d t| d t| | d S )Nr   r$   r   r&   u    đến tháng r'   r(   r)   )	r-   r.   r/   month_startr7   	month_endr=   r2   r3   r   r   r   _expand_range_month_year   r<   rH   c                 C   sz   |  d\}}}}}}|dkrdn|}t|}t|}tt|t|s)| dS |d t| d t| d | d S )Nr   r$   r(       giờ u    phútr*   r   r#   r+   r,   r   )mathr.   r    r=   r!   r3   ending_spacer   r   r   _expand_time   s   
(rM   c           	      C   s   |  d\}}}}}}}}|dkrdn|}t|}t|}t|}tt|t|t|s2| dS |d t| d t| d t| d | d S )Nr   r$   r(   rI   u    phút u    giâyrJ   )	rK   r.   r    r0   r!   r1   r"   r3   rL   r   r   r   _expand_full_time   s   
4rN   c                 C   s   t jtt| t jd} t jtt| t jd} t jtt| t jd} t jt	t
| t jd} t jtt| t jd} t jtt| t jd} t jtt| t jd} | S N)flags)resub_quarter_month_year_patternrE   
IGNORECASE_range_month_year_patternrH   _full_range_date_patternr9   _full_date_patternr4   _month_year_patternr>   _range_day_month_patternr;   _day_month_patternr:   r   r   r   r   normalize_date   s,   r[   c                 C   s,   t jtt| t jd} t jtt| t jd} | S rO   )rQ   rR   _full_time_patternrN   rT   _time_patternrM   r   r   r   r   normalize_time   s
   r^   )r   )$rQ   vietnam_number.number2wordr   	symbol_vir   r   roman_number_vir   r   _date_seperator_day_periods_roman_or_number_quarter_rerS   rW   rV   rZ   rY   rX   rU   r\   r]   r   r   r   r#   r4   r9   r:   r;   r>   rE   rH   rM   rN   r[   r^   r   r   r   r   <module>   s    




