U
    YShn                     @   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d%S )&   )BaseStemmer)Amongc                /   @   s  e Zd ZdZdddddddd	d
ddddddddhZddddddhZddddddddhZddddddhZd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/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zed;d<d<ed=d<d>ed?d<d<ed@d<d<gZedAd<dBedCddDedEd>dFedGd>dHedIdd>edJddKedLddMgZedNd<dMedOd<dMedPd<dFedQd<dFedRd<dKedSd<d>gZedTd<dKedUd<d>edSd<dMgZedVd<d>edWd<dKedXd<d>edYd<dHedZd<dMed[d<d>ed\d<d>ed]d<d^ed_d<d>ed`d<daedbd<daedcd<dFeddd<dKeded<dFedfd<dKedgd<d>edhd<dKedid<d>edjd<dHedkd<dMedld<d>edmd<d>ednd<d^edod<d>edpd<daedqd<daedrd<dFedsd<dKedtd<dFedud<dKedvd<dwedxdydDedzd{d|ed}d<dBed~d<dwedddDeddd|edddedddedd<dedddedd<d>edd<dedd<dBg,Zedd<d>edd<d>edd<d>edd<d>edd<d>eddFd>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ddd>eddd>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dd<d<edd<d<gZ edd<dMedddKedd<dFedd<dMedd<dMedd<dKedd<dMeddDdKedd<dKedd<dMedddKedd<dMedd<dFedd<dMedd<dMedd<dMedd<dKedd<dFedddKedddKedd<d>edddKedddMedd<dKedd<dMedd<dKedd<dMedddKedd<dMedd<dMedddKedd<dKedd<dMedd<dKedd<dMedd<dKedddKedddKedddMedddKedd<dKg)Z!edd<dMedddKedddKedd<d>edd<dKedd<dKgZ"edd<d<edd<d<edd<d<edd<d<edd<d<gZ#dS )FrenchStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from french.sbl by Snowball 3.0.1 - https://snowballstem.org/
    aeiouy   â   à   ë   é   ê   è   ï   î   ô   û   ùbhjlnpcdmst    c                 C   s   | j | _zR| j }z| tjs$t t W n tk
r@   Y nX || _ | dsXW dS W n tk
rn   Y nX | ds~dS | j | _z| j | j	k rt
 W dS  t
k
r   Y nX |  sdS dS )NZquF'T)cursorbrain_groupingr   g_elision_charlab1lab0eq_sketlimitlab2	slice_delselfv_1 r1   Q/root/rtd-docs/venv/lib/python3.8/site-packages/snowballstemmer/french_stemmer.pyZ__r_elisions   s4    
 

 
 zFrenchStemmer.__r_elisionsc                 C   s  | j }zz| j }z8z| j }zX| tjs8t | j | _z| j }zP| ds\t | j | _| tjsvt | 	dsW W W W W W W dS t
 W n tk
r   Y nX || _ zP| dst | j | _| tjst | 	dsW W W W W W W dS t
 W n tk
r   Y nX || _ | ds6t | j | _| 	dsZW W W W W W dS W n t
k
rr   Y nX t W n tk
r   Y nX || _ zF| j | _| dst | j | _| 	d	sW W W W W dS t W n tk
r   Y nX || _ zF| j | _| d
st | j | _| 	ds<W W W W W dS t W n tk
rZ   Y nX || _ zZ| j | _| ds~t | j | _| tjst | 	dsW W W W W dS t W n tk
r   Y nX || _ | dst | j | _| dst | j | _| 	ds&W W W W dS W n tk
r>   Y nX || _ t W n tk
rd   Y nX || _ | j | jkrt |  j d7  _ qW n tk
r   Y nX W q W n tk
r   Y nX || _ qq dS )Nr	   UFr   Ir
   Yr   Her   Hiqr   T)r#   r%   r   g_vlab4r$   r)   lab6r*   
slice_fromlab5lab7lab3lab8lab9lab10r,   r'   r+   r(   )r/   r0   v_2v_3v_4r1   r1   r2   Z__r_prelude4   s    


 


  
 
 
 
  
   zFrenchStemmer.__r_preludec                 C   s:  | j | _| j | _| j | _| j}z8z| j}zN| tjs@t | tjsRt | j| j krdt |  jd7  _t	 W n tk
r   Y nX || _z>| 
tj}|dkrt |dkr| tjst t	 W n tk
r   Y nX || _| j| j krt |  jd7  _| tjs&t |  jd7  _W n t	k
rL   Y nX | j| _W n tk
rn   Y nX || _| j}z| tjst |  jd7  _| tjst |  jd7  _| j| _| tjst |  jd7  _| tjs t |  jd7  _| j| _W n tk
r.   Y nX || _dS )Nr   r!   T)r+   I_pVI_p1I_p2r#   r%   r   r9   r,   r'   
find_amonga_0r?   r(   Zgo_out_groupingr:   Zgo_in_grouping)r/   r0   rC   	among_varrD   r1   r1   r2   Z__r_mark_regions   s|    
 
    zFrenchStemmer.__r_mark_regionsc                 C   s
  | j }z| j | _| tj}| j | _|dkr>| dsW dS n|dkrX| dsW dS n|dkrr| dsW dS nl|dkr| d	sW dS nR|d
kr| dsW dS n8|dkr|  sW dS n | j | jkrt	 |  j d7  _ W q W n t	k
r   Y nX || _ qq dS )Nr   r   F   r	      r
      r      r      T)
r#   r$   rI   r   a_1r*   r<   r-   r+   r(   )r/   r0   rK   r1   r1   r2   Z__r_postlude   s@    




 zFrenchStemmer.__r_postludec                 C   s   | j | jkS N)rF   r#   r/   r1   r1   r2   Z__r_RV   s    zFrenchStemmer.__r_RVc                 C   s   | j | jkS rR   )rG   r#   rS   r1   r1   r2   Z__r_R1   s    zFrenchStemmer.__r_R1c                 C   s   | j | jkS rR   )rH   r#   rS   r1   r1   r2   Z__r_R2   s    zFrenchStemmer.__r_R2c                 C   sd	  | j | _| tj}|dkr dS | j | _|dkrL|  s<dS |  sHdS 	n|dkrN|  sbdS |  sndS | j| j  }z| j | _| 	ds| j| | _ t
 | j | _zp| j| j  }z*|  st |  sW W W dS t W n tk
r   Y nX | j| | _ | dsW W dS W n tk
r.   Y nX W n t
k
rH   Y nX n|dkrz|  sfdS | d	s`dS n|d	kr|  sdS | d
	s`dS n|dkr|  sdS | d	s`dS n|dkr|  sdS |  sdS | j| j  }z| j | _| tj}|dkr8| j| | _ t | j | _|dkr|  sf| j| | _ t |  svW dS | j | _| 	ds| j| | _ t | j | _|  s| j| | _ t |  sW dS n|dkrz| j| j  }z.|  st |  sW W W dS t W n tk
