
    g$                          G d  de       Zy)c                       e 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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)BaseStemmerc                 &    | j                  d       y N )set_currentselfs    P/var/www/openai/venv/lib/python3.12/site-packages/snowballstemmer/basestemmer.py__init__zBaseStemmer.__init__   s        c                     || _         d| _        t        | j                         | _        d| _        | j                  | _        | j                  | _        y)z.
        Set the self.current string.
            N)currentcursorlenlimitlimit_backwardbraket)r	   values     r
   r   zBaseStemmer.set_current   s@     &
;;::r   c                     | j                   S )z.
        Get the self.current string.
        )r   r   s    r
   get_currentzBaseStemmer.get_current   s     ||r   c                     |j                   | _         |j                  | _        |j                  | _        |j                  | _        |j                  | _        |j
                  | _        y N)r   r   r   r   r   r   )r	   others     r
   	copy_fromzBaseStemmer.copy_from   sG     % % %
 % 4 4 %		 %		r   c                     | j                   | j                  k\  ryt        | j                  | j                            }||kD  s||k  ry||z  }||dz	     d|dz  z  z  dk(  ry| xj                   dz  c_         y)NF         r   Tr   r   ordr   r	   sminmaxchs        r
   in_groupingzBaseStemmer.in_grouping   sw    ;;$**$dkk*+8rCx
c	bAgJ#"s(+,2qr   c                 "   | j                   | j                  k  rvt        | j                  | j                            }||kD  s||k  ry||z  }||dz	     d|dz  z  z  dk(  ry| xj                   dz  c_         | j                   | j                  k  rvy)NTr   r   r    r   Fr!   r#   s        r
   go_in_groupingzBaseStemmer.go_in_grouping*   s    kkDJJ&T\\$++./BCx28#IB"'
cb3h/0Q6KK1K kkDJJ& r   c                     | j                   | j                  k  ryt        | j                  | j                   dz
           }||kD  s||k  ry||z  }||dz	     d|dz  z  z  dk(  ry| xj                   dz  c_         y)NFr   r   r    r   Tr   r   r"   r   r#   s        r
   in_grouping_bzBaseStemmer.in_grouping_b5   s}    ;;$---dkkAo./8rCx
c	bAgJ#"s(+,2qr   c                 (   | j                   | j                  kD  ryt        | j                  | j                   dz
           }||kD  s||k  ry||z  }||dz	     d|dz  z  z  dk(  ry| xj                   dz  c_         | j                   | j                  kD  ryy)Nr   Tr   r    r   Fr,   r#   s        r
   go_in_grouping_bzBaseStemmer.go_in_grouping_bA   s    kkD///T\\$++/23BCx28#IB"'
cb3h/0Q6KK1K kkD/// r   c                    | j                   | j                  k\  ryt        | j                  | j                            }||kD  s||k  r| xj                   dz  c_         y||z  }||dz	     d|dz  z  z  dk(  r| xj                   dz  c_         yyNFr   Tr   r    r   r!   r#   s        r
   out_groupingzBaseStemmer.out_groupingL   s    ;;$**$dkk*+8rCxKK1K
c	bAgJ#"s(+,2KK1Kr   c                    | j                   | j                  k  rrt        | j                  | j                            }||k  r||k\  r||z  }||dz	     d|dz  z  z  ry| xj                   dz  c_         | j                   | j                  k  rry)Nr   r   r    TFr!   r#   s        r
   go_out_groupingzBaseStemmer.go_out_groupingY   s    kkDJJ&T\\$++./BSyR3Yc	bAgJ#"s("34KK1K kkDJJ& r   c                     | j                   | j                  k  ryt        | j                  | j                   dz
           }||kD  s||k  r| xj                   dz  c_         y||z  }||dz	     d|dz  z  z  dk(  r| xj                   dz  c_         yyr1   r,   r#   s        r
   out_grouping_bzBaseStemmer.out_grouping_bc   s    ;;$---dkkAo./8rCxKK1K
c	bAgJ#"s(+,2KK1Kr   c                     | j                   | j                  kD  rut        | j                  | j                   dz
           }||k  r||k\  r||z  }||dz	     d|dz  z  z  ry| xj                   dz  c_         | j                   | j                  kD  ruy)Nr   r   r    TFr,   r#   s        r
   go_out_grouping_bzBaseStemmer.go_out_grouping_bp   s    kkD///T\\$++/23BSyR3Yc	bAgJ#"s("34KK1K kkD/// r   c                     | j                   | j                  z
  t        |      k  ry| j                  | j                  | j                  t        |      z    |k7  ry| xj                  t        |      z  c_        yNFT)r   r   r   r   r	   r$   s     r
   eq_szBaseStemmer.eq_sz   sZ    ::#c!f,<<DKK#a&$89Q>s1vr   c                     | j                   | j                  z
  t        |      k  ry| j                  | j                   t        |      z
  | j                    |k7  ry| xj                   t        |      z  c_         yr:   )r   r   r   r   r;   s     r
   eq_s_bzBaseStemmer.eq_s_b   s\    ;;,,,s1v5<<c!f,T[[9Q>s1vr   c                 "   d}t        |      }| j                  }| j                  }d}d}d}	 |||z
  dz	  z   }	d}
