o
    
 ¢i%  ã                   @   s    d dl Z ddlmZ ddlmZ ddlmZ ddlmZ dedefd	d
„Ze  d¡Z	e  d¡Z
defdd„Ze  d¡Zdefdd„Ze  d¡Zdefdd„ZdS )é    Né   )ÚDIGITS)Únum2str)Úverbalize_cardinal)Úverbalize_digitÚ
num_stringÚreturnc                 C   s(   t |  d¡ƒ}|  d¡rtd | }|S )z.A special case for verbalizing number in time.Ú0)r   ÚlstripÚ
startswithr   )r   Úresult© r   úV/home/ubuntu/.local/lib/python3.10/site-packages/misaki/zh_normalization/chronology.pyÚ_time_num2str   s   
r   z1([0-1]?[0-9]|2[0-3]):([0-5][0-9])(:([0-5][0-9]))?zg([0-1]?[0-9]|2[0-3]):([0-5][0-9])(:([0-5][0-9]))?(~|-)([0-1]?[0-9]|2[0-3]):([0-5][0-9])(:([0-5][0-9]))?c           	      C   s$  t |  ¡ ƒdk}|  d¡}|  d¡}|  d¡}|r(|  d¡}|  d¡}|  d¡}t|ƒ› d}| d	¡rHt|ƒd
kr?|d7 }n	|t|ƒ› d7 }|rX| d	¡rX|t|ƒ› d7 }|r|d7 }|t|ƒ› d7 }| d	¡r€t|ƒd
krw|d7 }n	|t|ƒ› d7 }|r| d	¡r|t|ƒ› d7 }|S )úA
    Args:
        match (re.Match)
    Returns:
        str
    é   r   é   é   é   é   é	   u   ç‚¹r	   é   u   åŠu   åˆ†u   ç§’u   è‡³)ÚlenÚgroupsÚgroupr   r
   Úintr   )	ÚmatchÚis_rangeÚhourÚminuteÚsecondÚhour_2Úminute_2Úsecond_2r   r   r   r   Úreplace_time-   s2   









r$   uQ   (\d{4}|\d{2})å¹´((0?[1-9]|1[0-2])æœˆ)?(((0?[1-9])|((1|2)[0-9])|30|31)([æ—¥å·]))?c                 C   sp   |   d¡}|   d¡}|   d¡}d}|r|t|ƒ› d7 }|r'|t|ƒ› d7 }|r6|t|ƒ› |   d¡› 7 }|S )r   r   é   r   Ú õ   å¹´õ   æœˆr   ©r   r   r   ©r   ÚyearÚmonthÚdayr   r   r   r   Úreplace_date\   s   


r.   z8(\d{4})([- /.])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])c                 C   sh   |   d¡}|   d¡}|   d¡}d}|r|t|ƒ› d7 }|r'|t|ƒ› d7 }|r2|t|ƒ› d7 }|S )r   r   r%   r   r&   r'   r(   u   æ—¥r)   r*   r   r   r   Úreplace_date2u   s   


r/   )ÚreÚnumr   r   r   r   Ústrr   ÚcompileÚRE_TIMEÚRE_TIME_RANGEr$   ÚRE_DATEr.   ÚRE_DATE2r/   r   r   r   r   Ú<module>   s   
	
	
*ÿ