o
    ph5W                     @   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   ]/var/www/html/Testing_prj/Navya-Bakers/venv/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   へいせい)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_numwords[  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rt|d  d |kr|}|r|d }|dkrt| d |krtt| d t|@ r|}n|d8 }|dkrt| d |ks|t| d k r|d }n|d }|d u sYt| }|d d }||d  d }d}|dkrt|}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	separator	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   9  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   V  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   
- }