
    wiߏ                     0   d dl mZ d dlZd dlZddlm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  e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+d!dZ,d Z-d Z.d Z/d Z0d Z1dS )"    )unicode_literalsN   )map)
H2HK_TABLE	H2K_TABLEH2Z_AH2Z_ADH2Z_AKH2Z_ALLH2Z_DH2Z_DKH2Z_KHEP2KANAJULIUS_LONG_VOWEL	K2H_TABLEKANA2HEPSMALL_KANA2NORMAL_KANAZ2H_AZ2H_ADZ2H_AKZ2H_ALLZ2H_DZ2H_DKZ2H_Ksdfghjklqwrtypzxcvbnmc                 <    t          t          |           D ]}||= |S N)r   ord)ignoreconv_map	characters      ]/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/jaconv/jaconv.py_exclude_ignorecharr#   #   s+    f%%    	YO    c                 ,    |                      |          S r   )	translate)textr    s     r"   _convertr(   )   s    >>(###r$   c                     |r2t          ||                                          }t          | |          S t          | |          S r   )r#   copyr(   )r'   r   r    	_conv_maps       r"   
_translater,   -   sA     )'@@	i(((D(###r$    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='ど'))
    マどマギ
    )r,   r   r'   r   s     r"   	hira2katar0   4       , dFI...r$   c                 .    t          | |t                    S )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='み'))
    ﾄﾓｴﾏみ
    )r,   r   r/   s     r"   
hira2hkatar3   M   s    , dFJ///r$   c                 .    t          | |t                    S )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='ン'))
    まみさン
    )r,   r   r/   s     r"   	kata2hirar5   f   r1   r$   c                 Z    d}t          j        |t                     t          | |          S )Nzi`enlargesmallkana` is deprecated and will be removed in future versions. Use `enlarge_smallkana` instead.)warningswarnUserWarningenlarge_smallkana)r'   r   warn_msgs      r"   enlargesmallkanar<      s0    	,  M(K(((T6***r$   c                 .    t          | |t                    S )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('キュゥべえ'))
    キユウべえ
    )r,   r   r/   s     r"   r:   r:      s    , dF$:;;;r$   TFc                    d }|r&|r|rt           }n:t          }n2|rt          }n(t          }n |r|rt          }nt
          }n|rt          }ni }|r ||           } |r"t          ||                                          }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                 F   |                      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 )5z4Convert Hankaku Dakuten Kana to Zenkaku Dakuten Kanau   ｶﾞ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   ヴ)replacer'   s    r"   _conv_dakutenzh2z.<locals>._conv_dakuten   s   ||He,,44XuEE||He,,44XuEE||He,,44XuEE||He,,44XuEE||He,,44XuEE||He,,44XuEE||He,,44XuEE||He,,44XuEE||He,,44XuEE||He,,44XuEE||He,,44XuEE||He,,44XuEE||He,,44XuEEEr$   )
r   r	   r
   r   r   r   r   r#   r*   r(   )r'   r   kanaasciidigitrB   h2z_maps          r"   h2zrG      s    BF F F    	 !!  	GGGG	 	 	GGGG 	GGG #}T"" >%fgllnn==D'"""r$   c                 (    t          | ||||          S zAn alias of h2zrG   r'   r   rC   rD   rE   s        r"   hankaku2zenkakurL          tVT5%000r$   c                 (    t          | ||||          S rI   rJ   rK   s        r"   han2zenrO      rM   r$   c                     |r&|r|rt           }n:t          }n2|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
    )
