
    6|h)                    P   d dl mZ d dl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
mZmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d d	lmZ  ej6                  e      Z G d
 d      Z G d d      Z	 	 	 	 ddZ 	 	 	 	 	 	 ddZ!	 	 	 	 ddZ"	 	 	 	 ddZ#	 	 	 	 ddZ$	 	 	 	 	 	 	 	 ddZ%y)    )annotationsN)BufferedReader)DictLiteralOptionalUnioncast)schemas)_orjson)CompressedRuns)MultipartPartMultipartPartsAndContext)
dumps_jsonc                      e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   dZ	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddZy)SerializedRunOperationLiteral['post', 'patch']	operation	uuid.UUIDidtrace_idbytes_noneOptional[bytes]inputsoutputsevents Optional[ls_schemas.Attachments]attachmentsr   r   r   r   r   r   r   r   Nc	                t    || _         || _        || _        || _        || _        || _        || _        || _        y Nr   )	selfr   r   r   r   r   r   r   r   s	            ^/var/www/html/test/engine/venv/lib/python3.12/site-packages/langsmith/_internal/_operations.py__init__zSerializedRunOperation.__init__,   s=     # 
&    c           	        t        |t              xr | j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  f|j                  |j                  |j                  |j
                  |j                  |j                  |j                  |j                  fk(  S r!   )

isinstancer   r   r   r   r   r   r   r   r   r"   others     r#   __eq__zSerializedRunOperation.__eq__@   s    %!78 
NNGGMMJJKKLLKK	>
 OOHHNNKKLLMMLL	
>
 	
r%   )NNNN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   returnNoner)   objectr+   bool__name__
__module____qualname____annotations__	__slots__r$   r*    r%   r#   r   r      s    ''M L11	I" #'#'"&8<'+' ' 	'
 '  ' !'  ' 6' 
'(
r%   r   c                  @    e Zd ZU ded<   ded<   ded<   dZd
dZddZy	)SerializedFeedbackOperationr   r   r   r   feedbackr   r   r9   c                .    || _         || _        || _        y r!   r:   )r"   r   r   r9   s       r#   r$   z$SerializedFeedbackOperation.__init__]   s      r%   c                    t        |t              xrG | j                  | j                  | j                  f|j                  |j                  |j                  fk(  S r!   )r'   r8   r   r   r9   r(   s     r#   r*   z"SerializedFeedbackOperation.__eq__b   sP    %!<= 8GGMMMMC
 hh7	C8 	8r%   N)r   r   r   r   r9   r   r+   r,   r-   r0   r6   r%   r#   r8   r8   V   s!    MO.I!
8r%   r8   c                   t        | d      r&t        t        | d            r| j                         }nt	        t        |       }d|vrt        j                         |d<   n.t        |d   t              rt        j                  |d         |d<   d|vrt        j                         |d<   n.t        |d   t              rt        j                  |d         |d<   t        |d   |d   t        |            S )Ndictr   r   r:   )hasattrcallablegetattrr>   r	   uuiduuid4r'   strUUIDr8   _dumps_json)r9   feedback_creates     r#   serialize_feedback_dictrH   j   s     x Xgh.G%H (tX.?" $

	OD)3	/ $		/$*? @(&*jjl
#	OJ/	5&*ii
0K&L
#&4  ,_- r%   c                6   |j                  dd       }|j                  dd       }|j                  dd       }|j                  dd       }t        | |d   |d   t        |      |t        |      nd |t        |      nd |t        |      nd ||      S d       S )Nr   r   r   r   r   r   r   )popr   rF   )r   payloadr   r   r   r   s         r#   serialize_run_dictrL      s     [[4(Fkk)T*G[[4(F++mT2K!4=$'"&,&8{6"d(/(;G$&,&8{6"d#.#:K	 	 AE	 	r%   c                ^   | D ci c].  }t        |t              r|j                  dk(  r|j                  |0 }}g }| D ]  }t        |t              r|j                  dk(  r%|j	                  |j                        }||j                  |       T|j                  |j                  |j                  k7  rt        j                  |j                        }t        j                  |j                        j                         D ci c]  \  }}|	|| }}}|j                  |       t        j                  |      |_        |j                  |j                  |_        |j                  |j                  |_        |j                  |j                  |_        |j                  k|j                  i |_        |j                  j                  |j                         |j                  |        t!        t#        j$                  |j'                         |            S c c}w c c}}w )Npost)r'   r   r   r   getappendr   r   loadsitemsupdatedumpsr   r   r   r   list	itertoolschainvalues)	opsopcreate_ops_by_idpassthrough_ops	create_opcreate_op_dictkvop_dicts	            r#   #combine_serialized_queue_operationsrb      s   
 b01bllf6L 	r	  	   !'b01||v% ),,RUU3I &&r*xx#IOO(C ")y!?%,]]288%<%B%B%D!QAqD  %%g.")--"?	yy$#%99	 zz%$&JJ	!yy$#%99	 ~~)((0,.I)%%,,R^^<""2&C!'D 	 0 7 7 9?KLLU0s   3H$
H)H)c                    t        d| j                   d | j                  ddt        t	        | j                              iffgd| j
                   d| j                         S )Nz	feedback.application/jsonContent-Lengthtrace=,id=)r   r   r9   rD   lenr   )rZ   s    r#   <serialized_feedback_operation_to_multipart_parts_and_contextri      sm     $ BEE7#KK&%s3r{{+;'<=	
	
 T"%%) r%   c                `   g }i }|j                  | j                   d| j                   d | j                  ddt	        t        | j                              iff       d| j                  fd| j                  fd| j                  ffD ]Q  \  }}|	|}|j                  | j                   d| j                   d| d |ddt	        t        |            iff       S | j                  r!| j                  j                         D ]  \  }\  }}d|v r't        j                  d| d| j                   d	       5t        |t              r<|j                  d
