o
    ūph*"  ã                   @   sV   d dl mZ g dĸZg dĸZg dĸZdZdZdZdZG d	d
 d
e	Z
G dd dZdS )é    )ÚDecimal)Ú u   āĻĒā§āĻ°āĻĨāĻŽu   āĻĻā§āĻŦāĻŋāĻ¤ā§ā§u   āĻ¤ā§āĻ¤ā§ā§u   āĻāĻ¤ā§āĻ°ā§āĻĨu   āĻĒāĻā§āĻāĻŽu   āĻˇāĻˇā§āĻ u   āĻ¸āĻĒā§āĻ¤āĻŽu   āĻāĻˇā§āĻāĻŽu	   āĻ¨āĻŦāĻŽu	   āĻĻāĻļāĻŽ)
r   u   āĻāĻu	   āĻĻā§āĻu	   āĻ¤āĻŋāĻ¨u	   āĻāĻžāĻ°u   āĻĒāĻžāĻāĻu	   āĻāĻ¯āĻŧu	   āĻ¸āĻžāĻ¤u   āĻāĻu	   āĻ¨āĻ¯āĻŧ)Zu   āĻĻāĻļu   āĻāĻāĻžāĻ°ā§u   āĻŦāĻžāĻ°ā§u   āĻ¤ā§āĻ°ā§u   āĻā§āĻĻā§āĻĻu   āĻĒāĻ¨ā§āĻ°u	   āĻˇā§āĻ˛u   āĻ¸āĻ¤ā§āĻ°u   āĻāĻ āĻžāĻ°ā§u   āĻāĻ¨āĻŋāĻļu	   āĻŦāĻŋāĻļu   āĻāĻā§āĻļu   āĻŦāĻžāĻāĻļu   āĻ¤ā§āĻāĻļu   āĻāĻŦā§āĻŦāĻŋāĻļu   āĻĒāĻāĻāĻŋāĻļu   āĻāĻžāĻŦā§āĻŦāĻŋāĻļu   āĻ¸āĻžāĻ¤āĻžāĻļu   āĻāĻāĻžāĻļu   āĻāĻ¨āĻ¤ā§āĻ°āĻŋāĻļu   āĻ¤ā§āĻ°āĻŋāĻļu   āĻāĻāĻ¤ā§āĻ°āĻŋāĻļu   āĻŦāĻ¤ā§āĻ°āĻŋāĻļu   āĻ¤ā§āĻ¤ā§āĻ°āĻŋāĻļu   āĻā§āĻ¤ā§āĻ°āĻŋāĻļu   āĻĒāĻāĻāĻ¤ā§āĻ°āĻŋāĻļu   āĻāĻ¤ā§āĻ°āĻŋāĻļu   āĻ¸āĻžāĻ¤āĻ¤ā§āĻ°āĻŋāĻļu   āĻāĻāĻ¤ā§āĻ°āĻŋāĻļu   āĻāĻ¨āĻāĻ˛ā§āĻ˛āĻŋāĻļu   āĻāĻ˛ā§āĻ˛āĻŋāĻļu   āĻāĻāĻāĻ˛ā§āĻ˛āĻŋāĻļu   āĻŦāĻŋāĻ¯āĻŧāĻžāĻ˛ā§āĻ˛āĻŋāĻļu   āĻ¤ā§āĻ¤āĻžāĻ˛ā§āĻ˛āĻŋāĻļu   āĻā§āĻāĻ˛ā§āĻ˛āĻŋāĻļu!   āĻĒāĻāĻ¯āĻŧāĻ¤āĻžāĻ˛ā§āĻ˛āĻŋāĻļu   āĻā§āĻāĻ˛ā§āĻ˛āĻŋāĻļu   āĻ¸āĻžāĻ¤āĻāĻ˛ā§āĻ˛āĻŋāĻļu   āĻāĻāĻāĻ˛ā§āĻ˛āĻŋāĻļu   āĻāĻ¨āĻĒāĻā§āĻāĻžāĻļu   āĻĒāĻā§āĻāĻžāĻļu   āĻāĻāĻžāĻ¨ā§āĻ¨u   āĻŦāĻžāĻšāĻžāĻ¨ā§āĻ¨u   āĻ¤āĻŋāĻĒā§āĻĒāĻžāĻ¨ā§āĻ¨u   āĻā§āĻ¯āĻŧāĻžāĻ¨ā§āĻ¨u   āĻĒāĻā§āĻāĻžāĻ¨ā§āĻ¨u   āĻāĻžāĻĒā§āĻĒāĻžāĻ¨ā§āĻ¨u   āĻ¸āĻžāĻ¤āĻžāĻ¨ā§āĻ¨u   āĻāĻāĻžāĻ¨ā§āĻ¨u   āĻāĻ¨āĻˇāĻžāĻu	   āĻˇāĻžāĻu   āĻāĻāĻˇāĻā§āĻāĻŋu   āĻŦāĻžāĻˇāĻā§āĻāĻŋu   āĻ¤ā§āĻˇāĻā§āĻāĻŋu   āĻā§āĻˇāĻā§āĻāĻŋu   āĻĒāĻāĻ¯āĻŧāĻˇāĻā§āĻāĻŋu   āĻāĻŋāĻˇāĻā§āĻāĻŋu   āĻ¸āĻžāĻ¤āĻˇāĻā§āĻāĻŋu   āĻāĻāĻˇāĻā§āĻāĻŋu   āĻāĻ¨āĻ¸āĻ¤ā§āĻ¤āĻ°u   āĻ¸āĻ¤ā§āĻ¤āĻ°u   āĻāĻāĻžāĻ¤ā§āĻ¤āĻ° u   āĻŦāĻžāĻšāĻžāĻ¤ā§āĻ¤āĻ°u   āĻ¤āĻŋāĻ¯āĻŧāĻžāĻ¤ā§āĻ¤āĻ°u   āĻā§āĻ¯āĻŧāĻžāĻ¤ā§āĻ¤āĻ°u   āĻĒāĻāĻāĻžāĻ¤ā§āĻ¤āĻ°u   āĻāĻŋāĻ¯āĻŧāĻžāĻ¤ā§āĻ¤āĻ°u   āĻ¸āĻžāĻ¤āĻžāĻ¤ā§āĻ¤āĻ°u   āĻāĻāĻžāĻ¤ā§āĻ¤āĻ°u   āĻāĻ¨āĻāĻļāĻŋu	   āĻāĻļāĻŋu   āĻāĻāĻžāĻļāĻŋu   āĻŦāĻŋāĻ°āĻžāĻļāĻŋu   āĻ¤āĻŋāĻ°āĻžāĻļāĻŋu   āĻā§āĻ°āĻžāĻļāĻŋu   āĻĒāĻāĻāĻžāĻļāĻŋu   āĻāĻŋāĻ¯āĻŧāĻžāĻļāĻŋu   āĻ¸āĻžāĻ¤āĻžāĻļāĻŋu   āĻāĻāĻžāĻļāĻŋu   āĻāĻ¨āĻ¨āĻŦā§āĻŦāĻu   āĻ¨āĻŦā§āĻŦāĻu   āĻāĻāĻžāĻ¨āĻŦā§āĻŦāĻu   āĻŦāĻŋāĻ°āĻžāĻ¨āĻŦā§āĻŦāĻu   āĻ¤āĻŋāĻ°āĻžāĻ¨āĻŦā§āĻŦāĻu   āĻā§āĻ°āĻžāĻ¨āĻŦā§āĻŦāĻu   āĻĒāĻāĻāĻžāĻ¨āĻŦā§āĻŦāĻu   āĻāĻŋāĻ¯āĻŧāĻžāĻ¨āĻŦā§āĻŦāĻu   āĻ¸āĻžāĻ¤āĻžāĻ¨āĻŦā§āĻŦāĻu   āĻāĻāĻžāĻ¨āĻŦā§āĻŦāĻu   āĻ¨āĻŋāĻ°āĻžāĻ¨āĻŦā§āĻŦāĻu    āĻšāĻžāĻāĻžāĻ° u    āĻ˛āĻžāĻ u    āĻā§āĻāĻŋ lD   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙^Ž*OO)Ū ^y˛¯BeÛmĻlˇ>r4pĄ=Û5
#˛q ~&ĸOs^y&ąus7Ž"ŗ&~kOj1Ē_6@ESEHô\WZzS#w˛;?`Ā*t,y>ėqc                   @   s   e Zd ZdZdS )ÚNumberTooLargeErrorz0Custom exception for numbers that are too large.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Š r	   r	   ú]/var/www/html/Testing_prj/Navya-Bakers/venv/lib/python3.10/site-packages/num2words/lang_BN.pyr   5   s    r   c                   @   s|   e Zd Zedd ZedefddZedef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 )ÚNum2Word_BNc                 C   s   t tt| S ŠN)Úabsr   Ústr)Únumberr	   r	   r
   Ústr_to_number<   s   zNum2Word_BN.str_to_numberr   c                 C   s@   t | t|   dĄdd  }|rd |Ąnd}t| t|fS )NÚ.é   r   r   Šr   ÚintÚsplitÚjoin)r   ÚdosomikÚdosomik_strr	   r	   r
   Úparse_number@   s   zNum2Word_BN.parse_numberc                 C   s\   t | t|   dĄdd  }|rd |Ąnd}|r&t t|d d d }t| t|fS )Nr   r   r   r   éd   é   r   )r   ÚpaisaÚ	paisa_strr	   r	   r
   Úparse_paisaF   s
   zNum2Word_BN.parse_paisac                 C   s   t |krdS tdt  )NTzToo Large number maximum value=)Ú