r   r   r   r   r   r   r   r#   r*   r(   )r'   r   rC   rD   rE   z2h_maps         r"   z2hrR      s    @   	 !!  	GGGG	 	 	GGGG 	GGG >%fgllnn==D'"""r$   c                 (    t          | ||||          S zAn alias of z2hrR   rK   s        r"   zenkaku2hankakurV   0  rM   r$   c                 (    t          | ||||          S rT   rU   rK   s        r"   zen2hanrX   5  rM   r$   NFKCc                    |                      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          j        ||           S )uC  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 : Literal['NFC', 'NFD', 'NFKC', 'NFKD'], 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   ─)r@   unicodedata	normalize)r'   modes     r"   rb   rb   :  s   . <<u%%--eU;;D<<s##++E377??sKKD<<s##++E377??cJJRRSWY\]]D<<s##++E377??sKKSSTY[^__D<<s##++E377??sKKSSTY[^__DUE""										 	 <<u%%--eU;;D t,,,r$   c                    |                      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Φ          } |                      ddЦ                               ddҦ                               ddԦ          } |                      dd֦                               ddئ          } |                      dd¦                               ddĦ                               ddƦ          } |                      ddݦ                               ddߦ                               dd          } |                      dd                               dd          } |                      ddȦ          } |                      dd          } |                      dd|          } t          | t                    } d| v rt          |           }|                    d          }t          |          |dz   k    r d                    |dd                   dz   S |dk    rd||<   n#||dz            dk    rd||<   n||dz            ||<   d                    |          } d| v | S )u!  Convert Hiragana to Roman-input-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   ゐwi   をwo   ゑwe   ゔぁva   ゔぃviu   ゔぅvuu   ゔぇve   ゔぉvo   ゃ   ゅ   ょ   ぁa   ぃi   ぅu   ぇe   ぉo   ゎ   ゔvu   ヵ   っr   r-   Nxtsur   )r@   r(   r   listindexlenjoin)r'   charstsu_poss      r"   kana2alphabetrV  `  s   $ <<%((005AAII(TYZZD<<%((005AAII(TYZZD<<%((005AAII(TYZZD<<$''//$??GGRVWWD<<%((005AAII(TYZZD<<%((005AAII(TYZZD<<%((005AAII(TYZZD<<$''//$??GGRVWWD<<$''D<<%((005AAII(TYZZD<<%((005AAII(TYZZD<<%((005AAII(TYZZD<<%((005AAII(TYZZD<<t$$,,UD99AA%NND<<t$$,,UD99AA%NND<<t$$,,UD99AA%NND<<t$$,,UD99AA%NND<<t$$,,UD99AA%NND<<t$$,,UD99AA%NND<<t$$,,UD99AA%NND<<t$$,,UD99AA%NND<<t$$D<<t$$,,UD99AA%NND<<t$$,,UD99AA%NND<<u%%--eT::BB5$OOD<<t$$,,UD99AA%OOD<<u%%--eT::BB5$OOD<<t$$,,UD99AA%NND<<t$$,,UD99AA%NND<<t$$,,UD99AA%NND<<t$$,,UD99AA%NND<<t$$,,UD99AA%NND<<t$$,,UD99AA%NND<<t$$,,UD99D<<t$$,,UD99AA%NND<<t$$,,UD99AA%NND<<t$$D<<$''//$??GGRWXXD<<$''//$??D<<t$$,,UD99AA%NND<<s##++E377??sKKD<<s##++E377D<<t$$D<<t$$D<<t$$DD(##D
4--T

++e$$u::1$$775":&&//a<<#E'NN7Q;5((#E'NN"7Q;/E'Nwwu~~ 4-- Kr$   c                 :    t          t          |                     S )u!  Convert Katakana to Roman-input-style alphabets

    Parameters
    ----------
    text : str
        Katakana string.

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

    Examples
    --------
    >>> print(jaconv.kata2alphabet('マミサン'))
    mamisan
    )rV  r5   rA   s    r"   kata2alphabetrX    s    $ 4)))r$   c                 |5   |                                  } |                     d          r t          |           dk    r| dd         dz   } |                     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/          } |                     d0d1                              d2d3                              d4d5          } |                     d6d7                              d8d9          } |                     d:d;                              d<d=                              d>d?          } |                     d@dA                              dBdC          } |                     dDdE                              dFdG                              dHdI          } |                     dJdK                              dLdM          } |                     dNdE                              dOdP                              dQdI          } |                     dRdK                              dSdM          } |                     dTdU                              dVdW                              dXdY          } |                     dZd[                              d\d]          } |                     d^dU                              d_d[                              d`dW          } |                     dad]                              dbdY          } |                     dcdd                              dedf                              dgdh          } |                     didj                              dkdl          } |                     dmdn                              dodp                              dqdr          } |                     dsdt          } |                     dudn                              dvdw                              dxdp          } |                     dydr                              dzdt          } |                     d{dn                              d|dw                              d}dp          } |                     d~dr                              ddt          } |                     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/d0                              d1d2                              d3d4          } |                     d5d6                              d7d8          } |                     d9d:          } |                     d;d<                              d=d<          } |                     d>d<                              d?d<          } |                     d@dA                              dBdA          } |                     dCdD                              dEdD          } |                     dFdG                              dHdG          } |                     dIdJ                              dKdL                              dMd          } |                     dNdO                              dPdQ          } |                     dRdS                              dTdS          } |                     dUdV                              dWdV          } |                     dXdY                              dZdY          } |                     d[d\                              d]d\          } |                     d^d_                              d`d_          } |                     dadb          } |                     dcdd          } |                     dedU                              dfdg                              dhdW          } |                     did]                              djdY          } |                     dkdl                              dmdn                              dodp          } |                     dqdr                              dsdt          } |                     dudv                              dwdg                              dxdy          } |                     dz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          } |                     ddG                              dd          } |                     dd                              ddG                              dd          } |                     dd                              dd          } |                     dd¦                              dÐdĦ                              dŐdĦ          } |                     dƐdb                              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ͦ                              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dL                              dd	          } |                     d
