§
    ìŽ’j{´  ã            	       ó  — d dl Z d dlZd dl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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 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&	 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 )!é    N)ÚAnyÚOptionalÚUnion)Ú	urlencodeé   )Ú_api_client)Ú_api_module)Ú_common)Ú_extra_utils)Ú_transformers)Útypes)Úget_value_by_path)Úset_value_by_path)Ú
AsyncPagerÚPagerzgoogle_genai.filesÚfrom_objectÚparent_objectÚreturnc                 ón   — i }t          | dg¦  «        �!t          |dgt          | dg¦  «        ¦  «         |S )NÚfile©ÚgetvÚsetv©r   r   Ú	to_objects      ú@C:\Projects\DSCons\.venv\Lib\site-packages\google\genai\files.pyÚ_CreateFileParameters_to_mldevr   )   óA   € ð !€)Ý	ˆ+˜�xÑ Ô Ð,Ýˆ�V�H�d ;°°Ñ9Ô9Ñ:Ô:Ð:à	Ðó    c                 ón   — i }t          | dg¦  «        �!t          |dgt          | dg¦  «        ¦  «         |S ©NÚsdkHttpResponseÚsdk_http_responser   r   s      r   Ú_CreateFileResponse_from_mldevr$   4   óP   € ð !€)Ý	ˆ+Ð)Ð*Ñ+Ô+Ð7ÝØÐ'Ð(­$¨{Ð=NÐ<OÑ*PÔ*Pñô ð ð 
Ðr   c           
      ó”   — i }t          | dg¦  «        �4t          |ddgt          j        t          | dg¦  «        ¦  «        ¦  «         |S ©NÚnameÚ_urlr   ©r   r   ÚtÚt_file_namer   s      r   Ú_DeleteFileParameters_to_mldevr-   A   óW   € ð !€)Ý	ˆ+˜�xÑ Ô Ð,ÝØ�F˜FÐ#¥Q¤]µ4¸ÀfÀXÑ3NÔ3NÑ%OÔ%Oñô ð ð 
Ðr   c                 ón   — i }t          | dg¦  «        �!t          |dgt          | dg¦  «        ¦  «         |S r!   r   r   s      r   Ú_DeleteFileResponse_from_mldevr0   N   r%   r   c           
      ó”   — i }t          | dg¦  «        �4t          |ddgt          j        t          | dg¦  «        ¦  «        ¦  «         |S r'   r*   r   s      r   Ú_GetFileParameters_to_mldevr2   [   r.   r   c                 ón   — i }t          | dg¦  «        �!t          |dgt          | dg¦  «        ¦  «         |S )NÚurisr   r   s      r   Ú)_InternalRegisterFilesParameters_to_mldevr5   h   r   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_sizeÚ_queryÚpageSizeÚ
page_tokenÚ	pageTokenr   r   s      r   Ú_ListFilesConfig_to_mldevr<   s   s�   € ð !€)å	ˆ+˜�}Ñ%Ô%Ð1ÝØ˜ *Ð-­t°KÀ+ÀÑ/OÔ/Oñô ð õ 
ˆ+˜�~Ñ&Ô&Ð2ÝØØ	�;ÐÝˆ[˜<˜.Ñ)Ô)ñô ð ð 
Ðr   c                 ój   — i }t          | dg¦  «        �t          t          | dg¦  «        |¦  «         |S )NÚconfig)r   r<   r   s      r   Ú_ListFilesParameters_to_mldevr?   ˆ   s=   € ð !€)Ý	ˆ+˜�zÑ"Ô"Ð.Ý�d ;°°
Ñ;Ô;¸YÑGÔGÐGà	Ð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 )Nr"   r#   ÚnextPageTokenÚnext_page_tokenÚfilesc                 ó   — g | ]}|‘ŒS © rE   ©Ú.0Úitems     r   ú
<listcomp>z1_ListFilesResponse_from_mldev.<locals>.<listcomp>¡   ó   € ÐNÐNÐN¨ ÐNÐNÐNr   r   r   s      r   Ú_ListFilesResponse_from_mldevrK   “   sÇ   € ð !€)Ý	ˆ+Ð)Ð*Ñ+Ô+Ð7ÝØÐ'Ð(­$¨{Ð=NÐ<OÑ*PÔ*Pñô ð õ 
ˆ+˜Ð(Ñ)Ô)Ð5ÝˆÐ&Ð'­¨k¸OÐ;LÑ)MÔ)MÑNÔNÐNå	ˆ+˜�yÑ!Ô!Ð-Ýˆ�W�IÐNÐNµ°kÀGÀ9Ñ1MÔ1MÐNÑNÔNÑOÔOÐOà	Ðr   c           	      óæ   — i }t          | dg¦  «        �!t          |dgt          | dg¦  «        ¦  «         t          | dg¦  «        �+t          |dgd„ t          | dg¦  «        D ¦   «         ¦  «         |S )Nr"   r#   rC   c                 ó   — g | ]}|‘ŒS rE   rE   rF   s     r   rI   z5_RegisterFilesResponse_from_mldev.<locals>.<listcomp>±   rJ   r   r   r   s      r   Ú!_RegisterFilesResponse_from_mldevrN   ¦   s‘   € ð !€)Ý	ˆ+Ð)Ð*Ñ+Ô+Ð7ÝØÐ'Ð(­$¨{Ð=NÐ<OÑ*PÔ*Pñô ð õ 
ˆ+˜�yÑ!Ô!Ð-Ýˆ�W�IÐNÐNµ°kÀGÀ9Ñ1MÔ1MÐNÑNÔNÑOÔOÐOà	Ðr   c            	       óÎ  — e Zd Zddœdeej                 dej        fd„Zddœdej        deej	                 dej
        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j        fd
„Zddœdej        e         deej                 dej        fd„Zddœdeeej        e         ej        f         deej                 dej        fd„Zddœdeeej        ej        ej         f         deej!                 de"fd„Z#ddœde$j%        j&        j'        dej        e         deej                 dej        fd„Z(ddœdeej                 de)ej                 fd„ZdS )ÚFilesN©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        ¦  «        }	| 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 ¬¦  «        }
t          j        |j        ¬¦  «        |
_        | j                             |
¦  «         |
S ©NrQ   úiThis method is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.r)   rC   r8   Ú?r>   ÚgetÚresponse_schemaÚresponse_json_schemaÚinclude_all_fields©rW   rX   rY   ©ÚresponseÚkwargs©Úheaders)r   Ú_ListFilesParametersr   ÚvertexaiÚ
ValueErrorr?   rV   Ú
format_mapr   Úpopr>   Úhttp_optionsr
   Úconvert_to_dictÚencode_unserializable_typesÚrequestÚbodyÚjsonÚloadsrK   ÚListFilesResponseÚ_from_responseÚgetattrÚHttpResponser_   r#   Ú_verify_response©Úselfr>   Úparameter_modelÚrequest_dictÚrequest_url_dictÚpathÚquery_paramsre   r\   Úresponse_dictÚreturn_values              r   Ú_listzFiles._list¸   sO  € õ Ô0Øðñ ô €Oð
 ÔÔ ð Ýð4ñô ð õ
 3°?ÑCÔC€lØ%×)Ò)¨&Ñ1Ô1ÐØ	ð Ø×!Ò!Ð"2Ñ3Ô3ˆˆàˆà×#Ò# HÑ-Ô-€LØð 1ØÐ0Ð0•y Ñ.Ô.Ð0Ð0€dà×Ò�X˜tÑ$Ô$Ð$à04€LàÔÐ*ØÔ"Ô/Ð;à$Ô+Ô8€låÔ*¨<Ñ8Ô8€LÝÔ6°|ÑDÔD€LàÔ×'Ò'¨¨t°\À<ÑPÔP€Hà&œmÐJ�B�Bµ´¸H¼MÑ1JÔ1J€MàÔÔ$ð CÝ3°MÑBÔB€måÔ*×9Ò9Øõ �? H¨dÑ3Ô3ðØÝ#*Ø#Ô*Ð,=¸tñ$ô $õ )0Ø#Ô*Ð,BÀDñ)ô )õ '.Ø#Ô*Ð,@À$ñ'ô 'ð