r0   Y nX | j| | _ |  sZ| j| | _ t | dsnW W dS W n tk
r   Y nX nf|dkr|  s| j| | _ t |  sW dS n.|  s| j| | _ t | dsW dS W n tk
r   Y nX nR|dkr|  s&dS |  s4dS | j| j  }z| j | _| tj}|dkrt| j| | _ t | j | _|dkrzv| j| j  }z.|  st |  sW W W dS t W n tk
r   Y nX | j| | _ | dsW W dS W n tk
r   Y nX n|dkrzv| j| j  }z.|  s@t |  sTW W W dS t W n tk
rr   Y nX | j| | _ | dsW W dS W n tk
r   Y nX n,|  s| j| | _ t |  sW dS W n tk
r   Y nX nf|dkrd|  sdS |  s dS | j| j  }	z| j | _| 	dsV| j|	 | _ t | j | _|  sz| j|	 | _ t |  sW dS | j | _| 	ds| j|	 | _ t | j | _zv| j| j  }
z.|  st |  sW W W dS t W n tk
r
   Y nX | j|
 | _ | ds,W W dS W n tk
rD   Y nX W n tk
r^   Y nX n|dkr| d	s`dS n|dkr|  sdS | d	s`dS n|dkr| tjsdS | d	s`dS n|dkrz| j| j  }z,|  st |  sW W dS t  W n tk
r8   Y nX | j| | _ |  sVW dS | dshW dS W n t k
r   Y nX n|dkr|  sdS | !tj"sdS |  	s`dS n|dkr|  sdS | dsdS dS |dk	r|  	sdS | d	sdS dS | j| j  }| tj"	s4dS |  	sBdS | j| | _ |  	s\dS dS dS ) Nr!   Fr   rL   iciqUrM   logrN   r	   rO   ZentrP   ateuxr      abl   	   Zeau
   al   Zou         ant   T)#r#   r*   find_among_br   a_4r$   _FrenchStemmer__r_R2r-   r+   eq_s_br(   r,   r'   r<   _FrenchStemmer__r_RVa_2r?   r=   r:   _FrenchStemmer__r_R1a_3r;   r@   r>   rB   rA   lab11lab13lab12Zin_grouping_bg_oux_endinglab15lab14out_grouping_br9   )r/   rK   r0   rC   rD   rE   v_5v_6v_7v_8v_9v_10v_11r1   r1   r2   Z__r_standard_suffix  s   



  
 





















 
 




 









  




  


 









  
 








 

 








