
    )i                        S SK r S SKrS SKJr  S SKJr  S SKJr  SrSrSr	Sr
S	rS
rSrSr SrSrSrSrSrSrSr/ SQr " S S\5      r " S S\5      r " S S\5      r " S S\5      r0 r\ R8                  R;                  \ R8                  R=                  \5      SS5      r \ RB                  " \ 5       H  r"\r#\"RI                  SS 5      r%\%RM                  S5      (       a  \r#O!\%RM                  S
5      (       a  \r#O\%\;   a  \r#\" \ R8                  R;                  \ \"5      \#S!9r'\'\\'RJ                  '   M     \RQ                  5       r)g)"    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                   >   ^  \ rS rSrSU 4S jjrS rS rS rSrU =r	$ )RomanScheme   c                    > [         [        U ]  XSS9  [        U S   R	                  5        VVs/ s H  u  pEUS:w  d  M  [
        U   U4PM     snn5      U S'   g s  snnf )NT)datanameis_romanvowelsu   अvowel_marks)superr   __init__dictitemsr   )selfr   r   kwargskv	__class__s         m/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/indic_transliteration/sanscript/schemes/roman.pyr    RomanScheme.__init__    sf    	+t%4T%J$x.J^J^J`oJ`$!deindn =!6q!91 =J`opD  ps
   A
A
c                     U S   c  U$ SSK Jn  UR                  UR                  U R                  UR                  US9UR                  U R                  S9$ )zRoman schemes define multiple representations of the same devanAgarI character. This method gets a library-standard representation.

data : a text in the given scheme.

alternatesr   	sanscript)_from_tor   )r   r.   r/   )indic_transliterationr-   transliterater   
DEVANAGARI)r#   r   r-   s      r(   get_standard_formRomanScheme.get_standard_form%   s`    
 L!k/""	(?(?diiU^UiUipt(?(u)2)=)=499 # N N    c                     U R                  US9nUR                  SS5      nUR                  SS5      nUR                  SS5      nU$ )Nr   AaaIiiUuu)r3   replace)r#   texts     r(   get_double_letteredRomanScheme.get_double_lettered0   sJ    !!t!,D<<T"D<<T"D<<T"DKr5   c                 *   UR                  5       nSSKJn  / nU He  nUR                  U5      R                  5       U R                  R                  5       :w  a  UR                  SU-  5        MT  UR                  U5        Mg     SR                  U5      $ )Nr   )detectz<%s> )splitr0   rC   lowerr   appendjoin)r#   r?   wordsrC   	out_wordswords         r(   mark_off_non_indic_in_line&RomanScheme.mark_off_non_indic_in_line7   su    JJLE,I	t		"	"	$		(9	9$'	 
 88Ir5    )NN)
