
    9%iH                     ~    d dl Z d dlZd dlZd dl mZ d dlmZ ddlmZ ddgZdd	gZd
dgZ	d
dgZ
g dZ G d de      Zy)    N)Decimal)floor   )Num2Word_Base)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   خمسة عشرu   ستة عشرu   سبعة عشرu   ثمانية عشرu   تسعة عشرc                        e Zd ZdZddz  Z fdZd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd ZddZddZd Zd Zd Z xZS )Num2Word_ARzabs(%s) must be less than %s.
   3   c                    t         |           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| _        t3        | j.                        t3        | j,                        k(  sJ t3        | j0                        t3        | j,                        k(  sJ t3        | j(                        t3        | j*                        k(  sJ y )Nr   r
      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   سكستيليونا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   كوينتينيليونان)r   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   كوينتينيليوناً)r
   u   آلافu   ملايينu   ملياراتu   تريليوناتu   كوادريليوناتu   كوينتليوناتu   سكستيليوناتu   سبتيليوناتu   أوكتيليوناتu   نونيليوناتu   ديسيليوناتu   أندسيليوناتu   دوديسيليوناتu   تريديسيليوناتu   كوادريسيليوناتu   كوينتينيليونات)super__init__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len)self	__class__s    k/var/www/html/navyabakers_fullstack/navyabakers_prod/venv/lib/python3.12/site-packages/num2words/lang_AR.pyr   zNum2Word_AR.__init__2   s7    " "(^ +A*.'&+#%#





#


$
 #
 4++,D4D4D0EEEE4**+s43C3C/DDDD4**+s4??/CCCC    c                 @    || _         || _        | j                          y N)r   r   !extract_integer_and_decimal_parts)r.   arabic_prefix_textarabic_suffix_texts      r0   number_to_arabiczNum2Word_AR.number_to_arabicy   s     2 2..0r1   c                     t        j                  dt        | j                              }t	        |d         | _        t        |      dkD  r#t	        | j                  |d               | _        y d| _        y )Nz\.r   r   )	resplitstrr   intr   r-   decimal_valuer   )r.   splitss     r0   r4   z-Num2Word_AR.extract_integer_and_decimal_parts~   sZ    %T[[!12 ^v;?!$T%7%7q	%B!CD!"Dr1   c                 
   | j                   t        |      urit        |      }|}t        d| j                   |z
        D ]  }|dz  }	 |}t        |      | j                   k  rt        |      }n| j                   }|d| }|S |}|S )Nr   0)r   r-   range)r.   decimal_partdecimal_part_lengthdecimal_part_builderidecresults          r0   r=   zNum2Word_AR.decimal_value   s    S%66"%l"3#/ 1d003FFG ,$+$,/L< D$6$66,'((!!S)F  "F
 r1   c                 6   |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 )Nr   )r   r$   r<   r#   r    )r.   digitgroup_levels      r0   digit_feminine_statusz!Num2Word_AR.digit_feminine_status   s    "....s5z:: s5z22A**..s5z::s5z22??3u:..r1   c                    t        |      t        d      z  }t        |      t        d      z  }d}t        |      dkD  rh|dk(  r-t        |      dk(  rdj                  | j                  d         }n6dj                  | j                  t        |               }|dk7  r
