o
    욌hl                     @   s<  d dl mZ d dlmZ G dd deZG dd deZG dd deZG d	d
 d
eZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd  d eZG d!d" d"eZG d#d$ d$eZG d%d& d&eZG d'd( d(eZG d)d* d*eZG d+d, d,eZG d-d. d.eZG d/d0 d0eZG d1d2 d2eZG d3d4 d4eZG d5d6 d6eZG d7d8 d8eZG d9d: d:eZ G d;d< d<eZ!G d=d> d>eZ"G d?d@ d@eZ#G dAdB dBeZ$G dCdD dDeZ%G dEdF dFeZ&dGS )H   )BaseStemmer)Amongc                   @   sp  e Zd ZdZg edddedddedddedddeddded	dded
ddedddedddedddedddedddedddedddedddedddedddedddeddd ed!dd"ed#dd$ed%dd$ed&dd'ed(dd'ed)dd*ed+dd*ed,dd-ed.dd-ed/dd0ed1dd0ed2dd0ed3dd0ed4dd5ed6dd5ed7dd8ed9dd8ed:dd8ed;dd8ed<dd=ed>dd=ed?dd@edAdd@edBdd@edCdd@edDddEedFddEedGddEedHddEedIddJedKddJedLddJedMddJedNddOedPddOedQddOedRddOedSddTedUddTedVddTedWddTedXddYedZddYed[dd\ed]dd\ed^dd_ed`dd_edaddbedcddbeddddeedfddeedgddeedhddeediddjedkddjedlddjedmddjednddoedpddoedqddoedrddoedsddteduddtedvddtedwddtedxddyedzddyed{ddyed|ddyed}dd~eddd~eddd~eddd~edddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddăedddăZedddedddedddedddedddgZedddedddedddedddedddgZedddedddedddedddgZedddedddedddedddedddgZ	edddedddgZ
edddedddedddedddgZedddedddedddedddgZedddedddedddedddgZedddedddedddgZedddedddedddedddedddedddedddedddedddedddg
ZedddgZedddedddedddgZedddgZedddgZedddgZedddgZedddedddedddedddedddedddedddedddedddedddedddedddgZedddedddedddedddedddedddedddedddedddedddedddgZedddedddgZedddedddgZedddgZdZdZdZ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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$ Z0d%d& Z1d'd( Z2d)d* Z3d+S (,  ArabicStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    u   ـr   u   ًu   ٌu   ٍu   َu   ُu   ِu   ّu   ْu   ٠   u   ١   u   ٢   u   ٣   u   ٤   u   ٥   u   ٦   u   ٧	   u   ٨
   u   ٩   u   ﺀ   u   ﺁ   u   ﺂu   ﺃ   u   ﺄu   ﺅ   u   ﺆu   ﺇ   u   ﺈu   ﺉ   u   ﺊu   ﺋu   ﺌu   ﺍ   u   ﺎu   ﺏ   u   ﺐu   ﺑu   ﺒu   ﺓ   u   ﺔu   ﺕ   u   ﺖu   ﺗu   ﺘu   ﺙ   u   ﺚu   ﺛu   ﺜu   ﺝ   u   ﺞu   ﺟu   ﺠu   ﺡ   u   ﺢu   ﺣu   ﺤu   ﺥ   u   ﺦu   ﺧu   ﺨu   ﺩ   u   ﺪu   ﺫ   u   ﺬu   ﺭ   u   ﺮu   ﺯ   u   ﺰu   ﺱ   u   ﺲu   ﺳu   ﺴu   ﺵ   u   ﺶu   ﺷu   ﺸu   ﺹ    u   ﺺu   ﺻu   ﺼu   ﺽ!   u   ﺾu   ﺿu   ﻀu   ﻁ"   u   ﻂu   ﻃu   ﻄu   ﻅ#   u   ﻆu   ﻇu   ﻈu   ﻉ$   u   ﻊu   ﻋu   ﻌu   ﻍ%   u   ﻎu   ﻏu   ﻐu   ﻑ&   u   ﻒu   ﻓu   ﻔu   ﻕ'   u   ﻖu   ﻗu   ﻘu   ﻙ(   u   ﻚu   ﻛu   ﻜu   ﻝ)   u   ﻞu   ﻟu   ﻠu   ﻡ*   u   ﻢu   ﻣu   ﻤu   ﻥ+   u   ﻦu   ﻧu   ﻨu   ﻩ,   u   ﻪu   ﻫu   ﻬu   ﻭ-   u   ﻮu   ﻯ.   u   ﻰu   ﻱ/   u   ﻲu   ﻳu   ﻴu   ﻵ3   u   ﻶu   ﻷ1   u   ﻸu   ﻹ2   u   ﻺu   ﻻ0   u   ﻼ   آ   أ   ؤ   إ   ئu   الu   بالu   كالu   للu   أآu   أأu   أؤu   أإu   أا   ف   و   بu   با    u   ببu   ككu   سأu   ستu   سنu   سيu   تستu   نستu   يستu   كماu   هماu   ناu   ها   كu   كمu   همu   هن   ه   ي   ن   اu   ات   ت   ةu   كنu   كموu   نيu   تاu   تماu   انu   تنu   ونu   ينu   واu   تمu   تمو   ىFc                 C   s  | j }z<	 | j }z&z| j }z| j | _| tj}|dkr#t | j | _|dkr8|  s5W W W W dS t	 |dkrJ| dsGW W W W dS t	 |dkr\| dsYW W W W dS t	 |d	krn| d
