
    :Qg                    "   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<   y)    )annotationsN)isnan)AnyCallable)AVX2SSE2supportsc                     t         9t        j                  j                  d      } t	        | d      r| j
                  a y y y )NpandasNA)	pandas_NAsysmodulesgethasattrr   )r   s    M/var/www/html/answerous/venv/lib/python3.12/site-packages/rapidfuzz/_utils.pysetupPandasr      s7    *64 		I !     c                      e Zd ZdZdZdZdZy)
ScorerFlag    @      i   N)__name__
__module____qualname__
RESULT_F64
RESULT_I64RESULT_SIZE_T	SYMMETRIC r   r   r   r      s    JJMIr   r   c                 L    ddt         j                  t         j                  z  dS )Nr       optimal_scoreworst_scoreflagsr   r   r    _kwargss    r   _get_scorer_flags_distancer+   #   s&     ))J,@,@@ r   c                 L    ddt         j                  t         j                  z  dS )Nr#   r   r$   r(   r)   s    r   _get_scorer_flags_similarityr-   +   s&    "))J,@,@@ r   c                 L    ddt         j                  t         j                  z  dS )Nr      r$   r   r   r    r)   s    r   %_get_scorer_flags_normalized_distancer1   3   &    &&)=)== r   c                 L    ddt         j                  t         j                  z  dS )Nr/   r   r$   r0   r)   s    r   '_get_scorer_flags_normalized_similarityr4   ;   r2   r   c                R    | | t         u ryt        | t              rt        |       ryy)NTF)r   
isinstancefloatr   )ss    r   is_noner9   C   s&    yAN!Uar   (dict[str, Callable[..., dict[str, Any]]]c                     || _         | | _        y )N)_RF_ScorerPy_RF_OriginalScorer)funccached_scorer_calls     r   add_scorer_attrsr@   M   s    *D"Dr   c                L    	 t        j                  |       S # t        $ r Y yw xY w)z6
    try to import module. Return None on failure
    N)	importlibimport_module	Exception)modules    r   optional_import_modulerF   S   s*    &&v.. s    	##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
    _avx2_sse2)r	   r   rF   r   rB   rC   )namerE   s     r   vectorized_importrK   ]   sU     ~'w7M~'w7M""4((r   c                   t         j                  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         }t        ||      }|s+d|d|j                  d|j                   d}t        |      |S # t        $ r |cY S w xY w)
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   rB   rC   getattr__name__file__ImportErrorrK   rD   )rE   rJ   implpy_modpy_funcmsgcpp_modcpp_funcs           r   fallback_importr_   m   s     ::>>45D$$Ve^4Ffd#G#D86&--1B"V__DUUVW#u}#FVO4			'8G w%H#D86'..1C2gFVFVEWWXY#O  	N	s   C C$#C$get_scorer_flagsdefault_distance_attributedefault_similarity_attribute%default_normalized_distance_attribute'default_normalized_similarity_attribute)r*   r   returnzdict[str, Any])r8   r   re   bool)r>   r   r?   r:   )rE   strre   r   )rJ   rg   re   ztuple[Any, list[Any]])rE   rg   rJ   rg   re   r   )
__future__r   rB   rS   r   mathr   typingr   r   rapidfuzz._feature_detectorr   r   r	   r   r   r   r+   r-   r1   r4   r9   r@   rF   rK   r_   ra   __annotations__rb   rc   rd   r!   r   r   <module>rm      s    #  	 
    < <	"  #) 
 	D I[\vGw D w4J F  =S %'O  ?U ')Q r   