
    g;                     :   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 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      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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d0d1d       ed2dd      gZ ed3dd       ed4dd      gZg  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d@dd       edAdBd       edCdBd       edDdd       eddEd       edFdEd       edGdd       edHdId       edJdId       eddd       eddd       eddd       edKdd       edLdMd       edNdd       edOdPd       edQdPd       edRdd       edSdTd       edUdTd       edVdd       edWdXd       edYdd       edZdd       ed[dd       ed\d]d       ed^dd       ed_dd       ed`dad       edbdd       edcddd       ededdd       edfdd       edgdd       edhdd       ed'did      Z	g  edjdd       edkdd       edldd       edmdd       eddd       edndd       edodd       edpdd       edqdd       edrdd       edsdd       edtdBd       edDdd       eddud       edvdEd       eddud       eddud       edwdd       eddd       edxdyd       eddd       edzdd       ed{d|d       ed}dd       ed~dd       eddd       eddd       eddd       eddd       eddd       edhdd       eddXd       eddXd       eddd       eddd       eddd      Z
 eddd       eddd      gZ eddd       edKdd       eddd       eddd      gZg dZdZdZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)RussianStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    u   вr   u   ив       u   ывu   вшиu   ивши   u   ывшиu
   вшисьu   ившись   u   ывшисьu   ееu   иеu   оеu   ыеu   имиu   ымиu   ейu   ийu   ойu   ыйu   емu   имu   омu   ымu   егоu   огоu   емуu   омуu   ихu   ыхu   еюu   оюu   уюu   ююu   аяu   яяu   ннu   вшu   ившu   ывшu   щu   ющ   u   ующu   сьu   сяu   лаu   илаu   ылаu   наu   енаu   етеu   итеu   йтеu   ейте   u   уйтеu   лиu   или
   u   ылиu   й   u   уйu   лu   ил   u   ыл   нu   ен   u   лоu   ило   u   ылоu   ноu   ено   u   нноu   етu   ует   u   итu   ытu   ютu   уют"   u   ятu   ныu   ены%   u   тьu   ить'   u   ытьu   ешьu   ишьu   ю,      аu   евu   ов   еu   ье   иu   еиu   ииu   амиu   ямиu   иями   u   иейu   амu   ием   u   ямu   иям   u   оu   уu   ахu   яхu   иях   u   ыu   ьu   июu   ью   яu   ия!   u   ьяu   остu   остьu   ейшеu   ейш)r"   A         c                    | j                   | _        | j                   | _        | j                  }	 | j	                  t
        j                  dd      s
t               | xj                  dz  c_        | j                  | _        | j                  t
        j                  dd      s
t               | xj                  dz  c_        | j	                  t
        j                  dd      s
t               | xj                  dz  c_        | j                  t
        j                  dd      s
t               | xj                  dz  c_        | j                  | _        || _        y# t        $ r
 Y || _        yw xY w)Ni0  iO  r   T)	limitI_pVI_p2cursorgo_out_groupingr   g_vlab0go_in_grouping)selfv_1s     T/var/www/openai/venv/lib/python3.12/site-packages/snowballstemmer/russian_stemmer.py__r_mark_regionszRussianStemmer.__r_mark_regions   s   JJ	JJ	kk	''(:(:D$GfKK1KDI&&~'9'94FfKK1K''(:(:D$GfKK1K&&~'9'94FfKK1KDI T 	s   D"E 	E-,E-c                 8    | j                   | j                  k  syy)NFT)r)   r*   r/   s    r1   __r_R2zRussianStemmer.__r_R2   s    yyDKK'    c                    | j                   | _        | j                  t        j                        }|dk(  ry| j                   | _        |dk(  r@	 | j                  | j                   z
  }	 | j                  d      s
t               t               | j                         syy# t        $ r Y nw xY w| j                  |z
  | _         | j                  d      syn# t        $ r Y nw xY w| j                         syyNr   Fr   r   r!   T)r*   ketfind_among_br   a_0brar'   eq_s_blab1r-   	slice_delr/   	among_varr0   s      r1   __r_perfective_gerundz$RussianStemmer.__r_perfective_gerund       ;;%%n&8&89	>;;>
jj4;;.";;y1"f&L >># !T!"jj3.{{9-  .>># 0   C (%B 	B+(C *B++(C 	C! C!c                     | j                   | _        | j                  t        j                        dk(  ry| j                   | _        | j                         syyNr   FT)r*   r9   r:   r   a_1r<   r?   r4   s    r1   __r_adjectivezRussianStemmer.__r_adjective   D    ;;^//0A5;;~~r6   c                    | j                         sy| j                  | j                  z
  }	 | j                  | _        | j	                  t
        j                        }|dk(  r| j                  |z
  | _        t               | j                  | _        |dk(  r@	 | j                  | j                  z
  }	 | j                  d      s
t               t               | j                         sy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                         rty# t        $ r Y yw xY w)NFr   r   r   r!   T)_RussianStemmer__r_adjectiver'   r*   r9   r:   r   a_2r-   r<   r=   lab2r>   r?   )r/   r0   rA   v_2s       r1   __r_adjectivalzRussianStemmer.__r_adjectival   s:   !!#jj4;;&	{{DH)).*<*<=IA~"jj3.f{{DHA~"**t{{2C&#{{95"&&L"f ~~'    %%"&**s"2DK;;y1&*jj3&6"f 2 !T!~~'  T 	s[   A)E D: 0%C' E '	C30D: 2C33AD: 9E :	EE EE 	E'&E'c                     | j                   | _        | j                  t        j                        dk(  ry| j                   | _        | j                         syyrF   )r*   r9   r:   r   a_3r<   r?   r4   s    r1   __r_reflexivezRussianStemmer.__r_reflexive  rI   r6   c                    | j                   | _        | j                  t        j                        }|dk(  ry| j                   | _        |dk(  r@	 | j                  | j                   z
  }	 | j                  d      s
t               t               | j                         syy# t        $ r Y nw xY w| j                  |z
  | _         | j                  d      syn# t        $ r Y nw xY w| j                         syyr8   )r*   r9   r:   r   a_4r<   r'   r=   r>   r-   r?   r@   s      r1   __r_verbzRussianStemmer.__r_verb  rC   rD   c                     | j                   | _        | j                  t        j                        dk(  ry| j                   | _        | j                         syyrF   )r*   r9   r:   r   a_5r<   r?   r4   s    r1   __r_nounzRussianStemmer.__r_noun7  rI   r6   c                     | j                   | _        | j                  t        j                        dk(  ry| j                   | _        | j                         sy| j                         syyrF   )r*   r9   r:   r   a_6r<   _RussianStemmer__r_R2r?   r4   s    r1   __r_derivationalzRussianStemmer.__r_derivationalA  sP    ;;^//0A5;;{{}~~r6   c                    | j                   | _        | j                  t        j                        }|dk(  ry| j                   | _        |dk(  ri| j                         sy| j                   | _        | j                  d      sy| j                   | _        | j                  d      sy| j                         syy|dk(  r$| j                  d      sy| j                         syy| j                         syy)Nr   Fr   r   r	   T)r*   r9   r:   r   a_7r<   r?   r=   )r/   rA   s     r1   __r_tidy_upzRussianStemmer.__r_tidy_upM  s    ;;%%n&8&89	>;;>>>#{{DH;;y){{DH;;y)>>#  !^;;y)>>#  >>#r6   c                    | j                   }	 	 | j                   }	 	 	 | j                   }	 | j                   | _        | j                  d      s
t               | j                   | _        || _         t               # t        $ r Y nw xY w|| _         | j                   | j                  k\  r
t               | xj                   dz  c_         # t
        $ r Y nw xY w| j                  d      sy# t        $ r Y nw xY w|| _         n# t        $ r Y nw xY w|| _         | j                          | j                   | _        | j                  | _         | j                   | j                  k  ry| j                  }| j                  | _        | j                  | j                   z
  }	 	 | j                  | j                   z
  }	 | j                         s
t               t               # t        $ r Y nw xY w| j                  |z
  | _         | j                  | j                   z
  }	 | j!                         s| j                  |z
  | _         t#               n# t"        $ r Y nw xY w	 | j                  | j                   z
  }	 | j%                         s
t'               t)               # t&        $ r Y nw xY w| j                  |z
  | _         	 | j+                         s
t-               t)               # t,        $ r Y nw xY w| j                  |z
  | _         | j/                         s
t1               n# t(        $ r Y nw xY wn# t        $ r Y nw xY wn# t0        $ r Y nw xY w| j                  |z
  | _         | j                  | j                   z
  }		 | j                   | _        | j3                  d      s| j                  |	z
  | _         t5               | j                   | _        | j7                         syn# t4        $ r Y nw xY w| j                  | j                   z
  }
| j9                          | j                  |
z
  | _         | j                  | j                   z
  }| j;                          | j                  |z
  | _         || _        | j                  | _         y)NTu   ёr   r   Fr   )r*   r<   eq_slab3r9   rM   r'   r>   
slice_fromr-   _RussianStemmer__r_mark_regionslimit_backwardr(   $_RussianStemmer__r_perfective_gerundlab6lab5_RussianStemmer__r_reflexivelab7_RussianStemmer__r_adjectivallab9lab8_RussianStemmer__r_verblab10_RussianStemmer__r_nounlab4r=   lab11r?   _RussianStemmer__r_derivational_RussianStemmer__r_tidy_up)r/   r0   rN   v_3v_6v_7v_8v_9v_10v_11v_12v_13s               r1   _stemzRussianStemmer._steml  s   kk	kk"&""&++C.+/;;'+yy';*.&L+/;;.1&*f#'--*-DK#{{djj8&*f KK1,K #  %%??95$!T!!T"kkjj;;"!!"iijj4;;&!	jj4;;."557"f&L!T!"jj3.jj4;;."--/&*jj3&6"f 0 !T!"::3D&#224"&&L"f%%"&**t"3DK'#}}"''M"f &$&"&**t"3DK==?"f +!T!Tjj3&zzDKK'		{{DH;;y)"jj4/g{{DH>># $ dzzDKK'jj4'zzDKK'jj4'!))sP  D C AA9 9	BC BAC 	CC* CC* )D *	C63D 5C66
D 	DDL) 5$G 	G%"L) $G%%0L) .I L) 	IL) IL) L /$J 	JL JL 7$K 	K'$L &K''1L L) 	L%"L) $L%%L) (L9 )	L52L9 4L55L9 9	MM6A!O 	O%$O%N)__name__
__module____qualname____doc__r   r;   rG   rL   rQ   rT   rW   rZ   r^   r,   r)   r(   rd   r[   rf   rK   rk   ri   rn   rp   rs   rt   r~    r6   r1   r   r      s`	    	iQoq!$oq!$#R+)1a0)1a0/Q75q!<5q!<
C 	or1%or1%or1%or1%#R+#R+or1%or1%or1%or1%or1%or1%or1%or1%#R+#R+#R+#R+or1%or1%or1%or1%or1%or1%or1%or1%5C< 	or1%or1%or1%#Q*#Q*iQoq!$#Q*	C 	or1%or1%C
/or1%/#Q*/ 	#Q*/ 	or1%	/
 	#Q*/ 	#R+/ 	#R+/ 	#R+/ 	)1a0/ 	)1a0/ 	or1%/ 	#R+/ 	#R+/ 	iQ/ 	or1%/  	or1%!/" 	iQ#/$ 	or1%%/& 	or1%'/( 	or1%)/* 	or1%+/, 	or1%-/. 	iQ//0 	or1%1/2 	or1%3/4 	#R+5/6 	#R+7/8 	or1%9/: 	#R+;/< 	#R+=/> 	or1%?/@ 	#R+A/B 	or1%C/D 	or1%E/F 	or1%G/H 	#R+I/J 	or1%K/L 	or1%M/N 	#R+O/P 	or1%Q/R 	#R+S/T 	#R+U/V 	#R+W/X 	#R+Y/Z 	iQ[/\ 	or1%]/Cb%iQ%or1%% 	or1%% 	iQ	%
 	oq!$% 	oq!$% 	iQ% 	oq!$% 	oq!$% 	#Q*% 	#Q*% 	)2q1% 	iQ% 	or1%% 	#R+%  	or1%!%" 	or1%#%$ 	or1%%%& 	or1%'%( 	#R+)%* 	or1%+%, 	or1%-%. 	#R+/%0 	iQ1%2 	iQ3%4 	or1%5%6 	or1%7%8 	#R+9%: 	iQ;%< 	iQ=%> 	iQ?%@ 	or1%A%B 	or1%C%D 	iQE%F 	or1%G%H 	or1%I%CP 	#R+)2q1C 	)2q1iQ#R+iQ	C CDD.
