
    {-j                        d dl Z d dlZd dlmZ d dlmZ d dlmZ dZdZdZ	dZ
d	Zd
ZdZdZ	 dZdZdZdZdZdZdZg dZ G d de          Z G d de          Z G d de          Z G d de          Zi Ze j                            e j                            e          dd          Z  e j!        e           D ]Z"eZ#e"$                    dd           Z%e%&                    d          reZ#ne%&                    d
          reZ#ne%ev reZ# ee j                            e e"          e#!          Z'e'ee'j%        <   e(                                Z)dS )"    N)Scheme)load_schemedev_vowel_to_mark_maphkhk_dravidianiastiso	iso_vedicitransitrans_dravidiantitus	optitransoptitrans_dravidian
kolkata_v2slp1slp1_accentedvelthuiswx)r	   
iast_iso_mr
   r   r   r   c                   2     e Zd Zd fd	Zd Zd Zd Z xZS )RomanSchemeNc                     t          t          |                               ||d           t          d | d                                         D                       | d<   d S )NT)datanameis_romanc                 >    g | ]\  }}|d k    t           |         |fS )u   अr   ).0kvs      m/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/indic_transliteration/sanscript/schemes/roman.py
<listcomp>z(RomanScheme.__init__.<locals>.<listcomp>"   s3    ooo$!Qdeindndn!6q!91 =dndndn    vowelsvowel_marks)superr   __init__dictitems)selfr   r   kwargs	__class__s       r!   r'   zRomanScheme.__init__    s^    	+t%%4dT%JJJoo$x.J^J^J`J`oooppDDr#   c                     | d         |S ddl m} |                    |                    | j        |j        |          |j        | j                  S )zRoman schemes define multiple representations of the same devanAgarI character. This method gets a library-standard representation.
    
    data : a text in the given scheme.
    
alternatesNr   	sanscript)_from_tor   )r   r1   r2   )indic_transliterationr0   transliterater   
DEVANAGARI)r*   r   r0   s      r!   get_standard_formzRomanScheme.get_standard_form%   sn    
 L!k//////""	(?(?diU^Uipt(?(u(u)2)=49 # N N Nr#   c                     |                      |          }|                    dd          }|                    dd          }|                    dd          }|S )Nr   AaaIiiUuu)r6   replace)r*   texts     r!   get_double_letteredzRomanScheme.get_double_lettered0   sV    !!t!,,D<<T""D<<T""D<<T""DKr#   c                 N   |                                 }ddlm} g }|D ]r}|                    |                                          | j                                        k    r|                    d|z             ]|                    |           sd                    |          S )Nr   )detectz<%s> )splitr3   rC   lowerr   appendjoin)r*   r@   wordsrC   	out_wordswords         r!   mark_off_non_indic_in_linez&RomanScheme.mark_off_non_indic_in_line7   s    JJLLE,,,,,,I  	t			"	"	$	$	(9(9	9	9$''''88Ir#   )NN)__name__
__module____qualname__r'   r6   rA   rL   __classcell__r,   s   @r!   r   r      sm        	 	 	 	 	 	
	N 	N 	N  	 	 	 	 	 	 	r#   r   c                       e Zd ZddZdS )ItransSchemeFTc                 T   |r|                      |||          S |}dd l}|rd}nd} |j        d|z  d|          } |j        d|z  d|          } |j        d	|z  d
|          } |j        d|z  d|          } |j        d|z  d|          }|s |j        d|z  d|          }|S )N)data_inomit_samomit_yrlr   z(?<!sa) z%sM( *)([kgx])z~N\1\2z%sM( *)([cCj])z~n\1\2z%sM( *)([tdn])zn\1\2z%sM( *)([TDN])zN\1\2z%sM( *)([pb])zm\1\2z%sM( *)([yvl])z\2.N\1\2)#fix_lazy_anusvaara_except_padaantasregexsub)r*   rU   rV   rW   ignore_padaantadata_outrZ   prefixs           r!   fix_lazy_anusvaarazItransScheme.fix_lazy_anusvaaraD   s     m55gPXck5lllHLLL fffuy)V4iJJHuy)V4iJJHuy)V4hIIHuy)V4hIIHuyF3XxHHH O+v6XNNhOr#   N)FFT)rM   rN   rO   r_    r#   r!   rS   rS   C   s(             r#   rS   c                       e Zd ZddZddZdS )	OptitransSchemeGYtc                    |                      |          }|                    dd          }|                    dd          }|                    dd          }|                    dd          }|                    d|          }|                    d	d
          }|dk    r|                    d|          }|                                }|S )Nr8   RRriRLLilriLLIjnxkshrd   )r6   r?   rF   )r*   r@   jn_replacementt_replacements       r!   to_lay_indianzOptitransScheme.to_lay_indianY   s    !!t!,,D<<d##D<<T""D<<u%%D<<u%%D<<n--D<<U##D\\#}--d::<<DKr#   Tc                    i dddddddddd	d
