
    LiA              	          d dl mZ d dlZd dlZd dlmZ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mZ  ej*                  d      Z	 ddeeeef   ef   deeeef      deeef   fdZ	 ddeeeef   ef   deeeef      deeef   fdZ	 ddeeeef   ef   deeeef      deeef   fdZ	 ddeeeef   ef   deeeef      deeef   fdZ	 ddeeeef   ef   deeeef      deeef   fdZ	 ddeeeef   ef   deeeef      deeef   fdZ G d dej@                        Z! G d dej@                        Z"y)    )partialN)AnyOptionalUnion)	urlencode   )_api_module)_common)types)get_value_by_path)set_value_by_path)
AsyncPagerPagerzgoogle_genai.documentsfrom_objectparent_objectreturnc                 X    i }t        | dg      t        |ddgt        | dg             |S )Nforce_querygetvsetvr   r   	to_objects      T/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/google/genai/documents.py_DeleteDocumentConfig_to_mldevr   #   s8     !)	+y!-7+T+y-IJ	    c                     i }t        | dg      t        |ddgt        | dg             t        | dg      t        t        | dg      |       |S )Nname_urlconfig)r   r   r   r   s      r   "_DeleteDocumentParameters_to_mldevr"   /   sZ     !)	+x ,VV$d;&AB	+z"."4hZ#@)L	r   c                 X    i }t        | dg      t        |ddgt        | dg             |S )Nr   r    r   r   s      r   _GetDocumentParameters_to_mldevr$   =   s8     !)	+x ,VV$d;&AB	r   c                     i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             |S )N	page_sizer   pageSize
page_token	pageTokenr   r   s      r   _ListDocumentsConfig_to_mldevr*   H   sm     !)	+}%1*-tK+/O 
+~&2	;[<.) 
r   c                     i }t        | dg      t        |ddgt        | dg             t        | dg      t        t        | dg      |       |S )Nparentr    r!   )r   r   r*   r   s      r   !_ListDocumentsParameters_to_mldevr-   ]   sZ     !)	+z".VX&[8*(EF	+z".!${XJ"?K	r   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       |S c c}w )NsdkHttpResponsesdk_http_responsenextPageTokennext_page_token	documentsr   )r   r   r   items       r   !_ListDocumentsResponse_from_mldevr5   k   s     !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+}%1	{[M:;$; 
 	<s   3	Bc                      e Zd Zdddedeej                     dej                  fdZdddedeej                     ddfdZ
dddedeej                     dej                  fd	Zdddedeej                     deej                     fd
Zy)	DocumentsNr!   r   r!   r   c                6   t        j                  ||      }| j                  j                  rt	        d      t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||      }	|	j                   si nt#        j$                  |	j                         }
t         j&                  j)                  |
|j+                         
      }| j                  j-                  |       |S a  Gets metadata about a Document.

    Args:
      name (str): The resource name of the Document.
        Example: ragStores/rag-store-foo/documents/documents-bar
      config (GetDocumentConfig | None): Optional parameters for the request.

    Returns:
      The Document.
    r   r!   =This method is only supported in the Gemini Developer client.r    {name}r   ?r!   Ngetresponsekwargs)r   _GetDocumentParameters_api_clientvertexai
ValueErrorr$   r?   
format_mapr   popr!   http_optionsr
   convert_to_dictencode_unserializable_typesrequestbodyjsonloadsDocument_from_response
model_dump_verify_responseselfr   r!   parameter_modelrequest_dictrequest_url_dictpathquery_paramsrI   rA   response_dictreturn_values               r   r?   zDocuments.get   sw    22O   
I  5_El%))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM>>00'A'A'C 1 L 	%%l3r   c                F   t        j                  ||      }| j                  j                  rt	        d      t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||      }	y
a  Deletes a Document.

    Args:
      name (str): The resource name of the Document.
        Example: ragStores/rag-store-foo/documents/documents-bar
      config (DeleteDocumentConfig | None): Optional parameters for the request.

    Returns:
      None
    r;   r<   r    r=   r   r>   r!   Ndelete)r   _DeleteDocumentParametersrD   rE   rF   r"   r?   rG   r   rH   r!   rI   r
   rJ   rK   rL   
rU   r   r!   rV   rW   rX   rY   rZ   rI   rA   s
             r   r_   zDocuments.delete   s   " 55O   
I  8Hl%))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''$lHr   r,   c                x   t        j                  ||      }| j                  j                  rt	        d      t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||      }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  st'        |
      }
