
    i5                         S SK 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JrJrJrJr  S SKJr  S SKJr   " S S\5      rg	)
    )AnyDictIterableListOptionalUnion)Literal)	ParamDict)SearchJobResultsSearchJobStartSearchJobStatusSearchPluginSearchPluginCategorySearchResultEntry)APIGroup)
APIVersionc            	       >   \ rS rSrSrS\S\\\   \S   \S   4   S\\\S   4   S\	4S	 jr
S
\SS4S jrSS
\\   S\\   4S jjr  SS
\S\\   S\\   S\4S jjrS
\SS4S jrS\\   4S jrS\\   SS4S jrS\\   SS4S jrS\\   S\SS4S jrSS jrSrg)	SearchAPI   zj
Search APIs.

.. note::

    Search API is experimental. Methods and results may change without notice.

patternpluginsallenabledcategoryreturnc                    #    [        5       nUR                  SU5        UR                  SUS5        UR                  SU5        U R                  [        SSUS9I Sh  vN $  N7f)	a^  
Start a search job.

The result consists of only the search job :attr:`~.SearchJobStart.id`.

:param pattern: Search pattern.
:param plugins: Plugins used in search. Special values:
    ``all`` uses all plugins while ``enabled`` uses enabled plugins only.
:param category: Search specific category or ``all``.

:raises ~exc.ConflictError: if error.
r   r   |r   POSTzsearch/startdataN)r
   required_strrequired_list_request_mapped_objectr   )selfr   r   r   r    s        >/app/mltbenv/lib/python3.13/site-packages/aioqbt/api/search.pystartSearchAPI.start   sn     $ {)W-9gs3*h/00	 1 
 
 	
 
s   AA$A"A$idNc                 z   #    [        5       nUR                  SU5        U R                  SSUS9I Sh  vN   g N7f)zQ
Stop a search job.

:raises ~exc.NotFoundError: if the search job is not found.
r(   r   zsearch/stopr   Nr
   required_int_request_textr$   r(   r    s      r%   stopSearchAPI.stop:   sD      {$#   ! 
 	
 	
   1;9;c                    #    [        5       nUR                  SU5        U R                  [        SSUS9I Sh  vN $  N7f)zg
Query search job statuses.

:raises ~exc.NotFoundError: if the search job is specified but not found.
r(   GETzsearch/statusparamsN)r
   optional_int_request_mapped_listr   )r$   r(   r4   s      r%   statusSearchAPI.statusI   sL      D"%..	 / 
 
 	
 
s   6?=?limitoffsetc                 ~  #    [        5       nUR                  SU5        UR                  SU5        UR                  SU5        U R                  5       nUR	                  SSUS9I Sh  vN nUR
                  nUR                  nUR                  [        Xh5      n	UR                  [        US   U5      U	l        U	$  NS7f)	z
Get search job results.

:raises ~exc.NotFoundError: if the search job is not found.
:raises ~exc.ConflictError: if ``offset`` is out of range.
r(   r9   r:   r2   zsearch/resultsr3   Nresults)r
   r+   r5   _clientrequest_json_mapper_contextcreate_objectr   create_listr   r<   )
r$   r(   r9   r:   r4   clientr    mappercontextrets
             r%   r<   SearchAPI.resultsY   s      D"%GU+Hf-(( ) 
 
 //""#3TC(():DOWU

s   A%B='B;(AB=c                 z   #    [        5       nUR                  SU5        U R                  SSUS9I Sh  vN   g N7f)zS
Delete a search job.

:raises ~exc.NotFoundError: if the search job is not found.
r(   r   zsearch/deleter   Nr*   r-   s      r%   deleteSearchAPI.deletez   sD      {$#   ! 
 	
 	
r0   c                   #    U R                  5       nUR                  SS5      I Sh  vN nUR                  nUR                  nUR	                  [
        X$5      nSn[        R                  " UR                  S5      S:  a.  U H(  n[        S UR                   5       5      (       d  M&  Sn  O   U(       a3  [        XR5       H$  u  pxUR	                  [        US	   U5      Ul
        M&     U$  N7f)
z
Get all plugins.
r2   zsearch/pluginsNT)      rL   r   c              3   B   #    U  H  n[        U[        5      v   M     g 7fN)
isinstancestr).0ss     r%   	<genexpr>$SearchAPI.plugins.<locals>.<genexpr>   s     N3Maz!S))3Ms   FsupportedCategories)r=   r>   r?   r@   rB   r   r   compareapi_versionanyrV   zipr   )	r$   rC   r    rD   rE   result	dict_listpluginplugin_datas	            r%   r   SearchAPI.plugins   s      .4.A.A/
 )

 //%+%7%7d%T
 	f00)<q@ !N63M3MNNN %I !
 '*6'8#-3-?-?( 56.* (9 A)
s   &C.C,A=C.*AC.sourcesc                 |   #    [        5       nUR                  SUS5        U R                  SSUS9I Sh  vN   g N7f)z
Install plugins.
r`   r   r   zsearch/installPluginr   Nr
   r"   r,   )r$   r`   r    s      r%   install_pluginSearchAPI.install_plugin   sF      {9gs3  " ! 
 	
 	
   2<:<namesc                 |   #    [        5       nUR                  SUS5        U R                  SSUS9I Sh  vN   g N7f)z
Uninstall plugins.
rf   r   r   zsearch/uninstallPluginr   Nrb   )r$   rf   r    s      r%   uninstall_pluginSearchAPI.uninstall_plugin   sF      {7E3/  $ ! 
 	
 	
re   enablec                    #    [        5       nUR                  SUS5        UR                  SU5        U R                  SSUS9I Sh  vN   g N7f)z
Enable/disable plugins.

:param names: a list of plugins to enable/disable.
:param enable: ``True`` to enable or ``False`` to disable.
rf   r   rj   r   zsearch/enablePluginr   N)r
   r"   required_boolr,   )r$   rf   rj   r    s       r%   enable_pluginSearchAPI.enable_plugin   sV      {7E3/8V,  ! ! 
 	
 	
s   AAAAc                 D   #    U R                  SS5      I Sh  vN   g N7f)z
Update plugins.
r   zsearch/updatePluginsN)r,   )r$   s    r%   update_pluginsSearchAPI.update_plugins   s%        "
 	
 	
s      rO   )NN)r   N)__name__
__module____qualname____firstlineno____doc__rQ   r   r   r	   r   r&   intr.   r   r   r7   r   r<   rI   r   r   r   rc   rh   boolrm   rp   __static_attributes__rr       r%   r   r      s:   

 tCy'%.')2DDE
 WU^+,	

 

<
S 
T 

x} 
_8M 
&  $ $	 } 	
 
B
s 
t 
&tL1 &P
HSM 
d 

HSM 
d 

# 
 
 
"
r{   r   N)typingr   r   r   r   r   r   typing_extensionsr	   aioqbt._paramdictr
   aioqbt.api.typesr   r   r   r   r   r   aioqbt.clientr   aioqbt.versionr   r   rr   r{   r%   <module>r      s1    = = % '  # %Q
 Q
r{   