
    Ng                    $   U d dl mZ d dlZd dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZmZmZ dad Z e              G d d          Zd$dZd$dZd$dZd$dZd%dZd&dZd'dZd(dZd)dZdeiZded <   deiZded!<   deiZded"<   deiZded#<   dS )*    )annotationsN)isnan)AnyCallable)AVX2SSE2supportsc                     t           8t          j                            d          } t	          | d          r| j        a d S d S d S )NpandasNA)	pandas_NAsysmodulesgethasattrr   )r   s    L/var/www/html/ai-engine/env/lib/python3.11/site-packages/rapidfuzz/_utils.pysetupPandasr      sJ    **64   	"	III 	" 	"    c                      e Zd ZdZdZdZdZdS )
ScorerFlag    @      i   N)__name__
__module____qualname__
RESULT_F64
RESULT_I64RESULT_SIZE_T	SYMMETRIC r   r   r   r      s"        JJMIIIr   r   _kwargsr   returndict[str, Any]c                 <    ddt           j        t           j        z  dS )Nr       optimal_scoreworst_scoreflagsr   r   r    r"   s    r   _get_scorer_flags_distancer-   #   s%     )J,@@  r   c                 <    ddt           j        t           j        z  dS )Nr&   r   r'   r+   r,   s    r   _get_scorer_flags_similarityr/   +   s%    ")J,@@  r   c                 <    ddt           j        t           j        z  dS )Nr      r'   r   r   r    r,   s    r   %_get_scorer_flags_normalized_distancer3   3   %    &)==  r   c                 <    ddt           j        t           j        z  dS )Nr1   r   r'   r2   r,   s    r   '_get_scorer_flags_normalized_similarityr6   ;   r4   r   sboolc                l    | 	| t           u rdS t          | t                    rt          |           rdS dS )NTF)r   
isinstancefloatr   )r7   s    r   is_noner<   C   s=    yANNt!U a t5r   funccached_scorer_call(dict[str, Callable[..., dict[str, Any]]]c                "    || _         | | _        d S )N)_RF_ScorerPy_RF_OriginalScorer)r=   r>   s     r   add_scorer_attrsrC   M   s    *D"Dr   modulestrc                N    	 t          j        |           S # t          $ r Y dS w xY w)z6
    try to import module. Return None on failure
    N)	importlibimport_module	Exception)rD   s    r   optional_import_modulerJ   S   s:    &v...   tts    
$$nametuple[Any, list[Any]]c                    t          t                    rt          | dz             }||S t          t                    rt          | dz             }||S t	          j        |           S )z4
    import module best fitting for current CPU
    _avx2N_sse2)r	   r   rJ   r   rG   rH   )rK   rD   s     r   vectorized_importrP   ]   si     ~~ 'w77M~~ 'w77M"4(((r   c                   t           j                            d          }t          j        | dz             }t          ||          }|s%d|d|j        d|j         d}t          |          |dk    rt          | dz             }n.|d	k    r|S 	 t          | dz             }n# t          $ r |cY S w xY wt          ||          }|s%d|d|j        d|j         d}t          |          |S )
z}
    import library function and possibly fall back to a pure Python version
    when no C++ implementation is available
    RAPIDFUZZ_IMPLEMENTATION_pyzcannot import name z from z ()cpp_cpppython)osenvironr   rG   rH   getattr__name__file__ImportErrorrP   rI   )rD   rK   implpy_modpy_funcmsgcpp_modcpp_funcs           r   fallback_importrd   m   s.    :>>455D$Ve^44Ffd##G WDWW&-WWV_WWW#u}}#FVO44				'88GG 	 	 	NNN	 w%%H YDYY'.YYgFVYYY#Os   B# #B21B2get_scorer_flagsdefault_distance_attributedefault_similarity_attribute%default_normalized_distance_attribute'default_normalized_similarity_attribute)r"   r   r#   r$   )r7   r   r#   r8   )r=   r   r>   r?   )rD   rE   r#   r   )rK   rE   r#   rL   )rD   rE   rK   rE   r#   r   )
__future__r   rG   rX   r   mathr   typingr   r   rapidfuzz._feature_detectorr   r   r	   r   r   r   r-   r/   r3   r6   r<   rC   rJ   rP   rd   rf   __annotations__rg   rh   ri   r!   r   r   <module>ro      s   # " " " " " "     				 



                       < < < < < < < < < <	" " "                       # # # #   ) ) ) )    D I[\vGw  w w w w4J      =S %     ?U '      r   