o
    |¨ÊhW  ã                   @   sn   d dl mZmZmZ ddlmZ ddlmZmZ ddl	m
Z
mZ ddd	„Zd
d„ Zg d¢ZG dd„ deƒZdS )é    )ÚdivisionÚprint_functionÚunicode_literalsé   )ÚNum2Word_Base)ÚstrtypeÚto_s)Úparse_currency_partsÚprefix_currencyFNc                 C   sZ   |r| d } n| d } t | tƒs+t| ƒt|ptƒ ƒ@ }t|ƒdkr'| ¡ } | S | d } | S )zNSelect the correct text from the Japanese number, reading and
    alternativesr   r   )Ú
isinstancer   ÚsetÚlenÚpop)ÚtextÚreadingÚpreferÚcommon© r   úC/var/www/html/env/lib/python3.10/site-packages/num2words/lang_JA.pyÚselect_text   s   

þr   c                 C   s  | \}}|\}}||krt ‚|dkr+| dkrd}nc| dkr"d}d}nZ| dkr*d}d}nQ|d	kr=| dkr6d
}nF| dkr<d}n?|dkrV| dkrHd}n4| dkrOd}n-| dkrUd}n&|dkr|| dkrad}n| dkrhd}n| dkrod}n| dkrvd}n| dkr|d}d||f || fS )z?Merge lpair < rpair while applying semi-irregular rendaku rules)õ	   ひゃくéd   )õ   さんé   u	   びゃく)õ   ろくé   u   ろっu	   ぴゃく)õ   はちé   u   はっ)õ   せんéè  u   ぜん)õ	   ちょうl    J)£)õ   いちr   u   いっ)õ	   じゅうé
   u	   じゅっ)õ   けいl     ‚_Éu	   ひゃっú%s%s)Ú
