o
    2ѹgB                     @   s  d dl mZ d dlZd dlZddlmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ edZe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dZ'd'ddZ(d(ddZ)d d! Z*d"d# Z+d$d% Z,dS ))    )unicode_literalsN   )	H2K_TABLE
H2HK_TABLE	K2H_TABLEH2Z_AH2Z_ADH2Z_AKH2Z_DH2Z_KH2Z_DKH2Z_ALLSMALL_KANA2BIG_KANAZ2H_AZ2H_ADZ2H_AKZ2H_DZ2H_KZ2H_DKZ2H_ALLKANA2HEPHEP2KANAJULIUS_LONG_VOWEL)mapZsdfghjklqwrtypzxcvbnmzh$c                 C   s   t t| D ]}||= q|S N)r   ord)ignoreconv_map	character r   Q/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/site-packages/jaconv/jaconv.py_exclude_ignorechar   s   r!   c                 C   s
   |  |S r   )	translate)textr   r   r   r    _convert   s   
r$   c                 C   s&   |rt || }t| |S t| |S r   )r!   copyr$   )r#   r   r   Z	_conv_mapr   r   r    
_translate   s   

r&    c                 C      t | |tS )u  Convert Hiragana to Full-width (Zenkaku) Katakana.

    Parameters
    ----------
    text : str
        Hiragana string.
    ignore : str, optional
        Characters to be ignored in converting.

    Return
    ------
    str
        Katakana string.

    Examples
    --------
    >>> print(jaconv.hira2kata('ともえまみ'))
    トモエマミ
    >>> print(jaconv.hira2kata('まどまぎ', ignore='ど'))
    マどマギ
    N)r&   r   r#   r   r   r   r    	hira2kata!      r*   c                 C   r(   )u  Convert Hiragana to Half-width (Hankaku) Katakana

    Parameters
    ----------
    text : str
        Hiragana string.
    ignore : str, optional
        Characters to be ignored in converting.

    Return
    ------
    str
        Half-width Katakana string.

    Examples
    --------
    >>> print(jaconv.hira2hkata('ともえまみ'))
    ﾄﾓｴﾏﾐ
    >>> print(jaconv.hira2hkata('ともえまみ', ignore='み'))
    ﾄﾓｴﾏみ
    N)r&   r   r)   r   r   r    
hira2hkata:   r+   r,   c                 C   r(   )u  Convert Full-width Katakana to Hiragana

    Parameters
    ----------
    text : str
        Full-width Katakana string.
    ignore : str, optional
        Characters to be ignored in converting.

    Return
    ------
    str
        Hiragana string.

    Examples
    --------
    >>> print(jaconv.kata2hira('巴マミ'))
    巴まみ
    >>> print(jaconv.kata2hira('マミサン', ignore='ン'))
    まみさン
    N)r&   r   r)   r   r   r    	kata2hiraS   r+   r-   c                 C   r(   )u  Convert small Hiragana or Katakana to normal size

    Parameters
    ----------
    text : str
        Full-width Hiragana or Katakana string.
    ignore : str, optional
        Characters to be ignored in converting.

    Return
    ------
    str
        Hiragana or Katakana string, enlarged small Kana

    Examples
    --------
    >>> print(jaconv.enlargesmallkana('さくらきょうこ'))
    さくらきようこ
    >>> print(jaconv.enlargesmallkana('キュゥべえ'))
    キユウべえ
    N)r&   r   r)   r   r   r    enlargesmallkanal   r+   r.   TFc                 C   sz   dd }|r|r|rt }nt}n|rt}nt}n|r"|rt}n