ð 
ð
ð 
ð ð! :ñ ô €Lõ$ &+Ô%7ØÔ ð&ñ &ô &€LÔ"ð 	Ô×%Ò% lÑ3Ô3Ð3ØÐr   r   c                óT  — 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|||¦  «        }	|�Bt!          |d	d ¦  «        r1t          j        |	¬
¦  «        }
| j                             |
¦  «         |
S |	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>   rT   r)   zupload/v1beta/filesr8   rU   r>   ÚpostÚshould_return_http_response©r#   rW   rX   rY   rZ   r[   )r   Ú_CreateFileParametersr   ra   rb   r   rV   rc   r   rd   r>   re   r
   rf   rg   rh   rn   ÚCreateFileResponserp   ri   rj   rk   r$   rm   ©rr   r   r>   rs   rt   ru   rv   rw   re   r\   ry   rx   s               r   Ú_createzFiles._createü   s†  € õ Ô1ØØðñ ô €Oð ÔÔ ð %Ýð4ñô ð õ
 4°OÑDÔD€lØ%×)Ò)¨&Ñ1Ô1ÐØ	ð %Ø$×/Ò/Ð0@ÑAÔAˆˆà$ˆà×#Ò# HÑ-Ô-€LØð 1ØÐ0Ð0•y Ñ.Ô.Ð0Ð0€dà×Ò�X˜tÑ$Ô$Ð$à04€LàÔÐ*ØÔ"Ô/Ð;à$Ô+Ô8€låÔ*¨<Ñ8Ô8€LÝÔ6°|ÑDÔD€LàÔ×'Ò'Ø��l Lñô €Hð Ð�gØÐ-¨tñô Ðõ Ô-ÀÐIÑIÔI€lØ
