
    _j8                    ,   S SK Jr  S SKrS SKrS SKJrJrJr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Jr  SSKJr  SSKJr  SSKJrJr  SS	KJ r J!r!  SS
K"J#r#J$r$  SSK%J&r&J'r'  SSK(J)r)J*r*  SSK+J,r,J-r-  SSK.J/r/J0r0   " S S\5      r1 " S S\5      r2g)    )annotationsN)	ListOptionalLiteralDictAnyUnionIteratorAsyncIteratorCallable   )	WebsetListWebsetsResponseGetWebsetResponseUpdateWebsetRequestWebsetStatusCreateWebsetParametersPreviewWebsetParametersPreviewWebsetResponseRequestOptions)WebsetsBaseClient)WebsetsAsyncBaseClient)WebsetItemsClientAsyncWebsetItemsClient)WebsetSearchesClientAsyncWebsetSearchesClient)WebsetEnrichmentsClientAsyncWebsetEnrichmentsClient)WebsetWebhooksClientAsyncWebsetWebhooksClient)MonitorsClientAsyncMonitorsClient)ImportsClientAsyncImportsClient)EventsClientAsyncEventsClientc                     ^  \ rS rSrSrU 4S jr S   SS j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 jjrSS.SS jjrSSSS.         SS jjrSrU =r$ ) WebsetsClient   z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     J/home/rurouni/.local/lib/python3.13/site-packages/exa_py/websets/client.pyr-   WebsetsClient.__init__   se     &v.
,V426:,V4&v.$V,"6*    Nc                N    U R                  SXS9n[        R                  " U5      $ )/  Create a new Webset.

Args:
    params (CreateWebsetParameters): The parameters for creating a webset.
    options (RequestOptions, optional): Request options including priority and/or custom headers.
        Can specify priority as 'low', 'medium', or 'high'.

Returns:
    Webset: The created webset.
/v0/websetsdataoptionsrequestr   model_validater6   paramsrA   responses       r9   createWebsetsClient.create)   s'     <<F<L$$X..r;   c                N    U R                  SUS9n[        R                  " U5      $ )a  Preview a webset query.

Preview how a search query will be decomposed before creating a webset. 
This endpoint performs the same query analysis that happens during webset creation, 
allowing you to see the detected entity type, generated search criteria, and 
available enrichment columns in advance.

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

Returns:
    PreviewWebsetResponse: The preview response showing how the query will be decomposed.