d                              dd          } |                     dd          } |                     dd                              ddV                              dd          } |                     ddY                              dd          } |                     ddd                              ddd                              ddd          } t	          | t
                    } g }t          |           D ]&\  }}|t          v rd<}|                    |           'd	                    |          S (  u  Convert alphabets to Hiragana

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

    Return
    ------
    str
        Hiragana string.

    Examples
    --------
    >>> print(jaconv.alphabet2kana('mamisan'))
    まみさん
    h   NrN     うtchu   っchbbu   っbccu   っcddu   っdffu   っfggu   っghhu   っhjju   っjkku   っkllu   っlmmu   っmppu   っpqqu   っqrru   っrssu   っsttu   っtvvu   っvwwu   っwxxu   っxyyu   っyzzu   っzrf   re   kyi   きぃrh   rg   kyeu   きぇrj   ri   rl   rk   gyi   ぎぃrn   rm   gyeu   ぎぇrp   ro   rr   rq   r   r   rt   rs   she   しぇrv   ru   syasyi   しぃsyusyesyozyarw   zyury   zyor{   zyi   じぃzye   じぇjyajyijyujyejyodya   ぢゃdyi   ぢぃdyu   ぢゅdye   ぢぇdyo   ぢょr~   r}   r   r   che   ちぇr   r   cyacyi   ちぃcyucyecyotyatyityutyetyotsa   つぁtsi   つぃtse   つぇtso   つぉthi   てぃzt'itha   てゃthu   てゅzt'yuthe   てぇtho   てょdha   でゃdhi   でぃzd'idhu   でゅdhe   でぇdho   でょzd'yutwau   とぁtwiu   とぃtwu   とぅtweu   とぇtwo   とぉzt'udwa   どぁdwiu   どぃdwu   どぅdweu   どぇdwo   どぉzd'ur   r   nyi   にぃr   r   nyeu   にぇr   r   r   r   hyi   ひぃr   r   hyeu   ひぇr   r   hwar   hwir   hwer   hwor   hwyu   ふゅfya   ふゃfyufyo   ふょphaphiphu   ふぅphephor   r   myi   みぃr   r   myeu   みぇr   r   r   r   ryi   りぃr   r   ryeu   りぇr   r   r   r   byi   びぃr   r   byeu   びぇr   r   r   r   pyi   ぴぃr   r   pyeu   ぴぇr   r   vyir5  vyuu   ゔゅvyer8  vyou   ゔょwyer1  kwau   くぁkwiu   くぃkwu   くぅkweu   くぇkwou   くぉgwau   ぐぁgwiu   ぐぃgwu   ぐぅgweu   ぐぇgwou   ぐぉswau   すぁswi   すぃswu   すぅsweu   すぇswou   すぉzwa   ずぁzwi   ずぃzwu   ずぅzwe   ずぇzwo   ずぉvyau   ゔゃxturM  rO  ltultsuxyar<  lyaxyur=  lyuxyor>  lyowha   うぁwhi   うぃwhuwhe   うぇwho   うぉxwarI  lwalyirA  xyilyerE  xyexkarL  lkaxkeu   ヶlker   r   nn   んrx   r   r   rz   jer|   r   r   r   r   r   r   r   r   r   r   r   r   zir   r   r   r   r   r   r   r   dir   dur   r   r   r   r   r4  r3  r6  rK  rJ  r9  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   qaqiquqeqocacucocicer   r   r   sir   r   r   r   r   r   r   r   r   titur   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r
  r	  r  r  hur  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#  lalilulelor&  r%  r(  r'  r*  r)  ye   いぇr,  r+  r.  wyir-  wur0  r/  ohu   おおxar?  xixurC  xexorG  zn'xnmr-   )