Ô×'Ò'¨Ñ5Ô5Ð5ØÐà&œmÐJ�B�Bµ´¸H¼MÑ1JÔ1J€MàÔÔ$ð DÝ4°]ÑCÔC€måÔ+×:Ò:Øõ �? H¨dÑ3Ô3ðØÝ#*Ø#Ô*Ð,=¸tñ$ô $õ )0Ø#Ô*Ð,BÀDñ)ô )õ '.Ø#Ô*Ð,@À$ñ'ô 'ð
ð 
ð
ð 
ð ð! ;ñ ô €Lð& 	Ô×%Ò% lÑ3Ô3Ð3ØÐ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 )ai  Retrieves the file information from the service.

    Args:
      name (str): The name identifier for the file to retrieve.
      config (GetFileConfig): Optional, configuration for the get method.

    Returns:
      File: The file information.

    Usage:

    .. code-block:: python

      file = client.files.get(name='files/...')
      print(file.uri)
    ©r(   r>   rT   r)   úfiles/{file}r8   rU   r>   NrV   rW   rX   rY   rZ   r[   )r   Ú_GetFileParametersr   ra   rb   r2   rV   rc   r   rd   r>   re   r
   rf   rg   rh   ri   rj   rk   ÚFilerm   rn   rp   ©rr   r(   r>   rs   rt   ru   rv   rw   re   r\   rx   ry   s               r   rV   z	Files.getK  s  € õ( Ô.ØØðñ ô €Oð ÔÔ ð Ýð4ñô ð õ
 1°ÑAÔA€lØ%×)Ò)¨&Ñ1Ô1ÐØ	ð Ø×(Ò(Ð)9Ñ:Ô:ˆˆàˆà×#Ò# HÑ-Ô-€LØð 1ØÐ0Ð0•y Ñ.Ô.Ð0Ð0€dà×Ò�X˜tÑ$Ô$Ð$à04€LàÔÐ*ØÔ"Ô/Ð;à$Ô+Ô8€låÔ*¨<Ñ8Ô8€LÝÔ6°|ÑDÔD€LàÔ×'Ò'¨¨t°\À<ÑPÔP€Hà&œmÐJ�B�Bµ´¸H¼MÑ1JÔ1J€Må”:×,Ò,Øõ �? H¨dÑ3Ô3ðØÝ#*Ø#Ô*Ð,=¸tñ$ô $õ )0Ø#Ô*Ð,BÀDñ)ô )õ '.Ø#Ô*Ð,@À$ñ'ô 'ð
ð 
ð
ð 
ð ð! -ñ ô €Lð& 	Ô×%Ò% lÑ3Ô3Ð3ØÐ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 ¬¦  «        }t          j        |	j        ¬¦  «        |_        | j                             |¦  «         |S )a]  Deletes a remotely stored file.

    Args:
      name (str): The name identifier for the file to delete.
      config (DeleteFileConfig): Optional, configuration for the delete method.

    Returns:
      DeleteFileResponse: The response for the delete method

    Usage:

    .. code-block:: python

      client.files.delete(name='files/...')
    r†   rT   r)   r‡   r8   rU   r>   NÚdeleterW   rX   rY   rZ   r[   r^   )r   Ú_DeleteFileParametersr   ra   rb   r-   rV   rc   r   rd   r>   re   r
   rf   rg   rh   ri   rj   rk   r0   ÚDeleteFileResponserm   rn   ro   r_   r#   rp   rŠ   s               r   rŒ   zFiles.deleteœ  sY  € õ& Ô1ØØðñ ô €Oð ÔÔ ð Ýð4ñô ð õ
 4°OÑDÔD€lØ%×)Ò)¨&Ñ1Ô1ÐØ	ð Ø×(Ò(Ð)9Ñ:Ô:ˆˆàˆà×#Ò# HÑ-Ô-€LØð 1ØÐ0Ð0•y Ñ.Ô.Ð0Ð0€dà×Ò�X˜tÑ$Ô$Ð$à04€LàÔÐ*ØÔ"Ô/Ð;à$Ô+Ô8€låÔ*¨<Ñ8Ô8€LÝÔ6°|ÑDÔD€LàÔ×'Ò'Ø�$˜ lñô €Hð 'œmÐJ�B�Bµ´¸H¼MÑ1JÔ1J€MàÔÔ$ð DÝ4°]ÑCÔC€måÔ+×:Ò:Øõ �? H¨dÑ3Ô3ðØÝ#*Ø#Ô*Ð,=¸tñ$ô $õ )0Ø#Ô*Ð,BÀDñ)ô )õ '.Ø#Ô*Ð,@À$ñ'ô 'ð
ð 
ð
ð 
ð ð! ;ñ ô €Lõ$ &+Ô%7ØÔ ð&ñ &ô &€LÔ"ð 	Ô×%Ò% lÑ3Ô3Ð3ØÐr   r4   c                óT  — 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|||¦  «        }	|�Bt!          |d	d ¦  «        r1t          j        |	¬
¦  «        }
| j                             |
¦  «         |
S |	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©r4   r>   rT   r)   zfiles:registerr8   rU   r>   r~   r   r€   rW   rX   rY   rZ   r[   )r   Ú _InternalRegisterFilesParametersr   ra   rb   r5   rV   rc   r   rd   r>   re   r
   rf   rg   rh   rn   ÚRegisterFilesResponserp   ri   rj   rk   rN   rm   ©rr   r4   r>   rs   rt   ru   rv   rw   re   r\   ry   rx   s               r   Ú_register_fileszFiles._register_filesó  s†  € õ Ô<ØØðñ ô €Oð ÔÔ ð  Ýð4ñô ð õ
 ?¸ÑOÔO€lØ%×)Ò)¨&Ñ1Ô1ÐØ	ð  Ø×*Ò*Ð+;Ñ<Ô<ˆˆàˆà×#Ò# HÑ-Ô-€LØð 1ØÐ0Ð0•y Ñ.Ô.Ð0Ð0€dà×Ò�X˜tÑ$Ô$Ð$à04€LàÔÐ*ØÔ"Ô/Ð;à$Ô+Ô8€låÔ*¨<Ñ8Ô8€LÝÔ6°|ÑDÔD€LàÔ×'Ò'Ø��l Lñô €Hð Ð�gØÐ-¨tñô Ðõ Ô0À8ÐLÑLÔL€lØ
Ô×'Ò'¨Ñ5Ô5Ð5ØÐà&œmÐJ�B�Bµ´¸H¼MÑ1JÔ1J€MàÔÔ$ð GÝ7¸ÑFÔF€måÔ.×=Ò=Øõ �? H¨dÑ3Ô3ðØÝ#*Ø#Ô*Ð,=¸tñ$ô $õ )0Ø#Ô*Ð,BÀDñ)ô )õ '.Ø#Ô*Ð,@À$ñ'ô 'ð
ð 
ð
ð 
ð ð! >ñ ô €Lð& 	Ô×%Ò% lÑ3Ô3Ð3ØÐr   c                ó6  — | j         j        rt          d¦  «        ‚t          j        ¦   «         }|rPt          |t          ¦  «        rt          j        di |¤Ž}n|}t          j        |j        |j	        |j
        ¬¦  «        }nt          j        ¦   «         }|j	        �)|j	                             d¦  «        sd|j	        › �|_	        t          j        ||j        |j        ¬¦  «        \  }}}||_        ||_        |                      |t          j        |d¬¦  «        ¬¦  «        }|j        �|j        j        �d	|j        j        vrt)          d
¦  «        ‚|j        j        d	         }	t          |t*          j        ¦  «        r$| j                              ||	|j        |¬¦  «        }
n7t1          j        |¦  «        }| j                              ||	|j        |¬¦  «        }
t          j                             |
j        d         |r|                     ¦   «         ni ¬¦  «        S )aü  Calls the API to upload a file using a supported file service.

    Args:
      file: A path to the file or an `IOBase` object to be uploaded. If it's an
        IOBase object, it must be opened in blocking (the default) mode and
        binary mode. In other words, do not use non-blocking mode or text mode.
        The given stream must be seekable, that is, it must be able to call
        `seek()` on 'path'.
      config: Optional parameters to set `display_name`, `mime_type`, and
        `name`.
    ú=This method is only supported in the Gemini Developer client.©Ú	mime_typer(   Údisplay_nameNúfiles/©Úuser_http_optionsÚuser_mime_typeT©re   r   r}   úx-goog-upload-urlúPFailed to create file. Upload URL was not returned from the create file request.©re   r   r[   rE   )r   ra   rb   r   ÚUploadFileConfigÚ
