§
    £”j(#  ã                   óò   — d dl Z d dlmZ d dlmZ ddlmZ ddlmZ ddl	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZ  e j        de j        e j        z  ¦  «        Z G d	„ d
¦  «        Z e¦   «         Zej        ZdS )é    N)Úcached_property)Úrepeaté   )Ú	LIGATURES)Úauto_config)ÚUNSHAPEDÚISOLATEDÚTATWEELÚZWJÚLETTERS_ARABICÚLETTERS_ARABIC_V2ÚLETTERS_KURDISHÚFINALÚINITIALÚMEDIALÚ&connects_with_letters_before_and_afterÚconnects_with_letter_beforeÚconnects_with_letter_afteru2   [Ø�-ØšÙ‹-ÙŸÙ°Û–-ÛœÛŸ-Û¨Ûª-Û­à£”-à£¡à£”-à£­à££-à£¿]c                   óP   ‡ — e Zd ZdZd	ˆ fd„	Zed„ ¦   «         Zd„ Zdedefd„Z	ˆ xZ
S )
ÚArabicReshaperaÿ  
    A class for Arabic reshaper, it allows for fine-tune configuration over the
    API.

    If no configuration is passed to the constructor, the class will check for
    an environment variable :envvar:`PYTHON_ARABIC_RESHAPER_CONFIGURATION_FILE`
    , if the variable is available, the class will load the file pointed to by
    the variable, and will read it as an ini file.
    If the variable doesn't exist, the class will load with the default
    configuration file :file:`default-config.ini`

    Check these links for information on the configuration files format:

    * Python 3: https://docs.python.org/3/library/configparser.html

    See the default configuration file :file:`default-config.ini` for details
    on how to configure your reshaper.
    Nc                 ó,  •— t          ¦   «                              ¦   «          t          ||¦  «        | _        | j                             d¦  «        | _        | j        dk    rt          | _        d S | j        dk    rt          | _        d S t          | _        d S )NÚlanguageÚArabicV2ÚKurdish)
ÚsuperÚ__init__r   ÚconfigurationÚgetr   r   Úlettersr   r   )Úselfr   Úconfiguration_fileÚ	__class__s      €ún/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/arabic_reshaper/arabic_reshaper.pyr   zArabicReshaper.__init__;   s   ø€ Ý‰Œ×ÒÑÔÐå(¨Ð8JÑKÔKˆÔØÔ*×.Ò.¨zÑ:Ô:ˆŒàŒ=˜JÒ&Ð&Ý,ˆDŒLˆLˆLØŒ]˜iÒ'Ð'Ý*ˆDŒLˆLˆLå)ˆDŒLˆLˆLó    c                 ó<  — g }i | _         d}d}d}t          D ]T\  }}| j                             |¦  «        sŒ ||         | j         |<   |                     d||         › d�¦  «         |dz  }ŒUt          j        d                     |¦  «        t
          j        ¦  «        S )Nr   r   ú(ú)ú|)	Ú!_re_group_index_to_ligature_formsr   r   Ú
getbooleanÚappendÚreÚcompileÚjoinÚUNICODE)r    ÚpatternsÚindexÚFORMSÚMATCHÚligatureÚreplacements          r#   Ú_ligatures_rezArabicReshaper._ligatures_reH   s®   € àˆØ13ˆÔ.ØˆØˆØˆÝ%.ð 	ð 	Ñ!ˆH�kØÔ%×0Ò0°Ñ:Ô:ð ØØ<GÈÔ<NˆDÔ2°5Ñ9Ø�OŠOÐ5 ¨EÔ 2Ð5Ð5Ð5Ñ6Ô6Ð6Ø�Q‰JˆEˆEÝŒz˜#Ÿ(š( 8Ñ,Ô,­b¬jÑ9Ô9Ð9r$   c                 ó   — | j         |         S ©N)r)   )r    Úgroup_indexs     r#   Ú'_get_ligature_forms_from_re_group_indexz6ArabicReshaper._get_ligature_forms_from_re_group_indexW   s   € ØÔ5°kÔBÐBr$   ÚtextÚreturnc                 ó
  — |sdS g }d}d}d}| j                              d¦  «        }| j                              d¦  «        }| j                              d¦  «        }| j                              d¦  «        }	| j                              d	¦  «        }
