
    gd?                         d dl mZ d dlmZ  G d de      Z G d de      Z G d de      Z G d	 d
e      Z G d de      Z	 G d de      Z
 G d de      Zy)   )BaseStemmer)Amongc            "          e Zd Zd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      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       eddd       eddd       eddd      gZ 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      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d0dd      gZ
 ed1dd2       edd3d       edd3d       edd3d       edd3d       edd$d       edd$d       ed4d$d       eddd       eddd       ed5dd       ed6dd7       edd8d       ed9d8dd:       ed;d8dd<       ed=d8d       ed>d8dd:       ed?d8d       ed@d8dd:       edAd8d$       ed
d8d(       edBd8d&       edCdd2       eddDd       eddDd       eddDd       eddDd       eddEd       eddEd       edFdEd      gZ edGdd       edHdd       edIdd       edJdd       edKdd       edLdd       edMd(d       edNdd       edOd7d       edPdd       edQdd       edRdSd       edTdd       edUdVd      gZ edWdd       edXdd      gZ edHdd       edId3d      gZg dYZg dZZg d[Zg d\Zg d]Zd^Zd_Zd3Zd3Zd` Zda Zdb Zdc Zdd Zde Zdf Zdg Zdh Z di Z!dj Z"dk Z#yl)mFinnishStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    par   sti   kaanhankinu   hänu   käänkou   päu   köllanassatalta   stau   lläu   näu   ssäu   täu   ltäu   ställeinensammennenisian   en   u   än   u   nsäaaeeiioouuu   ääu   ööa       ttaksin      den_FinnishStemmer__r_VIseen_FinnishStemmer__r_LONGhenttenhinsiinhonu   hön   ä      u   ttäejammaimmampaimpammiimmimpiimpiu   ejäu   mmäu   immä
   u   mpäu   impä   ij)   r   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r(   )w      rI   r   )rH   A      r   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r(   r)       )rH   rK   rL   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r(   r)   rM   )rH   a      r   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r(   r)   rM   F c                    | j                   | _        | j                   | _        | j                  t        j
                  dd      sy| j                  t        j
                  dd      sy| xj                  dz  c_        | j                  | _        | j                  t        j
                  dd      sy| j                  t        j
                  dd      sy| xj                  dz  c_        | j                  | _        y)NrN      Fr   T)limitI_p1I_p2go_out_groupingr   g_V1go_in_groupingcursorselfs    T/var/www/openai/venv/lib/python3.12/site-packages/snowballstemmer/finnish_stemmer.py__r_mark_regionszFinnishStemmer.__r_mark_regions   s    JJ	JJ	##N$7$7SA"">#6#6C@qKK	##N$7$7SA"">#6#6C@qKK	    c                 8    | j                   | j                  k  syyNFT)rU   rY   rZ   s    r\   __r_R2zFinnishStemmer.__r_R2   s    yyDKK'r^   c                    | j                   | j                  k  ry| j                  }| j                  | _        | j                   | _        | j	                  t
        j                        }|dk(  r|| _        y| j                   | _        || _        |dk(  r"| j                  t
        j                  dd      sy| j                         sy| j                         syy)NFr)   r   rN   rR   T)rY   rT   limit_backwardketfind_among_br   a_0brain_grouping_bg_particle_end_FinnishStemmer__r_R2	slice_del)r[   v_2	among_vars      r\   __r_particle_etczFinnishStemmer.__r_particle_etc   s    ;;"!!"ii;;%%n&8&89	>"%D;;!>%%n&C&CRM;;=~~r^   c                 4   | j                   | j                  k  ry| j                  }| j                  | _        | j                   | _        | j	                  t
        j                        }|dk(  r|| _        y| j                   | _        || _        |dk(  r6| j                  | j                   z
  }	 | j                  d      s
t               y|dk(  rX| j                         sy| j                   | _        | j                  d      sy| j                   | _        | j                  d      syy|dk(  r| j                         syy|d	k(  r5| j	                  t
        j                        dk(  ry| j                         syy|d
k(  r5| j	                  t
        j                        dk(  ry| j                         syy| j	                  t
        j                        dk(  ry| j                         syy# t        $ r Y nw xY w| j                  |z
  | _         | j                         syy)NFr)   r   kr
   kser+   r   r   r!   T)rY   rT   rc   rd   re   r   a_4rg   rS   eq_s_blab0rk   
slice_froma_1a_2a_3r[   rl   rm   v_3s       r\   __r_possessivezFinnishStemmer.__r_possessive   s   ;;"!!"ii;;%%n&8&89	>"%D;;!>**t{{*C{{4(&L !^>>#{{DH;;v&{{DH??6*. - !^>>#( % !^  !3!349>>#  !^  !3!349>>#    !3!349>>#K **s*DK>>#D s   ,G% %	G10G1c                 J    | j                  t        j                        dk(  ryy)Nr)   FT)re   r   a_5rZ   s    r\   __r_LONGzFinnishStemmer.__r_LONG   s!    ^//0A5r^   c                 l    | j                  d      sy| j                  t        j                  dd      syy)NrF   FrN   rR   T)rs   rh   r   g_V2rZ   s    r\   __r_VIzFinnishStemmer.__r_VI   s/    {{4 !!."5"5r3?r^   c                    | j                   | j                  k  ry| j                  }| j                  | _        | j                   | _        | j	                  t
        j                        }|dk(  r|| _        y| j                   | _        || _        |dk(  r| j                  d      s6y|dk(  r| j                  d      sy|dk(  r| j                  d      sy|d	k(  r| j                  d
      sy|dk(  r| j                  d      sy|dk(  r| j                  d      sy|dk(  rr| j                  | j                   z
  }	 | j                  | j                   z
  }	 | j                  | j                   z
  }	 | j                         s
t               t               |dk(  rD| j                  t
        j                  dd      sy| j                  t
        j                   dd      sy| j#                         syd| _        y# t        $ r Y nw xY w| j                  |z
  | _         | j                  d      s| j                  |z
  | _         t               n# t        $ r Y nw xY w| j                  |z
  | _         | j                   | j                  k  r| j                  |z
  | _         t               | xj                   dz  c_         | j                   | _        # t        $ r Y w xY w)NFr)   r   r'   r
   er   rF   r   or!   r8   r       ör-   ier(   rN   rR   b   z   T)rY   rT   rc   rd   re   r   a_6rg   rs   rS   r2   lab2lab1rt   rh   rW   g_Crk   B_ending_removed)r[   rl   rm   rz   v_4v_5s         r\   __r_case_endingzFinnishStemmer.__r_case_ending  se   ;;"!!"ii;;%%n&8&89	>"%D;;!>;;t$!^;;t$!^;;t$!^;;t$!^;;y)!^;;y)!^**t{{*Cjj4;;."**t{{2C&#}}"&&L"f !^%%n&9&92sC%%n&8&8"cB~~ $-  %%"&**s"2DK;;u-&*jj3&6"f . !T!"jj3.;;$"5"55"&**s"2DK&Lq ;;sV   9K I -$G3 3	G?<I >G??AI K 	IK IA4K 	KKc                    | j                   | j                  k  ry| j                  }| j                  | _        | j                   | _        | j	                  t
        j                        }|dk(  r|| _        y| j                   | _        || _        |dk(  r6| j                  | j                   z
  }	 | j                  d      s
t               y| j                         syy# t        $ r Y nw xY w| j                  |z
  | _         6)NFr)   r   poT)rY   rU   rc   rd   re   r   a_7rg   rS   rs   rt   rk   ry   s       r\   __r_other_endingsz FinnishStemmer.__r_other_endingsD  s    ;;"!!"ii;;%%n&8&89	>"%D;;!>**t{{*C{{5)&L ~~ **s*DKs   ,C 	C&%C&c                 :   | j                   | j                  k  ry| j                  }| j                  | _        | j                   | _        | j	                  t
        j                        dk(  r|| _        y| j                   | _        || _        | j                         syy)NFr)   T)	rY   rT   rc   rd   re   r   a_8rg   rk   )r[   rl   s     r\   __r_i_pluralzFinnishStemmer.__r_i_plural]  s~    ;;"!!"ii;;^//0A5"%D;;!~~r^   c                    | j                   | j                  k  ry| j                  }| j                  | _        | j                   | _        | j	                  d      s|| _        y| j                   | _        | j                  | j                   z
  }| j                  t        j                  dd      s|| _        y| j                  |z
  | _         | j                         sy|| _        | j                   | j                  k  ry| j                  }| j                  | _        | j                   | _        | j                  t        j                        }|dk(  r|| _        y| j                   | _        || _        |dk(  r6| j                  | j                   z
  }	 | j	                  d      s
t               y| j                         syy# t        $ r Y nw xY w| j                  |z
  | _         6)	NFtrN   rR   r)   r   r   T)rY   rT   rc   rd   rs   rg   rS   rh   r   rW   rk   rU   re   a_9rt   )r[   rl   rz   r   rm   v_6s         r\   __r_t_pluralzFinnishStemmer.__r_t_pluralm  s   ;;"!!"ii;;{{4 "%D;;jj4;;&!!."5"5r3?"%Djj3&~~!;;"!!"ii;;%%n&8&89	>"%D;;!>**t{{*C{{5)&L ~~ **s*DKs   F: :	GGc                    | j                   | j                  k  ry| j                  }| j                  | _        | j                  | j                   z
  }	 | j                  | j                   z
  }| j	                         s
t               | j                  |z
  | _         | j                   | _        | j                   | j                  k  r
t               | xj                   dz  c_         | j                   | _        | j                         sy	 | j                  |z
  | _         | j                  | j                   z
  }	 | j                   | _        | j                  t        j                  dd      s
t               | j                   | _        | j                  t        j                  dd      s
t               | j                         sy	 | j                  |z
  | _         | j                  | j                   z
  }	 | j                   | _        | j                  d      s
t               | j                   | _        	 | j                  | j                   z
  }	 | j                  d      s
t!               t#               # t
        $ r Y ow xY w# t        $ r Y w xY w# t         $ r Y nw xY w| j                  |z
  | _         | j                  d	      s
t               n# t"        $ r Y nw xY w| j                         syn# t        $ r Y nw xY w| j                  |z
  | _         | j                  | j                   z
  }	 | j                   | _        | j                  d      s
t%               | j                   | _        | j                  d      s
t%               | j                         syn# t$        $ r Y nw xY w| j                  |z
  | _         || _        | j'                  t        j(                  dd
      sy| j                   | _        | j                  t        j                  dd      sy| j                   | _        | j+                         | _        | j,                  dk(  ry| j                  | j,                        sy| j                         syy)NFr   rN      r   r   rG   r   urR   rP   T)rY   rT   rc   rS   r2   rt   rd   rg   rk   rh   r   g_AEIr   r   rs   r   lab4lab3lab5go_in_grouping_brW   slice_toS_x)r[   rl   rz   r   r   r   v_7v_8s           r\   __r_tidyzFinnishStemmer.__r_tidy  s   ;;"!!"iijj4;;&	**t{{*C==?f**s*DK{{DH{{d111fKK1K{{DH>># $ jj3&jj4;;&
	{{DH%%n&:&:BDf{{DH%%n&8&8"cBf>># $ jj3&jj4;;&	{{DH;;t$f{{DH
jj4;;.";;t,"f&L5 T T !T!"jj3.{{4(&L )>># $ Tjj3&jj4;;&
	{{DH;;t$f{{DH;;t$f>># $ Tjj3&!$$^%8%8"cB;;!!."4"4b#>;;==?88r>{{488$~~s   B1I( 3BI8 +=K' )K %J (	I54I58	JJ	JK J2K K' 	KK' KK' '	K32K3$A(N 	NNc                    | j                   }| j                          || _         d| _        | j                   | _        | j                  | _         | j                  | j                   z
  }| j                          | j                  |z
  | _         | j                  | j                   z
  }| j                          | j                  |z
  | _         | j                  | j                   z
  }| j                          | j                  |z
  | _         | j                  | j                   z
  }| j                          | j                  |z
  | _         	 	 | j                  s
t               | j                  | j                   z
  }| j                          | j                  |z
  | _         t               # t        $ r Y nw xY w| j                  | j                   z
  }| j                          | j                  |z
  | _         n# t        $ r Y nw xY w| j                  | j                   z
  }| j                          | j                  |z
  | _         | j                  | _         yr`   )rY   _FinnishStemmer__r_mark_regionsr   rc   rS   _FinnishStemmer__r_particle_etc_FinnishStemmer__r_possessive_FinnishStemmer__r_case_ending _FinnishStemmer__r_other_endingsr   _FinnishStemmer__r_i_pluralrt   _FinnishStemmer__r_t_plural_FinnishStemmer__r_tidy)	r[   v_1rl   rz   r   r   r   r   v_9s	            r\   _stemzFinnishStemmer._stem  s   kk %"kkjjjj4;;&jj3&jj4;;&jj3&jj4;;&jj3&jj4;;& jj3&	,,&Ljj4;;.!!#"jj3.f**t{{*C**s*DKTjj4;;&jj3&))s,   AF   	F,)G- +F,,A G- -	G98G9N)$__name__