isinstanceÚdictr‰   r™   r(   rš   Ú
startswithr   Úprepare_resumable_uploadre   Ú
size_bytesr„   ÚCreateFileConfigr#   r_   ÚKeyErrorÚioÚIOBaseÚupload_fileÚosÚfspathrm   rj   Ú
model_dump©rr   r   r>   Úconfig_modelÚfile_objre   r¨   r™   r\   Ú
upload_urlÚreturn_fileÚfs_paths               r   ÚuploadzFiles.uploadB  sU  € ð" ÔÔ ð ÝØ
Iñô ð õ Ô)Ñ+Ô+€LØð Ý	�F�DÑ	!Ô	!ð ÝÔ-Ð7Ð7°Ð7Ð7ˆˆàˆÝ”Ø Ô*ØÔ Ø#Ô0ðñ ô €h€hõ ”‘”€hØ„}Ð ¨¬×)AÒ)AÀ(Ñ)KÔ)KÐ Ø.˜xœ}Ð.Ð.€h„må*6Ô*OØØ&Ô3Ø#Ô-ð+ñ +ô +Ñ'€L�*˜ið
 %€HÔØ"€HÔØ�|Š|ØÝÔ%Ø%À4ð
ñ 
ô 
ð ñ ô €Hð 	Ô"Ð*ØÔ%Ô-Ð5Ø hÔ&@Ô&HÐHÐHåðñô ð ð Ô+Ô3Ð4GÔH€Jå�$�œ	Ñ"Ô"ð ØÔ$×0Ò0Ø
�
˜HÔ/¸lð 1ñ ô €k€kõ ”	˜$‘”€gØÔ$×0Ò0Ø
�:˜xÔ2Àð 1ñ ô €kõ Œ:×$Ò$ØÔ! &Ô)Ø,2Ð:ˆ|×&Ò&Ñ(Ô(Ð(¸ð %ñ ô ð r   c                óx  — | j         j        rt          d¦  «        ‚d}|r)t          |t          ¦  «        rt          j        di |¤Ž}n|}t          |t
          j        ¦  «        r|j        €t          d¦  «        ‚t          j
        |¦  «        }d|› d�}ddi}|› dt          |¦  «        › �}d}t          |d	g¦  «        �t          |d	g¦  «        }| j                              ||¬
¦  «        }t          |t
          j        ¦  «        r||_        n-t          |t
          j        ¦  «        r|j        �||j        _        |S )ar  Downloads a file's data from storage.

    Files created by `upload` can't be downloaded. You can tell which files are
    downloadable by checking the `source` or `download_uri` property.

    Note: This method returns the data as bytes. For `Video` and
    `GeneratedVideo` objects there is an additional side effect, that it also
    sets the `video_bytes` property on the `Video` object.

    Args:
      file (str): A file name, uri, or file object. Identifying which file to
        download.
      config (DownloadFileConfigOrDict): Optional, configuration for the get
        method.

    Returns:
      File: The file data as bytes.

    Usage:

    .. code-block:: python

      for file client.files.list():
        if file.download_uri is not None:
          break
      else:
        raise ValueError('No files found with a `download_uri`.')
      data = client.files.download(file=file)
      # data = client.files.download(file=file.name)
      # data = client.files.download(file=file.download_uri)

      video = types.Video(uri=file.uri)
      video_bytes = client.files.download(file=video)
      video.video_bytes
    r—   NzªOnly generated files can be downloaded, uploaded files can't be downloaded. You can tell which files are downloadable by checking the `source` or `download_uri` property.r›   ú	:downloadÚaltÚmediarU   re   r¢   rE   )r   ra   rb   r¤   r¥   r   ÚDownloadFileConfigr‰   Údownload_urir+   r,   r   r   Údownload_fileÚVideoÚvideo_bytesÚGeneratedVideoÚvideo)	rr   r   r>   r²   r(   rv   rw   re   Údatas	            r   ÚdownloadzFiles.download�  sx  € ðR ÔÔ ð ÝØ
Iñô ð ð €LØð Ý	�F�DÑ	!Ô	!ð ÝÔ/Ð9Ð9°&Ð9Ð9ˆˆàˆå�$�œ
Ñ#Ô#ð ¨Ô(9Ð(AÝð5ñô ð õ
 Œ=˜ÑÔ€Dà#�DÐ#Ð#Ð#€Dà˜7Ð#€LØÐ.Ð.•Y˜|Ñ,Ô,Ð.Ð.€DØ€LÝˆL˜>Ð*Ñ+Ô+Ð7Ý˜,¨Ð(8Ñ9Ô9€làÔ×)Ò)ØØ!ð *ñ ô €Dõ
 �$�œÑ$Ô$ð $Ø€dÔÐÝ	�D�%Ô.Ñ	/Ô	/ð $°D´JÐ4JØ#€d„jÔà€Kr   Úauthc                ó0  — t          |t          j        j        j        ¦  «        st          d¦  «        ‚|€t          j        ¦   «         }n5t          j                             |¦  «        }| 	                    d¬¦  «        }|j
        pt          j        ¦   «         }|j        pi }d„ |                     ¦   «         D ¦   «         }t          j        | j        |¦  «        }d|› �|d<   |j        r
|j        |d<   ||_        ||_
        |                      ||¬	¦  «        S )
ú*Registers gcs files with the file service.ú:auth must be a google.auth.credentials.Credentials object.NT©Údeepc                 ó>   — i | ]\  }}|                      ¦   «         |“ŒS rE   ©Úlower©rG   ÚkÚvs      r   ú
<dictcomp>z(Files.register_files.<locals>.<dictcomp>ô  ó&   € Ð8Ð8Ð8¡  1ˆq�wŠw‰yŒy˜!Ð8Ð8Ð8r   úBearer Úauthorizationúx-goog-user-projectr‘   )r¤   ÚgooglerÅ   ÚcredentialsÚCredentialsrb   r   ÚRegisterFilesConfigÚmodel_validateÚ
model_copyre   ÚHttpOptionsr_   Úitemsr   Úget_token_from_credentialsÚquota_project_idr•   ©rr   rÅ   r4   r>   re   r_   Útokens          r   Úregister_fileszFiles.register_filesà  s  € õ �d�FœKÔ3Ô?Ñ@Ô@ð ÝØ
Fñô ð ð €~ÝÔ(Ñ*Ô*€f€fåÔ(×7Ò7¸Ñ?Ô?€fØ× Ò  dÐ Ñ+Ô+€fàÔ&Ð=­%Ô*;Ñ*=Ô*=€LØÔ"Ð( b€GØ8Ð8¨¯ª©¬Ð8Ñ8Ô8€GåÔ2°4Ô3CÀTÑJÔJ€EØ0¨Ð0Ð0€GˆOÑàÔð =Ø'+Ô'<€gÐ#Ñ$à"€LÔØ&€FÔà×Ò T°&ÐÑ9Ô9Ð9r   c                ó\   — | j         }t          d||                       |¬¦  «        |¦  «        S )a¢  Lists all files from the service.

    Args:
      config (ListFilesConfig): Optional, configuration for the list method.

    Returns:
      A Pager object that contains one page of files. When iterating over
      the pager, it automatically fetches the next page if there are more.

    Usage:

    .. code-block:: python

      for file in client.files.list(config={'page_size': 10}):
        print(file.name)
    rC   rQ   )rz   r   ©rr   r>   Úlist_requests      r   Úlistz
