o
    ph                     @   s`   d dl mZ d dlmZ g dZg dZg dZg dZg dZg dZ	d	Z
G d
d deZdS )    )Decimal)floor) u   یکu   دوu   سهu   چهارu   پنجu   ششu   هفتu   هشتu   نه   دهu
   یازدهu   دوازدهu
   سیزدهu   چهاردهu   پانزدهu   شانزدهu   هفدهu   هجدهu
   نوزده)
r   r   u   بیستu   سیu   چهلu
   پنجاهu   شصتu
   هفتادu
   هشتادu   نود)
r   u   صدu
   دویستu   سیصدu   چهارصدu
   پانصدu   ششصدu
   هفتصدu
   هشتصدu   نهصد)r   	    هزارu    میلیونu    میلیاردu    تریلیونu    تریلیارد)r   u   دهمu   صدم)r   u
   هزارمu   میلیونیمu   میلیاردیمu    و c                   @   sl   e Zd Z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edd Zdd ZdS )Num2Word_FAz	Too large
   $   c                 C   s
   d| _ d S )Nr   )number)self r   ]/var/www/html/Testing_prj/Navya-Bakers/venv/lib/python3.10/site-packages/num2words/lang_FA.py__init__U      
zNum2Word_FA.__init__c                 C   sp   t |}ttt| j| _t|| d| j  }tt|| dk r,t t|}nt t|}||| jfS )Nr   g{Gz?)	intabsr   stras_tupleexponent	precisionroundr   )r   valueprepostr   r   r   float2tupleX   s   zNum2Word_FA.float2tuplec                 C   s~   |dkrt | S |dk r%t|d\}}|dkrt| S t| t t |  S t|d\}}|dkr4t| S t| t | | S )N   d   r   r   )	farsiOnesdivmod	farsiTensfarsiSeperatorfarsiHundreds	cardinal3)r   r
   xyr   r   r   r"   i   s   zNum2Word_FA.cardinal3c                 C   sj   |}d}t D ],}t|d\}}|dkrq| || }|dkr%|dkr%d}|dkr,|}q|t | }q|S )Nr   i  r   r      u   هزار)farsiBigr   r"   r    )r   r
   r#   resbr$   yxr   r   r   cardinalPosv   s   zNum2Word_FA.cardinalPosc                 C   sH   |dkrdS |  |}t|d\}}t| d t|   }|d | S )N   u   نیم    )r*   r   	farsiFracfarsiFracBigstrip)r   r
   levelr#   ld3lm3ltextr   r   r   
fractional   s   
zNum2Word_FA.fractionalc                 C   s   |  |d S )Nu    تومانto_cardinalr   r   r   r   r   to_currency   s   zNum2Word_FA.to_currencyc                 C   s:   |  |}|d dkr|d dkr|d d d S |d S )Nu   هu   سu   وم   مr6   )r   r
   rr   r   r   
to_ordinal   s   
zNum2Word_FA.to_ordinalc                 C   s
   |  |S )Nr6   r8   r   r   r   to_year   r   zNum2Word_FA.to_yearc                 C   s   t | d S )Nr<   )r   )r   r   r   r   to_ordinal_num   s   zNum2Word_FA.to_ordinal_numc                 C   st   |dk rd|  |  S |dkrdS | |\}}}|dkr#| |S |dkr-| ||S | |t | || S )Nr   u	   منفی u   صفر)r7   r   r*   r5   r    )r   r
   r#   r$   r1   r   r   r   r7      s   
zNum2Word_FA.to_cardinalN)__name__
__module____qualname__errmsg_toobigMAXNUMr   r   r"   r*   r5   r9   r>   r?   staticmethodr@   r7   r   r   r   r   r   P   s    
r   N)decimalr   mathr   r   r   r!   r&   r.   r/   r    objectr   r   r   r   r   <module>   s   	