skW W W W dS t	 |dkr| ds}W W W W dS t	 |dkr| dsW W W W dS t	 |dkr| dsW W W W dS t	 |dkr| dsW W W W dS t	 |dkr| dsW W W W dS t	 |dkr| dsW W W W dS t	 |dkr| dsW W W W dS t	 |dkr| dsW W W W dS t	 |dkr| dsW W W W dS t	 |dkr&| ds#W W W W dS t	 |dkr:| d s7W W W W dS t	 |d!krN| d"sKW W W W dS t	 |d#krb| d$s_W W W W dS t	 |d%krv| d&ssW W W W dS t	 |d'kr| d(sW W W W dS t	 |d)kr| d*sW W W W dS t	 |d+kr| d,sW W W W dS t	 |d-kr| d.sW W W W dS t	 |d/kr| d0sW W W W dS t	 |d1kr| d2sW W W W dS t	 |d3kr| d4sW W W W dS t	 |d5kr| d6sW W W W dS t	 |d7kr*| d8s'W W W W dS t	 |d9kr>| d:s;W W W W dS t	 |d;krR| d<sOW W W W dS t	 |d=krf| d>scW W W W dS t	 |d?krz| d@swW W W W dS t	 |dAkr| dBsW W W W dS t	 |dCkr| dDsW W W W dS t	 |dEkr| dFsW W W W dS t	 |dGkr| dHsW W W W dS t	 |dIkr| dJsW W W W dS t	 |dKkr| dLsW W W W dS t	 |dMkr| dNsW W W W dS t	 |dOkr| dPsW W W W dS t	 |dQkr.| dRs+W W W W dS t	 |dSkrB| dTs?W W W W dS t	 |dUkrV| dVsSW W W W dS t	 |dWkrj| dXsgW W W W dS t	 |dYkr~| dZs{W W W W dS t	 |d[kr| d\sW W W W dS t	 |d]kr| d^sW W W W dS t	 |d_kr| d`sW W W W dS t	 |dakr| dbsW W W W dS t	 |dckr| ddsW W W W dS t	 |dekr| dfsW W W W dS t	 | dgsW W W W dS t	  ty   Y nw || _ | j | j
krt |  j d7  _ W n
 t	y.   Y nw W q ty:   Y nw || _ 	 W n
 tyJ   Y nw || _ dS )hNTr@   r   Fr   0r   1r   2r	   3r
   4r   5r   6r   7r   8r   9r      ءr   r9   r   r;   r   r<   r   r8   r   r:   r   rE   r   r?   r   rG   r   rF   r   u   ثr   u   جr   u   حr   u   خr   u   دr   u   ذr    u   رr!   u   زr"   u   سr#   u   شr$   u   صr%   u   ضr&   u   طr'   u   ظr(   u   عr)   u   غr*   r=   r+   u   قr,   rA   r-   u   لr.   u   مr/   rD   r0   rB   r1   r>   r2   rH   r3   rC   r7   u   لاr5   u   لأr6   u   لإu   لآ)cursorbra
