
    $HJj                        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z   ez   e	z   dz   ez   Zdez   dz   e	z   dz   e	z   dz   ez   Zdez   dz   e	z   dz   e	z   dz   ez   Ze
ez   dz   e	z   dz   ez   Zdez   dz   e	z   dz   ez   Zdez   dz   e	z   dz   ez   Zdez   dz   e	z   dz   ez   Zedz   ez   Zedz   ez   Zd Zd Zd Zd!dZd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d  Z#y)"    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                    | j                         j                         } t        |       dkD  rP| d   dk(  rHt        |       dkD  r:| d   dk7  r2| dd  } t        |       dkD  r| d   dk(  rt        |       dkD  r	| d   dk7  r2t        |       dkD  r| S dS )Nr   0r   ,)striprstriplentexts    h/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/misaki/vi_cleaner/datestime_vi.py_remove_prefix_zeror   *   s    ::< D
d)a-DGsND	A$q'S.ABx d)a-DGsND	A$q'S.IM4++    c                     | t        dd      v S )Nr      range)quarters    r   _is_valid_quarterr   1   s    eAqk!!r   c                 X    |t        dd      v xr | t        dt        |dz
     dz         v S )Nr      )r   day_in_month)daymonths     r   _is_valid_dater!   5   s2    E!RL QSE!\%!)5Lq5P,Q%QQr   c                 X    | t        d      v xr |t        d      v xr |t        d      v S )N   <   r   )hourminuteseconds      r   _is_valid_timer(   9   s-    59L59!4L599LLr   c                 \   | j                  d      \  }}}}}}}}|dk(  rdn|}t        |      }t        |      }t        |      }t        t        |      t        |            r||k(  r| j	                  d      S |dz   t        |      z   dz   t        |      z   dz   t        |      z   |z   dz   S )Nr        ngày     tháng     năm  groupsr   r!   intgroupr   )	matchprefixspacer   
seporator1r    
seporator2yearsuffixs	            r   _expand_full_dater:   =   s    FKll	GCFE3
E:tV1*B%E
c
"C&Et$D#c(CJ/6Z3G{{1~9s3x'*4s5zAHLsSWyX[aadgggr   c           
         | j                  d      \
  }}}}}}}}}	}
