o
    Min                     @   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h dZh dZh dZh d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d Zdd Zdd Zdd Zdd  Zd!d" Zed#d$d$ed%d$d&ed'd$d$ed(d$d$gZed)d$d*ed+dd,ed-d&d.ed/d&d0ed1dd&ed2dd3ed4dd5gZed6d$d5ed7d$d5ed8d$d.ed9d$d.ed:d$d3ed;d$d&gZed<d$d3ed=d$d&ed;d$d5gZg ed>d$d&ed?d$d3ed@d$d&edAd$d0edBd$d5edCd$d&edDd$d&edEd$dFedGd$d&edHd$dIedJd$dIedKd$d.edLd$d3edMd$d.edNd$d3edOd$d&edPd$d3edQd$d&edRd$d0edSd$d5edTd$d&edUd$d&edVd$dFedWd$d&edXd$dIedYd$dIedZd$d.ed[d$d3ed\d$d.ed]d$d3ed^d$d_ed`dad,edbdcddeded$d*edfd$d_edgdhd,edidjddedkdhdledmdhdnedod$dpedqdrdsedtd$d&edud$dvedwd$d*Zg edxd$d&edyd$d&edzd$d&ed{d$d&ed|d$d&ed}d.d&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dddd&edddd&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&Zedd$d&edd$d$edd$d$gZ g edd$d5eddd3edd$d.edd$d5edd$d5edd$d3edd$d5edd,d3edd$d3edd$d5eddsd3edd$d5edd$d.edd$d5edd$d5edd$d5edd$d3edd$d.eddd3eddd3edd$d&eddd3eddd5edd$d3edd$d5edd$d3edd$d5eddd3edd$d5edd$d5eddd3edd$d3edd$d5edd$d3edd$d5edd$d3eddjd3eddd3eddd5eddjd3edd$d3Z!edd$d5eddd3eddd3edd$d&edd$d3edd$d3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dr   r   mr   st>   r   r   r   r   r	   r       c                 C   s   | j | _z&| j }z| tjst t  ty   Y nw || _ | ds)W dS W n	 ty3   Y nw | ds;dS | j | _z| j | j	k rIt
 W dS  t
yT   Y nw |  s[dS dS )NquF'T)cursorbrain_groupingr   g_elision_charlab1lab0eq_sketlimitlab2	slice_delselfv_1 r2   R/home/ubuntu/.local/lib/python3.10/site-packages/snowballstemmer/french_stemmer.py__r_elisions   s0   

zFrenchStemmer.__r_elisionsc                 C   s  	 | j }zz	 | j }z|zj| j }z| tjst | j | _z| j }z&| ds.t | j | _| tjs;t | 	dsIW W W W W W W dS t
  tyT   Y nw || _ z&| dsat | j | _| tjsnt | 	ds|W W W W W W W dS t
  ty   Y nw || _ | dst | j | _| 	dsW W W W W W dS W t  t
y   Y t w  ty   Y nw || _ z| j | _| d	st | j | _| 	d
sW W W W W dS t  ty   Y nw || _ z | j | _| dst | j | _| 	ds	W W W W W dS t  ty   Y nw || _ z+| j | _| ds't | j | _| tjs5t | 	dsBW W W W W dS t  tyN   Y nw || _ | ds[t | j | _| dsht | j | _| 	dsxW W W W dS W n
 ty   Y nw || _ t  ty   Y nw || _ | j | jkrt |  j d7  _ q	 ty   Y nw W q  ty   Y nw || _ 	 dS )NTr	   UFr   Ir
   Yr   Her   Hiqr   )r$   r&   r   g_vlab4r%   r*   lab6r+   
slice_fromlab5lab7lab3lab8lab9lab10r-   r(   r,   r)   )r0   r1   v_2v_3v_4r2   r2   r3   __r_prelude4   s   








