o
    ·N i-4  ã                   @   s˜   d dl mZmZmZ d dl mZ ddl	m
  m  mZ ddlmZ ddlZddlZddlmZ ddlZd dl mZ dd„ Zd	d
„ Zdd„ Zdd„ ZdS )é   )Ú
GeneralMapÚ
PreProcessÚ
ConvertFix)ÚPostProcessé    N)Ú
cmp_to_key)Úgimeltrac                 C   s8   d| d v rt | d ƒdkrdS | d |d k rdS dS )Nu   à®ƒr   r   éÿÿÿÿ©Úlen©ÚxÚy© r   úH/home/ubuntu/.local/lib/python3.10/site-packages/aksharamukha/Convert.pyÚ	TamilSort   s
   r   c                 C   s    t | d ƒt |d ƒkrdS dS )Nr   r	   r
   r   r   r   r   ÚlenSort   s   r   c                 C   sr   t jt j t j t j t j t j }t  ||¡}t  |t j¡}t	t
||ƒttƒd}|D ]
\}}|  ||¡} q,| S )N©Úkey)ÚGMÚVowelsÚ
ConsonantsÚCombiningSignsÚNumeralsÚSignsÚAythamÚCrunchSymbolsÚInterÚsortedÚzipr   r   Úreplace)ÚStrngÚSourceÚ	ScriptAllÚSourceScriptÚTargetScriptÚScriptMapAllr   r   r   r   r   ÚconvertInter%   s   $r'   c              	      s
  g }d‰d‰ |t jv r±|t jv r±zttd| ƒ| dd} W n	 ty(   Y nw |dv r3|  dd¡} |  d	d
¡} |  dd¡} t | |¡} dd dd„ t	t
jƒD ƒdg dd„ t  t j|¡dd… D ƒ ¡ d }t  d|¡d t  d|¡d }}t || | d| d | ¡} t d| | |d | ¡} t || d d| | ¡} t d| d || ¡} d}t || | d| d | ¡} t d| | |d | ¡} t || d d| | ¡} t d| d || ¡} |}t| |ƒ} t j}t | |¡} |  dd¡} |  dd ¡} t  t j|¡d! }g }t jD ]:}	t  t  |	¡|¡}
|	d"kr-‡ fd#d„t  t j|¡D ƒ}n	t  t  |	¡|¡}t	t||
ƒƒ}|jdd || }qt|ttƒd$}|D ]\}}|  ||¡} qS|  d%t  t j|¡d&  t  t j|¡d& ¡} |  d%t  t j|¡d'  t  t j|¡d' ¡} t  d(|¡d }|  |d) d| ¡} |d*v r¨|  d+|¡} t | ||¡} nV|t jv r|t jv rzttd| ƒ| dd} W n
 tyÔ   Y nw t jt j t j  t j! t j t j" }t| |ƒ} t  |t j¡}t  ||¡}
t	t||
ƒƒ}|D ]\}}|  ||¡} qt #| ||¡} nð|t jv r|t jv rt $| ¡} tj%| |dd} zttd| ƒ| dd} W n
 tyG   Y nw dd d,d„ t	t
jƒD ƒdg d-d„ t  t j|¡dd… D ƒ ¡ d }t  d|¡d t  d|¡d }}t&|ƒdkr¸t || | d| d | ¡} t d| | |d | ¡} t || d d| | ¡} t d| d || ¡} t&|ƒdkrÅ|  ||¡} t jD ]&}	t  t  |	¡|¡}t  t  |	¡|¡}
t	t||
ƒƒ}|jdd || }qÈt|ttƒd$}|D ]\}}|  ||¡} qùt | ||¡} nù|t jv r|t jv rt $| ¡} tj%| |dd} zttd| ƒ| dd} W n
 ty>   Y nw t  d|¡d t  d|¡d }}|  ||¡} t jD ]N}	t  t  |	¡|¡}|	d.krx‡fd/d„t  t j|¡D ƒ}