|dk(  rdn|}t        |      }t        |      }t        |      }t        |	      }	t        |      }t        t        |      t        |            rt        t        |      t        |            s| j	                  d      S |dz   t        |      z   dz   t        |      z   dz   t        |      z   dz   t        |	      z   |
z   dz   S )Nr   r*   r+       đến ngày r,   r-   r.   r/   )r3   r4   r5   	day_starthypenday_endr6   r    r7   r8   r9   s              r   _expand_range_full_dater@   I   s   \a\h\h	]YFE9eWj%TSY1*B%E#I.I!'*G&Et$D&E#i.#e*5^CPWLZ]^cZd=e{{1~9s9~-0@@3w<OR\\_bch_iilttwz{  xA  A  DJ  J  MP  P  Pr   c                 B   | j                  d      \  }}}}}}|dk7  r|dz   n|}|dk(  rdn|}t        |      }t        |      }t        t        |      t        |            r||k(  r| j	                  d      S ||z   |z   t        |      z   dz   t        |      z   |z   dz   S )Nr   u   ngàyu    ngàyr*   r,   r.   r/   )r3   r4   r5   r   r6   r    r9   s          r   _expand_day_monthrB   W   s    49LLO1FE3
E6"(G"3VhF1*B%E
c
"C&E#c(CJ/5J3F{{1~6>E!CH,z9CJFORUUUr   c                    | j                  d      \  }}}}}}}}|dk(  rdn|}t        |      }t        |      }t        |      }t        t        |      t        |            rt        t        |      t        |            s| j	                  d      S |dz   t        |      z   dz   t        |      z   dz   t        |      z   |z   dz   S )Nr   r*   r+   r<   r,   r.   r/   )	r3   r4   r5   r=   r>   r?   r6   r    r9   s	            r   _expand_range_day_monthrD   b   s    JO,,	KGFE9eWj%1*B%E#I.I!'*G&E#i.#e*5^CPWLZ]^cZd=e{{1~9s9~-0@@3w<OR\\_bch_iilrruxxxr   c                    | j                  d      \  }}}}}}|dk(  rdn|}t        |      }t        |      }t        dt        |            r||k(  r| j	                  d      S |dz   t        |      z   dz   t        |      z   |z   dz   S )Nr   r*   r   r,   r-   r.   r/   )r3   r4   r5   r    	seporatorr8   r9   s          r   _expand_month_yearrG   n   s    49LLO1FE5)T61*B%E&Et$D!SZ(EY,>{{1~:E
*X5D	AFJSPPr   c                 D   | j                  d      \  }}}}}}}|dk(  rdn|}	 t        |      }t        |      }t        |      }|dvr*t	        t        |            r||k(  r| j                  d      S |dz   |z   dz   t        |      z   |z   dz   S #  t        |      }Y exY w)Nr   r*   )IIIIIIIVu    quý r-   r.   )r0   r   r   r   r   r1   r2   )r3   _r5   r   rF   r8   r9   quarter_strings           r   _expand_quarter_month_yearrO   x   s    49LLO1Augq)T61*B%E:%g.W t$D.. W.%92D;;q>!8n,x7#d)CfLsRR:09s   B Bc                 t   | j                  d      \  }}}}}}}}|dk(  rdn|}t        |      }t        |      }t        |      }t        dt        |            rt        dt        |            r||k(  r| j	                  d      S |dz   t        |      z   dz   t        |      z   dz   t        |      z   |z   dz   S )Nr   r*   r   r,   u    đến tháng r-   r.   r/   )	r3   r4   r5   month_startr>   	month_endrF   r8   r9   s	            r   _expand_range_month_yearrS      s    LQLL	MIFE;y)T61*B%E%k2K#I.It$D!S-.nQI6W[`dm[m{{1~:K 003DDs9~UX``cfgkcllouux{{{r   c                     | j                  d      \  }}}}}}|dk(  rdn|}t        |      }t        |      }t        t        |      t        |            s| j	                  d      S |dz   t        |      z   dz   t        |      z   dz   |z   dz   S )Nr   r*   r.       giờ u    phútr0   r   r(   r1   r2   r   )mathr4   r%   rF   r&   r9   ending_spaces          r   _expand_timerY      s    <@KKN9FD)VV\Q;RFFt$D (F#d)S[1zz!}C<#d)#i/#f+=H<WZ]]]r   c                 l   | j                  d      \  }}}}}}}}|dk(  rdn|}t        |      }t        |      }t        |      }t        t        |      t        |      t        |            s| j	                  d      S |dz   t        |      z   dz   t        |      z   dz   t        |      z   dz   |z   dz   S )Nr   r*   r.   rU   u    phút u    giâyrV   )	rW   r4   r%   r6   r&   r7   r'   r9   rX   s	            r   _expand_full_timer[      s    QUQ\Q\	RNFD*fj&&,Q;RFFt$D (F (F#d)S[#f+>zz!}C<#d)#i/#f+=	ICPVKWZbbeqqtwwwr   c                    t        j                  t        t        | t         j                        } t        j                  t
        t        | t         j                        } t        j                  t        t        | t         j                        } t        j                  t        t        | t         j                        } t        j                  t        t        | t         j                        } t        j                  t        t        | t         j                        } t        j                  t        t         | t         j                        } | S N)flags)resub_quarter_month_year_patternrO   
IGNORECASE_range_month_year_patternrS   _full_range_date_patternr@   _full_date_patternr:   _month_year_patternrG   _range_day_month_patternrD   _day_month_patternrB   r   s    r   normalize_dateri      s    66-/Ibmm-D66+*DGD66*)4r}}FD66$&7bmm-D66%'9bmm-D66*)4r}}FD66$&7bmm-DKr   c                     t        j                  t        t        | t         j                        } t        j                  t
        t        | t         j                        } | S r]   )r_   r`   _full_time_patternr[   rb   _time_patternrY   r   s    r   normalize_timerm      s<    66$&7bmm-D66-t2==IDKr   )r   )$r_   vietnam_number.number2wordr   	symbol_vir   r   roman_number_vir   r   _date_seperator_day_periods_roman_or_number_quarter_rera   re   rd   rh   rg   rf   rc   rk   rl   r   r   r!   r(   r:   r@   rB   rD   rG   rO   rS   rY   r[   ri   rm    r   r   <module>ru      s   	 * < 4?D8 '-7:UU !#9:  !=0<?/Q"#%/02HI &69RR"#%45'(  "M1"#%124JK &6 /0)*  #]2"#%/02HI (=8 /0'(  #679OP &')?@,"RM	hPV	yQS	|^	x$r   