
    9%i5W                     p    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Zd Zg d	Z G d
 de      Zy)    )divisionprint_functionunicode_literals   )Num2Word_Base)strtypeto_s)parse_currency_partsprefix_currencyNc                     |r| d   } n| d   } t        | t              sHt        |       t        |xs
 t                     z  }t        |      dk(  r|j	                         } | S | d   } | S )zNSelect the correct text from the Japanese number, reading and
    alternativesr   r   )
isinstancer   setlenpop)textreadingprefercommons       k/var/www/html/navyabakers_fullstack/navyabakers_prod/venv/lib/python3.12/site-packages/num2words/lang_JA.pyselect_textr      sl     AwAw dG$TS3511v;!::<D K 7DK    c                 @   | \  }}|\  }}||kD  rt         |dk(  r| dk(  rd}nr| dk(  rd}d}nh| dk(  rcd}d}n^|d	k(  r| dk(  rd
}nQ| dk(  rLd}nI|dk(  r| dk(  rd}n<| dk(  rd}n4| dk(  r/d}n,|dk(  r'| dk(  rd}n| dk(  rd}n| dk(  rd}n| dk(  rd}n| dk(  rd}||||z  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	   ひゃっ)
ValueError)lpairrpairltextlnumrtextrnums         r   rendaku_merge_pairsr/   -   s   KE4KE4d{""M!Em#EEm#EE	"	"M!Em#E	'	'M!Em#E''E	$	$M!Em#Em#E''E((EU#TD[11r   ))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   てんぴょうかんぽう)r0   )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   承元r2   )i  )u   建暦u   けんりゃく)i  )u   建保u   けんぽう)i  )u   承久u   じょうきゅう)i  )u   貞応   じょうおう)  )u   元仁u   げんにん)r9   )u   嘉禄u	   かろく)i  )u   安貞u   あんてい)i  )u   寛喜u	   かんき)i  )u   貞永u   じょうえい)i  )u   天福u   てんぷく)  )u   文暦u   ぶんりゃく)r:   )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   ぶんおう)i  )u   弘長u   こうちょう)i  )u   文永u   ぶんえい)i  )u   健治u	   けんじ)i  )u   弘安   こうあん)i  )u   正応u   しょうおう)i  )u   永仁u   えいにん)i  )u   正安r7   )  )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   貞和r1   )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	   えいわ)rA   )u   天授u   てんじゅ)ic  )u   康暦u   こうりゃく)e  )u   永徳u   えいとく)rB   )u   弘和r4   )h  )u   至徳u	   しとく)rC   )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   永正r3   )i  )u   大永u   だいえい)i  )u   享禄u   きょうろく)i  )u   天文u   てんぶん)i  )u   弘治r6   )i  )u   永禄u   えいろく)i"  )u   元亀u	   げんき)i%  )u   天正r5   )i9  )u   文禄u   ぶんろく)i<  )u   慶長u   けいちょう)iO  )u   元和u	   げんな)iX  )u   寛永u   かんえい)im  )u   正保u   しょうほう)ip  )u   慶安u   けいあん)it  )u   承応r8   )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                   j    e Zd ZddiZd Zd Zd Zd ZddZdd	Z		 	 dd
Z
	 	 ddZd ZddZddZy)Num2Word_JAJPY))u   円u   えん c                     dt        |      z  }t        |t        |dd            D ]  \  }}|| j                  d|z  <    y )N   r   r&   )r   ziprangecards)selfhighmaxwordns        r   set_high_numwordszNum2Word_JA.set_high_numwords[  sD    #d)m4sAr!23 	'GD!"&DJJrQw	'r   c                     d| _         d| _        ddg| _        g d| _        | j                  j	                          ddg| _        g d| _        y )Nu   マイナス)   点u   てんrU   ))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   よんrV   )u   三r   )u   二u   に)u   一r$   ))u   零u   〇)u   ゼロ   れい)negword	pointwordexclude_titlehigh_numwordsreversemid_numwordslow_numwords)rN   s    r   setupzNum2Word_JA.setup`  sW    %*#^4
 	""$ &'


r   c                 x    |\  }}|\  }}d}|dk(  r|dk  r|S ||kD  r|||fz  ||z   fS ||k  rt        ||      S y )Nz%s%sr   i'  )r/   )rN   r)   r*   r+   r,   r-   r.   fmts           r   mergezNum2Word_JA.merge  sc    tt19LD[5%.($+66D[&ue44 r   c                 8    |r|dk(  ryt        d|z        |dz   S )N   番u	   ばんめzReading not implemented for %su   目)NotImplementedError)rN   r   counters      r   _ordinal_suffixzNum2Word_JA._ordinal_suffix  s3    %")4w>@ @ U?"r   Nc                 x    | j                  |       | j                  |||      }|| j                  ||      S )Nr   r   )verify_ordinalto_cardinalrg   )rN   valuer   r   rf   bases         r   
to_ordinalzNum2Word_JA.to_ordinal  s?    E"wvFt33GWEFFr   c                 .    || j                  ||      S )N)rg   )rN   rl   r   rf   s       r   to_ordinal_numzNum2Word_JA.to_ordinal_num  s     4 4Wg FGGr   c                 r   |}|sLd}|dk  rt        |      }|rdnd}| j                  |||      }	|r|dz  dk(  r|	d d d	z   }	||	|rd
S dS t        d   d   }
t        t              dz
  }||
