a
    aO                     @   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                .   @   sl  e Zd ZdZ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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dedddedddgZ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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d0dded1dded2dded3dded4dded5dd%ed6dded7dd(ed8dd(ed9dded:dded;dded<dded=dd>ed?d@d
edAdBdCedDddedEdd>edFdGd
edHdIdCedJdGdKedLdGdMedNddOedPdQdRedSddedTddg+Z	edUddedVddedWdd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d`ddedaddedbddedcdKdedddKdededdedfddedgddedhddediddedjddedkdldedmdldednddedoddedpddedqddedrddedsddedtddeduddedvddedwddedxddg#Z
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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dddedddedddedddedddedddedddedddedddedddedddedddedddedddg&Z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edddedddgZg dZg dZd	Zd	Zd	Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZddĄ ZddƄ ZddȄ Zddʄ ZdS )FrenchStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    colZparZtap    H       Her      Hi   IU   Y   iqUablu   Ièru   ièrZeusZivicZabilZiqUeZatriceZanceZenceZlogieZableZismeZeuse   ZisteZive   ifZusionZationZutionZateurZiqUesZatricesZancesZencesZlogiesZablesZismesZeusesZistesZivesifsZusionsZationsZutionsZateursZments   Zements   Z	issements      u   itésZmentZement"   Zissement#   Zamment   Zemment   Zaux
   Zeaux'   	   euxu   itéZiraZieZisseZissanteiZ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issezaZeraZasseZanteu   éeZaiZeraiZerasZerasu   âmesZassesZantesu   âtesu   éesZaisZeraisZionsZerions   ZassionsZeronsZantsu   ésZaitZerait   antZaIentZeraIent   u   èrentZassentZerontu   âtZezZiez    Zeriez!   ZassiezZerez   éeu   Ièreu   ièreZionZIerZierZellZeillZennZonnZett)r.   A      r   r
   r
   r
   r
   r
   r
   r
   r
   r
   r
   r
         g   r   r   )r   r6      r
   r
   r
   r
   r
   r
   r
   r
   r
   r
   r
   r
   r
   r8   c                 C   s  | j }zz| j }z:z| j }z`| tjdds<t | j | _z | j }zT| ds`t | j | _| tjdds~t | 	dsW W W W W W W dS t
 W n ty   Y n0 || _ zV| dst | j | _| tjddst | 	ds
W W W W W W W dS t
 W n ty&   Y n0 || _ | ds@t | j | _| 	d	sdW W W W W W dS W n t
yz   Y n0 t W n ty   Y n0 || _ zF| j | _| d
st | j | _| 	dsW W W W W dS t W n ty   Y n0 || _ zF| j | _| dst | j | _| 	ds@W W W W W dS t W n ty\   Y n0 || _ z^| j | _| dst | j | _| tjddst | 	d	sW W W W W dS t W n ty   Y n0 || _ | dst | j | _| ds
t | j | _| 	ds*W W W W dS W n ty@   Y n0 || _ t W n tyd   Y n0 || _ | j | jkrt |  j d7  _ qW n ty   Y n0 W q W n ty   Y n0 || _ qq dS )Na      ur   Fr(   r   yr      ër      ïr   qr   T)cursorin_groupingr   g_vlab4braZeq_slab6ket
slice_fromlab5lab7lab3lab8lab9lab10lab2lab1limitlab0)selfv_1v_2v_3v_4 rZ   =lib/python3.9/site-packages/snowballstemmer/french_stemmer.pyZ__r_prelude   s    









zFrenchStemmer.__r_preludec                 C   s*  | j | _| j | _| j | _| j}zz| j}zV| tjddsBt | tjddsXt | j| j krjt |  jd7  _t	 W n ty   Y n0 || _z | 
tjdkrt t	 W n ty   Y n0 || _| j| j krt |  jd7  _| tjddst |  jd7  _W n t	y0   Y n0 | j| _W n tyP   Y n0 || _| j}z| tjddsxt |  jd7  _| tjddst |  jd7  _| j| _| tjddst |  jd7  _| tjddst |  jd7  _| j| _W n ty   Y n0 || _dS )Nr<   r=   r   r
   T)rS   I_pVI_p1I_p2rC   rD   r   rE   rQ   rR   
find_amonga_0rM   rT   Zgo_out_groupingrF   Zgo_in_grouping)rU   rV   rW   rX   rZ   rZ   r[   Z__r_mark_regions(  sj    

zFrenchStemmer.__r_mark_regionsc                 C   s  | j }z| j | _| tj}|dkr*t | j | _|dkrL| dsW dS n|dkrf| dsW dS n|dkr| 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y   Y n0 || _ qq dS )Nr
   r   r(   Fr   r>   r   r?   r   r@   r   rA   r   T)
rC   rG   r_   r   a_1rT   rI   rJ   	slice_delrS   )rU   rV   	among_varrZ   rZ   r[   Z__r_postlude_  sB    




zFrenchStemmer.__r_postludec                 C   s   | j | jksdS dS NFT)r\   rC   rU   rZ   rZ   r[   Z__r_RV  s    zFrenchStemmer.__r_RVc                 C   s   | j | jksdS dS rd   )r]   rC   re   rZ   rZ   r[   Z__r_R1  s    zFrenchStemmer.__r_R1c                 C   s   | j | jksdS dS rd   )r^   rC   re   rZ   rZ   r[   Z__r_R2  s    zFrenchStemmer.__r_R2c                 C   s	  | j | _| tj}|dkr dS | j | _|dkrL|  s<dS |  sHdS n|dkrH|  sbdS |  sndS | j| j  }z| j | _| 	ds| j| | _ t
 | j | _zn| j| j  }z*|  st |  sW W W dS t W n ty   Y n0 | j| | _ | dsW W dS W n ty*   Y n0 W n t
yB   Y n0 n|dkrt|  s`dS | d	sdS n|d	kr|  sdS | d
	sdS nx|dkr|  sdS | d	sdS nL|dkr|  sdS |  sdS | j| j  }z| j | _| tj}|dkr2| j| | _ t | j | _|dkr|  s`| j| | _ t |  spW 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y(   Y n0 | j| | _ |  sR| j| | _ t | dsfW W dS W n ty|   Y n0 nf|dkr|  s| j| | _ t |  sW dS n.|  s| j| | _ t | dsW dS W n ty   Y n0 n|dkr|  sdS |  s(dS | j| j  }z| j | _| tj}|dkrh| j| | _ t | j | _|dkrzt| j| j  }z.|  st |  sW W W dS t W n ty   Y n0 | j| | _ | dsW W dS W n ty   Y n0 n|dkrzt| j| j  }z.|  s0t |  sDW W W dS t W n ty`   Y n0 | j| | _ | dsW W dS W n ty   Y n0 n,|  s| j| | _ t |  sW dS W n ty   Y n0 n4|dkrH|  sdS |  s