find_amongr   a_0lab3ket	slice_del
slice_fromlab2limitlab1lab0)selfv_1v_2v_3	among_var re   [/var/www/Befach/backend/venv/lib/python3.10/site-packages/snowballstemmer/arabic_stemmer.py__r_Normalize_pre5  s    
  
  
  
  
 	 
  
  

|
y
v
s
p
m
j
g
d
a
^
[
X
U
R
O
L
I
F
C
@
=
:
7
4
1
.
+
(
%
"










zArabicStemmer.__r_Normalize_prec                 C   s  | j }z)| j | _| j| _ | j | _| tjdkrt | j | _| 	ds'W dS | j| _ W n	 ty5   Y nw || _ | j }z	 | j }zuzi| j }zG| j | _| 
tj}|dkrXt | j | _|dkrn| 	dskW W W W dS t |dkr| 	ds}W W W W dS t | 	d	sW W W W dS t  ty   Y nw || _ | j | jkrt |  j d7  _ W n	 ty   Y nw W q= ty   Y nw || _ 	 W n	 ty   Y nw || _ dS )
Nr@   rS   FTr   rE   r   r>   rC   )rT   limit_backwardr]   rY   find_among_br   a_1r_   rU   r[   rV   a_2lab4rX   r\   r^   )r`   ra   rb   rc   v_4rd   re   re   rf   __r_Normalize_post  sd   



z ArabicStemmer.__r_Normalize_postc                 C   s   | j | _| tj}|dkrdS | j | _|dkr,t| jdks!dS d| _d| _	d| _
dS t| jdks5dS d| _d| _	d| _
dS )Nr@   Fr   r   Tr   )rT   rU   rV   r   a_3rY   lencurrent	B_is_noun	B_is_verbB_is_definedr`   rd   re   re   rf   __r_Checks1  s$   zArabicStemmer.__r_Checks1c                 C   s   | j | _| tj}|dkrdS | j | _|dkr*t| jdks!dS | ds(dS d
S |dkr@t| jdks7dS | ds>dS d
S |dkrVt| jdksMdS | dsTdS d
S t| jdks_dS | d	sfdS d
S )Nr@   Fr   r   r9   r   r8   rE   r;   T)	rT   rU   rV   r   a_4rY   rp   rq   r[   ru   re   re   rf   __r_Prefix_Step13  8   



zArabicStemmer.__r_Prefix_Step1c                 C   s|   | j | _| tjdkrdS | j | _t| jdksdS | j }z| ds't	 W dS  t	y2   Y nw || _ | 
 s<dS dS )Nr@   Fr   rE   T)rT   rU   rV   r   a_5rY   rp   rq   eq_sr_   rZ   )r`   ra   re   re   rf   __r_Prefix_Step2O  s    
zArabicStemmer.__r_Prefix_Step2c                 C   st   | j | _| tj}|dkrdS | j | _|dkr)t| jdks!dS |  s'dS dS t| jdks2dS |  s8dS dS )Nr@   Fr   r	   r   T)	rT   rU   rV   r   a_6rY   rp   rq   rZ   ru   re   re   rf   __r_Prefix_Step3a_Nounb      z$ArabicStemmer.__r_Prefix_Step3a_Nounc                 C   s   | j | _| tj}|dkrdS | j | _|dkr)t| jdks!dS |  s'dS dS |dkr?t| jdks6dS | 	ds=dS dS |dkrSt| jdksLdS | 	dsSdS dS )	Nr@   Fr   r   r   r?   rA   T)
rT   rU   rV   r   a_7rY   rp   rq   rZ   r[   ru   re   re   rf   __r_Prefix_Step3b_Nounv  s.   

z$ArabicStemmer.__r_Prefix_Step3b_Nounc                 C   s   | j | _| tj}|dkrdS | j | _|dkr*t| jdks!dS | ds(dS dS |dkr@t| jdks7dS | ds>dS dS |dkrVt| jdksMdS | d	sTdS dS t| jdks_dS | d
sfdS dS )Nr@   Fr   r   rC   r   rF   r   rD   r9   T)	rT   rU   rV   r   a_8rY   rp   rq   r[   ru   re   re   rf   __r_Prefix_Step3_Verb  ry   z#ArabicStemmer.__r_Prefix_Step3_Verbc                 C   sT   | j | _| tjdkrdS | j | _t| jdksdS d| _d| _	| 
ds(dS dS )Nr@   Fr   Tu   است)rT   rU   rV   r   a_9rY   rp   rq   rs   rr   r[   r`   re   re   rf   __r_Prefix_Step4_Verb  s   
z#ArabicStemmer.__r_Prefix_Step4_Verbc                 C      | j | _| tj}|dkrdS | j | _|dkr)t| jdks!dS |  s'dS dS |dkr>t| jdks6dS |  s<dS dS t| jdksGdS |  sMdS dS 	Nr@   Fr   r   r   r	   r
   T)	rT   rY   ri   r   a_10rU   rp   rq   rZ   ru   re   re   rf   __r_Suffix_Noun_Step1a  ,   z$ArabicStemmer.__r_Suffix_Noun_Step1ac                 C   F   | j | _| tjdkrdS | j | _t| jdksdS |  s!dS dS Nr@   Fr	   T)	rT   rY   ri   r   a_11rU   rp   rq   rZ   r   re   re   rf   __r_Suffix_Noun_Step1b     z$ArabicStemmer.__r_Suffix_Noun_Step1bc                 C   r   Nr@   Fr   T)	rT   rY   ri   r   a_12rU   rp   rq   rZ   r   re   re   rf   __r_Suffix_Noun_Step2a  r   z$ArabicStemmer.__r_Suffix_Noun_Step2ac                 C   F   | j | _| tjdkrdS | j | _t| jdksdS |  s!dS dS r   )	rT   rY   ri   r   a_13rU   rp   rq   rZ   r   re   re   rf   __r_Suffix_Noun_Step2b  r   z$ArabicStemmer.__r_Suffix_Noun_Step2bc                 C   r   r   )	rT   rY   ri   r   a_14rU   rp   rq   rZ   r   re   re   rf   __r_Suffix_Noun_Step2c1  r   z%ArabicStemmer.__r_Suffix_Noun_Step2c1c                 C   r   r   )	rT   rY   ri   r   a_15rU   rp   rq   rZ   r   re   re   rf   __r_Suffix_Noun_Step2c2  r   z%ArabicStemmer.__r_Suffix_Noun_Step2c2c                 C   r   )Nr@   Fr   T)	rT   rY   ri   r   a_16rU   rp   rq   rZ   r   re   re   rf   __r_Suffix_Noun_Step3  r   z#ArabicStemmer.__r_Suffix_Noun_Step3c                 C   r   r   )	rT   rY   ri   r   a_17rU   rp   rq   rZ   ru   re   re   rf   __r_Suffix_Verb_Step1  r   z#ArabicStemmer.__r_Suffix_Verb_Step1c                 C   s   | j | _| tj}|dkrdS | j | _|dkr)t| jdks!dS |  s'dS d	S |dkr>t| jdks6dS |  s<dS d	S |dkrSt| jdksKdS |  sQdS d	S t| jdks\dS |  sbdS d	S )
