
    _j                    |    S SK Jr  S SKJrJrJrJr  SSKJrJ	r	  SSK
Jr  SSKJr   " S S\5      r " S	 S
\5      rg)    )annotations)OptionalIteratorAsyncIteratorList   )
WebsetItemListWebsetItemResponse)WebsetsBaseClient)WebsetsAsyncBaseClientc                     ^  \ rS rSrSrU 4S jrSSSS.     SS jjrSSS.SS jjrSSS.SS	 jjrSS
 jr	SS jr
SrU =r$ )WebsetItemsClient   z!Client for managing Webset Items.c                $   > [         TU ]  U5        g Nsuper__init__selfclient	__class__s     P/home/rurouni/.local/lib/python3.13/site-packages/exa_py/websets/items/client.pyr   WebsetItemsClient.__init__            Ncursorlimit	source_idc                   X#US.R                  5        VVs0 s H  u  pVUc  M
  XV_M     nnnU R                  SU S3USS9n[        R                  " U5      $ s  snnf )a  List all Items for a Webset.

Args:
    webset_id (str): The id or externalId of the Webset.
    cursor (str, optional): The cursor to paginate through the results.
    limit (int, optional): The number of results to return (max 200).
    source_id (str, optional): Filter items by source ID.

Returns:
    ListWebsetItemResponse: List of webset items.
r   r   sourceId/v0/websets//itemsGETparamsmethoditemsrequestr
   model_validate	r   	webset_idr   r   r    kvr)   responses	            r   listWebsetItemsClient.list   sg     /5R[#\#b#b#dv#d41hi$!$#dv<<,yk @X]<^%44X>> ws
   	AAr   r    c             #     #    Sn U R                  XX#S9nUR                   H  nUv   M	     UR                  (       a  UR                  (       d  gUR                  nMX  7faI  Iterate through all Items in a Webset, handling pagination automatically.

Args:
    webset_id (str): The id or externalId of the Webset.
    limit (int, optional): The number of results to return per page (max 200).
    source_id (str, optional): Filter items by source ID.
    
Yields:
    WebsetItem: Each item in the webset.
Nr   r4   datahas_morenext_cursorr   r0   r   r    r   r3   items          r   list_allWebsetItemsClient.list_all#   sZ      yyy\H 
 & $$H,@,@))F s   AAc               4    [        U R                  XUS95      $ )3  Collect all Items from a Webset into a list.

Args:
    webset_id (str): The id or externalId of the Webset.
    limit (int, optional): The number of results to return per page (max 200).
    source_id (str, optional): Filter items by source ID.
    
Returns:
    List[WebsetItem]: All items in the webset.
r6   )r4   r?   )r   r0   r   r    s       r   get_allWebsetItemsClient.get_all9   s     DMM)IMNOOr   c                Z    U R                  SU SU 3SS9n[        R                  " U5      $ )Get an Item by ID.

Args:
    webset_id (str): The id or externalId of the Webset.
    id (str): The id of the Webset item.

Returns:
    WebsetItem: The retrieved item.
r%   /items/r'   r*   r-   r	   r.   r   r0   idr3   s       r   getWebsetItemsClient.getF   s4     <<,yk Ee<T((22r   c                Z    U R                  SU SU 3SS9n[        R                  " U5      $ )Delete an Item.

Args:
    webset_id (str): The id or externalId of the Webset.
    id (str): The id of the Webset item.

Returns:
    WebsetItem: The deleted item.
r%   rG   DELETErH   rI   rJ   s       r   deleteWebsetItemsClient.deleteS   s4     <<,yk Eh<W((22r    
r0   strr   Optional[str]r   Optional[int]r    rV   returnr
   )r0   rU   r   rW   r    rV   rX   zIterator[WebsetItem]r0   rU   r   rW   r    rV   rX   zList[WebsetItem]r0   rU   rK   rU   rX   r	   __name__
__module____qualname____firstlineno____doc__r   r4   r?   rC   rL   rQ   __static_attributes____classcell__r   s   @r   r   r      sa    +! ?C$(T?!?5B?Nd?" BFbf *, AEae P33 3r   r   c                     ^  \ rS rSrSrU 4S jrSSSS.     SS jjrSSS.SS jjrSSS.SS	 jjrSS
 jr	SS jr
SrU =r$ )AsyncWebsetItemsClienta   z'Async client for managing Webset Items.c                $   > [         TU ]  U5        g r   r   r   s     r   r   AsyncWebsetItemsClient.__init__d   r   r   Nr   c                  #    X#US.R                  5        VVs0 s H  u  pVUc  M
  XV_M     nnnU R                  SU S3USS9I Sh  vN n[        R                  " U5      $ s  snnf  N 7f)r"   r#   Nr%   r&   r'   r(   r+   r/   s	            r   r4   AsyncWebsetItemsClient.listg   sp      /5R[#\#b#b#dv#d41hi$!$#dvYKv&Fv^cdd%44X>> wds    A*	A"A"A*A(!A*r6   c                 #    Sn U R                  XX#S9I Sh  vN nUR                   H  nU7v   M
     UR                  (       a  UR                  (       d  gUR                  nMa   NM7fr8   r9   r=   s          r   r?   AsyncWebsetItemsClient.list_allx   s`      !YYyuYbbH 
 & $$H,@,@))F bs   A)A'AA)c               p   #    / nU R                  XUS9  Sh  vN nUR                  U5        M   N
 U$ 7f)rB   r6   N)r?   append)r   r0   r   r    r,   r>   s         r   rC   AsyncWebsetItemsClient.get_all   s<      --	)-T 	$LL	Ts   6313636c                v   #    U R                  SU SU 3SS9I Sh  vN n[        R                  " U5      $  N7f)rF   r%   rG   r'   rH   NrI   rJ   s       r   rL   AsyncWebsetItemsClient.get   sA      YKwrd&KTYZZ((22 [   979c                v   #    U R                  SU SU 3SS9I Sh  vN n[        R                  " U5      $  N7f)rO   r%   rG   rP   rH   NrI   rJ   s       r   rQ   AsyncWebsetItemsClient.delete   sA      YKwrd&KT\]]((22 ^rr   rS   rT   )r0   rU   r   rW   r    rV   rX   zAsyncIterator[WebsetItem]rY   rZ   r[   rc   s   @r   re   re   a   sa    1! EI$(T?!?5B?Nd?" HLhl *, GKgk  33 3r   re   N)
__future__r   typingr   r   r   r   typesr	   r
   	core.baser   core.async_baser   r   re   rS   r   r   <module>rz      s:    " : : * 4R3) R3jU33 U3r   