dS | j| j  }	z| j | _| 	ds@| j|	 | _ t | j | _|  sd| j|	 | _ t |  stW dS | j | _| 	ds| j|	 | _ t | j | _zt| j| j  }
z.|  st |  sW W W dS t W n ty   Y n0 | j|
 | _ | dsW W dS W n ty*   Y n0 W n tyB   Y n0 n|dkrf| d	sdS n|dkr|  s~dS | d	sdS n|dkr4z| j| j  }z,|  st |  sW W dS t W n ty   Y n0 | j| | _ |  sW dS | dsW dS W n ty0   Y n0 n|dkrr|  sLdS | tj ddsbdS |  	sdS n|dkr|  sdS | dsdS dS |dkr|  sdS | dsdS dS | j| j  }| !tj ddsdS |  sdS | j| | _ |  	sdS dS dS ) Nr
   Fr   r   r   r   r   logr   r>   r   Zentr   Zatr'   r(   r   r   r   r&   Zeaur$   Zalr   r   r<   r=   r"   r0   r#   T)"rC   rI   find_among_br   a_4rG   _FrenchStemmer__r_R2rb   rS   eq_s_brT   rQ   rR   rJ   _FrenchStemmer__r_RVa_2rM   rK   rF   _FrenchStemmer__r_R1a_3rH   rN   rL   rP   rO   lab11lab13lab12lab15lab14out_grouping_brE   Zin_grouping_b)rU   rc   rV   rW   rX   rY   v_5v_6v_7v_8v_9v_10v_11rZ   rZ   r[   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
