
    1 f$                     "     G d  de           ZdS )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dS )BaseStemmerc                 0    |                      d           d S N )set_currentselfs    Q/var/www/equiseq/venv/lib/python3.11/site-packages/snowballstemmer/basestemmer.py__init__zBaseStemmer.__init__   s        c                     || _         d| _        t          | j                   | _        d| _        | j        | _        | j        | _        dS )z.
        Set the self.current string.
            N)currentcursorlenlimitlimit_backwardbraket)r	   values     r
   r   zBaseStemmer.set_current   sA     &&
;: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        | _        d S N)r   r   r   r   r   r   )r	   others     r
   	copy_fromzBaseStemmer.copy_from   s>     % % %
 % 4 %	 %	r   c                     | j         | j        k    rdS t          | j        | j                            }||k    s||k     rdS ||z  }||dz	           d|dz  z  z  dk    rdS | xj         dz  c_         dS )NF         r   Tr   r   ordr   r	   sminmaxchs        r
   in_groupingzBaseStemmer.in_grouping   s    ;$*$$5dk*++88rCxx5
c	bAgJ#"s(+,225qtr   c                     | j         | j        k     rlt          | j        | j                            }||k    s||k     rdS ||z  }||dz	           d|dz  z  z  dk    rdS | xj         dz  c_         | j         | j        k     ldS )NTr   r   r    r   Fr!   r#   s        r
   go_in_groupingzBaseStemmer.go_in_grouping*   s    kDJ&&T\$+.//BCxx288t#IB"'
cb3h/0Q66tKK1KK kDJ&& ur   c                     | j         | j        k    rdS t          | j        | j         dz
                     }||k    s||k     rdS ||z  }||dz	           d|dz  z  z  dk    rdS | xj         dz  c_         dS )NFr   r   r    r   Tr   r   r"   r   r#   s        r
   in_grouping_bzBaseStemmer.in_grouping_b5   s    ;$---5dkAo.//88rCxx5
c	bAgJ#"s(+,225qtr   c                    | j         | j        k    rot          | j        | j         dz
                     }||k    s||k     rdS ||z  }||dz	           d|dz  z  z  dk    rdS | xj         dz  c_         | j         | j        k    odS )Nr   Tr   r    r   Fr,   r#   s        r
   go_in_grouping_bzBaseStemmer.go_in_grouping_bA   s    kD///T\$+/233BCxx288t#IB"'
cb3h/0Q66tKK1KK kD/// ur   c                    | j         | j        k    rdS t          | j        | j                            }||k    s||k     r| xj         dz  c_         dS ||z  }||dz	           d|dz  z  z  dk    r| xj         dz  c_         dS dS NFr   Tr   r    r   r!   r#   s        r
   out_groupingzBaseStemmer.out_groupingL   s    ;$*$$5dk*++88rCxxKK1KK4
c	bAgJ#"s(+,22KK1KK4ur   c                     | j         | j        k     rft          | j        | j                            }||k    r!||k    r||z  }||dz	           d|dz  z  z  rdS | xj         dz  c_         | j         | j        k     fdS )Nr   r   r    TFr!   r#   s        r
   go_out_groupingzBaseStemmer.go_out_groupingY   s    kDJ&&T\$+.//BSyyR3YYc	bAgJ#"s("34  4KK1KK kDJ&& ur   c                    | j         | j        k    rdS t          | j        | j         dz
                     }||k    s||k     r| xj         dz  c_         dS ||z  }||dz	           d|dz  z  z  dk    r| xj         dz  c_         dS dS r1   r,   r#   s        r
   out_grouping_bzBaseStemmer.out_grouping_bc   s    ;$---5dkAo.//88rCxxKK1KK4
c	bAgJ#"s(+,22KK1KK4ur   c                     | j         | j        k    rit          | j        | j         dz
                     }||k    r!||k    r||z  }||dz	           d|dz  z  z  rdS | xj         dz  c_         | j         | j        k    idS )Nr   r   r    TFr,   r#   s        r
   go_out_grouping_bzBaseStemmer.go_out_grouping_bp   s    kD///T\$+/233BSyyR3YYc	bAgJ#"s("34  4KK1KK kD/// ur   c                     | j         | j        z
  t          |          k     rdS | j        | j        | j        t          |          z            |k    rdS | xj        t          |          z  c_        dS NFT)r   r   r   r   r	   r$   s     r
   eq_szBaseStemmer.eq_sz   sg    :#c!ff,,5<DK#a&&$889Q>>5s1vvtr   c                     | j         | j        z
  t          |          k     rdS | j        | j         t          |          z
  | j                  |k    rdS | xj         t          |          z  c_         dS r:   )r   r   r   r   r;   s     r
   eq_s_bzBaseStemmer.eq_s_b   sh    ;,,s1vv555<c!ff,T[89Q>>5s1vvtr   c                    d}t          |          }| j        }| j        }d}d}d}	 |||z
  dz	  z   }	d}