|dk7  r|dz  }|dkD  r|dk  rct        |      t        | j                        k  sJ |dk(  rt        |      dk(  r|dkD  rt        t        j                  | j                              }| j                  dkD  rF|d	z  dk(  r>| j                  dd|z  z  k(  r)dj                  | j                  t        |               }|S dj                  | j                  t        |               }|S |d
k(  r|dkD  r|dk(  r|dz  }|S |d
k(  s|dk(  r|dk(  s|dk(  r|dk(  r|dk(  r|dz  }|S |d
k(  r"|dkD  r|| j                  t        |         z  }|S || j                  t        |      |      z  }|S |dz  }|dz  dz
  }|dkD  r|| j                  ||      z  }|dk7  r
|dk7  r|dz  }|| j                  t        |         z  }|S )Nd   r
   r   r   {}u    و    r      r   rI   )r   r<   formatr(   r'   r-   r)   mathlog10r   r*   rL   r&   )	r.   group_numberrK   remaining_numbertenshundredsret_valpowoness	            r0   process_arabic_groupz Num2Word_AR.process_arabic_group   s   |$ws|3<(73<7x=1qyS]a/++d&=&=a&@A++d&9&9#h-&HIb=TQYv%G!8by ;'#doo*>>>>19X!!3adjj););<=C))B.37a< ..!rSy/A"&++ 33C4DE#G> 9 #'++ OOC,<=#?8 1 qy[1_Q  2* ) !)tqy'1,r0A$M.>!.C2   {Q4#3#3C4D#EE   4#=#=c$i>I$K K  byr	Q!8t99$LLGb=TQYv%G4??3t955r1   c                     |dk\  r|S | S )Nr    r.   r   s     r0   abszNum2Word_AR.abs   s    1v16'1r1   c                     t        |      }||k(  rt        |      S t        ||z
  dz        }t        |      dz   dj                  |      j	                  d      z   S )Ni ʚ;.z{:09d}r@   )r<   r;   roundrR   rstrip)r.   r   integerdecimals       r0   to_strzNum2Word_AR.to_str   sY    f+fw<')U237|c!HOOG$<$C$CC$HHHr1   c                     | j                  |      | _        | j                  | j                  | j                         | j                         S r3   )rg   r   r7   r   r   convert_to_arabicr.   values     r0   convertzNum2Word_AR.convert   s=    kk%(d33T5J5JK%%''r1   c           	         t        | j                        }|t        d      k(  ry| j                  | j                  dt        d            }d}d}|t        d      kD  rwt        t	        |            }	 t        |t        t	        d            z        }t        |t        d      z        }| j                  ||t        t        |                  }|dk7  r|dkD  r|dk7  rdj                  d|      }|dk7  r|dk7  r|t        | j                        k  sJ |d	z  dk7  rsd
|cxk  rdk  r#n n dj                  | j                   |   |      }nd|dk7  r dj                  | j"                  |   |      }n?dj                  | j                  |   |      }ndj                  | j                  |   |      }dj                  ||      }|dz  }|t        d      kD  rwd}| j$                  dk7  r|dj                  | j$                        z  }||z  }| j&                  dk7  rt        | j&                  d	z        }	|	dk(  r|| j(                  d   z  }n|	dk(  r|| j(                  d   z  }n{|	dk(  r5| j&                  dk(  r|| j(                  d   z  }nT|| j(                  d   z  }nAd
|	cxk  rdk  rn n|| j(                  d   z  }n d|	cxk  rdk  rn n|| j(                  d
   z  }| j                  dk7  r#|dj                  | j*                        z  }||z  }| j                  dk7  r|dz  }t        | j                  d	z        }	|	dk(  r|| j,                  d   z  }nq|	dk(  r|| j,                  d   z  }nY|	dk(  r|| j,                  d   z  }nAd
|	cxk  rdk  rn n|| j,                  d   z  }n d|	cxk  rdk  rn n|| j,                  d
   z  }| j.                  dk7  r|dj                  | j.                        z  }|S # t        j                  $ r^ t        |j                         j                        t        j                         _        t        |t        t	        d            z        }Y w xY w)Nr   u   صفرrI   r
   i  u   {}و {}r   r   rN   rQ   r   z{} {}z{}    c   z {}  z {})r   r   r\   r   r;   r<   rf   InvalidOperationr-   as_tupledigits