t        ||      }||	   }t	        |t        |j
                              D ]N  }||z   |k(  rd}
 nBt        | j                  ||z            t        |j
                  |         z
  }
|
dk7  r n|dz  }P |
dk  r|	}|}n|	}|}||z
  dk  r|dkD  rn||k(  rn|rnd}	 ||   }|t        |j
                        k\  r}|t        |j
                        z   | _        |j                  |j                  S t        | |j                        } |       }|t        |j
                        z   | _        |r|j                  S |j                  }|dk  ry)Nr   FTr   )r   r   r   r%   ranger$   r"   r   methodresultgetattrsubstring_i)r	   vijclcommon_icommon_jfirst_key_inspectedkdiffcommonwi2rB   ress                   r
   
find_amongzBaseStemmer.find_among   s   FKKJJ#a!e\"AD8,F!AFCH-v:?D4<<F
34s133r7|C19! . ax!!1uzq56 '&*#; < !A3qss8##acc(l88#88O qxx0h#acc(l88OA1u r   c                 6   d}t        |      }| j                  }| j                  }d}d}d}	 |||z
  dz	  z   }	d}
t        ||      }||	   }t	        t        |j
                        dz
  |z
  dd      D ]Q  }||z
  |k(  rd}
 nEt        | j                  |dz
  |z
           t        |j
                  |         z
  }
|
dk7  r n|dz  }S |
dk  r|	}|}n|	}|}||z
  dk  r|dkD  rn||k(  rn|rnd}	 ||   }|t        |j
                        k\  r}|t        |j
                        z
  | _        |j                  |j                  S t        | |j                        } |       }|t        |j
                        z
  | _        |r|j                  S |j                  }|dk  ry)zO
        find_among_b is for backwards processing. Same comments apply
        r   FTr   r@   )r   r   r   r%   rA   r$   r"   r   rB   rC   rD   rE   )r	   rF   rG   rH   rI   lbrK   rL   rM   rN   rO   rP   rQ   rR   rB   rS   s                   r
   find_among_bzBaseStemmer.find_among_b   s    FKK  #a!e\"AD8,F!ACHqL612r:v:#D4<<A783qss2w<G19! ; ax!!1uzq56&&*#5 6 !A3qss8##acc(l88#88O qxx0h#acc(l88OA1u r   c                    t        |      ||z
  z
  }| j                  d| |z   | j                  |d z   | _        | xj                  |z  c_        | j                  |k\  r| xj                  |z  c_        |S | j                  |kD  r|| _        |S )z
        to replace chars between c_bra and c_ket in self.current by the
        chars in s.

        @type c_bra int
        @type c_ket int
        @type s: string
        r   N)r   r   r   r   r	   c_brac_ketr$   
adjustments        r
   	replace_szBaseStemmer.replace_s   s     Vuu}-
||Ae,q04<<3GG

j 
;;%KK:%K  [[5 DKr   c                     | j                   dk  sT| j                   | j                  kD  s;| j                  | j                  kD  s"| j                  t        | j                        kD  ryy)Nr   FT)r   r   r   r   r   r   s    r
   slice_checkzBaseStemmer.slice_check  sI    88a<488dhh.$((TZZ2G4::X[\`\h\hXiKir   c                 |    d}| j                         r)| j                  | j                  | j                  |       d}|S )z 
        @type s string
        FT)r_   r]   r   r   )r	   r$   rC   s      r
   
slice_fromzBaseStemmer.slice_from  s7     NN488TXXq1Fr   c                 $    | j                  d      S r   )ra   r   s    r
   	slice_delzBaseStemmer.slice_del  s    r""r   c                     | j                  |||      }|| j                  k  r| xj                  |z  c_        || j                  k  r| xj                  |z  c_        yy)zQ
        @type c_bra int
        @type c_ket int
        @type s: string
        N)r]   r   r   rY   s        r
   insertzBaseStemmer.insert"  sO     ^^E5!4
DHHHH
"HDHHHH
"H r   c                 p    d}| j                         r#| j                  | j                  | j                   }|S )z/
        Return the slice as a string.
        r   )r_   r   r   r   )r	   rC   s     r
   slice_tozBaseStemmer.slice_to.  s2     \\$((4884Fr   c                 4    | j                   d| j                   S )z<
        Return the current string up to the limit.
        r   )r   r   r   s    r
   	assign_tozBaseStemmer.assign_to7  s     ||Adjj))r   c                 d    | j                  |       | j                          | j                         S r   )r   _stemr   )r	   words     r
   stemWordzBaseStemmer.stemWord=  s(    

!!r   c                 J    |D cg c]  }| j                  |       c}S c c}w r   )rm   )r	   wordsrl   s      r
   	stemWordszBaseStemmer.stemWordsB  s#    056d#666s    N)__name__
__module____qualname__r   r   r   r   r(   r*   r-   r/   r2   r4   r6   r8   r<   r>   rT   rW   r]   r_   ra   rc   re   rg   ri   rm   rp    r   r
   r   r      s    	*
	
	8t8t$
#
#*"
7r   r   N)objectr   rt   r   r
   <module>rv      s   B7& B7r   