
    %GgS+                    l   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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j:                  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'	 	 	 	 	 	 	 	 ddZ(y)    )annotationsN)BufferedReader)DictIterableLiteralOptionalTupleUnioncast)schemas)_orjson)CompressedTraces)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	            |/home/kushmeetdev/apache_webroot/langgraph_flaskproject/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   r;   c                .    || _         || _        || _        y r#   r<   )r$   r   r   r;   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)   r:   r   r   r;   r*   s     r%   r,   z"SerializedFeedbackOperation.__eq__b   sP    %!<= 8GGMMMMC
 hh7	C8 	8r'   N)r   r   r   r   r;   r   r-   r.   r/   r2   r8   r'   r%   r:   r:   V   s!    MO.I!
8r'   r:   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UUIDr:   _dumps_json)r;   feedback_creates     r%   serialize_feedback_dictrJ   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   rH   )r   payloadr   r   r   r    s         r%   serialize_run_dictrN      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_operationsrd      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   r;   rF   lenr   )r\   s    r%   <serialized_feedback_operation_to_multipart_parts_and_contextrk      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.rf   rg   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=rh   ri   )rR   r   r   r   rF   rj   r   r   r   r    rT   loggerwarningr)   r   ospathgetsizeopenrD   rE   r   r   )r\   	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              #  X  K   | j                   D ]  \  }\  }}}}d| dd| dg}|r|j                  d| d       |j                  d| dg|j                         D 	cg c]  \  }}	| d|	 d c}	}d       dj	                  |      j                         |f  y c c}	}w w)	Nz--z
z&Content-Disposition: form-data; name=""z; filename="z
Content-Type: z:  )partsrR   extendrT   joinencode)
parts_and_contextboundary	part_namefilenamedatar{   headersheader_partsra   rb   s
             r%   "encode_multipart_parts_and_contextr   '  s      ?P>U>U 5:	:HdL'
$4YKqA

 ,xj :;$\N$7.5mmo>daQCr!D/> 	
 ww|$++-t44#5 ?s   AB*!B$37B*c                    t        | |      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 )Ns   
)r   compressor_writerwriter)   r   	bytearrayuncompressed_sizerj   r   readrF   r   )r   compressed_tracesr   r   r   encoded_datas         r%   $compress_multipart_parts_and_contextr   ?  s    
 <8 ; 	++11':dUI.///3t9<///55d;$/#yy{"4y//1//3|3DD///55lC 	++11':#;r'   )r;   z&Union[ls_schemas.FeedbackCreate, dict]r-   r:   )r   r   rM   r@   r-   r   )r[   @list[Union[SerializedRunOperation, SerializedFeedbackOperation]]r-   r   )r\   r:   r-   r   )r\   r   r-   z:tuple[MultipartPartsAndContext, Dict[str, BufferedReader]])r   r   r   rF   r-   z4Iterable[Tuple[bytes, Union[bytes, BufferedReader]]])r   r   r   r   r   rF   r-   r.   ))
__future__r   rX   loggingrq   rD   ior   typingr   r   r   r   r	   r
   r   	langsmithr   
ls_schemaslangsmith._internalr   &langsmith._internal._compressed_tracesr   langsmith._internal._multipartr   r   langsmith._internal._serder   rH   	getLoggerr3   ro   r   r:   rJ   rN   rd   rk   r   r   r   r8   r'   r%   <module>r      s   "   	   H H H + ' C R @			8	$@
 @
F8 8(4 .'26&-M	I-ME-M`#&MM?M`5/55 :50;/;'; ; 
	;r'   