o
    |¨Êh9  ã                   @   sT   d dl Z d dlmZ d dlmZ ddgZddgZdd	gZg d
¢ZG dd„ de	ƒZ
dS )é    N)ÚDecimal)Úfloor)u   ريالu   ريالانu   ريالاتu   ريالاً)õ   هللةu   هللتانu
   هللاتr   )u   جنيهu   جنيهانu   جنيهاتu   جنيهاً)õ   قرشu
   قرشانu   قروشr   )u
   دينارu   دينارانu   ديناراتu   ديناراً)õ   فلسu
   فلسانr   r   )Ú u   واحدu
   اثنانu
   ثلاثةu
   أربعةu   خمسةu   ستةu   سبعةu   ثمانيةu   تسعةu   عشرةu   أحد عشرu   اثنا عشرu   ثلاثة عشرu   أربعة عشرu   خمسة عشرu   ستة عشرu   سبعة عشرu   ثمانية عشرu   تسعة عشرc                   @   s”   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dd„ Zdd„ Zd%dd„Zd&dd„Zdd„ Zd d!„ Zd"d#„ Zd$S )'ÚNum2Word_ARz	Too largeé
   é$   c                 C   s®   d| _ d| _d| _d| _d| _d| _td | _td | _d| _	d| _
d| _t| _g d¢| _g d	¢| _g d
¢| _g d¢| _g d¢| _g d¢| _g d¢| _g d¢| _g d¢| _d S )Nr   r   é   é   TFõ   و)r   u   إحدىu   اثنتانu   ثلاثu   أربعu   خمسu   ستu   سبعu   ثمانu   تسعu   عشرu   إحدى عشرةu   اثنتا عشرةu   ثلاث عشرةu   أربع عشرةu   خمس عشرةu   ست عشرةu   سبع عشرةu   ثماني عشرةu   تسع عشرة)r   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
   تسعون)
r   õ   مائةõ
   مئتانu   ثلاثمائةu   أربعمائةu   خمسمائةu   ستمائةu   سبعمائةu   ثمانمائةu   تسعمائة)u   مئتاu   ألفاu   مليوناu   ملياراu   تريليوناu   كوادريليوناu   كوينتليوناu   سكستيليونا)r   u
   ألفانu   مليونانu   مليارانu   تريليونانu   كوادريليونانu   كوينتليونانu   سكستيليونان)r   u   ألفu
   مليونu
   مليارu   تريليونu   كوادريليونu   كوينتليونu   سكستيليون)r   u
   ألفاًu   مليوناًu   ملياراًu   تريليوناًu   كوادريليوناًu   كوينتليوناًu   سكستيليوناً)r   u   آلافu   ملايينu   ملياراتu   تريليوناتu   كوادريليوناتu   كوينتليوناتu   سكستيليونات)ÚnumberÚarabicPrefixTextÚarabicSuffixTextÚinteger_valueÚ_decimalValueÚpartPrecisionÚCURRENCY_SRÚcurrency_unitÚcurrency_subunitÚisCurrencyPartNameFeminineÚisCurrencyNameFeminineÚ	separatorÚARABIC_ONESÚ
arabicOnesÚarabicFeminineOnesÚarabicOrdinalÚ
arabicTensÚarabicHundredsÚarabicAppendedTwosÚ
arabicTwosÚarabicGroupÚarabicAppendedGroupÚarabicPluralGroups)Úself© r(   úC/var/www/html/env/lib/python3.10/site-packages/num2words/lang_AR.pyÚ__init__,   s*   









zNum2Word_AR.__init__c                 C   s   || _ || _|  ¡  d S ©N)r   r   Ú!extract_integer_and_decimal_parts)r'   Úarabic_prefix_textÚarabic_suffix_textr(   r(   r)   Únumber_to_arabicc   s   zNum2Word_AR.number_to_arabicc                 C   s`   t  dt| jƒ¡ t  dt| jƒ¡}t|d ƒ| _t|ƒdkr+t|  |d ¡ƒ| _d S d| _d S )Nz\.r   r   )	ÚreÚsplitÚstrr   Úintr   ÚlenÚdecimal_valuer   )r'   Úsplitsr(   r(   r)   r,   h   s   
z-Num2Word_AR.extract_integer_and_decimal_partsc                 C   sŽ   | j t|ƒur4t|ƒ}|}td| j | ƒD ]}|d7 }q|}t|ƒ| j kr*t|ƒ}n| j }|d|… }n|}tt|ƒ| j ƒD ]}|d7 }q>|S )Nr   Ú0)r   r4   Úrange)r'   Údecimal_partÚdecimal_part_lengthÚdecimal_part_builderÚiÚdecÚresultr(   r(   r)   r5   r   s   


