
Sd`4                 @   s  d  d l  Z  d  d l Z d  d l Z d  d l m Z d  d l m Z d d   Z d d   Z d d	   Z d
 d   Z	 Gd d   d  Z
 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/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz 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 d d d d d d d d d d d d d iW Z 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 d0 d d2 d d4 d d6 d d8 d d: d dB d dJ d dN d dP d dR d dT d dV d d\ d d^ d d` d db d dn d dl d d> d d@ d d d dr d dj d df d dt d dd d dH d dF d dx d dz d dL 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dv ddh dd ddp dd dd dd dd d	d d
d dd dd diR Z 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/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; dB dC dJ dK dN dO dP dQ dR dS dT dU dV dW d\ d] d^ d_ d` da db dc dn do dl dm d> d? d@ dA d d dr ds dj dk df dg dt du dd de dH dI dF dG dx dy dz d{ dL dM 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} dv dw dh di d d dp dq d d d d d d d d d d d d d d d d iR Z dd  Z d S(      N)datetime)transliteratec             C   sO   t  j d |   } | r9 | j d  } | j d  } n d } d } | | f S)Nz;([^{]*)\{([^}]*)\}      F)researchgroup)Zmetalinemtagvalue r   -/var/www/html/kosha.sanskritworld.in/utils.pyextract_tag   s    r   c             C   s   |  j  d  } i  } x | D]y } | j d  s | d k r@ q | j d  sf t d  t |  q t |  \ } } | r | | | <q t d  q W| S)z6Extract metadata from the text file and return a dict.
z	;METADATA ;z/Check line. Does not follow metadata structure.)split
startswithprintr   )ZmetatextlinesZmetadataliner
   r   r   r   r   prepare_metadata   s    
r   c             C   sa   g  } |  j  d  } x< | D]4 } | j d  sP | j d  rC q | j |  q Wd j |  S)z%Remove page markers and line markers.r   z;p{z;l{)r   r   appendjoin)Zcontentresultr   r   r   r   r   remove_page_line3   s    r   c               C   s
   t  j   S)N)r   Znowr   r   r   r   	timestampD   s    r   c               @   s   e  Z d  Z d Z d d   Z d d   Z d d   Z d d	   Z d
 d   Z d d   Z	 d d   Z
 d d   Z d d   Z d S)	VerseInfoz;Hold the information regarding current verse being handled.c             C   sU   d |  _  d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d S)zInitialize with default values.r   r   r   N)	kandavargasubvargakandaNumvargaNumsubvargaNumpageNumverseNumlastVerseNum)selfr   r   r   __init__K   s    								zVerseInfo.__init__c             C   s   | |  _  d S)zUpadate pageNum.N)r$   )r'   r$   r   r   r   update_pageNumW   s    zVerseInfo.update_pageNumc             C   s   | |  _  |  j d 7_ d S)z(Update subvarga. Also identify its name.r   N)r    r#   )r'   r    r   r   r   update_subvarga[   s    	zVerseInfo.update_subvargac             C   s.   d |  _  d |  _ | |  _ |  j d 7_ d S)z%Update varga. Reset subvargaNum to 1.r   r   N)r    r#   r   r"   )r'   r   r   r   r   update_varga`   s    			zVerseInfo.update_vargac             C   s@   d |  _  d |  _ d |  _ d |  _ | |  _ |  j d 7_ d S)z2Update kanda. Reset vargaNum and subvargaNum to 1.r   r   N)r    r#   r   r"   r   r!   )r'   r   r   r   r   update_kandag   s    					zVerseInfo.update_kandac             C   s_   t  j d |  } | rK t t | j d  d d   |  _ |  j |  _ n |  j d |  _ d S)z9Identify the verse number from verse and update verseNum.u?   [॥|..] ([0123456789०१२३४५६७८९]+) [॥|..]r   Z
devanagariZslp1N)r   r   intr   r   r&   r%   )r'   verser	   r   r   r   update_verseNump   s
    $zVerseInfo.update_verseNumc             C   s.   |  j  d |  j d |  j d t |  j  S)z;Return names of kanda, varga, subvarga and number of verse..)r   r   r    strr%   )r'   r   r   r   give_verse_detailsz   s    zVerseInfo.give_verse_detailsc             C   s   |  j  S)zReturn pageNum.)r$   )r'   r   r   r   give_page_details~   s    zVerseInfo.give_page_detailsc             C   s@   t  |  j  d t  |  j  d t  |  j  d t  |  j  S)z3Return numbers of kanda, varga, subvarga and verse.r0   )r1   r!   r"   r#   r%   )r'   r   r   r   give_verse_num_details   s    z VerseInfo.give_verse_num_detailsN)__name__