__module____qualname____doc__r   rf   rv   rw   rx   rr   r}   r   r   r   r   r   r   rW   r   ri   r   r   rU   rT   r   rj   r   r   r2   r0   r   r   r   r   r   r    r^   r\   r   r      s    	eRfb!gr1fb!fb!k2q!Q'eRj"a j"a C 	fb"eRfb"eRfafaC 	k2r"j"b!k2r"j"b!k1b!k1b!C 	fb"fb"C 	fb!fb!fb!eReReReRj"a k2q!
C 	eReReReReRor2&or2&C 	dBfaeQfaeQfafafafb"fb"fb"dBfb!fb"56gr289fb!gr267fb!gr267fb!k2q!k2q!iQk2r"j"b!k2r"j"b!k2r"k2r"k2q!=CD 	fb"fb!gq"fb!gq"fb!gq"fb!gq"k2r"k2q!lB#k2q!lB#C$ 	dBdBC 	fb!gq"C
 AE
CHDHDRN
CDD"
.7r
>@2 )VTl$r^   r   c                       e Zd Zy)rt   Nr   r   r   r   r^   r\   rt   rt         r^   rt   c                       e Zd Zy)r   Nr   r   r^   r\   r   r     r   r^   r   c                       e Zd Zy)r   Nr   r   r^   r\   r   r     r   r^   r   c                       e Zd Zy)r   Nr   r   r^   r\   r   r     r   r^   r   c                       e Zd Zy)r   Nr   r   r^   r\   r   r   !  r   r^   r   c                       e Zd Zy)r   Nr   r   r^   r\   r   r   $  r   r^   r   N)basestemmerr   amongr   r   BaseExceptionrt   r   r   r   r   r   r   r^   r\   <module>r      sX    % K[ K\  =   =   =   =   =   = r^   