n|	d0krŒ‡ fd1d„t  t j|¡D ƒ}
n	t  t  |	¡|¡}
t	t||
ƒƒ}|jdd || }qYt|ttƒd$}|d2krêg d3¢}d4d„ |D ƒ}d5d„ |D ƒ}|| }|D ]\}}||v rát |d6 || ¡} qÍ|  ||¡} qÍn|D ]\}}|  ||¡} qìt '| |¡} t (| ¡} t #| ||¡} nü|t j)v rS|t j)v rSzttd| d7d%¡ ƒ| |dd} W n
 ty3   Y nw t* +¡ }|d8krC|  d9d:¡} |j,| ||d;} t -| ||¡} n´|t jt j v r±|t j)v r±t* +¡ }t.| |d2ƒ} |  d<d=¡ d>d=¡} d?|vrŒd@|vrŒdA|vrŒt dBd| ¡} t/ 0| |¡} d?|v sœ|dCv r¡t/ 1| ¡} |j,| dA|d;} t -| ||¡} nV|t j)v r|t jt j v rzttd| d7d%¡ ƒ| |dd} W n
 tyÜ   Y nw t* +¡ }|j,| |dAd;} t -| ||¡} t 0| |¡} t.| d2|ƒ} |d8kr|  d9d:¡} t/ 2| ¡} | S )DNu   ï€€u   á¹¿ÚFixT)Úreverse)ÚIASTÚISOÚISOPaliÚTitusu   Å­u   uÃ—z{}u   â€Œz()u   â€ú(ú|c                 S   ó   g | ]}d | ‘qS ©ú\r   ©Ú.0r   r   r   r   Ú
<listcomp>N   ó    z!convertScript.<locals>.<listcomp>z\sc                 S   ó   g | ]}|  d d¡‘qS ©Ú.z\.©r    r3   r   r   r   r5   O   ó    r   é   ú)ÚOmMapr   z\1z\2ú^ú$z(\s)u   î”›á¹¿Ã—_î€†u	   î”›á¹¿î€†u   î”›á¹¿Ã—_î€‡u	   î”›á¹¿î€‡é    Ú
VowelSignsc                    ó   g | ]}ˆ | ‘qS r   r   r3   ©ÚDepVr   r   r5   s   r6   r   Ú_é   é   Ú	ViramaMapz[])r   õ   Ã—c                 S   r0   r1   r   r3   r   r   r   r5   ¶   r6   c                 S   r7   r8   r:   r3   r   r   r   r5   ·   r;   r   c                    s   g | ]}|ˆ  ‘qS r   r   r3   )ÚSchwar   r   r5   ö   r6   r   c                    rC   r   r   r3   rD   r   r   r5   ù   r6   ÚRomanSemitic)ÚkÚgÚcÚjÚtÚdÚpÚbu   É½u   Êˆu   É–Úrc                 S   s    g | ]\}}d |v r||f‘qS ©u   Ê°r   ©r4   r   r   r   r   r   r5     ó     c                 S   s    g | ]\}}d |vr||f‘qS rV   r   rW   r   r   r   r5     rX   u   (?!(Ê°|Ì¤))ú-ÚUgaru   ðŽŸú )ÚscÚto_scÚQQÚ ÚmQÚArabÚHebrÚLatnu   (.)Ì½\1)rb   ÚSyreÚSyrjÚSyrnÚThaa)3r   ÚLatinScriptsÚIndicScriptsÚgetattrÚCFÚAttributeErrorr    ÚVedicSvarasLatinIndicÚjoinÚlistÚstringÚpunctuationr   r   Ú
CrunchListÚreÚsubr'   r   ÚPrPÚRomanPreFixr   r#   ÚretCharListrB   r   Úsortr   r   r   r   ÚFixIndicOutputr   r   r   ÚPostFixRomanOutputÚRemoveJoinersÚShiftDiacriticsr   ÚFixRomanOutputÚVedicSvarsIndicLatinÚSemiticScriptsr   ÚTransliteratorÚtrÚFixSemiticOutputÚconvertScriptÚPPÚFixSemiticRomanÚinsertARomanSemiticÚdefault)r!   r"   ÚTargetÚ	charPairsÚpuncÚsOmÚtOmÚ	SourceOldÚhaÚcharListr%   r$   Ú	ScriptMapr   r   Úvirr#   r&   ÚunaspÚ
charPairsHÚcharPairsNotHr   r   )rE   rK   r   rƒ   3   sZ  ÿÿÿ"


,,
ÿ$

ÿÿÿ"

ÿ"




ü	
$ÿ

$ÿ

rƒ   )r_   r   r   r   ru   r   rk   r   r„   Ú/aksharamukha.ScriptMap.EastIndic.SiddhamRanjanar   Ú	EastIndicÚSiddhamRanjanaÚSRÚaksharamukha.FallBackÚFallBackÚFBrp   rs   Ú	functoolsr   Újsonr   r   r   r'   rƒ   r   r   r   r   Ú<module>   s   