i }|
rt          nt          }|D �]d}t                               |¦  «        ra|s]t          |¦  «        dz
  }|	r|dz  }||vrg ||<   |	r||                              d|¦  «         �n²||                              |¦  «         �n•|t          k    r|r�n†|t          k    r|s�nw|| j        vr|                     ||f¦  «         �nU|s|                     ||f¦  «         �n:|d         }||         |k    r|                     ||f¦  «         �nt          || j        ¦  «        s|                     ||f¦  «         nàt          ||         | j        ¦  «        s|                     ||f¦  «         n­||         t          k    r3t          ||         | j        ¦  «        s|                     ||f¦  «         ni||         |k    r/||         t           f|d<   |                     |t          f¦  «         n.||         t"          f|d<   |                     |t          f¦  «         |rOt          |¦  «        dk    r<|d
         |         t          k    r%|                     t          |¦  «        dz
  ¦  «         �Œf|r-|r+|d         |         t          k    r|                     ¦   «          | j                              d¦  «        �rQt                               d|¦  «        }|r|                     t          d¦  «        }t+          j        | j        |¦  «        D ]þ}t1          d„ t3          |                     ¦   «         ¦  «        D ¦   «         d¦  «        }|                      |¦  «        }|                     ¦   «         \  }}||         |         }||dz
           |         }d }||t           fv r||t          fv rt          }n"t           }n||t          fv rt          }nt"          }||         sŒÑ||         |f||<   t;          d|f|dz
  |z
  ¦  «        ||dz   |…<   Œÿg }|sd|v r|                     |d         ¦  «         t3          |¦  «        D ]™\  }}||         rk||         |k    s||         t          k    r|                     ||         ¦  «         n2|                     | j        ||                  ||                  ¦  «         |s||v r|                     ||         ¦  «         Œšd                     |¦  «        S )NÚ r   r   éÿÿÿÿÚdelete_harakatÚdelete_tatweelÚsupport_zwjÚshift_harakat_positionÚ use_unshaped_instead_of_isolatedéþÿÿÿé   Úsupport_ligaturesc              3   ó$   K  — | ]\  }}|¯|V — Œd S r8   © )Ú.0ÚiÚgroups      r#   ú	<genexpr>z)ArabicReshaper.reshape.<locals>.<genexpr>´   s?   è è € ð $ð $Ù"˜!˜UÀ5ð$Øð$ð $ð $ð $ð $ð $r$   ) r   r*   r   r	   Ú
HARAKAT_REÚmatchÚlenÚinsertr+   r
   r   r   r   r   r   r   r   r   ÚpopÚsubÚreplacer,   Úfinditerr6   ÚnextÚ	enumerateÚgroupsr:   Úspanr   Úextendr.   )r    r;   ÚoutputÚLETTERÚFORMÚNOT_SUPPORTEDr@   rA   rB   rC   rD   Úpositions_harakatÚisolated_formÚletterÚpositionÚprevious_letterrO   r9   ÚformsÚaÚbÚa_formÚb_formÚligature_formÚresultrK   Úos                              r#   ÚreshapezArabicReshaper.reshapeZ   s%  € Øð 	Ø�2àˆàˆØˆØˆàÔ+×6Ò6Ð7GÑHÔHˆØÔ+×6Ò6Ð7GÑHÔHˆØÔ(×3Ò3°MÑBÔBˆØ!%Ô!3×!>Ò!>Ø$ñ"
