o
    ÅN i  ã                	   @   s€   d dl Z d dlZddlmZ ddlmZ dddœZe 	e¡Z
ddd	d
dddddœZeeƒZdgZdgZdgZG dd„ deƒZdS )é    Né   )ÚBaseIndoArabicTransliterator)ÚStringTranslatoru   ÙŠ)õ   ÛŒõ   Û’u    Û½ u    Û¾ õ   Ù‡u   Ù½u   Ùºu   ÚŠu   Úu   Ú™)u    Ø¡ u    Ù… u   Ûu   Ù¹u   Ù¹Ú¾u   Úˆu   ÚˆÚ¾u   Ú‘zsindhi_consonants.csvzsindhi_final.csvzsindhi_isolated.csvc                       s`   e Zd Z‡ fdd„Z‡ fdd„Zddd„Zd‡ fdd	„	Z‡ fd
d„Zddd„Zddd„Z	‡  Z
S )ÚSindhiTransliteratorc                    s@  t ƒ  t¡ i | _tD ]D}tj| j| d d}|jD ]4}t	|| d ƒ 
¡ t	|| d ƒ 
¡ t	|| d ƒ 
¡ }}}d| d | jd| d < || j|< qqtD ]7}tj| j| d d}|jD ]'}t	|| d ƒ 
¡ t	|| d ƒ 
¡ t	|| d ƒ 
¡ }}}|| j|< qaqRt| jƒ| _t| jdd| _t| jƒ| _d S )N)Úheaderr   r   é   ú T)Úmatch_final_only)ÚsuperÚ__init__ÚCONSONANT_MAP_FILESÚ!isolated_sindhi_to_devanagari_mapÚISOLATED_MAP_FILESÚpdÚread_csvÚdata_dirÚcolumnsÚstrÚstripÚ!arabic_to_devanagari_cleanup_passÚADDITIONAL_FINAL_MAP_FILESÚfinal_arabic_to_devanagari_mapr   Ú'isolated_sindhi_to_devanagari_converterÚ$final_arabic_to_devanagari_converterÚ"arabic_to_devanagari_final_cleanup)ÚselfÚmap_fileÚdfÚiÚsindhi_letterÚroman_letterÚdevanagari_letterÚarabic_letter©Ú	__class__© úV/home/ubuntu/.local/lib/python3.10/site-packages/indo_arabic_transliteration/sindhi.pyr   '   s$   
@ý
@þzSindhiTransliterator.__init__c                    s^   t ƒ  |¡}| dd¡}t |¡}t dd|¡}t dd|¡}t dd|¡}t d	d
|¡}|S )Nr   r   u   Ú¾\Br   u   ([^Ú™Ø¬Ú¯])Ú¾u   \1Ù‡u   \sÛ¾([^\w ])u    Û¾ \1u   \sÛ½([^\w ])u    Û½ \1)r   Úarabic_normalizeÚreplaceÚsindhi_preprocessorÚ	translateÚreÚsub©r   Útextr&   r(   r)   r*   <   s   
z%SindhiTransliterator.arabic_normalizeFc                 C   s    |   |¡}| j |¡}| j |¡}| j |¡}| j |¡}| j |¡}| j |¡}| dd¡}| j	 |¡}| j
 |¡}| j |¡}| j |¡}|rN|  |¡}|S )Nu   Ú¾r   )r*   r   r-   Ú&initial_arabic_to_devanagari_converterÚ#hamza_combo_to_devanagari_converterÚhamza_to_devanagari_converterÚ$arabic_to_devanagari_converter_pass1r   r+   Ú$arabic_to_devanagari_converter_pass2r   Údevanagari_postprocessorÚdevanagari_nativize©r   r1   Únativizer(   r(   r)   Ú'transliterate_from_sindhi_to_devanagariJ   s   

z<SindhiTransliterator.transliterate_from_sindhi_to_devanagaric                    s0   t ƒ  |||¡}t dd|¡}t dd|¡}|S )Nu   \sà¤®à¥‡à¤‚\su    à¤®à¥‡à¤‚ u
   \sà¤à¤‚\su    à¤à¤‚ )r   Údevanagari_normalizer.   r/   )r   r1   Úabjadify_initial_vowelsÚdrop_viramar&   r(   r)   r<   ^   s   z)SindhiTransliterator.devanagari_normalizec                    s   t ƒ  |¡}| dd¡}|S )Nõ   à¥‡õ   à¥€)r   Údevanagari_remove_short_vowelsr+   r0   r&   r(   r)   rA   d   s   z3SindhiTransliterator.devanagari_remove_short_vowelsc                 C   sÈ   |   |¡}t dd|¡}| j |¡}| j |¡}| j |¡}| j |¡}|  |¡}| 	dd¡}| j
 |¡}| 	dd¡ 	dd¡ 	d	d¡}| j |¡}| 	d
d¡}| j |¡}| j |¡}|rb| t¡}|S )Nu   ((^|[^à¤€-à¥£à¥²-à¥¿]))à¤u   \1Ø§ÛŒu   à¤¾u   Ø§r@   r   u   à¥‹u   Ùˆr?   u   à¤“u   Ø¤)r<   r.   r/   r   Úreverse_translater4   r3   r5   rA   r+   r   r2   r6   r   r-   Úsindhi_postprocessorr9   r(   r(   r)   Ú'transliterate_from_devanagari_to_sindhii   s"   


z<SindhiTransliterator.transliterate_from_devanagari_to_sindhic                 C   s    |dkr
|   ||¡S |  ||¡S )NÚsd)rD   r;   )r   r1   Úsrc_langÚ	dest_langr:   r(   r(   r)   Ú__call__   s   zSindhiTransliterator.__call__)F)FF)Ú__name__Ú
__module__Ú__qualname__r   r*   r;   r<   rA   rD   rH   Ú__classcell__r(   r(   r&   r)   r   &   s    

r   )r.   Úpandasr   Úbaser   Ú
str_mapperr   ÚURDU_TO_SINDHIr   Ú	maketransrC   ÚSINDHI_PREPROCESS_MAPr,   r   r   r   r   r(   r(   r(   r)   Ú<module>   s,    þ
ô