
    _j                        S SK Jr  S SKrS SKJrJrJrJrJrJ	r	  SSK
JrJrJrJrJrJrJrJr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJ r   SSK!J"r"   " S S\5      r#g)    )annotationsN)ListOptionalLiteralDictAnyUnion   )WebsetListWebsetsResponseGetWebsetResponseUpdateWebsetRequestWebsetStatusCreateWebsetParametersPreviewWebsetParametersPreviewWebsetResponse)WebsetsAsyncBaseClient)AsyncWebsetItemsClient)AsyncWebsetSearchesClient)AsyncWebsetEnrichmentsClient)AsyncWebsetWebhooksClient)AsyncMonitorsClient)AsyncImportsClient)AsyncEventsClientc                     ^  \ rS rSrSrU 4S jrSS jrSS jrSS.SS jjrSSS	.SS
 jjr	SS jr
SS jrSS jrSSS.SS jjrSrU =r$ )AsyncWebsetsClient   z"Async client for managing Websets.c                  > [         TU ]  U5        [        U5      U l        [	        U5      U l        [        U5      U l        [        U5      U l	        [        U5      U l        [        U5      U l        [        U5      U l        g )N)super__init__r   itemsr   searchesr   enrichmentsr   webhooksr   monitorsr   importsr   events)selfclient	__class__s     P/home/rurouni/.local/lib/python3.13/site-packages/exa_py/websets/async_client.pyr    AsyncWebsetsClient.__init__   se     +F3
1&97?1&9+F3)&1'/    c                j   #    U R                  SUS9I Sh  vN n[        R                  " U5      $  N7f)zCreate a new Webset.

Args:
    params (CreateWebsetParameters): The parameters for creating a webset.

Returns:
    Webset: The created webset.
/v0/websetsdataNrequestr   model_validater(   paramsresponses      r+   createAsyncWebsetsClient.create&   s3      m&AA$$X.. B   313c                j   #    U R                  SUS9I Sh  vN n[        R                  " U5      $  N7f)zPreview a Webset before creating it.

Args:
    params (PreviewWebsetParameters): The parameters for previewing a webset.

Returns:
    PreviewWebsetResponse: The preview results.
z/v0/websets/previewr0   N)r3   r   r4   r5   s      r+   previewAsyncWebsetsClient.preview2   s4      &;&II$33H== Jr:   N)expandc                  #    0 nUb  X#S'   U R                  SU 3USS9I Sh  vN n[        R                  " U5      $  N7f)zGet a Webset by ID.

Args:
    id (str): The id or externalId of the Webset.
    expand (List[Literal["items"]], optional): Expand items in the response.

Returns:
    GetWebsetResponse: The retrieved webset.
Nr>   /v0/websets/GETr6   method)r3   r   r4   )r(   idr>   r6   r7   s        r+   getAsyncWebsetsClient.get>   sP      %8RD&9&QVWW //99 Xs   !A >A cursorlimitc                  #    XS.R                  5        VVs0 s H  u  p4Uc  M
  X4_M     nnnU R                  SUSS9I Sh  vN n[        R                  " U5      $ s  snnf  N 7f)zList all Websets.

Args:
    cursor (str, optional): The cursor to paginate through the results.
    limit (int, optional): The number of results to return (max 200).

Returns:
    ListWebsetsResponse: List of websets.
rG   Nr/   rA   rB   )r!   r3   r   r4   )r(   rH   rI   kvr6   r7   s          r+   listAsyncWebsetsClient.listO   sc      /5#E#K#K#M_#M41QR$!$#M_mF5QQ"11(;; `Qs    A%	AAA%A#!A%c                r   #    U R                  SU 3USS9I Sh  vN n[        R                  " U5      $  N7f)zUpdate a Webset.

Args:
    id (str): The id or externalId of the Webset.
    params (UpdateWebsetRequest): The parameters for updating a webset.

Returns:
    Webset: The updated webset.
r@   POST)r1   rC   Nr2   )r(   rD   r6   r7   s       r+   updateAsyncWebsetsClient.update]   s<      RD&9vVV$$X.. W   757c                p   #    U R                  SU 3SS9I Sh  vN n[        R                  " U5      $  N7f)ztDelete a Webset.

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

Returns:
    Webset: The deleted webset.
r@   DELETErC   Nr2   r(   rD   r7   s      r+   deleteAsyncWebsetsClient.deletej   s:      RD&9(KK$$X.. Ls   646c                r   #    U R                  SU S3SS9I Sh  vN n[        R                  " U5      $  N7f)z}Cancel a running Webset.

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

Returns:
    Webset: The canceled webset.
r@   z/cancelrP   rV   Nr2   rW   s      r+   cancelAsyncWebsetsClient.cancelv   s<      RD&@PP$$X.. QrS   i     )timeoutpoll_intervalc                 #    [         R                  " 5       R                  5       n U R                  U5      I Sh  vN nUR                  [
        R                  R                  :X  a  U$ [         R                  " 5       R                  5       U-
  U:  a  [        SU SU S35      e[         R                  " U5      I Sh  vN   M   N N7f)a  Wait until a Webset is idle.

Args:
    id (str): The id or externalId of the Webset.
    timeout (int, optional): Maximum time to wait in seconds. Defaults to 3600.
    poll_interval (int, optional): Time to wait between polls in seconds. Defaults to 5.
    
Returns:
    Webset: The webset once it's idle.
    
Raises:
    TimeoutError: If the webset does not become idle within the timeout period.
NzWebset z did not become idle within z seconds)
asyncioget_event_looptimerE   statusr   idlevalueTimeoutErrorsleep)r(   rD   r^   r_   
start_timewebsets         r+   wait_until_idle"AsyncWebsetsClient.wait_until_idle   s      ++-224
88B<'F}} 1 1 7 77%%',,.;gE"WRD0LWIU]#^__--... ' /s"   9C
CBC
?C C
C
)r#   r'   r&   r!   r%   r"   r$   )r6   z-Union[Dict[str, Any], CreateWebsetParameters]returnr   )r6   z.Union[Dict[str, Any], PreviewWebsetParameters]rm   r   )rD   strr>   z Optional[List[Literal['items']]]rm   r   )rH   zOptional[str]rI   zOptional[int]rm   r   )rD   rn   r6   z*Union[Dict[str, Any], UpdateWebsetRequest]rm   r   )rD   rn   rm   r   )rD   rn   r^   intr_   ro   rm   r   )__name__
__module____qualname____firstlineno____doc__r    r8   r<   rE   rM   rQ   rX   r[   rk   __static_attributes____classcell__)r*   s   @r+   r   r      sQ    ,0
/
> PT :" 59QU </
/
/ @DZ[ / /r-   r   )$
__future__r   ra   typingr   r   r   r   r   r	   typesr   r   r   r   r   r   r   r   core.async_baser   async_items.clientr   async_searches.clientr   async_enrichments.clientr   async_webhooks.clientr   async_monitors.clientr   async_imports.clientr   async_events.clientr   r    r-   r+   <module>r      sI    "  < <	 	 	 4 6 < B < 6 4 2@// @/r-   