
    j{e                    .   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
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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 d$d%lFmGZG d$d&lHmIZI d$d'lJmKZK  ej                  ej                  d(      ZN G d) d*      ZO G d+ d,      ZPy)-    N)JSONDecodeError   )ApiError)AsyncClientWrapperSyncClientWrapper)AsyncHttpResponseHttpResponse)jsonable_encoder)parse_obj_as)RequestOptions)'convert_and_respect_annotation_metadata)BadRequestError)ConflictError)NotFoundError)DatasetExpansionResponse)DatasetExportJobPublic)DatasetItemChangesPublic)DatasetItemFilter)DatasetItemPageCompare)DatasetItemPagePublic)DatasetItemPublic)DatasetItemUpdate)DatasetItemWrite)DatasetItemWriteSource)DatasetPagePublic)DatasetPublic)DatasetVersionDiff)DatasetVersionPagePublic)DatasetVersionPublic)EvaluatorItemWrite)ExecutionPolicyWrite)JsonNode)PageColumns)ProjectStatsPublic)SpanEnrichmentOptions)TraceEnrichmentOptions   )DatasetUpdateVisibility)DatasetWriteType)DatasetWriteVisibility.c                      e Zd ZdefdZddddededej                  e	   dej                  e
   d	ee   f
d
Zeeeedddedej                  ej                   e      dej                  ej                   e      dej                  e   d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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
   d	ee   fdZeeeeeeeddd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j                   e      d!ej                  e   dej                  e
   d	ed   fd"Zeeedd#d$ej                   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j6                  eej                  ej8                     f   dedej                  e
   d	ed   fd*Zdd(ded+ej                   e   d,edej                  e
   d	ed   f
d-Zdd(ded.ej                   e   d,e dej                  e
   d	ed   f
d/Z!dd(dedej                  e
   d	ee"   fd0Z#eeedd1deded!ej                  e   dej                  e$   d ej                  ej                   e      dej                  e
   d	ed   fd2Z%dd(dedej                  e
   d	ed   fd3Z&edd4d%edej                  e   dej                  e
   d	ed   fd5Z'eeeedd6d7ej                  ej                   e      dej                  e   dej                  ej                   e      d&ej                  e   dej                  e
   d	ed   fd8Z(dd(dej                   e   dej                  e
   d	ed   fd9Z)e*jV                  dd(d:edej                  e
   d	ejX                  eejX                  e-         fd;       Z.eeeedd<ded=ed>ej                  e   d?ej                  ej                   e      d@ej                  e   dAej                  e   dej                  e
   d	ee/   fdBZ0ddddddddCdedDedej                  e   dej                  e   dej                  e   dej                  e   dEej                  e   dFej                  e	   dej                  e
   d	ee1   fdGZ2edd4d%edej                  e   dej                  e
   d	ee"   fdHZ3dddIdedDedej                  e   dej                  e
   d	ee4   f
dJZ5dd(d:edej                  e
   d	ee6   fdKZ7dd(dej                  e
   d	eejp                  e6      fdLZ9dd(dMedej                  e
   d	ee:   fdNZ;eeeeeeeddOdMedPe<dQe=dej                  e   dRej                  e   dSej                  e   d!ej                  e   d ej                  ej                   e      dTej                  ej                   e>      dUej                  e?   dej                  e
   d	ed   fdVZ@dddddddWdedej                  e   dej                  e   dXej                  e   dej                  e   dFej                  e	   dej                  e
   d	eeA   fdYZBdddZdedDej                  e   dej                  e
   d	eeC   fd[ZDdd(d:edej                  e
   d	ed   fd\ZEdd(dedej                  e
   d	ee6   fd]ZFe*jV                  eeeeedd^d%ed_ej                  e   d`ej                  e   daej                  e   dej                  e   dej                  e   dej                  e
   d	ejX                  eejX                  e-         fdb       ZGdd(dedej                  e
   d	eeH   fdcZIdd(deddedeedej                  e
   d	ed   f
dfZJdd(deddedeedej                  e
   d	ed   f
dgZKddddhdedej                  e   dej                  e   dej                  e
   d	eeL   f
diZMdd(dedjedej                  e
   d	ee   fdkZNdd(dedledej                  e
   d	ee   fdmZOeeddndeddedoej                  e   dpej                  ej                   e      dej                  e
   d	ee   fdqZPy)rRawDatasetsClientclient_wrapperc                    || _         y N_client_wrapperselfr-   s     z/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/opik/rest_api/datasets/raw_client.py__init__zRawDatasetsClient.__init__0   
    -    Noverriderequest_optionsidrequestr9   r:   returnc                   | j                   j                  j                  dt        |       ddd|i|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
                  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)a,  
        Apply delta changes (add, edit, delete) to a dataset version with conflict detection.

        This endpoint:
        - Creates a new version with the applied changes
        - Validates that baseVersion matches the latest version (unless override=true)
        - Returns 409 Conflict if baseVersion is stale and override is not set

        Use `override=true` query parameter to force version creation even with stale baseVersion.

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

        request : DatasetItemChangesPublic

        override : typing.Optional[bool]

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

        Returns
        -------
        HttpResponse[DatasetVersionPublic]
            Version created successfully
        v1/private/datasets//items/changesPOSTr9   content-typeapplication/jsonmethodparamsjsonheadersr:   omit   ,  type_object_responsedata  rH   body    status_coderH   rT   r1   httpx_clientr<   r
   OMITrX   typingcastr   r   rG   r	   r   dictrH   OptionalAnyr   r   r   r   textr3   r;   r<   r9   r:   	_response_data_response_jsons           r4   apply_dataset_item_changesz,RawDatasetsClient.apply_dataset_item_changes3   sP   D ((55=="#3B#7"8GH  2 , > 
	-	ti++1c1( 2 ) 0 $YUCC$$+% !2!23

3$"(//&**"=$-NN$4	 	 $$+# !2!23

3$"(//&**"=$-NN$4	 	 $$+# !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J( GJ( (?K'idsfilters
dataset_id
merge_tagsr:   updaterh   ri   rj   rk   c                L   | j                   j                  j                  dd|t        |t        j
                  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                  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)a6  
        Update multiple dataset items

        Parameters
        ----------
        update : DatasetItemUpdate

        ids : typing.Optional[typing.Sequence[str]]
            List of dataset item IDs to update (max 1000). Mutually exclusive with 'filters'.

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

        dataset_id : typing.Optional[str]
            Dataset ID. Required when using 'filters', optional when using 'ids'.

        merge_tags : typing.Optional[bool]
            If true, merge tags with existing tags instead of replacing them. Default: false. When using 'filters', this is automatically set to true.

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

        Returns
        -------
        HttpResponse[None]
        v1/private/datasets/items/batchPATCHwriterN   
annotation	directionrh   ri   rj   rl   rk   rB   rC   rE   rG   rH   r:   rI   rJ   rK   NrO   rR   rL   rS   rW   )r1   rZ   r<   r   r\   Sequencer   r   r[   rX   r	   r   r^   rH   r]   r_   r`   r   rG   r   r   ra   	r3   rl   rh   ri   rj   rk   r:   rc   re   s	            r4   batch_update_dataset_itemsz,RawDatasetsClient.batch_update_dataset_items   su   F ((55==-B#@Q0R^e )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s   *$E$ B*E$ $?F#
pagesizewith_experiments_onlywith_optimizations_only	prompt_id
project_idnamesortingri   r:   rz   r{   r|   r}   r~   r   r   r   c       
            | j                   j                  j                  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                        |	      # t        $ r6 t        |j                  t        |j                        |j                  	      w xY w)
a  
        Find datasets

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

        size : typing.Optional[int]

        with_experiments_only : typing.Optional[bool]

        with_optimizations_only : typing.Optional[bool]

        prompt_id : typing.Optional[str]

        project_id : typing.Optional[str]

        name : typing.Optional[str]

        sorting : typing.Optional[str]

        filters : typing.Optional[str]

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

        Returns
        -------
        HttpResponse[DatasetPagePublic]
            Dataset resource
        v1/private/datasetsGET	rz   r{   r|   r}   r~   r   r   r   ri   rE   rF   r:   rJ   rK   rL   rO   rW   )r1   rZ   r<   rX   r\   r]   r   r   rG   r	   r   r   r^   rH   ra   r3   rz   r{   r|   r}   r~   r   r   r   ri   r:   rc   rd   re   s                 r4   find_datasetszRawDatasetsClient.find_datasets   s   Z ((55==!)>+B&(""
 , > 
	 	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r;   r   project_nametype
visibilitytagsdescriptionr:   r   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                         }t        |
j                  t        |
j                        |      # t        $ r6 t        |
j                  t        |
j                        |
j                        w xY w)a  
        Create dataset

        Parameters
        ----------
        name : str

        id : typing.Optional[str]

        project_id : typing.Optional[str]
            Project ID. Takes precedence over project_name when both are provided.

        project_name : typing.Optional[str]
            For project scope, specify either project_id or project_name. If project_name is provided and the project does not exist, it will be created. Ignored when project_id is provided. If neither is provided, the dataset is created at workspace level.

        type : typing.Optional[DatasetWriteType]

        visibility : typing.Optional[DatasetWriteVisibility]

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

        description : typing.Optional[str]

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

        Returns
        -------
        HttpResponse[None]
        r   rA   r;   r   r   r   r   r   r   r   rB   rC   ru   rJ   rK   NrO   rW   r1   rZ   r<   r[   rX   r	   rG   r   r   r^   rH   ra   r3   r   r;   r   r   r   r   r   r   r:   rc   re   s               r4   create_datasetz RawDatasetsClient.create_dataset(  s    V ((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dataset_namerj   batch_group_idr:   itemsr   r   c                   | j                   j                  j                  dd||t        |t        j
                  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  
        Create/update dataset items based on dataset item id

        Parameters
        ----------
        items : typing.Sequence[DatasetItemWrite]

        dataset_name : typing.Optional[str]
            If null, dataset_id must be provided

        dataset_id : typing.Optional[str]
            If null, dataset_name must be provided

        batch_group_id : typing.Optional[str]
            Optional batch group ID to group multiple batches into a single dataset version. If null, mutates the latest version instead of creating a new one.

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

        Returns
        -------
        HttpResponse[None]
        v1/private/datasets/itemsPUTrp   rq   r   rj   r   r   rB   rC   ru   rJ   rK   NrO   rW   )r1   rZ   r<   r   r\   rv   r   r[   rX   r	   rG   r   r   r^   rH   ra   r3   r   r   rj   r   r:   rc   re   s           r4   create_or_update_dataset_itemsz0RawDatasetsClient.create_or_update_dataset_itemsn  s    @ ((55==' ,(@!foo>N.O[b #1  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   $B9 >B9 9?C8r:   filec                   | 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                  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)a  
        Create dataset items from uploaded CSV file. CSV should have headers in the first row. Processing happens asynchronously in batches.

        Parameters
        ----------
        file : typing.Dict[str, typing.Optional[typing.Any]]

        dataset_id : str

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

        Returns
        -------
        HttpResponse[None]
        "v1/private/datasets/items/from-csvrA   r   rj   rB   multipart/form-datarE   rQ   filesrH   r:   rI   rJ   rK   NrO   rR   rL   rS   rU   rW   )r1   rZ   r<   r[   rX   r	   r   r^   rH   r\   r]   r_   r`   r   rG   r   r   r   ra   r3   r   rj   r:   rc   re   s         r4   create_dataset_items_from_csvz/RawDatasetsClient.create_dataset_items_from_csv  s   . ((55==0(  5 , > 
		ti++1c1#YTBB$$+% !2!23

3$"(//&**"=$-NN$4	 	 $$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   $G EG ?H
span_idsenrichment_optionsc          
         | j                   j                  j                  dt        |       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                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)a  
        Create dataset items from spans with enriched metadata

        Parameters
        ----------
        dataset_id : str

        span_ids : typing.Sequence[str]
            Set of span IDs to add to the dataset

        enrichment_options : SpanEnrichmentOptions

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

        Returns
        -------
        HttpResponse[None]
        r?   /items/from-spansrA   rp   rq   r   r   rB   rC   ru   rJ   rK   NrO   rW   )r1   rZ   r<   r
   r   r%   r[   rX   r	   rG   r   r   r^   rH   ra   r3   rj   r   r   r:   rc   re   s          r4   create_dataset_items_from_spansz1RawDatasetsClient.create_dataset_items_from_spans  s    6 ((55=="#3J#?"@@QR$&M.;P\c'  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   $B3 8B3 3?C2	trace_idsc          
         | j                   j                  j                  dt        |       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                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)a  
        Create dataset items from traces with enriched metadata

        Parameters
        ----------
        dataset_id : str

        trace_ids : typing.Sequence[str]
            Set of trace IDs to add to the dataset

        enrichment_options : TraceEnrichmentOptions

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

        Returns
        -------
        HttpResponse[None]
        r?   /items/from-tracesrA   rp   rq   r   r   rB   rC   ru   rJ   rK   NrO   rW   )r1   rZ   r<   r
   r   r&   r[   rX   r	   rG   r   r   r^   rH   ra   r3   rj   r   r   r:   rc   re   s          r4    create_dataset_items_from_tracesz2RawDatasetsClient.create_dataset_items_from_traces  s    6 ((55=="#3J#?"@@RS&&M.;Q]d'  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|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 dataset by id

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

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

        Returns
        -------
        HttpResponse[DatasetPublic]
            Dataset resource
        r?   r   rE   r:   rJ   rK   rL   rO   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r	   r   r   r^   rH   ra   r3   r;   r:   rc   rd   re   s         r4   get_dataset_by_idz#RawDatasetsClient.get_dataset_by_idN  s    $ ((55=="#3B#7"89+ > 
	
	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   AC C ?Dr   r   r   r:   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                         }t        |j
                  t        |j                        |      # t        $ r6 t        |j
                  t        |j                        |j                        w xY w)a  
        Update dataset by id

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

        name : str

        description : typing.Optional[str]

        visibility : typing.Optional[DatasetUpdateVisibility]

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

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

        Returns
        -------
        HttpResponse[None]
        r?   r   r   r   r   r   rB   rC   ru   rJ   rK   NrO   rW   )r1   rZ   r<   r
   r[   rX   r	   rG   r   r   r^   rH   ra   	r3   r;   r   r   r   r   r:   rc   re   s	            r4   update_datasetz RawDatasetsClient.update_datasett  s    @ ((55=="#3B#7"89*(	  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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)	a  
        Delete dataset by id

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

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

        Returns
        -------
        HttpResponse[None]
        r?   DELETEr   rJ   rK   NrO   rW   r1   rZ   r<   r
   rX   r	   rG   r   r   r^   rH   ra   r3   r;   r:   rc   re   s        r4   delete_datasetz RawDatasetsClient.delete_dataset  s     ((55=="#3B#7"89+ > 
	
	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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                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)a:  
        Delete dataset by name

        Parameters
        ----------
        dataset_name : str

        project_name : typing.Optional[str]

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

        Returns
        -------
        HttpResponse[None]
        v1/private/datasets/deleterA   r   r   rB   rC   ru   rJ   rK   NrO   rW   r   r3   r   r   r:   rc   re   s         r4   delete_dataset_by_namez(RawDatasetsClient.delete_dataset_by_name  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   item_idsrj   ri   r   r:   r   c                *   | j                   j                  j                  dd||t        |t        j
                  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  
        Delete dataset items using one of two modes:
        1. **Delete by IDs**: Provide 'item_ids' to delete specific items by their IDs
        2. **Delete by filters**: Provide 'dataset_id' with optional 'filters' to delete items matching criteria

        When using filters, an empty 'filters' array will delete all items in the specified dataset.

        Parameters
        ----------
        item_ids : typing.Optional[typing.Sequence[str]]
            List of dataset item IDs to delete (max 1000). Use this to delete specific items by their IDs. Mutually exclusive with 'dataset_id' and 'filters'.

        dataset_id : typing.Optional[str]
            Dataset ID to scope the deletion. Required when using 'filters'. Mutually exclusive with 'item_ids'.

        filters : typing.Optional[typing.Sequence[DatasetItemFilter]]
            Filters to select dataset items to delete within the specified dataset. Must be used with 'dataset_id'. Mutually exclusive with 'item_ids'. Empty array means 'delete all items in the dataset'.

        batch_group_id : typing.Optional[str]
            Optional batch group ID to group multiple delete operations into a single dataset version. If null, mutates the latest version instead of creating a new one.

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

        Returns
        -------
        HttpResponse[None]
         v1/private/datasets/items/deleterA   rp   rq   r   rj   ri   r   rB   rC   ru   rJ   rK   NrO   rR   rL   rS   rW   )r1   rZ   r<   r   r\   rv   r   r[   rX   r	   r   r^   rH   r]   r_   r`   r   rG   r   r   ra   r3   r   rj   ri   r   r:   rc   re   s           r4   delete_dataset_itemsz&RawDatasetsClient.delete_dataset_items  sc   J ((55==.$(B#@Q0R^e #1  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   $E >B*E ?F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 datasets batch

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

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

        Returns
        -------
        HttpResponse[None]
         v1/private/datasets/delete-batchrA   rh   rB   rC   ru   rJ   rK   NrO   rW   r   r3   rh   r:   rc   re   s        r4   delete_datasets_batchz'RawDatasetsClient.delete_datasets_batch<  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s   $B B ?Cjob_idc             #      K   | j                   j                  j                  dt        |       dd      5 dt        t
        j                  t              ffd} |        ddd       y# 1 sw Y   yxY ww)a!  
        Downloads the exported CSV file for a completed export job. This endpoint proxies the file download to avoid exposing internal storage URLs.

        Parameters
        ----------
        job_id : str

        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]]]
            CSV file content
         v1/private/datasets/export-jobs/	/downloadr   r   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)NrJ   rK   
chunk_sizec              3       K   | ]  }|  y wr/    .0_chunks     r4   	<genexpr>zLRawDatasetsClient.download_dataset_export.<locals>.stream.<locals>.<genexpr>       5xKwfKw   r   rO   rR   rL   rS   rU   rW   )rX   getr	   
iter_bytesreadr   r^   rH   r\   r]   r_   r`   r   rG   r   r   r   ra   _chunk_sizere   rc   r:   s     r4   streamz9RawDatasetsClient.download_dataset_export.<locals>.streamz  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)r1   rZ   r   r
   r	   r\   Iteratorbytesr3   r   r:   r   rc   s     ` @r4   download_dataset_exportz)RawDatasetsClient.download_dataset_exporta  s|     & !!..55./?/G.H	R+ 6 
 #xL)?@ #xJ (NW
 
 
s   6A>/A2)	A>2A;7A>sample_countpreserve_fieldsvariation_instructionscustom_promptr:   modelr   r   r   r   c          
      >   | j                   j                  j                  dt        |       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                         }
t        |j
                  t        |j                        |
      # t        $ r6 t        |j
                  t        |j                        |j                         w xY w)a  
        Generate synthetic dataset samples using LLM based on existing data patterns

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

        model : str
            The model to use for synthetic data generation

        sample_count : typing.Optional[int]
            Number of synthetic samples to generate

        preserve_fields : typing.Optional[typing.Sequence[str]]
            Fields to preserve patterns from original data

        variation_instructions : typing.Optional[str]
            Additional instructions for data variation

        custom_prompt : typing.Optional[str]
            Custom prompt to use for generation instead of auto-generated one

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

        Returns
        -------
        HttpResponse[DatasetExpansionResponse]
            Generated synthetic samples
        r?   /expansionsrA   r   r   r   r   r   rB   rC   ru   rJ   rK   rL   rO   rW   )r1   rZ   r<   r
   r[   rX   r\   r]   r   r   rG   r	   r   r   r^   rH   ra   r3   r;   r   r   r   r   r   r:   rc   rd   re   s              r4   expand_datasetz RawDatasetsClient.expand_dataset  s   R ((55=="#3B#7"8D ,#2*@!.  2 , > 
	 	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s   AC "C ?Drz   r{   ri   r   searchtruncater:   experiment_idsr   r   c                2   | j                   j                  j                  dt        |       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                        |
      # t        $ r6 t        |
j                  t        |
j                        |
j                  
      w xY w)aR  
        Find dataset items with experiment items

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

        experiment_ids : str

        page : typing.Optional[int]

        size : typing.Optional[int]

        filters : typing.Optional[str]

        sorting : typing.Optional[str]

        search : typing.Optional[str]

        truncate : typing.Optional[bool]

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

        Returns
        -------
        HttpResponse[DatasetItemPageCompare]
            Dataset item resource
        r?   /items/experiments/itemsr   rz   r{   r   ri   r   r   r   r   rJ   rK   rL   rO   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r	   r   r   r^   rH   ra   r3   r;   r   rz   r{   ri   r   r   r   r:   rc   rd   re   s                r4   (find_dataset_items_with_experiment_itemsz:RawDatasetsClient.find_dataset_items_with_experiment_items  s   T ((55=="#3B#7"88PQ"0"" $ , > 
		ti++1c1* 4 ) 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  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 dataset by name

        Parameters
        ----------
        dataset_name : str

        project_name : typing.Optional[str]

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

        Returns
        -------
        HttpResponse[DatasetPublic]
            Dataset resource
        v1/private/datasets/retrieverA   r   rB   rC   ru   rJ   rK   rL   rO   rW   )r1   rZ   r<   r[   rX   r\   r]   r   r   rG   r	   r   r   r^   rH   ra   r3   r   r   r:   rc   rd   re   s          r4   get_dataset_by_identifierz+RawDatasetsClient.get_dataset_by_identifier0  s   0 ((55==* , ,
  2 , > 
		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r   ri   r:   c                (   | j                   j                  j                  dt        |       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                        |
      # t        $ r6 t        |j                  t        |j                        |j                  
      w xY w)a  
        Get experiment items stats for dataset

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

        experiment_ids : str

        filters : typing.Optional[str]

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

        Returns
        -------
        HttpResponse[ProjectStatsPublic]
            Experiment items stats resource
        r?   /items/experiments/items/statsr   r   ri   r   rJ   rK   rL   rO   rW   )r1   rZ   r<   r
   rX   r\   r]   r$   r   rG   r	   r   r   r^   rH   ra   r3   r;   r   ri   r:   rc   rd   re   s           r4   "get_dataset_experiment_items_statsz4RawDatasetsClient.get_dataset_experiment_items_statsd  s   6 ((55=="#3B#7"88VW"0" , > 
		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s   AC C ?Dc                R   | j                   j                  j                  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)aV  
        Retrieves the current status of a dataset export job

        Parameters
        ----------
        job_id : str

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

        Returns
        -------
        HttpResponse[DatasetExportJobPublic]
            Export job details
        r   r   r   rJ   rK   rL   rO   rU   rS   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r	   r   r^   rH   r_   r`   r   r   ra   r3   r   r:   rc   rd   re   s         r4   get_dataset_export_jobz(RawDatasetsClient.get_dataset_export_job  s\   $ ((55==./?/G.HI+ > 
	
	ti++1c1* 4 ) 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&c                J   | j                   j                  j                  dd|      }	 d|j                  cxk  rdk  rin nft	        j
                  t        j                  t           t        t        j                  t           |j                                     }t        ||      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)	a  
        Retrieves all export jobs for the workspace. This is used to restore the export panel state after page refresh.

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

        Returns
        -------
        HttpResponse[typing.List[DatasetExportJobPublic]]
            List of export jobs
        v1/private/datasets/export-jobsr   r   rJ   rK   rL   rO   rW   )r1   rZ   r<   rX   r\   r]   Listr   r   rG   r	   r   r   r^   rH   ra   r3   r:   rc   rd   re   s        r4   get_dataset_export_jobsz)RawDatasetsClient.get_dataset_export_jobs  s      ((55==-+ > 
	
	ti++1c1KK 67 $kk*@A ) 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"item_idc                   | j                   j                  j                  dt        |       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)	a7  
        Get dataset item by id

        Parameters
        ----------
        item_id : str

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

        Returns
        -------
        HttpResponse[DatasetItemPublic]
            Dataset item resource
        v1/private/datasets/items/r   r   rJ   rK   rL   rO   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r	   r   r   r^   rH   ra   r3   r  r:   rc   rd   re   s         r4   get_dataset_item_by_idz(RawDatasetsClient.get_dataset_item_by_id  s    $ ((55==()9')B(CD+ > 
	
	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r   r;   trace_idspan_idr   r   
evaluatorsexecution_policyr:   sourcerQ   r  r  r  r  c       
         l   | j                   j                  j                  dt        |       d|||||||t	        |	t
        j                  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                  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  
        Partially update dataset item by id. Only provided fields will be updated.

        Parameters
        ----------
        item_id : str

        source : DatasetItemWriteSource

        data : JsonNode

        id : typing.Optional[str]

        trace_id : typing.Optional[str]

        span_id : typing.Optional[str]

        description : typing.Optional[str]

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

        evaluators : typing.Optional[typing.Sequence[EvaluatorItemWrite]]

        execution_policy : typing.Optional[ExecutionPolicyWrite]

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

        Returns
        -------
        HttpResponse[None]
        r  ro   rp   rq   	r;   r  r  r   rQ   r   r   r  r  rB   rC   ru   rJ   rK   NrO   rU   rL   rS   rW   )r1   rZ   r<   r
   r   r\   rv   r    r!   r[   rX   r	   r   r^   rH   r]   r_   r`   r   rG   r   r   ra   r3   r  r   rQ   r;   r  r  r   r   r  r  r:   rc   re   s                 r4   patch_dataset_itemz$RawDatasetsClient.patch_dataset_item  s   ^ ((55==()9')B(CD$" *E&6??CU3Vbi %L,9MY`%   2 ,- > 
	0	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   :$E4 B*E4 4?F3rz   r{   versionri   r   r:   r&  c          
      .   | j                   j                  j                  dt        |       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                        |

      # t        $ r6 t        |j                  t        |j                        |j                  
      w xY w)a  
        Get dataset items

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

        page : typing.Optional[int]

        size : typing.Optional[int]

        version : typing.Optional[str]

        filters : typing.Optional[str]

        truncate : typing.Optional[bool]

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

        Returns
        -------
        HttpResponse[DatasetItemPagePublic]
            Dataset items resource
        r?   /itemsr   rz   r{   r&  ri   r   r   rJ   rK   rL   rO   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r	   r   r   r^   rH   ra   r3   r;   rz   r{   r&  ri   r   r:   rc   rd   re   s              r4   get_dataset_itemsz#RawDatasetsClient.get_dataset_itemsl  s   H ((55=="#3B#7"8?""$ , > 
		ti++1c1) 3 ) 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r   r:   c                &   | j                   j                  j                  dt        |       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)ak  
        Get dataset items output columns

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

        experiment_ids : typing.Optional[str]

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

        Returns
        -------
        HttpResponse[PageColumns]
            Dataset item output columns
        r?   '/items/experiments/items/output/columnsr   r   r   rJ   rK   rL   rO   rW   )r1   rZ   r<   r
   rX   r\   r]   r#   r   rG   r	   r   r   r^   rH   ra   r3   r;   r   r:   rc   rd   re   s          r4    get_dataset_items_output_columnsz2RawDatasetsClient.get_dataset_items_output_columns  s   0 ((55=="#3B#7"88_` . , > 
		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|      }	 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  
        Marks a dataset export job as viewed by setting the viewed_at timestamp. This is used to track that a user has seen a failed job's error message. This operation is idempotent.

        Parameters
        ----------
        job_id : str

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

        Returns
        -------
        HttpResponse[None]
        r   /mark-viewedr   r   rJ   rK   NrO   rU   rL   rS   rW   )r1   rZ   r<   r
   rX   r	   r   r^   rH   r\   r]   r_   r`   r   rG   r   r   ra   r3   r   r:   rc   re   s        r4   mark_dataset_export_job_viewedz0RawDatasetsClient.mark_dataset_export_job_viewed  s6   " ((55==./?/G.HU+ > 
	
	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   $D1 B*D1 1?E0c                    | j                   j                  j                  dt        |       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  
        Initiates an asynchronous CSV export job for the dataset. Returns immediately with job details for polling.

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

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

        Returns
        -------
        HttpResponse[DatasetExportJobPublic]
            Existing export job in progress
        r?   /exportrA   r   rJ   rK   rL   rO   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r	   r   r   r^   rH   ra   r   s         r4   start_dataset_exportz&RawDatasetsClient.start_dataset_export  s    $ ((55=="#3B#7"8@+ > 
	
	ti++1c1* 4 ) 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last_retrieved_idsteam_limitdataset_versionr   ri   r:   r9  r:  r;  c             #     	K   | j                   j                  j                  d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  
        Stream dataset items

        Parameters
        ----------
        dataset_name : str

        last_retrieved_id : typing.Optional[str]

        steam_limit : typing.Optional[int]

        dataset_version : typing.Optional[str]

        project_name : typing.Optional[str]

        filters : typing.Optional[str]

        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]]]
            Dataset items stream or error during process
         v1/private/datasets/items/streamrA   r   r9  r:  r;  r   ri   rB   rC   ru   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                         }t        j                   t        j                        |      # t        $ r6 t        j                   t        j                        j                        w xY w)NrJ   rK   r   c              3       K   | ]  }|  y wr/   r   r   s     r4   r   zIRawDatasetsClient.stream_dataset_items.<locals>.stream.<locals>.<genexpr>e  r   r   r   rO   rW   )rX   r   r	   r   r   rG   r   r   r^   rH   ra   r   s     r4   r   z6RawDatasetsClient.stream_dataset_items.<locals>.stream`  s    i339c9Q`Qlo&9&9,&Mrv+%.5x9K_K_kvK_Kw5x   NN$%.^^%5N
 9+@+@$yO`O`Jahvww	 ' "$-$9$94	HYHYCZajaoao s   AB   B   ?CN)r1   rZ   r   r[   r	   r\   r   r   
r3   r   r9  r:  r;  r   ri   r:   r   rc   s
          ` @r4   stream_dataset_itemsz&RawDatasetsClient.stream_dataset_items)  s     J !!..55. ,%6*#2 ,"  2 , 6 
  xL)?@ x (NC
 
 
s   9B/A5,	B5A>:Bc                T   | j                   j                  j                  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                        |      # t         $ r6 t#        |j                  t        |j                        |j$                        w xY w)aN  
        Compare the latest committed dataset version with the current draft state. This endpoint provides insights into changes made since the last version was committed. The comparison calculates additions, modifications, deletions, and unchanged items between the latest version snapshot and current draft.

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

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

        Returns
        -------
        HttpResponse[DatasetVersionDiff]
            Diff computed successfully
        r?   /versions/diffr   r   rJ   rK   rL   rO   rU   rS   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r	   r   r^   rH   r_   r`   r   r   ra   r   s         r4   compare_dataset_versionsz*RawDatasetsClient.compare_dataset_versionsq  s^   $ ((55=="#3B#7"8G+ > 
	
	ti++1c1& 0 ) 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'version_hashtagc                |   | j                   j                  j                  dt        |       dt        |       ddd|i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
                  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)a  
        Add a tag to a specific dataset version for easy reference (e.g., 'baseline', 'v1.0', 'production')

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

        version_hash : str

        tag : str

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

        Returns
        -------
        HttpResponse[None]
        r?   /versions/hash//tagsrA   rG  rB   rC   ru   rJ   rK   NrO   rR   rL   rS   rU   rV   rW   )r1   rZ   r<   r
   r[   rX   r	   r   r^   rH   r\   r]   r_   r`   r   rG   r   r   r   r   ra   r3   r;   rF  rG  r:   rc   re   s          r4   create_version_tagz$RawDatasetsClient.create_version_tag  s3   * ((55=="#3B#7"8HXYeHfGgglms  2 , > 
	&	ti++1c1#YTBB$$+% !2!23

3$"(//&**"=$-NN$4	 	 $$+# !2!23

3$"(//&**"=$-NN$4	 	 $$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   $I< 3GI< <?J;c          
         | j                   j                  j                  dt        |       dt        |       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)a{  
        Remove a tag from a dataset version. The version itself is not deleted, only the tag reference.

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

        version_hash : str

        tag : str

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

        Returns
        -------
        HttpResponse[None]
        r?   
/versions//tags/r   r   rJ   rK   NrO   rW   r   rK  s          r4   delete_version_tagz$RawDatasetsClient.delete_version_tag  s    * ((55=="#3B#7"8
CST`CaBbbhiyz}i~h  A+ > 
	
	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. 3B. .?C-rz   r{   r:   c                \   | j                   j                  j                  dt        |       d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                        |      # t         $ r6 t#        |j                  t        |j                        |j$                        w xY w)a  
        Get paginated list of versions for a dataset, ordered by creation time (newest first)

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

        page : typing.Optional[int]

        size : typing.Optional[int]

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

        Returns
        -------
        HttpResponse[DatasetVersionPagePublic]
            Dataset versions
        r?   	/versionsr   rz   r{   r   rJ   rK   rL   rO   rR   rS   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r	   r   r^   rH   r_   r`   r   r   ra   r3   r;   rz   r{   r:   rc   rd   re   s           r4   list_dataset_versionsz'RawDatasetsClient.list_dataset_versions  sk   6 ((55=="#3B#7"8	B , > 
		ti++1c1, 6 ) 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+version_refc                j   | j                   j                  j                  dt        |       ddd|i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*  
        Restores the dataset to a previous version state by creating a new version with items copied from the specified version. If the version is already the latest, returns it as-is (no-op).

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

        version_ref : str
            Version hash or tag to restore from

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

        Returns
        -------
        HttpResponse[DatasetVersionPublic]
            Version restored successfully
        r?   /versions/restorerA   rW  rB   rC   ru   rJ   rK   rL   rO   rU   rS   rW   )r1   rZ   r<   r
   r[   rX   r\   r]   r   r   rG   r	   r   r^   rH   r_   r`   r   r   ra   r3   r;   rW  r:   rc   rd   re   s          r4   restore_dataset_versionz)RawDatasetsClient.restore_dataset_versionL  s{   * ((55=="#3B#7"88IJ{  2 , > 
		ti++1c1( 2 ) 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E3 B*E3 3?F2version_namec                   | j                   j                  j                  dt        |       ddd|i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
                  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 a specific version by its version name (e.g., 'v1', 'v373'). This is more efficient than paginating through all versions for large datasets.

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

        version_name : str
            Version name in format 'vN' (e.g., 'v1', 'v373')

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

        Returns
        -------
        HttpResponse[DatasetVersionPublic]
            Dataset version
        r?   /versions/retrieverA   r\  rB   rC   ru   rJ   rK   rL   rO   rR   rS   rU   rW   )r1   rZ   r<   r
   r[   rX   r\   r]   r   r   rG   r	   r   r^   rH   r_   r`   r   r   r   ra   r3   r;   r\  r:   rc   rd   re   s          r4   retrieve_dataset_versionz*RawDatasetsClient.retrieve_dataset_version  s   * ((55=="#3B#7"88JK  2 , > 
	"	ti++1c1( 2 ) 0 $YUCC$$+% !2!23

3$"(//&**"=$-NN$4	 	 $$+# !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H EH ?Ichange_descriptiontags_to_addr:   rb  rc  c                   | j                   j                  j                  dt        |       dt        |       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
                  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)ah  
        Update a dataset version's change_description and/or add new tags

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

        version_hash : str

        change_description : typing.Optional[str]
            Optional description of changes in this version

        tags_to_add : typing.Optional[typing.Sequence[str]]
            Optional list of tags to add to this version

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

        Returns
        -------
        HttpResponse[DatasetVersionPublic]
            Version updated successfully
        r?   rI  ro   rb  rc  rB   rC   ru   rJ   rK   rL   rO   rR   rS   rU   rV   rW   rY   	r3   r;   rF  rb  rc  r:   rc   rd   re   s	            r4   update_dataset_versionz(RawDatasetsClient.update_dataset_version  sZ   @ ((55=="#3B#7"8HXYeHfGgh&8*
  2 , > 
	-	ti++1c1( 2 ) 0 $YUCC$$+% !2!23

3$"(//&**"=$-NN$4	 	 $$+# !2!23

3$"(//&**"=$-NN$4	 	 $$+# !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J3 *GJ3 3?K2)Q__name__
__module____qualname__r   r5   strr   r\   r_   boolr   r	   r   rf   r[   r   rv   r   rx   intr   r   r)   r*   r   r   r   Dictr`   r   r%   r   r&   r   r   r   r(   r   r   r   r   r   
contextlibcontextmanagerr   r   r   r   r   r   r  r  r$   r  r   r  r  r  r   r  r   r"   r    r!   r$  r   r+  r#   r0  r4  r7  rB  r   rE  rL  rP  r   rV  r[  r`  rg  r   r7   r4   r,   r,   /   s   .*; . +/;?]p]p *	]p
 //$']p  8]p 
*	+]pF 6:GK+/,0;?Hp "Hp __V__S12	Hp
 1B!CDHp OOC(Hp OOD)Hp  8Hp 
d	HpZ &*%)7;9=*.+/%)(,(,;?Jp ooc"Jp ooc"	Jp
  &t4Jp "(!6Jp ??3'Jp OOC(Jp ooc"Jp %Jp %Jp  8Jp 
'	(Jp` $(+/-126>B6:,0;?Dp Dp OOC 	Dp
 OOC(Dp ooc*Dp oo./Dp OO$:;Dp oofooc23Dp __S)Dp  8Dp 
d	DpT .2+//3;?7p /07p ooc*	7p
 OOC(7p ,7p  87p 
d	7p| <@Ap kk#vvzz::;Ap 	Ap
  8Ap 
d	ApR <@0p0p //#&	0p
 20p  80p 
d	0pp <@0p0p ??3'	0p
 30p  80p 
d	0pf NR$p$p+1??>+J$p	m	$$pV -1?C6:;?5p5p 	5p
 __S)5p OO$;<5p oofooc235p  85p 
d	5pn ]a p p&//.:Y peqrvew p@ .2;?*p *p ooc*	*p
  8*p 
d	*p^ ;?+/GK/3;?Gp //&//#"67Gp OOC(	Gp
 1B!CDGp ,Gp  8Gp 
d	GpT `d#pooc*#p=C__^=\#p	d	#pJ QU==/5~/N=	fooe&<=	>= =H .2AE7;.2;?FpFp 	Fp
 ooc*Fp  )=>Fp !' 4Fp s+Fp  8Fp 
.	/FpZ &*%)(,(,'+*.;?EpEp 	Ep
 ooc"Ep ooc"Ep %Ep %Ep $Ep //$'Ep  8Ep 
,	-EpV .2;?2p 2p ooc*	2p
  82p 
m	$2pr )-;?1p1p 	1p
 %1p  81p 
(	)1ph RV/p/p/5~/N/p	,	-/pd EI"p"(//."A"p	fkk"89	:"pJ SW$p$p060O$p	'	($pX $()-(,,06:KOBF;?XpXp '	Xp
 Xp OOC Xp //#&Xp %Xp __S)Xp oofooc23Xp OOFOO4F$GHXp !//*>?Xp  8Xp 
d	Xp| &*%)(,(,*.;?=p=p ooc"	=p
 ooc"=p %=p %=p //$'=p  8=p 
+	,=pF 04;?-p-p ,	-p
  8-p 
k	"-p` RV'p'p/5~/N'p	d	'pT NR$p$p+1??>+J$p	,	-$pL 
 37,004-1(,;?E E "??3/	E
 __S)E  -E ooc*E %E  8E 
fooe&<=	>E EP NR/p/p+1??>+J/p	(	)/pd koHpHp%(Hp25HpHNXfHgHp	d	HpV ko p p%( p/2 pHNXfHg p	d	 pL &*%);?<p<p ooc"	<p
 ooc"<p  8<p 
.	/<p~ `d9p9p'*9p=C__^=\9p	*	+9px aeDpDp(+Dp>Doon>]Dp	*	+DpV 48=A;?[p[p [p
 #OOC0[p __V__S%9:[p  8[p 
*	+[pr7   r,   c                      e Zd ZdefdZddddededej                  e	   dej                  e
   d	ee   f
d
Zeeeedddedej                  ej                   e      dej                  ej                   e      dej                  e   d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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
   d	ee   fdZeeeeeeeddd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j                   e      d!ej                  e   dej                  e
   d	ed   fd"Zeeedd#d$ej                   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j6                  eej                  ej8                     f   dedej                  e
   d	ed   fd*Zdd(ded+ej                   e   d,edej                  e
   d	ed   f
d-Zdd(ded.ej                   e   d,e dej                  e
   d	ed   f
d/Z!dd(dedej                  e
   d	ee"   fd0Z#eeedd1deded!ej                  e   dej                  e$   d ej                  ej                   e      dej                  e
   d	ed   fd2Z%dd(dedej                  e
   d	ed   fd3Z&edd4d%edej                  e   dej                  e
   d	ed   fd5Z'eeeedd6d7ej                  ej                   e      dej                  e   dej                  ej                   e      d&ej                  e   dej                  e
   d	ed   fd8Z(dd(dej                   e   dej                  e
   d	ed   fd9Z)e*jV                  dd(d:edej                  e
   d	ejX                  eejX                  e-         fd;       Z.eeeedd<ded=ed>ej                  e   d?ej                  ej                   e      d@ej                  e   dAej                  e   dej                  e
   d	ee/   fdBZ0ddddddddCdedDedej                  e   dej                  e   dej                  e   dej                  e   dEej                  e   dFej                  e	   dej                  e
   d	ee1   fdGZ2edd4d%edej                  e   dej                  e
   d	ee"   fdHZ3dddIdedDedej                  e   dej                  e
   d	ee4   f
dJZ5dd(d:edej                  e
   d	ee6   fdKZ7dd(dej                  e
   d	eejp                  e6      fdLZ9dd(dMedej                  e
   d	ee:   fdNZ;eeeeeeeddOdMedPe<dQe=dej                  e   dRej                  e   dSej                  e   d!ej                  e   d ej                  ej                   e      dTej                  ej                   e>      dUej                  e?   dej                  e
   d	ed   fdVZ@dddddddWdedej                  e   dej                  e   dXej                  e   dej                  e   dFej                  e	   dej                  e
   d	eeA   fdYZBdddZdedDej                  e   dej                  e
   d	eeC   fd[ZDdd(d:edej                  e
   d	ed   fd\ZEdd(dedej                  e
   d	ee6   fd]ZFe*jV                  eeeeedd^d%ed_ej                  e   d`ej                  e   daej                  e   dej                  e   dej                  e   dej                  e
   d	ejX                  eejX                  e-         fdb       ZGdd(dedej                  e
   d	eeH   fdcZIdd(deddedeedej                  e
   d	ed   f
dfZJdd(deddedeedej                  e
   d	ed   f
dgZKddddhdedej                  e   dej                  e   dej                  e
   d	eeL   f
diZMdd(dedjedej                  e
   d	ee   fdkZNdd(dedledej                  e
   d	ee   fdmZOeeddndeddedoej                  e   dpej                  ej                   e      dej                  e
   d	ee   fdqZPy)rAsyncRawDatasetsClientr-   c                    || _         y r/   r0   r2   s     r4   r5   zAsyncRawDatasetsClient.__init__,  r6   r7   Nr8   r;   r<   r9   r:   r=   c                  K   | j                   j                  j                  dt        |       ddd|i|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
                  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 k# t&        $ r6 t)        |j
                  t        |j                        |j*                        w xY ww)a1  
        Apply delta changes (add, edit, delete) to a dataset version with conflict detection.

        This endpoint:
        - Creates a new version with the applied changes
        - Validates that baseVersion matches the latest version (unless override=true)
        - Returns 409 Conflict if baseVersion is stale and override is not set

        Use `override=true` query parameter to force version creation even with stale baseVersion.

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

        request : DatasetItemChangesPublic

        override : typing.Optional[bool]

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

        Returns
        -------
        AsyncHttpResponse[DatasetVersionPublic]
            Version created successfully
        r?   r@   rA   r9   rB   rC   rD   NrJ   rK   rL   rO   rR   rS   rU   rV   rW   r1   rZ   r<   r
   r[   rX   r\   r]   r   r   rG   r   r   r^   rH   r_   r`   r   r   r   r   ra   rb   s           r4   rf   z1AsyncRawDatasetsClient.apply_dataset_item_changes/  s`    D ..;;CC"#3B#7"8GH  2 , D 
 
	-	ti++1c1( 2 ) 0 ))%HH$$+% !2!23

3$"(//&**"=$-NN$4	 	 $$+# !2!23

3$"(//&**"=$-NN$4	 	 $$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noow
r  	ty'<'<d9K\K\F]dmdrdrss	ts8   AK7J2K7AJ5 (K7)GJ5 ,K75?K44K7rg   rl   rh   ri   rj   rk   c                h  K   | j                   j                  j                  dd|t        |t        j
                  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                  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 dataset items

        Parameters
        ----------
        update : DatasetItemUpdate

        ids : typing.Optional[typing.Sequence[str]]
            List of dataset item IDs to update (max 1000). Mutually exclusive with 'filters'.

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

        dataset_id : typing.Optional[str]
            Dataset ID. Required when using 'filters', optional when using 'ids'.

        merge_tags : typing.Optional[bool]
            If true, merge tags with existing tags instead of replacing them. Default: false. When using 'filters', this is automatically set to true.

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

        Returns
        -------
        AsyncHttpResponse[None]
        rn   ro   rp   rq   rt   rB   rC   ru   NrJ   rK   rO   rR   rL   rS   rW   )r1   rZ   r<   r   r\   rv   r   r   r[   rX   r   r   r^   rH   r]   r_   r`   r   rG   r   r   ra   rw   s	            r4   rx   z1AsyncRawDatasetsClient.batch_update_dataset_items  s    F ..;;CC-B#@Q0R^e )A"/@G )
  2 ,% D 
 
	(	ti++1c1()$GG$$+% !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooK
F  	ty'<'<d9K\K\F]dmdrdrss	ts7   A,F2.E./F24$E0 F2B*E0 ,F20?F//F2ry   rz   r{   r|   r}   r~   r   r   r   c       
         8  K   | j                   j                  j                  d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  
        Find datasets

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

        size : typing.Optional[int]

        with_experiments_only : typing.Optional[bool]

        with_optimizations_only : typing.Optional[bool]

        prompt_id : typing.Optional[str]

        project_id : typing.Optional[str]

        name : typing.Optional[str]

        sorting : typing.Optional[str]

        filters : typing.Optional[str]

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

        Returns
        -------
        AsyncHttpResponse[DatasetPagePublic]
            Dataset resource
        r   r   r   r   NrJ   rK   rL   rO   rW   )r1   rZ   r<   rX   r\   r]   r   r   rG   r   r   r   r^   rH   ra   r   s                 r4   r   z$AsyncRawDatasetsClient.find_datasets  s    Z ..;;CC!)>+B&(""
 , D 
 
	 	ti++1c1% / ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo;
6  	ty'<'<d9K\K\F]dmdrdrss	ts3   7DCDAC DC +,D?DDr   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                         }t        |
j                  t        |
j                        |      7 e# t        $ r6 t        |
j                  t        |
j                        |
j                        w xY ww)a  
        Create dataset

        Parameters
        ----------
        name : str

        id : typing.Optional[str]

        project_id : typing.Optional[str]
            Project ID. Takes precedence over project_name when both are provided.

        project_name : typing.Optional[str]
            For project scope, specify either project_id or project_name. If project_name is provided and the project does not exist, it will be created. Ignored when project_id is provided. If neither is provided, the dataset is created at workspace level.

        type : typing.Optional[DatasetWriteType]

        visibility : typing.Optional[DatasetWriteVisibility]

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

        description : typing.Optional[str]

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

        Returns
        -------
        AsyncHttpResponse[None]
        r   rA   r   rB   rC   ru   NrJ   rK   rO   rW   r1   rZ   r<   r[   rX   r   rG   r   r   r^   rH   ra   r   s               r4   r   z%AsyncRawDatasetsClient.create_dataset$	  s     V ..;;CC!( ,(*	  2 ,# D 
 
	&	ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo3
.  	ty'<'<d9K\K\F]dmdrdrss	ts5   >C* B&C*$B( *C*+B( ;,C*(?C''C*r   r   r   r   c                  K   | j                   j                  j                  dd||t        |t        j
                  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  
        Create/update dataset items based on dataset item id

        Parameters
        ----------
        items : typing.Sequence[DatasetItemWrite]

        dataset_name : typing.Optional[str]
            If null, dataset_id must be provided

        dataset_id : typing.Optional[str]
            If null, dataset_name must be provided

        batch_group_id : typing.Optional[str]
            Optional batch group ID to group multiple batches into a single dataset version. If null, mutates the latest version instead of creating a new one.

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

        Returns
        -------
        AsyncHttpResponse[None]
        r   r   rp   rq   r   rB   rC   ru   NrJ   rK   rO   rW   )r1   rZ   r<   r   r\   rv   r   r[   rX   r   rG   r   r   r^   rH   ra   r   s           r4   r   z5AsyncRawDatasetsClient.create_or_update_dataset_itemsj	  s    @ ..;;CC' ,(@!foo>N.O[b #1  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DCD#$C DC ,D?DDr   r   c                8  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                  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         $ r6 t#        |j                  t        |j                        |j$                        w xY ww)a  
        Create dataset items from uploaded CSV file. CSV should have headers in the first row. Processing happens asynchronously in batches.

        Parameters
        ----------
        file : typing.Dict[str, typing.Optional[typing.Any]]

        dataset_id : str

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

        Returns
        -------
        AsyncHttpResponse[None]
        r   rA   r   rB   r   r   NrJ   rK   rO   rR   rL   rS   rU   rW   )r1   rZ   r<   r[   rX   r   r   r^   rH   r\   r]   r_   r`   r   rG   r   r   r   ra   r   s         r4   r   z4AsyncRawDatasetsClient.create_dataset_items_from_csv	  s    . ..;;CC0(  5 , D 
 
		ti++1c1()$GG$$+% !2!23

3$"(//&**"=$-NN$4	 	 $$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooU
P  	ty'<'<d9K\K\F]dmdrdrss	ts4   9HGH$G %H&EG *,H?HHr   r   c          
        K   | j                   j                  j                  dt        |       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                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)a  
        Create dataset items from spans with enriched metadata

        Parameters
        ----------
        dataset_id : str

        span_ids : typing.Sequence[str]
            Set of span IDs to add to the dataset

        enrichment_options : SpanEnrichmentOptions

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

        Returns
        -------
        AsyncHttpResponse[None]
        r?   r   rA   rp   rq   r   rB   rC   ru   NrJ   rK   rO   rW   )r1   rZ   r<   r
   r   r%   r[   rX   r   rG   r   r   r^   rH   ra   r   s          r4   r   z6AsyncRawDatasetsClient.create_dataset_items_from_spans	  s    6 ..;;CC"#3J#?"@@QR$&M.;P\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6   ADB=D$B? DB? ,D??C>>Dr   c          
        K   | j                   j                  j                  dt        |       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                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)a  
        Create dataset items from traces with enriched metadata

        Parameters
        ----------
        dataset_id : str

        trace_ids : typing.Sequence[str]
            Set of trace IDs to add to the dataset

        enrichment_options : TraceEnrichmentOptions

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

        Returns
        -------
        AsyncHttpResponse[None]
        r?   r   rA   rp   rq   r   rB   rC   ru   NrJ   rK   rO   rW   )r1   rZ   r<   r
   r   r&   r[   rX   r   rG   r   r   r^   rH   ra   r   s          r4   r   z7AsyncRawDatasetsClient.create_dataset_items_from_traces
  s    6 ..;;CC"#3J#?"@@RS&&M.;Q]d'  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r}  c                :  K   | j                   j                  j                  dt        |       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 dataset by id

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

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

        Returns
        -------
        AsyncHttpResponse[DatasetPublic]
            Dataset resource
        r?   r   r   NrJ   rK   rL   rO   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r   r   r   r^   rH   ra   r   s         r4   r   z(AsyncRawDatasetsClient.get_dataset_by_idJ
  s    $ ..;;CC"#3B#7"89+ 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4   8DCD AC DC ,,D?DDr   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                         }t        |j
                  t        |j                        |      7 e# t        $ r6 t        |j
                  t        |j                        |j                        w xY ww)a  
        Update dataset by id

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

        name : str

        description : typing.Optional[str]

        visibility : typing.Optional[DatasetUpdateVisibility]

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

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

        Returns
        -------
        AsyncHttpResponse[None]
        r?   r   r   rB   rC   ru   NrJ   rK   rO   rW   )r1   rZ   r<   r
   r[   rX   r   rG   r   r   r^   rH   ra   r   s	            r4   r   z%AsyncRawDatasetsClient.update_datasetp
  s     @ ..;;CC"#3B#7"89*(	  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C2B.	C2$B0 2C23B0 ,C20?C//C2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 dataset by id

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

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

        Returns
        -------
        AsyncHttpResponse[None]
        r?   r   r   NrJ   rK   rO   rW   r1   rZ   r<   r
   rX   r   rG   r   r   r^   rH   ra   r   s        r4   r   z%AsyncRawDatasetsClient.delete_dataset
  s     " ..;;CC"#3B#7"89+ 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   8C$B C$ $B" $C$%B" 5,C$"?C!!C$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 dataset by name

        Parameters
        ----------
        dataset_name : str

        project_name : typing.Optional[str]

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

        Returns
        -------
        AsyncHttpResponse[None]
        r   rA   r   rB   rC   ru   NrJ   rK   rO   rW   ry  r   s         r4   r   z-AsyncRawDatasetsClient.delete_dataset_by_name
  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r  r   r   c                F  K   | j                   j                  j                  dd||t        |t        j
                  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  
        Delete dataset items using one of two modes:
        1. **Delete by IDs**: Provide 'item_ids' to delete specific items by their IDs
        2. **Delete by filters**: Provide 'dataset_id' with optional 'filters' to delete items matching criteria

        When using filters, an empty 'filters' array will delete all items in the specified dataset.

        Parameters
        ----------
        item_ids : typing.Optional[typing.Sequence[str]]
            List of dataset item IDs to delete (max 1000). Use this to delete specific items by their IDs. Mutually exclusive with 'dataset_id' and 'filters'.

        dataset_id : typing.Optional[str]
            Dataset ID to scope the deletion. Required when using 'filters'. Mutually exclusive with 'item_ids'.

        filters : typing.Optional[typing.Sequence[DatasetItemFilter]]
            Filters to select dataset items to delete within the specified dataset. Must be used with 'dataset_id'. Mutually exclusive with 'item_ids'. Empty array means 'delete all items in the dataset'.

        batch_group_id : typing.Optional[str]
            Optional batch group ID to group multiple delete operations into a single dataset version. If null, mutates the latest version instead of creating a new one.

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

        Returns
        -------
        AsyncHttpResponse[None]
        r   rA   rp   rq   r   rB   rC   ru   NrJ   rK   rO   rR   rL   rS   rW   )r1   rZ   r<   r   r\   rv   r   r[   rX   r   r   r^   rH   r]   r_   r`   r   rG   r   r   ra   r   s           r4   r   z+AsyncRawDatasetsClient.delete_dataset_items
  ss    J ..;;CC.$(B#@Q0R^e #1  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s7   AF!EF!#$E F!B*E 2,F!?FF!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 datasets batch

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

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

        Returns
        -------
        AsyncHttpResponse[None]
        r   rA   rh   rB   rC   ru   NrJ   rK   rO   rW   ry  r   s        r4   r   z,AsyncRawDatasetsClient.delete_datasets_batch:  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s2   7C#BC#$B! #C#$B! 4,C#!?C  C#r   c               P  K   | j                   j                  j                  dt        |       dd      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)a0  
        Downloads the exported CSV file for a completed export job. This endpoint proxies the file download to avoid exposing internal storage URLs.

        Parameters
        ----------
        job_id : str

        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]]]
            CSV file content
        r   r   r   r   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)NrJ   rK   r   c                2   K   | 3 d {   }| 7 
6 y wr/   r   r   s     r4   r   zQAsyncRawDatasetsClient.download_dataset_export.<locals>.stream.<locals>.<genexpr>~       !k!k6&!k!k   r   rO   rR   rL   rS   rU   rW   )rX   r   r   aiter_bytesareadr   r^   rH   r\   r]   r_   r`   r   rG   r   r   r   ra   r   s     r4   r   z>AsyncRawDatasetsClient.download_dataset_export.<locals>.streamx  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#)r1   rZ   r   r
   r   r\   AsyncIteratorr   r   s     ` @r4   r   z.AsyncRawDatasetsClient.download_dataset_export_  s     & ''44;;./?/G.H	R+ < 
 
 $x"3F4H4H4O"P $xL . Y
 
 
X !Y
 
 
 
sW   :B&BB&0B2B3B:B&BB&BB&B#BB#B&r   r   r   r   r   r   c          
      Z  K   | j                   j                  j                  dt        |       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                         }
t        |j
                  t        |j                        |
      7 # t        $ r6 t        |j
                  t        |j                        |j                         w xY ww)a  
        Generate synthetic dataset samples using LLM based on existing data patterns

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

        model : str
            The model to use for synthetic data generation

        sample_count : typing.Optional[int]
            Number of synthetic samples to generate

        preserve_fields : typing.Optional[typing.Sequence[str]]
            Fields to preserve patterns from original data

        variation_instructions : typing.Optional[str]
            Additional instructions for data variation

        custom_prompt : typing.Optional[str]
            Custom prompt to use for generation instead of auto-generated one

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

        Returns
        -------
        AsyncHttpResponse[DatasetExpansionResponse]
            Generated synthetic samples
        r?   r   rA   r   rB   rC   ru   NrJ   rK   rL   rO   rW   )r1   rZ   r<   r
   r[   rX   r\   r]   r   r   rG   r   r   r   r^   rH   ra   r   s              r4   r   z%AsyncRawDatasetsClient.expand_dataset  s*    R ..;;CC"#3B#7"8D ,#2*@!.  2 , D 
 
	 	ti++1c1, 6 ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo;
6  	ty'<'<d9K\K\F]dmdrdrss	ts7   AD+
C'D+AC) +D+,C) <,D+)?D((D+r   r   r   r   c                N  K   | j                   j                  j                  dt        |       d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)aW  
        Find dataset items with experiment items

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

        experiment_ids : str

        page : typing.Optional[int]

        size : typing.Optional[int]

        filters : typing.Optional[str]

        sorting : typing.Optional[str]

        search : typing.Optional[str]

        truncate : typing.Optional[bool]

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

        Returns
        -------
        AsyncHttpResponse[DatasetItemPageCompare]
            Dataset item resource
        r?   r   r   r  r   NrJ   rK   rL   rO   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r   r   r   r^   rH   ra   r  s                r4   r  z?AsyncRawDatasetsClient.find_dataset_items_with_experiment_items  s!    T ..;;CC"#3B#7"88PQ"0"" $ , D 
 
		ti++1c1* 4 ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo7
2  	ty'<'<d9K\K\F]dmdrdrss	ts7   AD%C!D%
AC# %D%&C# 6,D%#?D""D%c                :  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                         }t        |j                  t        |j                        |      7 # t        $ r6 t        |j                  t        |j                        |j                        w xY ww)ab  
        Get dataset by name

        Parameters
        ----------
        dataset_name : str

        project_name : typing.Optional[str]

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

        Returns
        -------
        AsyncHttpResponse[DatasetPublic]
            Dataset resource
        r  rA   r   rB   rC   ru   NrJ   rK   rL   rO   rW   )r1   rZ   r<   r[   rX   r\   r]   r   r   rG   r   r   r   r^   rH   ra   r  s          r4   r  z0AsyncRawDatasetsClient.get_dataset_by_identifier/  s    0 ..;;CC* , ,
  2 , D 
 
		ti++1c1! + ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo5
0  	ty'<'<d9K\K\F]dmdrdrss	tr  r  c                D  K   | j                   j                  j                  dt        |       d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 experiment items stats for dataset

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

        experiment_ids : str

        filters : typing.Optional[str]

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

        Returns
        -------
        AsyncHttpResponse[ProjectStatsPublic]
            Experiment items stats resource
        r?   r
  r   r  r   NrJ   rK   rL   rO   rW   )r1   rZ   r<   r
   rX   r\   r]   r$   r   rG   r   r   r   r^   rH   ra   r  s           r4   r  z9AsyncRawDatasetsClient.get_dataset_experiment_items_statsc  s    6 ..;;CC"#3B#7"88VW"0" , D 
 
		ti++1c1& 0 ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo-
(  	ty'<'<d9K\K\F]dmdrdrss	ts5   =D C D AC  D !C 1,D ?DD c                p  K   | j                   j                  j                  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)a[  
        Retrieves the current status of a dataset export job

        Parameters
        ----------
        job_id : str

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

        Returns
        -------
        AsyncHttpResponse[DatasetExportJobPublic]
            Export job details
        r   r   r   NrJ   rK   rL   rO   rU   rS   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r   r   r^   rH   r_   r`   r   r   ra   r  s         r4   r  z-AsyncRawDatasetsClient.get_dataset_export_job  sj    $ ..;;CC./?/G.HI+ D 
 
	
	ti++1c1* 4 ) 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s5   8F6E1F6 AE4 F6B*E4 ,F64?F33F6c                f  K   | j                   j                  j                  dd|       d{   }	 d|j                  cxk  rdk  rin nft	        j
                  t        j                  t           t        t        j                  t           |j                                     }t        ||      S |j                         }t        |j                  t        |j                        |	      7 # t        $ r6 t        |j                  t        |j                        |j                  	      w xY ww)
a  
        Retrieves all export jobs for the workspace. This is used to restore the export panel state after page refresh.

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

        Returns
        -------
        AsyncHttpResponse[typing.List[DatasetExportJobPublic]]
            List of export jobs
        r  r   r   NrJ   rK   rL   rO   rW   )r1   rZ   r<   rX   r\   r]   r  r   r   rG   r   r   r   r^   rH   ra   r  s        r4   r  z.AsyncRawDatasetsClient.get_dataset_export_jobs  s      ..;;CC-+ D 
 
	
	ti++1c1KK 67 $kk*@A ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo%
   	ty'<'<d9K\K\F]dmdrdrss	ts3   ,D1C-D1A=C/ 1D12C/ ,D1/?D..D1r  c                :  K   | j                   j                  j                  dt        |       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 dataset item by id

        Parameters
        ----------
        item_id : str

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

        Returns
        -------
        AsyncHttpResponse[DatasetItemPublic]
            Dataset item resource
        r  r   r   NrJ   rK   rL   rO   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r   r   r   r^   rH   ra   r  s         r4   r  z-AsyncRawDatasetsClient.get_dataset_item_by_id  s    $ ..;;CC()9')B(CD+ 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r  r  r   rQ   r  r  r  r  c       
           K   | j                   j                  j                  dt        |       d|||||||t	        |	t
        j                  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                  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  
        Partially update dataset item by id. Only provided fields will be updated.

        Parameters
        ----------
        item_id : str

        source : DatasetItemWriteSource

        data : JsonNode

        id : typing.Optional[str]

        trace_id : typing.Optional[str]

        span_id : typing.Optional[str]

        description : typing.Optional[str]

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

        evaluators : typing.Optional[typing.Sequence[EvaluatorItemWrite]]

        execution_policy : typing.Optional[ExecutionPolicyWrite]

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

        Returns
        -------
        AsyncHttpResponse[None]
        r  ro   rp   rq   r"  rB   rC   ru   NrJ   rK   rO   rU   rL   rS   rW   )r1   rZ   r<   r
   r   r\   rv   r    r!   r[   rX   r   r   r^   rH   r]   r_   r`   r   rG   r   r   ra   r#  s                 r4   r$  z)AsyncRawDatasetsClient.patch_dataset_item  s    ^ ..;;CC()9')B(CD$" *E&6??CU3Vbi %L,9MY`%   2 ,- D 
 
	0	ti++1c1()$GG$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooS
N  	ty'<'<d9K\K\F]dmdrdrss	ts7   A<G>E>?G$F  (G)B*F  ,G ?F??Gr%  r&  c          
      J  K   | j                   j                  j                  dt        |       d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 dataset items

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

        page : typing.Optional[int]

        size : typing.Optional[int]

        version : typing.Optional[str]

        filters : typing.Optional[str]

        truncate : typing.Optional[bool]

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

        Returns
        -------
        AsyncHttpResponse[DatasetItemPagePublic]
            Dataset items resource
        r?   r(  r   r)  r   NrJ   rK   rL   rO   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r   r   r   r^   rH   ra   r*  s              r4   r+  z(AsyncRawDatasetsClient.get_dataset_itemsk  s    H ..;;CC"#3B#7"8?""$ , D 
 
		ti++1c1) 3 ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo3
