o
    ph?-                  
   @   sP  d dl mZmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
mZ dZdd	d
ddddddd	ZddddZdddddddddZdd d!d"Zd#d$d%d"Zi dd&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJZdKZdLZedMZ	O	OdWdPdQZ	O	OdXdRdSZG dTdU dUeZdVS )Y    )print_functionunicode_literals   )Num2Word_Base)to_s)parse_currency_parts)
get_digitssplitbyx)u   אפס)   אחת   אחדr
   r   u   ראשונהu
   ראשוןu   ראשונותu   ראשונים)u
   שתיים
   שנייםu   שתי   שניu
   שנייהr   u
   שניותr   )   שלושu
   שלושהr   u
   שלושתu   שלישיתu
   שלישיu   שלישיותu   שלישיים)   ארבעu
   ארבעהr   u
   ארבעתu   רביעיתu
   רביעיu   רביעיותu   רביעיים)   חמשu
   חמישהr   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   תשעהr   u   תשעתu   תשיעיתu
   תשיעיu   תשיעיותu   תשיעיים)	r                        	   )   עשר   עשרהr   u   עשרתu   עשיריתu
   עשיריu   עשיריותu   עשיריים)r   r   )u   שתים עשרהu   שנים עשר)r   r   r   )u
   עשרים)u   שלושים)u   ארבעים)u   חמישים)u
   שישים)u
   שבעים)u   שמונים)u
   תשעים)r   r   r   r   r   r   r   r   )u   מאהu   מאת)u   מאתיים)u   מאות)r   r   r   )u   אלף)u   אלפיים)u
   אלפיםu   אלפי)u   מיליוןu   מיליוניr   )u   מיליארדu   מיליארדיr   )u   טריליוןu   טריליוניr   )u   קוודריליוןu   קוודריליוניr   )u   קווינטיליוןu   קווינטיליוניr   )u   סקסטיליוןu   סקסטיליוניr   )u   ספטיליוןu   ספטיליוניr   )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   הC1000000000000000000000000000000000000000000000000000000000000000000fFc                 C   s  g }t |\}}	}
|
dkr<|r| dkr|t|
 d  n|
dkr+|t|
 d  n|t|
 d d td d   |	dkrI|t|	 d  |dksQ|dkr|dkpX|dk}d|o_|dk d	|  d|  | dk  }|	dkr|dkr|t| ||   n/|dkr|t| |  n!|t| | d td |   n|dkr|t| ||   |o| d
|  dk}|dkr|dkr|d d td d  |d< |S |dkr|td d d td |   |S |dkr|t| d  |S |t| d d td |   |S |dkrt|dkr(|d d t|d  |  |d< |S |dkrF|td dd|   d t|d  |   |S |dkrX|t|d  d  |S |t| dd|pe|dk   d t|d  |   |S )Nr   d   r   r    r   r    mr   i  )r   appendHUNDREDSONESTWENTIESTENS	THOUSANDSLARGE)nixgender	constructordinalpluralwordsn1n2n3malecopconstruct_last rE   ]/var/www/html/Testing_prj/Navya-Bakers/venv/lib/python3.10/site-packages/num2words/lang_HE.py
chunk2wordm   sd   "($
""

 


$rG   c           
      C   s   | t | ksJ |r|rJ |s|s|rJ | tkr"td| tf | dkr2|r.ttd  S td S g }ttt| d}t|}|D ]&}	|d8 }|	dkrNqC|t	| ||	||||d7 }t|dkrit