t         j(                  j+                  |
|j-                         
      }| j                  j/                  |       |S a<  Lists all Documents in a FileSearchStore.

    Args:
      parent (str): The name of the FileSearchStore containing the Documents.
      config (ListDocumentsConfig | None): Optional parameters for the request,
        such as page_size.

    Returns:
      ListDocumentsResponse: A paginated list of Documents.
    r,   r!   r<   r    z{parent}/documentsr   r>   r!   Nr?   r@   )r   _ListDocumentsParametersrD   rE   rF   r-   r?   rG   r   rH   r!   rI   r
   rJ   rK   rL   rM   rN   rO   r5   ListDocumentsResponserQ   rR   rS   rU   r,   r!   rV   rW   rX   rY   rZ   rI   rA   r[   r\   s               r   _listzDocuments._list   s   " 44O   
I  7Gl%))&1	#../?@###H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM$$7Fm..=='A'A'C > L 	%%l3r   c                n    t        | j                  |      }t        d|| j                  ||      |      S )a  Lists documents.

    Args:
      parent (str): The name of the RagStore containing the Documents.
      config (ListDocumentsConfig): Optional configuration for the list request.

    Returns:
      A Pager object that contains one page of documents. When iterating over
      the pager, it automatically fetches the next page if there are more.
    Usage:
    .. code-block:: python
      for document in client.documents.list(parent='rag_store_name'):
        print(f"document: {document.name} - {document.display_name}")
    r,   r3   rd   )r   rh   r   rU   r,   r!   list_requests       r   listzDocuments.list7  s:    ( 4::f5L

&
0	 r   )__name__
__module____qualname__strr   r   GetDocumentConfigOrDictrP   r?   DeleteDocumentConfigOrDictr_   ListDocumentsConfigOrDictrf   rh   r   rm    r   r   r7   r7      s     MQ99"*5+H+H"I9~~9~ <@	5 5 u778	5
 5v ;?	? ? u667	?
 ""?J ;?	  u667	
 U^^r   r7   c                      e Zd Zdddedeej                     dej                  fdZdddedeej                     ddfdZ
dddedeej                     dej                  fd	Zdddedeej                     deej                     fd
Zy)AsyncDocumentsNr8   r   r!   r   c                R  K   t        j                  ||      }| j                  j                  rt	        d      t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||       d{   }	|	j                   si nt#        j$                  |	j                         }
t         j&                  j)                  |
|j+                         
      }| j                  j-                  |       |S 7 }wr:   )r   rC   rD   rE   rF   r$   r?   rG   r   rH   r!   rI   r
   rJ   rK   async_requestrM   rN   rO   rP   rQ   rR   rS   rT   s               r   r?   zAsyncDocuments.getV  s     22O   
I  5_El%))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM>>00'A'A'C 1 L 	%%l3s   D%F''F%(A>F'c                b  K   t        j                  ||      }| j                  j                  rt	        d      t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||       d{   }	y7 wr^   )r   r`   rD   rE   rF   r"   r?   rG   r   rH   r!   rI   r
   rJ   rK   ry   ra   s
             r   r_   zAsyncDocuments.delete  s+    " 55O   
I  8Hl%))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33$l H s   D%D/'D-(D/r,   c                  K   t        j                  ||      }| j                  j                  rt	        d      t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||       d{   }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  st'        |
      }
t         j(                  j+                  |
|j-                         
      }| j                  j/                  |       |S 7 wrc   )r   re   rD   rE   rF   r-   r?   rG   r   rH   r!   rI   r
   rJ   rK   ry   rM   rN   rO   r5   rf   rQ   rR   rS   rg   s               r   rh   zAsyncDocuments._list  s    " 44O   
I  7Gl%))&1	#../?@###H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM$$7Fm..=='A'A'C > L 	%%l3s   D%G'G(BGc                   K   t        | j                  |      }t        d|| j                  ||       d{   |      S 7 	w)a2  Lists documents asynchronously.

    Args:
      parent (str): The name of the RagStore containing the Documents.
      config (ListDocumentsConfig): Optional configuration for the list request.

    Returns:
      A Pager object that contains one page of documents. When iterating over
      the pager, it automatically fetches the next page if there are more.
    Usage:
    .. code-block:: python
      async for document in await
      client.documents.list(parent='rag_store_name'):
        print(f"document: {document.name} - {document.display_name}")
    rj   r3   rd   N)r   rh   r   rk   s       r   rm   zAsyncDocuments.list  sF     * 4::f5Ljjvj66	  	7s   5AA
A)rn   ro   rp   rq   r   r   rr   rP   r?   rs   r_   rt   rf   rh   r   rm   ru   r   r   rw   rw   T  s     MQ;;"*5+H+H"I;~~;B <@	5 5 u778	5
 5v ;?	A A u667	A
 ""AN ;?	  u667	
 %..!r   rw   )N)#	functoolsr   rN   loggingtypingr   r   r   urllib.parser    r	   r
   r   r   r   r   r   pagersr   r   	getLoggerloggerdictrq   objectr   r"   r$   r*   r-   r5   
BaseModuler7   rw   ru   r   r   <module>r      s+  $    ' ' "    . . % 
		3	4
 /3	tCH~v-.	DcN+	 
#s(^	 /3tCH~v-.DcN+ 
#s(^  /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^. /3tCH~v-.DcN+ 
#s(^  /3tCH~v-.DcN+ 
#s(^.O&& OdT[++ Tr   