
    IgL!                       d dl mZ d dlZd dlZd dl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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y)    )annotationsN)LiteralOptionalUnioncast)schemas)_orjson)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/answerous/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   r6   c                .    || _         || _        || _        y r   r7   )r   r   r   r6   s       r    r!   z$SerializedFeedbackOperation.__init__Z   s      r"   c                    t        |t              xrG | j                  | j                  | j                  f|j                  |j                  |j                  fk(  S r   )r$   r5   r   r   r6   r%   s     r    r'   z"SerializedFeedbackOperation.__eq___   sP    %!<= 8GGMMMMC
 hh7	C8 	8r"   N)r   r   r   r   r6   r   r(   r)   r*   r-   r3   r"   r    r5   r5   S   s!    MO.I!
8r"   r5   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   r7   )hasattrcallablegetattrr;   r   uuiduuid4r$   strUUIDr5   _dumps_json)r6   feedback_creates     r    serialize_feedback_dictrE   g   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   rC   )r   payloadr   r   r   r   s         r    serialize_run_dictrI   ~   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_operationsr_      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   r6   rA   lenr   )rW   s    r    <serialized_feedback_operation_to_multipart_parts_and_contextrf      sm     $ BEE7#KK&%s3r{{+;'<=	
	
 T"%%) r"   c                *   g }|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 ]n  \  }\  }}d|v r't        j                  d| d| j                   d	       4|j                  d
| j                   d| d ||dt	        t        |            iff       p t        |d| j                   d| j                         S )N.ra   rb   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.rc   rd   )rM   r   r   r   rA   re   r   r   r   r   rO   loggerwarningr   r   )rW   	acc_partskeyvaluevalbncontent_types          r    7serialized_run_operation_to_multipart_parts_and_contextrq      s    &(I ||nAbeeW%"!3s288}#56		

 
299	BJJ	299 

U
 =<<."%%#/&%s3t9~6	
	

& 
~~')~~';';'= 	#A#dax6qc :!uug &RR !"%%!-$)3s4y>:	
	* $
T"%%) r"   )r6   z&Union[ls_schemas.FeedbackCreate, dict]r(   r5   )r   r   rH   r;   r(   r   )rV   @list[Union[SerializedRunOperation, SerializedFeedbackOperation]]r(   rr   )rW   r5   r(   r   )rW   r   r(   r   )
__future__r   rS   loggingr?   typingr   r   r   r   	langsmithr   
ls_schemaslangsmith._internalr	   langsmith._internal._multipartr
   r   langsmith._internal._serder   rC   	getLoggerr.   ri   r   r5   rE   rI   r_   rf   rq   r3   r"   r    <module>r|      s    "    1 1 + ' R @			8	$@
 @
F8 8(4 .'26&-M	I-ME-M`#&===r"   