
    a
i9                    .   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"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               C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\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*   dictc                
   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).Nr   r   r   )r   loadsr   r   r   r   )r'   run_infos     r(   deserialize_run_infoz+SerializedRunOperation.deserialize_run_infod   sr    =,,:! 'dj 9 9HW:! 'dj 9 9HW?&%,]4?%C%CH\"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'   r:   s     r(   __eq__zSerializedRunOperation.__eq__r   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+   )r#   r5   r:   r;   r#   r<   )	__name__
__module____qualname____annotations__	__slots__r)   r4   r9   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   rJ   r#   r$   c                0    || _         || _        || _        d S r&   rK   )r'   r   r   rJ   s       r(   r)   z$SerializedFeedbackOperation.__init__   s      r*   r+   c                *    t          | j                  S )r-   )r.   rJ   )r'   s    r(   r4   z5SerializedFeedbackOperation.calculate_serialized_size   s    4=!!!r*   r:   r;   r<   c                    t          |t                    o)| j        | j        | j        f|j        |j        |j        fk    S r&   )r0   rI   r   r   rJ   r>   s     r(   r?   z"SerializedFeedbackOperation.__eq__   sG    %!<== 8GMMC
 h7	C8 	8r*   N)r   r   r   r   rJ   r   r#   r$   r@   rA   )rB   rC   rD   rE   rF   r)   r4   r?   rG   r*   r(   rI   rI      su         MMMOOO.I! ! ! !
" " " "8 8 8 8 8 8r*   rI   rJ   &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
model_dumpr   r   rK   )hasattrcallablegetattrrQ   r	   r5   uuiduuid4r0   strUUIDrI   _dumps_json)rJ   feedback_creates     r(   serialize_feedback_dictr[      s!    x&& /8GHl4S4S+T+T / ( 3 3 5 5tX..?"" $
	OD)3	/	/ A $	/$*? @ @((&*jll
##	OJ/	5	5 M&*i
0K&L&L
#&4  ,_--   r*   r   r   payloadr5   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   rY   )	r   r\   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*   rd   c                    i | ]
\  }}|||S r&   rG   re   kvs      r(   rg   z7combine_serialized_queue_operations.<locals>.<dictcomp>   s&       !QAqr*   )r0   r   r   getr   appendr   r   r7   itemsupdatedumpsr   r   r   r   r   r   r!   list	itertoolschainr/   )r`   create_ops_by_idpassthrough_opsrf   	create_opcreate_op_dictop_dicts          r(   #combine_serialized_queue_operationsry      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*   rf   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   rJ   rW   r.   r   )rf   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.r{   r|   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=r}   r~   )rm   r   r   r   rW   r.   r   r   r   r   r   r   r!   rn   loggerwarningr0   r   ospathgetsizeopenFileNotFoundErrorrU   rV   r   r   )rf   	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boundaryrW   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   rG   ri   s      r(   
<listcomp>z6encode_multipart_parts_and_context.<locals>.<listcomp>  s(    >>>daQ//!///>>>r*    )partsrm   extendrn   joinencode)r   r   	part_namefilenamedatar2   headersheader_partss           r(   "encode_multipart_parts_and_contextr   x  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        }g }d}t          | |          D ]\  }}t          |t          t
          f          sJt          |t                    r|                                n t          |          	                                }|
                    ||f           |t          |          z  }t          |dd          }|6|dk    r0|j        }	|	dk    r#|	|z   |k    rddlm}
  |
d|	 d| d           dS |D ]C\  }} ||           |xj        t          |          z  c_         ||            |d	           D|j        
                    | j                   d
S )zCompress multipart parts into the shared compressed buffer.

    Returns True if the parts were enqueued into the compressed buffer, or False
    if they were rejected because the configured in-memory size limit would be
    exceeded.
    r   max_uncompressed_size_bytesN)_log_tracing_dropzcompressed traces buffer full (/z bytes)Fs   
T)compressor_writerwriter   r0   r   	bytearrayr   readrW   r   rm   r.   rT   uncompressed_sizelangsmith.clientr   _contextcontext)r   r   r   r   r   op_uncompressed_sizer   r   	max_bytescurrent_sizer   s              r(   $compress_multipart_parts_and_contextr     s    /5E')E;8  
* 
* $	 233 	)$??W		SYYEUEUEWEW  	gt_%%%D		))+H$OOIQ(:!/C Ci O O::::::S,SSSSS   5  g++s4yy8++dg%%&7&?@@@4r*   )rJ   rO   r#   rI   )r   r   r\   r5   r#   r   )r`   ra   r#   ra   )rf   rI   r#   r   )rf   r   r#   r   )r   r   r   rW   r#   r   )r   r   r   r   r   rW   r#   r<   )(
__future__r   rr   loggingr   rU   collections.abcr   ior   typingr   r   r   r	   	langsmithr
   
ls_schemaslangsmith._internalr   &langsmith._internal._compressed_tracesr   langsmith._internal._multipartr   r   langsmith._internal._serder   rY   	getLoggerrB   r   r   rI   r[   r_   ry   r   r   r   r   rG   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	$	$w
 w
 w
 w
 w
 w
 w
 w
t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. . . . . .r*   