MAX_NUMBERr   ŠÚselfr   r	   r	   r
   Ú_is_smaller_than_max_numberQ   s
   ˙z'Num2Word_BN._is_smaller_than_max_numberc                 C   s*   d}t |D ]}|dtt|  7 }q|S )Nr   ú )r   ÚAKOKr   )r!   r   ÚwordÚir	   r	   r
   Ú_dosomik_to_bengali_wordW   s   z$Num2Word_BN._dosomik_to_bengali_wordc                 C   s  |dkrdS d}|dkr||   |d Ąt 7 }|d; }|dkr.||   |d Ąt 7 }|d; }|dkrA||   |d Ąt 7 }|d; }|dkrS|t|d  d 7 }|d; }d	|  kr]d
krkn n|t|d	  d 7 }d}d|  k rud	k rn | Ą S |t| d 7 }| Ą S )Nr   u   āĻļā§āĻ¨ā§āĻ¯r   i i  ič  r   u   āĻļāĻ¤ é
   éc   r#   )Ú_number_to_bengali_wordÚKOTIÚLAKHÚHAZARr$   ÚDOSOKÚstrip)r!   r   Úwordsr	   r	   r
   r*   ]   s,   ūz#Num2Word_BN._number_to_bengali_wordc                 C   sh   d}|   |Ą}|  |Ą\}}|  |Ą |dkr d|  |Ą d}|  |Ą d}|r0||  Ą S | Ą S )uK  
        This function represent a number to word in bangla taka and paisa.
        example:
        1 = āĻāĻ āĻāĻžāĻāĻž,
        101 = āĻāĻāĻļāĻ¤ āĻāĻ āĻāĻžāĻāĻž,
        9999.15 = āĻ¨āĻ¯āĻŧ āĻšāĻžāĻāĻžāĻ° āĻ¨āĻ¯āĻŧāĻļāĻ¤ āĻ¨āĻŋāĻ°āĻžāĻ¨āĻŦā§āĻŦāĻ āĻāĻžāĻāĻž āĻĒāĻ¨ā§āĻ° āĻĒāĻ¯āĻŧāĻ¸āĻž
        and so on.
        Nr   r#   u    āĻĒāĻ¯āĻŧāĻ¸āĻžu    āĻāĻžāĻāĻž)r   r   r"   r*   r/   )r!   ÚvalÚdosomik_wordr   Údecimal_partr0   r	   r	   r
   Úto_currency|   s   


