
    	h                     t    d dl mZmZmZmZ d dlmZ ed         Z G d ded          Z G d d	          Z	d
S )    )AnyCallableLiteralOptional)	TypedDictdamerau_levenshteinlevenshteinjarojaro_winklerhammingindelc                   $    e Zd ZU eed<   eed<   dS )EditDistanceConfigmetricnormalize_scoreN)__name__
__module____qualname__METRICS__annotations__bool     o/var/www/html/web-builder-api.evdpl.com/venv/lib/python3.11/site-packages/langsmith/_internal/_edit_distance.pyr   r      s'         OOOr   r   F)totalc                   t    e Zd Z	 ddee         fdZ	 ddedee         defdZe	dd	ed
e
defd            ZdS )EditDistanceNconfigc                     |pi }|                     d          pd}|                     ||                     dd                    | _        d S )Nr   r	   r   T)r   )get_get_metricr   )selfr   r   s      r   __init__zEditDistance.__init__   sX     2H%%>)>&&FJJ/@$$G$G ' 
 
r   
prediction	referencereturnc                 .    |                      ||          S N)r   )r#   r%   r&   s      r   evaluatezEditDistance.evaluate   s    
 {{:y111r   Tdistancer   c                    	 ddl m} n# t          $ r t          d          w xY w|j        |j        |j        |j        |j        |j        d}| |vr"t          d|  dt          |                     ||          }|r|j        S |j        S )Nr   )r+   zgThis operation requires the rapidfuzz library to use.Please install it with `pip install -U rapidfuzz`.r   zInvalid distance metric: z
Must be one of: )	rapidfuzzr+   ImportErrorDamerauLevenshteinLevenshteinJaroJaroWinklerHammingIndel
ValueErrorlistnormalized_distance)r+   r   rf_distance
module_mapmodules        r   r"   zEditDistance._get_metric&   s    	        	 	 	E  	 $/#A&2$'3"* &&
 &

 :%%8H 8 8%)*%5%58 8   H% 	#--?"s   	 #r)   )T)r   r   r   r   r   r$   strfloatr*   staticmethodr   r   r"   r   r   r   r   r      s         04
 
+,
 
 
 
 $(2 22 C=2 
	2 2 2 2 # #c #D #H # # # \# # #r   r   N)
typingr   r   r   r   typing_extensionsr   r   r   r   r   r   r   <module>r@      s    3 3 3 3 3 3 3 3 3 3 3 3 ' ' ' ' ' '
    %    
/# /# /# /# /# /# /# /# /# /#r   