ValueError)ÚlpairÚrpairÚltextÚlnumÚrtextÚrnumr   r   r   Úrendaku_merge_pairs-   sP   €€€r-   )÷)i…  )u   大化u	   たいか)iŠ  )u   白雉u	   はくち)i®  )u   朱鳥u   しゅちょう)i½  )u   大宝u   たいほう)iÀ  )u   慶雲u   けいうん)iÄ  )u   和銅u	   わどう)iË  )u   霊亀u	   れいき)iÍ  )u   養老u   ようろう)iÔ  )u   神亀u	   じんき)iÙ  )u   天平u   てんぴょう)éí  )u   天平感宝u   てんぴょうかんぽう)r.   )u   天平勝宝u   てんぴょうしょうほう)iõ  )u   天平宝字u   てんぴょうじょうじ)iý  )u   天平神護u   てんぴょうじんご)iÿ  )u   神護景雲u   じんごけいうん)i  )u   宝亀u	   ほうき)i  )u   天応u   てんおう)i  )u   延暦u   えんりゃく)i&  )u   大同u   だいどう)i*  )u   弘仁u   こうにん)i7  )u   天長u   てんちょう)iB  )u   承和õ   じょうわ)iP  )u   嘉祥u   かしょう)iS  )u   仁寿u   にんじゅ)iW  )u   斉衡u   さいこう)iY  )u   天安u   てんあん)i[  )u   貞観u   じょうがん)im  )u   元慶u   がんぎょう)iu  )u   仁和u	   にんな)iy  )u   寛平u   かんぴょう)i‚  )u   昌泰u   しょうたい)i…  )u   延喜u	   えんぎ)i›  )u   延長u   えんちょう)i£  )u   承平u   じょうへい)iª  )u   天慶u   てんぎょう)i³  )u   天暦u   てんりゃく)i½  )u   天徳u   てんとく)iÁ  )u   応和u	   おうわ)iÄ  )u   康保u   こうほう)iÈ  )u   安和u	   あんな)iÊ  )u   天禄u   てんろく)iÎ  )u   天延u   てんえん)iÐ  )u   貞元õ   じょうげん)iÓ  )u   天元u   てんげん)i×  )u   永観u   えいかん)iÙ  )u   寛和u	   かんな)iÛ  )u   永延u   えいえん)iÝ  )u   永祚u	   えいそ)iÞ  )u   正暦u   しょうりゃく)iã  )u   長徳u   ちょうとく)iç  )u   長保u   ちょうほう)iì  )u   寛弘u   かんこう)iõ  )u   長和u   ちょうわ)iù  )u   寛仁u   かんにん)iý  )u   治安u	   じあん)i   )u   万寿u   まんじゅ)i  )u   長元u   ちょうげん)i  )u   長暦u   ちょうりゃく)i  )u   長久u   ちょうきゅう)i  )u   寛徳u   かんとく)i  )u   永承õ   えいしょう)i  )u   天喜u	   てんぎ)i"  )u   康平u   こうへい)i)  )u   治暦u   じりゃく)i-  )u   延久u   えんきゅう)i2  )u   承保u   じょうほう)i6  )u   承暦u   じょうりゃく)i9  )u   永保u   えいほう)i<  )u   応徳u   おうとく)i?  )u   寛治u	   かんじ)iG  )u   嘉保u	   かほう)iI  )u   永長u   えいちょう)iJ  )u   承徳u   じょうとく)iK  )u   康和õ	   こうわ)iP  )u   長治u   ちょうじ)iR  )u   嘉承u   かじょう)iT  )u   天仁u   てんにん)iV  )u   天永u   てんねい)iY  )u   永久u   えいきゅう)i^  )u   元永u   げんえい)i`  )u   保安u   ほうあん)id  )u   天治u	   てんじ)if  )u   大治u	   だいじ)ik  )u   天承õ   てんしょう)il  )u   長承u   ちょうしょう)io  )u   保延u   ほうえん)iu  )u   永治u	   えいじ)iv  )u   康治õ	   こうじ)ix  )u   天養u   てんよう)iy  )u   久安u   きゅうあん)i  )u   仁平u   にんぺい)i‚  )u   久寿u   きゅうじゅ)i„  )u   保元u   ほうげん)i‡  )u   平治u	   へいじ)iˆ  )u   永暦u   えいりゃく)i‰  )u   応保u   おうほう)i‹  )u   長寛u   ちょうかん)i�  )u   永万u   えいまん)iŽ  )u   仁安u   にんあん)i‘  )u   嘉応u	   かおう)i“  )u   承安õ   しょうあん)i—  )u   安元u   あんげん)i™  )u   治承u   じしょう)i�  )u   養和u	   ようわ)iž  )u   寿永u   じゅえい)i   )u   元暦u   げんりゃく)i¡  )u   文治u	   ぶんじ)i¦  )u   建久u   けんきゅう)i¯  )u   正治u   しょうじ)i±  )u   建仁u   けんにん)i´  )u   元久u   げんきゅう)i¶  )u   建永u   けんえい)i·  )u   承元r0   )i»  )u   建暦u   けんりゃく)i¾  )u   建保u   けんぽう)iÃ  )u   承久u   じょうきゅう)iÆ  )u   貞応õ   じょうおう)éÉ  )u   元仁u   げんにん)r7   )u   嘉禄u	   かろく)iÌ  )u   安貞u   あんてい)iÍ  )u   寛喜u	   かんき)iÐ  )u   貞永u   じょうえい)iÑ  )u   天福u   てんぷく)éÓ  )u   文暦u   ぶんりゃく)r8   )u   嘉禎u	   かてい)é×  )u   暦仁u   りゃくにん)r9   )u   延応u   えんおう)iØ  )u   仁治u	   にんじ)iÛ  )u   寛元u   かんげん)iß  )u   宝治u	   ほうじ)iá  )u   建長u   けんちょう)iè  )u   康元u   こうげん)ié  )u   正嘉u   しょうか)ië  )u   正元u   しょうげん)iì  )u   文応u   ぶんおう)ií  )u   弘長u   こうちょう)ið  )u   文永u   ぶんえい)iû  )u   健治u	   けんじ)iþ  )u   弘安õ   こうあん)i  )u   正応u   しょうおう)i  )u   永仁u   えいにん)i  )u   正安r5   )é  )u   乾元u   けんげん)r;   )u   嘉元u	   かげん)i  )u   徳治u	   とくじ)i  )u   延慶õ   えんきょう)i  )u   応長u   おうちょう)i   )u   正和õ   しょうわ)i%  )u   文保u   ぶんぽう)i'  )u   元応u   げんおう)i)  )u   元亨õ   げんこう)i-  )u   正中u   しょうちゅ)i.  )u   嘉暦u   かりゃく)i1  )u   元徳u   げんとく)i3  )u   元弘r>   )i4  )u   正慶u   しょうけい)i6  )u   建武u	   けんむ)i8  )u   延元u   えいげん)i:  )u   暦応u   りゃくおう)i<  )u   興国u   こうこく)i>  )u   康永u   こうえい)iA  )u   貞和r/   )iC  )u   正平u   しょうへい)iF  )u   観応u   かんおう)iH  )u   文和u	   ぶんな)iL  )u   延文u   えんぶん)iQ  )u   康安r:   )iR  )u   貞治u   じょうじ)iX  )u   応安u   おうあん)iZ  )u   建徳u   けんとく)i\  )u   文中u   ぶんちゅう)é_  )u   永和u	   えいわ)r?   )u   天授u   てんじゅ)ic  )u   康暦u   こうりゃく)ée  )u   永徳u   えいとく)r@   )u   弘和r2   )éh  )u   至徳u	   しとく)rA   )u   元中u   げんちゅう)ik  )u   嘉慶u	   かけい)im  )u   康応u   こうおう)in  )u   明徳u   めいとく)ir  )u   応永u   おうえい)i”  )u   正長u   しょうちょう)i•  )u   永享u   えいきょう)i¡  )u   嘉吉u	   かきつ)i¤  )u   文安u   ぶんあん)i©  )u   宝徳u   ほうとく)i¬  )u   享徳u   きょうとく)i¯  )u   康正u   こうしょう)i±  )u   長禄u   ちょうろく)iµ  )u   寛正u   かんしょう)iº  )u   文正u   ぶんしょう)i»  )u   応仁u   おうにん)i½  )u   文明u   ぶんめい)iÏ  )u   長享u   ちょうきょう)iÑ  )u   延徳u   えんとく)iÔ  )u   明応u   めいおう)iÝ  )u   文亀u	   ぶんき)ià  )u   永正r1   )iñ  )u   大永u   だいえい)iø  )u   享禄u   きょうろく)iü  )u   天文u   てんぶん)i  )u   弘治r4   )i  )u   永禄u   えいろく)i"  )u   元亀u	   げんき)i%  )u   天正r3   )i9  )u   文禄u   ぶんろく)i<  )u   慶長u   けいちょう)iO  )u   元和u	   げんな)iX  )u   寛永u   かんえい)im  )u   正保u   しょうほう)ip  )u   慶安u   けいあん)it  )u   承応r6   )iw  )u   明暦u   めいれき)iz  )u   万治u	   まんじ)i}  )u   寛文u   かんぶん)i‰  )u   延宝u   えんぽう)i‘  )u   天和u	   てんな)i”  )u   貞享u   じょうきょう)i˜  )u   元禄u   げんろく)i¨  )u   宝永u   ほうえい)i¯  )u   正徳u   しょうとく)i´  )u   享保u   きょうほう)iÈ  )u   元文u   げんぶん)iÍ  )u   寛保u   かんぽう)iÐ  )u   延享r<   )iÔ  )u   寛延u   かんえん)i×  )u   宝暦u   ほうれき)iä  )u   明和u	   めいわ)ií  )u   安永u   あんえい)iõ  )u   天明u   てんめい)i	  )u   寛政u   かんせい)i
  )u   享和u   きょうわ)i  )u   文化u	   ぶんか)i  )u   文政u   ぶんせい)i'  )u   天保u   てんぽう)i5  )u   弘化u	   こうか)i8  )u   嘉永u	   かえい)i?  )u   安政u   あんせい)iD  )u   万延u   まんえい)iE  )u   文久u   ぶんきゅう)iH  )u   元治u	   げんじ)iI  )u   慶応u   けいおう)iL  )u   明治u	   めいじ)ix  )u   大正u   たいしょう)i†  )u   昭和r=   )iÅ  )u   平成u   へいせいc                   @   s€   e Zd ZddiZdd„ Zdd„ Zdd„ Zd	d