ô "
Ðð ,0Ô+=×+HÒ+HØ.ñ,
ô ,
Ð(ð Ðð =ðK�˜ÝBJð 	ð ð 3	,ñ 3	,ˆFÝ×Ò Ñ'Ô'ð .3Ø%ð 	CÝ" 6™{œ{¨Q™�HØ-ð &Ø  A™˜ØÐ'8Ð8Ð8Ø68Ð)¨(Ñ3Ø-ð CØ)¨(Ô3×:Ò:¸1¸fÑEÔEÐEÑEà)¨(Ô3×:Ò:¸6ÑBÔBÐBùØ�7Ò"Ð" ~Ð"ÙØ�3’� {�ÙØ˜tœ|Ð+Ð+Ø—’˜v }Ð5Ñ6Ô6Ð6Ñ6Øð 3Ø—’˜v }Ð5Ñ6Ô6Ð6Ñ6à"(¨¤*�Ø" 4Ô(¨MÒ9Ð9Ø—M’M 6¨=Ð"9Ñ:Ô:Ð:Ñ:Ý4°V¸T¼\ÑJÔJð 3Ø—M’M 6¨=Ð"9Ñ:Ô:Ð:Ð:Ý3Ø'¨Ô/°´ñ?ô ?ð 3à—M’M 6¨=Ð"9Ñ:Ô:Ð:Ð:Ø% dÔ+­uÒ4Ð4Ý<Ø)¨&Ô1°4´<ñô ð 5ð —M’M 6¨=Ð"9Ñ:Ô:Ð:Ð:Ø$ TÔ*¨mÒ;Ð;à'¨Ô/Ýð"�F˜2‘Jð —M’M 6­5 /Ñ2Ô2Ð2Ð2ð
 (¨Ô/Ýð"�F˜2‘Jð —M’M 6­5 /Ñ2Ô2Ð2ð ð ,�s 6™{œ{¨Qš˜°6¸"´:¸fÔ3EÍÒ3LÐ3LØ—
’
�3˜v™;œ;¨™?Ñ+Ô+Ð+ùàð 	˜6ð 	 f¨R¤j°Ô&8½CÒ&?Ð&?Ø�JŠJ‰LŒLˆLàÔ×(Ò(Ð)<Ñ=Ô=ñ ,	Gå—>’> " dÑ+Ô+ˆDð ð 1Ø—|’|¥G¨RÑ0Ô0�åœ TÔ%7¸Ñ>Ô>ð $Gð $G�Ý"ð $ð $Ý&/°·²±´Ñ&?Ô&?ð$ñ $ô $àñô �ð ×DÒDØñô �ð —z’z‘|”|‘��1Ø œ 4œ�Ø  A¡œ tÔ,�Ø $�ð ˜m­WÐ5Ð5Ð5Ø -µÐ!7Ð7Ð7Ý(0˜˜å(/˜˜à -µÐ!7Ð7Ð7Ý(-˜˜å(.˜Ø˜]Ô+ð ØØ" =Ô1°=ÐA��q‘	õ !'¨¨MÐ':¸AÀ¹EÀA¹IÑ FÔ F��q˜‘s˜1�u‘�àˆØð 	1 "Ð(9Ð"9Ð"9Ø�MŠMÐ+¨BÔ/Ñ0Ô0Ð0Ý˜fÑ%Ô%ð 		8ð 		8‰DˆAˆqØ�Œyð DØ�T”7˜mÒ+Ð+¨q°¬w½(Ò/BÐ/BØ—M’M ! F¤)Ñ,Ô,Ð,Ð,à—M’M $¤,¨q°¬yÔ"9¸!¸D¼'Ô"BÑCÔCÐCà!ð 8ØÐ)Ð)Ð)Ø—M’MÐ"3°AÔ"6Ñ7Ô7Ð7øà�wŠw�v‰ŒÐr$   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r6   r:   Ústrrl   Ú__classcell__)r"   s   @r#   r   r   '   s    ø€ € € € € ðð ð&*ð *ð *ð *ð *ð *ð ð:ð :ñ „_ð:ðCð Cð CðM˜Cð M Cð Mð Mð Mð Mð Mð Mð Mð Mr$   r   )r,   Ú	functoolsr   Ú	itertoolsr   Ú	ligaturesr   Úreshaper_configr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r-   r/   ÚXrN   r   Údefault_reshaperrl   rI   r$   r#   ú<module>ry      s�  ðð 
€	€	€	à %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð à  Ð  Ð  Ð  Ð  Ð  Ø (Ð (Ð (Ð (Ð (Ð (ðOð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð
 ˆRŒZð
ð „J�”Ññô €
ð"@ð @ð @ð @ð @ñ @ô @ð @ðF "�>Ñ#Ô#Ð Ø
Ô
"€€€r$   