ddddddddddd	ddddddddddddddddddd d!d"d#d#ddd$dd%}|                                 D ]\  }}|                    ||          }d&}t          j        d'|z  d(|          }t          j        d)|z  d(|          }t          j        d*d|          }t          j        d+d,|          }|                    d-d          }t          j        d.d/|          }|rt          j        d0d1|          }d2d3lm} |                    ||j        |j                  }|S )4Nu   ‘rX   u   ʼz{}u   ’oor>   eer<      ëEu   ěeu   ēou   ōu   ār:   u   īu   ūwr    u   ẕzu   żu   ẓu   ž   ću   ćhcqsshrd   hu   r̥)u   ̌u   c̱ẖchhchr{   u   ḳu   ṣu   s̱ẖu   s̱u   ẖu   ḥu   ̱u   ̠u   r̤iu   ̤u   [aāeēiīoōuū]z(%s)'z\1z'(%s)z'(?=\s|$|-)z'hz{}h'u   ṅ(?=[^kgq]|$)u   m̐z#([kghncjzftdTDpbmyrlvsq])(?=\s|$|-)z\1ar   r/   )	r)   r?   rZ   r[   r3   r0   r4   ISO	OPTITRANS)r*   r@   add_terminal_areplacementskeyvaluevowels_patternr0   s           r!   approximate_from_iso_urduz)OptitransScheme.approximate_from_iso_urduf   s   E2 tT 5$ $ $d,0#7<cCFNQSW$ $d,0$8;S 3 !%c ,1# 8<S HJ"53s"3s3bXZ!  L #((** & &
U\\#u%%dd)N9X.t<<D9X.t<<D9^R..D9UE4((D<<R  D9'55D MY=vtLLd//////""4	8KLLDKr#   N)rc   rd   )T)rM   rN   rO   rq   r   r`   r#   r!   rb   rb   W   s<                r#   rb   c                   *     e Zd Zd fd	Z fdZ xZS )CapitalizableSchemeNTc                     t          t                                         |||            fd} | d                                                     | d                                                    d v r# | d                                                    d v r# | d                                                     |dg           d S )N)r   r   r   c                 F   | D ]}|                                 |                                g}|d         v rC|d         |         d d         |         D             z   d d         |         D             z   z  }t          t          |                    d         |<   d S )Nr.   c                 6    g | ]}|                                 S r`   )
capitalizer   ys     r!   r"   zRCapitalizableScheme.__init__.<locals>.add_capitalized_synonyms.<locals>.<listcomp>   s     .].].]!q||~~.].].]r#   c                 6    g | ]}|                                 S r`   )upperr   s     r!   r"   zRCapitalizableScheme.__init__.<locals>.add_capitalized_synonyms.<locals>.<listcomp>   s>      aK  aK  aKopabahahajaj  aK  aK  aKr#   )r   r   listset)	some_listrm   synonymsr*   s      r!   add_capitalized_synonymsz>CapitalizableScheme.__init__.<locals>.add_capitalized_synonyms   s     4 4!LLNNAGGII.\"""
d<(+.].]tLGYZ[G\.].].]]  aK  aKtx  zF  uG  HI  uJ  aK  aK  aK  K  K( $S]] 3 3\1	4 4r#   r$   
consonantsextra_consonantsaccented_vowel_alternatesu   oṃ)r&   r   r'   valueskeys)r*   r   r   r   r   r,   s   `    r!   r'   zCapitalizableScheme.__init__   s    	
t$$--4(QU-VVV4 4 4 4 4 T(^2244555T,/6688999T!!t$67>>@@AAA"d**t$?@EEGGHHHfX&&&&&r#   c                     dd                     | d                                                   z  }t          j        |d|          }t	          t
          |                               |          S )Nu   ([%s])([̥̇¯̄]+)rX   accentsz\2\1r8   )rH   r   rZ   r[   r&   r   r6   )r*   r   patternr,   s      r!   r6   z%CapitalizableScheme.get_standard_form   s^    #rwwtI/E/E/G/G'H'HIG9Wh--D$d++==4=HHHr#   )NTN)rM   rN   rO   r'   r6   rP   rQ   s   @r!   r   r      s_        ' ' ' ' ' '&I I I I I I I I Ir#   r   r   romanz.tomlrX   )	file_pathcls)*osrZ   indic_transliteration.sanscriptr   'indic_transliteration.sanscript.schemesr   r   HKHK_DRAVIDIANIASTr   	ISO_VEDICITRANSITRANS_DRAVIDIANTITUSr   OPTITRANS_DRAVIDIAN
KOLKATA_v2SLP1SLP1_ACCENTEDVELTHUISWXCAPITALIZABLE_SCHEME_IDSr   rS   rb   r   SCHEMESpathrH   dirname__file__	data_pathlistdirfr   r?   r   
startswithschemer   ALL_SCHEME_IDSr`   r#   r!   <module>r      sJ   				  2 2 2 2 2 2 ? ? ? ? ? ? I I I I I I 
		%  A	+ 
	\\\ ! ! ! ! !& ! ! !H    ;   () ) ) ) )k ) ) )XI I I I I+ I I I4 GLL22FGDD		I		 
  
 A#	
7B		$	__[!! 
CCx   
CC'''
C;i!;!;EEE&'&+r#   