/v0/websets/previewr@   rC   r   rD   r6   rF   rG   s      r9   previewWebsetsClient.preview8   s(     << 5F<C$33H==r;   expandc               p    U(       a  SU0O0 nU R                  SU 3USS9n[        R                  " U5      $ )a  Get a Webset by ID.

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

Returns:
    GetWebsetResponse: The retrieved webset.
rR   /v0/websets/GETrF   methodrC   r   rD   r6   idrR   rF   rG   s        r9   getWebsetsClient.getI   s>     (.(F#2<<,rd 3F5<Q //99r;   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n[        R                  " U5      $ s  snnf )List 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.
r]   r>   rU   rV   r.   rC   r   rD   r6   r^   r_   kvrF   rG   s          r9   listWebsetsClient.listX   sZ     /5#E#K#K#M_#M41QR$!$#M_<<fU<K"11(;; `s
   	AAc                V    U R                  SU 3USS9n[        R                  " U5      $ )Update 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.
rT   POSTr@   rW   rB   r6   rZ   rF   rG   s       r9   updateWebsetsClient.updatef   s0     <<,rd 3&<P$$X..r;   c                T    U R                  SU 3SS9n[        R                  " U5      $ )tDelete a Webset.

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

Returns:
    Webset: The deleted webset.
rT   DELETErW   rB   r6   rZ   rG   s      r9   deleteWebsetsClient.deletes   s.     <<,rd 3H<E$$X..r;   c                V    U R                  SU S3SS9n[        R                  " U5      $ )}Cancel a running Webset.

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

Returns:
    Webset: The canceled webset.
rT   /cancelrj   rr   rB   rs   s      r9   cancelWebsetsClient.cancel   s0     <<,rd' :6<J$$X..r;   r_   c             #     #    Sn U R                  X!S9nUR                   H  nUv   M	     UR                  (       a  UR                  (       d  gUR                  nMW  7fzIterate through all Websets, handling pagination automatically.

Args:
    limit (int, optional): The number of results to return per page (max 200).
    
Yields:
    Webset: Each webset.
Nr]   rf   r@   has_morenext_cursorr6   r_   r^   rG   websets        r9   list_allWebsetsClient.list_all   sX      yyy<H"-- ( $$H,@,@))F s   AAc               2    [        U R                  US95      $ )Collect all Websets into a list.

Args:
    limit (int, optional): The number of results to return per page (max 200).
    
Returns:
    List[Webset]: All websets.
r{   )rf   r   )r6   r_   s     r9   get_allWebsetsClient.get_all   s     DMMM.//r;        timeoutpoll_intervalon_pollc               N   [         R                   " 5       n U R                  U5      nU(       a  U" U5        UR                  [        R                  R
                  :X  a  U$ [         R                   " 5       U-
  U:  a  [        SU SU S35      e[         R                  " U5        M  )  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.
    on_poll (Callable[[Webset], None], optional): Callback function called on each poll with the current webset.
    
Returns:
    Webset: The webset once it's idle.
    
Raises:
    TimeoutError: If the webset does not become idle within the timeout period.
Webset  did not become idle within  seconds)timer[   statusr   idlevalueTimeoutErrorsleepr6   rZ   r   r   r   
start_timer   s          r9   wait_until_idleWebsetsClient.wait_until_idle   s    , YY[
XXb\F}} 1 1 7 77yy{Z''1"WRD0LWIU]#^__JJ}% r;   r0   r4   r3   r.   r2   r/   r1   r+   rF   z-Union[Dict[str, Any], CreateWebsetParameters]rA   z/Optional[Union[Dict[str, Any], RequestOptions]]returnr   rF   z.Union[Dict[str, Any], PreviewWebsetParameters]r   r   rZ   strrR   z Optional[List[Literal['items']]]r   r   r^   zOptional[str]r_   Optional[int]r   r   rZ   r   rF   z*Union[Dict[str, Any], UpdateWebsetRequest]r   r   rZ   r   r   r   )r_   r   r   zIterator[Webset]r_   r   r   zList[Webset]
rZ   r   r   intr   r   r   z"Optional[Callable[[Webset], None]]r   r   __name__
__module____qualname____firstlineno____doc__r-   rH   rO   r[   rf   rm   rt   ry   r   r   r   __static_attributes____classcell__r8   s   @r9   r(   r(      s    &+ KO/G/SY/>" JN : /34 </
/
/ 26 *( 15 	0 6:#&#& 	#&
 #& 4#& 
#& #&r;   r(   c                     ^  \ rS rSrSrU 4S jr S   SS j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 jjrSS.SS jjrS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 r+   )r,   r-   r   r.   r   r/   r   r0   r    r1   r"   r2   r$   r3   r&   r4   r5   s     r9   r-   AsyncWebsetsClient.__init__   se     +F3
1&97?1&9+F3)&1'/r;   Nc                j   #    U R                  SXS9I Sh  vN n[        R                  " U5      $  N7f)r=   r>   r?   NrB   rE   s       r9   rH   AsyncWebsetsClient.create   s3      m&RR$$X.. S   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.
rK   rL   NrM   rN   s      r9   rO   AsyncWebsetsClient.preview   s4      &;&II$33H== Jr   rQ   c                  #    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.
NrR   rT   rU   rV   rX   rY   s        r9   r[   AsyncWebsetsClient.get   sP      %8RD&9&QVWW //99 Xs   !A >A r]   c                  #    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)ra   r]   Nr>   rU   rV   rb   rc   s          r9   rf   AsyncWebsetsClient.list	  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)ri   rT   rj   rk   NrB   rl   s       r9   rm   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)rp   rT   rq   rr   NrB   rs   s      r9   rt   AsyncWebsetsClient.delete$  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)rw   rT   rx   rj   rr   NrB   rs   s      r9   ry   AsyncWebsetsClient.cancel0  s<      RD&@PP$$X.. Qr   r{   c                 #    Sn U R                  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M`   NM7fr}   r~   r   s        r9   r   AsyncWebsetsClient.list_all<  s^      !YYfYBBH"-- ( $$H,@,@))F Bs   A(A&AA(c               n   #    / nU R                  US9  Sh  vN nUR                  U5        M   N
 U$ 7f)r   r{   N)r   append)r6   r_   websetsr   s       r9   r   AsyncWebsetsClient.get_allP  s:       MMM6 	#&NN6"	#6s   5202525r   r   r   c                 #    [         R                  " 5       R                  5       n U R                  U5      I Sh  vN nU(       a  U" U5        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)r   Nr   r   r   )
asyncioget_event_loopr   r[   r   r   r   r   r   r   r   s          r9   r   "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   r   )r_   r   r   zAsyncIterator[Webset]r   r   r   r   s   @r9   r   r      s    ,0 QU/M/Y_/
> PT :" 59QU </
/
/ 8< *( 7; $ 6:#/#/ 	#/
 #/ 4#/ 
#/ #/r;   r   )3
__future__r   r   r   typingr   r   r   r   r   r	   r
   r   r   typesr   r   r   r   r   r   r   r   r   	core.baser   core.async_baser   r.   r   r   r/   r   r   r0   r   r   r1   r   r    r2   r!   r"   r3   r#   r$   r4   r%   r&   r(   r    r;   r9   <module>r      sb    "   _ _ _
 
 
 ) 3 < E N E 9 6 3q&% q&hq// q/r;   