zNum2Word_BN.to_currencyc                 C   s`   d}|   |Ą}|  |Ą\}}|  |Ą |dkrd|  |Ą }|  |Ą}|r,||  Ą S | Ą S )uõ   
        This function represent a number to word in bangla.
        example:
        1 = āĻāĻ,
        101 = āĻāĻāĻļāĻ¤ āĻāĻ,
        9999 = āĻ¨āĻ¯āĻŧ āĻšāĻžāĻāĻžāĻ° āĻ¨āĻ¯āĻŧāĻļāĻ¤ āĻ¨āĻŋāĻ°āĻžāĻ¨āĻŦā§āĻŦāĻ
        and so on.
        Nr   u    āĻĻāĻļāĻŽāĻŋāĻ)r   r   r"   r'   r*   r/   )r!   r   r2   r3   r0   r	   r	   r
   Úto_cardinal   s   



zNum2Word_BN.to_cardinalc                 C   s
   |   |ĄS r   )r5   r    r	   r	   r
   Ú
to_ordinalŦ   s   
zNum2Word_BN.to_ordinalc                 C   sL   |   |Ą |tddv rt| S |  tt|Ą}| dĄr"|d S |d S )uß   
        This function represent a number to ranking in bangla.
        example:
        1 = āĻĒā§āĻ°āĻĨāĻŽ,
        2 = āĻĻā§āĻŦāĻŋāĻ¤ā§ā§,
        1001 = āĻāĻ āĻšāĻžāĻāĻžāĻ° āĻāĻāĻ¤āĻŽ
        and so on.
        r   é   u   āĻ¤u   āĻŽu   āĻ¤āĻŽ)r"   ÚrangeÚRANKINGr5   r   r   Úendswith)r!   r   Úrankr	   r	   r
   Úto_ordinal_num¯   s   
	
zNum2Word_BN.to_ordinal_numc                 C   s    |   |Ą |  tt|Ąd S )uí   
        This function represent a number to year in bangla.
        example:
        2002 = āĻĻā§āĻ āĻšāĻžāĻāĻžāĻ° āĻĻā§āĻ āĻ¸āĻžāĻ˛,
        2024 = āĻĻā§āĻ āĻšāĻžāĻāĻžāĻ° āĻāĻŦā§āĻŦāĻŋāĻļ āĻ¸āĻžāĻ˛
        and so on.
        u
    āĻ¸āĻžāĻ˛)r"   r5   r   r   r    r	   r	   r
   Úto_yearÂ   s   
zNum2Word_BN.to_yearN)r   r   r   Ústaticmethodr   r   r   r   r"   r'   r*   r4   r5   r6   r<   r=   r	   r	   r	   r
   r   :   s    

r   N)Údecimalr   r9   r$   r.   r-   r,   r+   r   Ú	Exceptionr   r   r	   r	   r	   r
   Ú<module>   s   