o
    Ni'                     @   s   d dl mZmZmZmZmZ d dlmZ ddlmZm	Z	 ddl
mZmZ ddlmZ ddlmZmZmZmZ G dd	 d	e	ZG d
d de	ZG dd de	ZG dd de	ZG dd dZedddG dd deZG dd dZdS )    )DictListOptionalTupleUnion)
deprecated   )KakasiPyKakasiException)ItaijiJConv)Ch)A2H2K2Sym2c                   @      e Zd ZdS )UnsupportedRomanRulesExceptionN__name__
__module____qualname__ r   r   C/home/ubuntu/.local/lib/python3.10/site-packages/pykakasi/legacy.pyr          r   c                   @   r   )UnknownOptionsExceptionNr   r   r   r   r   r      r   r   c                   @   r   )InvalidModeValueExceptionNr   r   r   r   r   r      r   r   c                   @   r   )InvalidFlagValueExceptionNr   r   r   r   r   r      r   r   c                   @   s   e Zd ZU g dZee ed< g dZee ed< g dZee ed< dd Z	d	ed
ee
eef  fddZeddddedeeeef  d
dfddZeddddd Zedddd	ed
efddZdS )kakasiJHKEa_keys)r$   r#   r!   r"   _values)HepburnKunreiPassport_roman_valsc              	   C   sd   t  | _i | _d d d d d d| _dddddd| _ddddddddd| _ddi| _d| _d| _d S )Nr   FT)psfcCUutrr'    )	r	   _kakasi_conv_mode_furi_flag_option
_separator_separator_stringselfr   r   r   __init__%   s4   


zkakasi.__init__textreturnc                 C   s   | j |S N)r5   convertr>   r@   r   r   r   rC   F      zkakasi.convert @ Old API will be removed in v3.0.versionreasonfrtoNc                 C   s  || j v r>|d u rd | j|< d S t|tr:|d | jv r:|d | j|< t|dkr6|d dkr8d| j|< d S d S d S td|| j	 v rUt|t
rQ|| j|< d S td|dkrnt|trj|| jv rj|| jd< d S td	|d
krt|tr||| _d S tdtd)Nr      r   FTzInvalid value for modeInvalid flag valuer3   zUnknown roman table nameSzIncompatible separator valueUnhandled options)r%   r7   
isinstancestrr&   lenr8   r   r9   keysboolr   r*   r:   r   r;   r   r>   rK   rL   r   r   r   setModeJ   s,   



zkakasi.setModec                 C   s   t | jd | jd d| jd< t| jd | jd d| jd< t| jd | jd d| jd< t| jd | jd< t| jd | jd< | S )Nr    r3   )methodr!   r"   r#   r$   )J2r7   r:   r6   r   r   r   r   r=   r   r   r   getConverterg   s   zkakasi.getConverterc                 C   sj  d}d}d}	 |t |kr	 |S | jd || rd}n6| jd || r*d}n)| jd || r7d}n| jd || rDd}n| jd	 || rQd	}nd
}|dv rt|| t |}| j| ||| \}}|dkr||||  }	|}
||7 }n|||d  }	| jd r|	}
nd}
|d7 }n|dv rLd}	d}
|t |k rK|| dv r| j| d urt |
dkr|	|| 7 }	|
|
d  }
|d7 }nyt |
dkr|	|| 7 }	|
d7 }
|d7 }nj|	|| 7 }	|
|| 7 }
|d7 }nY| j| || rDt|| t |}| j| ||| \}}|dkr,|	||||  7 }	|
|7 }
||7 }n|||d  }	| jd r=|	}
nd}
|d7 }nn|t |k sn||| 7 }|d7 }q|dv rq| jd rg|
 }
n
| jd rq|
 }
|| j	v r| j
| r||	d |
 d 7 }n||
7 }| jd r|t | j d  | jkr|t |k r|| tjvr|| j7 }q)N     r   Tr    r!   r"   r#   r$   o)r    r#   r   r2   z???)r!   r"   r$   u   ー―−ｰ-r0   r/   []r,   )rT   r6   isRegionminrC   r9   r7   upper
capitalizer%   r8   r;   r   endmark)r>   r@   _MAXLENotextimodewr2   l1origchunkr   r   r   dop   s   e






*


z	kakasi.do)r   r   r   r%   r   rS   __annotations__r&   r*   r?   r   rC   r   r   r   rV   rX   r[   rp   r   r   r   r   r      s   
 !
$


r   rF   rG   rH   c                       sX   e Zd Z fddZdd Zdedeeeef  ddfd	d
Z	dedefddZ
  ZS )wakatic                    s    t t|   t | _d| _d S )NT)superrr   r?   r   _jconv_stater=   	__class__r   r   r?      s   
zwakati.__init__c                 C   s   | S rB   r   r=   r   r   r   r[      s   zwakati.getConverterrK   rL   rA   Nc                 C   s6   || j  v rt|tr|| j |< tdtdd S )NrO   rQ   )r9   rU   rR   rV   r   r   rW   r   r   r   rX      s   

zwakati.setModer@   c                 C   s>  t |dkrdS d}d}|t |k r| j|| r| j||d  d\}}|dkr9|||  }|d7 }d| _n^|| t |k rj| jrR|||||   | j }n|| j ||||   | j }d| _|| }n-| jrz|||||   }	 |S || j ||||   }	 |S d| _|||  }|d7 }|t |k s|S )Nr   r]   r   FT)rT   rt   rc   rC   ru   r;   )r>   r@   ri   rj   _lnr   r   r   rp      s:    
z	wakati.do)r   r   r   r?   r[   rS   r   r   rV   rX   rp   __classcell__r   r   rv   r   rr      s
    "rr   c                   @   sT   e Zd ZddedefddZdefdd	Zd
eeef fddZdd Z	dd Z
dS )rZ   r!   r'   rk   rY   c                 C   sP   t  | _t | _|dkr| j| _d S |dv r"t||| _| j| _d S | j	| _d S )Nr!   )r$   r"   )
r   _itaijir   rt   	convert_hrC   r   _hconvconvert_nonhconvert_noop)r>   rk   rY   r   r   r   r?     s   zJ2.__init__r.   c                 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   rc   !  s   4zJ2.isRegionrA   c                 C   s   | j |dS )Nr]   )rt   rC   )r>   itextr   r   r   r|   $  s   zJ2.convert_hc                 C   s   |  |d s	dS | |\}}|dkrdS d}d}	 |t|kr&	 ||fS | j||d  \}}|dkr;|d }n|| }|| }q)Nr   )r]   r   r]   Tr   )rc   r|   rT   r}   rC   )r>   r@   r2   rm   mri   r,   nr   r   r   r~   '  s"   
zJ2.convert_nonhc                 C   s   |d dfS )Nr   r   r   rD   r   r   r   r   >  rE   zJ2.convert_noopN)r!   r'   )r   r   r   rS   r?   rc   r   intr|   r~   r   r   r   r   r   rZ     s    rZ   N)typingr   r   r   r   r   r   r   r	   r
   kanjir   r   
propertiesr   scriptsr   r   r   r   r   r   r   r   rr   rZ   r   r   r   r   <module>   s    
A5