.  	ty'<'<d9K\K\F]dmdrdrss	ts7   A D#CD#AC! #D#$C! 4,D#!?D  D#r,  c                B  K   | j                   j                  j                  dt        |       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)ap  
        Get dataset items output columns

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

        experiment_ids : typing.Optional[str]

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

        Returns
        -------
        AsyncHttpResponse[PageColumns]
            Dataset item output columns
        r?   r.  r   r   r   NrJ   rK   rL   rO   rW   )r1   rZ   r<   r
   rX   r\   r]   r#   r   rG   r   r   r   r^   rH   ra   r/  s          r4   r0  z7AsyncRawDatasetsClient.get_dataset_items_output_columns  s    0 ..;;CC"#3B#7"88_` . , 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 0,D?DDc                  K   | j                   j                  j                  dt        |       dd|       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  
        Marks a dataset export job as viewed by setting the viewed_at timestamp. This is used to track that a user has seen a failed job's error message. This operation is idempotent.

        Parameters
        ----------
        job_id : str

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

        Returns
        -------
        AsyncHttpResponse[None]
        r   r2  r   r   NrJ   rK   rO   rU   rL   rS   rW   )r1   rZ   r<   r
   rX   r   r   r^   rH   r\   r]   r_   r`   r   rG   r   r   ra   r3  s        r4   r4  z5AsyncRawDatasetsClient.mark_dataset_export_job_viewed  sD    " ..;;CC./?/G.HU+ 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s4   9E?D;E?$D= %E?&B*D= ,E?=?E<<E?c                <  K   | j                   j                  j                  dt        |       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  
        Initiates an asynchronous CSV export job for the dataset. Returns immediately with job details for polling.

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

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

        Returns
        -------
        AsyncHttpResponse[DatasetExportJobPublic]
            Existing export job in progress
        r?   r6  rA   r   NrJ   rK   rL   rO   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r   r   r   r^   rH   ra   r   s         r4   r7  z+AsyncRawDatasetsClient.start_dataset_export  s    $ ..;;CC"#3B#7"8@+ D 
 
	
	ti++1c1* 4 ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo%
   	ty'<'<d9K\K\F]dmdrdrss	ts4   9DCDAC DC -,D?DDr8  r9  r:  r;  c               V  	K   | j                   j                  j                  d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  
        Stream dataset items

        Parameters
        ----------
        dataset_name : str

        last_retrieved_id : typing.Optional[str]

        steam_limit : typing.Optional[int]

        dataset_version : typing.Optional[str]

        project_name : typing.Optional[str]

        filters : typing.Optional[str]

        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]]]
            Dataset items stream or error during process
        r=  rA   r>  rB   rC   ru   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                         }t        j                   t        j                        |      7 ?# t        $ r6 t        j                   t        j                        j                        w xY ww)NrJ   rK   r   c                2   K   | 3 d {   }| 7 
6 y wr/   r   r   s     r4   r   zNAsyncRawDatasetsClient.stream_dataset_items.<locals>.stream.<locals>.<genexpr>e  r  r  r   rO   rW   )rX   r   r   r  r  rG   r   r   r^   rH   ra   r   s     r4   r   z;AsyncRawDatasetsClient.stream_dataset_items.<locals>.stream_  s     i339c9Q`Qlo&9&9,&Mrv0%.!kY=R=R^i=R=j!k   $//+++%.^^%5N
 9+@+@$yO`O`Jahvww ,& "$-$9$94	HYHYCZajaoao s;   C.AB, C.B, *B*+B, ?+C.*B, ,?C++C.)r1   rZ   r   r[   r   r\   r  r   rA  s
          ` @r4   rB  z+AsyncRawDatasetsClient.stream_dataset_items(  s     J ''44;;. ,%6*#2 ,"  2 , < 
 
  x"3F4H4H4O"P x  . E
 
 
D !E
 
 
 
sY   =B)BB)0B5B6B=B)B	B)BB)B&BB&"B)c                r  K   | j                   j                  j                  dt        |       d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)aS  
        Compare the latest committed dataset version with the current draft state. This endpoint provides insights into changes made since the last version was committed. The comparison calculates additions, modifications, deletions, and unchanged items between the latest version snapshot and current draft.

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

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

        Returns
        -------
        AsyncHttpResponse[DatasetVersionDiff]
            Diff computed successfully
        r?   rD  r   r   NrJ   rK   rL   rO   rU   rS   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r   r   r^   rH   r_   r`   r   r   ra   r   s         r4   rE  z/AsyncRawDatasetsClient.compare_dataset_versionsq  sl    $ ..;;CC"#3B#7"8G+ D 
 
	
	ti++1c1& 0 ) 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s5   9F7E2F7AE5 F7B*E5 ,F75?F44F7rF  rG  c                  K   | j                   j                  j                  dt        |       dt        |       ddd|i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
                  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 4# t$        $ r6 t'        |j
                  t        |j                        |j(                        w xY ww)a  
        Add a tag to a specific dataset version for easy reference (e.g., 'baseline', 'v1.0', 'production')

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

        version_hash : str

        tag : str

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

        Returns
        -------
        AsyncHttpResponse[None]
        r?   rI  rJ  rA   rG  rB   rC   ru   NrJ   rK   rO   rR   rL   rS   rU   rV   rW   )r1   rZ   r<   r
   r[   rX   r   r   r^   rH   r\   r]   r_   r`   r   rG   r   r   r   r   ra   rK  s          r4   rL  z)AsyncRawDatasetsClient.create_version_tag  sC    * ..;;CC"#3B#7"8HXYeHfGgglms  2 , D 
 
	&	ti++1c1()$GG$$+% !2!23

3$"(//&**"=$-NN$4	 	 $$+# !2!23

3$"(//&**"=$-NN$4	 	 $$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noog
b  	ty'<'<d9K\K\F]dmdrdrss	ts7   AKJK$J	 <K=GJ	 ,K	?KKc          
        K   | j                   j                  j                  dt        |       dt        |       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  
        Remove a tag from a dataset version. The version itself is not deleted, only the tag reference.

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

        version_hash : str

        tag : str

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

        Returns
        -------
        AsyncHttpResponse[None]
        r?   rN  rO  r   r   NrJ   rK   rO   rW   r  rK  s          r4   rP  z)AsyncRawDatasetsClient.delete_version_tag  s     * ..;;CC"#3B#7"8
CST`CaBbbhiyz}i~h  A+ 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C<B8C<$B: <C<=B: ,C<:?C99C<rQ  c                z  K   | j                   j                  j                  dt        |       dd||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)a  
        Get paginated list of versions for a dataset, ordered by creation time (newest first)

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

        page : typing.Optional[int]

        size : typing.Optional[int]

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

        Returns
        -------
        AsyncHttpResponse[DatasetVersionPagePublic]
            Dataset versions
        r?   rS  r   rT  r   NrJ   rK   rL   rO   rR   rS   rW   )r1   rZ   r<   r
   rX   r\   r]   r   r   rG   r   r   r^   rH   r_   r`   r   r   ra   rU  s           r4   rV  z,AsyncRawDatasetsClient.list_dataset_versions  sz    6 ..;;CC"#3B#7"8	B , D 
 
		ti++1c1, 6 ) 0 ))%HH$$+% !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooC
>  	ty'<'<d9K\K\F]dmdrdrss	ts6   =F;E6 F;AE9  F;!B*E9 ,F;9?F88F;rW  c                  K   | j                   j                  j                  dt        |       ddd|i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/  
        Restores the dataset to a previous version state by creating a new version with items copied from the specified version. If the version is already the latest, returns it as-is (no-op).

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

        version_ref : str
            Version hash or tag to restore from

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

        Returns
        -------
        AsyncHttpResponse[DatasetVersionPublic]
            Version restored successfully
        r?   rY  rA   rW  rB   rC   ru   NrJ   rK   rL   rO   rU   rS   rW   )r1   rZ   r<   r
   r[   rX   r\   r]   r   r   rG   r   r   r^   rH   r_   r`   r   r   ra   rZ  s          r4   r[  z.AsyncRawDatasetsClient.restore_dataset_versionL  s    * ..;;CC"#3B#7"88IJ{  2 , D 
 
		ti++1c1( 2 ) 0 ))%HH$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooI
