
    jU                       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
 ddlmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl m!Z! ddl"m#Z# ddl$m%Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z; ddl<m=Z= ddl>m?Z? dd l@mAZA dd!lBmCZC dd"lDmEZE  ej                  ej                  d#      ZH G d$ d%      ZI G d& d'      ZJy)(    N)JSONDecodeError   )ApiError)AsyncClientWrapperSyncClientWrapper)serialize_datetime)AsyncHttpResponseHttpResponse)jsonable_encoder)parse_obj_as)RequestOptions)'convert_and_respect_annotation_metadata)BadRequestError)NotFoundError)UnauthorizedError)Comment)	ErrorInfo)ErrorInfoWrite)FeedbackScoreBatchItem)FeedbackScoreBatchItemThread)FeedbackScoreNamesPublic)FeedbackScoreSource)JsonListString)JsonListStringWrite)ProjectStatsPublic)TraceFilterPublic)TracePagePublic)TracePublic)TraceThread)TraceThreadFilter)TraceThreadPage)TraceThreadUpdate)TraceUpdate)
TraceWrite)
ValueEntry.c            "          e Zd ZdefdZeeeeedddededej                  e   dej                  e	j                     d	ej                  e	j                     d
ej                  e   dej                  e   dej                  e   ded   fdZeeeeedddededej                  e   dej                  e	j                     d	ej                  e	j                     d
ej                  e   dej                  e   dej                  e   ded   fdZeeeeeeedddededededej                  e   dej                  e   dej                  e	j                     d	ej                  e	j                     d
ej                  e   dej                  e   dej                  ej"                  eef      dej                  e   ded   fdZdddej(                  e   dej                  e   ded   fdZedddej(                  e   dedej                  e   dej                  e   ded   f
dZedddej(                  e   dedej                  e   dej                  e   ded   f
d Zeeeedd!d"ej                  e   d#ej                  e   d$ej                  e   d%ej                  ej(                  e      dej                  e   ded   fd&Zdddddddddddddd'd(ej                  e   d)ej                  e   d"ej                  e   d#ej                  e   d*ej                  e   d+ej                  e   d,ej                  e   d-ej                  e   d.ej                  e   d/ej                  e   d0ej                  e	j                     d1ej                  e	j                     dej                  e   dee   fd2Zeeeeeeeeeeeedd3d4e	j                  dej                  e   d"ej                  e   dej                  e   d5ej                  e	j                     d6ej                  e    d7ej                  e    d8ej                  e    d9ej                  ej(                  e      d:ej                  e!   d	ej                  e	j                     d;ej                  e   d$ej                  e   dej                  e   ded   fd<Z"ddd=ded,ej                  e   dej                  e   dee#   fd>Z$dddedej                  e   ded   fd?Z%eeeeeeeeeeeeedd@ded"ej                  e   d#ej                  e   dej                  e   d5ej                  e	j                     d6ej                  e&   d7ej                  e&   d8ej                  e&   d9ej                  ej(                  e      dAej                  ej(                  e      dBej                  ej(                  e      d:ej                  e'   d$ej                  e   d;ej                  e   dej                  e   ded   f dCZ(dddej(                  e   dej                  e   ded   fdDZ)eddEd"ed$edFej(                  e   dGej                  e   dej                  e   ded   fdHZ*dddej(                  e   dej                  e   ded   fdIZ+eddEdededGej                  e   dej                  e   ded   f
dJZ,eeddKd%ej(                  e   d"ej                  e   d#ej                  e   dej                  e   ded   f
dLZ-dddej(                  e   dej                  e   ded   fdMZ.dddNd#ej                  e   dej                  e   dee/   fdOZ0dddNd#ej                  e   dej                  e   dee/   fdPZ1ddddddddQd#ej                  e   d"ej                  e   d*ej                  e   d/ej                  e   d0ej                  e	j                     d1ej                  e	j                     dej                  e   dee2   fdRZ3ddd$edSedej                  e   dee4   fdTZ5ddddddddQd#ej                  e   d"ej                  e   d*ej                  e   d/ej                  e   d0ej                  e	j                     d1ej                  e	j                     dej                  e   dee2   fdUZ6dddVedSedej                  e   dee4   fdWZ7eeeddXd$ed"ej                  e   d#ej                  e   d+ej                  e   dej                  e   dee8   fdYZ9dddddddddddddZd(ej                  e   d)ej                  e   d"ej                  e   d#ej                  e   d+ej                  e   d,ej                  e   d*ej                  e   d-ej                  e   d/ej                  e   d0ej                  e	j                     d1ej                  e	j                     dej                  e   dee:   fd[Z;eeeddXd$ed"ej                  e   d#ej                  e   d+ej                  e   dej                  e   ded   fd\Z<ddd]ej(                  e=   dej                  e   ded   fd^Z>ddd]ej(                  e?   dej                  e   ded   fd_Z@eAj                  eeeeeeeeedd`
d"ej                  e   d#ej                  e   d*ej                  ej(                  eC      daej                  e   dbej                  e   d+ej                  e   d,ej                  e   d0ej                  e	j                     d1ej                  e	j                     dej                  e   dej                  eej                  eE         fdc       ZFeAj                  eeeeeeeeeddd
d"ej                  e   d#ej                  e   d*ej                  ej(                  eG      deej                  e   dbej                  e   d+ej                  e   d,ej                  e   d0ej                  e	j                     d1ej                  e	j                     dej                  e   dej                  eej                  eE         fdf       ZHeeeddgdhed9ej                  ej(                  e      dAej                  ej(                  e      dBej                  ej(                  e      dej                  e   ded   fdiZIeeeeedddSededej                  e   dej                  e	j                     d	ej                  e	j                     d
ej                  e   dej                  e   dej                  e   ded   fdjZJeeeeedddSededej                  e   dej                  e	j                     d	ej                  e	j                     d
ej                  e   dej                  e   dej                  e   ded   fdkZKy)lRawTracesClientclient_wrapperc                    || _         y N_client_wrapperselfr(   s     x/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/opik/rest_api/traces/raw_client.py__init__zRawTracesClient.__init__-   
    -    Nid
created_atlast_updated_at
created_bylast_updated_byrequest_optionsid_textr4   r5   r6   r7   r8   r9   returnc                   | j                   j                  j                  dt        |       dd||||||dddi|t              }		 d|	j
                  cxk  rd	k  rn nt        |	d
      S |	j                         }
t        |	j
                  t        |	j                        |
      # t        $ r6 t        |	j
                  t        |	j                        |	j                        w xY w)a  
        Add thread comment

        Parameters
        ----------
        id_ : str

        text : str

        id : typing.Optional[str]

        created_at : typing.Optional[dt.datetime]

        last_updated_at : typing.Optional[dt.datetime]

        created_by : typing.Optional[str]

        last_updated_by : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        v1/private/traces/threads/	/commentsPOSTr4   r;   r5   r6   r7   r8   content-typeapplication/jsonmethodjsonheadersr9   omit   ,  Nresponsedatastatus_coderG   bodyr,   httpx_clientrequestr   OMITrO   r
   rF   r   r   dictrG   r;   r.   r:   r;   r4   r5   r6   r7   r8   r9   	_response_response_jsons              r/   add_thread_commentz"RawTracesClient.add_thread_comment0   s    L ((55==()9#)>(?yI(#2(#2  2 , > 
	"	ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	t   $B' ,B' '?C&c                   | j                   j                  j                  dt        |       dd||||||dddi|t              }		 d|	j
                  cxk  rd	k  rn nt        |	d
      S |	j                         }
t        |	j
                  t        |	j                        |
      # t        $ r6 t        |	j
                  t        |	j                        |	j                        w xY w)a  
        Add trace comment

        Parameters
        ----------
        id_ : str

        text : str

        id : typing.Optional[str]

        created_at : typing.Optional[dt.datetime]

        last_updated_at : typing.Optional[dt.datetime]

        created_by : typing.Optional[str]

        last_updated_by : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        v1/private/traces/r?   r@   rA   rB   rC   rD   rI   rJ   NrK   rN   rQ   rV   s              r/   add_trace_commentz!RawTracesClient.add_trace_commento   s    L ((55== !1#!6 7yA(#2(#2  2 , > 
	"	ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	trZ   category_namereasonr5   r6   r7   r8   value_by_authorr9   namevaluesourcer_   r`   ra   c                (   | j                   j                  j                  dt        |       dd||||||||	|
t	        |t
        j                  t        t        f   d      d
ddi|t        	      }	 d
|j                  cxk  rdk  rn nt        |d      S |j                         }t        |j                  t        |j                         |      # t        $ r6 t        |j                  t        |j                         |j"                        w xY w)a  
        Add trace feedback score

        Parameters
        ----------
        id : str

        name : str

        value : float

        source : FeedbackScoreSource

        category_name : typing.Optional[str]

        reason : typing.Optional[str]

        created_at : typing.Optional[dt.datetime]

        last_updated_at : typing.Optional[dt.datetime]

        created_by : typing.Optional[str]

        last_updated_by : typing.Optional[str]

        value_by_author : typing.Optional[typing.Dict[str, ValueEntry]]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        r\   /feedback-scoresPUTwriteobject_
annotation	direction
rb   r_   rc   r`   rd   r5   r6   r7   r8   ra   rB   rC   rD   rI   rJ   NrK   rN   )r,   rR   rS   r   r   typingDictstrr%   rT   rO   r
   rF   r   r   rU   rG   r;   r.   r4   rb   rc   rd   r_   r`   r5   r6   r7   r8   ra   r9   rW   rX   s                  r/   add_trace_feedback_scorez(RawTracesClient.add_trace_feedback_score   s   d ((55== !1"!5 66FG!.  (#2(#2#J+CO8T`g$  2 ,+ > 
	.	ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   2$C C ?Dr9   tracesc          
         | j                   j                  j                  dddt        |t        j
                  t           d      iddi|t              }	 d	|j                  cxk  rd
k  rn nt        |d      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)a  
        Create traces

        Parameters
        ----------
        traces : typing.Sequence[TraceWrite]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        v1/private/traces/batchr@   rt   rh   ri   rB   rC   rD   rI   rJ   NrK   rN   )r,   rR   rS   r   rn   Sequencer$   rT   rO   r
   rF   r   r   rU   rG   r;   r.   rt   r9   rW   rX   s        r/   create_traceszRawTracesClient.create_traces   s    " ((55==%A"vz/JV]  2 , > 
		ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	t   $B6 ;B6 6?C5
merge_tagsr9   idsupdater|   c                   | j                   j                  j                  dd|t        |t        d      |dddi|t
              }	 d	|j                  cxk  rd
k  rn nt        |d      S |j                  dk(  rt        t        |j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j!                                           |j!                         }t%        |j                  t        |j                        |      # t"        $ r6 t%        |j                  t        |j                        |j&                        w xY w)a  
        Update multiple traces

        Parameters
        ----------
        ids : typing.Sequence[str]
            List of trace IDs to update (max 1000)

        update : TraceUpdate

        merge_tags : typing.Optional[bool]
            If true, merge tags with existing tags instead of replacing them. Default: false

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        rv   PATCHrh   ri   r}   r~   r|   rB   rC   rD   rI   rJ   NrK     type_rj   rG   rP   rN   )r,   rR   rS   r   r#   rT   rO   r
   r   rU   rG   rn   castOptionalAnyr   rF   r   r   r;   r.   r}   r~   r|   r9   rW   rX   s          r/   batch_update_tracesz#RawTracesClient.batch_update_traces&  sT   8 ((55==%A"{g )  2 , > 
	 	ti++1c1#YTBB$$+% !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	t   $E ,B*E ?F c                   | j                   j                  j                  dd|t        |t        d      |dddi|t
              }	 d	|j                  cxk  rd
