
    wi                         d dl Z d dlmZmZmZ d dlZddlmZ ddlm	Z	 ddl
mZmZmZmZmZ  G d de          Z G d	 d
e          Z G d de j                  Z G d de j                  Z G d d          ZdS )    N)DictListTuple   )JConv)Ch)A2H2IConvK2Sym2c                       e Zd ZdS )PyKakasiExceptionN__name__
__module____qualname__     _/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/pykakasi/kakasi.pyr   r              Dr   r   c                       e Zd ZdS )UnknownCharacterExceptionNr   r   r   r   r   r      r   r   r   c                   "    e Zd ZdZdZdZdZdZdS )_TYPEr               N)r   r   r   KANJIKANAHIRAGANASYMBOLALPHAr   r   r   r   r      s'        EDHFEEEr   r   c                   &    e Zd ZdZdZdZdZdZdZdS )_ACTIONr   r   r   r   r      N)	r   r   r   $NOBUFOUT_AND_OUTPUT_CURRENT_AND_NEXTBUFOUT_AND_SKIP_CURRENT"BUFOUT_AND_OUTPUT_CURRENT_AND_NEXTPUT_AND_NEXTBUFOUT_AND_NEXT
DO_NOTHINGr   r   r   r&   r&       s/        +,()*&LOJJJr   r&   c                   Z    e Zd ZdZd Zed             Zdedee	eef                  fdZ
dS )Kakasiz/Kakasi is a conversion class for Japanese text.c                 R    t                      | _        t                      | _        d S N)r   _jconvr   _iconv)selfs    r   __init__zKakasi.__init__,   s    ggggr   c                 *    t          j        |          S r1   )jaconv	normalize)clstexts     r   r8   zKakasi.normalize0   s    %%%r   r:   returnc                 R   t          |          dk    r
dddddddgS d}d}g }d}t          j        }|t          |          k     r||         t          j        v rt          j        }t          j        }nh||         t          j        v rt          j	        }nFt          j        ||                   r7|t          j        k    rt          j	        }nt          j        }t          j        }nt          j        ||                   r7|t          j        k    rt          j	        }nt          j        }t          j        }nt          j        ||                   r7|t          j        k    rt          j	        }nt          j        }t          j        }nSt#          j        ||                   r7|t          j        k    rt          j        }nt          j        }t          j        }n| j                            ||                   rt          |          dk    r.|                    | j                            ||                     | j                            ||d         |          \  }}	t          j        }|	dk    r"||||	z            }|}||	z  }t          j        }nG||         }d}|dz  }t          j        }n*dt3          ||                   cxk    rdk    s%n dt3          ||                   cxk    rd	k    rbn n_t          j        }t          |          dk    r.|                    | j                            ||                     |dz  }t          j        }nt          |          dk    r.|                    | j                            ||                     |                    | j                            ||         d                     |dz  }t          j        }|t          j        k    rO|||         z  }|||         z  }|                    | j                            ||                     d}d}|dz  }n|t          j        k    rXt          |          dk    r.|                    | j                            ||                     ||         }||         }|dz  }n/|t          j	        k    r|||         z  }|||         z  }|dz  }n|t          j        k    rt          |          dk    r.|                    | j                            ||                     |                    | j                            ||         ||                              d}d}|dz  }nm|t          j        k    rKt          |          dk    r.|                    | j                            ||                     d}d}|dz  }n|t          j        k    rn	 |t          |          k     t          |          dk    r.|                    | j                            ||                     |S )
zHConvert input text to dictionary contains KANA, HIRA and romaji results.r    )origkanahirahepburnpassportkunreiNr   i   i  i   i )lenr   r    r   endmarkr#   r&   r,   long_symbolsr+   r   isRegionr!   r
   r"   r	   r$   r   r(   r2   appendr3   convertr-   r)   ordr*   )
r4   r:   original_text	kana_text_resulti	prev_typeaction_flagtlns
             r   rI   zKakasi.convert4   s    t99>> ! "  	 	 	K	 #d))mmAw"*$$!L	%5aBO++ &2T!W%% 61
**")"6KK")"9K!J		T!W%% 01..")"6KK")"9K!N		T!W%% *1++")"6KK")"9K!K		tAw'' $1,,")"9KK")"NK!L		%%d1g.. 1}%%))NN4;#6#6}i#P#PQQQ++DHmDD2!K	66$(QV$4M !IGA")"4KK$(GM "IFA")"AKK3tAw<<111161111WDG5X5X5X5XPX5X5X5X5X5X!L	}%%))NN4;#6#6}i#P#PQQQQ%0 }%%))NN4;#6#6}i#P#PQQQt{2247B??@@@Q%0 gHHHa(T!W$	t{22=)LLMMM "	Q 777}%%))NN4;#6#6}i#P#PQQQ $Q G	Q 444a(T!W$	Q!MMM}%%))NN4;#6#6}i#P#PQQQt{2247DGDDEEE "	Q ???}%%))NN4;#6#6}i#P#PQQQ "	Q 222E #d))mmJ }!!NN4;..}iHHIIIr   N)r   r   r   __doc__r5   classmethodr8   strr   r   rI   r   r   r   r/   r/   )   s{        99   & & [&~C ~Dc3h$8 ~ ~ ~ ~ ~ ~r   r/   )enumtypingr   r   r   r7   kanjir   
propertiesr   scriptsr	   r
   r   r   r   	Exceptionr   r   Enumr   r&   r/   r   r   r   <module>r]      sn    $ $ $ $ $ $ $ $ $ $              , , , , , , , , , , , , , ,	 	 	 	 		 	 	 		 	 	 	 	 1 	 	 	    DI       di   I I I I I I I I I Ir   