o
    Niu                     @   s^   d dl Z d dlZd dlZd dlmZ ddlmZ G dd dZG dd dZG d	d
 d
Z	dS )    N)Tuple   )Configurationsc                	   @   sj   e Zd Zdd ZdefddZejddded	ed
eee	f fddZ
deded
efddZdd ZdS )JConvc                 C   s   t  | _t | _d S N)Kanwa_kanwaItaiji_itaiji)self r   B/home/ubuntu/.local/lib/python3.10/site-packages/pykakasi/kanji.py__init__   s   zJConv.__init__cc                 C   s4   dt |d   kodk n  p| jt |d S )Ni 4  r   i   )ordr
   haskeyr   r   r   r   r   isRegion   s   4zJConv.isRegioni   )maxsizeitextbtextreturnc                 C   s"  d}d}| j |}t|t| }| j|d }|d u r dS | D ]*\}}	t|}
t||
krN||rN|	D ]\}}|d u sE||v rM||
k rM|}|
}q9q$t|D ]9}|t|kr` ||fS ||d  ||d  krq|d7 }qS||t| k r|t|kr| || r|d7 }qS	 qS||fS )Nr    )r   r   r   )	r
   convertlenr   loaditems
startswithrange	_is_vschr)r   r   r   max_lenHstrtextnum_vstablekvlengthyomicon_r   r   r   r      s6   

*
zJConv.convertliteralc                 C   s<   dt |  krdkrn dS || jt |d  v rdS dS )NiA0  i0  i@0  TF)r   	_cl_table)r   r+   r   r   r   r   
_isCletter3   s
   zJConv._isCletterc                 C   s8   dt |  kodkn  pdt |  kodkS   S )Ni  i  i   i  )r   )r   chr   r   r   r   8   s   8zJConv._is_vschrN)__name__
__module____qualname__r   strr   	functools	lru_cacher   intr   boolr-   r   r   r   r   r   r      s    
 r   c                   @   sD   e Zd Zde dZdd Zdd Zdd Zd	e	d
e	fddZ
dS )r	   N)_itaijidict_lockc                 O   $   t j| g|R i |}| j|_|S r   object__new___shared_state__dict__clspr%   r   r   r   r   r<   A      zItaiji.__new__c              	   C      | j d u rQ| j? | j d u r7ttj}t|d}t|| _ W d    n1 s*w   Y  W d    d S W d    d S W d    d S 1 sJw   Y  d S d S Nrb)r7   r8   r   dictpathjisyo_itaijiopenpickler   )r   
itaijipathdr   r   r   r   F      

"zItaiji.__init__c                 C   s
   || j v S r   )r7   r   r   r   r   r   N   s   
zItaiji.haskeyr"   r   c                 C   s   | | jS r   )	translater7   )r   r"   r   r   r   r   Q   s   zItaiji.convert)r/   r0   r1   	threadingLockr=   r<   r   r   r2   r   r   r   r   r   r	   <   s    r	   c                   @   s8   e Zd Ze ddZdd Zdd Zdefdd	Z	dS )
r   N)r8   _jisyo_tablec                 O   r9   r   r:   r?   r   r   r   r<   [   rB   zKanwa.__new__c              	   C   rC   rD   )rP   r8   r   rF   jisyo_kanwarH   rI   r   )r   rF   rK   r   r   r   r   `   rL   zKanwa.__init__charc                 C   s   t |d }| j|d S )Nr   )r   rP   get)r   rR   keyr   r   r   r   h   s   z
Kanwa.load)
r/   r0   r1   rN   rO   r=   r<   r   r2   r   r   r   r   r   r   X   s
    r   )
r3   rI   rN   typingr   
propertiesr   r   r	   r   r   r   r   r   <module>   s   .