k  rn nt        |d      S |j                  dk(  rt        t        |j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j!                                           |j!                         }t%        |j                  t        |j                        |      # t"        $ r6 t%        |j                  t        |j                        |j&                        w xY w)a  
        Update multiple threads

        Parameters
        ----------
        ids : typing.Sequence[str]
            List of thread model IDs to update (max 1000)

        update : TraceThreadUpdate

        merge_tags : typing.Optional[bool]
            If true, merge tags with existing tags instead of replacing them. Default: false

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        v1/private/traces/threads/batchr   rh   ri   r   rB   rC   rD   rI   rJ   NrK   r   r   r   rN   )r,   rR   rS   r   r"   rT   rO   r
   r   rU   rG   rn   r   r   r   r   rF   r   r   r;   r   s          r/   batch_update_threadsz$RawTracesClient.batch_update_threadse  sU   8 ((55==-A"/@G )  2 , > 
	 	ti++1c1#YTBB$$+% !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	tr   project_name
project_id	thread_id
thread_idsr9   r   r   r   r   c                   | j                   j                  j                  dd||||dddi|t              }	 d|j                  cxk  rdk  rn nt        |d	
      S |j                  dk(  rt        t        |j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j                                           |j                         }t!        |j                  t        |j                        |      # t        $ r6 t!        |j                  t        |j                        |j"                        w xY w)a
  
        Close one or multiple trace threads. Supports both single thread_id and multiple thread_ids for batch operations.

        Parameters
        ----------
        project_name : typing.Optional[str]

        project_id : typing.Optional[str]

        thread_id : typing.Optional[str]

        thread_ids : typing.Optional[typing.Sequence[str]]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        v1/private/traces/threads/closerg   r   r   r   r   rB   rC   rD   rI   rJ   NrK     r   r   rN   )r,   rR   rS   rT   rO   r
   r   rU   rG   rn   r   r   r   r   rF   r   r   r;   r.   r   r   r   r   r9   rW   rX   s           r/   close_trace_threadz"RawTracesClient.close_trace_thread  sI   : ((55==- ,(&(	  2 , > 
		ti++1c1#YTBB$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   $D2 B*D2 2?E1pagesizer   r   filterstruncatestrip_attachmentssortingexcludesearch	from_timeto_timer9   r   r   r   r   r   r   r   r   r   r   c                V   | j                   j                  j                  dd|||||||||	|
|t        |      nd|t        |      ndd|      }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }t        ||	      S |j                         }t        |j                  t        |j                        |
      # t        $ r6 t        |j                  t        |j                        |j                  
      w xY w)a)  
        Get traces by project_name or project_id

        Parameters
        ----------
        page : typing.Optional[int]

        size : typing.Optional[int]

        project_name : typing.Optional[str]

        project_id : typing.Optional[str]

        filters : typing.Optional[str]

        truncate : typing.Optional[bool]

        strip_attachments : typing.Optional[bool]

        sorting : typing.Optional[str]

        exclude : typing.Optional[str]

        search : typing.Optional[str]

        from_time : typing.Optional[dt.datetime]

        to_time : typing.Optional[dt.datetime]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[TracePagePublic]
            Trace resource
        v1/private/tracesGETNr   r   r   r   r   r   r   r   r   r   r   r   rE   paramsr9   rI   rJ   r   rK   rN   )r,   rR   rS   r   rO   rn   r   r   r   rF   r
   r   r   rU   rG   r;   r.   r   r   r   r   r   r   r   r   r   r   r   r   r9   rW   _datarX   s                    r/   get_traces_by_projectz%RawTracesClient.get_traces_by_project  s-   l ((55== ,("$%6"" >G>S/	:Y]:A:M-g6SW ,# > 
	&	ti++1c1# - ) 0 $YUCC&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   AC) .C) )?D(r4   r   rb   end_timeinputoutputmetadatatags
error_infor6   ttftr   r9   
start_timer   r   r   r   r   r   r   c                F   | j                   j                  j                  dd|||||t        |t        d      t        |t        d      t        |t        d      |	t        |
t
        d      |||dddi|t              }	 d	|j                  cxk  rd
k  rn nt        |d      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)a  
        Get trace

        Parameters
        ----------
        start_time : dt.datetime

        id : typing.Optional[str]

        project_name : typing.Optional[str]
            If null, the default project is used

        name : typing.Optional[str]

        end_time : typing.Optional[dt.datetime]

        input : typing.Optional[JsonListStringWrite]

        output : typing.Optional[JsonListStringWrite]

        metadata : typing.Optional[JsonListStringWrite]

        tags : typing.Optional[typing.Sequence[str]]

        error_info : typing.Optional[ErrorInfoWrite]

        last_updated_at : typing.Optional[dt.datetime]

        ttft : typing.Optional[float]
            Time to first token in milliseconds

        thread_id : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        r   r@   rh   ri   r4   r   rb   r   r   r   r   r   r   r   r6   r   r   rB   rC   rD   rI   rJ   NrK   rN   )r,   rR   rS   r   r   r   rT   rO   r
   rF   r   r   rU   rG   r;   r.   r   r4   r   rb   r   r   r   r   r   r   r6   r   r   r9   rW   rX   s                    r/   create_tracezRawTracesClient.create_trace;  s;   t ((55== ,($@!.AW B"/Bg D$1DPW E&>W $3&+0  2 ,= > 
	@	ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   $C! &C! !?D r   r9   c                $   | j                   j                  j                  dt        |       dd|i|      }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }t        ||      S |j                         }t        |j                  t        |j                        |	      # t        $ r6 t        |j                  t        |j                        |j                  	      w xY w)
aQ  
        Get trace by id

        Parameters
        ----------
        id : str

        strip_attachments : typing.Optional[bool]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[TracePublic]
            Trace resource
        r\   r   r   r   rI   rJ   r   rK   rN   )r,   rR   rS   r   rO   rn   r   r   r   rF   r
   r   r   rU   rG   r;   r.   r4   r   r9   rW   r   rX   s          r/   get_trace_by_idzRawTracesClient.get_trace_by_id  s    0 ((55== !1"!5 67#%6 , > 
		ti++1c1 ) ) 0 $YUCC&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   AC C ?Dc                   | j                   j                  j                  dt        |       d|      }	 d|j                  cxk  rdk  rn nt        |d      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)	z
        Delete trace by id

        Parameters
        ----------
        id : str

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        r\   DELETErE   r9   rI   rJ   NrK   rN   )r,   rR   rS   r   rO   r
   rF   r   r   rU   rG   r;   r.   r4   r9   rW   rX   s        r/   delete_trace_by_idz"RawTracesClient.delete_trace_by_id  s    " ((55== !1"!5 67+ > 
	
	ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   $B B ?Cr   r   rb   r   r   r   r   r   tags_to_addtags_to_remover   r   r   r9   r   r   c                ^   | j                   j                  j                  dt        |       d||||t	        |t
        d      t	        |t
        d      t	        |t
        d      |	|
|t	        |t        d      ||dddi|t              }	 d	|j                  cxk  rd
k  rn nt        |d      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)aY  
        Update trace by id

        Parameters
        ----------
        id : str

        project_name : typing.Optional[str]
            If null and project_id not specified, Default Project is assumed

        project_id : typing.Optional[str]
            If null and project_name not specified, Default Project is assumed

        name : typing.Optional[str]

        end_time : typing.Optional[dt.datetime]

        input : typing.Optional[JsonListString]

        output : typing.Optional[JsonListString]

        metadata : typing.Optional[JsonListString]

        tags : typing.Optional[typing.Sequence[str]]
            Tags

        tags_to_add : typing.Optional[typing.Sequence[str]]
            Tags to add

        tags_to_remove : typing.Optional[typing.Sequence[str]]
            Tags to remove

        error_info : typing.Optional[ErrorInfo]

        thread_id : typing.Optional[str]

        ttft : typing.Optional[float]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        r\   r   rh   ri   r   r   rb   r   r   r   r   r   r   r   r   r   r   rB   rC   rD   rI   rJ   NrK   rN   )r,   rR   rS   r   r   r   r   rT   rO   r
   rF   r   r   rU   rG   r;   r.   r4   r   r   rb   r   r   r   r   r   r   r   r   r   r   r9   rW   rX   s                     r/   update_tracezRawTracesClient.update_trace  sE   @ ((55== !1"!5 67 ,($@!n B"~ D$7 *"0E&9 '+0  2 ,= > 
	@	ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   $C- 2C- -?D,c                   | j                   j                  j                  ddd|iddi|t              }	 d|j                  cxk  rdk  rn nt        |d	
      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)a  
        Delete thread comments

        Parameters
        ----------
        ids : typing.Sequence[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        )v1/private/traces/threads/comments/deleter@   r}   rB   rC   rD   rI   rJ   NrK   rN   r,   rR   rS   rT   rO   r
   rF   r   r   rU   rG   r;   r.   r}   r9   rW   rX   s        r/   delete_thread_commentsz&RawTracesClient.delete_thread_commentsR  s    " ((55==7s  2 , > 
		ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	t   $B B ?Cauthorr9   namesr   c          	         | j                   j                  j                  dd||||dddi|t              }	 d|j                  cxk  rdk  rn nt        |d	
      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)az  
        Delete thread feedback scores

        Parameters
        ----------
        project_name : str

        thread_id : str

        names : typing.Sequence[str]

        author : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        0v1/private/traces/threads/feedback-scores/deleter@   r   r   r   r   rB   rC   rD   rI   rJ   NrK   rN   r   r.   r   r   r   r   r9   rW   rX   s           r/   delete_thread_feedback_scoresz-RawTracesClient.delete_thread_feedback_scoresw  s    : ((55==> ,& 	  2 , > 
		ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	t   $B B ?Cc                   | j                   j                  j                  ddd|iddi|t              }	 d|j                  cxk  rdk  rn nt        |d	
      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)a  
        Delete trace comments

        Parameters
        ----------
        ids : typing.Sequence[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        !v1/private/traces/comments/deleter@   r}   rB   rC   rD   rI   rJ   NrK   rN   r   r   s        r/   delete_trace_commentsz%RawTracesClient.delete_trace_comments  s    " ((55==/s  2 , > 
		ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	tr   c                   | j                   j                  j                  dt        |       dd||dddi|t              }	 d|j
                  cxk  rd	k  rn nt        |d
      S |j                         }t        |j
                  t        |j                        |      # t        $ r6 t        |j
                  t        |j                        |j                        w xY w)aC  
        Delete trace feedback score

        Parameters
        ----------
        id : str

        name : str

        author : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        r\   /feedback-scores/deleter@   rb   r   rB   rC   rD   rI   rJ   NrK   rN   rQ   r.   r4   rb   r   r9   rW   rX   s          r/   delete_trace_feedback_scorez+RawTracesClient.delete_trace_feedback_score  s    4 ((55== !1"!5 66MN 
  2 , > 
		ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   $B# (B# #?C"r   r   r9   c                   | j                   j                  j                  dd|||dddi|t              }	 d|j                  cxk  rdk  rn nt        |d	
      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)a  
        Delete trace threads

        Parameters
        ----------
        thread_ids : typing.Sequence[str]

        project_name : typing.Optional[str]
            If null, project_id must be provided

        project_id : typing.Optional[str]
            If null, project_name must be provided

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
         v1/private/traces/threads/deleter@   r   r   r   rB   rC   rD   rI   rJ   NrK   rN   r   r.   r   r   r   r9   rW   rX   s          r/   delete_trace_threadsz$RawTracesClient.delete_trace_threads  s    8 ((55==. ,((  2 , > 
		ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   $B B ?Cc                   | j                   j                  j                  ddd|iddi|t              }	 d|j                  cxk  rdk  rn nt        |d	
      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)a  
        Delete traces

        Parameters
        ----------
        ids : typing.Sequence[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        v1/private/traces/deleter@   r}   rB   rC   rD   rI   rJ   NrK   rN   r   r   s        r/   delete_traceszRawTracesClient.delete_traces1  s    " ((55==&s  2 , > 
		ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	tr   r   r9   c                   | j                   j                  j                  ddd|i|      }	 d|j                  cxk  rdk  rGn nDt	        j
                  t        t        t        |j                                     }t        ||      S |j                         }t        |j                  t        |j                        |	      # t        $ r6 t        |j                  t        |j                        |j                  	      w xY w)
