o
    |¨Êhô  ã                   @   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 ordinalz	Too largeé
   é$   c                 C   s   t |ƒ d¡S )NÚ.)ÚstrÚsplit©ÚselfÚnumber© r2   úC/var/www/html/env/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   )
Úmax_numÚ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   