y   Y n0 | j| | _ | tjdds|| _dS |  sdS || _dS )NFr
   r	   r<   r=   T)rC   r\   limit_backwardrI   rg   r   a_5rG   rS   rj   rT   rt   rE   rb   )rU   rW   rX   rZ   rZ   r[   Z__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rD|| _dS | j | _|dkrt|  sf|| _dS | 	 sdS n|dkr| 	 sdS nj| 	 sdS | j
| j  }z>| j | _| ds| j
| | _ t | j | _| 	 sW dS W n ty   Y n0 || _dS )NFr
   r   r   r5   T)rC   r\   r|   rI   rg   r   a_6rG   ri   rb   rS   rj   rT   )rU   rW   rc   rX   rZ   rZ   r[   Z__r_verb_suffix  sB    

zFrenchStemmer.__r_verb_suffixc                 C   s$  | j | j }z| j| _| ds2| j | | _t | j| _| j | j }zl| j | j }z| dsft t W n ty   Y n0 | j | | _| t	j
dds| j | | _t W n ty   Y n0 | j | | _|  sW dS W n ty   Y n0 | j| jk rdS | j}| j| _| j| _| t	j}|dkr>|| _dS | j| _|dkr|  sd|| _dS zf| j | j }z| dst t W n ty   Y n0 | j | | _| ds|| _W dS W n ty   Y n0 |  sdS n*|d	kr| d
sdS n|  sdS || _dS )Nsr   r<      Fr
   r   tr   r(   T)rS   rC   rI   rj   rT   rG   rQ   rR   rt   r   g_keep_with_srb   r\   r|   rg   a_7ri   rF   rM   rJ   )rU   rV   rW   rX   ru   rc   rv   rZ   rZ   r[   Z__r_residual_suffix  sv    












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)	rS   rC   rg   r   a_8rI   r|   rG   rb   )rU   rV   rZ   rZ   r[   Z__r_un_double$  s    zFrenchStemmer.__r_un_doublec                 C   s   d}z&|  tjddst |d8 }W qW qB ty<   Y qB0 qBq|dkrNdS | j| _zZ| j| j }z| dsvt t	 W n ty   Y n0 | j| | _| dsW dS W n t	y   Y n0 | j| _
| dsdS d	S )
Nr   r<   r=   r
   Fr4      èr5   T)rt   r   rE   rT   rC   rI   rS   rj   rQ   rR   rG   rJ   )rU   rV   rX   rZ   rZ   r[   Z__r_un_accent3  s4    




zFrenchStemmer.__r_un_accentc                 C   s  | j }|   || _ |   | j | _| j| _ | j| j  }zz| j| j  }z| j| j  }z| j| j  }z|  szt t W n ty   Y n0 | j| | _ z|  st	 t W n t	y   Y n0 | j| | _ | 
 st W n ty   Y n0 | j| | _ | j| j  }z| j | _z| j| j  }z@| dsBt | j | _| dsfW W W W W W dS t W n ty   Y n0 | j| | _ | ds| j| | _ t | j | _| dsW W W W W dS W n ty   Y n0 W n ty   Y n0 t W n ty   Y n0 | j| | _ |  s:t W n tyP   Y n0 W n tyh   Y n0 | j| | _ | j| j  }|   | j| | _ | j| j  }	|   | j|	 | _ | j| _ | j }
|   |
| _ dS )Nr   r(   F   çcT)rC   _FrenchStemmer__r_prelude_FrenchStemmer__r_mark_regionsr|   rS   !_FrenchStemmer__r_standard_suffixrF   rM   _FrenchStemmer__r_i_verb_suffixrK   _FrenchStemmer__r_verb_suffixrQ   rI   rj   rN   rG   rJ   rL   rH   rR   !_FrenchStemmer__r_residual_suffixrT   _FrenchStemmer__r_un_double_FrenchStemmer__r_un_accent_FrenchStemmer__r_postlude)rU   rV   rX   rY   ru   rv   rw   rx   ry   rz   r{   rZ   rZ   r[   _stemP  s    






zFrenchStemmer._stemN) __name__
__module____qualname____doc__r   r`   ra   rl   rn   rh   r}   r~   r   r   rE   r   r^   r]   r\   r   r   r   rk   rm   ri   r   r   r   r   r   r   r   rZ   rZ   rZ   r[   r      s`  






























































/


































'





































*











f7&  (Ar   c                   @   s   e Zd ZdS )rT   Nr   r   r   rZ   rZ   rZ   r[   rT         rT   c                   @   s   e Zd ZdS )rR   Nr   rZ   rZ   rZ   r[   rR     r   rR   c                   @   s   e Zd ZdS )rQ   Nr   rZ   rZ   rZ   r[   rQ     r   rQ   c                   @   s   e Zd ZdS )rM   Nr   rZ   rZ   rZ   r[   rM     r   rM   c                   @   s   e Zd ZdS )rF   Nr   rZ   rZ   rZ   r[   rF     r   rF   c                   @   s   e Zd ZdS )rK   Nr   rZ   rZ   rZ   r[   rK     r   rK   c                   @   s   e Zd ZdS )rH   Nr   rZ   rZ   rZ   r[   rH     r   rH   c                   @   s   e Zd ZdS )rL   Nr   rZ   rZ   rZ   r[   rL     r   rL   c                   @   s   e Zd ZdS )rN   Nr   rZ   rZ   rZ   r[   rN     r   rN   c                   @   s   e Zd ZdS )rO   Nr   rZ   rZ   rZ   r[   rO     r   rO   c                   @   s   e Zd ZdS )rP   Nr   rZ   rZ   rZ   r[   rP     r   rP   c                   @   s   e Zd ZdS )ro   Nr   rZ   rZ   rZ   r[   ro     r   ro   c                   @   s   e Zd ZdS )rq   Nr   rZ   rZ   rZ   r[   rq     r   rq   c                   @   s   e Zd ZdS )rp   Nr   rZ   rZ   rZ   r[   rp     r   rp   c                   @   s   e Zd ZdS )rs   Nr   rZ   rZ   rZ   r[   rs     r   rs   c                   @   s   e Zd ZdS )rr   Nr   rZ   rZ   rZ   r[   rr     r   rr   N)Zbasestemmerr   Zamongr   r   BaseExceptionrT   rR   rQ   rM   rF   rK   rH   rL   rN   rO   rP   ro   rq   rp   rs   rr   rZ   rZ   rZ   r[   <module>   s2          