
    wi1                         d dl Z d dlZd dlmZ ddlmZmZmZ  G d d          Z G d d          Z	 G d	 d
          Z
 G d d          Z G d d          Z G d d          ZdS )    N)Dict   )ChConfigurationsConvert_Tablesc            	           e Zd ZU dZeed<   d Z ej        d          de	de	de
e	e	f         fd	            Zd
e	de	fdZd
e	de	fdZd
e	de	fdZd
e	de	fdZd
e	de	fdZd
e	de	fdZdS )IConv    _MAXLENc                    t          dd          | _        t          dd          | _        t          dd          | _        t          d          | _        t          d          | _        t          d          | _        d S )NaHepburn)methodKunreiPassportKH)	H2_hahconv_hakconv_hapconv_hkconvK2_khconvSym2_saconvselfs    `/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/pykakasi/scripts.py__init__zIConv.__init__   si    3y1113x0003z222#ww#wwCyy       )maxsizeotexthirareturnc           
      P   |                      |          }|                     |          }||||                     |                     |                    |                     |                     |                    |                     |                     |                    d}|S )N)origr%   kanahepburnkunreipassport)_h2k_k2h_s2a_h2ah_h2ak_h2ap)r   r$   r%   r)   tmps        r   convertzIConv.convert   s    yyyyyyD!1!122ii

4 0 011		$**T"2"233
 
 
r!   textc                    d}d}t          |          }||k     rt          || j        z   |          }| j                            |||                   \  }}|dk    r||z  }||z  }nS||         t
          j        v r*t          |          dk    r||d         z  }n|dz  }|dz  }n||||dz            z  }|dz  }||k     |S )N r   -r   )lenminr   r   r4   r   long_symbols)r   r5   resultilengthwtl1s           r   r/   z
IConv._s2a&   s    T&jjA$f--Al**4!955GQAvv!RaBO++v;;??fRj(FFcMFQ$q1q5y/)Q &jj  r!   c                 :   d}d}|t          |          k     rt          || j        z   t          |                    }| j                            |||                   \  }}|dk    r||z  }||z  }n||||dz            z  }|dz  }|t          |          k     |S Nr7   r   r   )r:   r;   r   r   r4   r   r5   r=   r>   r@   rA   rB   s          r   r.   z
IConv._k2h<       #d))mmA$c$ii00Al**4!955GQAvv!R$q1q5y/)Q #d))mm r!   c                 :   d}d}|t          |          k     rt          || j        z   t          |                    }| j                            |||                   \  }}|dk    r||z  }||z  }n||||dz            z  }|dz  }|t          |          k     |S rD   )r:   r;   r   r   r4   rE   s          r   r-   z
IConv._h2kJ   rF   r!   c                 :   d}d}|t          |          k     rt          || j        z   t          |                    }| j                            |||                   \  }}|dk    r||z  }||z  }n||||dz            z  }|dz  }|t          |          k     |S rD   )r:   r;   r   r   r4   rE   s          r   r1   zIConv._h2akX       #d))mmA$c$ii00Am++D1I66GQAvv!R$q1q5y/)Q #d))mm r!   c                 :   d}d}|t          |          k     rt          || j        z   t          |                    }| j                            |||                   \  }}|dk    r||z  }||z  }n||||dz            z  }|dz  }|t          |          k     |S rD   )r:   r;   r   r   r4   rE   s          r   r0   zIConv._h2ahf   rI   r!   c                 :   d}d}|t          |          k     rt          || j        z   t          |                    }| j                            |||                   \  }}|dk    r||z  }||z  }n||||dz            z  }|dz  }|t          |          k     |S rD   )r:   r;   r   r   r4   rE   s          r   r2   zIConv._h2apt   rI   r!   N)__name__
__module____qualname__r   int__annotations__r    	functools	lru_cachestrr   r4   r/   r.   r-   r1   r0   r2    r!   r   r	   r	      sO        GS! ! ! Y%%%S  S#X    &%     ,          # #    # #    # #      r!   r	   c                   J    e Zd ZdZdZdZd
dZed             Zd Z	d Z
d	 ZdS )r   N`      r   c                 >   |dk    rv|dk    rt          t          j                  | _        nC|dk    rt          t          j                  | _        nt          t          j                  | _        | j        | _        d S |dk    r| j        | _        d S | j	        | _        d S )Nr   r   r   r   )
Jisyor   jisyo_passport_hira	_kanadictjisyo_kunrei_hirajisyo_hepburn_hira	convert_ar4   	convert_Kconvert_noopr   moder   s      r   r    zH2.__init__   s    3;;##!&~'I!J!J8##!&~'G!H!H!&~'H!I!I>DLLLS[[>DLLL,DLLLr!   c                     dt          |d                   cxk     odk     nc p"dt          |d                   cxk    odk    nc S )N@0  r   0  P R )ordclschars     r   isRegionzH2.isRegion   sY    DG----v----SCQLL1S1S1S1SG1S1S1S1SSr!   c                 >   d}d}t          | j                                        t          |                    }t	          d|dz             D ]N}| j                            |d |                   r*||k     r$|}| j                            |d |                   }O||fS Nr7   r8   r   r;   r[   	maxkeylenr:   rangehaskeylookupr   r5   Hstrmax_lenrxs         r   r^   zH2.convert_a   s    ((**CII66q!a% 	; 	;A~$$T"1"X.. ;Q;;G>00bqb::Dgr!   c                    d}d}t          |          }t          |          D ]}dt          ||                   cxk     rdk     r6n n3|t          t          ||                   | j        z             z   }|dz  }Xdt          ||                   cxk    rdk    r6n n3|t          t          ||                   | j        z             z   }|dz  } ||fS )Nr7   r   rd   re   r   rf   rg   )r:   rq   rh   chr_diff_ediffrt   s         r   r_   zH2.convert_K   s    IIq 	 	ADG----v-----c#d1g,,";<<<1CQLL3333G33333c#d1g,,"<===1gr!   c                     |d         dfS Nr   r   rT   r   r5   s     r   r`   zH2.convert_noop   s    Q|r!   r   )rL   rM   rN   r[   r{   r|   r    classmethodrl   r^   r_   r`   rT   r!   r   r   r      s        IEF- - - - T T [T	 	 	      r!   r   c                       e Zd ZdZdZdZdZddZed             Z	ed             Z
ed             Zd	 Zd
 Zd Zd ZdS )r   NrV   rW   r   c                 z   t          t          j                  | _        |dk    rv|dk    rt          t          j                  | _        nC|dk    rt          t          j                  | _        nt          t          j                  | _        | j        | _	        d S |dk    r| j
        | _	        d S | j        | _	        d S )Nr   r   r   r   )rY   r   jisyo_halfkana_halfkanadictjisyo_passportr[   jisyo_kunreijisyo_hepburnr^   r4   	convert_hr`   ra   s      r   r    zK2.__init__   s    ">#@AA3;;##!&~'D!E!E8##!&~'B!C!C!&~'C!D!D>DLLLS[[>DLLL,DLLLr!   c                     t          |d                   }|                     |          p$|                     |          pd|cxk    odk    nc S )Nr   d g )rh   _is_katakana_is_half_width_kana)rj   rk   chs      r   rl   zK2.isRegion   s[    a\\##^s'>'>r'B'B^gQSF^F^F^F^W^F^F^F^F^^r!   c                 "    d|cxk     odk     nc S )N0  0  rT   rj   r   s     r   r   zK2._is_katakana   $    ####V#####r!   c                 "    d|cxk     odk     nc S )Nie  i  rT   r   s     r   r   zK2._is_half_width_kana   r   r!   c                     d}d}dD ]J}| j                             |d |                   r&|}| j                             |d |                   } nK||fS )Nr7   r8   )   r   )r   rr   rs   )r   r5   ru   rv   rx   s        r   _convert_half_kanazK2._convert_half_kana   su     	 	A!((bqb22 )00bqb:: W}r!   c                 >   d}d}t          | j                                        t          |                    }t	          d|dz             D ]N}| j                            |d |                   r*||k     r$|}| j                            |d |                   }O||fS rn   ro   rt   s         r   r^   zK2.convert_a   s    ((**CII66q!a% 	; 	;A~$$T"1"X.. ;Q;;G>00bqb::DW}r!   c                    d}d}t          |          }d}||k     rdt          ||                   cxk    rdk     r<n n9|t          t          ||                   | j        z
            z   }|dz  }|dz  }nct          ||                   dk    r|dz   }|dz  }|dz  }n9dt          ||                   cxk     rdk     r;n n8|t          t          ||                   | j        z
            z   }|dz  }|dz  }ndt          ||                   cxk    rd	k     rn n|||         z   }|dz  }|dz  }n|                     t          ||                             r||                     ||d                    \  }}|dk    rK||z  }||z  }t          |          d
k    r||z   }n4|t          t          |          | j        z
            z   }n|dz  }|dz  }nn||k     ||fS )Nr7   r   r   r   r   u   んr   i0  r   i0  )r:   rh   rz   r|   r{   r   r   )r   r5   ru   rv   rw   rx   kstrr?   s           r   r   zK2.convert_h   s0   II!ee#d1g,,000000000c#d1g,,"<===1QT!W((h1Q#d1g,,/////////c#d1g,,";<<<1Q3tAw<<0000&00000d1g~1Q))#d1g,,77 #66tABBx@@fA::v%GKA4yyF**#d{#c#d))dj*@&A&AAqLGFAA= !ee> gr!   c                     |d         dfS r~   rT   r   s     r   r`   zK2.convert_noop      Awzr!   r   )rL   rM   rN   r[   r   r{   r|   r    r   rl   r   r   r   r^   r   r`   rT   r!   r   r   r      s        IMEF- - - -  _ _ [_ $ $ [$ $ $ [$  	 	 	$ $ $L    r!   r   c                   *    e Zd ZdZd Zd Zd Zd ZdS )rY   Nc                     t          j        |          }t          |d          5 }t          j        |          | _        d d d            d S # 1 swxY w Y   d S )Nrb)r   dictpathopenpickleload_dict)r   dictnamesrcds       r   r    zJisyo.__init__"  s    %h//#t__ 	(QDJ	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   AAAc                     || j         v S Nr   r   keys     r   rr   zJisyo.haskey'  s    dj  r!   c                     | j         |         S r   r   r   s     r   rs   zJisyo.lookup*  s    z#r!   c                     | j         d         S )N_max_key_len_r   r   s    r   rp   zJisyo.maxkeylen-  s    z/**r!   )rL   rM   rN   r   r    rr   rs   rp   rT   r!   r   rY   rY     sU        E( ( (
! ! !  + + + + +r!   rY   c                   B    e Zd Zd Zedefd            Zd Zd Zd Z	dS )r   c                 F    |dk    r| j         | _        d S | j        | _        d S )Nr   )r^   r4   r`   r   rb   s     r   r    zSym2.__init__2  &    3;;>DLLL,DLLLr!   rk   c                    t          |d                   }t          j        |cxk    ot          j        k    nc pt          j        |cxk    ot          j        k    nc pt          j        |cxk    ot          j        k    nc pt          j        |cxk    ot          j	        k    nc pt          j
        |cxk    ot          j        k    nc pt          j        |cxk    ot          j        k    nc pct          j        |cxk    ot          j        k    nc p?t          j        |cxk    ot          j        k    nc pd|cxk    odk    nc p|dk    p|dk    S )Nr      i^  iQ  i  )rh   r   ideographic_spacepostal_mark_face	wavy_dashideographic_half_fill_spacegreece_Alpha