Files.list  s7   € ð( ”:€LÝØØØ�
Š
˜&ˆ
Ñ!Ô!Øñ	ô ð r   )*Ú__name__Ú
__module__Ú__qualname__r   r   ÚListFilesConfigOrDictrl   rz   Ú
FileOrDictÚCreateFileConfigOrDictr‚   r„   ÚstrÚGetFileConfigOrDictr‰   rV   ÚDeleteFileConfigOrDictrŽ   rŒ   Úbuiltinsræ   ÚRegisterFilesConfigOrDictr“   r•   r   r®   ÚPathLiker«   r¬   ÚUploadFileConfigOrDictr·   r¿   rÁ   ÚDownloadFileConfigOrDictÚbytesrÄ   rÖ   rÅ   r×   rØ   râ   r   rE   r   r   rP   rP   ¶   s2  € € € € € ð @DðBð Bð BØ Ô ;Ô<ðBàÔðBð Bð Bð BðP 8<ð	Mð Mð Mð ÔðMð �uÔ3Ô4ð	Mð
 ÔðMð Mð Mð Mð` IMðOð Oð OØðOØ"*¨5Ô+DÔ"EðOà„zðOð Oð Oð Oðd LPðUð Uð UØðUØ"*¨5Ô+GÔ"HðUàÔðUð Uð Uð Uðv ;?ð	Mð Mð Mð ŒM˜#ÔðMð �uÔ6Ô7ð	Mð
 Ô"ðMð Mð Mð Mðf 8<ð	Kð Kð Kð �#�r”{ 3Ô'¨¬Ð2Ô3ðKð �uÔ3Ô4ð	Kð
 „zðKð Kð Kð Kðb :>ð	Oð Oð Oð �#�u”z 5¤;°Ô0DÐDÔEðOð �uÔ5Ô6ð	Oð
 ðOð Oð Oð Oðl ;?ð:ð :ð :ð ŒKÔ#Ô/ð:ð ŒM˜#Ôð	:ð
 �uÔ6Ô7ð:ð Ô"ð:ð :ð :ð :ðD @Dðð ð Ø Ô ;Ô<ðàˆUŒZÔðð ð ð ð ð r   rP   c            	       ó¶  — e Zd Zddœdeej                 dej        fd„Zddœdej        deej	                 dej
        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j        fd
„Zddœdej        e         deej                 dej        fd„Zddœdeeej        e         ej        f         deej                 dej        fd„Zddœdeeej        f         deej                 de fd„Z!ddœde"j#        j$        j%        dej        e         deej                 dej        fd„Z&ddœdeej                 de'ej                 fd„ZdS )Ú
AsyncFilesNrQ   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 ¬¦  «        }
t          j        |j        ¬¦  «        |
_        | j                             |
¦  «         |
S rS   )r   r`   r   ra   rb   r?   rV   rc   r   rd   r>   re   r
   rf   rg   Úasync_requestri   rj   rk   rK   rl   rm   rn   ro   r_   r#   rp   rq   s              r   rz   zAsyncFiles._list   sx  è è € õ Ô0Øðñ ô €Oð
 ÔÔ ð Ýð4ñô ð õ
 3°?ÑCÔC€lØ%×)Ò)¨&Ñ1Ô1ÐØ	ð Ø×!Ò!Ð"2Ñ3Ô3ˆˆàˆà×#Ò# HÑ-Ô-€LØð 1ØÐ0Ð0•y Ñ.Ô.Ð0Ð0€dà×Ò�X˜tÑ$Ô$Ð$à04€LàÔÐ*ØÔ"Ô/Ð;à$Ô+Ô8€låÔ*¨<Ñ8Ô8€LÝÔ6°|ÑDÔD€LàÔ%×3Ò3Øˆt�\ <ñô ð ð ð ð ð ð €Hð 'œmÐJ�B�Bµ´¸H¼MÑ1JÔ1J€MàÔÔ$ð CÝ3°MÑBÔB€måÔ*×9Ò9Øõ �? H¨dÑ3Ô3ðØÝ#*Ø#Ô*Ð,=¸tñ$ô $õ )0Ø#Ô*Ð,BÀDñ)ô )õ '.Ø#Ô*Ð,@À$ñ'ô 'ð
ð 
ð
ð 
ð ð! :ñ ô €Lõ$ &+Ô%7ØÔ ð&ñ &ô &€LÔ"ð 	Ô×%Ò% lÑ3Ô3Ð3ØÐr   r   c             ƒ   ód  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 —†}	|�Bt!          |d	d ¦  «        r1t          j        |	¬
¦  «        }
| j                             |
¦  «         |
S |	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 r|   )r   r�   r   ra   rb   r   rV   rc   r   rd   r>   re   r
   rf   rg   rù   rn   r‚   rp   ri   rj   rk   r$   rm   rƒ   s               r   r„   zAsyncFiles._createf  s¨  è è € õ Ô1ØØðñ ô €Oð ÔÔ ð %Ýð4ñô ð õ
 4°OÑDÔD€lØ%×)Ò)¨&Ñ1Ô1ÐØ	ð %Ø$×/Ò/Ð0@ÑAÔAˆˆà$ˆà×#Ò# HÑ-Ô-€LØð 1ØÐ0Ð0•y Ñ.Ô.Ð0Ð0€dà×Ò�X˜tÑ$Ô$Ð$à04€LàÔÐ*ØÔ"Ô/Ð;à$Ô+Ô8€låÔ*¨<Ñ8Ô8€LÝÔ6°|ÑDÔD€LàÔ%×3Ò3Ø��l Lñô ð ð ð ð ð ð €Hð Ð�gØÐ-¨tñô Ðõ Ô-ÀÐIÑIÔI€lØ