„ Zddd„Zddd„Z			d dd„Z
		d!dd„Zdd„ Zd"dd„Zd"dd„ZdS )#ÚNum2Word_JAÚJPY))u   円u   えんr   c                 C   s:   dt |ƒ }t|t|ddƒƒD ]\}}|| jd| < qd S )Né   r   éüÿÿÿr#   )r   ÚzipÚrangeÚcards)ÚselfÚhighÚmaxÚwordÚnr   r   r   Úset_high_numwordsZ  s   ÿzNum2Word_JA.set_high_numwordsc                 C   sB   d| _ d| _ddg| _g d¢| _| j ¡  ddg| _g d¢| _d S )Nu   マイナス)õ   点u   てんrO   ))u   万u   まん)u   億u   おく)u   兆r    )u   京r$   )u   垓u   がい)u   秭õ   し)u   穣u	   じょう)u   溝u   こう)u   澗u   かん)u   正u   せい)u   載u   さい)u   極u   ごく)r   )u   千r   )r   )u   百r   ))u   十r"   )u   九u	   きゅう)u   八r   )u   七)u   ななu   しち)u   六r   )u   五u   ご)u   四)u   よんrP   )u   三r   )u   二u   に)u   一r!   ))u   零u   〇)u   ゼロõ   れい)ÚnegwordÚ	pointwordÚexclude_titleÚhigh_numwordsÚreverseÚmid_numwordsÚlow_numwords)rI   r   r   r   Úsetup_  s   