t}n|r't}ni }|r/|| } |r8t|| }t	| |S )u?  Convert Half-width (Hankaku) Katakana to Full-width (Zenkaku) Katakana

    Parameters
    ----------
    text : str
        Half-width Katakana string.
    ignore : str, optional
        Characters to be ignored in converting.
    kana : bool, optional
        Either converting Kana or not.
    ascii : bool, optional
        Either converting ascii or not.
    digit : bool, optional
        Either converting digit or not.

    Return
    ------
    str
        Full-width Katakana string.

    Examples
    --------
    >>> print(jaconv.h2z('ﾃｨﾛﾌｨﾅｰﾚ'))
    ティロフィナーレ
    >>> print(jaconv.h2z('ﾃｨﾛﾌｨﾅｰﾚ', ignore='ｨ'))
    テｨロフｨナーレ
    >>> print(jaconv.h2z('abcd', ascii=True))
    ＡＢＣＤ
    >>> print(jaconv.h2z('1234', digit=True))
    １２３４
    c                 S   s  |  dd dd} |  dd dd} |  d	d
 dd} |  dd dd} |  dd dd} |  dd dd} |  dd dd} |  dd dd } |  d!d" d#d$} |  d%d& d'd(} |  d)d* d+d,} |  d-d. d/d0} |  d1d2 d3d4S )6z=Convert Hankaku Dakuten Kana to Zenkaku Dakuten Kana
        u   ｶﾞu   ガu   ｷﾞu   ギu   ｸﾞu   グu   ｹﾞu   ゲu   ｺﾞu   ゴu   ｻﾞu   ザu   ｼﾞu   ジu   ｽﾞu   ズu   ｾﾞu   ゼu   ｿﾞu   ゾu   ﾀﾞu   ダu   ﾁﾞu   ヂu   ﾂﾞu   ヅu   ﾃﾞu   デu   ﾄﾞu   ドu   ﾊﾞu   バu   ﾋﾞu   ビu   ﾌﾞu   ブu   ﾍﾞu   ベu   ﾎﾞu   ボu   ﾊﾟu   パu   ﾋﾟu   ピu   ﾌﾟu   プu   ﾍﾟu   ペu   ﾎﾟu   ポu   ｳﾞu   ヴN)replace)r#   r   r   r    _conv_dakuten   s   zh2z.<locals>._conv_dakutenN)
r   r   r	   r   r   r
   r   r!   r%   r$   )r#   r   kanaasciidigitr0   Zh2z_mapr   r   r    h2z   s*   !
r4   c                 C   sf   |r|r|r	t }nt}n|rt}nt}n|r|rt}n
t}n|r#t}ni }|r.t|| }t	| |S )u?  Convert Full-width (Zenkaku) Katakana to Half-width (Hankaku) Katakana

    Parameters
    ----------
    text : str
        Full-width Katakana string.
    ignore : str, optional
        Characters to be ignored in converting.
    kana : bool, optional
        Either converting Kana or not.
    ascii : bool, optional
        Either converting ascii or not.
    digit : bool, optional
        Either converting digit or not.

    Return
    ------
    str
        Half-width Katakana string.

    Examples
    --------
    >>> print(jaconv.z2h('ティロフィナーレ'))
    ﾃｨﾛﾌｨﾅｰﾚ
    >>> print(jaconv.z2h('ティロフィナーレ', ignore='ィ'))
    ﾃィﾛﾌィﾅｰﾚ
    >>> print(jaconv.z2h('ＡＢＣＤ', ascii=True))
    abcd
    >>> print(jaconv.z2h('１２３４', digit=True))
    1234
    N)