Ô×'Ò'¨Ñ5Ô5Ð5ØÐà&œmÐJ�B�Bµ´¸H¼MÑ1JÔ1J€MàÔÔ$ð DÝ4°]ÑCÔC€måÔ+×:Ò:Øõ �? H¨dÑ3Ô3ðØÝ#*Ø#Ô*Ð,=¸tñ$ô $õ )0Ø#Ô*Ð,BÀDñ)ô )õ '.Ø#Ô*Ð,@À$ñ'ô 'ð
ð 
ð
ð 
ð ð! ;ñ ô €Lð& 	Ô×%Ò% lÑ3Ô3Ð3ØÐ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 )as  Retrieves the file information from the service.

    Args:
      name (str): The name identifier for the file to retrieve.
      config (GetFileConfig): Optional, configuration for the get method.

    Returns:
      File: The file information.

    Usage:

    .. code-block:: python

      file = await client.aio.files.get(name='files/...')
      print(file.uri)
    r†   rT   r)   r‡   r8   rU   r>   NrV   rW   rX   rY   rZ   r[   )r   rˆ   r   ra   rb   r2   rV   rc   r   rd   r>   re   r
   rf   rg   rù   ri   rj   rk   r‰   rm   rn   rp   rŠ   s               r   rV   zAsyncFiles.getµ  s<  è è € õ( Ô.ØØðñ ô €Oð ÔÔ ð Ýð4ñô ð õ
 1°ÑAÔA€lØ%×)Ò)¨&Ñ1Ô1ÐØ	ð Ø×(Ò(Ð)9Ñ:Ô:ˆˆàˆà×#Ò# HÑ-Ô-€LØð 1ØÐ0Ð0•y Ñ.Ô.Ð0Ð0€dà×Ò�X˜tÑ$Ô$Ð$à04€LàÔÐ*ØÔ"Ô/Ð;à$Ô+Ô8€låÔ*¨<Ñ8Ô8€LÝÔ6°|ÑDÔD€LàÔ%×3Ò3Øˆt�\ <ñô ð ð ð ð ð ð €Hð 'œmÐJ�B�Bµ´¸H¼MÑ1JÔ1J€Må”:×,Ò,Øõ �? H¨dÑ3Ô3ðØÝ#*Ø#Ô*Ð,=¸tñ$ô $õ )0Ø#Ô*Ð,BÀDñ)ô )õ '.Ø#Ô*Ð,@À$ñ'ô 'ð
ð 
ð
ð 
ð ð! -ñ ô €Lð& 	Ô×%Ò% lÑ3Ô3Ð3ØÐ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 ¬¦  «        }t          j        |	j        ¬¦  «        |_        | j                             |¦  «         |S )ag  Deletes a remotely stored file.

    Args:
      name (str): The name identifier for the file to delete.
      config (DeleteFileConfig): Optional, configuration for the delete method.

    Returns:
      DeleteFileResponse: The response for the delete method

    Usage:

    .. code-block:: python

      await client.aio.files.delete(name='files/...')
    r†   rT   r)   r‡   r8   rU   r>   NrŒ   rW   rX   rY   rZ   r[   r^   )r   r�   r   ra   rb   r-   rV   rc   r   rd   r>   re   r
   rf   rg   rù   ri   rj   rk   r0   rŽ   rm   rn   ro   r_   r#   rp   rŠ   s               r   rŒ   zAsyncFiles.delete  s{  è è € õ& Ô1ØØðñ ô €Oð ÔÔ ð Ýð4ñô ð õ
 4°OÑDÔD€lØ%×)Ò)¨&Ñ1Ô1ÐØ	ð Ø×(Ò(Ð)9Ñ:Ô:ˆˆàˆà×#Ò# HÑ-Ô-€LØð 1ØÐ0Ð0•y Ñ.Ô.Ð0Ð0€dà×Ò�X˜tÑ$Ô$Ð$à04€LàÔÐ*ØÔ"Ô/Ð;à$Ô+Ô8€låÔ*¨<Ñ8Ô8€LÝÔ6°|ÑDÔD€LàÔ%×3Ò3Ø�$˜ lñô ð ð ð ð ð ð €Hð 'œmÐJ�B�Bµ´¸H¼MÑ1JÔ1J€MàÔÔ$ð DÝ4°]ÑCÔC€måÔ+×:Ò:Øõ �? H¨dÑ3Ô3ðØÝ#*Ø#Ô*Ð,=¸tñ$ô $õ )0Ø#Ô*Ð,BÀDñ)ô )õ '.Ø#Ô*Ð,@À$ñ'ô 'ð
ð 
ð
ð 
ð ð! ;ñ ô €Lõ$ &+Ô%7ØÔ ð&ñ &ô &€LÔ"ð 	Ô×%Ò% lÑ3Ô3Ð3ØÐr   r4   c             ƒ   ód  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 —†}	|�Bt!          |d	d ¦  «        r1t          j        |	¬
¦  «        }
| j                             |
¦  «         |
S |	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 r�   )r   r’   r   ra   rb   r5   rV   rc   r   rd   r>   re   r
   rf   rg   rù   rn   r“   rp   ri   rj   rk   rN   rm   r”   s               r   r•   zAsyncFiles._register_files_  s¨  è è € õ Ô<ØØðñ ô €Oð ÔÔ ð  Ýð4ñô ð õ
 ?¸ÑOÔO€lØ%×)Ò)¨&Ñ1Ô1ÐØ	ð  Ø×*Ò*Ð+;Ñ<Ô<ˆˆàˆà×#Ò# HÑ-Ô-€LØð 1ØÐ0Ð0•y Ñ.Ô.Ð0Ð0€dà×Ò�X˜tÑ$Ô$Ð$à04€LàÔÐ*ØÔ"Ô/Ð;à$Ô+Ô8€låÔ*¨<Ñ8Ô8€LÝÔ6°|ÑDÔD€LàÔ%×3Ò3Ø��l Lñô ð ð ð ð ð ð €Hð Ð�gØÐ-¨tñô Ðõ Ô0À8ÐLÑLÔL€lØ
