o
    wi                     @   s   d Z ddlZddlZddlZg dZdZdZedd eD dd	 d
Ze	dddd eD Z
G dd dZdd Zdd ZedkrKedZee dS dS )u  
    detect
    ~~~~~~

    Code for automatically detecting a transliteration scheme.

    :license: MIT and BSD

Example usage:

::

    from indic_transliteration import detect
    detect.detect('pitRRIn') == Scheme.ITRANS
    detect.detect('pitRRn') == Scheme.HK

When handling a Sanskrit string, it's almost always best to explicitly
state its transliteration scheme. This avoids embarrassing errors with
words like ``pitRRIn``. But most of the time, it's possible to infer the
encoding from the text itself.

``detect.py`` automatically detects a string's transliteration scheme:

::

    detect('pitRRIn') == Scheme.ITRANS
    detect('pitRRn') == Scheme.HK
    detect('pitFn') == Scheme.SLP1
    detect('पितॄन्') == Scheme.Devanagari
    detect('পিতৄন্') == Scheme.Bengali

Supported schemes
-----------------

All schemes are attributes on the ``Scheme`` class. You can also just
use the scheme name:

::

    Scheme.IAST == 'IAST'
    Scheme.Devanagari == 'Devanagari'

Scripts:

-  Bengali (``'Bengali'``)
-  Devanagari (``'Devanagari'``)
-  Gujarati (``'Gujarati'``)
-  Gurmukhi (``'Gurmukhi'``)
-  Kannada (``'Kannada'``)
-  Malayalam (``'Malayalam'``)
-  Oriya (``'Oriya'``)
-  Tamil (``'Tamil'``)
-  Telugu (``'Telugu'``)

Romanizations:

-  Harvard-Kyoto (``'HK'``)
-  IAST (``'IAST'``)
-  ITRANS (``'ITRANS'``)
-  Kolkata (``'Kolkata'``)
-  SLP1 (``'SLP1'``)
-  Velthuis (``'Velthuis'``)

    N))bengalii	  )
devanagari 	  )gujaratii
  )gurmukhii 
  )kannadai  )	malayalami   )oriyai   )tamili  )telugui   )hkN)iastN)itransN)
kolkata_v2N)slp1N)velthuisNr   i  c                 C   s   g | ]}|d  r|qS ) ).0xr   r   _/home/ubuntu/maya3_transcribe/venv/lib/python3.10/site-packages/indic_transliteration/detect.py
<listcomp>a   s    r   c                 C   s
   | d  S )N   r   )r   r   r   r   <lambda>a   s   
 r   )keyEnumr   c                 C   s   i | ]\}}||qS r   r   )r   namecoder   r   r   
<dictcomp>d   s    r   c                   @   sH   e Zd ZedZedZedZedZedZ	edZ
dS )Regexuf   [āīūṛṝḷḹēōṃḥṅñṭḍṇśṣḻĀĪŪṚṜḶḸĒŌṂḤṄÑṬḌṆŚṢḺ]zaa|ii|uu|~nz4ee|oo|\^[iI]|RR[iI]|L[iI]|~N|N\^|Ch|chh|JN|sh|Sh|\.au   [ēō]zE[fFxXEOCYwWqQPB]|kz|Nk|Ng|tT|dD|Sc|Sn|[aAiIuUfFxXeEoO]R|G[yr]|(\W|^)Gz\.[mhnrltds]|"n|~sN)__name__
__module____qualname__recompileIAST_OR_KOLKATA_ONLYITRANS_OR_VELTHUIS_ONLYITRANS_ONLYKOLKATA_ONLY	SLP1_ONLYVELTHUIS_ONLYr   r   r   r   r   g   s    




r   c                 C   s   t jdk rz| d} W n	 ty   Y nw | D ]#}t|}|tkr;tD ]\}}||  kr2tkr:n q$|    S q$qtj	
| rNtj
| rKtjS tjS tj
| rWtjS tj
| r`tjS tj
| ritjS tj
| rrtjS tjS )zDetect the input's transliteration scheme.

    :param text: some text data, either a `unicode` or a `str` encoded
                 in UTF-8.
    )   r   zutf-8)sysversion_infodecodeUnicodeErrorordBRAHMIC_FIRST_CODE_POINTBLOCKSBRAHMIC_LAST_CODE_POINTr   r%   searchr(   Schemer   r   r'   r   r)   r   r*   r   r&   r   )textLr   r   
start_coder   r   r   detect   s6   
r9   c                 C   s4   ddl m} | |j|j|j|j|j|jfv rdS dS )Nr   )	sanscriptFT)indic_transliterationr:   
DEVANAGARIGUJARATIBENGALIPUNJABIORIYA)scriptr:   r   r   r   likely_dravidian   s    rB   __main__zUyagnopavitham-a-short-description-with-dharan-vidhi-and-yagyopavita-nasha-prayachhita)__doc__loggingr#   r,   SCHEMESr1   r3   sortedr2   typer5   r   r9   rB   r    rA   printr   r   r   r   <module>   s    @+