
    -Sh7	                    T    d dl mZ d dlmZ d dlmZmZmZmZm	Z	  G d d          Z
dS )    )annotations)warn)distanceeditopsmatching_blocksopcodesratioc                  \    e Zd ZdZd ZddZd Zd Zd	 Zd
 Z	d Z
d Zd Zd Zd Zd ZdS )StringMatcherz<A SequenceMatcher-like class built on the top of Levenshteinc                L    d x| _         | _        d x| _        x| _        | _        d S N)_ratio	_distance_opcodes_editops_matching_blocksselfs    _/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/Levenshtein/StringMatcher.py_reset_cachezStringMatcher._reset_cache   s,    '++dn@DDD(=(=(=    N Fc                    |rt          dd           |rt          dd           ||c| _        | _        |                                  d S )Nz*isjunk NOT implemented, it will be ignored   )
stacklevelz,autojunk NOT implemented, it will be ignored)r   _str1_str2r   )r   isjunkseq1seq2autojunks        r   __init__zStringMatcher.__init__   sd     	M=!LLLL 	O?ANNNN!%t
DJr   c                L    ||c| _         | _        |                                  d S r   )r   r   r   )r   r   r    s      r   set_seqszStringMatcher.set_seqs   s*    !%t
DJr   c                <    || _         |                                  d S r   )r   r   )r   r   s     r   set_seq1zStringMatcher.set_seq1   !    
r   c                <    || _         |                                  d S r   )r   r   )r   r    s     r   set_seq2zStringMatcher.set_seq2   r'   r   c                    | j         sL| j        r&t          | j        | j        | j                  | _         nt          | j        | j                  | _         | j         S r   )r   r   r   r   r   r   s    r   get_opcodeszStringMatcher.get_opcodes#   P    } 	@} @ 'tz4: N N '
DJ ? ?}r   c                    | j         sL| j        r&t          | j        | j        | j                  | _         nt          | j        | j                  | _         | j         S r   )r   r   r   r   r   r   s    r   get_editopszStringMatcher.get_editops+   r,   r   c                    | j         s2t          |                                 | j        | j                  | _         | j         S r   )r   r   r+   r   r   r   s    r   get_matching_blocksz!StringMatcher.get_matching_blocks3   s=    $ 	`$3D4D4D4F4F
TXT^$_$_D!$$r   c                \    | j         st          | j        | j                  | _         | j         S r   r   r	   r   r   r   s    r   r	   zStringMatcher.ratio8   s)    { 	8
DJ77DK{r   c                \    | j         st          | j        | j                  | _         | j         S r   r2   r   s    r   quick_ratiozStringMatcher.quick_ratio=   s)    { 	8
DJ77DK{r   c                    t          | j                  t          | j                  }}dt          ||          z  ||z   z  S )Ng       @)lenr   r   min)r   len1len2s      r   real_quick_ratiozStringMatcher.real_quick_ratioC   s7    __c$*oodSt__$t44r   c                \    | j         st          | j        | j                  | _         | j         S r   )r   r   r   r   r   s    r   r   zStringMatcher.distanceG   s)    ~ 	>%dj$*==DN~r   )Nr   r   F)__name__
__module____qualname____doc__r   r"   r$   r&   r)   r+   r.   r0   r	   r4   r:   r    r   r   r   r      s        FFE E E             % % %
  
  5 5 5    r   r   N)
__future__r   warningsr   Levenshteinr   r   r   r   r	   r   r@   r   r   <module>rD      s    " " " " " "       J J J J J J J J J J J J J JB B B B B B B B B Br   