Ô×'Ò'¨Ñ5Ô5Ð5ØÐà&œmÐJ�B�Bµ´¸H¼MÑ1JÔ1J€MàÔÔ$ð GÝ7¸ÑFÔF€måÔ.×=Ò=Øõ �? H¨dÑ3Ô3ðØÝ#*Ø#Ô*Ð,=¸tñ$ô $õ )0Ø#Ô*Ð,BÀDñ)ô )õ '.Ø#Ô*Ð,@À$ñ'ô 'ð
ð 
ð
ð 
ð ð! >ñ ô €Lð& 	Ô×%Ò% lÑ3Ô3Ð3ØÐr   c             ƒ   ó¼  K  — | j         j        rt          d¦  «        ‚t          j        ¦   «         }|rPt          |t          ¦  «        rt          j        di |¤Ž}n|}t          j        |j        |j	        |j
        ¬¦  «        }nt          j        ¦   «         }|j	        �)|j	                             d¦  «        sd|j	        › �|_	        t          j        ||j        |j        ¬¦  «        \  }}}||_        ||_        |                      |t          j        |d¬¦  «        ¬¦  «        ƒ d{V —†}|j        �(|j        j        �d	|j        j        vrd
|j        j        vrt)          d¦  «        ‚d	|j        j        v r|j        j        d	         }	n|j        j        d
         }	t          |t*          j        ¦  «        r*| j                              ||	|j        |¬¦  «        ƒ d{V —†}
n=t1          j        |¦  «        }| j                              ||	|j        |¬¦  «        ƒ d{V —†}
t          j                             |
j        d         |r|                     ¦   «         ni ¬¦  «        S )a  Calls the API to upload a file asynchronously using a supported file service.

    Args:
      file: A path to the file or an `IOBase` object to be uploaded. If it's an
        IOBase object, it must be opened in blocking (the default) mode and
        binary mode. In other words, do not use non-blocking mode or text mode.
        The given stream must be seekable, that is, it must be able to call
        `seek()` on 'path'.
      config: Optional parameters to set `display_name`, `mime_type`, and
        `name`.
    r—   r˜   Nr›   rœ   TrŸ   r}   r    zX-Goog-Upload-URLr¡   r¢   r   r[   rE   )r   ra   rb   r   r£   r¤   r¥   r‰   r™   r(   rš   r¦   r   r§   re   r¨   r„   r©   r#   r_   rª   r«   r¬   Úasync_upload_filer®   r¯   rm   rj   r°   r±   s               r   r·   zAsyncFiles.upload®  sê  è è € ð" ÔÔ ð ÝØ
Iñô ð õ Ô)Ñ+Ô+€LØð Ý	�F�DÑ	!Ô	!ð ÝÔ-Ð7Ð7°Ð7Ð7ˆˆàˆÝ”Ø Ô*ØÔ Ø#Ô0ðñ ô €h€hõ ”‘”€hØ„}Ð ¨¬×)AÒ)AÀ(Ñ)KÔ)KÐ Ø.˜xœ}Ð.Ð.€h„må*6Ô*OØØ&Ô3Ø#Ô-ð+ñ +ô +Ñ'€L�*˜ið
 %€HÔØ"€HÔØ—\’\ØÝÔ%Ø%À4ð
ñ 
ô 
ð "ñ ô ð ð ð ð ð ð €Hð 	Ô"Ð*ØÔ%Ô-Ð5à xÔ'AÔ'IÐIÐIØ#¨8Ô+EÔ+MÐMÐMõ ðñô ð ð 
 Ô :Ô BÐ	BÐ	BØÔ-Ô5Ð6IÔJ€j€jàÔ-Ô5Ð6IÔJ€jå�$�œ	Ñ"Ô"ð ØÔ*×<Ò<Ø
�
˜HÔ/¸lð =ñ ô ð ð ð ð ð ð €k€kõ ”	˜$‘”€gØÔ*×<Ò<Ø
�:˜xÔ2Àð =ñ ô ð ð ð ð ð ð €kõ Œ:×$Ò$ØÔ! &Ô)Ø,2Ð:ˆ|×&Ò&Ñ(Ô(Ð(¸ð %ñ ô ð r   c             ƒ   óŽ  K  — | j         j        rt          d¦  «        ‚d}|r)t          |t          ¦  «        rt          j        d
i |¤Ž}n|}t          j        |¦  «        }d|› d�}d}t          |dg¦  «        �t          |dg¦  «        }ddi}|r|› dt          |¦  «        › �}| j                              ||¬	¦  «        ƒ d{V —†}|S )a�  Downloads a file's data from the file service.

    The Gemini Enterprise Agent Platform implementation of the API does not
    include the file service.

    Files created by `upload` can't be downloaded. You can tell which files are
    downloadable by checking the `download_uri` property.

    Args:
      File (str): A file name, uri, or file object. Identifying which file to
        download.
      config (DownloadFileConfigOrDict): Optional, configuration for the get
        method.

    Returns:
      File: The file data as bytes.

    Usage:

    .. code-block:: python

      for file client.files.list():
        if file.download_uri is not None:
          break
      else:
        raise ValueError('No files found with a `download_uri`.')
      data = client.files.download(file=file)
      # data = client.files.download(file=file.name)
      # data = client.files.download(file=file.uri)
    r—   Nr›   r¹   re   rº   r»   rU   r¢   rE   )r   ra   rb   r¤   r¥   r   r¼   r+   r,   r   r   Úasync_download_file)	rr   r   r>   r²   r(   rv   re   rw   rÃ   s	            r   rÄ   zAsyncFiles.download   s(  è è € ðH ÔÔ ð ÝØ
Iñô ð ð €LØð Ý	�F�DÑ	!Ô	!ð ÝÔ/Ð9Ð9°&Ð9Ð9ˆˆàˆåŒ=˜ÑÔ€Dà#�DÐ#Ð#Ð#€Dà€LÝˆL˜>Ð*Ñ+Ô+Ð7Ý˜,¨Ð(8Ñ9Ô9€là˜7Ð#€LØð 1ØÐ0Ð0•y Ñ.Ô.Ð0Ð0€dàÔ!×5Ò5ØØ!ð 6ñ ô ð ð ð ð ð ð €Dð
 €Kr   rÅ   c             ƒ   óL  K  — t          |t          j        j        j        ¦  «        st          d¦  «        ‚|€t          j        ¦   «         }n5t          j                             |¦  «        }| 	                    d¬¦  «        }|j
        pt          j        ¦   «         }|j        pi }d„ |                     ¦   «         D ¦   «         }t          j        | j        |¦  «        ƒ d{V —†}d|› �|d<   |j        r
|j        |d<   ||_        ||_
        |                      ||¬	¦  «        ƒ d{V —†S )