Nr@   Fr   r   r   r	   r   r
   T)	rT   rY   ri   r   a_18rU   rp   rq   rZ   ru   re   re   rf   __r_Suffix_Verb_Step2a3  s8   z$ArabicStemmer.__r_Suffix_Verb_Step2ac                 C   r   r   )	rT   rY   ri   r   a_19rU   rp   rq   rZ   r   re   re   rf   __r_Suffix_Verb_Step2bS  r   z$ArabicStemmer.__r_Suffix_Verb_Step2bc                 C   st   | j | _| tj}|dkrdS | j | _|dkr)t| jdks!dS |  s'dS dS t| jdks2dS |  s8dS dS )Nr@   Fr   r   r
   T)	rT   rY   ri   r   a_20rU   rp   rq   rZ   ru   re   re   rf   __r_Suffix_Verb_Step2c_  r   z$ArabicStemmer.__r_Suffix_Verb_Step2cc                 C   s6   | j | _| tjdkrdS | j | _| dsdS dS )Nr@   FrC   T)rT   rY   ri   r   a_21rU   r[   r   re   re   rf   __r_Suffix_All_alef_maqsuras  s   
z)ArabicStemmer.__r_Suffix_All_alef_maqsurac                 C   s  d| _ d| _d| _| j}|   || _|   | j| _| j| _| j| j }zƐz| j| j }z| js6t z| j| j }zd}	 | j| j }z| 	 sOt
 |d8 }W q@ t