þzNum2Word_JA.setupc                 C   sZ   |\}}|\}}d}|dkr|dk r|S ||kr"|||f || fS ||k r+t ||ƒS d S )Nr%   r   i'  )r-   )rI   r'   r(   r)   r*   r+   r,   Úfmtr   r   r   Úmerge‰  s   
ÿzNum2Word_JA.mergec                 C   s$   |r|dkrdS t d| ƒ‚|d S )Nõ   番u	   ばんめzReading not implemented for %su   目)ÚNotImplementedError)rI   r   Úcounterr   r   r   Ú_ordinal_suffix˜  s   ÿzNum2Word_JA._ordinal_suffixFNr\   c                 C   s.   |   |¡ | j|||d�}d||  ||¡f S )N©r   r   r%   )Úverify_ordinalÚto_cardinalr_   )rI   Úvaluer   r   r^   Úbaser   r   r   Ú
to_ordinal¢  s   
zNum2Word_JA.to_ordinalc                 C   s   d||   ||¡f S )Nr%   )r_   )rI   rc   r   r^   r   r   r   Úto_ordinal_num§  s   zNum2Word_JA.to_ordinal_numTc                 C   s.  |}|s9d}|dk rt |ƒ}|rdnd}| j|||d�}	|r,|d dkr,|	d d… d	 }	d
||	|r5df S df S td d }
ttƒd }||
k rOtd|
 ƒ‚d}|}d }|d u r½|| d }||ksut| d |kr¨t|d  d |kr¨|}|r¨|d }|dkr¨t| d |kr¨tt| d ƒt|ƒ@ r˜|}n|d8 }|dkr¨t| d |ks‰|t| d k rµ|d }n|d }|d u sYt| }|d d }||d  d }d}|dkrÚt|ƒ}n7|�r|d d }|dkrï| j|d|d�nd}|d dkrÿ|d d… d	 }d}n|dk�r| j|d|d�nd}|||f S )NÚ r   u   きげんぜんu	   紀元前r`   r#   é	   éýÿÿÿu   くz%s%s%su   ねんu   年r   z'Can't convert years less than %s to eraé   u   %s%s年ÚarabicTu   がんu
   %s%sねんFu   元)Úabsrb   Ú	ERA_STARTr   r&   r   Ústr)rI   ÚvalÚsuffixÚlongvalr   r   ÚeraÚyearÚprefixÚ
year_wordsÚmin_yearÚlast_era_idxÚfirstÚlastÚera_idxÚmidÚiÚera_nameÚera_yearrZ   Úera_year_wordsr   r   r   Úto_yearª  sx   ÿû
í
þÿþ
þÿþzNum2Word_JA.to_yearrg   c              	   C   sö   t ||d�\}}	}
z| j| \}}|st|ƒ|kr!|s!td| ƒ‚W n ty3   td|| jjf ƒ‚w |rC|| jv rCt	| j| |ƒ}|
rH| j
nd}d|| j|||d�|rY|d n|d |rf| j|	||d�nd|rw|rq|d f S |d f S df S )	N)Úis_int_with_centszDecimals not supported for "%s"z+Currency code "%s" not implemented for "%s"rg   z
%s%s%s%s%sr`   r   r   )r	   ÚCURRENCY_FORMSrl   r&   ÚKeyErrorr]   Ú	__class__Ú__name__ÚCURRENCY_ADJECTIVESr
   rR   rb   )rI   ro   ÚcurrencyÚcentsÚ	seperatorÚ	adjectiver   r   ÚleftÚrightÚis_negativeÚcr1Úcr2Ú	minus_strr   r   r   Úto_currencyî  s>   ÿ€