aX  
        Find Feedback Score names

        Parameters
        ----------
        project_id : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[FeedbackScoreNamesPublic]
            Feedback Scores resource
        'v1/private/traces/feedback-scores/namesr   r   r   rI   rJ   r   rK   rN   r,   rR   rS   rO   rn   r   r   r   rF   r
   r   r   rU   rG   r;   r.   r   r9   rW   r   rX   s         r/   find_feedback_score_names2z*RawTracesClient.find_feedback_score_names2V  s    $ ((55==5j , > 
		ti++1c1, 6 ) 0 $YUCC&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	t   AC 	C ?Dc                   | j                   j                  j                  ddd|i|      }	 d|j                  cxk  rdk  rGn nDt	        j
                  t        t        t        |j                                     }t        ||      S |j                         }t        |j                  t        |j                        |	      # t        $ r6 t        |j                  t        |j                        |j                  	      w xY w)
au  
        Find Trace Threads Feedback Score names

        Parameters
        ----------
        project_id : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[FeedbackScoreNamesPublic]
            Find Trace Threads Feedback Score names
        /v1/private/traces/threads/feedback-scores/namesr   r   r   rI   rJ   r   rK   rN   r   r   s         r/   'find_trace_threads_feedback_score_namesz7RawTracesClient.find_trace_threads_feedback_score_names  s    $ ((55===j , > 
		ti++1c1, 6 ) 0 $YUCC&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	tr   r   r   r   r   r   r   r9   c                J   | j                   j                  j                  dd|||||t        |      nd|t        |      ndd|      }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }	t        ||		      S |j                         }
t        |j                  t        |j                        |

      # t        $ r6 t        |j                  t        |j                        |j                  
      w xY w)a"  
        Get trace stats

        Parameters
        ----------
        project_id : typing.Optional[str]

        project_name : typing.Optional[str]

        filters : typing.Optional[str]

        search : typing.Optional[str]

        from_time : typing.Optional[dt.datetime]

        to_time : typing.Optional[dt.datetime]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[ProjectStatsPublic]
            Trace stats resource
        v1/private/traces/statsr   Nr   r   r   r   r   r   r   rI   rJ   r   rK   rN   r,   rR   rS   r   rO   rn   r   r   r   rF   r
   r   r   rU   rG   r;   r.   r   r   r   r   r   r   r9   rW   r   rX   s              r/   get_trace_statszRawTracesClient.get_trace_stats  s   H ((55==%( ," >G>S/	:Y]:A:M-g6SW , > 
		ti++1c1& 0 ) 0 $YUCC&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	t   AC# (C# #?D"
comment_idc                j   | j                   j                  j                  dt        |       dt        |       d|      }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }t        ||      S |j                  d	k(  rt        t        |j                        t        j                  t
        j                  t
        j                     t        t
        j                  t
        j                     |j                                     
      |j                         }t#        |j                  t        |j                        |      # t         $ r6 t#        |j                  t        |j                        |j$                        w xY w)a@  
        Get thread comment

        Parameters
        ----------
        thread_id : str

        comment_id : str

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[Comment]
            Comment resource
        r>   
/comments/r   r   rI   rJ   r   rK   r   r   rN   r,   rR   rS   r   rO   rn   r   r   r   rF   r
   r   rU   rG   r   r   r   r   r;   r.   r   r   r9   rW   r   rX   s          r/   get_thread_commentz"RawTracesClient.get_thread_comment  sj   ( ((55==()9))D(EZP`akPlOmn+ > 
	
	ti++1c1 % ) 0 $YUCC$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	t   AE3 B*E3 3?F2c                J   | j                   j                  j                  dd|||||t        |      nd|t        |      ndd|      }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }	t        ||		      S |j                         }
t        |j                  t        |j                        |

      # t        $ r6 t        |j                  t        |j                        |j                  
      w xY w)a0  
        Get trace thread stats

        Parameters
        ----------
        project_id : typing.Optional[str]

        project_name : typing.Optional[str]

        filters : typing.Optional[str]

        search : typing.Optional[str]

        from_time : typing.Optional[dt.datetime]

        to_time : typing.Optional[dt.datetime]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[ProjectStatsPublic]
            Trace thread stats resource
        v1/private/traces/threads/statsr   Nr   r   rI   rJ   r   rK   rN   r   r   s              r/   get_trace_thread_statsz&RawTracesClient.get_trace_thread_stats  s   H ((55==-( ," >G>S/	:Y]:A:M-g6SW , > 
		ti++1c1& 0 ) 0 $YUCC&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	tr   trace_idc                j   | j                   j                  j                  dt        |       dt        |       d|      }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }t        ||      S |j                  d	k(  rt        t        |j                        t        j                  t
        j                  t
        j                     t        t
        j                  t
        j                     |j                                     
      |j                         }t#        |j                  t        |j                        |      # t         $ r6 t#        |j                  t        |j                        |j$                        w xY w)a>  
        Get trace comment

        Parameters
        ----------
        trace_id : str

        comment_id : str

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[Comment]
            Comment resource
        r\   r   r   r   rI   rJ   r   rK   r   r   rN   r   r.   r  r   r9   rW   r   rX   s          r/   get_trace_commentz!RawTracesClient.get_trace_comment[  sj   ( ((55== !1(!; <JGWXbGcFde+ > 
	
	ti++1c1 % ) 0 $YUCC$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	tr  r   r   r   r9   c                V   | j                   j                  j                  dd||||dddi|t              }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                         	            }t        ||
      S |j                  dk(  rt        t        |j                        t        j                  t
        j                  t
        j                     t        t
        j                  t
        j                     |j                         	                  |j                         }t#        |j                  t        |j                        |      # t         $ r6 t#        |j                  t        |j                        |j$                        w xY w)a  
        Get trace thread

        Parameters
        ----------
        thread_id : str

        project_name : typing.Optional[str]

        project_id : typing.Optional[str]

        truncate : typing.Optional[bool]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[TraceThread]
            Trace thread resource
        "v1/private/traces/threads/retriever@   r   r   r   r   rB   rC   rD   rI   rJ   r   rK   r   r   rN   )r,   rR   rS   rT   rO   rn   r   r   r   rF   r
   r   rU   rG   r   r   r   r   r;   	r.   r   r   r   r   r9   rW   r   rX   s	            r/   get_trace_threadz RawTracesClient.get_trace_thread  sq   < ((55==0 ,(&$	  2 , > 
		ti++1c1 ) ) 0 $YUCC$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   AE) B*E) )?F(r   r   r   r   r   r   r   r   r   r   r   r9   c                T   | j                   j                  j                  dd|||||||||	|
t        |
      nd|t        |      ndd|      }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }t        ||	      S |j                         }t        |j                  t        |j                        |
      # t        $ r6 t        |j                  t        |j                        |j                  
      w xY w)a  
        Get trace threads

        Parameters
        ----------
        page : typing.Optional[int]

        size : typing.Optional[int]

        project_name : typing.Optional[str]

        project_id : typing.Optional[str]

        truncate : typing.Optional[bool]

        strip_attachments : typing.Optional[bool]

        filters : typing.Optional[str]

        sorting : typing.Optional[str]

        search : typing.Optional[str]

        from_time : typing.Optional[dt.datetime]

        to_time : typing.Optional[dt.datetime]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[TraceThreadPage]
            Trace threads resource
        v1/private/traces/threadsr   Nr   r   r   r   r   r   r   r   r   r   r   r   rI   rJ   r   rK   rN   )r,   rR   rS   r   rO   rn   r   r!   r   rF   r
   r   r   rU   rG   r;   r.   r   r   r   r   r   r   r   r   r   r   r   r9   rW   r   rX   s                   r/   get_trace_threadsz!RawTracesClient.get_trace_threads  s*   f ((55==' ,($%6"" >G>S/	:Y]:A:M-g6SW ,! > 
	$	ti++1c1# - ) 0 $YUCC&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   AC( -C( (?D'c          	         | j                   j                  j                  dd||||dddi|t              }	 d|j                  cxk  rdk  rn nt        |d	
      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)a  
        Open trace thread

        Parameters
        ----------
        thread_id : str

        project_name : typing.Optional[str]

        project_id : typing.Optional[str]

        truncate : typing.Optional[bool]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        v1/private/traces/threads/openrg   r  rB   rC   rD   rI   rJ   NrK   rN   r   r.   r   r   r   r   r9   rW   rX   s           r/   open_trace_threadz!RawTracesClient.open_trace_thread)  s    : ((55==, ,(&$	  2 , > 
		ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	tr   scoresc          
         | j                   j                  j                  dddt        |t        j
                  t           d      iddi|t              }	 d	|j                  cxk  rd
k  rn nt        |d      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)a=  
        Batch feedback scoring for threads

        Parameters
        ----------
        scores : typing.Sequence[FeedbackScoreBatchItemThread]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        )v1/private/traces/threads/feedback-scoresrg   r  rh   ri   rB   rC   rD   rI   rJ   NrK   rN   )r,   rR   rS   r   rn   rw   r   rT   rO   r
   rF   r   r   rU   rG   r;   r.   r  r9   rW   rX   s        r/   score_batch_of_threadsz&RawTracesClient.score_batch_of_threads]  s    ( ((55==7A"v?[/\ho  2 , > 
		ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	trz   c          
         | j                   j                  j                  dddt        |t        j
                  t           d      iddi|t              }	 d	|j                  cxk  rd
k  rn nt        |d      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)a6  
        Batch feedback scoring for traces

        Parameters
        ----------
        scores : typing.Sequence[FeedbackScoreBatchItem]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        !v1/private/traces/feedback-scoresrg   r  rh   ri   rB   rC   rD   rI   rJ   NrK   rN   )r,   rR   rS   r   rn   rw   r   rT   rO   r
   rF   r   r   rU   rG   r;   r  s        r/   score_batch_of_tracesz%RawTracesClient.score_batch_of_traces  s    ( ((55==/A"v?U/Vbi  2 , > 
		ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	trz   
r   r   r   last_retrieved_thread_model_idlimitr   r   r   r   r9   r$  r%  c       
      #   N  
K   | j                   j                  j                  dd||t        |t        j
                  t           d      ||||||	d	ddi
t              5 d	t        t        j                  t              f
fd
} |        ddd       y# 1 sw Y   yxY ww)aA  
        Search trace threads

        Parameters
        ----------
        project_name : typing.Optional[str]

        project_id : typing.Optional[str]

        filters : typing.Optional[typing.Sequence[TraceThreadFilter]]

        last_retrieved_thread_model_id : typing.Optional[str]

        limit : typing.Optional[int]
            Max number of trace thread to be streamed

        truncate : typing.Optional[bool]
            Truncate input, output and metadata to slim payloads

        strip_attachments : typing.Optional[bool]
            If true, returns attachment references like [file.png]; if false, downloads and reinjects stripped attachments

        from_time : typing.Optional[dt.datetime]
            Filter trace threads created from this time (ISO-8601 format).

        to_time : typing.Optional[dt.datetime]
            Filter trace threads created up to this time (ISO-8601 format). If not provided, defaults to current time. Must be after 'from_time'.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response.

        Returns
        -------
        typing.Iterator[HttpResponse[typing.Iterator[bytes]]]
            Trace threads stream or error during process
         v1/private/traces/threads/searchr@   rh   ri   	r   r   r   r$  r%  r   r   r   r   rB   rC   rD   r<   c                     	 dj                   cxk  rdk  r=n n:j                  dd       nd } t        d j                  |       D              S j	                          j                   dk(  rt        t        j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     j                                     	      j                         }t        j                   t        j                        |
      # t        $ r6 t        j                   t        j                        j                   
      w xY w)NrI   rJ   
chunk_sizec              3       K   | ]  }|  y wr*    .0_chunks     r/   	<genexpr>zGRawTracesClient.search_trace_threads.<locals>.stream.<locals>.<genexpr>        5xKwfKw   r*  rK   r   r   r   rN   )rO   getr
   