t          ||          }||	         }t	          |t          |j                            D ]T}||z   |k    rd}
 nFt          | j        ||z                      t          |j        |                   z
  }
|
dk    r n|dz  }U|
dk     r|	}|}n|	}|}||z
  dk    r|dk    rn||k    rn|rnd}	 ||         }|t          |j                  k    rn|t          |j                  z   | _        |j        |j	        S t          | |j                  } |            }|t          |j                  z   | _        |r|j	        S |j        }|dk     rdS )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   FFKJ#	+a!e\"AD8,,F!AFCHH--  v:??DE4<F
344s13r7||C199E!axx!!1uzzq5566 ' &*#;	+<	!A3qs88###ac((l8#8O qx00fhh#ac((l $8OA1uuq	r   c                 0   d}t          |          }| j        }| j        }d}d}d}	 |||z
  dz	  z   }	d}
t          ||          }||	         }t	          t          |j                  dz
  |z
  dd          D ]W}||z
  |k    rd}
 nIt          | j        |dz
  |z
                     t          |j        |                   z
  }
|
dk    r n|dz  }X|
dk     r|	}|}n|	}|}||z
  dk    r|dk    rn||k    rn|rnd}	 ||         }|t          |j                  k    rn|t          |j                  z
  | _        |j        |j	        S t          | |j                  } |            }|t          |j                  z
  | _        |r|j	        S |j        }|dk     rdS )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    FFK #	+a!e\"AD8,,F!ACHHqL612r::  v:##DE4<A7883qs2w<<G199E!axx!!1uzzq5566& &*#5	+6	!A3qs88###ac((l8#8O qx00fhh#ac((l $8OA1uuq	r   c                     t          |          ||z
  z
  }| j        d|         |z   | j        |d         z   | _        | xj        |z  c_        | j        |k    r| xj        |z  c_        n| j        |k    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     VVuu}-
|AeG,q04<3GG

j 

;%KK:%KKK[5  DKr   c                     | j         dk     s=| j         | j        k    s-| j        | j        k    s| j        t          | j                  k    rdS dS )Nr   FT)r   r   r   r   r   r   s    r
   slice_checkzBaseStemmer.slice_check  sL    8a<<48dh..$(TZ2G2G4:X[\`\hXiXiKiKi5tr   c                 x    d}|                                  r#|                     | j        | j        |           d}|S )z 
        @type s string
        FT)r_   r]   r   r   )r	   r$   rC   s      r
   
slice_fromzBaseStemmer.slice_from  sA      	NN48TXq111Fr   c                 ,    |                      d          S r   )ra   r   s    r
   	slice_delzBaseStemmer.slice_del  s    r"""r   c                     |                      |||          }|| j        k    r| xj        |z  c_        || j        k    r| xj        |z  c_        dS dS )zQ
        @type c_bra int
        @type c_ket int
        @type s: string
        N)r]   r   r   rY   s        r
   insertzBaseStemmer.insert"  s_     ^^E5!44
DHHH
"HHDHHH
"HHHH r   c                 d    d}|                                  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.  s7      	5\$(48"34Fr   c                 *    | 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     |AdjL))r   c                 |    |                      |           |                                  |                                 S r   )r   _stemr   )r	   words     r
   stemWordzBaseStemmer.stemWord=  s5    

!!!r   c                        fd|D             S )Nc                 :    g | ]}                     |          S  )rm   ).0rl   r	   s     r
   
<listcomp>z)BaseStemmer.stemWords.<locals>.<listcomp>C  s%    666d##666r   rp   )r	   wordss   ` r
   	stemWordszBaseStemmer.stemWordsB  s    66666666r   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   rt   rp   r   r
   r   r      s         	 	 	  * * *
 
 
	 	 	
 
 
	 	 	            8 8 8t8 8 8t  $  
  # # #
# 
# 
#  * * *" " "
7 7 7 7 7r   r   N)objectr   rp   r   r
   <module>ry      sC   B7 B7 B7 B7 B7& B7 B7 B7 B7 B7r   