ZzFrenchStemmer.__r_preludec                 C   s  | j | _| j | _| j | _| j}zz| j}z%| tjst | tjs't | j| j kr0t |  jd7  _t	  tyB   Y nw || _z| 
tj}|dkrTt |dkra| tjsat t	  tyl   Y nw || _| j| j kryt |  jd7  _| tjst |  jd7  _W n	 t	y   Y nw | j| _W n	 ty   Y nw || _| j}zJ| tjst |  jd7  _| tjst |  jd7  _| j| _| tjst |  jd7  _| tjst |  jd7  _| j| _W n
 ty   Y nw || _dS )Nr   r!   T)r,   I_pVI_p1I_p2r$   r&   r   r;   r-   r(   
find_amonga_0rA   r)   go_out_groupingr<   go_in_grouping)r0   r1   rE   	among_varrF   r2   r2   r3   __r_mark_regions   sr   zFrenchStemmer.__r_mark_regionsc                 C   s  	 | j }zm| j | _| tj}| j | _|dkr | dsW dS nP|dkr-| ds,W dS nC|dkr:| ds9W dS n6|d	krG| d
sFW dS n)|dkrT| dsSW dS n|dkr`|  s_W dS n| j | jkrit	 |  j d7  _ W q  t	yz   Y nw || _ 	 dS )NTr   r   F   r	      r
      r      r      )
r$   r%   rL   r   a_1r+   r>   r.   r,   r)   )r0   r1   rP   r2   r2   r3   __r_postlude   sL   




zFrenchStemmer.__r_postludec                 C      | j | jkS N)rI   r$   r0   r2   r2   r3   __r_RV      zFrenchStemmer.__r_RVc                 C   rY   rZ   )rJ   r$   r[   r2   r2   r3   __r_R1   r]   zFrenchStemmer.__r_R1c                 C   rY   rZ   )rK   r$   r[   r2   r2   r3   __r_R2   r]   zFrenchStemmer.__r_R2c                 C   s<	  | j | _| tj}|dkrdS | j | _|dkr&|  sdS |  s$dS dS |dkr|  s0dS |  s6dS | j| j  }zZ| j | _| 	dsO| j| | _ t
 | j | _z4| j| j  }z|  sbt |  skW W W dS t  tyv   Y nw | j| | _ | dsW W dS W n	 ty   Y nw W dS W dS  t
y   Y dS w |dkr|  sdS | dsdS dS |d	kr|  sdS | d
sdS dS |dkr|  sdS | dsdS dS |dkr|  sdS |  sdS | j| j  }z| j | _| tj}|dkr
| j| | _ t | j | _|dkrW|  s!| j| | _ t |  s)W dS | j | _| 	ds<| j| | _ t | j | _|  sN| j| | _ t |  sVW dS n|dkrzF| j| j  }z|  slt |  svW W W dS t  ty   Y nw | j| | _ |  s| j| | _ t | dsW W dS W n@ ty   Y n:w |dkr|  s| j| | _ t |  sW dS n |  s| j| | _ t | dsW dS W dS W dS W dS W dS W dS  ty   Y dS w |dkr|  sdS |  sdS | j| j  }z| j | _| tj}|dkr,| j| | _ t | j | _|dkrxz8| j| j  }z|  sEt |  sOW W W dS t  ty[   Y nw | j| | _ | dslW W dS W nh tyw   Y nbw |dkrz8| j| j  }z|  st |  sW W W dS t  ty   Y nw | j| | _ | dsW W dS W n& ty   Y n w |  s| j| | _ t |  sW dS W dS W dS W dS W dS W dS  ty   Y dS w |dkr|  sdS |  sdS | j| j  }	z| j | _| 	ds| j|	 | _ t | j | _|  s/| j|	 | _ t |  s7W dS | j | _| 	dsJ| j|	 | _ t | j | _z8| j| j  }
z|  s^t |  shW W W dS t  tyt   Y nw | j|
 | _ | dsW W dS W n
 ty   Y nw W dS W dS  ty   Y dS w |dkr| dsdS dS |dkr|  sdS | dsdS dS |dkr| tjsdS | dsdS dS |dkr/z?| j| j  }z|  st |  sW W dS t   ty	   Y nw | j| | _ |  sW dS | ds!W dS W dS  t y.   Y dS w |dkrM|  s;dS | !tj"sDdS |  sKdS dS |dkrc|  sYdS | dsadS dS |dkry|  sodS | dswdS dS | j| j  }| tj"sdS |  sdS | j| | _ |  sdS dS ) Nr!   Fr   rR   iciqUrS   logrT   r	   rU   entrV   ateuxr      abl   	   eau
   al   ou         ant   T)#r$   r+   find_among_br   a_4r%   _FrenchStemmer__r_R2r.   r,   eq_s_br)   r-   r(   r>   _FrenchStemmer__r_RVa_2rA   r?   r<   _FrenchStemmer__r_R1a_3r=   rB   r@   rD   rC   lab11lab13lab12in_grouping_bg_oux_endinglab15lab14out_grouping_br;   )r0   rP   r1   rE   rF   rG   v_5v_6v_7v_8v_9v_10v_11r2   r2   r3   __r_standard_suffix  s      


 l  j  i 
 d 
 _ 
 Z 















 <  *  (  #     













~|omhe







A?>
;

6
1



" 








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s3t
 || _W dS  t
yA   Y nw | j| | _ | tjsS|| _dS |  sYdS || _dS )NFr!   HT)r$   rI   limit_backwardr+   rt   r   a_5r%   r,   rw   r)   r   r;   r.   )r0   rE   rF   r2   r2   r3   __r_i_verb_suffix  s0   
zFrenchStemmer.__r_i_verb_suffixc                 C   s  | j | jk rdS | j}| j| _| j | _| tj}|dkr"|| _dS | j | _|| _|dkr;|  s3dS | 	 s9dS dS |dkrG| 	 sEdS dS |dkr| j
| j  }z!| ds`| j
| | _ t |  sm| j
| | _ t | j | _W n	 ty{   Y nw | 	 sdS dS | j
| j  }z-| tj}|dkrt |dkr| j | jkrt |  j d8  _ | j | jkrt W dS  ty   Y nw | j
| | _ | 	 sdS dS )NFr!   r   rR   rS   r   T)r$   rI   r   r+   rt   r   a_7r%   rv   r.   r,   rw   r)   rx   a_6r(   )r0   rE   rP   rF   rG   r2   r2   r3   __r_verb_suffix.  sh   &"
zFrenchStemmer.__r_verb_suffixc                 C   s   | j | j }zg| j| _| ds| j | | _t | j| _| j | j }z2| j | j }z| ds3t t  ty>   Y nw | j | | _| t	j
sT| j | | _t W n	 ty^   Y nw | j | | _|  slW dS W n	 tyv   Y nw | j| jk rdS | j}| j| _| j| _| t	j}|dkr|| _dS | j| _|dkr|  s|| _dS z.| j | j }z| dst t  ty   Y nw | j | | _| ds|| _W dS W n	 ty   Y nw |  sdS n|dkr| dsdS n|  sdS || _d	S )
Nr   r9   Fr!   r   r    rR   r   T)r,   r$   r+   rw   r)   r%   r-   r(   r   r   g_keep_with_sr.   rI   r   rt   a_8rv   r<   rA   r>   )r0   r1   rE   rF   r   rP   r   r2   r2   r3   __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r"dS |  jd8  _| j| _|  s3dS dS )Nr!   Fr   T)	r,   r$   rt   r   a_9r+   r   r%   r.   r/   r2   r2   r3   __r_un_double  s   zFrenchStemmer.__r_un_doublec                 C   s   d}	 z|  tjst |d8 }W q ty   Y nw 	 |dkr#dS | j| _z+| j| j }z| ds7t t	  tyB   Y nw | j| | _| dsQW dS W n	 t	y[   Y nw | j| _
| dsgdS dS )Nr   Tr!   Fr   r   r   )r   r   r;   r)   r$   r+   r,   rw   r-   r(   r%   r>   )r0   r1   rF   r2   r2   r3   __r_un_accent  s8   


