
    h5                    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	 d dl
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j8                  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)Iterable)BufferedReader)LiteralOptional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ed<   ded<   ded<   dZ	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddZddZddZy)SerializedRunOperationLiteral['post', 'patch']	operation	uuid.UUIDidtrace_idbytes_noneOptional[bytes]inputsoutputseventsextraerror
serialized Optional[ls_schemas.Attachments]attachmentsr   r   r   r   r   r   r   r   r   r   r!   Nc                    || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        || _
        y Nr"   )selfr   r   r   r   r   r   r   r   r   r   r!   s               ]/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langsmith/_internal/_operations.py__init__zSerializedRunOperation.__init__3   sR     # 


$&    c                   d}| j                   r|t        | j                         z  }| j                  r|t        | j                        z  }| j                  r|t        | j                        z  }| j                  r|t        | j                        z  }| j
                  r|t        | j
                        z  }| j                  r|t        | j                        z  }| j                  r|t        | j                        z  }| j                  rA| j                  j                         D ]$  \  }}t        |t              s|t        |      z  }& |S )3Calculate actual serialized size of this operation.r   )r   lenr   r   r   r   r   r   r!   values
isinstancer   )r%   sizecontent_typedata_or_paths       r&   calculate_serialized_sizez0SerializedRunOperation.calculate_serialized_sizeM   s   ::C

O#D;;C$$D<<C%%D;;C$$D::C

O#D::C

O#D??C((D.2.>.>.E.E.G .*llE2C--D. r(   c                X   t        j                  | j                        }| j                  "t        j                  | j                        |d<   | j                  "t        j                  | j                        |d<   | j
                  "t        j                  | j
                        |d<   |S )zFDeserialize the main run info (_none and extra, error and serialized).r   r   r   )r   loadsr   r   r   r   )r%   run_infos     r&   deserialize_run_infoz+SerializedRunOperation.deserialize_run_infod   s|    ==,::! 'djj 9HW::! 'djj 9HW??&%,]]4??%CH\"r(   c                   t        |t              xr | j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  f|j                  |j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  fk(  S r$   )r-   r   r   r   r   r   r   r   r   r   r   r   r!   r%   others     r&   __eq__zSerializedRunOperation.__eq__r   s    %!78 
NNGGMMJJKKLLKKJJJJOO>
 OOHHNNKKLLMMLLKKKK
>
 	
r(   )NNNNNNN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r    returnNoner:   int)r:   dictr8   objectr:   bool)	__name__
__module____qualname____annotations__	__slots__r'   r1   r5   r9    r(   r&   r   r      s    ''M L11I( #'#'"&!%!%&*8<'+' ' 	'
 '  ' !'  ' ' ' $' 6' 
'4.
r(   r   c                  H    e Zd ZU ded<   ded<   ded<   dZddZddZdd	Zy
)SerializedFeedbackOperationr   r   r   r   feedbackr   r   rJ   c                .    || _         || _        || _        y r$   rK   )r%   r   r   rJ   s       r&   r'   z$SerializedFeedbackOperation.__init__   s      r(   c                ,    t        | j                        S )r*   )r+   rJ   )r%   s    r&   r1   z5SerializedFeedbackOperation.calculate_serialized_size   s    4==!!r(   c                    t        |t              xrG | j                  | j                  | j                  f|j                  |j                  |j                  fk(  S r$   )r-   rI   r   r   rJ   r7   s     r&   r9   z"SerializedFeedbackOperation.__eq__   sP    %!<= 8GGMMMMC
 hh7	C8 	8r(   N)r   r   r   r   rJ   r   r:   r;   r<   r?   )rB   rC   rD   rE   rF   r'   r1   r9   rG   r(   r&   rI   rI      s&    MO.I!
