
    j                         d dl mZmZmZmZ d dlZd dlZd dlZddlm	Z	m
Z
  G d dej                        Z G d dej                        Z G d	 d
ej                        Zy)    )OptionalDictAnyListN   )	constantshelpersc                   f    e Zd ZU dZ ej
                  dd      Zeed<   	 eed<   	 e	ee
f   ed<   y)	EvaluatorItemz8
    An evaluator configuration for a dataset item.
    allowFextrastrictnametypeconfigN)__name__
__module____qualname____doc__pydantic
ConfigDictmodel_configstr__annotations__r   r        ~/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/opik/api_objects/dataset/dataset_item.pyr   r      s>     '8&&WUCL
I$
ICcN&r   r   c                   d    e Zd ZU dZ ej
                  dd      ZdZee	   e
d<   	 dZee	   e
d<   y)ExecutionPolicyItemz.
    Execution policy for a dataset item.
    r   Fr   Nruns_per_itempass_threshold)r   r   r   r   r   r   r   r!   r   intr   r"   r   r   r   r    r       s?     '8&&WUCL#'M8C='8$(NHSM(Er   r    c                   \   e Zd ZU dZ ej
                  dd      Z ej                  ej                        Z
ej                  e   ed<   	 dZee   ed<   	 dZee   ed	<   	 ej$                  Zeed
<   	 dZee   ed<   	 dZeee      ed<   	 dZee   ed<   	 	 ddedeeef   fdZdefdZy)DatasetItemz]
    A DatasetItem object representing an item in a dataset.
    The format is flexible.
    r   Fr   )default_factoryidNtrace_idspan_idsourcedescription
evaluatorsexecution_policy
include_idreturnc                 D    i | j                   }|r| j                  |d<   |S )a=  
        Get the data content of the dataset item (extra fields).

        Note: evaluators and execution_policy are not included in data content

        Args:
            include_id: Whether to include the item ID in the content.

        Returns:
            Dictionary containing the item's extra fields.
        r'   )model_extrar'   )selfr.   contents      r   get_contentzDatasetItem.get_contentF   s)     'T%%& GGGDMr   c                    | j                         }| j                  | j                  |d<   | j                  +| j                  D cg c]  }|j                          c}|d<   | j                  | j                  j                         |d<   t        j                  |d      }t        j                  |j                               }|j                         S c c}w )Nr+   r,   r-   T)	sort_keys)r4   r+   r,   
model_dumpr-   jsondumpshashlibsha256encode	hexdigest)r2   r3   ejson_stringhash_objects        r   content_hashzDatasetItem.content_hash[   s    ""$'%)%5%5GM"??&=A__$M_Q\\^_$MGL!  ,*.*?*?*J*J*LG&'jjD9nn[%7%7%9:$$&& %Ns   C)F)r   r   r   r   r   r   r   Fieldr	   generate_idr'   SkipValidationr   r   r(   r   r)   r   DATASET_SOURCE_SDKr*   r+   r,   r   r   r-   r    boolr   r   r4   rA   r   r   r   r%   r%   '   s    
 '8&&WUCL'5x~~++(B$  7"Hhsm"@!GXc]!?..FC.I!%K#%304Jm,-4>6:h23:1 ! 
c3h*'c 'r   r%   )typingr   r   r   r   r   r8   r:    r   r	   	BaseModelr   r    r%   r   r   r   <module>rJ      sQ    , ,    !'H&& '"F(,, FC'($$ C'r   