o
    Ni                     @   s6   d dl mZ d dlZd dlZd dlZG dd dZdS )    )unicode_literalsNc                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	UrduNormalizeru  Normalizer for Urdu scripts. Normalizes different unicode canonical
    equivalances to a single unicode code-point.

    Examples
    --------
    >>> from indictrans import UrduNormalizer
    >>> text = u'''ﺎﻧ کﻭ ﻍیﺮﻗﺎﻧﻮﻧی ﺝگہ کﺱ ﻥے ﺩی؟
    ... ﻝﻭگﻭں کﻭ ﻖﺘﻟ کیﺍ ﺝﺍﺭ ہﺍ ہے ۔
    ... ﺏڑے ﻡﺎﻣﻭں ﺎﻧ ﺪﻧﻭں ﻢﺤﻟہ ﺥﺩﺍﺩﺍﺩ ﻡیں ﺭہﺕے ﺕھے۔
    ... ﻉﻭﺎﻣی یﺍ ﻑﻼﺣی ﺥﺪﻣﺎﺗ ﺍیک ﺎﻟگ ﺩﺎﺋﺭہ ﻊﻤﻟ ہے۔'''
    >>> nu = UrduNormalizer()
    >>> print(nu.normalize(text))
    ان کو غیرقانونی جگہ کس نے دی؟
    لوگوں کو قتل کیا جار ہا ہے ۔
    بڑے ماموں ان دنوں محلہ خداداد میں رہتے تھے۔
    عوامی یا فلاحی خدمات ایک الگ دائرہ عمل ہے۔
    c                 C   sx   t  | _tjtjt}tjd| dd}|D ]}|	 \}}|| jt
|< qW d    d S 1 s5w   Y  d S )Nz%s/../mappings/urdu_urdu.mapzutf-8)encoding)dictnorm_tblospathdirnameabspath__file__ioopensplitord)selfdist_dirfplinest r   W/home/ubuntu/.local/lib/python3.10/site-packages/indictrans/_utils/script_normalizer.py__init__   s   
"zUrduNormalizer.__init__c                 C   s   | dd}| dd}| dd}| dd}| dd}| dd}| d	d}| d
d}| dd}| dd}| dd}|S )zNormalize NO_BREAK_SPACE, SOFT_HYPHEN, WORD_JOINER, H_SPACE,
        ZERO_WIDTH[SPACE, NON_JOINER, JOINER],
        MARK[LEFT_TO_RIGHT, RIGHT_TO_LEFT, BYTE_ORDER, BYTE_ORDER_2]
                ­ u   ⁠u    u   ​u   ‌u   ‍u   ‎u   ‏u   ﻿u   ￾)replacer   textr   r   r   cnorm&   s   zUrduNormalizer.cnormc                 C   s   |  |}|| j}tdd|}tddd |}tdd|}|dd}|d	d
}|dd}|dd}|dd}|dd}|S )znormalize textu   [ٍْٔ-ٛ]r   u   ([^کگچجٹڈتدپبڑ])ھz\1%su   ہu   [َُِ]u   آu   آu   ؤu   ؤu   یٔu   ئu   ۓu   ۓu   ئئu   ئیu   ۀu   ۂ)r    	translater   resubr   r   r   r   r   	normalize9   s   
zUrduNormalizer.normalizeN)__name__
__module____qualname____doc__r   r    r$   r   r   r   r   r      s
    	r   )
__future__r   r   r   r"   r   r   r   r   r   <module>   s
   