o
    h0                  	   @   s  d Z ddlZddlZddlmZ ddlZddlZddlmZm	Z	 e	 Z
	 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&i d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d2d6d4d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFi dGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhi didjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{dxd|dzd}d~ddddddddddi dddddddddddddd2dd4dddddd"dd$ddddddddZdZdZdZdZ	 dZdZdd ZdZdd Zedkre Zejdeddd ejdeddd e ZeeeeeZe
ejD ]Zejdurej ejdd ej!"e\Z#Z$ej!%eje$Z&e&'dre&dd Z&e&d Z&ned Z&e
(dee&f  eeZ)e)* Z+W d   n	1 sw   Y  e,e&d+Z-ej.Z/ej0Z1e
e+ddD ]Z2e2ev re-(ee2  qe-(e2 qW d   n	1 sw   Y  qle3d dS dS )z@
Kazakh Transliteration:
    Cyrillic Kazakh --> Latin Kazakh


    N)M)open_read_textget_tqdmu   АAu   аau   Ә   Äu   ә   äu   БBu   бbu   ВVu   вvu   ГGu   гgu   Ғu   Ğu   ғu   ğu   ДDu   дdu   ЕEu   еeu   Ёu   İ%ou   ёzi%ou   ЖJu   жju   ЗZu   зzu   Иu   İu   иiu   Йu   йu   КKu   кku   ҚQu   қqu   ЛLu   лlu   Мr   u   мmu   НNu   нnu   Ң   Ñu   ң   ñu   ОOu   оou   Ө   Öu   ө   öu   ПPu   пpu   РRu   рru   СSu   сsu   ТTu   тtu   УUu   уuu   Ұu   Ūu   ұu   ūu   Ү   Üu   ү   üu   ФFu   фfu   ХHu   хhu   Һu   һu   ЦCu   цcu   Ч   Çu   ч   çu   Шu   Şu   шu   şu   Щu   Ş%çu   щu   ş%çu   Ъ u   ъu   ЫYu   ыyu   Іu   іu   Ьu   ьu   Эu   эu   Юu   İ%uu   юzi%uu   Яu   İ%au   яzi%au   АаӘәБбВвГгҒғДдЕеЁёЖжЗзИиЙйКкҚқЛлМмНнҢңОоӨөПпРрСсТтУуҰұҮүФфХхҺһЦцЧчШшЩщЪъЫыІіЬьЭэЮюЯяur   AaÄäBbVvGgĞğDdEeİoioJjZzİiİiKkQqLlMmNnÑñOoÖöPpRrSsTtUuŪūÜüFfHhHhCcÇçŞşŞçşçYyİiEeİuiuİaiau   ЁёЩщЮюЯяu   ЪъЬьu   ϵəóãu   ioäaöac                 C   s   i }d}t t| D ]2}| | }||v r%|| ||d   ||< |d7 }n||v r2d||< |d8 }n|| ||< |d7 }q
d|d< d|d< d|d	< d
|d< t| |S )Nr      r;   iou   ϵr   u   ər&      ór      ã)rangelenprint)source_alphtarget_alphmult_mappingempty_mappingresidxr   l_s rL   h/var/www/html/env_mimamsha/lib/python3.10/site-packages/stanza/utils/languages/kazakh_transliteration.py
create_dic   s$   


rN   u   IWwXx0123456789–«»—c                 C   s   d}t tttt}tj}tj}| D ].}||v s||v r ||7 }q|tv s(|tv r-||7 }q||v r8||| 7 }qt	d|  q|S )Nr;   zTransliteration Error: )
rN   kazakh_alph
latin_alphrG   rH   stringpunctuation
whitespace	supp_alphrD   )sourceoutputtr_dictpunc	white_spcr8   rL   rL   rM   transliterate  s   

rZ   __main__
input_file+zFiles to process)typenargshelpz--output_dirzDirectory to output results)r^   defaultr`   T)exist_okz.xzz.transzTransliterating %s to %swF)leavezProcess Completed Successfully!)4__doc__argparseosrer   rQ   sysstanza.models.common.utilsr   r   tqdmalph_maprO   rP   rG   rH   russian_alphrussian_counterpartrN   rT   rZ   __name__ArgumentParserparseradd_argumentstr
parse_argsargsrW   r\   filename
output_dirmakedirspathsplit	directorybasenamejoinoutput_nameendswithwritef_inreaddataopenf_outrR   rX   rS   rY   r8   rD   rL   rL   rL   rM   <module>   s   !$&)+.0358:=?BDGILNQSVX[]`begjloqtvy{~       	                    "  $  '  )  ,  .  1  3  6  8  ;  =  @  B  E  G  J  L  O  Q  U




