
    9%i!                         d dl mZ ddlmZ ddlmZ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ddddddd
Zddddd d!d"d#d$Zd%d&d'd(d)d*d+d,d-d	Zd.d/d0d1d2d3d4d5d6d7d8d9Z G d: d;e      Zy<)=    )unicode_literals   )Num2Word_Base)parse_currency_partsprefix_currency)
get_digitssplitbyx)nula)jedanjedna)dvadve)trir   )   četirir   )petr   )   šestr   )sedamr   )osamr   )devetr   )	r                        	   )deset)	jedanaest)dvanaest)trinaest)u
   četrnaest)petnaest)u	   šesnaest)
sedamnaest)	osamnaest)
devetnaest)
r   r   r   r   r   r   r   r   r   r   )dvadeset)trideset)u
   četrdeset)pedeset)u	   šezdeset)
sedamdeset)	osamdeset)	devedeset)r   r   r   r   r   r   r   r   )sto)dvesta)trista)u	   četristo)petsto)u   šesto)sedamsto)osamsto)devetsto) r3   r3   F)hiljadahiljader4   T)milionmilionar7   F)bilionbilionar9   F)triliontrilionar;   F)
kvadrilionkvadrilionar=   F)
kvintilionkvintilionar?   F)
sekstilionsekstilionarA   F)	septilion
septilionarC   F)oktilion	oktilionarE   F)nonilion	nonilionarG   F)r   r   r   r   r   r   r   r   r   r   
   c                   L    e Zd ZddddZd ZddZd Zd Zd	 Zdd
Z		 	 ddZ
y)Num2Word_SR))rubljarubljerubljiT)kopejkakopejkekopejkiT))evroevrarR   F)centcentacentiF))dinardinararW   F)paraparerX   T)RUBEURRSDc                      d| _         d| _        y )Nminuszapeta)negword	pointword)selfs    k/var/www/html/navyabakers_fullstack/navyabakers_prod/venv/lib/python3.12/site-packages/num2words/lang_SR.pysetupzNum2Word_SR.setupi   s    !    c                    t        |      j                  dd      }d|v r|j                  d      \  }}t        |      t        |j	                  d            z
  }t
        d   dz   |z  | j                  t        |      |      z   }| j                  t        |      |      d| j                  d|S | j                  t        |      |      S )N,.0r    )	strreplacesplitlenlstripZERO	_int2wordintra   )rb   numberfemininenleftrightleading_zero_countdecimal_parts           rc   to_cardinalzNum2Word_SR.to_cardinalm   s    KS)!8''#,KD%!$Uc%,,s2C.D!D!!Ws].@@ NN3u:x@AL s4y(3  >>#a&(33re   c                     |dz  dk  s|dz  dkD  r.|dz  dk(  rd}||   S d|dz  cxk  rdk  r
n nd}||   S d}||   S d}||   S )Nd   rH      r   r   r   r    )rb   rs   formsforms       rc   	pluralizezNum2Word_SR.pluralize|   s~    C<"r 1{a T{ Vb[$1$
 T{  T{ DT{re   c                     t               )N)NotImplementedError)rb   rs   s     rc   
to_ordinalzNum2Word_SR.to_ordinal   s    !##re   c                 L    | j                  || j                  |   d   d         S )Nr   )rq   CURRENCY_FORMS)rb   rs   currencys      rc   _cents_verbosezNum2Word_SR._cents_verbose   s.    ~~)!,R0
 	
re   c                    |dk  r5dj                  | j                  | j                  t        |            g      S |dk(  r	t        d   S g }t        t        t        |      d            }t        |      }|D ]  }|dz  }t        |      \  }}}	|	dkD  r|j                  t        |	   d          |dkD  r|j                  t        |   d          |dk(  r|j                  t        |   d          n;|dkD  r6|xs t        |   d   }
t        |
      }|j                  t         |   |          |dkD  s|dk7  s|j                  | j#                  |t        |                 dj                  |      S )Nr   rj   r   r   r   )joinr`   rq   absrp   listr	   rk   rn   r   appendHUNDREDSTWENTIESTENSSCALErr   ONESr   )rb   rs   rt   wordschunks	chunk_lenchunkdigit_right	digit_mid
digit_leftis_feminine
gender_idxs               rc   rq   zNum2Word_SR._int2word   s\   A:88T\\4>>#f++FGHHQ;7Nhs6{A./K	 	FENI1;E1B.KJA~Xj1!451}Xi034A~T+.q12q&>%	*:2*> -
%j1 1}!T^^E53CDE)	F, xxre   c                    t        |      \  }}}	 | j                  |   \  }	}
|r'|| j                  v rt        | j                  |   |	      }	|rd| j                  z  nd}|r| j                  ||      n| j                  ||      }|| j                  ||	d         d| j                  ||	      |d|d| j                  ||
      	S # t        $ r' t        d|d| j                  j
                  d      w xY w)	a*  
        Args:
            val: Numeric value
            currency (str): Currency code
            cents (bool): Verbose cents
            separator (str): Cent separator
            adjective (bool): Prefix currency name with adjective
        Returns:
            str: Formatted string

        zCurrency code "z" not implemented for ""z%s r3   r   )rt   rj   )r   r   KeyErrorr   	__class____name__CURRENCY_ADJECTIVESr   r`   r   _cents_terserz   r   )rb   valr   cents	separator	adjectiverv   rw   is_negativecr1cr2	minus_str	cents_strs                rc   to_currencyzNum2Word_SR.to_currency   s    $8#< e[	5**84HC T%=%==!((2C
 -8EDLL(R	 ''x8++E8< 	 TCG4NN4%NN5#&
 	
  	5%4>>2245 5	5s   C
 
0C:N)F)r[   Trg   F)r   
__module____qualname__r   rd   rz   r   r   r   rq   r   r~   re   rc   rJ   rJ   Y   sF    


N"4
$
 D FI#(
re   rJ   N)
__future__r   baser   r   r   r   utilsr   r	   rp   r   r   r   r   r   rJ   r~   re   rc   <module>r      s   $ (  ; ' 
  	 
 ...1:::745	B
- B
re   