
    +jwH              	       R   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"dS )    )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                 p    i }t          | dg          "t          |ddgt          | dg                     |S )Nforce_querygetvsetvr   r   	to_objects      Z/home/wildlama/visual-decline/.venv/lib/python3.11/site-packages/google/genai/documents.py_DeleteDocumentConfig_to_mldevr   "   sD     !)	+y!!-7+T+y-I-IJJ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"   .   sr     !)	+x  ,VV$d;&A&ABBB	+z""."4hZ#@#@)LLL	r   c                 p    i }t          | dg          "t          |ddgt          | dg                     |S )Nr   r    r   r   s      r   _GetDocumentParameters_to_mldevr$   <   sD     !)	+x  ,VV$d;&A&ABB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*   G   s     !)	+}%%1*-tK+/O/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-   \   sr     !)	+z"".VX&[8*(E(EFFF	+z"".!${XJ"?"?KKK	r   c           	      J   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d t          | dg          D                        |S )NsdkHttpResponsesdk_http_responsenextPageTokennext_page_token	documentsc                     g | ]}|S  r5   ).0items     r   
<listcomp>z5_ListDocumentsResponse_from_mldev.<locals>.<listcomp>{   s    ;;;$;;;r   r   r   s      r   !_ListDocumentsResponse_from_mldevr9   j   s     !)	+)*++7'(${=N<O*P*P   
+())5&'kO;L)M)MNNN	+}%%1	;;${[M::;;;   
r   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dS )	DocumentsNr!   r   r!   r   c                   t          j        ||          }| j        j        rt	          d          t          |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d	|||          }	|	j        si nt#          j        |	j                  }
t           j                            |
t+          |dd          rDdt+          |j
        d
d          t+          |j
        dd          t+          |j
        dd          dini           }| 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!   iThis method is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.r    {name}r   ?r!   Ngetresponse_schemaresponse_json_schemainclude_all_fieldsrD   rE   rF   responsekwargs)r   _GetDocumentParameters_api_clientvertexai
ValueErrorr$   rC   
format_mapr   popr!   http_optionsr
   convert_to_dictencode_unserializable_typesrequestbodyjsonloadsDocument_from_responsegetattr_verify_responseselfr   r!   parameter_modelrequest_dictrequest_url_dictpathquery_paramsrQ   rI   response_dictreturn_values               r   rC   zDocuments.get   s    2  O   4  
 5_EEl%))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''t\<PPH&mJBBHM1J1JM>00 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! 1  L& 	%%l333r   c                2   t          j        ||          }| j        j        rt	          d          t          |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d	|||           dS 
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    rA   r   rB   r!   Ndelete)r   _DeleteDocumentParametersrL   rM   rN   r"   rC   rO   r   rP   r!   rQ   r
   rR   rS   rT   	r]   r   r!   r^   r_   r`   ra   rb   rQ   s	            r   rg   zDocuments.delete   sB   " 5  O   4  
 8HHl%))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDLXt\<HHHHHr   r,   c                   t          j        ||          }| j        j        rt	          d          t          |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||          }	|	j        si nt#          j        |	j                  }
| j        j        st'          |
          }
t           j                            |
t-          |dd           rDdt-          |j
        d	d           t-          |j
        d
d           t-          |j
        dd           dini           }| j                            |           |S Nr,   r!   r@   r    z{parent}/documentsr   rB   r!   rC   rD   rE   rF   rG   rH   )r   _ListDocumentsParametersrL   rM   rN   r-   rC   rO   r   rP   r!   rQ   r
   rR   rS   rT   rU   rV   rW   r9   ListDocumentsResponserY   rZ   r[   r]   r,   r!   r^   r_   r`   ra   rb   rQ   rI   rc   rd   s               r   _listzDocuments._list  s0    4  O   $4  
 7GGl%))&11	 $#../?@@###H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''t\<PPH&mJBBHM1J1JM$ G7FFm.== ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! >  L& 	%%l333r   c                |    t          | j        |          }t          d||                     ||          |          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   rl   )r   rp   r   r]   r,   r!   list_requests       r   listzDocuments.listJ  sF    * 4:f555L

&
00	  r   )__name__
__module____qualname__strr   r   GetDocumentConfigOrDictrX   rC   DeleteDocumentConfigOrDictrg   ListDocumentsConfigOrDictrn   rp   r   ru   r5   r   r   r;   r;      s_        MQI I II"*5+H"II~I I I I^ <@	4I 4I 4I 4I u78	4I
 4I 4I 4I 4It ;?	D D D D u67	D
 "D D D DT ;?	    u67	
 U^     r   r;   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dS )AsyncDocumentsNr<   r   r!   r   c                  K   t          j        ||          }| j        j        rt	          d          t          |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d	|||           d{V }	|	j        si nt#          j        |	j                  }
t           j                            |
t+          |dd          rDdt+          |j
        d
d          t+          |j
        dd          t+          |j
        dd          dini           }| j                            |           |S r>   )r   rK   rL   rM   rN   r$   rC   rO   r   rP   r!   rQ   r
   rR   rS   async_requestrU   rV   rW   rX   rY   rZ   r[   r\   s               r   rC   zAsyncDocuments.getj  s<      2  O   4  
 5_EEl%))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33t\<       H 'mJBBHM1J1JM>00 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! 1  L& 	%%l333r   c                B  K   t          j        ||          }| j        j        rt	          d          t          |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d	|||           d{V  dS rf   )r   rh   rL   rM   rN   r"   rC   rO   r   rP   r!   rQ   r
   rR   rS   r   ri   s	            r   rg   zAsyncDocuments.delete  so     " 5  O   4  
 8HHl%))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL


(
($l          r   r,   c                  K   t          j        ||          }| j        j        rt	          d          t          |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||           d {V }	|	j        si nt#          j        |	j                  }
| j        j        st'          |
          }
t           j                            |
t-          |dd           rDdt-          |j
        d	d           t-          |j
        d
d           t-          |j
        dd           dini           }| j                            |           |S rk   )r   rm   rL   rM   rN   r-   rC   rO   r   rP   r!   rQ   r
   rR   rS   r   rU   rV   rW   r9   rn   rY   rZ   r[   ro   s               r   rp   zAsyncDocuments._list  sY      4  O   $4  
 7GGl%))&11	 $#../?@@###H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33t\<       H 'mJBBHM1J1JM$ G7FFm.== ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! >  L& 	%%l333r   c                   K   t          | j        |          }t          d||                     ||           d{V |          S )a6  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.aio.documents.list(parent='rag_store_name'):
        print(f"document: {document.name} - {document.display_name}")
    rr   r3   rl   N)r   rp   r   rs   s       r   ru   zAsyncDocuments.list7  s\      , 4:f555Ljjvj66666666	  r   )rv   rw   rx   ry   r   r   rz   rX   rC   r{   rg   r|   rn   rp   r   ru   r5   r   r   r~   r~   h  sV        MQK K KK"*5+H"IK~K K K Kb <@	6 6 6 6 u78	6
 6 6 6 6x ;?	F F F F u67	F
 "F F F FX ;?	    u67	
 %.!     r   r~   )N)#	functoolsr   rV   loggingtypingr   r   r   urllib.parser    r	   r
   r   r   r   r   r   pagersr   r   	getLoggerloggerdictry   objectr   r"   r$   r*   r-   r9   
BaseModuler;   r~   r5   r   r   <module>r      s  $         ' ' ' ' ' ' ' ' ' ' " " " " " "                   . . . . . . . . . . . . % % % % % % % %		3	4	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(^   .d d d d d& d d dNk k k k k[+ k k k k kr   