iter_bytesreadr   rU   rG   rn   r   r   r   r   rF   r   r   r;   _chunk_sizerX   rW   r9   s     r/   streamz4RawTracesClient.search_trace_threads.<locals>.stream  s=   i339c9Q`Qlo&9&9,&Mrv+%.5x9K_K_kvK_Kw5x   NN$ ,,3-$():):$;!' &

 ; ,*0//&***E,5NN,<!""	 	 &/^^%5N
 9+@+@$yO`O`Jahvww	 ' "$-$9$94	HYHYCZajaoao s   AD: B:D: :?E9N)r,   rR   r9  r   rn   rw   r    rT   r
   Iteratorbytesr.   r   r   r   r$  r%  r   r   r   r   r9   r9  rW   s             ` @r/   search_trace_threadsz$RawTracesClient.search_trace_threads  s     f !!..55. ,(B#@Q0R^e 3Q$%6&"  2 ,) 6 
* xL)?@ x4 (Nc
 
 
   AB%!/B	B%B"B%
r   r   r   last_retrieved_idr%  r   r   r   r   r9   r@  c       
      #   N  
K   | j                   j                  j                  dd||t        |t        j
                  t           d      ||||||	d	ddi
t              5 d	t        t        j                  t              f
fd
} |        ddd       y# 1 sw Y   yxY ww)a  
        Search traces

        Parameters
        ----------
        project_name : typing.Optional[str]

        project_id : typing.Optional[str]

        filters : typing.Optional[typing.Sequence[TraceFilterPublic]]

        last_retrieved_id : typing.Optional[str]

        limit : typing.Optional[int]
            Max number of traces to be streamed

        truncate : typing.Optional[bool]
            Truncate input, output and metadata to slim payloads

        strip_attachments : typing.Optional[bool]
            If true, returns attachment references like [file.png]; if false, downloads and reinjects stripped attachments

        from_time : typing.Optional[dt.datetime]
            Filter traces created from this time (ISO-8601 format).

        to_time : typing.Optional[dt.datetime]
            Filter traces created up to this time (ISO-8601 format). If not provided, defaults to current time. Must be after 'from_time'.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response.

        Returns
        -------
        typing.Iterator[HttpResponse[typing.Iterator[bytes]]]
            Traces stream or error during process
        v1/private/traces/searchr@   rh   ri   	r   r   r   r@  r%  r   r   r   r   rB   rC   rD   r<   c                  ,   	 dj                   cxk  rdk  r=n n:j                  dd       nd } t        d j                  |       D              S j	                          j                   dk(  rt        t        j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     j                                     	      j                   d
k(  rt        t        j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     j                                     	      j                         }t!        j                   t        j                        |      # t        $ r6 t!        j                   t        j                        j"                        w xY w)NrI   rJ   r*  c              3       K   | ]  }|  y wr*   r,  r-  s     r/   r0  z@RawTracesClient.search_traces.<locals>.stream.<locals>.<genexpr>f  r1  r2  r3  rK   r   r   r     rN   )rO   r4  r
   r5  r6  r   rU   rG   rn   r   r   r   r   rF   r   r   r   r;   r7  s     r/   r9  z-RawTracesClient.search_traces.<locals>.streama  s   !i339c9Q`Qlo&9&9,&Mrv+%.5x9K_K_kvK_Kw5x   NN$ ,,3-$():):$;!' &

 ; ,*0//&***E,5NN,<!""	 	 !,,3/$():):$;!' &

 ; ,*0//&***E,5NN,<!""	 	 &/^^%5N
 9+@+@$yO`O`Jahvww	 ' "$-$9$94	HYHYCZajaoao s   AG EG ?HN)r,   rR   r9  r   rn   rw   r   rT   r
   r:  r;  r.   r   r   r   r@  r%  r   r   r   r   r9   r9  rW   s             ` @r/   search_traceszRawTracesClient.search_traces  s     f !!..55& ,(B#@Q0R^e &7$%6&"  2 ,) 6 
* #xL)?@ #xJ (Ny
 
 
r>  r   r   r   r9   thread_model_idc                   | j                   j                  j                  dt        |       d|||dddi|t              }	 d|j
                  cxk  rdk  rn nt        |d	
      S |j
                  dk(  rt        t        |j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j                                           |j                         }t#        |j
                  t        |j                        |      # t         $ r6 t#        |j
                  t        |j                        |j$                        w xY w)a  
        Update thread

        Parameters
        ----------
        thread_model_id : str

        tags : typing.Optional[typing.Sequence[str]]

        tags_to_add : typing.Optional[typing.Sequence[str]]

        tags_to_remove : typing.Optional[typing.Sequence[str]]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        r>   r   r   r   r   rB   rC   rD   rI   rJ   NrK   r   r   r   rN   r,   rR   rS   r   rT   rO   r
   r   rU   rG   rn   r   r   r   r   rF   r   r   r;   r.   rJ  r   r   r   r9   rW   rX   s           r/   update_threadzRawTracesClient.update_thread  sT   : ((55==()9/)J(KL*"0  2 , > 
		ti++1c1#YTBB$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   $D= (B*D= =?E<c                   | j                   j                  j                  dt        |       d||||||dddi|t              }		 d|	j
                  cxk  rdk  rn nt        |	d	
      S |	j
                  dk(  rt        t        |	j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     |	j                                           |	j                         }
t#        |	j
                  t        |	j                        |
      # t         $ r6 t#        |	j
                  t        |	j                        |	j$                        w xY w)a  
        Update thread comment by id

        Parameters
        ----------
        comment_id : str

        text : str

        id : typing.Optional[str]

        created_at : typing.Optional[dt.datetime]

        last_updated_at : typing.Optional[dt.datetime]

        created_by : typing.Optional[str]

        last_updated_by : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        #v1/private/traces/threads/comments/r   rA   rB   rC   rD   rI   rJ   NrK   r   r   r   rN   rM  r.   r   r;   r4   r5   r6   r7   r8   r9   rW   rX   s              r/   update_thread_commentz%RawTracesClient.update_thread_comment  s^   L ((55==12B:2N1OP(#2(#2  2 , > 
	"	ti++1c1#YTBB$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	t   $E  +B*E   ?E?c                   | j                   j                  j                  dt        |       d||||||dddi|t              }		 d|	j
                  cxk  rdk  rn nt        |	d	
      S |	j
                  dk(  rt        t        |	j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     |	j                                           |	j                         }
t#        |	j
                  t        |	j                        |
      # t         $ r6 t#        |	j
                  t        |	j                        |	j$                        w xY w)a  
        Update trace comment by id

        Parameters
        ----------
        comment_id : str

        text : str

        id : typing.Optional[str]

        created_at : typing.Optional[dt.datetime]

        last_updated_at : typing.Optional[dt.datetime]

        created_by : typing.Optional[str]

        last_updated_by : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        v1/private/traces/comments/r   rA   rB   rC   rD   rI   rJ   NrK   r   r   r   rN   rM  rR  s              r/   update_trace_commentz$RawTracesClient.update_trace_comment  s^   L ((55==)*::*F)GH(#2(#2  2 , > 
	"	ti++1c1#YTBB$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	trT  )L__name__
__module____qualname__r   r0   rT   rp   rn   r   dtdatetimer   r
   rY   r]   floatr   ro   r%   rr   rw   r$   ry   r#   boolr   r"   r   r   intr   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  r!   r  r  r   r  r   r"  