| j                   d| d ||dt	        t        |            iff       t        j                   j#                  |      }	t%        |d      }
|
|t	        |      t	        t'        j(                               z   <   |j                  d
| j                   d| d |
| d|	 i ff        t+        |d| j,                   d| j                         |fS )N.rd   re   r   r   r   z Skipping logging of attachment 'z
' for run zx: Invalid attachment name.  Attachment names must not contain periods ('.'). Please rename the attachment and try again.zattachment.rbz	; length=rf   rg   )rP   r   r   r   rD   rh   r   r   r   r   rR   loggerwarningr'   r   ospathgetsizeopenrB   rC   r   r   )rZ   	acc_partsopened_files_dictkeyvaluevalbncontent_typedata_or_path	file_sizefiles              r#   7serialized_run_operation_to_multipart_parts_and_contextr}      sa    &(I35||nAbeeW%"!3s288}#56		

 
299	BJJ	299 

U
 =<<."%%#/&%s3t9~6	
	

& 
~~/1~~/C/C/E $	+A+lax6qc :!uug &RR ,.  %beeWAaS1 ((-s3|3D/EF	
 GGOOL9	L$/KO!#l"3c$**,6G"GH  %beeWAaS1  +nIi[A	
5$	L 	!fR[[MbeeW,MN r%   c                :   | j                   D ]  \  }\  }}}}d| dd| dg}|r|j                  d| d       |j                  d| dg|j                         D 	
cg c]  \  }	}
|	 d|
 d c}
}	d       |j                  j                  dj                  |      j                                t        |t        t        f      r:|xj                  t        |      z  c_        |j                  j                  |       nst        |t              r|j                         }nt        |      j                         }|xj                  t        |      z  c_        |j                  j                  |       |j                  j                  d	        y c c}
}	w )
Nz--z
z&Content-Disposition: form-data; name=""z; filename="z
Content-Type: z:  s   
)partsrP   extendrR   compressor_writerwritejoinencoder'   r   	bytearrayuncompressed_sizerh   r   readrD   )parts_and_contextcompressed_runsboundary	part_namefilenamedatary   headersheader_partsr_   r`   encoded_datas               r#   $compress_multipart_parts_and_contextr   '  s   
 ?P>U>U 9:	:HdL'
$4YKqA

 ,xj :;$\N$7.5mmo>daQCr!D/> 	
 	))//0E0L0L0NOdUI./--T:---33D9$/#yy{"4y//1--\1BB---33LA 	))//8?9 ?s    F)r9   z&Union[ls_schemas.FeedbackCreate, dict]r+   r8   )r   r   rK   r>   r+   r   )rY   @list[Union[SerializedRunOperation, SerializedFeedbackOperation]]r+   r   )rZ   r8   r+   r   )rZ   r   r+   z:tuple[MultipartPartsAndContext, Dict[str, BufferedReader]])r   r   r   r   r   rD   r+   r,   )&
__future__r   rV   loggingro   rB   ior   typingr   r   r   r   r	   	langsmithr
   
ls_schemaslangsmith._internalr   $langsmith._internal._compressed_runsr   langsmith._internal._multipartr   r   langsmith._internal._serder   rF   	getLoggerr1   rm   r   r8   rH   rL   rb   ri   r}   r   r6   r%   r#   <module>r      s    "   	   7 7 + ' ? R @			8	$@
 @
F8 8(4 .'26&-M	I-ME-M`#&MM?M`$9/$9#$9 $9 
	$9r%   