|d  |d< qC|rz| dksr|rzt|d  |d< d|S )	Nzabs(%s) must be less than %s.r   r   r   )r:   r;   r<   r=   r/   r    r-   )intMAXVALOverflowErrorDEFZEROlistr	   strlenrG   ANDjoin)
r7   r:   r;   r<   definiter=   r>   chunksr8   r9   rE   rE   rF   int2word   s2   
rT   c                       s   e Zd ZddddZddddZd fdd		Z fd
dZdddZdddZdddZ	d ddZ
ddedddfddZ  ZS )!Num2Word_HE))u   שקלu
   שקלים)u
   אגורהu   אגורות))   אירוrV   u   סנטu
   סנטים))u   דולרu   דולריםrW   )ILSEURUSD)r.   r+   )r.   r.   -c                    s   t t|   || _d S )N)superrU   __init__makaf)selfr^   	__class__rE   rF   r]      s   
zNum2Word_HE.__init__c                    s$   t t|   d| _d| _t| _d S )Nu
   מינוסu
   נקודה)r\   rU   setupnegword	pointwordrI   )r_   r`   rE   rF   rb      s   
zNum2Word_HE.setupr+   c                 C   s   zt ||k W n ttttfy   t| j| w | t |\}}t|}d| jt	|  | }| j
||dg}| jrG|| | j t| jD ]}t|| }|t| 
| qLd|S )N0r:   r-   )float
ValueError	TypeErrorAssertionErrorAttributeErrorerrmsg_nonnumfloat2tuplerN   	precisionrO   to_cardinalr0   titlerd   rangerH   r   rQ   )r_   valuer:   prepostoutr8   currrE   rE   rF   to_cardinal_float   s   
zNum2Word_HE.to_cardinal_floatFc              
   C   s   z
t ||ks	J W n tttfy   | j||d Y S w d}|dk r/t|}d| j  }|| jkr>t	| j
|| jf |tt |||d S )Nrf    r   %s r:   r;   )rH   rh   ri   rj   rw   absrc   striprI   rJ   errmsg_toobigrT   )r_   rr   r:   r;   ru   rE   rE   rF   ro      s   
zNum2Word_HE.to_cardinalr.   c                 C   s>   |  | || jkrt| j|| jf tt||d||dS )NT)r:   r<   rR   r=   )verify_ordinalrI   rJ   r}   rT   rH   )r_   rr   r:   rR   r=   rE   rE   rF   
to_ordinal  s   

zNum2Word_HE.to_ordinalNc                 C   sH   |t |ksJ d}|dks|r t|dks|dks|dkr d}|| S )Nr   r    r   rX   )rH   r{   )r_   r7   formscurrencyprefer_singularformrE   rE   rF   	pluralize  s   zNum2Word_HE.pluralizerX   Tc                 C   sr  t |\}}	}
|dsd| }z	| j| \}}W n ty*   td|| jjf w |
r4d| j  nd}z	| j	| \}}W n tyL   d }}Y nw | j
|||dkd}|rd| j
|	||	dkd}n| |	|}| }|r{|d tkr{|| j7 }||| j||||d||| j|	|||dg}|d	kr|d |d	 |d	< |d< |	d	kr|d
 |d |d< |d
< dt| S )Nr-   z+Currency code "%s" not implemented for "%s"ry   rx   r   rz   r/   )r   r   r   r   r   z%s%s %s%s%s %s)r   
startswithCURRENCY_FORMSKeyErrorNotImplementedErrorra   __name__rc   r|   CURRENCY_GENDERSro   _cents_tersesplitrP   r^   r   tuple)r_   valr   cents	separator	adjectiver   prefer_singular_centsleftrightis_negativecr1cr2	minus_strgender1gender2	money_str	cents_str	sep_partsstringsrE   rE   rF   to_currency  sZ   





zNum2Word_HE.to_currency)r[   )r+   )r+   F)r.   FF)NF)r   
__module____qualname__r   r   r]   rb   rw   ro   r   r   rP   r   __classcell__rE   rE   r`   rF   rU      s&    



	rU   N)r+   FFF)r+   FFFF)
__future__r   r   baser   compatr   r   r   utilsr   r	   rL   r2   r4   r3   r1   r5   r6   rP   rK   rH   rI   rG   rT   rU   rE   rE   rE   rF   <module>   s   	

8
$