ÿÿÿÿúúúzNum2Word_JA.to_currencyc                 C   sÞ   | j D ]i}||kr
qg }|dkrd\}}nt||ƒ\}}|dkr/| t| j d ||ƒdf¡ n ||krE|t| j | ||ƒ || fg  S | |  |||¡¡ | t| j | ||ƒ|f¡ |ri| |  |||¡¡ |  S d S )Nr   )r   r   r   )rH   ÚdivmodÚappendr   Úsplitnum)rI   rc   r   r   ÚelemÚoutÚdivÚmodr   r   r   r”   
  s&   


þèzNum2Word_JA.splitnumc              
   C   s    z
t |ƒ|ks	J ‚W n tttfy   | j|||d� Y S w d}|dk r,t|ƒ}| j}|| jkr;t| j	|| jf ƒ‚|  
|||¡}|  |¡\}}|  || ¡S )Nr`   rg   r   )Úintr&   Ú	TypeErrorÚAssertionErrorÚto_cardinal_floatrl   rR   ÚMAXVALÚOverflowErrorÚerrmsg_toobigr”   ÚcleanÚtitle)rI   rc   r   r   r–   ro   ÚwordsÚ_r   r   r   rb   %  s    
ÿÿ
zNum2Word_JA.to_cardinalc           	   
   C   sä   |pdg}zt |ƒ|k W n tttfy   t| j| ƒ‚w |  t |ƒ¡\}}t|ƒ}d| jt|ƒ  | }| j	|||d�g}| jrR| 
|  | j|rMdnd ¡¡ t| jƒD ]}t|| ƒ}| 
t| j	|||d�ƒ¡ qWd |¡S )NrQ   Ú0r`   r   r   rg   )Úfloatr&   rš   r›   Úerrmsg_nonnumÚfloat2tuplern   Ú	precisionr   rb   r“   r¡   rS   rG   r™   r   Újoin)	rI   rc   r   r   ÚpreÚpostr–   r|   Úcurrr   r   r   rœ   8  s$   
ÿÿ
zNum2Word_JA.to_cardinal_float)FNr\   )Fr\   )NTFNT)rC   Frg   FFN©FN)r…   Ú
__module__Ú__qualname__r‚   rN   rY   r[   r_   re   rf   r€   r‘   r”   rb   rœ   r   r   r   r   rB   U  s$    ÿ*



ÿD
ÿ
rB   r­   )Ú
__future__r   r   r   rd   r   Úcompatr   r   r‡   r	   r
   r   r-   rm   rB   r   r   r   r   Ú<module>   s   
- |