lowerendswithrR  r@   r(   r   	enumerate
consonantsappendrS  )r'   retrB  chars       r"   alphabet2kanar\    sV   $ ::<<D }}S !c$ii1nnCRCy5 <<w''D<<f%%--dF;;CCD&QQD<<f%%--dF;;CCD&QQD<<f%%--dF;;CCD&QQD<<f%%--dF;;CCD&QQD<<f%%--dF;;CCD&QQD<<f%%--dF;;CCD&QQD<<f%%--dF;;D<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((00AAD<<x((00>>FFuhWWD<<x((00AAD<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((D<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((D<<x((00AAD<<x((00AAII&RZ[[D<<x((00AAD<<x((00AAII%QYZZD<<x((00AAII%QYZZD<<))D<<x((00AAII%QYZZD<<x((00AAII%QYZZD<<x((00AAII%QYZZD<<x((00AAII%QYZZD<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((00BBD<<x((00AAII%QYZZD<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((D<<u%%D<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((00AAD<<x((00AAII%QYZZD<<x((00AAD<<x((D<<u%%--fe<<D<<u%%--fe<<D<<u%%--eU;;D<<u%%--eU;;D<<u%%--eU;;D<<x((00AAII%QVWWD<<x((00AAD<<u%%--eU;;D<<u%%--eU;;D<<u%%--eU;;D<<u%%--eU;;D<<u%%--eU;;D<<u%%D<<e$$D<<h''//e<<DDT8TTD<<h''//h??D<<e$$,,T599AA$NND<<e$$,,T599D<<e$$,,T599AA$NND<<e$$,,T599D<<e$$,,T599AA$NND<<e$$,,T599D<<h''//h??GGeTTD<<h''//h??D<<e$$,,T599AA$NND<<e$$,,T599D<<e$$,,T599AA$NND<<e$$,,T599D<<e$$,,T599AA$NND<<e$$,,T599D<<h''//h??GGeTTD<<h''//h??D<<e$$,,T599AA$NND<<e$$,,T599D<<e$$,,T599AA$NND<<e$$,,T599D<<e$$,,UE::BB4OOD<<e$$,,T599AA$NND<<e$$,,T599AA$NND<<e$$,,T599D<<e$$,,T599AA$NND<<e$$,,T599AA$NND<<h''//h??GGhWWD<<h''D<<e$$,,T599AA$NND<<e$$,,T599D<<e$$,,T599AA$NND<<e$$,,T599D<<e$$,,T599AA$NND<<e$$,,T599D<<e$$,,T599AA$NND<<h''D<<e$$,,T8<<DDUERRD<<e$$,,T599D<<h''D<<e$$,,T599AA$NND<<e$$,,T599D<<e$$,,T599AA#uMMDD(##D
CT??  4:D

4773<<r$   c                 :    t          t          |                     S )u  Convert alphabets to Katakana

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

    Return
    ------
    str
        Katakana string.

    Examples
    --------
    >>> print(jaconv.alphabet2kata('mamisan'))
    マミサン
    )r0   r\  rA   s    r"   alphabet2katar^  d  s    $ ]4(()))r$   c                 4   |                      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̦          } t          D ]\  }}|                    ||           } |                      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 irJ  z i eu   いゃz y au   うぅz u:u   えぇz e eu   おぉz o:u   かぁz k a:rs  z k i:r  z k u:u   くゃz ky au   くゅz ky uu   くょz ky ou   けぇz k e:u   こぉz k o:u   がぁz g a:rv  z g i:r  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:r  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:r  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:r  z t o:u   だぁz d a:r  u   づぅz d u:u   づゃu   づゅu   づょr  z d e:r  z d o:u   なぁz n a:r  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:r  z h i:r  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:r  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 ur  z dy or  z t ir  z ty ar  z ty ur  z ty or  z s ir
  z z u ar  z z iz z ur  z z er  z z ore   rg   ri   rq   rs   ry  z sh eru   r}   r   r  z ch er   r  z t uu   とゃu   とゅu   とょr  z d o ar  z d uu   どゃu   どゅu   どょr   r   r   r   r   r   r   r   r   r   r   r   rk   rm   ro   r  z j er  z j ar  z j ur  z j or  rw   ry   r{   r   z by ar   r   z by or   r   r   r  z u ar   z w ir#  z w er%  z w or   z f ar   z f iz f ur   z f er   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-  r1  r1  z NrM  z qr?  rA  rC  rE  rG  rI  zo uzo:r\   :r[   r`   r_   r/  z:+)r@   r   substrip)r'   patternreplace_strs      r"   hiragana2juliusre  y  s   ( <<V,,D<<V,,D<<V,,D<<V,,D<<W--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<<'**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<<&))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 <<t$$D<<t$$D<<t$$D<<t$$D<<t$$D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<w''D<<v&&D<<v&&D<<v&&D<<v&&D<<w''D<<w''D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<v&&D<<t$$D<<t$$D<<t$$D<<t$$D<<t$$D<<t$$D<<t$$D<<t$$D<<t$$D<<v&&D !2 . .{{;--<<t$$D<<s##D<<s##D<<s##D<<S!!D <<t$$D::<<D<<c""DKr$   )r-   )r-   TFF)rY   )2
__future__r   ra   r7   compatr   
conv_tabler   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	frozensetrX  r#   r(   r,   r0   r3   r5   r<   r:   rG   rL   rO   rR   rV   rX   rb   rV  rX  r\  r^  re   r$   r"   <module>rk     s   ' ' ' ' ' '                                                        0 Y.//
  $ $ $$ $ $/ / / /20 0 0 02/ / / /2+ + + +< < < <2I# I# I# I#X1 1 1 1
1 1 1 1
6# 6# 6# 6#r1 1 1 1
1 1 1 1
#- #- #- #-LL L L^* * **] ] ]@* * **E E E E Er$   