zNum2Word_AR.decimal_valuec                 C   sb   |dkr| j r| jt|ƒ S | jt|ƒ S |dkr*| jr#| jt|ƒ S | jt|ƒ S | jt|ƒ S )Néÿÿÿÿr   )r   r   r3   r   r   )r'   ÚdigitÚgroup_levelr(   r(   r)   Údigit_feminine_statusˆ   s   z!Num2Word_AR.digit_feminine_statusc                 C   sÊ  t |ƒt dƒ }t |ƒt dƒ }d}t|ƒdkr5|dkr+t|ƒdkr+d | jd ¡}n
d | jt|ƒ ¡}|dkrã|dk r¬|dkrht|ƒdkrh|dkrh| jdv r\d | jt|ƒ ¡}|S d | jt|ƒ ¡}|S |dkrp|d7 }|d	kr‚|dkr‚|dkr‚|d7 }|S |d	ksŠ|dkr |dks’|d
kr |dkr |dkr |d7 }|S ||  t|ƒ|¡7 }|S |d }|d d }|dkrÎ|durÆ|dk rÆ|d7 }||  ||¡7 }|durÚ|dkrÚ|d7 }|| jt|ƒ 7 }|S )Néd   r   r   r   ú{}é   )iÐ  i€„ i ”5wl     ”RFl     õk8 l     ��5^ u    و r   r?   r	   é   )	r   r3   Úformatr"   r!   r   r#   rB   r    )r'   Úgroup_numberrA   Úremaining_numberÚtensÚhundredsÚret_valÚonesr(   r(   r)   Úprocess_arabic_group—   sV   
ÿäÿçìñÿôz Num2Word_AR.process_arabic_groupc                 C   s$   d  |¡| _|  | j| j¡ |  ¡ S )Nz{:.9f})rG   r   r/   r   r   Úconvert_to_arabic©r'   Úvaluer(   r(   r)   ÚconvertÊ   s   zNum2Word_AR.convertc           	      C   sP  t | jƒ}|t dƒkrdS |  | jdt dƒ¡}d}d}|t dƒkr§tt t|ƒƒt tdƒƒ ƒ}tt |ƒt dƒ ƒ}|  ||t t|ƒƒ¡}|dur�|dkr—|durVd d|¡}|dkr—|d d	krŽd
|  krjdkrvn n
d | j| |¡}n!|dur„d | j	| |¡}nd | j
| |¡}n	d | j
| |¡}d ||¡}|d	7 }|t dƒks!d}| jdur¶|d | j¡7 }||7 }| jdk�r#t| jd ƒ}|dkrÓ|| jd 7 }nP|d	krß|| jd 7 }nD|dkrø| jdkrð|| jd	 7 }n3|| jd 7 }n+d
|  k�rdk�rn n|| jd 7 }nd|  k�rdk�r#n n|| jd
 7 }| jdk�r5|d | j¡7 }||7 }| jdk�r˜|d7 }t| jd ƒ}|dk�rS|| jd 7 }nE|d	k�r`|| jd 7 }n8|dk�rm|| jd	 7 }n+d
|  k�rydk�rƒn n|| jd 7 }nd|  k�r�dk�r˜n n|| jd
 7 }| jdu�r¦|d | j¡7 }|S )Nr   u   صفرr?   r   iè  u   {} و {}r   rC   r   é   r	   z{} {}z{} é   éc   z {} ú z {})r   r   rN   r   r3   r2   r   rG   r&   r%   r$   r   r   r   r   r   r   )	r'   Útemp_numberÚdecimal_stringrL   ÚgroupÚnumber_to_processÚgroup_descriptionÚformatted_numberÚremaining100r(   r(   r)   rO   Ï   s    
þÿ
þÿ
ÿþ
ÿÿà!




zNum2Word_AR.convert_to_arabicc                 C   s   || j kr
t| jƒ‚|S r+   )Úmax_numÚOverflowErrorÚerrmsg_too_big)r'   r   r(   r(   r)   Úvalidate_number(  s   

zNum2Word_AR.validate_numberc                 C   sX   |du rt d | _t d | _d S |du r td | _td | _d S td | _td | _d S )NÚEGPr   r   ÚKWD)ÚCURRENCY_EGPr   r   ÚCURRENCY_KWDr   )r'   Úcurrencyr(   r(   r)   Úset_currency_prefer-  s   


zNum2Word_AR.set_currency_preferÚSRr   c                 C   s4   |   |¡ d| _d| _t| _|| _|| _| j|d�S )NFr   ©rQ   )rg   r   r   r   r   r   r   rR   )r'   rQ   rf   ÚprefixÚsuffixr(   r(   r)   Úto_currency8  s   
zNum2Word_AR.to_currencyc                 C   s^   |dkrd  | j| ¡S |dk rd| _nd| _d| _d| _|| _d| _d  |  t|ƒ¡ 	¡ ¡S )Né   rD   rC   TF©r   r   r   r   r   )
rG   r   r   r   r   r   r   rR   ÚabsÚstrip)r'   r   rj   r(   r(   r)   Ú
to_ordinalA  s   zNum2Word_AR.to_ordinalc                 C   s   |   |¡}|  |¡S r+   )ra   Úto_cardinalrP   r(   r(   r)   Úto_yearN  s   

zNum2Word_AR.to_yearc                 C   s   |   |¡ ¡ S r+   )rq   rp   rP   r(   r(   r)   Úto_ordinal_numR  s   zNum2Word_AR.to_ordinal_numc                 C   sV   |   |¡}d}|dk rd}d| _d| _d| _d| _d| _t| _|| jt	|ƒd� 
¡  S )Nr   r   u	   سالب ú,rn   ri   )ra   r   r   r   r   r   r   r   rR   ro   rp   )r'   r   Úminusr(   r(   r)   rr   U  s   
zNum2Word_AR.to_cardinalN)rh   r   r   )r   )Ú__name__Ú
__module__Ú__qualname__r`   r^   r*   r/   r,   r5   rB   rN   rR   rO   ra   rg   rl   rq   rs   rt   rr   r(   r(   r(   r)   r   (   s$    7
3Y

	r   )r0   Údecimalr   Úmathr   r   rd   re   r   Úobjectr   r(   r(   r(   r)   Ú<module>   s   ÿÿÿ	