greece_Rhogreece_Sigmagreece_Omegagreece_alphagreece_omega
cyrillic_Acyrillic_yazenkaku_exc_markzenkaku_number_ninelatin1_inverted_exclamlatin1_y_diaeresis)rj   rk   cs      r   rl   zSym2.isRegion8  s   QLL!Q===="*===== 
CCCCR%CCCCC
155555555
 177777777
 177777777	

 4444bn4444
 #qBBBBB,BBBBB
 )QGGGG"2GGGGG
 !%%%%v%%%%
 F{
 F{	
r!   c                 p   t          |d                   }t          j        |cxk    rt          j        k    r"n nt          j        |t          j        z
           S t          j        |cxk    rt          j        k    r"n nt          j        |t          j        z
           S t          j	        |cxk    rt          j
        k    r"n nt          j        |t          j	        z
           S t          j        |cxk    rt          j        k    r"n nt          j        |t          j        z
           S t          j        |cxk    rt          j        k    rn nt          j        |d                  S |t          j        k    s|t          j        k    rt          j        |d                  S t          j        |cxk    rt          j        k    r"n nt          j        |t          j        z
           S t          j        |cxk    rt          j        k    r/n n,t3          |t          j        z
  t          d          z             S d|cxk    rdk    rn nt3          d|z   dz
            S d|cxk    rdk     rn nt3          d	|z   dz
            S t          j        |cxk    rt          j        k    r"n nt          j        |t          j        z
           S d
S )Nr   0r   i@  A   i!  iA  i_  a   r7   )rh   r   r   r   r   symbol_table_1r   r   symbol_table_2r   r   symbol_table_3r   r   symbol_table_4r   r   cyrillic_table
cyrillic_E
cyrillic_er   zenkaku_slash_marksymbol_table_5zenkaku_number_zeror   rz   r   r   latin1_tabler   r5   r   s      r   _convertzSym2._convertI  s   QLL1;;;;(;;;;;;!0R5I1IJJ\Q@@@@""@@@@@@!0R\1ABB_4444R_44444!0R_1DEE_4444R_44444!0R_1DEE]a11112>11111!0a99"-1#5#5!0a99 A>>>>)>>>>>>!0R5H1HII#qBBBBB,BBBBBBq211CHH<===q""""F"""""vzF*+++q!!!!6!!!!!vzF*+++&!DDDDr/DDDDDD!.q23L/LMM2r!   c                 b    |                      |          }|t          |          dk    r|dfS dS )Nr   r   r7   r   r   r:   r   r5   rA   s      r   r^   zSym2.convert_ad  s4    MM$=SVVaZZa4K5r!   c                     |d         dfS r~   rT   r   s     r   r`   zSym2.convert_noopk  r   r!   N)
rL   rM   rN   r    r   rS   rl   r   r^   r`   rT   r!   r   r   r   1  sw        - - - 
C 
 
 
 [
   6      r!   r   c                   <    e Zd Zd Zed             Zd Zd Zd ZdS )A2c                 F    |dk    r| j         | _        d S | j        | _        d S )NE)	convert_Er4   r`   r   s     r   r    zA2.__init__p  r   r!   c                 p    t           j        t          |d                   cxk    ot           j        k     nc S )Nr   )r   spacerh   deleteri   s     r   rl   zA2.isRegionv  s2    x3tAw<<3333")33333r!   c                    t          |d                   }t          j        |cxk    rt          j        k    r"n nt          j        |t          j        z
           S t          j        |cxk    rt          j        k    r,n n)t          t          j	        |z   t          j        z
            S t          j
        |cxk    rt          j        k    r"n nt          j        |t          j
        z
           S t          j        |cxk    rt          j        k    r,n n)t          t          j        |z   t          j        z
            S t          j        |cxk    rt          j        k    r"n nt          j        |t          j        z
           S dS )Nr   r7   )rh   r   r   at_markr   alpha_table_1
alphabet_A
alphabet_Zrz   	zenkaku_A
square_bra
back_quotealpha_table_2
alphabet_a
alphabet_z	zenkaku_abracket_bratildaalpha_table_3r   s      r   r   zA2._convertz  sJ   QLL8q&&&&BJ&&&&&!/RX??]a00002=00000r|a'"-7888]a00002=00000!/R]1BDD]a00002=00000r|a'"-7888^q,,,,BH,,,,,!/R^1CEE2r!   c                 V    |                      |          }t          |          r|dfS dS )Nr   r   r   r   s      r   r   zA2.convert_E  s/    MM$q66 	a4K5r!   c                     |d         dfS r~   rT   r   s     r   r`   zA2.convert_noop  r   r!   N)	rL   rM   rN   r    r   rl   r   r   r`   rT   r!   r   r   r   o  sk        - - - 4 4 [4        r!   r   )rQ   r   typingr   
propertiesr   r   r   r	   r   r   rY   r   r   rT   r!   r   <module>r      sZ  
            : : : : : : : : : :t t t t t t t tn5 5 5 5 5 5 5 5pa a a a a a a aH+ + + + + + + +$; ; ; ; ; ; ; ;|" " " " " " " " " "r!   