
    	h	4                    .   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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'dS )0    )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S ) 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!   NreturnNonec                    || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        || _
        d S Nr"   )selfr   r   r   r   r   r   r   r   r   r   r!   s               l/var/www/html/web-builder-api.evdpl.com/venv/lib/python3.11/site-packages/langsmith/_internal/_operations.py__init__zSerializedRunOperation.__init__3   sX     # 


$&    intc                H   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        rF| j        	                                D ],\  }}t          |t                    r|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
OO#D; 	%C$$$D< 	&C%%%D; 	%C$$$D: 	$C
OO#D: 	$C
OO#D? 	)C(((D 	..2.>.E.E.G.G . .*llE22 .C---Dr*   otherobjectboolc                @   t          |t                    o| 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&   )r0   r   r   r   r   r   r   r   r   r   r   r   r!   r'   r5   s     r(   __eq__zSerializedRunOperation.__eq__d   s    %!788 
NGMJKLKJJO>
 OHNKLMLKK
>
 	
r*   )NNNNNNN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r    r#   r$   r#   r+   r5   r6   r#   r7   __name__
__module____qualname____annotations__	__slots__r)   r4   r:    r*   r(   r   r      s         ''''MMM LLL1111I( #'#'"&!%!%&*8<' ' ' ' '4   .
 
 
 
 
 
r*   r   c                  J    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dS )SerializedFeedbackOperationr   r   r   r   feedbackr   r   rF   r#   r$   c                0    || _         || _        || _        d S r&   rG   )r'   r   r   rF   s       r(   r)   z$SerializedFeedbackOperation.__init__   s      r*   r+   c                *    t          | j                  S )r-   )r.   rF   )r'   s    r(   r4   z5SerializedFeedbackOperation.calculate_serialized_size   s    4=!!!r*   r5   r6   r7   c                    t          |t                    o)| j        | j        | j        f|j        |j        |j        fk    S r&   )r0   rE   r   r   rF   r9   s     r(   r:   z"SerializedFeedbackOperation.__eq__   sG    %!<== 8GMMC
 h7	C8 	8r*   N)r   r   r   r   rF   r   r#   r$   r;   r<   r=   rC   r*   r(   rE   rE      su         MMMOOO.I! ! ! !
" " " "8 8 8 8 8 8r*   rE   rF   &Union[ls_schemas.FeedbackCreate, dict]r#   c                R   t          | d          r2t          t          | d                    r|                                 }nt	          t          |           }d|vrt          j                    |d<   n8t          |d         t                    rt          j	        |d                   |d<   d|vrt          j                    |d<   n8t          |d         t                    rt          j	        |d                   |d<   t          |d         |d         t          |                    S )Ndictr   r   rG   )hasattrcallablegetattrrM   r	   uuiduuid4r0   strUUIDrE   _dumps_json)rF   feedback_creates     r(   serialize_feedback_dictrW      s    x   /Xgh.G.G%H%H / (tX..?"" $
	OD)3	/	/ A $	/$*? @ @((&*jll
##	OJ/	5	5 M&*i
0K&L&L
#&4  ,_--   r*   r   r   payloadrM   c                p   |                     dd           }|                     dd           }|                     dd           }|                     dd           }|                     dd           }|                     dd           }|                     dd           }t          | |d         |d	         t          |          |t          |          nd |t          |          nd |t          |          nd |t          |          nd |t          |          nd |t          |          nd ||nd 
          S )Nr   r   r   r   r   r   r!   r   r   r"   )popr   rU   )	r   rX   r   r   r   r   r   r   r!   s	            r(   serialize_run_dictr[      sG    [[4((Fkk)T**G[[4((FKK&&EKK&&E\400J++mT22K!4=$'""&,&8{6"""d(/(;G$$$&,&8{6"""d$)$5k%   4$)$5k%   4.8.D;z***$#.#:KK   r*   ops@list[Union[SerializedRunOperation, SerializedFeedbackOperation]]c                   d | D             }g }| D ]}t          |t                    ry|j        dk    r%|                    |j                  }||                    |           W|j        |j        |j        k    r|t          j        |j                  }d t          j        |j                  	                                D             }|
                    |           t          j        |          |_        |j        |j        |_        |j        |j        |_        |j        |j        |_        |j        |j        |_        |j        |j        |_        |j        |j        |_        |j        -|j        i |_        |j        
                    |j                   |                    |           t'          t)          j        |                                |                    S )Nc                ^    i | ]*}t          |t                    r|j        d k    "|j        |+S )post)r0   r   r   r   ).0ops     r(   
<dictcomp>z7combine_serialized_queue_operations.<locals>.<dictcomp>   sH       b011 79lf6L6L 	r6L6L6Lr*   r`   c                    i | ]
\  }}|||S r&   rC   ra   kvs      r(   rc   z7combine_serialized_queue_operations.<locals>.<dictcomp>   s&       !QAqr*   )r0   r   r   getr   appendr   r   loadsitemsupdatedumpsr   r   r   r   r   r   r!   list	itertoolschainr/   )r\   create_ops_by_idpassthrough_opsrb   	create_opcreate_op_dictop_dicts          r(   #combine_serialized_queue_operationsrv      s       	   '' ''b011 &	'|v%% ),,RU33I &&r***x#IO(C(C ")y!?!? %,]28%<%<%B%B%D%D   %%g...")-"?"?	y$#%9	 z%$&J	!y$#%9	 x#"$(	x#"$(	}(')}	$~)(0,.I)%,,R^<<<""2&&&&	 0 7 7 9 9?KKLLLr*   rb   r   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   rF   rS   r.   r   )rb   s    r(   <serialized_feedback_operation_to_multipart_parts_and_contextr|      sr     $ $BE##K&%s3r{+;+;'<'<=	
	
 	*))"%))  r*   :tuple[MultipartPartsAndContext, dict[str, BufferedReader]]c                   g }i }|                     | 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 ]S\  }}||}|                     | j         d| j         d| d |ddt	          t          |                    iff           T| j        rg| j                                        D ]L\  }\  }}d|v r't                              d
| d| j         d           4t!          |t"                    rC|                     d| j         d| d ||dt	          t          |                    iff           	 t$          j                            |          }	t+          |d          }
n1# t,          $ r$ t                              d| j        |           Y w xY w|
|t	          |          t	          t/          j                              z   <   |                     d| j         d| d |
| d|	 i ff           Nt3          |d| j         d| j                   |fS )N.rx   ry   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=rz   r{   )ri   r   r   r   rS   r.   r   r   r   r   r   r   r!   rk   loggerwarningr0   r   ospathgetsizeopenFileNotFoundErrorrQ   rR   r   r   )rb   	acc_partsopened_files_dictkeyvaluevalbnr2   r3   	file_sizefiles              r(   7serialized_run_operation_to_multipart_parts_and_contextr     s8    &(I35|%%be%%"!3s28}}#5#56		

 
 
 
29	BJ	29	"(	"(	r}% 
 

U =<//"%//#//&%s3t99~~6	
	
 
	
 
	
 
	
 
~ +/1~/C/C/E/E *	 *	+A+laxxRq R R!uR R R   ,..    1be11a11 ((-s3|3D3D/E/EF	
 
 
 
 " = =Id33DD(   NNBBE<   H	
 LP!#l"3"3c$*,,6G6G"GH  1be11a11  +AAiAA	
 
 
 
 	!,MR[,M,Mbe,M,MNN s   	/F99+G'&G'parts_and_contextboundaryrS   4Iterable[tuple[bytes, Union[bytes, BufferedReader]]]c              #  F  K   | j         D ]\  }\  }}}}d| dd| dg}|r|                    d| d           |                    d| dgd |                                D             d           d                    |                                          |fV  d S )	Nz--
z&Content-Disposition: form-data; name=""z; filename="z
Content-Type: c                $    g | ]\  }}| d | dS )z: r   rC   re   s      r(   
<listcomp>z6encode_multipart_parts_and_context.<locals>.<listcomp>z  s(    >>>daQ//!///>>>r*    )partsri   extendrk   joinencode)r   r   	part_namefilenamedatar2   headersheader_partss           r(   "encode_multipart_parts_and_contextr   j  s      ?P>U 5 5:	:HdL'AYAAA

  	< :x : : :;;;7\777>>gmmoo>>> 	
 	
 	
 ww|$$++--t44444#5 5r*   compressed_tracesr   r$   c                   |j         j        }t          | |          D ]\  }} ||           t          |t          t
          f          sJt          |t                    r|                                n t          |          	                                }|xj
        t          |          z  c_
         ||            |d           |j                            | j                   d S )Ns   
)compressor_writerwriter   r0   r   	bytearrayr   readrS   r   uncompressed_sizer.   _contextri   context)r   r   r   r   r   r   s         r(   $compress_multipart_parts_and_contextr     s    
 /5E;8    	g $	 233 	)$??W		SYYEUEUEWEW  	++s4yy8++dg%%&7&?@@@@@r*   )rF   rK   r#   rE   )r   r   rX   rM   r#   r   )r\   r]   r#   r]   )rb   rE   r#   r   )rb   r   r#   r}   )r   r   r   rS   r#   r   )r   r   r   r   r   rS   r#   r$   )(
__future__r   ro   loggingr   rQ   collections.abcr   ior   typingr   r   r   r	   	langsmithr
   
ls_schemaslangsmith._internalr   &langsmith._internal._compressed_tracesr   langsmith._internal._multipartr   r   langsmith._internal._serder   rU   	getLoggerr>   r   r   rE   rW   r[   rv   r|   r   r   r   rC   r*   r(   <module>r      s   " " " " " "      				  $ $ $ $ $ $       1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + ' ' ' ' ' ' C C C C C C R R R R R R R R @ @ @ @ @ @		8	$	$i
 i
 i
 i
 i
 i
 i
 i
X8 8 8 8 8 8 8 80   .   23M 3M 3M 3Ml   &V V V Vr5 5 5 50A A A A A Ar*   