zFrenchStemmer.__r_un_accentc                 C   s  | j }|   || _ | j }|   || _ |   | j | _| j| _ | j| j  }zz| j| j  }z| j| j  }zC| j| j  }z
|  sDt t  tyO   Y nw | j| | _ z
| 	 s^t
 t  t
yi   Y nw | j| | _ |  swt W n	 ty   Y nw | j| | _ | j| j  }zf| j | _zU| j| j  }z| dst | j | _| dsW W W W W W dS t  ty   Y nw | j| | _ | ds| j| | _ t | j | _| dsW W W W W dS W W t  ty   Y W t w  ty   Y t w  ty	   Y nw | j| | _ |  st W n
 ty#   Y nw W n
 ty/   Y nw | j| | _ | j| j  }	|   | j|	 | _ | j| j  }
|   | j|
 | _ | j| _ | j }|   || _ dS )Nr7   r   F   çr   T)r$   _FrenchStemmer__r_elisions_FrenchStemmer__r_prelude_FrenchStemmer__r_mark_regionsr   r,   !_FrenchStemmer__r_standard_suffixr<   rA   _FrenchStemmer__r_i_verb_suffixr?   _FrenchStemmer__r_verb_suffixr-   r+   rw   rB   r%   r>   r@   r=   r(   !_FrenchStemmer__r_residual_suffixr)   _FrenchStemmer__r_un_double_FrenchStemmer__r_un_accent_FrenchStemmer__r_postlude)r0   r1   rE   rG   r   r   r   r   r   r   r   v_12r2   r2   r3   _stem  s   