6 D6
>\r6   r   c                       e Zd Zy)r-   Nr   r   r   r   r6   r1   r-   r-         r6   r-   c                       e Zd Zy)r>   Nr   r   r6   r1   r>   r>     r   r6   r>   c                       e Zd Zy)rM   Nr   r   r6   r1   rM   rM     r   r6   rM   c                       e Zd Zy)rb   Nr   r   r6   r1   rb   rb     r   r6   rb   c                       e Zd Zy)rq   Nr   r   r6   r1   rq   rq     r   r6   rq   c                       e Zd Zy)rh   Nr   r   r6   r1   rh   rh     r   r6   rh   c                       e Zd Zy)rg   Nr   r   r6   r1   rg   rg     r   r6   rg   c                       e Zd Zy)rj   Nr   r   r6   r1   rj   rj     r   r6   rj   c                       e Zd Zy)rm   Nr   r   r6   r1   rm   rm     r   r6   rm   c                       e Zd Zy)rl   Nr   r   r6   r1   rl   rl     r   r6   rl   c                       e Zd Zy)ro   Nr   r   r6   r1   ro   ro     r   r6   ro   c                       e Zd Zy)rr   Nr   r   r6   r1   rr   rr     r   r6   rr   N)basestemmerr   amongr   r   BaseExceptionr-   r>   rM   rb   rq   rh   rg   rj   rm   rl   ro   rr   r   r6   r1   <module>r      s    % A[ AH  =   =   =   =   =   =   =   =   =   =  !M   !M  r6   