__name__
__module____qualname____firstlineno__r    r3   r@   rL   __static_attributes____classcell__r'   s   @r(   r   r      s    	
	N	 	r5   r   c                       \ rS rSrSS jrSrg)ItransSchemeC   c                 z   U(       a  U R                  XUS9$ UnSS KnU(       a  SnOSnUR                  " SU-  SU5      nUR                  " SU-  SU5      nUR                  " S	U-  S
U5      nUR                  " SU-  SU5      nUR                  " SU-  SU5      nU(       d  UR                  " SU-  SU5      nU$ )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#   rZ   r[   r\   ignore_padaantadata_outr_   prefixs           r(   fix_lazy_anusvaaraItransScheme.fix_lazy_anusvaaraD   s    55gck5llHffyy)V4iJHyy)V4iJHyy)V4hIHyy)V4hIHyyF3XxHH+v6XNhOr5   rN   N)FFT)rO   rP   rQ   rR   rd   rS   rN   r5   r(   rW   rW   C   s    r5   rW   c                   (    \ rS rSrSS jrSS jrSrg)OptitransSchemeW   c                 L   U R                  US9nUR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  SU5      nUR                  S	S
5      nUS:w  a  UR                  SU5      nUR                  5       nU$ )Nr7   RRriRLLilriLLIjnxksht)r3   r>   rF   )r#   r?   jn_replacementt_replacements       r(   to_lay_indianOptitransScheme.to_lay_indianY   s    !!t!,D<<d#D<<T"D<<u%D<<u%D<<n-D<<U#D\\#}-d::<DKr5   c                    0 SS_SS_SS_SS_SS	_S
S_SS_SS_SS_SS_SS	_SS_SS_SS_SS_SS_SS_SSSSSSS S!S"S#S#SSS$SS%.EnUR                  5        H  u  pEUR                  XE5      nM     S&n[        R                  " S'U-  S(U5      n[        R                  " S)U-  S(U5      n[        R                  " S*SU5      n[        R                  " S+S,U5      nUR                  S-S5      n[        R                  " S.S/U5      nU(       a  [        R                  " S0S1U5      nS2S3KJn  UR                  XR                  UR                  5      nU$ )4Nu   ‘r]   u   ʼz{}u   ’oor=   eer;      ëEu   ěeu   ēou   ōu   ār9   u   īu   ūwr&   u   ẕzu   żu   ẓu   ž   ću   ćhcqsshrs   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>   r_   r`   r0   r-   r1   ISO	OPTITRANS)r#   r?   add_terminal_areplacementskeyvaluevowels_patternr-   s           r(   approximate_from_iso_urdu)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 #((*
\\#%d +)N99X.t<D99X.t<D99^R.D99UE4(D<<R D99'5DYY=vtLd/""4	8K8KLDKr5   rN   N)GYrs   )T)rO   rP   rQ   rR   rv   r   rS   rN   r5   r(   rg   rg   W   s    r5   rg   c                   8   ^  \ rS rSrSU 4S jjrU 4S jrSrU =r$ )CapitalizableScheme   c                 *  >^  [         [        T ]  XUS9  U 4S jnU" T S   R                  5       5        U" T S   R                  5       5        ST ;   a  U" T S   R                  5       5        ST ;   a  U" T S   R	                  5       5        U" S/5        g )N)r   r   r   c                 d  > U  H  nUR                  5       UR                  5       /nUTS   ;   aY  UTS   U   TS   U    Vs/ s H  o3R                  5       PM     sn-   TS   U    Vs/ s H  o3R                  5       PM     sn-   -  n[        [        U5      5      TS   U'   M     g s  snf s  snf )Nr+   )
capitalizeupperlistset)	some_listrq   synonymsyr#   s       r(   add_capitalized_synonyms>CapitalizableScheme.__init__.<locals>.add_capitalized_synonyms   s    !LLNAGGI.\""
d<(+tLGYZ[G\.]G\!||~G\.]]tx  zF  uG  HI  uJ  aK  uJopahahaj  uJ  aK  K  K( $S] 3\1	  /^  aKs   B(
)B-
r   
consonantsextra_consonantsaccented_vowel_alternatesu   oṃ)r   r   r    valueskeys)r#   r   r   r   r   r'   s   `    r(   r    CapitalizableScheme.__init__   s    	
t-4QU-V4 T(^2245T,/6689T!t$67>>@A"d*t$?@EEGHfX&r5   c                    > SSR                  U S   R                  5       5      -  n[        R                  " USU5      n[        [
        U ]  US9$ )Nu   ([%s])([̥̇¯̄]+)r]   accentsz\2\1r7   )rH   r   r_   r`   r   r   r3   )r#   r   patternr'   s      r(   r3   %CapitalizableScheme.get_standard_form   sK    #rwwtI/E/E/G'HIG99Wh-D$d=4=HHr5   rN   )NTN)rO   rP   rQ   rR   r    r3   rS   rT   rU   s   @r(   r   r      s    '&I Ir5   r   r   romanz.tomlr]   )	file_pathcls)*osr_   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   rW   rg   r   SCHEMESpathrH   dirname__file__	data_pathlistdirfr   r>   r   
startswithschemer   ALL_SCHEME_IDSrN   r5   r(   <module>r      sa   	  2 ? I 
		%  A	+ 
	\ !& !H; ()k )XI+ I4 GGLL2FGD		I	A#	
7B	$	__[!!
Cx  
C''
Ci!;E&'&++ 
 r5   