o
    Jεi                     @   sL   ze d  W n ey   eZ eZY nw G dd deZG dd deZdS )    c                   @   sv   e Zd ZdZedZedZdddZedd Z	ed	d
 Z
edd Zedd Zedd Zdd Zdd ZdS )SyllablezHangul syllable interfaceu   가u   힣Nc                 C   sv   |d u r|d u rt d|d ur|d urt d|rt|}| j|  kr*| jks6n t d|| j| j|| _d S )Nz=__init__ takes char or code as a keyword argument (not given)z>__init__ takes char or code as a keyword argument (both given)z;__init__ expected Hangul syllable but {0} not in [{1}..{2}])	TypeErrorordMINMAXformatcode)selfcharr    r   H/home/ubuntu/.local/lib/python3.10/site-packages/hangul_romanize/core.py__init__   s   
zSyllable.__init__c                 C   s   | j | j S N)r   r   r	   r   r   r   index   s   zSyllable.indexc                 C   s
   | j d S )NiL  r   r   r   r   r   initial       
zSyllable.initialc                 C   s   | j d d S )N      r   r   r   r   r   vowel$   s   zSyllable.vowelc                 C   s
   | j d S )Nr   r   r   r   r   r   final(   r   zSyllable.finalc                 C   s
   t | jS r   )unichrr   r   r   r   r   r
   ,   r   zSyllable.charc                 C   s   | j S r   )r
   r   r   r   r   __unicode__0   s   zSyllable.__unicode__c              
   C   s"   d | j| j| jd| jd| jdS )Nz'<Syllable({}({}),{}({}),{}({}),{}({}))> )r   r   r
   r   r   r   r   r   r   r   __repr__3   s   zSyllable.__repr__NN)__name__
__module____qualname____doc__r   r   r   r   propertyr   r   r   r   r
   r   r   r   r   r   r   r      s"    





r   c                   @   s    e Zd ZdZdd Zdd ZdS )
TransliterzGeneral transliting interfacec                 C   s
   || _ d S r   )rule)r	   r#   r   r   r   r   ;   s   
zTransliter.__init__c              	   C   s   g }d}d}|D ]3}z|t |f}W n ty   |df}Y nw |d dur7| j|||d}|dur7|| |}|}q|durQ| j||dd}|durQ|| d|S )zkTranslit text to romanized text

        :param text: Unicode string or unicode character iterator
        r   Nr   )prepostr   )r   r   r#   appendjoin)r	   textresultr$   nowcr%   outr   r   r   translit>   s(   


zTransliter.translitN)r   r   r   r    r   r-   r   r   r   r   r"   8   s    r"   N)unicode	NameErrorstrchrr   objectr   r"   r   r   r   r   <module>   s   -