"8r(   rI   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 )Nr>   r   r   rK   )hasattrcallablegetattrr>   r	   uuiduuid4r-   strUUIDrI   _dumps_json)rJ   feedback_creates     r&   serialize_feedback_dictrY      s     x Xgh.G%H (tX.?" $

	OD)3	/ $		/$*? @(&*jjl
#	OJ/	5&*ii
0K&L
#&4  ,_- r(   c                   |j                  dd       }|j                  dd       }|j                  dd       }|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 |t        |      nd |t        |      nd |t        |      nd ||
      S d 
      S )Nr   r   r   r   r   r   r!   r   r   r"   )popr   rW   )	r   payloadr   r   r   r   r   r   r!   s	            r&   serialize_run_dictr]      s    [[4(Fkk)T*G[[4(FKK&EKK&E\40J++mT2K!4=$'"&,&8{6"d(/(;G$&,&8{6"d$)$5k% 4$)$5k% 4.8.D;z*$#.#: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                  |j                  |_        |j                   |j                   |_        |j"                  |j"                  |_        |j$                  |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   r3   itemsupdatedumpsr   r   r   r   r   r   r!   list	itertoolschainr,   )	opsopcreate_ops_by_idpassthrough_ops	create_opcreate_op_dictkvop_dicts	            r&   #combine_serialized_queue_operationsrq      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	 xx#"$((	xx#"$((	}}(')}}	$~~)((0,.I)%%,,R^^<""2&O''P 	 0 7 7 9?KLLa0s   3I;
J J 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   rJ   rU   r+   r   )ri   s    r&   <serialized_feedback_operation_to_multipart_parts_and_contextrw     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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/        j0                               z   <   |j                  d| j                   d| d |
| d|	 i ff        t3        |d| j4                   d| j                         |fS # t,        $ r% t        j                  d| j                  |       Y ]w xY w)N.rs   rt   r   r   r   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(Attachment file not found for run %s: %sz	; length=ru   rv   )ra   r   r   r   rU   r+   r   r   r   r   r   r   r!   rb   loggerwarningr-   r   ospathgetsizeopenFileNotFoundErrorrS   rT   r   r   )ri   	acc_partsopened_files_dictkeyvaluevalbnr/   r0   	file_sizefiles              r&   7serialized_run_operation_to_multipart_parts_and_contextr     s    &(I35||nAbeeW%"!3s288}#56		

 
299	BJJ	299	"((	"((	r}}% 

U =<<."%%#/&%s3t9~6	
	

, 
~~/1~~/C/C/E *	+A+lax6qc :!uug &RR ,.  %beeWAaS1 ((-s3|3D/EF	
 " =Id3D LP!#l"3c$**,6G"GH  %beeWAaS1  +nIi[A	
A*	X 	!fR[[MbeeW,MN # ) NNBBEE< 	s   *+I*JJ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:  )partsra   extendrb   joinencode)
parts_and_contextboundary	part_namefilenamedatar/   headersheader_partsrn   ro   s
             r&   "encode_multipart_parts_and_contextr   x  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                   |j                   j                  }t        | |      D ]  \  }} ||       t        |t        t
        f      s9t        |t              r|j                         nt        |      j                         }|xj                  t        |      z  c_
         ||        |d        |j                  j                  | j                         y )Ns   
)compressor_writerwriter   r-   r   	bytearrayr   readrU   r   uncompressed_sizer+   _contextra   context)r   compressed_tracesr   r   r   r   s         r&   $compress_multipart_parts_and_contextr     s    
 //55E;8  	g $	 23)$?		SYEUEUEW  	++s4y8+dg %%&7&?&?@r(   )rJ   z&Union[ls_schemas.FeedbackCreate, dict]r:   rI   )r   r   r\   r>   r:   r   )rh   @list[Union[SerializedRunOperation, SerializedFeedbackOperation]]r:   r   )ri   rI   r:   r   )ri   r   r:   z:tuple[MultipartPartsAndContext, dict[str, BufferedReader]])r   r   r   rU   r:   z4Iterable[tuple[bytes, Union[bytes, BufferedReader]]])r   r   r   r   r   rU   r:   r;   )(
__future__r   rf   loggingr}   rS   collections.abcr   ior   typingr   r   r   r	   	langsmithr
   
ls_schemaslangsmith._internalr   &langsmith._internal._compressed_tracesr   langsmith._internal._multipartr   r   langsmith._internal._serder   rW   	getLoggerrB   r{   r   rI   rY   r]   rq   rw   r   r   r   rG   r(   r&   <module>r      s   "   	  $  1 1 + ' C R @			8	$w
 w
t8 804 .'2623M	I3ME3Ml#&VV?Vr5/55 :50A/A'A A 
	Ar(   