D  	ty'<'<d9K\K\F]dmdrdrss	ts8   AGE=GAF  'G(B*F  ,G ?F??Gr\  c                  K   | j                   j                  j                  dt        |       ddd|i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
                  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  
        Get a specific version by its version name (e.g., 'v1', 'v373'). This is more efficient than paginating through all versions for large datasets.

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

        version_name : str
            Version name in format 'vN' (e.g., 'v1', 'v373')

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

        Returns
        -------
        AsyncHttpResponse[DatasetVersionPublic]
            Dataset version
        r?   r^  rA   r\  rB   rC   ru   NrJ   rK   rL   rO   rR   rS   rU   rW   )r1   rZ   r<   r
   r[   rX   r\   r]   r   r   rG   r   r   r^   rH   r_   r`   r   r   r   ra   r_  s          r4   r`  z/AsyncRawDatasetsClient.retrieve_dataset_version  s    * ..;;CC"#3B#7"88JK  2 , D 
 
	"	ti++1c1( 2 ) 0 ))%HH$$+% !2!23

3$"(//&**"=$-NN$4	 	 $$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo_
Z  	ty'<'<d9K\K\F]dmdrdrss	ts8   AIHIAH 'I(EH ,,I?IIra  rb  rc  c                  K   | j                   j                  j                  dt        |       dt        |       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
                  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 k# t&        $ r6 t)        |j
                  t        |j                        |j*                        w xY ww)am  
        Update a dataset version's change_description and/or add new tags

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

        version_hash : str

        change_description : typing.Optional[str]
            Optional description of changes in this version

        tags_to_add : typing.Optional[typing.Sequence[str]]
            Optional list of tags to add to this version

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

        Returns
        -------
        AsyncHttpResponse[DatasetVersionPublic]
            Version updated successfully
        r?   rI  ro   re  rB   rC   ru   NrJ   rK   rL   rO   rR   rS   rU   rV   rW   ru  rf  s	            r4   rg  z-AsyncRawDatasetsClient.update_dataset_version  sj    @ ..;;CC"#3B#7"8HXYeHfGgh&8*
  2 , D 
 
	-	ti++1c1( 2 ) 0 ))%HH$$+% !2!23