rÇ   rÈ   NTrÉ   c                 ó>   — i | ]\  }}|                      ¦   «         |“ŒS rE   rÌ   rÎ   s      r   rÑ   z-AsyncFiles.register_files.<locals>.<dictcomp>W  rÒ   r   rÓ   rÔ   rÕ   r‘   )r¤   rÖ   rÅ   r×   rØ   rb   r   rÙ   rÚ   rÛ   re   rÜ   r_   rÝ   r   Ú async_get_token_from_credentialsrß   r•   rà   s          r   râ   zAsyncFiles.register_filesC  sX  è è € õ �d�FœKÔ3Ô?Ñ@Ô@ð ÝØ
Fñô ð ð €~ÝÔ(Ñ*Ô*€f€fåÔ(×7Ò7¸Ñ?Ô?€fØ× Ò  dÐ Ñ+Ô+€fàÔ&Ð=­%Ô*;Ñ*=Ô*=€LØÔ"Ð( b€GØ8Ð8¨¯ª©¬Ð8Ñ8Ô8€GåÔ>ØÔ˜$ñô ð ð ð ð ð ð €Eð  1¨Ð0Ð0€GˆOÑàÔð =Ø'+Ô'<€gÐ#Ñ$à"€LÔØ&€FÔà×%Ò%¨4¸Ð%Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?r   c             ƒ   ól   K  — | j         }t          d||                       |¬¦  «        ƒ d{V —†|¦  «        S )aÁ  Lists all files from the service asynchronously.

    Args:
      config (ListFilesConfig): Optional, configuration for the list method.

    Returns:
      A Pager object that contains one page of files. When iterating over
      the pager, it automatically fetches the next page if there are more.

    Usage:

    .. code-block:: python

      async for file in await client.aio.files.list(config={'page_size': 10}):
        print(file.name)
    rC   rQ   N)rz   r   rä   s      r   ræ   zAsyncFiles.listf  sM   è è € ð( ”:€LÝØØØ�jŠj ˆjÑ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Øñ	ô ð r   )(rç   rè   ré   r   r   rê   rl   rz   rë   rì   r‚   r„   rí   rî   r‰   rV   rï   rŽ   rŒ   rð   ræ   rñ   r“   r•   r   r®   rò   r«   r¬   ró   r·   rô   rõ   rÄ   rÖ   rÅ   r×   rØ   râ   r   rE   r   r   r÷   r÷     s2  € € € € € ð @DðDð Dð DØ Ô ;Ô<ðDàÔðDð Dð Dð DðT 8<ð	Mð Mð Mð ÔðMð �uÔ3Ô4ð	Mð
 ÔðMð Mð Mð Mð` IMðQð Qð QØðQØ"*¨5Ô+DÔ"EðQà„zðQð Qð Qð Qðh LPðUð Uð UØðUØ"*¨5Ô+GÔ"HðUàÔðUð Uð Uð Uðv ;?ð	Mð Mð Mð ŒM˜#ÔðMð �uÔ6Ô7ð	Mð
 Ô"ðMð Mð Mð Mðf 8<ð	Pð Pð Pð �#�r”{ 3Ô'¨¬Ð2Ô3ðPð �uÔ3Ô4ð	Pð
 „zðPð Pð Pð Pðl :>ð	Að Að Að �#�u”z�/Ô"ðAð �uÔ5Ô6ð	Að
 ðAð Að Að AðP ;?ð!@ð !@ð !@ð ŒKÔ#Ô/ð!@ð ŒM˜#Ôð	!@ð
 �uÔ6Ô7ð!@ð Ô"ð!@ð !@ð !@ð !@ðH @Dðð ð Ø Ô ;Ô<ðà�%”*Ôðð ð ð ð ð r   r÷   )N).rð   r«   rj   Úloggingr®   Útypingr   r   r   Úurllib.parser   Úgoogle.authrÖ   Ú r   r	   r
   r   r   r+   r   r   r   r   r   Úpagersr   r   Ú	getLoggerÚloggerr¥   rí   Úobjectr   r$   r-   r0   r2   r5   r<   r?   rK   rN   Ú
BaseModulerP   r÷   rE   r   r   ú<module>r     sX  ðð$ €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 	€	€	€	Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ø .Ð .Ð .Ð .Ð .Ð .Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à	ˆÔ	Ð/Ñ	0Ô	0€ð
 /3ðð Ø�t˜C ˜H”~ vÐ-Ô.ðà˜D  c œNÔ+ðð 
ˆ#ˆsˆ(„^ðð ð ð ð /3ð
ð 
Ø�t˜C ˜H”~ vÐ-Ô.ð
à˜D  c œNÔ+ð
ð 
ˆ#ˆsˆ(„^ð
ð 
ð 
ð 
ð /3ð
ð 
Ø�t˜C ˜H”~ vÐ-Ô.ð
à˜D  c œNÔ+ð
ð 
ˆ#ˆsˆ(„^ð
ð 
ð 
ð 
ð /3ð
ð 
Ø�t˜C ˜H”~ vÐ-Ô.ð
à˜D  c œNÔ+ð
ð 
ˆ#ˆsˆ(„^ð
ð 
ð 
ð 
ð /3ð
ð 
Ø�t˜C ˜H”~ vÐ-Ô.ð
à˜D  c œNÔ+ð
ð 
ˆ#ˆsˆ(„^ð
ð 
ð 
ð 
ð /3ðð Ø�t˜C ˜H”~ vÐ-Ô.ðà˜D  c œNÔ+ðð 
ˆ#ˆsˆ(„^ðð ð ð ð /3ðð Ø�t˜C ˜H”~ vÐ-Ô.ðà˜D  c œNÔ+ðð 
ˆ#ˆsˆ(„^ðð ð ð ð. /3ðð Ø�t˜C ˜H”~ vÐ-Ô.ðà˜D  c œNÔ+ðð 
ˆ#ˆsˆ(„^ðð ð ð ð /3ðð Ø�t˜C ˜H”~ vÐ-Ô.ðà˜D  c œNÔ+ðð 
ˆ#ˆsˆ(„^ðð ð ð ð* /3ðð Ø�t˜C ˜H”~ vÐ-Ô.ðà˜D  c œNÔ+ðð 
ˆ#ˆsˆ(„^ðð ð ð ð e	ð e	ð e	ð e	ð e	ˆKÔ"ñ e	ô e	ð e	ðPb	ð b	ð b	ð b	ð b	�Ô'ñ b	ô b	ð b	ð b	ð b	r   