
    =wg                     2    d dl mZ ddlmZ  G d de      Zy)   )_StandardStemmer    )uc                   :    e Zd ZdZ ed      ZdZdZdZdZ	dZ
d Zy	)
GermanStemmeraD  
    The German Snowball stemmer.

    :cvar __vowels: The German vowels.
    :type __vowels: unicode
    :cvar __s_ending: Letters that may directly appear before a word final 's'.
    :type __s_ending: unicode
    :cvar __st_ending: Letter that may directly appear before a word final 'st'.
    :type __st_ending: unicode
    :cvar __step1_suffixes: Suffixes to be deleted in step 1 of the algorithm.
    :type __step1_suffixes: tuple
    :cvar __step2_suffixes: Suffixes to be deleted in step 2 of the algorithm.
    :type __step2_suffixes: tuple
    :cvar __step3_suffixes: Suffixes to be deleted in step 3 of the algorithm.
    :type __step3_suffixes: tuple
    :note: A detailed description of the German
           stemming algorithm can be found under
           http://snowball.tartarus.org/algorithms/german/stemmer.html

    u   aeiouyäöübdfghklmnrt
bdfghklmnt)ernemereneses)estr   r   st)ischlichheitkeitendungigikc                 	   |j                         }|j                  t        d      d      }t        dt	        |      dz
        D ]x  }||dz
     | j
                  v s||dz      | j
                  v s-||   dk(  rdj                  |d| d||dz   d f      }S||   dk(  s\dj                  |d| d	||dz   d f      }z | j                  || j
                        \  }}t        dt	        |            D ]p  }||   | j
                  vs||dz
     | j
                  v s*t	        |d|dz          d
k  rt	        |d|dz          dkD  r|d
d }nt	        |d|dz          dk(  r|c S  n | j                  D ]  }|j                  |      s|dv rV|t	        |       dz
  t	        |        dk(  r7|dt	        |       dz
   }|dt	        |       dz
   }|dt	        |       dz
   }nS|dk(  r!|d   | j                  v r=|dd }|dd }|dd }n-|dt	        |        }|dt	        |        }|dt	        |        } n | j                  D ]y  }|j                  |      s|dk(  r2|d   | j                  v rNt	        |dd       d
k\  r=|dd }|dd }|dd }n-|dt	        |        }|dt	        |        }|dt	        |        } n | j                  D ]  }|j                  |      s|dv rdd|t	        |       dz
  t	        |        v r5d|t	        |       d
z
  t	        |       dz
   vr|dt	        |       dz
   }n|dt	        |        }n|dv r.d|t	        |       dz
  t	        |        vr|dt	        |        }n|dv r_d|t	        |       dz
  t	        |        v sd|t	        |       dz
  t	        |        v r|dt	        |       dz
   }n|dt	        |        }nv|dk(  rqd|t	        |       dz
  t	        |        v r|dt	        |       dz
   }n@d|t	        |       dz
  t	        |        v r|dt	        |       dz
   }n|dt	        |        } n |j                  t        d      d      j                  t        d       d!      j                  t        d"      d      j                  dd      j                  d	d      }|S )#z
        Stem a German word and return the stemmed form.

        :param word: The word that is stemmed.
        :type word: str or unicode
        :return: The stemmed form.
        :rtype: unicode

           ßssr   r    NUyY   r   )r   r   r      nissr   r   )r   r   r      r   )r   r   r   )r   r   r   r   r   r      äa   öo   ü)lowerreplacer   rangelen_GermanStemmer__vowelsjoin_r1r2_standard_GermanStemmer__step1_suffixesendswith_GermanStemmer__s_ending_GermanStemmer__step2_suffixes_GermanStemmer__st_ending_GermanStemmer__step3_suffixes)selfwordir1r2suffixs         R/var/www/horilla/myenv/lib/python3.12/site-packages/whoosh/lang/snowball/german.pystemzGermanStemmer.stem&   sX    zz|||AfIt, q#d)a-( 	BAAE{dmm+QUt}}0L7c>77D!Hc4A<#@AD!W^77D!Hc4A<#@AD	B $$T4==9B q#d)$ 	AAwdmm+QUt}}0LtFQU|$q(Sfq1u->-BabBfq1u&!+K	 ++ 	F{{6"//#f+)3v;,76A 1#f+!12D-c&k\A-.B-c&k\A-.Bs]Bx4??2#CRyWW#f+.DMc&k\*BMc&k\*B#	( ++ 	F{{6"T>Bx4#3#33D"I!8K#CRyWW#f+.DMc&k\*BMc&k\*B	 ++ 	F{{6"^+CK<!#3S[L AA2s6{lQ&6F|a7G#HH#$5c&k\A%56#Mc&k\2 44S[L1$4c&k\!BB#f+.D//CK<!#3S[L AACK<!#3S[L AA#$5c&k\A%56#Mc&k\2v%S[L1$4c&k\!BB#$5c&k\A%56S[L1$4c&k\!BB#$5c&k\A%56#Mc&k\29	@ QvY,44QvYDWQvY,WWS#->WS#& 	     N)__name__
__module____qualname____doc__r   r2   r7   r9   r5   r8   r:   rB    rC   rA   r   r      s8    * %&HJK@04jrC   r   N)basesr   whoosh.compatr   r   rH   rC   rA   <module>rK      s    # J$ JrC   