3$"(//&**"=$-NN$4	 	 $$+# !2!23

3$"(//&**"=$-NN$4	 	 $$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noow
r  	ty'<'<d9K\K\F]dmdrdrss	ts8   ALJ=LAK  3L4GK  ,L ?K??L)Qrh  ri  rj  r   r5   rk  r   r\   r_   rl  r   r   r   rf   r[   r   rv   r   rx   rm  r   r   r)   r*   r   r   r   rn  r`   r   r%   r   r&   r   r   r   r(   r   r   r   r   r   ro  asynccontextmanagerr  r   r   r   r   r   r  r  r$   r  r   r  r  r  r   r  r   r"   r    r!   r$  r   r+  r#   r0  r4  r7  rB  r   rE  rL  rP  r   rV  r[  r`  rg  r   r7   r4   rr  rr  +  s   .*< . +/;?]p]p *	]p
 //$']p  8]p 
/	0]pF 6:GK+/,0;?Hp "Hp __V__S12	Hp
 1B!CDHp OOC(Hp OOD)Hp  8Hp 
4	 HpZ &*%)7;9=*.+/%)(,(,;?Jp ooc"Jp ooc"	Jp
  &t4Jp "(!6Jp ??3'Jp OOC(Jp ooc"Jp %Jp %Jp  8Jp 
,	-Jp` $(+/-126>B6:,0;?Dp Dp OOC 	Dp
 OOC(Dp ooc*Dp oo./Dp OO$:;Dp oofooc23Dp __S)Dp  8Dp 
4	 DpT .2+//3;?7p /07p ooc*	7p
 OOC(7p ,7p  87p 
4	 7p| <@Ap kk#vvzz::;Ap 	Ap
  8Ap 
4	 ApR <@0p0p //#&	0p
 20p  80p 
4	 0pp <@0p0p ??3'	0p
 30p  80p 
4	 0pf NR$p$p+1??>+J$p	=	)$pV -1?C6:;?5p5p 	5p
 __S)5p OO$;<5p oofooc235p  85p 
4	 5pp NRpp+1??>+Jp	4	 pD .2;?*p *p ooc*	*p
  8*p 
4	 *p^ ;?+/GK/3;?Gp //&//#"67Gp OOC(	Gp
 1B!CDGp ,Gp  8Gp 
4	 GpT `d#pooc*#p=C__^=\#p	4	 #pJ ##QU>!>!/5~/N>!			/0D0DU0KL	M>! $>!J .2AE7;.2;?FpFp 	Fp
 ooc*Fp  )=>Fp !' 4Fp s+Fp  8Fp 
3	4FpZ &*%)(,(,'+*.;?EpEp 	Ep
 ooc"Ep ooc"Ep %Ep %Ep $Ep //$'Ep  8Ep 
1	2EpV .2;?2p 2p ooc*	2p
  82p 
=	)2pr )-;?1p1p 	1p
 %1p  81p 
