
    j	                         d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	 ee
ef   Ze j                   G d d             Ze j                   G d d             Zd	ed
e
defdZy)    N)DictAnyListOptional)FeedbackScoreDict)experiment_item_comparec                   T    e Zd ZU eed<   eed<   dZee   ed<   dZeeee	f      ed<   y)ExperimentItemReferencesdataset_item_idtrace_idNproject_nameexecution_policy)
__name__
__module____qualname__str__annotations__r   r   r   r   r        /Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/opik/api_objects/experiment/experiment_item.pyr
   r
   
   s3    M"&L(3-&15htCH~.5r   r
   c            	           e Zd ZU eed<   eed<   eed<   eeeef      ed<   eeeef      ed<   ee	   ed<    e
j                  e      Zee   ed<   e	 dd
ej"                  deeeef      dd fd       Zy	)ExperimentItemContentidr   r   dataset_item_dataevaluation_task_outputfeedback_scores)default_factoryassertion_resultsNvaluereturnc           	         |j                   g }nF|j                   D cg c]1  }|j                  |j                  |j                  |j                  d3 }}t        |d      }|g }nC|D cg c]8  }t        |t              r|n#|j                  |j                  |j                  d: }}t        |j                  |j                  |j                  |r|n|j                  |j                  ||      S c c}w c c}w )N)category_namenamereasonr   r   )r   passedr$   )r   r   r   r   r   r   r   )r   r"   r#   r$   r   _extract_extra_field
isinstancedictr%   r   r   r   r   inputoutput)clsr   r   r   rest_feedback_scoreraw_assertionsr   ars           r   !from_rest_experiment_item_comparez7ExperimentItemContent.from_rest_experiment_item_compare   s      (79O ,1+@+@ ,A' &9%F%F/44188066	 ,A   .e5HI!;= )	! )B b$' !xx299		RS )	  ! %xx^^!113D/%++#(<<+/
 	
+!s   6C2+=C7)N)r   r   r   r   r   r   r   r   r   r   dataclassesfieldlistr   AssertionResultDictclassmethodr   ExperimentItemComparer/   r   r   r   r   r      s    GMS#X//$T#s(^44+,,3D;3D3D4t/0   7;%
&<<%
 $DcN3%
 
!	%
 %
r   r   model
field_namer    c                     t        | d      r'| j                  r| j                  j                  |      S t        | |d       S )Nmodel_extra)hasattrr9   getgetattr)r6   r7   s     r   r&   r&   G   s:    um$):):  $$Z005*d++r   )r0   typingr   r   r   r   
opik.typesr   opik.rest_api.typesr   r   r3   	dataclassr
   r   r&   r   r   r   <module>rA      s{     , , ( 738n  6 6 6 1
 1
 1
h, , , ,r   