
    j                         d dl Z d dlmZmZmZ ddlmZmZ ddlmZ	  G d de j                        Zd	ej                  d
eeef   dee	j                     ddfdZy)    N)DictAnyOptional   )base_metricarguments_helpers   )typesc                   f    e Zd ZdZej
                  deeef   de	e
j                     ddfd       Zy)ScoreArgumentsValidatorzAbstract base class for all metrics allowing validation of score method's arguments.
    It validates if arguments to be provided to the score method are valid, otherwise it raises an error.
    score_kwargskey_mappingreturnNc                      y)zMThe subclasses must implement this method to provide actual validation logic.N )selfr   r   s      /Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/opik/evaluation/metrics/arguments_validator.pyvalidate_score_argumentsz0ScoreArgumentsValidator.validate_score_arguments   s     	    )__name__
__module____qualname____doc__abcabstractmethodr   strr   r   evaluation_typesScoringKeyMappingTyper   r   r   r   r   r      sQ     	38n .DDE 
	 r   r   metrickwargsscoring_key_mappingr   c                     t        | t              r| j                  ||       y t        j                  | j
                  | j                  ||       y )N)r   r   )score_function
score_namer    r!   )
isinstancer   r   r   $raise_if_score_arguments_are_missingscorename)r   r    r!   s      r   r   r      sL    
 &12''-@ 	( 	
 	>>!<<{{ 3		
r   )r   typingr   r   r    r   r   r
   r   ABCr   
BaseMetricr   r   r   r   r   r   <module>r-      sg    
 & & , (cgg 
""
cN
 ""2"H"HI
 
	
r   