
    wnh	                     2    d Z ddl ddlmZ  G d d      Zy)z
StringMatcher.py

ported from python-Levenshtein
[https://github.com/miohtama/python-Levenshtein]
License available here: https://github.com/miohtama/python-Levenshtein/blob/master/COPYING
    )*)warnc                   Z    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y)StringMatcherz<A SequenceMatcher-like class built on the top of Levenshteinc                 J    d x| _         | _        d x| _        x| _        | _        y N)_ratio	_distance_opcodes_editops_matching_blocksselfs    Y/var/www/html/profi_bot/bot/venv/lib/python3.12/site-packages/fuzzywuzzy/StringMatcher.py_reset_cachezStringMatcher._reset_cache   s&    '++dn@DDD(=    Nc                 \    |rt        d       ||c| _        | _        | j                          y )Nz.isjunk not NOT implemented, it will be ignored)r   _str1_str2r   )r   isjunkseq1seq2s       r   __init__zStringMatcher.__init__   s*    AB!%t
DJr   c                 B    ||c| _         | _        | j                          y r   )r   r   r   )r   r   r   s      r   set_seqszStringMatcher.set_seqs   s    !%t
DJr   c                 2    || _         | j                          y r   )r   r   )r   r   s     r   set_seq1zStringMatcher.set_seq1        
r   c                 2    || _         | j                          y r   )r   r   )r   r   s     r   set_seq2zStringMatcher.set_seq2$   r   r   c                    | j                   sm| j                  r<t        | j                  | j                  | j                        | _         | j                   S t        | j                  | j                        | _         | j                   S r   )r   r   opcodesr   r   r   s    r   get_opcodeszStringMatcher.get_opcodes(   Z    }}}} 'tzz4:: N }} !(

DJJ ?}}r   c                    | j                   sm| j                  r<t        | j                  | j                  | j                        | _         | j                   S t        | j                  | j                        | _         | j                   S r   )r   r   editopsr   r   r   s    r   get_editopszStringMatcher.get_editops0   r$   r   c                     | j                   s4t        | j                         | j                  | j                        | _         | j                   S r   )r   matching_blocksr#   r   r   r   s    r   get_matching_blocksz!StringMatcher.get_matching_blocks8   s=    $$$3D4D4D4F48JJ

%LD!$$$r   c                 |    | j                   s%t        | j                  | j                        | _         | j                   S r   r	   ratior   r   r   s    r   r-   zStringMatcher.ratio>   s)    {{

DJJ7DK{{r   c                 |    | j                   s%t        | j                  | j                        | _         | j                   S r   r,   r   s    r   quick_ratiozStringMatcher.quick_ratioC   s)    {{

DJJ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_ratioI   s5    _c$**odSt_$t44r   c                 |    | j                   s%t        | j                  | j                        | _         | j                   S r   )r
   distancer   r   r   s    r   r7   zStringMatcher.distanceM   s)    ~~%djj$**=DN~~r   )N r8   )__name__
__module____qualname____doc__r   r   r   r   r    r#   r'   r*   r-   r/   r5   r7    r   r   r   r      sB    FE%
5r   r   N)r<   Levenshteinwarningsr   r   r=   r   r   <module>r@      s     A Ar   