o
    ph                     @   s"   d dl mZmZ G dd dZdS )    )print_functionunicode_literalsc                   @   s   e Zd Zg dgdgdgdgdgdgdgdgd	gd

ZddddddddddddZd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d0d1 Zd2d3 Zd4d5 Zd6S )7Num2Word_IDsatuduatigaempatlimaenamtujuhdelapansembilan)
r                           	   ribujutamiliartriliun
kuadriliun
kuantiliun
sekstiliun	septiliunoktiliunnoniliundesiliun)r   r   r                        !   z$Cannot treat float number as ordinalz'Cannot treat negative number as ordinalz7Number is too large to convert to words (abs(%s) > %s).
   $   c                 C   s   t |dS )N.)strsplitselfnumber r2   ]/var/www/html/Testing_prj/Navya-Bakers/venv/lib/python3.10/site-packages/num2words/lang_ID.pysplit_by_koma2      zNum2Word_ID.split_by_komac                 C   s~   d}t |}|dk r||ff7 }|S |d }|dkr&|d| f}||f7 }t||dD ]}|||d  ff}||7 }q,|S )z
        starting here, it groups the number by three from the tail
        '1234567' -> (('1',),('234',),('567',))
        :param number:str
        :rtype:tuple
        r2   r   r   )lenrange)r0   r1   blockslengthlen_of_first_blockfirst_blocki
next_blockr2   r2   r3   
split_by_35   s   

zNum2Word_ID.split_by_3c                 C   s   d}|d }t |d dkr"|d dkrdg}n.| jt|d  }n$t |d dkr2| |d }n| |d d | |d dd  }||d |ff7 }|dd D ] }| |d d | |d dd  }||f7 }||f7 }qU|S )	z
        it adds the list of spelling to the blocks
        (
        ('1',),('034',)) -> (('1',['satu']),('234',['tiga', 'puluh', 'empat'])
        )
        :param blocks: tuple
        :rtype: tuple
        r2   r   r   0nolr   r   N)r6   BASEintpuluhratus)r0   r8   word_blocksr;   spellingblockr2   r2   r3   spellN   s    	&(
zNum2Word_ID.spellc                 C   s.   |dkrdgS |dkrg S | j t| dg S )N1seratusr?   rD   rA   rB   r/   r2   r2   r3   rD   n   s
   zNum2Word_ID.ratusc                 C   s   |d dkr$|d dkrdgS |d dkrdgS | j t|d  dg S |d dkr3| j t|d  S | j t|d  dg | j t|d   S )	Nr   rI   r   r?   sepuluhsebelasbelasrC   rK   r/   r2   r2   r3   rC   w   s   zNum2Word_ID.puluhc                 C   sF   g }|D ]}|dkr|dg7 }q|| j t| 7 }qdddg| S )Nr?   r@     koma)rA   rB   join)r0   
float_part	word_listnr2   r2   r3   spell_float   s   
zNum2Word_ID.spell_floatc                 C   s   g }t |d }|d f}d}|dkr"|d d dkr"|dg7 }d}t||d dD ]#}||| d 7 }|| d s;q*||krA n|| j|| d  g7 }q*d|| S )zw
        join the words by first join lists in the tuple
        :param word_blocks: tuple
        :rtype: str
        r   r   rI   seribur   rO   )r6   r7   TENS_TOrR   )r0   rE   rS   rT   r9   r;   startr<   r2   r2   r3   rR      s   

zNum2Word_ID.joinc              	   C   sz   || j krt| j|| j f d}|dk rd}d}| t|}t|dkr-| |d }|| | | 	|d | S )NrP   r   zmin r   r   )
MAXVALOverflowErrorerrmsg_toobigr4   absr6   rV   rR   rH   r>   )r0   r1   minus
float_wordrU   r2   r2   r3   to_cardinal   s   
 zNum2Word_ID.to_cardinalc                 C   s(   |  | | |}|dkrdS d| S )Nr   pertamake)verify_ordinalr`   )r0   r1   out_wordr2   r2   r3   
to_ordinal   s
   

zNum2Word_ID.to_ordinalc                 C   s   |  | dt| S )Nzke-)rc   r-   r/   r2   r2   r3   to_ordinal_num   s   
zNum2Word_ID.to_ordinal_numc                 C   s   |  |d S )Nz rupiahr`   r0   valuer2   r2   r3   to_currency   r5   zNum2Word_ID.to_currencyc                 C   s
   |  |S Nrg   rh   r2   r2   r3   to_year   s   
zNum2Word_ID.to_yearc                 C   s8   |t |kst| j| t||kst| j| d S rk   )rB   	TypeErrorerrmsg_floatordr]   errmsg_negordrh   r2   r2   r3   rc      s
   zNum2Word_ID.verify_ordinalN)__name__
__module____qualname__rA   rX   rn   ro   r\   rZ   r4   r>   rH   rD   rC   rV   rR   r`   re   rf   rj   rl   rc   r2   r2   r2   r3   r      sR     	
r   N)
__future__r   r   r   r2   r2   r2   r3   <module>   s   