zFrenchStemmer._stemcolnir   partap rf   r   rV   r8   rT   r9   rU   r6   r5   rR   r7   rS   ra   rg   u   Ièru   ièreusivr`   abiliqUeatriceanceencelogieableismeeusero   isteiverh   ifusionationutionateuriqUesatricesancesenceslogiesablesismeseusesistesivesifsusionsationsutionsateursments   ements   	issements   rp   u   itésmentement"   issement#   ammentrq   emmentrs   auxrk   eaux'   ri   re   ouxrm   u   itéiraieisseissanter   iraiirirasiesu   îmesissesissantesu   îtesisiraisissaisirionsissionsironsissonsissantsitirait   issaitissantiraIentissaIentirentissentirontu   îtiriezissiezirezissezrl   u   éplauvr   eraaiseasseanteu   éeaieraieraserasu   âmesaisesassesantesu   âtesu   éesaiseais   eraisionserions   assionseronsantsu   ésaiterait   rr   aIenteraIent   u   èrentassenterontu   âteziezeriez$   assiezerezr   r   u   Ièreu   ièreionIerierelleillennonnettN)$__name__
__module____qualname____doc__r;   r   r'   r   rK   rJ   rI   r   r   r   r   rx   rz   rv   r   r   r   r   r   r   r   r   rM   rW   ry   r{   ru   r   r   r   r   r   r2   r2   r2   r3   r      sj   f;$  8A
M




























	























 
!
"
#
$
%
&
'
(
)
*
+
,/








	























 
!
"
#
'










	























 
!
"
#
$
%
&
'
(
)
-










r   c                   @      e Zd ZdS )r)   Nr+  r,  r-  r2   r2   r2   r3   r)         r)   c                   @   r/  )r(   Nr0  r2   r2   r2   r3   r(     r1  r(   c                   @   r/  )r-   Nr0  r2   r2   r2   r3   r-     r1  r-   c                   @   r/  )rA   Nr0  r2   r2   r2   r3   rA     r1  rA   c                   @   r/  )r<   Nr0  r2   r2   r2   r3   r<     r1  r<   c                   @   r/  )r?   Nr0  r2   r2   r2   r3   r?     r1  r?   c                   @   r/  )r=   Nr0  r2   r2   r2   r3   r=     r1  r=   c                   @   r/  )r@   Nr0  r2   r2   r2   r3   r@     r1  r@   c                   @   r/  )rB   Nr0  r2   r2   r2   r3   rB     r1  rB   c                   @   r/  )rC   Nr0  r2   r2   r2   r3   rC     r1  rC   c                   @   r/  )rD   Nr0  r2   r2   r2   r3   rD     r1  rD   c                   @   r/  )r|   Nr0  r2   r2   r2   r3   r|     r1  r|   c                   @   r/  )r~   Nr0  r2   r2   r2   r3   r~     r1  r~   c                   @   r/  )r}   Nr0  r2   r2   r2   r3   r}     r1  r}   c                   @   r/  )r   Nr0  r2   r2   r2   r3   r     r1  r   c                   @   r/  )r   Nr0  r2   r2   r2   r3   r     r1  r   N)basestemmerr   amongr   r   BaseExceptionr)   r(   r-   rA   r<   r?   r=   r@   rB   rC   rD   r|   r~   r}   r   r   r2   r2   r2   r3   <module>   s4          W