r   r   r   r   r   r   r   r!   r%   r$   )r#   r   r1   r2   r3   Zz2h_mapr   r   r    z2h   s$    
r5   NFKCc                 C   s   |  dd dd} |  dd dd dd} |  d	d
 dd
 dd
 dd
} |  dd
 dd
 dd
 dd
} |  dd
 dd
 dd
 dd
} |  dd dd dd d	d} |  dd dd} t|| S )u!  Convert Half-width (Hankaku) Katakana to Full-width (Zenkaku) Katakana,
    Full-width (Zenkaku) ASCII and DIGIT to Half-width (Hankaku) ASCII
    and DIGIT.
    Additionally, Full-width wave dash (〜) etc. are normalized

    Parameters
    ----------
    text : str
        Source string.
    mode : str, optional
        Unicode normalization mode.

    Return
    ------
    str
        Normalized string.

    Examples
    --------
    >>> print(jaconv.normalize('ﾃｨﾛ･フィナ〜レ', 'NFKC'))
    ティロ・フィナーレ
       〜   ーu   ～u   ’'u   ”"u   “u   ―-u   ‐u   ˗u   ֊u   ‑u   ‒u   –u   ⁃u   ⁻u   ₋   −u   ﹣u   －u   —u   ━u   ─N)r/   unicodedata	normalize)r#   moder   r   r    r>     sH   r>   c                 C   sz  |  dd dd dd} |  dd d	d
 dd} |  dd dd dd} |  dd dd dd} |  dd dd dd} |  dd  d!d" d#d$} |  d%d& d'd( d)d*} |  d+d, d-d. d/d0} |  d1d2} |  d3d4 d5d6 d7d8} |  d9d: d;d< d=d>} |  d?d@ dAdB dCdD} |  dEdF dGdH dIdJ} |  dKdL dMdN dOdP} |  dQdR dSdT dUdV} |  dWdX dYdZ d[d\} |  d]d^ d_d` dadX} |  dbdZ dcdd dedf} |  dgdh didj dkdl} |  dmdn dodp dqdr} |  dsdt dudv dwdx} |  dydz} |  d{d| d}d~ dd} |  dd dd dd} |  dd dd dd} |  dd dd dd} |  dd dd dd} |  dd dd dd} |  dd dd dd} |  dd dd dd} |  dd dd dd} |  dd dd dd} |  dd dd dd} |  dd dd} |  dd¡ ddġ ddơ} |  ddȡ ddʡ dd̡} |  ddΡ} t| t} d| v r;t| }|dϡ}t||d krdѠ|ddӅ d S |dkrd||< n||d  dkr)d||< n||d  ||< dѠ|} d| v s| S )u  Convert Hiragana to hepburn-style alphabets

    Parameters
    ----------
    text : str
        Hiragana string.

    Return
    ------
    str
        Roman-input-style alphabets string.

    Examples
    --------
    >>> print(jaconv.kana2alphabet('まみさん'))
    mamisan
       きゃkya   きゅkyu   きょkyo   ぎゃgya   ぎゅgyu   ぎょgyo   しゃsha   しゅshu   しょsho   じゃja   じゅju   じょjo   ちゃcha   ちゅchu   ちょcho   にゃnya   にゅnyu   にょnyo   ひゃhya   ひゅhyu   ひょhyo   ふぁfa   ふぃfi   ふぇfe   ふぉfo   みゃmya   みゅmyu   みょmyo   りゃrya   りゅryu   りょryo   びゃbya   びゅbyu   びょbyo   ぴゃpya   ぴゅpyu   ぴょpyo   がga   ぎgi   ぐgu   げge   ごgo   ざza   じji   ずzu   ぜze   ぞzo   だda   ぢ   づ   でde   どdo   ばba   びbi   ぶbu   べbe   ぼbo   ぱpa   ぴpi   ぷpu   ぺpe   ぽpo   かka   きki   くku   けke   こko   さsa   しshi   すsu   せse   そso   たta   ちchi   つtsu   てte   とto   なna   にni   ぬnu   ねne   のno   はha   ひhi   ふfu   へhe   ほho   まma   みmi   むmu   めme   もmo   らra   りri   るru   れre   ろro   やya   ゆyu   よyo   わwa   ゐZwi   をwo   ゑZwe   っr   r'   Nxtsur   )r/   r$   r   listindexlenjoin)r#   charsZtsu_posr   r   r    kana2alphabet4  sf   