__module____qualname____doc__r(   r)   r*   r+   r,   r/   r2   r3   r4   r   r   r   r   r   H   s   	
r   ZAMARZnamalinganushasana_amarasinhaZANKSZanekarthasamuchchaya_shashvataZVPRMZvishvaprakasha_maheshvaraZVJYPZvaijayanti_yadavaprakashaZHVPDZharavali_purushottamadevaZABCHZabhidhanachintamani_hemachandraZNGSHZnighantushesha_hemachandraZNSKSZ$nanartharnavasankshepa_keshavasvaminZVLSSZvishvalochana_shridharasenaZNSAPZnanarthasangraha_ajayapalaZKDKSZkalpadrukosha_keshavaZTSPDZtrikandashesha_purushottamadevaZATMHZanekarthatilaka_mahipaZNRMIZnanartharatnamala_irugapaZSRSSZshabdaratnasamanvaya_sahajiZLKPKZlokaprakasha_kshemendraZENSKZ"ekaksharanamamala_sadhukalashaganiZSRSGZ shabdaratnakara_sadhusundaraganiZSKGLZshivakosha_ghasilalZNDSGZnanarthodayasagara_ghasilalZNMMDZnamamala_dhananjayaZEKPDZekaksharakosha_purushottamadevaZANSHZanekarthasangraha_hemachandraZPRMMZ#paramanandiyanamamala_makarandadasaZENMSZekarthanamamala_saubhariZDNMSZdvyaksharinamamala_saubhariZNNMRZnanarthamanjari_raghavaZANMGZanekarthanamamala_jnanasagaraZANNDZanekarthanighantu_dhananjayaZEKKAZekaksharikosha_amarakaviZNMMBZnamamalika_bhojaZSBRPZshabdaratnapradipa_agyataZANKMZanekarthakosha_mankhaZARMHZabhidhanaratnamala_halayudhaZNSMKZnanarthashabdakosha_medinikaraZACPHZ*abhidhanachintamaniparishishta_hemachandraZACSJZ%abhidhanachintamanishiloncha_jinadevaZDNMHZdeshinamamala_hemachandraZPLDPZpaiyalachchhi_dhanapalaZDRSHZdvirupadikosha_shriharshaZKNVPZkriyanighantu_virapandyaZDKPDZdvirupakosha_purushottamadevaZSBPMZshabdabhedaprakasha_maheshvaraZDKDDZdharanikosha_dharanidasaZPSRDZparyayashabdaratna_dhananjayaZSRVBZshabdaratnakara_vamanabhattaZSNHKZ!sharadiyakhyanamamala_harshakirtiZANHKZanekarthanamamala_harshakirtiZADMKZ%anekarthadhvanimanjari_mahakshapanakaZKKTVZkoshakalpataru_vishvanathaZRKRPZrabhasakosha_rabhasapalaZSKSDZshivakosha_shivadattaZSRMSZshabdaratnavali_mathureshaZPTVDZpanchatattvaprakasha_venidattaZLVVVZlingavisheshavidhi_vararuchiZSSSKZsiddhashabdarnava_sahajakirtiZSERSZ+sundaraikaksharakosha_rajasundaravijayasuriZNSRKZnanarthashabdaratna_kalidasaZEKVSZ!ekaksharanamamalika_vishvashambhuZEKMDZekaksharashabdamala_madhavaZEKVRZekaksharanamamala_vararuchiZEKKUZekaksharakosha_agyataZEKNUZekaksharanamamala_agyataZEKMKZekaksharimatrikakosha_agyataZEKAJZajiradiekaksharanamamala_agyataZENNTZnatvadiekaksharanamamala_agyataZEKABZ#abhidhanadiekaksharanamamala_agyataZEKPMZekaksharakosha_panditamanoharaZEKKDZekaksharanamamala_kalidasavyasaZEKSSZekaksharakoshamala_sushilasuriZEKBPZ&ekaksharakoshabhidhana_bhaskarapanditaZEKAPZekaksharakosha_agyatapanditaZESSKZekadisankhyasangyakosha_agyataZENRVZ!ekaksharinamamala_ratanuvirabhanaZEKHMZ,ekaksharashabdamala_haritalarajamatyamadhavaZGNHDZganitanamamala_haradattaZAVYKZavyayakosha_agyataZMTRKZmatrikakosha_agyataZAVJBZavyayarnava_jayabhattarakaZSRVCZshabdarnava_vachaspatiZUTVDZutpalini_vyadiZSAVDZsamsaravarta_vikramadityaZEVBMZ#ekavarnarthasangraha_bharatamallikaZDDBMZ$dvirupadhvanisangraha_bharatamallikaZVARSZvanmayarnava_ramavatarasharmanZSNVSZ!sushilanamamala_vijayasushilasuriZTSSUZtrishashasakarabheda_agyataZnAmaliNgAnuSAsana_amarasiMhaZanekArTasamuccaya_SASvataZviSvaprakASa_maheSvaraZvEjayantI_yAdavaprakASaZhArAvalI_puruzottamadevaZaBiDAnacintAmaRi_hemacandraZniGaRwuSeza_hemacandraZviSvalocana_SrIDarasenaZnAnArTasaNgraha_ajayapAlaZtrikARqaSeza_puruzottamadevaZanekArTatilaka_mahIpaZnAnArTaratnamAlA_irugapaZSabdaratnasamanvaya_sAhajIZekAkzaranAmamAlA_sADukalaSagaRiZSabdaratnAkara_sADusundaragaRiZSivakoza_GAsIlAlaZnAnArTodayasAgara_GAsIlAlaZnAmamAlA_DanaYjayaZekAkzarakoza_puruzottamadevaZanekArTasaNgraha_hemacandraZnAnArTamaYjarI_rAGavaZnAmamAlikA_BojaZanekArTakoza_maNKaZaBiDAnaratnamAlA_halAyuDaZnAnArTaSabdakoza_medinikaraZ$aBiDAnacintAmaRipariSizwa_hemacandraZ aBiDAnacintAmaRiSiloYCa_jinadevaZdvirUpakoza_SrIharzaZkriyAniGaRwu_vIrapARqyaZdvirUpakoza_puruzottamadevaZSabdaratnaprakASa_maheSvaraZ"anekArTaDvanimaYjarI_mahAkzapaRakaZanekArTanAmamAlA_harzakIrtiZekArTanAmamAlA_sOBariZdvyakzarInAmamAlA_sOBariZ!nAnArTArRavasaMkzepa_keSavasvAminZraBasakoza_raBasapAlaZSAradIyAKyanAmamAlA_harzakIrtiZparyAyaSabdaratna_DanaYjayaZSivakoza_SivadattaZDaraRikoza_DaraRidAsaZekAkzarIkoza_amarakaviZanekArTaniGaRwu_DanaYjayaZpaYcatattvaprakASa_veRIdattaZliNgaviSezaviDi_vararuciZSabdaratnapradIpa_ajYAtaZ#paramAnandIyanAmamAlA_makarandadAsaZekAkzaraSabdamAlA_mADavaZekAkzaranAmamAlA_vararuciZekAkzarakoza_ajYAtaZekAkzaranAmamAlA_ajYAtaZekAkzarImAtfkAkoza_ajYAtaZajirAdiekAkzaranAmamAlA_ajYAtaZnatvAdiekAkzaranAmamAlA_ajYAtaZ aBiDAnAdiekAkzaranAmamAlA_ajYAtaZekAkzarakoza_paRqitamanoharaZekAkzaranAmamAlA_kAlidAsavyAsaZekAkzarakozamAlA_suSIlasUriZ!ekAkzarakozABiDAna_BAskarapaRqitaZekAkzarakoza_ajYAtapaRqitaZekAdisaNKyAsaYjYAkoza_ajYAtaZekAkzarInAmamAlA_ratanUvIraBARaZ)ekAkzaraSabdamAlA_haritAlarAjAmAtyamADavaZ(sundarEkAkzarakoza_rAjasundaravijayasUriZekAkzaranAmamAlikA_viSvaSamBuZgaRitanAmamAlA_haradattaZavyayakoza_ajYAtaZmAtfkAkoza_ajYAtaZkalpadrukoza_keSavaZsidDaSabdArRava_sahajakIrtiZSabdaratnAvalI_maTureSaZSabdaratnAkara_vAmanaBawwaZavyayArRava_jayaBawwArakaZkozakalpataru_viSvanATaZSabdArRava_vAcaspatiZutpalinI_vyAqiZsaMsArAvarta_vikramAdityaZ!ekavarRArTasaNgraha_BaratamallikaZ"dvirUpaDvanisaNgraha_BaratamallikaZvANmayArRava_rAmAvatAraSarmanZsuSIlanAmamAlA_vijayasuSIlasUriZtriSazasakAraBeda_ajYAtac             C   s   t  |  S)N)	dictcodes)coder   r   r   code_to_dict  s    r;   )codecsr   jsonr   Zindic_transliteration.sanscriptr   r   r   r   r   r   r9   dictcodes_slpworkingdictsr;   r   r   r   r   <module>   s
  ?