-	.1ph RV/p/p/5~/N/p	1	2/pd EI"p"(//."A"p	6;;'=>	?"pJ SW$p$p060O$p	,	-$pX $()-(,,06:KOBF;?XpXp '	Xp
 Xp OOC Xp //#&Xp %Xp __S)Xp oofooc23Xp OOFOO4F$GHXp !//*>?Xp  8Xp 
4	 Xp| &*%)(,(,*.;?=p=p ooc"	=p
 ooc"=p %=p %=p //$'=p  8=p 
0	1=pF 04;?-p-p ,	-p
  8-p 
;	'-p` RV'p'p/5~/N'p	4	 'pT NR$p$p+1??>+J$p	1	2$pL ##
 37,004-1(,;?F! F! "??3/	F!
 __S)F!  -F! ooc*F! %F!  8F! 
		/0D0DU0KL	MF! $F!R NR/p/p+1??>+J/p	-	./pd koHpHp%(Hp25HpHNXfHgHp	4	 HpV ko p p%( p/2 pHNXfHg p	4	  pL &*%);?<p<p ooc"	<p
 ooc"<p  8<p 
3	4<p~ `d9p9p'*9p=C__^=\9p	/	09px aeDpDp(+Dp>Doon>]Dp	/	0DpV 48=A;?[p[p [p
 #OOC0[p __V__S%9:[p  8[p 
/	0[pr7   rr  )Qro  r\   json.decoderr   core.api_errorr   core.client_wrapperr   r   core.http_responser   r	   core.jsonable_encoderr
   core.pydantic_utilitiesr   core.request_optionsr   core.serializationr   errors.bad_request_errorr   errors.conflict_errorr   errors.not_found_errorr    types.dataset_expansion_responser   types.dataset_export_job_publicr   !types.dataset_item_changes_publicr   types.dataset_item_filterr   types.dataset_item_page_comparer   types.dataset_item_page_publicr   types.dataset_item_publicr   types.dataset_item_updater   types.dataset_item_writer   types.dataset_item_write_sourcer   types.dataset_page_publicr   types.dataset_publicr   types.dataset_version_diffr   !types.dataset_version_page_publicr   types.dataset_version_publicr   types.evaluator_item_writer    types.execution_policy_writer!   types.json_noder"   types.page_columnsr#   types.project_stats_publicr$   types.span_enrichment_optionsr%   types.trace_enrichment_optionsr&   types.dataset_update_visibilityr(   types.dataset_write_typer)   types.dataset_write_visibilityr*   r]   r`   r[   r,   rr  r   r7   r4   <module>r     s      ( % G @ 4 2 1 H 6 1 2 G D H 9 D B 9 9 7 D 9 0 ; H ? ; ? & , ; A C D 6 B v{{6::s#yp ypx?}p }pr7   