contextlibcontextmanagerr    r:  r;  r=  r   rH  rO  rS  rW  r,  r2   r/   r'   r'   ,   s8   .*; . $(378<+/04;?=p=p 	=p
 OOC =p OOBKK0=p  5=p OOC(=p  -=p  8=p 
d	=pH $(378<+/04;?=p=p 	=p
 OOC =p OOBKK0=p  5=p OOC(=p  -=p  8=p 
d	=pL /3'+378<+/04IM;?OpOp 	Op
 Op $Op s+Op $Op OOBKK0Op  5Op OOC(Op  -Op  S*_)EFOp  8Op 
d	Opd jn%p4%pGMWeGf%p	d	%pX -1;?=p __S!=p 	=p
 OOD)=p  8=p 
d	=pH -1;?=p __S!=p "	=p
 OOD)=p  8=p 
d	=pD .2+/*.<@;?=p ooc*=p OOC(	=p
 ??3'=p OOFOOC$89=p  8=p 
d	=pD &*%)-1+/(,*.37(,(,'+2604;?Vp ooc"Vp ooc"	Vp
 ooc*Vp OOC(Vp %Vp //$'Vp "??40Vp %Vp %Vp $Vp ??2;;/Vp -Vp  8Vp  
o	&!Vpx $(-1%)156:7;9=6:6:8<'+*.;?!`p KK`p OOC 	`p
 ooc*`p ooc"`p //"++.`p 23`p  34`p //"56`p oofooc23`p OON3`p  5`p ooe$`p ??3'`p   8!`p" 
d	#`pL 48;?-p-p "??40	-p
  8-p 
k	"-p` NRpp+1??>+Jp	d	pD .2+/%)151526486:=A@D15*.'+;?#fpfp ooc*	fp
 OOC(fp ooc"fp //"++.fp ~.fp /fp //.1fp oofooc23fp __V__S%9:fp (<=fp OOI.fp ??3'fp  ooe$!fp"  8#fp$ 
d	%fpR `d#pooc*#p=C__^=\#p	d	#pV (,;?2p 2p 	2p
 s#2p $2p  82p 
d	2pj `d#pooc*#p=C__^=\#p	d	#pT (,;?-p-p 	-p
 $-p  8-p 
d	-pf .2+/;?0p OOC(0p ooc*	0p
 OOC(0p  80p 
d	0pf `d#pooc*#p=C__^=\#p	d	#pL 59mq'p#__S1'pKQ??[iKj'p	.	/'pT 59mq'p#__S1'pKQ??[iKj'p	.	/'pX ,0-1(,'+2604;?>p OOC(>p ooc*	>p
 %>p $>p ??2;;/>p ->p  8>p 
(	)>pB fj1p1p*-1pCI??SaCb1p	g	1pl ,0-1(,'+2604;?>p OOC(>p ooc*	>p
 %>p $>p ??2;;/>p ->p  8>p 
(	)>pB ei1p1p),1pBH//R`Ba1p	g	1pn .2+/*.;?Ep Ep ooc*	Ep
 OOC(Ep //$'Ep  8Ep 
k	"EpT &*%)-1+/*.37(,(,'+2604;?Rp ooc"Rp ooc"	Rp
 ooc*Rp OOC(Rp //$'Rp "??40Rp %Rp %Rp $Rp ??2;;/Rp -Rp  8Rp 
o	&Rpp .2+/*.;?2p 2p ooc*	2p
 OOC(2p //$'2p  82p 
d	2pp <@	(p  <=(p  8	(p
 
d	(p\ <@	(p  67(p  8	(p
 
d	(pT  .2+/GK?C&**.372604;?c ooc*c OOC(	c
 1B!CDc )/(<c s#c //$'c "??40c ??2;;/c -c  8c 
fooe&<=	>c cJ  .2+/GK26&**.372604;?n ooc*n OOC(	n
 1B!CDn "??3/n s#n //$'n "??40n ??2;;/n -n  8n 
fooe&<=	>n nh 7;=A@D;?<p<p oofooc23	<p
 __V__S%9:<p (<=<p  8<p 
d	<pF $(378<+/04;?HpHp 	Hp
 OOC Hp OOBKK0Hp  5Hp OOC(Hp  -Hp  8Hp 
d	Hp^ $(378<+/04;?HpHp 	Hp
 OOC Hp OOBKK0Hp  5Hp OOC(Hp  -Hp  8Hp 
d	Hpr2   r'   c            "          e Zd ZdefdZeeeeedddededej                  e   dej                  e	j                     d	ej                  e	j                     d
ej                  e   dej                  e   dej                  e   ded   fdZeeeeedddededej                  e   dej                  e	j                     d	ej                  e	j                     d
ej                  e   dej                  e   dej                  e   ded   fdZeeeeeeedddededededej                  e   dej                  e   dej                  e	j                     d	ej                  e	j                     d
ej                  e   dej                  e   dej                  ej"                  eef      dej                  e   ded   fdZdddej(                  e   dej                  e   ded   fdZedddej(                  e   dedej                  e   dej                  e   ded   f
dZedddej(                  e   dedej                  e   dej                  e   ded   f
d Zeeeedd!d"ej                  e   d#ej                  e   d$ej                  e   d%ej                  ej(                  e      dej                  e   ded   fd&Zdddddddddddddd'd(ej                  e   d)ej                  e   d"ej                  e   d#ej                  e   d*ej                  e   d+ej                  e   d,ej                  e   d-ej                  e   d.ej                  e   d/ej                  e   d0ej                  e	j                     d1ej                  e	j                     dej                  e   dee   fd2Zeeeeeeeeeeeedd3d4e	j                  dej                  e   d"ej                  e   dej                  e   d5ej                  e	j                     d6ej                  e    d7ej                  e    d8ej                  e    d9ej                  ej(                  e      d:ej                  e!   d	ej                  e	j                     d;ej                  e   d$ej                  e   dej                  e   ded   fd<Z"ddd=ded,ej                  e   dej                  e   dee#   fd>Z$dddedej                  e   ded   fd?Z%eeeeeeeeeeeeedd@ded"ej                  e   d#ej                  e   dej                  e   d5ej                  e	j                     d6ej                  e&   d7ej                  e&   d8ej                  e&   d9ej                  ej(                  e      dAej                  ej(                  e      dBej                  ej(                  e      d:ej                  e'   d$ej                  e   d;ej                  e   dej                  e   ded   f dCZ(dddej(                  e   dej                  e   ded   fdDZ)eddEd"ed$edFej(                  e   dGej                  e   dej                  e   ded   fdHZ*dddej(                  e   dej                  e   ded   fdIZ+eddEdededGej                  e   dej                  e   ded   f
dJZ,eeddKd%ej(                  e   d"ej                  e   d#ej                  e   dej                  e   ded   f
dLZ-dddej(                  e   dej                  e   ded   fdMZ.dddNd#ej                  e   dej                  e   dee/   fdOZ0dddNd#ej                  e   dej                  e   dee/   fdPZ1ddddddddQd#ej                  e   d"ej                  e   d*ej                  e   d/ej                  e   d0ej                  e	j                     d1ej                  e	j                     dej                  e   dee2   fdRZ3ddd$edSedej                  e   dee4   fdTZ5ddddddddQd#ej                  e   d"ej                  e   d*ej                  e   d/ej                  e   d0ej                  e	j                     d1ej                  e	j                     dej                  e   dee2   fdUZ6dddVedSedej                  e   dee4   fdWZ7eeeddXd$ed"ej                  e   d#ej                  e   d+ej                  e   dej                  e   dee8   fdYZ9dddddddddddddZd(ej                  e   d)ej                  e   d"ej                  e   d#ej                  e   d+ej                  e   d,ej                  e   d*ej                  e   d-ej                  e   d/ej                  e   d0ej                  e	j                     d1ej                  e	j                     dej                  e   dee:   fd[Z;eeeddXd$ed"ej                  e   d#ej                  e   d+ej                  e   dej                  e   ded   fd\Z<ddd]ej(                  e=   dej                  e   ded   fd^Z>ddd]ej(                  e?   dej                  e   ded   fd_Z@eAj                  eeeeeeeeedd`
d"ej                  e   d#ej                  e   d*ej                  ej(                  eC      daej                  e   dbej                  e   d+ej                  e   d,ej                  e   d0ej                  e	j                     d1ej                  e	j                     dej                  e   dej                  eej                  eE         fdc       ZFeAj                  eeeeeeeeeddd
d"ej                  e   d#ej                  e   d*ej                  ej(                  eG      deej                  e   dbej                  e   d+ej                  e   d,ej                  e   d0ej                  e	j                     d1ej                  e	j                     dej                  e   dej                  eej                  eE         fdf       ZHeeeddgdhed9ej                  ej(                  e      dAej                  ej(                  e      dBej                  ej(                  e      dej                  e   ded   fdiZIeeeeedddSededej                  e   dej                  e	j                     d	ej                  e	j                     d
ej                  e   dej                  e   dej                  e   ded   fdjZJeeeeedddSededej                  e   dej                  e	j                     d	ej                  e	j                     d
ej                  e   dej                  e   dej                  e   ded   fdkZKy)lAsyncRawTracesClientr(   c                    || _         y r*   r+   r-   s     r/   r0   zAsyncRawTracesClient.__init__\  r1   r2   Nr3   r:   r;   r4   r5   r6   r7   r8   r9   r<   c                  K   | j                   j                  j                  dt        |       dd||||||dddi|t               d{   }		 d	|	j
                  cxk  rd
k  rn nt        |	d      S |	j                         }
t        |	j
                  t        |	j                        |
      7 e# t        $ r6 t        |	j
                  t        |	j                        |	j                        w xY ww)a  
        Add thread comment

        Parameters
        ----------
        id_ : str

        text : str

        id : typing.Optional[str]

        created_at : typing.Optional[dt.datetime]

        last_updated_at : typing.Optional[dt.datetime]

        created_by : typing.Optional[str]

        last_updated_by : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r>   r?   r@   rA   rB   rC   rD   NrI   rJ   rK   rN   r,   rR   rS   r   rT   rO   r	   rF   r   r   rU   rG   r;   rV   s              r/   rY   z'AsyncRawTracesClient.add_thread_comment_  s    L ..;;CC()9#)>(?yI(#2(#2  2 , D 
 
	"	ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo/
*  	ty'<'<d9K\K\F]dmdrdrss	t6   A	C5B1C5$B3 5C56B3 ,C53?C22C5c                  K   | j                   j                  j                  dt        |       dd||||||dddi|t               d{   }		 d	|	j
                  cxk  rd
k  rn nt        |	d      S |	j                         }
t        |	j
                  t        |	j                        |
      7 e# t        $ r6 t        |	j
                  t        |	j                        |	j                        w xY ww)a  
        Add trace comment

        Parameters
        ----------
        id_ : str

        text : str

        id : typing.Optional[str]

        created_at : typing.Optional[dt.datetime]

        last_updated_at : typing.Optional[dt.datetime]

        created_by : typing.Optional[str]

        last_updated_by : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r\   r?   r@   rA   rB   rC   rD   NrI   rJ   rK   rN   rf  rV   s              r/   r]   z&AsyncRawTracesClient.add_trace_comment  s    L ..;;CC !1#!6 7yA(#2(#2  2 , D 
 
	"	ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo/
*  	ty'<'<d9K\K\F]dmdrdrss	trg  r^   rb   rc   rd   r_   r`   ra   c                D  K   | j                   j                  j                  dt        |       dd||||||||	|
t	        |t
        j                  t        t        f   d      d
ddi|t        	       d
{   }	 d|j                  cxk  rdk  rn nt        |d
      S |j                         }t        |j                  t        |j                         |      7 e# t        $ r6 t        |j                  t        |j                         |j"                        w xY ww)a  
        Add trace feedback score

        Parameters
        ----------
        id : str

        name : str

        value : float

        source : FeedbackScoreSource

        category_name : typing.Optional[str]

        reason : typing.Optional[str]

        created_at : typing.Optional[dt.datetime]

        last_updated_at : typing.Optional[dt.datetime]

        created_by : typing.Optional[str]

        last_updated_by : typing.Optional[str]

        value_by_author : typing.Optional[typing.Dict[str, ValueEntry]]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r\   rf   rg   rh   ri   rm   rB   rC   rD   NrI   rJ   rK   rN   )r,   rR   rS   r   r   rn   ro   rp   r%   rT   rO   r	   rF   r   r   rU   rG   r;   rq   s                  r/   rr   z-AsyncRawTracesClient.add_trace_feedback_score  s,    d ..;;CC !1"!5 66FG!.  (#2(#2#J+CO8T`g$  2 ,+ D 
 
	.	ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo;
6  	ty'<'<d9K\K\F]dmdrdrss	ts6   A4D 6C7D <$C  D !C 1,D ?DD rs   rt   c          
        K   | j                   j                  j                  dddt        |t        j
                  t           d      iddi|t               d	{   }	 d
|j                  cxk  rdk  rn nt        |d	      S |j                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)a  
        Create traces

        Parameters
        ----------
        traces : typing.Sequence[TraceWrite]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        rv   r@   rt   rh   ri   rB   rC   rD   NrI   rJ   rK   rN   )r,   rR   rS   r   rn   rw   r$   rT   rO   r	   rF   r   r   rU   rG   r;   rx   s        r/   ry   z"AsyncRawTracesClient.create_traces.	  s     " ..;;CC%A"vz/JV]  2 , D 
 
		ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo)
$  	ty'<'<d9K\K\F]dmdrdrss	t6   ADC D $C DC ,D?DDr{   r}   r~   r|   c                "  K   | j                   j                  j                  dd|t        |t        d      |dddi|t
               d	{   }	 d
|j                  cxk  rdk  rn nt        |d	      S |j                  dk(  rt        t        |j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j!                                           |j!                         }t%        |j                  t        |j                        |      7 # t"        $ r6 t%        |j                  t        |j                        |j&                        w xY ww)a  
        Update multiple traces

        Parameters
        ----------
        ids : typing.Sequence[str]
            List of trace IDs to update (max 1000)

        update : TraceUpdate

        merge_tags : typing.Optional[bool]
            If true, merge tags with existing tags instead of replacing them. Default: false

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        rv   r   rh   ri   r   rB   rC   rD   NrI   rJ   rK   r   r   r   rN   )r,   rR   rS   r   r#   rT   rO   r	   r   rU   rG   rn   r   r   r   r   rF   r   r   r;   r   s          r/   r   z(AsyncRawTracesClient.batch_update_tracesU	  sc    8 ..;;CC%A"{g )  2 , D 
 
	 	ti++1c1()$GG$$+% !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooC
>  	ty'<'<d9K\K\F]dmdrdrss	t7   A	FEF$E 5F6B*E  ,F?FFc                "  K   | j                   j                  j                  dd|t        |t        d      |dddi|t
               d	{   }	 d
|j                  cxk  rdk  rn nt        |d	      S |j                  dk(  rt        t        |j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j!                                           |j!                         }t%        |j                  t        |j                        |      7 # t"        $ r6 t%        |j                  t        |j                        |j&                        w xY ww)a  
        Update multiple threads

        Parameters
        ----------
        ids : typing.Sequence[str]
            List of thread model IDs to update (max 1000)

        update : TraceThreadUpdate

        merge_tags : typing.Optional[bool]
            If true, merge tags with existing tags instead of replacing them. Default: false

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r   r   rh   ri   r   rB   rC   rD   NrI   rJ   rK   r   r   r   rN   )r,   rR   rS   r   r"   rT   rO   r	   r   rU   rG   rn   r   r   r   r   rF   r   r   r;   r   s          r/   r   z)AsyncRawTracesClient.batch_update_threads	  sd    8 ..;;CC-A"/@G )  2 , D 
 
	 	ti++1c1()$GG$$+% !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooC
>  	ty'<'<d9K\K\F]dmdrdrss	trm  r   r   r   r   r   c                  K   | j                   j                  j                  dd||||dddi|t               d{   }	 d|j                  cxk  rd	k  rn nt        |d
      S |j                  dk(  rt        t        |j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j                                           |j                         }t!        |j                  t        |j                        |      7 # t        $ r6 t!        |j                  t        |j                        |j"                        w xY ww)a  
        Close one or multiple trace threads. Supports both single thread_id and multiple thread_ids for batch operations.

        Parameters
        ----------
        project_name : typing.Optional[str]

        project_id : typing.Optional[str]

        thread_id : typing.Optional[str]

        thread_ids : typing.Optional[typing.Sequence[str]]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r   rg   r   rB   rC   rD   NrI   rJ   rK   r   r   r   rN   )r,   rR   rS   rT   rO   r	   r   rU   rG   rn   r   r   r   r   rF   r   r   r;   r   s           r/   r   z'AsyncRawTracesClient.close_trace_thread	  sX    : ..;;CC- ,(&(	  2 , D 
 
		ti++1c1()$GG$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooA
<  	ty'<'<d9K\K\F]dmdrdrss	ts4   :F D<F $D> &F 'B*D> ,F >?E==F r   r   r   r   r   r   r   r   r   r   r   c                r  K   | j                   j                  j                  dd|||||||||	|
|t        |      nd|t        |      ndd|       d{   }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }t        ||	      S |j                         }t        |j                  t        |j                        |
      7 # t        $ r6 t        |j                  t        |j                        |j                  
      w xY ww)a.  
        Get traces by project_name or project_id

        Parameters
        ----------
        page : typing.Optional[int]

        size : typing.Optional[int]

        project_name : typing.Optional[str]

        project_id : typing.Optional[str]

        filters : typing.Optional[str]

        truncate : typing.Optional[bool]

        strip_attachments : typing.Optional[bool]

        sorting : typing.Optional[str]

        exclude : typing.Optional[str]

        search : typing.Optional[str]

        from_time : typing.Optional[dt.datetime]

        to_time : typing.Optional[dt.datetime]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[TracePagePublic]
            Trace resource
        r   r   Nr   r   rI   rJ   r   rK   rN   )r,   rR   rS   r   rO   rn   r   r   r   rF   r	   r   r   rU   rG   r;   r   s                    r/   r   z*AsyncRawTracesClient.get_traces_by_project
  s<    l ..;;CC ,("$%6"" >G>S/	:Y]:A:M-g6SW ,# D 
 
	&	ti++1c1# - ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`nooA
<  	ty'<'<d9K\K\F]dmdrdrss	ts7   AD7C3D7AC5 7D78C5 ,D75?D44D7r   r   r   r   r   r   r   r   r   c                b  K   | j                   j                  j                  dd|||||t        |t        d      t        |t        d      t        |t        d      |	t        |
t
        d      |||dddi|t               d	{   }	 d
|j                  cxk  rdk  rn nt        |d	      S |j                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)a  
        Get trace

        Parameters
        ----------
        start_time : dt.datetime

        id : typing.Optional[str]

        project_name : typing.Optional[str]
            If null, the default project is used

        name : typing.Optional[str]

        end_time : typing.Optional[dt.datetime]

        input : typing.Optional[JsonListStringWrite]

        output : typing.Optional[JsonListStringWrite]

        metadata : typing.Optional[JsonListStringWrite]

        tags : typing.Optional[typing.Sequence[str]]

        error_info : typing.Optional[ErrorInfoWrite]

        last_updated_at : typing.Optional[dt.datetime]

        ttft : typing.Optional[float]
            Time to first token in milliseconds

        thread_id : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r   r@   rh   ri   r   rB   rC   rD   NrI   rJ   rK   rN   )r,   rR   rS   r   r   r   rT   rO   r	   rF   r   r   rU   rG   r;   r   s                    r/   r   z!AsyncRawTracesClient.create_tracej
  sK    t ..;;CC ,($@!.AW B"/Bg D$1DPW E&>W $3&+0  2 ,= D 
 
	@	ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`nooM
H  	ty'<'<d9K\K\F]dmdrdrss	ts6   BD/C+D/$C- /D/0C-  ,D/-?D,,D/r   c                @  K   | j                   j                  j                  dt        |       dd|i|       d{   }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }t        ||	      S |j                         }t        |j                  t        |j                        |
      7 # t        $ r6 t        |j                  t        |j                        |j                  
      w xY ww)aV  
        Get trace by id

        Parameters
        ----------
        id : str

        strip_attachments : typing.Optional[bool]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[TracePublic]
            Trace resource
        r\   r   r   r   NrI   rJ   r   rK   rN   )r,   rR   rS   r   rO   rn   r   r   r   rF   r	   r   r   rU   rG   r;   r   s          r/   r   z$AsyncRawTracesClient.get_trace_by_id
  s    0 ..;;CC !1"!5 67#%6 , D 
 
		ti++1c1 ) ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo+
&  	ty'<'<d9K\K\F]dmdrdrss	ts4   ;DCDAC DC /,D?DDc                  K   | j                   j                  j                  dt        |       d|       d{   }	 d|j                  cxk  rdk  rn nt        |d      S |j                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)	a  
        Delete trace by id

        Parameters
        ----------
        id : str

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r\   r   r   NrI   rJ   rK   rN   )r,   rR   rS   r   rO   r	   rF   r   r   rU   rG   r;   r   s        r/   r   z'AsyncRawTracesClient.delete_trace_by_id
  s     " ..;;CC !1"!5 67+ D 
 
	
	ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo
  	ty'<'<d9K\K\F]dmdrdrss	ts3   8C$B C$ $B" $C$%B" 5,C$"?C!!C$r   r   r   c                z  K   | j                   j                  j                  dt        |       d||||t	        |t
        d      t	        |t
        d      t	        |t
        d      |	|
|t	        |t        d      ||dddi|t               d	{   }	 d
|j                  cxk  rdk  rn nt        |d	      S |j                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)a^  
        Update trace by id

        Parameters
        ----------
        id : str

        project_name : typing.Optional[str]
            If null and project_id not specified, Default Project is assumed

        project_id : typing.Optional[str]
            If null and project_name not specified, Default Project is assumed

        name : typing.Optional[str]

        end_time : typing.Optional[dt.datetime]

        input : typing.Optional[JsonListString]

        output : typing.Optional[JsonListString]

        metadata : typing.Optional[JsonListString]

        tags : typing.Optional[typing.Sequence[str]]
            Tags

        tags_to_add : typing.Optional[typing.Sequence[str]]
            Tags to add

        tags_to_remove : typing.Optional[typing.Sequence[str]]
            Tags to remove

        error_info : typing.Optional[ErrorInfo]

        thread_id : typing.Optional[str]

        ttft : typing.Optional[float]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r\   r   rh   ri   r   rB   rC   rD   NrI   rJ   rK   rN   )r,   rR   rS   r   r   r   r   rT   rO   r	   rF   r   r   rU   rG   r;   r   s                     r/   r   z!AsyncRawTracesClient.update_trace  sU    @ ..;;CC !1"!5 67 ,($@!n B"~ D$7 *"0E&9 '+0  2 ,= D 
 
	@	ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`nooM
H  	ty'<'<d9K\K\F]dmdrdrss	ts6   BD;C7D;$C9 ;D;<C9 ,D;9?D88D;c                  K   | j                   j                  j                  ddd|iddi|t               d{   }	 d|j                  cxk  rd	k  rn nt        |d
      S |j                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)a  
        Delete thread comments

        Parameters
        ----------
        ids : typing.Sequence[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r   r@   r}   rB   rC   rD   NrI   rJ   rK   rN   r,   rR   rS   rT   rO   r	   rF   r   r   rU   rG   r;   r   s        r/   r   z+AsyncRawTracesClient.delete_thread_comments  s     " ..;;CC7s  2 , D 
 
		ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo%
   	ty'<'<d9K\K\F]dmdrdrss	t2   7C#BC#$B! #C#$B! 4,C#!?C  C#r   r   r   c          	        K   | j                   j                  j                  dd||||dddi|t               d{   }	 d|j                  cxk  rd	k  rn nt        |d
      S |j                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)a  
        Delete thread feedback scores

        Parameters
        ----------
        project_name : str

        thread_id : str

        names : typing.Sequence[str]

        author : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r   r@   r   rB   rC   rD   NrI   rJ   rK   rN   rv  r   s           r/   r   z2AsyncRawTracesClient.delete_thread_feedback_scores  s     : ..;;CC> ,& 	  2 , D 
 
		ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo+
&  	ty'<'<d9K\K\F]dmdrdrss	t3   :C&B"C&$B$ &C&'B$ 7,C&$?C##C&c                  K   | j                   j                  j                  ddd|iddi|t               d{   }	 d|j                  cxk  rd	k  rn nt        |d
      S |j                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)a  
        Delete trace comments

        Parameters
        ----------
        ids : typing.Sequence[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r   r@   r}   rB   rC   rD   NrI   rJ   rK   rN   rv  r   s        r/   r   z*AsyncRawTracesClient.delete_trace_comments  s     " ..;;CC/s  2 , D 
 
		ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo%
   	ty'<'<d9K\K\F]dmdrdrss	trw  c                  K   | j                   j                  j                  dt        |       dd||dddi|t               d{   }	 d	|j
                  cxk  rd
k  rn nt        |d      S |j                         }t        |j
                  t        |j                        |      7 e# t        $ r6 t        |j
                  t        |j                        |j                        w xY ww)aH  
        Delete trace feedback score

        Parameters
        ----------
        id : str

        name : str

        author : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r\   r   r@   r   rB   rC   rD   NrI   rJ   rK   rN   rf  r   s          r/   r   z0AsyncRawTracesClient.delete_trace_feedback_score  s     4 ..;;CC !1"!5 66MN 
  2 , D 
 
		ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo'
"  	ty'<'<d9K\K\F]dmdrdrss	ts6   AC1B-C1$B/ 1C12B/ ,C1/?C..C1r   c                  K   | j                   j                  j                  dd|||dddi|t               d{   }	 d|j                  cxk  rd	k  rn nt        |d
      S |j                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)a  
        Delete trace threads

        Parameters
        ----------
        thread_ids : typing.Sequence[str]

        project_name : typing.Optional[str]
            If null, project_id must be provided

        project_id : typing.Optional[str]
            If null, project_name must be provided

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r   r@   r   rB   rC   rD   NrI   rJ   rK   rN   rv  r   s          r/   r   z)AsyncRawTracesClient.delete_trace_threads.  s     8 ..;;CC. ,((  2 , D 
 
		ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo)
$  	ty'<'<d9K\K\F]dmdrdrss	ts3   9C%B!C%$B# %C%&B# 6,C%#?C""C%c                  K   | j                   j                  j                  ddd|iddi|t               d{   }	 d|j                  cxk  rd	k  rn nt        |d
      S |j                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)a  
        Delete traces

        Parameters
        ----------
        ids : typing.Sequence[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r   r@   r}   rB   rC   rD   NrI   rJ   rK   rN   rv  r   s        r/   r   z"AsyncRawTracesClient.delete_traces`  s     " ..;;CC&s  2 , D 
 
		ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo%
   	ty'<'<d9K\K\F]dmdrdrss	trw  r   c                (  K   | j                   j                  j                  ddd|i|       d{   }	 d|j                  cxk  rdk  rGn nDt	        j
                  t        t        t        |j                                     }t        ||	      S |j                         }t        |j                  t        |j                        |
      7 # t        $ r6 t        |j                  t        |j                        |j                  
      w xY ww)a]  
        Find Feedback Score names

        Parameters
        ----------
        project_id : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[FeedbackScoreNamesPublic]
            Feedback Scores resource
        r   r   r   r   NrI   rJ   r   rK   rN   r,   rR   rS   rO   rn   r   r   r   rF   r	   r   r   rU   rG   r;   r   s         r/   r   z/AsyncRawTracesClient.find_feedback_score_names2  s     $ ..;;CC5j , D 
 
		ti++1c1, 6 ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo+
&  	ty'<'<d9K\K\F]dmdrdrss	t3   /DCDAC DC #,D?DDc                (  K   | j                   j                  j                  ddd|i|       d{   }	 d|j                  cxk  rdk  rGn nDt	        j
                  t        t        t        |j                                     }t        ||	      S |j                         }t        |j                  t        |j                        |
      7 # t        $ r6 t        |j                  t        |j                        |j                  
      w xY ww)az  
        Find Trace Threads Feedback Score names

        Parameters
        ----------
        project_id : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[FeedbackScoreNamesPublic]
            Find Trace Threads Feedback Score names
        r   r   r   r   NrI   rJ   r   rK   rN   r  r   s         r/   r   z<AsyncRawTracesClient.find_trace_threads_feedback_score_names  s     $ ..;;CC=j , D 
 
		ti++1c1, 6 ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo+
&  	ty'<'<d9K\K\F]dmdrdrss	tr  r   c                f  K   | j                   j                  j                  dd|||||t        |      nd|t        |      ndd|       d{   }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }	t        ||		      S |j                         }
t        |j                  t        |j                        |

      7 # t        $ r6 t        |j                  t        |j                        |j                  
      w xY ww)a'  
        Get trace stats

        Parameters
        ----------
        project_id : typing.Optional[str]

        project_name : typing.Optional[str]

        filters : typing.Optional[str]

        search : typing.Optional[str]

        from_time : typing.Optional[dt.datetime]

        to_time : typing.Optional[dt.datetime]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[ProjectStatsPublic]
            Trace stats resource
        r   r   Nr   r   rI   rJ   r   rK   rN   r,   rR   rS   r   rO   rn   r   r   r   rF   r	   r   r   rU   rG   r;   r   s              r/   r   z$AsyncRawTracesClient.get_trace_stats  s)    H ..;;CC%( ," >G>S/	:Y]:A:M-g6SW , D 
 
		ti++1c1& 0 ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo5
0  	ty'<'<d9K\K\F]dmdrdrss	t7   AD1C-D1AC/ 1D12C/ ,D1/?D..D1r   c                  K   | j                   j                  j                  dt        |       dt        |       d|       d{   }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }t        ||	      S |j                  d
k(  rt        t        |j                        t        j                  t
        j                  t
        j                     t        t
        j                  t
        j                     |j                                           |j                         }t#        |j                  t        |j                        |      7 7# t         $ r6 t#        |j                  t        |j                        |j$                        w xY ww)aE  
        Get thread comment

        Parameters
        ----------
        thread_id : str

        comment_id : str

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[Comment]
            Comment resource
        r>   r   r   r   NrI   rJ   r   rK   r   r   rN   r,   rR   rS   r   rO   rn   r   r   r   rF   r	   r   rU   rG   r   r   r   r   r;   r  s          r/   r  z'AsyncRawTracesClient.get_thread_comment  sx    ( ..;;CC()9))D(EZP`akPlOmn+ D 
 
	
	ti++1c1 % ) 0 ))%HH$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo;
6  	ty'<'<d9K\K\F]dmdrdrss	t8   AGE=GAF  'G(B*F  ,G ?F??Gc                f  K   | j                   j                  j                  dd|||||t        |      nd|t        |      ndd|       d{   }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }	t        ||		      S |j                         }
t        |j                  t        |j                        |

      7 # t        $ r6 t        |j                  t        |j                        |j                  
      w xY ww)a5  
        Get trace thread stats

        Parameters
        ----------
        project_id : typing.Optional[str]

        project_name : typing.Optional[str]

        filters : typing.Optional[str]

        search : typing.Optional[str]

        from_time : typing.Optional[dt.datetime]

        to_time : typing.Optional[dt.datetime]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[ProjectStatsPublic]
            Trace thread stats resource
        r  r   Nr   r   rI   rJ   r   rK   rN   r  r   s              r/   r  z+AsyncRawTracesClient.get_trace_thread_statsJ  s)    H ..;;CC-( ," >G>S/	:Y]:A:M-g6SW , D 
 
		ti++1c1& 0 ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo5
0  	ty'<'<d9K\K\F]dmdrdrss	tr  r  c                  K   | j                   j                  j                  dt        |       dt        |       d|       d{   }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }t        ||	      S |j                  d
k(  rt        t        |j                        t        j                  t
        j                  t
        j                     t        t
        j                  t
        j                     |j                                           |j                         }t#        |j                  t        |j                        |      7 7# t         $ r6 t#        |j                  t        |j                        |j$                        w xY ww)aC  
        Get trace comment

        Parameters
        ----------
        trace_id : str

        comment_id : str

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[Comment]
            Comment resource
        r\   r   r   r   NrI   rJ   r   rK   r   r   rN   r  r	  s          r/   r
  z&AsyncRawTracesClient.get_trace_comment  sx    ( ..;;CC !1(!; <JGWXbGcFde+ D 
 
	
	ti++1c1 % ) 0 ))%HH$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo;
6  	ty'<'<d9K\K\F]dmdrdrss	tr  r  c                t  K   | j                   j                  j                  dd||||dddi|t               d{   }	 d|j                  cxk  rd	k  rGn nDt        j                  t        t        t        |j                         
            }t        ||      S |j                  dk(  rt        t        |j                        t        j                  t
        j                  t
        j                     t        t
        j                  t
        j                     |j                         
                  |j                         }t#        |j                  t        |j                        |      7 7# t         $ r6 t#        |j                  t        |j                        |j$                        w xY ww)a  
        Get trace thread

        Parameters
        ----------
        thread_id : str

        project_name : typing.Optional[str]

        project_id : typing.Optional[str]

        truncate : typing.Optional[bool]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[TraceThread]
            Trace thread resource
        r  r@   r  rB   rC   rD   NrI   rJ   r   rK   r   r   rN   )r,   rR   rS   rT   rO   rn   r   r   r   rF   r	   r   rU   rG   r   r   r   r   r;   r  s	            r/   r  z%AsyncRawTracesClient.get_trace_thread  s    < ..;;CC0 ,(&$	  2 , D 
 
		ti++1c1 ) ) 0 ))%HH$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooO
J  	ty'<'<d9K\K\F]dmdrdrss	ts5   :F8E3F8AE6 F8B*E6 ,F86?F55F8r  c                p  K   | j                   j                  j                  dd|||||||||	|
t        |
      nd|t        |      ndd|       d{   }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }t        ||	      S |j                         }t        |j                  t        |j                        |
      7 # t        $ r6 t        |j                  t        |j                        |j                  
      w xY ww)a  
        Get trace threads

        Parameters
        ----------
        page : typing.Optional[int]

        size : typing.Optional[int]

        project_name : typing.Optional[str]

        project_id : typing.Optional[str]

        truncate : typing.Optional[bool]

        strip_attachments : typing.Optional[bool]

        filters : typing.Optional[str]

        sorting : typing.Optional[str]

        search : typing.Optional[str]

        from_time : typing.Optional[dt.datetime]

        to_time : typing.Optional[dt.datetime]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[TraceThreadPage]
            Trace threads resource
        r  r   Nr  r   rI   rJ   r   rK   rN   )r,   rR   rS   r   rO   rn   r   r!   r   rF   r	   r   r   rU   rG   r;   r  s                   r/   r  z&AsyncRawTracesClient.get_trace_threads  s8    f ..;;CC' ,($%6"" >G>S/	:Y]:A:M-g6SW ,! D 
 
	$	ti++1c1# - ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo?
:  	ty'<'<d9K\K\F]dmdrdrss	ts7   AD6C2D6AC4 6D67C4 ,D64?D33D6c          	        K   | j                   j                  j                  dd||||dddi|t               d{   }	 d|j                  cxk  rd	k  rn nt        |d
      S |j                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)a  
        Open trace thread

        Parameters
        ----------
        thread_id : str

        project_name : typing.Optional[str]

        project_id : typing.Optional[str]

        truncate : typing.Optional[bool]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r  rg   r  rB   rC   rD   NrI   rJ   rK   rN   rv  r  s           r/   r  z&AsyncRawTracesClient.open_trace_threadX  s     : ..;;CC, ,(&$	  2 , D 
 
		ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo+
&  	ty'<'<d9K\K\F]dmdrdrss	try  r  c          
        K   | j                   j                  j                  dddt        |t        j
                  t           d      iddi|t               d	{   }	 d
|j                  cxk  rdk  rn nt        |d	      S |j                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)aB  
        Batch feedback scoring for threads

        Parameters
        ----------
        scores : typing.Sequence[FeedbackScoreBatchItemThread]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r  rg   r  rh   ri   rB   rC   rD   NrI   rJ   rK   rN   )r,   rR   rS   r   rn   rw   r   rT   rO   r	   rF   r   r   rU   rG   r;   r  s        r/   r  z+AsyncRawTracesClient.score_batch_of_threads  s     ( ..;;CC7A"v?[/\ho  2 , D 
 
		ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo)
$  	ty'<'<d9K\K\F]dmdrdrss	trk  c          
        K   | j                   j                  j                  dddt        |t        j
                  t           d      iddi|t               d	{   }	 d
|j                  cxk  rdk  rn nt        |d	      S |j                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)a;  
        Batch feedback scoring for traces

        Parameters
        ----------
        scores : typing.Sequence[FeedbackScoreBatchItem]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r!  rg   r  rh   ri   rB   rC   rD   NrI   rJ   rK   rN   )r,   rR   rS   r   rn   rw   r   rT   rO   r	   rF   r   r   rU   rG   r;   r  s        r/   r"  z*AsyncRawTracesClient.score_batch_of_traces  s     ( ..;;CC/A"v?U/Vbi  2 , D 
 
		ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo)
$  	ty'<'<d9K\K\F]dmdrdrss	trk  r#  r$  r%  c       
          
K   | j                   j                  j                  dd||t        |t        j
                  t           d      ||||||	d	ddi
t              4 d	{   d
t        t        j                  t              f
fd} |        d	{    d	d	d	      d	{    y	7 L7 7 	# 1 d	{  7  sw Y   y	xY ww)aP  
        Search trace threads

        Parameters
        ----------
        project_name : typing.Optional[str]

        project_id : typing.Optional[str]

        filters : typing.Optional[typing.Sequence[TraceThreadFilter]]

        last_retrieved_thread_model_id : typing.Optional[str]

        limit : typing.Optional[int]
            Max number of trace thread to be streamed

        truncate : typing.Optional[bool]
            Truncate input, output and metadata to slim payloads

        strip_attachments : typing.Optional[bool]
            If true, returns attachment references like [file.png]; if false, downloads and reinjects stripped attachments

        from_time : typing.Optional[dt.datetime]
            Filter trace threads created from this time (ISO-8601 format).

        to_time : typing.Optional[dt.datetime]
            Filter trace threads created up to this time (ISO-8601 format). If not provided, defaults to current time. Must be after 'from_time'.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response.

        Returns
        -------
        typing.AsyncIterator[AsyncHttpResponse[typing.AsyncIterator[bytes]]]
            Trace threads stream or error during process
        r'  r@   rh   ri   r(  rB   rC   rD   Nr<   c                    K   	 dj                   cxk  rdk  r=n n:j                  dd       nd } t        d j                  |       2              S j	                          d {    j                   dk(  rt        t        j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     j                                     	      j                         }t        j                   t        j                        |
      7 # t        $ r6 t        j                   t        j                        j                   
      w xY ww)NrI   rJ   r*  c                2   K   | 3 d {   }| 7 
6 y wr*   r,  r-  s     r/   r0  zLAsyncRawTracesClient.search_trace_threads.<locals>.stream.<locals>.<genexpr>0       !k!k6&!k!k   r3  rK   r   r   r   rN   )rO   r4  r	   aiter_bytesareadr   rU   rG   rn   r   r   r   r   rF   r   r   r;   r7  s     r/   r9  z9AsyncRawTracesClient.search_trace_threads.<locals>.stream*  sK    i339c9Q`Qlo&9&9,&Mrv0%.!kY=R=R^i=R=j!k   $//+++ ,,3-$():):$;!' &

 ; ,*0//&***E,5NN,<!""	 	 &/^^%5N
 9+@+@$yO`O`Jahvww# , ' "$-$9$94	HYHYCZajaoao s<   FAE FE *E+B.E +FE ?FF)r,   rR   r9  r   rn   rw   r    rT   r	   AsyncIteratorr;  r<  s             ` @r/   r=  z)AsyncRawTracesClient.search_trace_threads  s     f ''44;;. ,(B#@Q0R^e 3Q$%6&"  2 ,) < 
 
* x"3F4H4H4O"P x6 . e
 
 
d !e
 
 
 
Z   A!C%B2&C)0B8B4B8!C,B6-C4B86C8C
>C?C
Cr?  r@  c       
          
K   | j                   j                  j                  dd||t        |t        j
                  t           d      ||||||	d	ddi
t              4 d	{   d
t        t        j                  t              f
fd} |        d	{    d	d	d	      d	{    y	7 L7 7 	# 1 d	{  7  sw Y   y	xY ww)a!  
        Search traces

        Parameters
        ----------
        project_name : typing.Optional[str]

        project_id : typing.Optional[str]

        filters : typing.Optional[typing.Sequence[TraceFilterPublic]]

        last_retrieved_id : typing.Optional[str]

        limit : typing.Optional[int]
            Max number of traces to be streamed

        truncate : typing.Optional[bool]
            Truncate input, output and metadata to slim payloads

        strip_attachments : typing.Optional[bool]
            If true, returns attachment references like [file.png]; if false, downloads and reinjects stripped attachments

        from_time : typing.Optional[dt.datetime]
            Filter traces created from this time (ISO-8601 format).

        to_time : typing.Optional[dt.datetime]
            Filter traces created up to this time (ISO-8601 format). If not provided, defaults to current time. Must be after 'from_time'.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response.

        Returns
        -------
        typing.AsyncIterator[AsyncHttpResponse[typing.AsyncIterator[bytes]]]
            Traces stream or error during process
        rB  r@   rh   ri   rC  rB   rC   rD   Nr<   c                  J  K   	 dj                   cxk  rdk  r=n n:j                  dd       nd } t        d j                  |       2              S j	                          d {    j                   dk(  rt        t        j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     j                                     	      j                   d
k(  rt        t        j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     j                                     	      j                         }t!        j                   t        j                        |      7 t# t        $ r6 t!        j                   t        j                        j"                        w xY ww)NrI   rJ   r*  c                2   K   | 3 d {   }| 7 
6 y wr*   r,  r-  s     r/   r0  zEAsyncRawTracesClient.search_traces.<locals>.stream.<locals>.<genexpr>  r  r  r3  rK   r   r   r   rF  rN   )rO   r4  r	   r  r  r   rU   rG   rn   r   r   r   r   rF   r   r   r   r;   r7  s     r/   r9  z2AsyncRawTracesClient.search_traces.<locals>.stream  s    "i339c9Q`Qlo&9&9,&Mrv0%.!kY=R=R^i=R=j!k   $//+++ ,,3-$():):$;!' &

 ; ,*0//&***E,5NN,<!""	 	 !,,3/$():):$;!' &

 ; ,*0//&***E,5NN,<!""	 	 &/^^%5N
 9+@+@$yO`O`Jahvww9 ,0 ' "$-$9$94	HYHYCZajaoao s<   H#AG! H#G! *G+EG! 3+H#G! !?H  H#)r,   rR   r9  r   rn   rw   r   rT   r	   r  r;  rG  s             ` @r/   rH  z"AsyncRawTracesClient.search_tracesG  s     f ''44;;& ,(B#@Q0R^e &7$%6&"  2 ,) < 
 
* $x"3F4H4H4O"P $xL . {
 
 
z !{
 
 
 
r  rI  rJ  c                  K   | j                   j                  j                  dt        |       d|||dddi|t               d{   }	 d|j
                  cxk  rd	k  rn nt        |d
      S |j
                  dk(  rt        t        |j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j                                           |j                         }t#        |j
                  t        |j                        |      7 # t         $ r6 t#        |j
                  t        |j                        |j$                        w xY ww)a  
        Update thread

        Parameters
        ----------
        thread_model_id : str

        tags : typing.Optional[typing.Sequence[str]]

        tags_to_add : typing.Optional[typing.Sequence[str]]

        tags_to_remove : typing.Optional[typing.Sequence[str]]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r>   r   rL  rB   rC   rD   NrI   rJ   rK   r   r   r   rN   r,   rR   rS   r   rT   rO   r	   r   rU   rG   rn   r   r   r   r   rF   r   r   r;   rN  s           r/   rO  z"AsyncRawTracesClient.update_thread  sb    : ..;;CC()9/)J(KL*"0  2 , D 
 
		ti++1c1()$GG$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo?
:  	ty'<'<d9K\K\F]dmdrdrss	ts7   AFEF$E	 1F2B*E	 ,F	?FFc                   K   | j                   j                  j                  dt        |       d||||||dddi|t               d{   }		 d|	j
                  cxk  rd	k  rn nt        |	d
      S |	j
                  dk(  rt        t        |	j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     |	j                                           |	j                         }
t#        |	j
                  t        |	j                        |
      7 # t         $ r6 t#        |	j
                  t        |	j                        |	j$                        w xY ww)a  
        Update thread comment by id

        Parameters
        ----------
        comment_id : str

        text : str

        id : typing.Optional[str]

        created_at : typing.Optional[dt.datetime]

        last_updated_at : typing.Optional[dt.datetime]

        created_by : typing.Optional[str]

        last_updated_by : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        rQ  r   rA   rB   rC   rD   NrI   rJ   rK   r   r   r   rN   r  rR  s              r/   rS  z*AsyncRawTracesClient.update_thread_comment  sn    L ..;;CC12B:2N1OP(#2(#2  2 , D 
 
	"	ti++1c1()$GG$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooE
@  	ty'<'<d9K\K\F]dmdrdrss	t7   AF
E
F$E 4F5B*E ,F?FFc                   K   | j                   j                  j                  dt        |       d||||||dddi|t               d{   }		 d|	j
                  cxk  rd	k  rn nt        |	d
      S |	j
                  dk(  rt        t        |	j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     |	j                                           |	j                         }
t#        |	j
                  t        |	j                        |
      7 # t         $ r6 t#        |	j
                  t        |	j                        |	j$                        w xY ww)a  
        Update trace comment by id

        Parameters
        ----------
        comment_id : str

        text : str

        id : typing.Optional[str]

        created_at : typing.Optional[dt.datetime]

        last_updated_at : typing.Optional[dt.datetime]

        created_by : typing.Optional[str]

        last_updated_by : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        rV  r   rA   rB   rC   rD   NrI   rJ   rK   r   r   r   rN   r  rR  s              r/   rW  z)AsyncRawTracesClient.update_trace_commentA  sn    L ..;;CC)*::*F)GH(#2(#2  2 , D 
 
	"	ti++1c1()$GG$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooE
@  	ty'<'<d9K\K\F]dmdrdrss	tr  )LrX  rY  rZ  r   r0   rT   rp   rn   r   r[  r\  r   r	   rY   r]   r]  r   ro   r%   rr   rw   r$   ry   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   r   r   r   r  r  r
  r   r  r!   r  r  r   r  r   r"  r`  asynccontextmanagerr    r  r;  r=  r   rH  rO  rS  rW  r,  r2   r/   rc  rc  [  sB   .*< . $(378<+/04;?=p=p 	=p
 OOC =p OOBKK0=p  5=p OOC(=p  -=p  8=p 
4	 =pH $(378<+/04;?=p=p 	=p
 OOC =p OOBKK0=p  5=p OOC(=p  -=p  8=p 
4	 =pL /3'+378<+/04IM;?OpOp 	Op
 Op $Op s+Op $Op OOBKK0Op  5Op OOC(Op  -Op  S*_)EFOp  8Op 
4	 Opd jn%p4%pGMWeGf%p	4	 %pX -1;?=p __S!=p 	=p
 OOD)=p  8=p 
4	 =pH -1;?=p __S!=p "	=p
 OOD)=p  8=p 
4	 =pD .2+/*.<@;?=p ooc*=p OOC(	=p
 ??3'=p OOFOOC$89=p  8=p 
4	 =pD &*%)-1+/(,*.37(,(,'+2604;?Vp ooc"Vp ooc"	Vp
 ooc*Vp OOC(Vp %Vp //$'Vp "??40Vp %Vp %Vp $Vp ??2;;/Vp -Vp  8Vp  
?	+!Vpx $(-1%)156:7;9=6:6:8<'+*.;?!`p KK`p OOC 	`p
 ooc*`p ooc"`p //"++.`p 23`p  34`p //"56`p oofooc23`p OON3`p  5`p ooe$`p ??3'`p   8!`p" 
4	 #`pL 48;?-p-p "??40	-p
  8-p 
;	'-p` NRpp+1??>+Jp	4	 pD .2+/%)151526486:=A@D15*.'+;?#fpfp ooc*	fp
 OOC(fp ooc"fp //"++.fp ~.fp /fp //.1fp oofooc23fp __V__S%9:fp (<=fp OOI.fp ??3'fp  ooe$!fp"  8#fp$ 
4	 %fpR `d#pooc*#p=C__^=\#p	4	 #pV (,;?2p 2p 	2p
 s#2p $2p  82p 
4	 2pj `d#pooc*#p=C__^=\#p	4	 #pT (,;?-p-p 	-p
 $-p  8-p 
4	 -pf .2+/;?0p OOC(0p ooc*	0p
 OOC(0p  80p 
4	 0pf `d#pooc*#p=C__^=\#p	4	 #pL 59mq'p#__S1'pKQ??[iKj'p	3	4'pT 59mq'p#__S1'pKQ??[iKj'p	3	4'pX ,0-1(,'+2604;?>p OOC(>p ooc*	>p
 %>p $>p ??2;;/>p ->p  8>p 
-	.>pB fj1p1p*-1pCI??SaCb1p	7	#1pl ,0-1(,'+2604;?>p OOC(>p ooc*	>p
 %>p $>p ??2;;/>p ->p  8>p 
-	.>pB ei1p1p),1pBH//R`Ba1p	7	#1pn .2+/*.;?Ep Ep ooc*	Ep
 OOC(Ep //$'Ep  8Ep 
;	'EpT &*%)-1+/*.37(,(,'+2604;?Rp ooc"Rp ooc"	Rp
 ooc*Rp OOC(Rp //$'Rp "??40Rp %Rp %Rp $Rp ??2;;/Rp -Rp  8Rp 
?	+Rpp .2+/*.;?2p 2p ooc*	2p
 OOC(2p //$'2p  82p 
4	 2pp <@	(p  <=(p  8	(p
 
4	 (p\ <@	(p  67(p  8	(p
 
4	 (pT ## .2+/GK?C&**.372604;?d! ooc*d! OOC(	d!
 1B!CDd! )/(<d! s#d! //$'d! "??40d! ??2;;/d! -d!  8d! 
		/0D0DU0KL	Md! $d!L ## .2+/GK26&**.372604;?o! ooc*o! OOC(	o!
 1B!CDo! "??3/o! s#o! //$'o! "??40o! ??2;;/o! -o!  8o! 
		/0D0DU0KL	Mo! $o!j 7;=A@D;?<p<p oofooc23	<p
 __V__S%9:<p (<=<p  8<p 
4	 <pF $(378<+/04;?HpHp 	Hp
 OOC Hp OOBKK0Hp  5Hp OOC(Hp  -Hp  8Hp 
4	 Hp^ $(378<+/04;?HpHp 	Hp
 OOC Hp OOBKK0Hp  5Hp OOC(Hp  -Hp  8Hp 
4	 Hpr2   rc  )Kr`  r\  r[  rn   json.decoderr   core.api_errorr   core.client_wrapperr   r   core.datetime_utilsr   core.http_responser	   r
   core.jsonable_encoderr   core.pydantic_utilitiesr   core.request_optionsr   core.serializationr   errors.bad_request_errorr   errors.not_found_errorr   errors.unauthorized_errorr   types.commentr   types.error_infor   types.error_info_writer   types.feedback_score_batch_itemr   &types.feedback_score_batch_item_threadr   !types.feedback_score_names_publicr   types.feedback_score_sourcer   types.json_list_stringr   types.json_list_string_writer   types.project_stats_publicr   types.trace_filter_publicr   types.trace_page_publicr   types.trace_publicr   types.trace_threadr   types.trace_thread_filterr    types.trace_thread_pager!   types.trace_thread_updater"   types.trace_updater#   types.trace_writer$   types.value_entryr%   r   r   rT   r'   rc  r,  r2   r/   <module>r     s       ( % G 4 @ 4 2 1 H 6 2 9 # ( 3 D Q H = 3 > ; 9 5 , , 9 5 9 , * * v{{6::s#l p l p^An p n pr2   