r  c                 C   s  t td| } | dddddd} | dd	d
d} | dddddd} | dddd} | dddddd} | dd} | dddd d!d} | d"dd#d} | d$d%d&d'd(d)} | d*d+d,d-} | d.d%d/d'd0d)} | d1d%d2d+d3d'} | d4d-d5d)} | d6d7d8d9d:d;} | d<d=d>d?} | d@dAdBdCdDdE} | dFdG} | dHdAdIdJdKdC} | dLdEdMdG} | dNdAdOdJdPdC} | dQdEdRdG} | dSdTdUdVdWdX} | dYdZ} | d[d\d]d\} | d^d_d`dadbda} | dcdddedf} | dgdhdidjdkdj} | dldmdndodpdq} | drdm} | dsdtdudvdwdx} | dydzd{d|d}dx} | d~ddddd} | dddddd} | dddddd} | dddd} | dddddd} | dddd} | dddddd} | dddd} | dddddd} | dddd} | dddddd} | dddd} | dddddd} | dd¡ddġ} | ddơddȡddʡ} | dd̡} | ddΡddСddҡ} | ddԡdd֡ddء} | ddڡddС} | ddԡdd֡ddߡ} | ddءddڡ} | dddddd} | dddddd} | dddddd} | dddddd} | dddd} | dddddd} | dd} | d ddddd} | dddd} | d	dd
ddd} | dddd} | dddddd} | dddd} | dddddd} | dd d!d"} | d#d$d%d&d'd(} | d)d*d+d,} | d-d-} | d.d/} | d0d1d2d1} | d3d1d4d1} | d5d6d7d6} | d8d9d:d9} | d;d<d=d<} | d>d?d@dAdBd} | dCdDdEdF} | dGdHdIdH} | dJdK} | dLdMdNdOdPdQ} | dRdSdTdU} | dVdWdXdYdZdY} | d[d\d]d^d_d`} | dadbdcdd} | d[dedfde} | dgdhdidj} | dkdldmdơdndo} | dpdʡdqdrdsdt} | dudvdwdxdydz} | d{d|d}d~dd} | dddddd} | dd} | dddddd} | dddddd} | dddddd} | dddddd/} | dddd} | dddddd} | dddddd} | dddddd} | dddddd} | dddddd} | ddddddá} | dĐdšdƐdǡ} | dȐddɐddʐdá} | dːdšd̐dǡ} | d͐dΡdϐdСdѐdҡ} | dӐdԡdՐd֡dd} | dؐd١} | dڐdۡ} | dddd} | dސdKdߐd} | ddԡdd֡ddء} | ddڡdd} | ddádd} t| t} g }t| D ]\}}|tv rnd1}|| qbd	|S (  u  Convert alphabets to Hiragana

    Parameters
    ----------
    text : str
        Roman-input-style alphabets string.

    Return
    ------
    str
        Hiragana string.

    Examples
    --------
    >>> print(jaconv.alphabet2kana('mamisan'))
    まみさん
       うrA   r@   Zkyi   きぃrC   rB   Zkyeu   きぇrE   rD   rG   rF   Zgyi   ぎぃrI   rH   Zgyeu   ぎぇrK   rJ   rM   rL   rO   rN   Zshe   しぇrQ   rP   ZsyaZsyi   しぃZsyuZsyeZsyoZzyarR   ZzyurT   ZzyorV   Zzyi   じぃZzye   じぇrS   rU   rW   ZjyaZjyiZjyuZjyeZjyoZdya   ぢゃZdyi   ぢぃZdyu   ぢゅZdye   ぢぇZdyo   ぢょrY   rX   r[   rZ   Zche   ちぇr]   r\   ZcyaZcyi   ちぃZcyuZcyeZcyoZtyaZtyiZtyuZtyeZtyoZtsa   つぁZtsi   つぃZtse   つぇZtso   つぉZthi   てぃzt'iZtha   てゃthu   てゅzt'yuZthe   てぇZtho   てょZdha   でゃZdhi   でぃzd'iZdhu   でゅZdhe   でぇZdho   でょzd'yuZtwau   とぁZtwiu   とぃZtwu   とぅZtweu   とぇZtwo   とぉzt'uZdwa   どぁZdwiu   どぃZdwu   どぅZdweu   どぇZdwo   どぉzd'ur_   r^   Znyi   にぃra   r`   Znyeu   にぇrc   rb   re   rd   Zhyi   ひぃrg   rf   Zhyeu   ひぇri   rh   rs   rr   Zmyi   みぃru   rt   Zmyeu   みぇrw   rv   ry   rx   Zryi   りぃr{   rz   Zryeu   りぇr}   r|   r   r~   Zbyi   びぃr   r   Zbyeu   びぇr   r   r   r   Zpyi   ぴぃr   r   Zpyeu   ぴぇr   r   Zvyiu   ゔぃZvyuu   ゔゅZvyeu   ゔぇZvyou   ゔょZfya   ふゃZfyu   ふゅZfyo   ふょZhwarj   Zhwirl   Zhwern   Zhworp   ZhwyuZphaphiZphu   ふぅZpheZphoZxn   んZxa   ぁxi   ぃZxu   ぅZxe   ぇZxo   ぉZlyiZxyiZlyeZxyeZxkau   ヵZxkeu   ヶZlkaZlkecar   cir   Zcur   cor   Zqau   くぁZqiu   くぃZquZqeu   くぇZqou   くぉZkwaZkwiZkwu   くぅZkweZkwoZgwau   ぐぁZgwiu   ぐぃZgwu   ぐぅZgweu   ぐぇZgwou   ぐぉZswau   すぁZswi   すぃZswu   すぅZsweu   すぇZswou   すぉZzwa   ずぁZzwi   ずぃZzwu   ずぅZzwe   ずぇZzwo   ずぉZjeZtir   Zxtur  r  ZltuZltsuZxyau   ゃZlyaZxyuu   ゅZlyuZxyou   ょZlyoZwha   うぁZwhi   うぃZwhuZwhe   うぇZwho   うぉZxwa   ゎZlwar   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zzir   r   r   r   r   r   r   r   Zdir   r   Zdur   r   r   r   vau   ゔぁviZvuu   ゔveZvou   ゔぉZvyau   ゔゃr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ZlaliZlulelor  r   r  r  r  r  r  r  Zwyir  ZwuZwyer  r
  r	  nnmZtuhurk   rm   ro   rq   Zohu   おおlr;   r8   r'   N)
r   subending_h_patternr/   r$   r   	enumerate
consonantsappendr  )r#   reticharr   r   r    alphabet2kana{  s   &((((&(((&&((($&&(((((((((&"

rl  c                 C   s  |  dd} |  dd} |  dd} |  dd} |  d	d
} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd } |  d!d"} |  d#d$} |  d%d&} |  d'd(} |  d)d*} |  d+d,} |  d-d.} |  d/d0} |  d1d2} |  d3d4} |  d5d6} |  d7d8} |  d9d:} |  d;d<} |  d=d>} |  d?d@} |  dAdB} |  dCdD} |  dEdF} |  dGdH} |  dIdJ} |  dKdL} |  dMdN} |  dOdP} |  dQdR} |  dSdT} |  dUdV} |  dWdX} |  dYdZ} |  d[d\} |  d]d^} |  d_d`} |  dadb} |  dcdd} |  dedf} |  dgdh} |  didj} |  dkdl} |  dmdn} |  dodp} |  dqdr} |  dsdt} |  dudN} |  dvdw} |  dxdR} |  dydT} |  dzdV} |  d{d|} |  d}d~} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd
} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  ddá} |  ddš} |  ddǡ} |  ddɡ} |  ddˡ} |  dd͡} |  ddˡ} |  dd͡} |  ddѡ} |  ddѡ} |  ddԡ} |  dd֡} |  ddء} |  ddڡ} |  ddܡ} |  ddޡ} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  d{d|} |  dd} |  dd} |  dd} |  dd} |  dodp} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dOd} |  dQdR} |  dSdT} |  dUdV} |  dd} |  d d} |  dd"} |  dd$} |  dd&} |  ddB} |  ddD} |  dd} |  d	dF} |  d
df} |  ddh} |  dd} |  ddj} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  d}d~} |  dd} |  dd} |  dd} |  dd} |  dd} |  d d} |  d!d} |  d"dá} |  d#dš} |  d$dڡ} |  d%dܡ} |  d&dޡ} |  d'd2} |  d(d4} |  d)d6} |  d*d+} |  d,d-} |  d.d/} |  d0d1} |  d2d+} |  d3d-} |  d4d/} |  d5d1} |  d6d7} |  d8d
} |  d9d:} |  d;d} |  d<d} |  d=d} |  d>d?} |  d@dA} |  dBdC} |  dDdE} |  dFdG} |  dHdI} |  ddJ} |  dd} |  dd} |  dd} |  dKdL} |  dMdN} |  dOdP} |  dQdR} |  dSdT} |  dUdV} |  dWdX} |  dYdZ} |  d[d\} |  d]d^} |  d_d`} |  dadb} |  dcdd} |  dedf} |  dgdh} |  didj} |  dkdl} |  dmdn} |  dodp} |  dqdr} |  dsdt} |  dudv} |  dwdx} |  dydz} |  d{d|} |  d}d~} |  dd} |  dd} |  dd} |  ddJ} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  dd} |  ddá} |  dĐdš} |  dd} |  dǐdȡ} |  dɐdʡ} |  dːd̡} |  d͐dR} |  dΐdV} |  dϐdС} |  dѐdҡ} |  dӐdP} |  dԐdR} |  dՐdT} |  d֐dV} |  dאdX} |  dؐd̡} |  dאdX} tD ]\}}||| } q|  dِdڡ} |  dېdܡ} |  dݐdܡ} |  dސdܡ} |  dߐdܡ} |  ddX} |  } |  ddܡ} | S (  u6  Convert Hiragana to Julius's phoneme format.

    Parameters
    ----------
    text : str
        Hiragana string.

    Return
    ------
    str
        Alphabet string.

    Examples
    --------
    >>> print(jaconv.hiragana2julius('てんきすごくいいいいいい'))
    t e N k i s u g o k u i:
    u	   う゛ぁz b au	   う゛ぃz b iu	   う゛ぇz b eu	   う゛ぉz b ou	   う゛ゅz by uu   ぅ゛z b uu   あぁz a au   いぃz i iu   いぇz i eu   いゃz y au   うぅz u:u   えぇz e eu   おぉz o:u   かぁz k a:r  z k i:rL  z k u:u   くゃz ky au   くゅz ky uu   くょz ky ou   けぇz k e:u   こぉz k o:u   がぁz g a:r  z g i:rM  z g u:u   ぐゃz gy au   ぐゅz gy uu   ぐょz gy ou   げぇz g e:u   ごぉz g o:u   さぁz s a:r  z sh i:rO  z s u:u   すゃz sh au   すゅz sh uu   すょz sh ou   せぇz s e:u   そぉz s o:u   ざぁz z a:r  z j i:rR  z z u:u   ずゃz zy au   ずゅz zy uu   ずょz zy ou   ぜぇz z e:u   ぞぉz z o:u   たぁz t a:r"  z ch i:r#  z ts ar$  z ts iu   つぅz ts u:u   つゃz ch au   つゅz ch uu   つょz ch or%  z ts er&  z ts or+  z t e:r3  z t o:u   だぁz d a:r  u   づぅz d u:u   づゃu   づゅu   づょr0  z d e:r6  z d o:u   なぁz n a:r7  z n i:u   ぬぅz n u:u   ぬゃz ny au   ぬゅz ny uu   ぬょz ny ou   ねぇz n e:u   のぉz n o:u   はぁz h a:r8  z h i:rA  z f u:r=  z hy ar>  z hy ur?  z hy ou   へぇz h e:u   ほぉz h o:u   ばぁz b a:r;  z b i:u   ぶぅz b u:u   ぶゅu   べぇz b e:u   ぼぉz b o:u   ぱぁz p a:r<  z p i:u   ぷぅz p u:u   ぷゃz py au   ぷゅz py uu   ぷょz py ou   ぺぇz p e:u   ぽぉz p o:u   まぁz m a:r9  z m i:u   むぅz m u:u   むゃz my au   むゅz my uu   むょz my ou   めぇz m e:u   もぉz m o:u   やぁz y a:u   ゆぅz y u:u   ゆゃu   ゆゅu   ゆょz y o:u   よぉu   らぁz r a:r:  z r i:u   るぅz r u:u   るゃz ry au   るゅz ry uu   るょz ry ou   れぇz r e:u   ろぉz r o:u   わぁz w a:u   をぉu   う゛r.  z d ir-  z dy ar/  z dy ur1  z dy or'  z t ir(  z ty ar*  z ty ur,  z ty orN  z s irP  z z u arQ  z z iz z urS  z z erT  z z or@   rB   rD   rL   rN   r  z sh erP   rX   rZ   r!  z ch er\   r2  z t uu   とゃu   とゅu   とょr4  z d o ar5  z d uu   どゃu   どゅu   どょr^   r`   rb   rd   rf   rh   rr   rt   rv   rx   rz   r|   rF   rH   rJ   r  z j er  z j ar  z j ur   z j or  rR   rT   rV   r~   z by ar   r   z by or   r   r   rU  z u arV  z w irW  z w erX  z w orj   z f arl   z f iz f urn   z f erp   z f ou   あz au   いz ir  z uu   えz eu   おz or   z k ar   z k ir   z k ur   z k er   z k or   z s ar   z sh ir   z s ur   z s er   z s or   z t ar   z ch ir   z ts ur   z t er   z t or   z n ar   z n ir   z n ur   z n er   z n or   z h ar   z h ir   r   z h er   z h or   z m ar   z m ir   z m ur   z m er   z m or   z r ar   z r ir   z r ur   z r er   z r or   z g ar   z g ir   z g ur   z g er   z g or   z z ar   z j ir   r   r   r   z d ar   r   r   z d er   z d or   r   r   r   r   r   z p ar   z p ir   z p ur   z p er   z p or   r  z y ur  z y or  z w ar  r  rB  z Nr  z qrC  rE  rF  rG  rH  rY  zo uzo:r8   :r7   r<   r;   r	  z:+N)r/   r   rd  strip)r#   patternZreplace_strr   r   r    hiragana2julius  sL  rp  )r'   )r'   TFF)r6   )-
__future__r   r   r=   Z
conv_tabler   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   compatr   	frozensetrg  compilere  r!   r$   r&   r*   r,   r-   r.   r4   r5   r>   r  rl  rp  r   r   r   r    <module>   s*   \






M
9)G 