getcontextprecr   rR   r*   r,   r+   r   r   r   r!   r   r   )
r.   temp_numberdecimal_stringrY   grouptemp_number_decnumber_to_processgroup_descriptionformatted_numberremaining100s
             r0   ri   zNum2Word_AR.convert_to_arabic   s   dkk*'!*$2243E3E353:1:? GAJ&%c+&67ON$''#d):L(L$M! o=>K ))*;*/*1%2D*EG  !B&19"}"+"2"22w"?(A-2Cq2H
  %s4+;+;'<<<<,s2a7 $5;;*1..$($;$;E$BG+M $+b=.5nn(,(@(@(G(//1G /6nn(,(8(8(?/JG '.nnT5E5Ee5L5<'>G!..):GDQJEY GAJ&Z   B&T-B-B CCG#"t11C78Lq  D$6$6q$99 " D$6$6q$99 "%%*$(:(:1(==$$(:(:1(==$l(b( D$6$6q$99 |)r) D$6$6q$99 "dnn ==."#t11C78Lq  D$9$9!$<< " D$9$9!$<< " D$9$9!$<< l(b( D$9$9!$<< |)r) D$9$9!$<<   B&T-B-B CCe ++ N,/#,,.55-""$) %('#d):L(L$M!	Ns   3 O1 1A-Q"!Q"c                 l    || j                   k\  r$t        | j                  || j                   fz        |S r3   )MAXVALOverflowErrorerrmsg_toobigr_   s     r0   validate_numberzNum2Word_AR.validate_number_  s2    T[[  2 2fdkk5J JKKr1   c                 @   |dk(  r$t         d   | _        t         d   | _        d| _        y |dk(  r$t        d   | _        t        d   | _        d| _        y |dk(  r$t
        d   | _        t
        d   | _        d| _        y t        d   | _        t        d   | _        d| _        y )NTNDr   r   rQ   EGPr   KWD)CURRENCY_TNDr   r   r   CURRENCY_EGPCURRENCY_KWDr   )r.   currencys     r0   set_currency_preferzNum2Word_AR.set_currency_preferd  s    u!-aD$0OD!!"D!-aD$0OD!!"D!-aD$0OD!!"D!,QD$/ND!!"Dr1   c                     | j                  |       d| _        d| _        t        | _        || _        || _        | j                  |      S )NFr   rk   )r   r    r!   r"   r#   r   r   rl   )r.   rk   r   prefixsuffixs        r0   to_currencyzNum2Word_AR.to_currencyv  sG      *&+#% & &||%|((r1   c                 "   |dk  rdj                  | j                  |         S |dk  rd| _        nd| _        d| _        d| _        || _        d| _        dj                  | j                  | j                  |            j                               S )N   rO   rN   TFr
   r
   r
   r
   r
   )
rR   r%   r    r   r   r   r   rl   r`   strip)r.   r   r   s      r0   
to_ordinalzNum2Word_AR.to_ordinal  s    R<;;t11&9::C<*.D'*/D' 0- & "{{4<<(89??ABBr1   c                 F    | j                  |      }| j                  |      S r3   )r   to_cardinalrj   s     r0   to_yearzNum2Word_AR.to_year  s#    $$U+&&r1   c                 @    | j                  |      j                         S r3   )r   r   rj   s     r0   to_ordinal_numzNum2Word_AR.to_ordinal_num  s    u%++--r1   c                    d| _         | j                  |      }d}|dk  rd}d| _        d| _        d| _        d| _        d| _        t        | _        || j                  | j                  |            j                         z   S )NFr
   r   u	   سالب ,r   r   )r    r   r!   r   r   r   r   r"   r#   rl   r`   r   )r.   r   minuss      r0   r   zNum2Word_AR.to_cardinal  s    &+#%%f-A:E 0- " "%t||$((6*:|;AACCCr1   )SRr
   r
   )r
   )__name__
__module____qualname__r   r   r   r7   r4   r=   rL   r\   r`   rg   rl   ri   r   r   r   r   r   r   r   __classcell__)r/   s   @r0   r   r   .   so    3MVFEDN1
#./7v2I(
c J
#$)C'.Dr1   r   )rf   rS   r9   r   r   baser   r   r   r   r   r"   r   r^   r1   r0   <module>r      sg   (   	   KEGL>@T<>TLNqD- qDr1   