z!FrenchStemmer.__r_standard_suffixc                 C   s   | j | jk rdS | j}| j| _| j | _| tjdkr@|| _dS | j | _| j| j  }z| 	dsft
 || _W dS  t
k
r   Y nX | j| | _ | tjs|| _dS |  sdS || _dS )NFr!   HT)r#   rF   limit_backwardr*   re   r   a_5r$   r+   rh   r(   rs   r9   r-   )r/   rC   rD   r1   r1   r2   Z__r_i_verb_suffix  s2    
 zFrenchStemmer.__r_i_verb_suffixc                 C   s  | j | jk rdS | j}| j| _| j | _| tj}|dkrD|| _dS | j | _|| _|dkrv|  sfdS | 	 srdS n6|dkr| 	 sdS n|dkr| j
| j  }zB| ds| j
| | _ t |  s| j
| | _ t | j | _W n tk
r   Y nX | 	 sdS n| j
| j  }zb| tj}|dkr6t |dkrv| j | jkrTt |  j d8  _ | j | jkrvt W dS  tk
r   Y nX | j
| | _ | 	 sdS dS )NFr!   r   rL   rM   r   T)r#   rF   r|   r*   re   r   a_7r$   rg   r-   r+   rh   r(   ri   a_6r'   )r/   rC   rK   rD   rE   r1   r1   r2   Z__r_verb_suffix.  sf    

 


 
zFrenchStemmer.__r_verb_suffixc                 C   s*  | j | j }z| j| _| ds2| j | | _t | j| _| j | j }zj| j | j }z| dsft t W n tk
r   Y nX | j | | _| t	j
s| j | | _t W n tk
r   Y nX | j | | _|  sW dS W n tk
r   Y nX | j| jk r
dS | j}| j| _| j| _| t	j}|dkr@|| _dS | j| _|dkr|  sf|| _dS zh| j | j }z| dst t W n tk
r   Y nX | j | | _| ds|| _W dS W n tk
r   Y nX |  s dS n*|dkr| ds dS n|  s dS || _d	S )
Nr   r7   Fr!   r   r    rL   r   T)r+   r#   r*   rh   r(   r$   r,   r'   rs   r   g_keep_with_sr-   rF   r|   re   a_8rg   r:   r?   r<   )r/   r0   rC   rD   rt   rK   ru   r1   r1   r2   Z__r_residual_suffixf  s    


 
 
 



 
 


z!FrenchStemmer.__r_residual_suffixc                 C   sj   | j | j }| tjdkr dS | j | | _| j| _| j| jkrDdS |  jd8  _| j| _|  sfdS dS )Nr!   Fr   T)	r+   r#   re   r   a_9r*   r|   r$   r-   r.   r1   r1   r2   Z__r_un_double  s    zFrenchStemmer.__r_un_doublec                 C   s   d}z"|  tjst |d8 }W qW q@ tk
r:   Y q@X q@q|dkrLdS | j| _z\| j| j }z| dstt t	 W n tk
r   Y nX | j| | _| dsW dS W n t	k
r   Y nX | j| _
| dsdS dS )Nr   r!   Fr   r   r   T)rs   r   r9   r(   r#   r*   r+   rh   r,   r'   r$   r<   )r/   r0   rD   r1   r1   r2   Z__r_un_accent  s:     

 

 
zFrenchStemmer.__r_un_accentc                 C   s   | j }|   || _ | j }|   || _ |   | j | _| j| _ | j| j  }z.z| j| j  }z| j| j  }z| j| j  }z|  st t W n tk
r   Y nX | j| | _ z| 	 st
 t W n t