y]   Y nw | j| | _	 |dkrlt zN| j| j }z
|  s{t t  ty   Y nw | j| | _z
|  st t  ty   Y nw | j| | _| j| jkrt |  jd8  _W t  ty   Y t w  ty   Y nw | j| | _z
|  st t  ty   Y nw | j| | _|  st W t  ty   Y t w  ty   Y nw | j| | _z| j st | j| j }zz}| j| j }	z|  s8t t  tyD   Y nw | j|	 | _zz
| jsTt t  ty`   Y nw |  sit zo| j| j }
z|  syt t  ty   Y nw | j|
 | _z|  st  t  t y   Y nw | j|
 | _z| ! st" t  t"y   Y nw | j|
 | _| j| jkrt |  jd8  _W t  ty   Y t w  ty   Y nw | j|	 | _z_| # st$ zJ| j| j }z|  st% t&  t%y   Y nw | j| | _z|  s*t' t&  t'y6   Y nw | j| | _| ! sEt$ W t  t&yT   Y t w  t$y^   Y nw | j|	 | _z z
| jsnt( t)  t(yz   Y nw |  st) t  t)y   Y nw | j|	 | _|  s| j| | _t* W n
 ty   Y nw W n
 t*y   Y nw | + st t  ty   Y nw | j| | _| , st- W n
 ty   Y nw W n
 t-y   Y nw | j| | _| j| _| j}z| j}z| . s|| _t/ W n
 t/y   Y nw | j}z| 0 s/|| _t1 W n
 t1y:   Y nw zh| j}z| 2 sHt3 t4  t3yT   Y nw || _z| j s`t5 | 6 sht5 t4  t5yt   Y nw || _| jst7 | j}z| 8 s|| _t9 W n
 t9y   Y nw | : st7 W n
 t4y   Y nw W n
 t7y   Y nw || _| ;  dS )NTFr   r@   )<rr   rs   rt   rT   _ArabicStemmer__r_Checks1_ArabicStemmer__r_Normalize_prerh   r]   r\   #_ArabicStemmer__r_Suffix_Verb_Step1lab5rl   $_ArabicStemmer__r_Suffix_Verb_Step2alab7lab6$_ArabicStemmer__r_Suffix_Verb_Step2clab8rX   $_ArabicStemmer__r_Suffix_Verb_Step2blab9r^   lab10%_ArabicStemmer__r_Suffix_Noun_Step2c2lab13lab12lab15lab14$_ArabicStemmer__r_Suffix_Noun_Step1a$_ArabicStemmer__r_Suffix_Noun_Step2alab17lab16$_ArabicStemmer__r_Suffix_Noun_Step2blab18%_ArabicStemmer__r_Suffix_Noun_Step2c1lab19$_ArabicStemmer__r_Suffix_Noun_Step1blab20lab22lab21lab23lab25lab24lab11#_ArabicStemmer__r_Suffix_Noun_Step3)_ArabicStemmer__r_Suffix_All_alef_maqsurar_   _ArabicStemmer__r_Prefix_Step1lab27_ArabicStemmer__r_Prefix_Step2lab28$_ArabicStemmer__r_Prefix_Step3a_Nounlab30lab29lab31$_ArabicStemmer__r_Prefix_Step3b_Nounlab26#_ArabicStemmer__r_Prefix_Step3_Verblab32#_ArabicStemmer__r_Prefix_Step4_Verb _ArabicStemmer__r_Normalize_post)r`   ra   rc   rm   v_5v_6v_7v_8v_9v_10v_12v_13v_15v_16v_17v_18v_19re   re   rf   _stem|  s  


















zArabicStemmer._stemN)4__name__
__module____qualname____doc__r   rW   rj   rk   ro   rw   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rt   rs   rr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   re   re   re   rf   r      s   








	























 
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
 
  
  
  
  
  
  
  
  
	  

  
  
  
  
  
  
  
  





	




	








	






























































 83 	r   c                   @      e Zd ZdS )r_   Nr   r   r   re   re   re   rf   r_   O      r_   c                   @   r   )r^   Nr   re   re   re   rf   r^   R  r   r^   c                   @   r   )r\   Nr   re   re   re   rf   r\   U  r   r\   c                   @   r   )rX   Nr   re   re   re   rf   rX   X  r   rX   c                   @   r   )rl   Nr   re   re   re   rf   rl   [  r   rl   c                   @   r   )r   Nr   re   re   re   rf   r   ^  r   r   c                   @   r   )r   Nr   re   re   re   rf   r   a  r   r   c                   @   r   )r   Nr   re   re   re   rf   r   d  r   r   c                   @   r   )r   Nr   re   re   re   rf   r   g  r   r   c                   @   r   )r   Nr   re   re   re   rf   r   j  r   r   c                   @   r   )r   Nr   re   re   re   rf   r   m  r   r   c                   @   r   )r   Nr   re   re   re   rf   r   p  r   r   c                   @   r   )r   Nr   re   re   re   rf   r   s  r   r   c                   @   r   )r   Nr   re   re   re   rf   r   v  r   r   c                   @   r   )r   Nr   re   re   re   rf   r   y  r   r   c                   @   r   )r   Nr   re   re   re   rf   r   |  r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   c                   @   r   )r   Nr   re   re   re   rf   r     r   r   N)'basestemmerr   amongr   r   BaseExceptionr_   r^   r\   rX   rl   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   re   re   re   rf   <module>   sX           P