o
    ,wÖi¼	  ã                   @   s˜   d Z ddlmZ ddlZddlZe ¡ Ze d¡Ze d¡Z	e d¡Z
e d¡Ze d¡Ze d	¡Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )z¡
Borrowed
from https://github.com/keithito/tacotron/blob/master/text/numbers.py
By kyubyong park. kbpark.linguist@gmail.com.
https://www.github.com/kyubyong/g2p
é    )Úprint_functionNz([0-9][0-9\,]+[0-9])z([0-9]+\.[0-9]+)u   Â£([0-9\,]*[0-9]+)z\$([0-9\.\,]*[0-9]+)z[0-9]+(st|nd|rd|th)z[0-9]+c                 C   ó   |   d¡ dd¡S )Né   ú,Ú ©ÚgroupÚreplace©Úm© r   úJ/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/g2p_en/expand.pyÚ_remove_commas   ó   r   c                 C   r   )Nr   Ú.z point r   r
   r   r   r   Ú_expand_decimal_point   r   r   c                 C   sà   |   d¡}| d¡}t|ƒdkr|d S |d rt|d ƒnd}t|ƒdkr0|d r0t|d ƒnd}|rN|rN|dkr<dnd}|dkrDdnd	}d
||||f S |r^|dkrVdnd}d||f S |rn|dkrfdnd	}d||f S dS )Nr   r   é   z dollarsr   ÚdollarÚdollarsÚcentÚcentsz%s %s, %s %sz%s %szzero dollars)r   ÚsplitÚlenÚint)r   ÚmatchÚpartsr   r   Údollar_unitÚ	cent_unitr   r   r   Ú_expand_dollars    s"   

$r   c                 C   s   t  |  d¡¡S )Nr   )Ú_inflectÚnumber_to_wordsr   r
   r   r   r   Ú_expand_ordinal5   s   r!   c                 C   s’   t |  d¡ƒ}|dkrB|dk rB|dkrdS |dkr&|dk r&dt |d ¡ S |d dkr5t |d ¡d	 S tj|d
ddd dd¡S tj|d
dS )Nr   iè  i¸  iÐ  ztwo thousandiÚ  ztwo thousand éd   z hundredr   Úohr   )ÚandwordÚzeror   z, ú )r$   )r   r   r   r    r	   )r   Únumr   r   r   Ú_expand_number9   s   r(   c                 C   sX   t  tt| ¡} t  td| ¡} t  tt| ¡} t  tt| ¡} t  t	t
| ¡} t  tt| ¡} | S )Nz	\1 pounds)ÚreÚsubÚ_comma_number_rer   Ú
_pounds_reÚ_dollars_rer   Ú_decimal_number_rer   Ú_ordinal_rer!   Ú
_number_rer(   )Útextr   r   r   Únormalize_numbersH   s   r2   )Ú__doc__Ú
__future__r   Úinflectr)   Úenginer   Úcompiler+   r.   r,   r-   r/   r0   r   r   r   r!   r(   r2   r   r   r   r   Ú<module>   s"   