k
r   Y nX | j| | _ |  st W n tk
r   Y nX | j| | _ | j| j  }z| j | _z| j| j  }z@| ds`t | j | _| dsW W W W W W dS t W n tk
r   Y nX | j| | _ | ds| j| | _ t | j | _| dsW W W W W dS W n tk
r   Y nX W n tk
r"   Y nX t W n tk
rB   Y nX | j| | _ |  s`t W n tk
rx   Y nX W n tk
r   Y nX | j| | _ | j| j  }	|   | j|	 | _ | j| j  }
|   | j|
 | _ | j| _ | j }|   || _ dS )Nr5   r   F   çr   T)r#   _FrenchStemmer__r_elisions_FrenchStemmer__r_prelude_FrenchStemmer__r_mark_regionsr|   r+   !_FrenchStemmer__r_standard_suffixr:   r?   _FrenchStemmer__r_i_verb_suffixr=   _FrenchStemmer__r_verb_suffixr,   r*   rh   r@   r$   r<   r>   r;   r'   !_FrenchStemmer__r_residual_suffixr(   _FrenchStemmer__r_un_double_FrenchStemmer__r_un_accent_FrenchStemmer__r_postlude)r/   r0   rC   rE   rt   ru   rv   rw   rx   ry   rz   Zv_12r1   r1   r2   _stem  s    
 
 

 
  
 
 

 
 zFrenchStemmer._stemcolnir   Zpartap rY   r{   rP   r6   rN   r7   rO   r4   r3   rL   r5   rM   rU   rZ   u   Ièru   ièrZeusZivrT   ZabilZiqUeZatriceZanceZenceZlogieZableZismeZeuser`   ZisteZiver[   ifZusionZationZutionZateurZiqUesZatricesZancesZencesZlogiesZablesZismesZeusesZistesZivesZifsZusionsZationsZutionsZateursZments   Zements   Z	issements   ra   u   itésZmentZement"   Zissement#   Zammentrb   Zemmentrd   Zauxr]   Zeaux'   r\   rX   Zouxr_   u   itéZiraZieZisseZissanteZiraiZirZirasZiesu   îmesZissesZissantesu   îtesisZiraisZissaisZirionsZissionsZironsZissonsZissantsitZirait   ZissaitZissantZiraIentZissaIentZirentZissentZirontu   îtZiriezZissiezZirezZissezr^   u   éplZauvZeraZaiseZasseZanteu   éeZaiZeraiZerasZerasu   âmesZaisesZassesZantesu   âtesu   éesZaisZeais   ZeraisZionsZerions   ZassionsZeronsZantsu   ésZaitZerait   rc   ZaIentZeraIent   u   èrentZassentZerontu   âtZezZiezZeriez$   ZassiezZerezu   Ièreu   ièreZionZIerZierZellZeillZennZonnZettN)$__name__
__module____qualname____doc__r9   rp   r&   r   rH   rG   rF   r   r   r   r   ri   rk   rg   r   r   r   r   r   r   r   r   rJ   rQ   rj   rl   rf   r}   r   r~   r   r   r1   r1   r1   r2   r      sx  &f;$  8AM
































































0


































'











































-











r   c                   @   s   e Zd ZdS )r(   Nr   r   r   r1   r1   r1   r2   r(     s    r(   c                   @   s   e Zd ZdS )r'   Nr   r1   r1   r1   r2   r'     s    r'   c                   @   s   e Zd ZdS )r,   Nr   r1   r1   r1   r2   r,     s    r,   c                   @   s   e Zd ZdS )r?   Nr   r1   r1   r1   r2   r?     s    r?   c                   @   s   e Zd ZdS )r:   Nr   r1   r1   r1   r2   r:     s    r:   c                   @   s   e Zd ZdS )r=   Nr   r1   r1   r1   r2   r=     s    r=   c                   @   s   e Zd ZdS )r;   Nr   r1   r1   r1   r2   r;     s    r;   c                   @   s   e Zd ZdS )r>   Nr   r1   r1   r1   r2   r>     s    r>   c                   @   s   e Zd ZdS )r@   Nr   r1   r1   r1   r2   r@     s    r@   c                   @   s   e Zd ZdS )rA   Nr   r1   r1   r1   r2   rA     s    rA   c                   @   s   e Zd ZdS )rB   Nr   r1   r1   r1   r2   rB     s    rB   c                   @   s   e Zd ZdS )rm   Nr   r1   r1   r1   r2   rm     s    rm   c                   @   s   e Zd ZdS )ro   Nr   r1   r1   r1   r2   ro     s    ro   c                   @   s   e Zd ZdS )rn   Nr   r1   r1   r1   r2   rn     s    rn   c                   @   s   e Zd ZdS )rr   Nr   r1   r1   r1   r2   rr     s    rr   c                   @   s   e Zd ZdS )rq   Nr   r1   r1   r1   r2   rq     s    rq   N)Zbasestemmerr   Zamongr   r   BaseExceptionr(   r'   r,   r?   r:   r=   r;   r>   r@   rA   rB   rm   ro   rn   rr   rq   r1   r1   r1   r2   <module>   s2          W