
    %i                     f    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e      Zy)    )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                   `    e Zd ZdZddz  Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zed        Zd Zy)Num2Word_FAz	Too large
   $   c                     d| _         y )Nr   )number)selfs    o/var/www/html/navyabakers_fullstack/navyabakers_prod/venv_new/lib/python3.12/site-packages/num2words/lang_FA.py__init__zNum2Word_FA.__init__U   s	        c                 l   t        |      }t        t        t        |            j	                         j
                        | _        t        ||z
        d| j                  z  z  }t        t        |      |z
        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posts       r   float2tuplezNum2Word_FA.float2tupleX   s    %j WSZ099;DDE53;"dnn"44uT{T!"T)
 uT{#DuT{#DD$..((r   c                    |dk  r	t         |   S |dk  r7t        |d      \  }}|dk(  r	t        |   S t        |   t        z   t         |   z   S t        |d      \  }}|dk(  r	t        |   S t        |   t        z   | j                  |      z   S )N   d   r
   r   )	farsiOnesdivmod	farsiTensfarsiSeperatorfarsiHundreds	cardinal3)r   r   xys       r   r&   zNum2Word_FA.cardinal3i   s    R<V$$C<&"%DAqAv |#Q<.09Q<??fc"16 ##Q.04>>!3DDDr   c                     |}d}t         D ]K  }t        |d      \  }}|dk(  r| j                  |      |z   }|dk(  r|dk(  rd}|dk(  r|}@|t        z   |z   }M |S )Nr   i  r   r      u   هزار)farsiBigr"   r&   r$   )r   r   r'   resbr(   yxs          r   cardinalPoszNum2Word_FA.cardinalPosv   s|     
	0A!T?DAqAv"Q&BKAFby>)C/
	0 
r   c                     |dk(  ry| j                  |      }t        |d      \  }}t        |   dz   t        |   z   j	                         }|dz   |z   S )N   u   نیم    )r/   r"   	farsiFracfarsiFracBigstrip)r   r   levelr'   ld3lm3ltexts          r   
fractionalzNum2Word_FA.fractional   s[    Q;V$%#S3#%S(99@@B3wr   c                 *    | j                  |      dz   S )Nu    تومانto_cardinalr   r   s     r   to_currencyzNum2Word_FA.to_currency   s    &66r   c                 ^    | j                  |      }|d   dk(  r|d   dk(  r|d d dz   S |dz   S )Nu   هu   سu   وم   مr=   )r   r   rs      r   
to_ordinalzNum2Word_FA.to_ordinal   s@    V$R5D=QrUd]Sb6F?"4xr   c                 $    | j                  |      S )Nr=   r?   s     r   to_yearzNum2Word_FA.to_year   s    &&r   c                     t        |       dz   S )NrD   )r   )r   s    r   to_ordinal_numzNum2Word_FA.to_ordinal_num   s    5z$r   c                    |dk  rd| j                  |       z   S |dk(  ry| j                  |      \  }}}|dk(  r| j                  |      S |dk(  r| j                  ||      S | j                  |      t        z   | j                  ||      z   S )Nr   u	   منفی u   صفر)r>   r   r/   r;   r$   )r   r   r'   r(   r7   s        r   r>   zNum2Word_FA.to_cardinal   s    A:!1!16'!:::Q;&&v.1e6##A&&6??1e,,"^3dooa6OOOr   N)__name__
__module____qualname__errmsg_toobigMAXNUMr   r   r&   r/   r;   r@   rF   rH   staticmethodrJ   r>    r   r   r	   r	   P   sS    M2XF)"E 7'  
Pr   r	   N)decimalr   mathr   r!   r#   r%   r+   r4   r5   r$   objectr	   rR   r   r   <module>rV      sJ   *  		 %	KXP& XPr   