
    Ri                     ^    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y	)
   )BaseStemmer)Amongc                      e Zd ZdZh dZh dZh dZdZdZd Z	d Z
d Zd	 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       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      g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d0d,d#       ed1dd#       ed2d3d#       ed4d3d#       ed5d3d#       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dAd@d#       edBd@d#       edCd>d#       edDdEd#       edFdEd#       edGd>d#       edHdId#       edJdId#       edKd>d#       edLdd#       edMddN       edOdPd#       edQdPd#       edRdd#      Z edSdd       edTdd       edUdd       edVdd       edWdd       edXdd       edYdd      gZ edZdd#       ed[dd#       ed\dd#       ed]ddN       ed^dd'      gZy_)`SwedishStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from swedish.sbl by Snowball 3.0.1 - https://snowballstem.org/
    >	   aeiouy   ä   å   ö>   bcdfghjklmnr
   prtvr   >	   r	   r   r   r   r   r   r   r   r       c                 8   | j                   | _        | j                  }| j                  dz   }|| j                   kD  ry|| _        | j                  | _        || _        | j	                  t
        j                        sy| xj                  dz  c_        | j                  t
        j                        sy| xj                  dz  c_        | j                  | _        	 | j                  | j                  k\  r
t               | j                  | _        y# t        $ r Y yw xY w)N   Fr   T)	limitI_p1cursorI_xgo_out_groupingr   g_vgo_in_groupinglab0)selfv_1r   s      W/home/agent/.friday_env/lib/python3.12/site-packages/snowballstemmer/swedish_stemmer.py__r_mark_regionszSwedishStemmer.__r_mark_regions   s    JJ	kkKK!Otzz>;;##N$6$67q"">#5#56qKK		yyDHH$fDI T 	s   4D 	DDc                    | j                   | j                  z
  }| j                  t        j                        sy| j                  t        j                        sy	 | j                  | j                  kD  r
t               y# t        $ r Y nw xY w| j                   |z
  | _        | j                   | j                  z
  }	 | j                  t        j                        dk(  r
t               y# t        $ r Y nw xY w| j                   |z
  | _        y)NFr   T)r"   r$   out_grouping_br   r'   in_grouping_blimit_backwardr)   find_among_ba_0lab1)r*   r+   v_3s      r,   __r_et_conditionzSwedishStemmer.__r_et_condition.   s    jj4;;&"">#5#56!!."4"45	{{T000fTjj3&jj4;;&	  !3!349fTjj3&s$   #A? ?	B
B<,C) )	C54C5c                 8   | j                   | j                  k  ry| j                  }| j                  | _        | j                   | _        | j	                  t
        j                        }|dk(  r|| _        y| j                   | _        || _        |dk(  r| j                         syy|dk(  rk	 | j                  | j                   z
  }	 | j                  d      s
t               | j                         s
t               | j                   | _        t               | j                         sy| j                         syy# t        $ r Y nw xY w| j                  |z
  | _         | j                  t
        j                        syn# t        $ r Y nw xY w| j                         syy)NFr   r      etT)r$   r#   r1   ketr2   r   a_1bra	slice_delr"   eq_s_br4   _SwedishStemmer__r_et_conditionr)   r0   
g_s_ending)r*   v_2	among_varr5   s       r,   __r_main_suffixzSwedishStemmer.__r_main_suffixC   sd   ;;"!!"ii;;%%n&8&89	>"%D;;!>>>#4 1 !^jj4;;.";;u-"f002"f#{{DH&L ((*>># !T!"jj3.)).*C*CD  E>># s1   *E; AD7 7	E E; E6E; ;	FFc                     | j                   | j                  k  ry| j                  }| j                  | _        | j                  | j                   z
  }| j	                  t
        j                        dk(  r|| _        y| j                  |z
  | _         | j                   | _        | j                   | j                  k  r|| _        y| xj                   dz  c_         | j                   | _        | j                         sy|| _        y)NFr   r   T)
r$   r#   r1   r"   r2   r   a_2r:   r<   r=   )r*   rA   r5   s      r,   __r_consonant_pairz!SwedishStemmer.__r_consonant_pairm   s    ;;"!!"iijj4;;&^//0A5"%Djj3&;;;;$---"%Dq;;~~!    c                    | j                   | j                  k  ry| j                  }| j                  | _        | j                   | _        | j	                  t
        j                        }|dk(  r|| _        y| j                   | _        || _        |dk(  r| j                         syy|dk(  r3| j                  t
        j                        sy| j                  d      syy| j                  d      syy)NFr   r   r8   u   ösfullT)r$   r#   r1   r:   r2   r   a_3r<   r=   r0   g_ost_ending
slice_from)r*   rA   rB   s      r,   __r_other_suffixzSwedishStemmer.__r_other_suffix   s    ;;"!!"ii;;%%n&8&89	>"%D;;!>>>#  !^%%n&A&AB??6*  ??7+rG   c                    | j                   }| j                          || _         | j                   | _        | j                  | _         | j                  | j                   z
  }| j	                          | j                  |z
  | _         | j                  | j                   z
  }| j                          | j                  |z
  | _         | j                  | j                   z
  }| j                          | j                  |z
  | _         | j                  | _         y)NT)r$   _SwedishStemmer__r_mark_regionsr1   r"   _SwedishStemmer__r_main_suffix!_SwedishStemmer__r_consonant_pair_SwedishStemmer__r_other_suffix)r*   r+   rA   r5   v_4s        r,   _stemzSwedishStemmer._stem   s    kk"kkjjjj4;;&jj3&jj4;;&!jj3&jj4;;&jj3&))rG   fabr   pakrakstakkomietcitditalitilitmitnitpitritsittituitivitkvitxitr   r   arnaernaheternar8   ornaadr   ade   andearneareasteenanden   arenhetenernarerheter   orsas   arnas   ernasornasesades   andesensarens   hetensernsatr9   r!   andet"   hetastddgdnndtgtktttigligelsfulltu   östN)__name__
__module____qualname____doc__r'   r@   rK   r%   r#   rO   r?   rP   rQ   rR   rT   r   r3   r;   rE   rJ    rG   r,   r   r      s   
 DCwJIL
CD.*(T,4& 	fb"dBfb"fb"gr2fb"fb"fb"fb"gr2gr2fb"fb"fb"fb"fb"fb"fb"gr2gr2fb"+C0'dB'gq!' 	gq!' 	j!Q	'
 	gq!' 	eR' 	dB' 	fa' 	gq!' 	gq!' 	fa' 	gq!' 	eR' 	hA' 	gr1'  	hA!'" 	fb!#'$ 	eR%'& 	eR''( 	hA)'* 	eR+', 	dB-'. 	eR/'0 	hA1'2 	hA3'4 	hA5'6 	eR7'8 	gr19': 	hA;'< 	fb!='> 	hA?'@ 	iQA'B 	gr1C'D 	eRE'F 	eRG'H 	hAI'J 	fb!K'L 	fb!M'CT 	eReReReReReReRC 	eRfafb!hAgr1CrG   r   c                       e Zd Zy)r)   Nr   r   r   r   rG   r,   r)   r)         rG   r)   c                       e Zd Zy)r4   Nr   r   rG   r,   r4   r4     r   rG   r4   N)basestemmerr   amongr   r   BaseExceptionr)   r4   r   rG   r,   <module>r      s0    % x[ xv  =   = rG   