k  rt	        d|
z        d}|}d }|||z   dz  }||k(  s!t        |   d   |k  rmt        |dz      d   |kD  r[|}|rW|dz
  }|dk\  rMt        |   d   |k(  r>t        t        |   d         t        |      z  r|}n|dz  }|dk\  rt        |   d   |k(  r>|t        |   d   k  r|dz
  }n|dz   }|t        |   }|d   d   }||d   z
  dz   }d}|dk(  rt        |      }nS|r6|d   d   }|dk7  r| j                  |d|      nd}|dz  dk(  r|d d d	z   }d}n|dk7  r| j                  |d|      nd}|||fz  S )N r   u   きげんぜんu	   紀元前ri   r&   	   u   くu   ねんu   年r   z'Can't convert years less than %s to era   u   %s%s年arabicTu   がんu
   %s%sねんFu   元)absrk   	ERA_STARTr   r(   r   str)rN   valsuffixlongvalr   r   erayearprefix
year_wordsmin_yearlast_era_idxfirstlastera_idxmidiera_nameera_yearra   era_year_wordss                        r   to_yearzNum2Word_JA.to_year  s}   Fax4y.5*;))$)OJ4"9>'_u4
%zw83QRRE3QRR Q<?9~)(?9HDF F o4<A%Cl"y~a'8D'@'0q'9!'<t'CaAq&Yq\!_%<y|A/#f+=&'G!Q q&Yq\!_%< inQ''Qwa' o*  q6!9#a&=1$h ]N1vayH "*Q #..x6< / >4<  "}!!/!4u!<C "*Q #..x6< / >49  h///r   c                    t        ||      \  }}	}
	 | j                  |   \  }}|st        |      |k7  r|st        d|z        |r'|| j                  v rt        | j                  |   |      }|
r| j                  nd}|| j                  |||      |r|d   n|d	   |r| j                  |	||      nd|r|r|d   S |d	   S dS # t        $ r' t        d|d| j                  j                  d      w xY w)
N)is_int_with_centszDecimals not supported for "%s"zCurrency code "z" not implemented for ""rr   ri   r   r   )r
   CURRENCY_FORMSrw   r(   KeyErrorre   	__class____name__CURRENCY_ADJECTIVESr   rX   rk   )rN   rz   currencycents	separator	adjectiver   r   leftrightis_negativecr1cr2	minus_strs                 r   to_currencyzNum2Word_JA.to_currency  sH   #75$* e[	5**84HCST)3 !BX!MNN T%=%==!$":":8"DcJC$/DLLR	 T76BCF3q6) UGFC/2wSV:
 	
 %(F:
 	
 9;:
 	
  	5%4>>2245 5	5s   2C 0C>c                    | j                   D ]  }||kD  r	g }|dk(  rd\  }}nt        ||      \  }}|dk(  r,|j                  t        | j                   d   ||      df       nL||k(  r%|t        | j                   |   ||      z  ||z  fgc S |j                  | j	                  |||             |j                  t        | j                   |   ||      |f       |r"|j                  | j	                  |||             |c S  y )Nr   )r   r   r   )rM   divmodappendr   splitnum)rN   rl   r   r   elemoutdivmods           r   r   zNum2Word_JA.splitnum  s   JJ 	De|CzS!%.Sax

K

1wGKL%<k$**T*:GVLLd
$ % % 

4==gv>?JJDJJt$4gvFMN

4==gv>?J1	r   c                    	 t        |      |k(  sJ 	 d}|dk  rt        |      }| j                  }|| j                  k\  r$t        | j                  || j                  fz        | j                  |||      }| j                  |      \  }}| j                  ||z         S # t        t        t        f$ r | j	                  |||      cY S w xY w)Nri   rr   r   )intr(   	TypeErrorAssertionErrorto_cardinal_floatrw   rX   MAXVALOverflowErrorerrmsg_toobigr   cleantitle)rN   rl   r   r   r   rz   words_s           r   rk   zNum2Word_JA.to_cardinal&  s    	9u:&&&
 19JE,,CDKK 2 2eT[[5I IJJmmE7F3::c?qzz#+&& I~6 	9))%17 * 9 9	9s   B (C
	C
c           
         |xs dg}	 t        |      |k(   | j                  t        |            \  }}t        |      }d| j                  t        |      z
  z  |z   }| j                  |||      g}| j                  r1|j                  | j                  | j                  |rdnd                t        | j                        D ]<  }t        ||         }|j                  t        | j                  |||                   > dj!                  |      S # t        t        t        f$ r t        | j                  |z        w xY w)NrW   0ri   r   r   rr   )floatr(   r   r   errmsg_nonnumfloat2tuplery   	precisionr   rk   r   r   rY   rL   r   r	   join)	rN   rl   r   r   prepostr   r   currs	            r   r   zNum2Word_JA.to_cardinal_float9  s0   %H:	8%LE! $$U5\2	T4ydnns4y01D8WVDE>>JJtzz$..g1"EFGt~~& 	IAtAw<DJJt  wv FH I	I
 wws|# I~6 	8D..677	8s   D -E)FNrd   )Frd   )NTFNT)rF   Frr   FFNFN)r   
__module____qualname__r   rS   r_   rb   rg   rn   rp   r   r   r   rk   r   rG   r   r   rE   rE   V  s^    &N'
(
T5#G
H ?D!%B0H GI;?
86'&r   rE   r   )
__future__r   r   r   rm   r   compatr   r	   r   r
   r   r   r/   rx   rE   rG   r   r   <module>r      s9   $ B A  ! ;((2Zy	xx- xr   