§
    TCÄjkº  ã            	       ó  — 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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Úoverload)Ú	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      úVC:\Projects\Historical\FacebookAutoPoster\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_mldevr1   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_mldevr3   [   r/   r    c                 ón   — i }t          | dg¦  «        �!t          |dgt          | dg¦  «        ¦  «         |S )NÚurisr   r   s      r   Ú)_InternalRegisterFilesParameters_to_mldevr6   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 © rF   ©Ú.0Úitems     r   ú
<listcomp>z1_ListFilesResponse_from_mldev.<locals>.<listcomp>¡   ó   € ÐNÐNÐN¨ ÐNÐNÐNr    r   r   s      r   Ú_ListFilesResponse_from_mldevrL   “   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$   rD   c                 ó   — g | ]}|‘ŒS rF   rF   rG   s     r   rJ   z5_RegisterFilesResponse_from_mldev.<locals>.<listcomp>±   rK   r    r   r   s      r   Ú!_RegisterFilesResponse_from_mldevrO   ¦   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edddœdeeej        ej         ej!        f         dddeej"                 de#fd„¦   «         Z$eddœdeeej        ej         ej!        f         deeej        e         ej        f         deej"                 ddfd„¦   «         Z$dddœdeeej        ej         ej!        f         deeeej        e         ej        f                  deej"                 de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 ©NrR   úiThis method is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.r*   rD   r9   ú?r?   ÚgetÚresponse_schemaÚresponse_json_schemaÚinclude_all_fields©rX   rY   rZ   ©ÚresponseÚkwargs©Úheaders)r   Ú_ListFilesParametersr	   ÚvertexaiÚ
ValueErrorr@   rW   Ú
format_mapr   Úpopr?   Úhttp_optionsr   Úconvert_to_dictÚencode_unserializable_typesÚrequestÚbodyÚjsonÚloadsrL   ÚListFilesResponseÚ_from_responseÚgetattrÚHttpResponser`   r$   Ú_verify_response©Úselfr?   Úparameter_modelÚrequest_dictÚrequest_url_dictÚpathÚquery_paramsrf   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?   rU   r*   zupload/v1beta/filesr9   rV   r?   ÚpostÚshould_return_http_response©r$   rX   rY   rZ   r[   r\   )r   Ú_CreateFileParametersr	   rb   rc   r   rW   rd   r   re   r?   rf   r   rg   rh   ri   ro   ÚCreateFileResponserq   rj   rk   rl   r%   rn   ©rs   r   r?   rt   ru   rv   rw   rx   rf   r]   rz   ry   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?   rU   r*   úfiles/{file}r9   rV   r?   NrW   rX   rY   rZ   r[   r\   )r   Ú_GetFileParametersr	   rb   rc   r3   rW   rd   r   re   r?   rf   r   rg   rh   ri   rj   rk   rl   ÚFilern   ro   rq   ©rs   r)   r?   rt   ru   rv   rw   rx   rf   r]   ry   rz   s               r   rW   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‡   rU   r*   rˆ   r9   rV   r?   NÚdeleterX   rY   rZ   r[   r\   r_   )r   Ú_DeleteFileParametersr	   rb   rc   r.   rW   rd   r   re   r?   rf   r   rg   rh   ri   rj   rk   rl   r1   ÚDeleteFileResponsern   ro   rp   r`   r$   rq   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    r5   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©r5   r?   rU   r*   zfiles:registerr9   rV   r?   r   r€   r�   rX   rY   rZ   r[   r\   )r   Ú _InternalRegisterFilesParametersr	   rb   rc   r6   rW   rd   r   re   r?   rf   r   rg   rh   ri   ro   ÚRegisterFilesResponserq   rj   rk   rl   rO   rn   ©rs   r5   r?   rt   ru   rv   rw   rx   rf   r]   rz   ry   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©rf   r€   r~   úx-goog-upload-urlúPFailed to create file. Upload URL was not returned from the create file request.©rf   r   r\   rF   )r	   rb   rc   r   ÚUploadFileConfigÚ
isinstanceÚdictrŠ   rš   r)   r›   Ú
startswithr   Úprepare_resumable_uploadrf   Ú
size_bytesr…   ÚCreateFileConfigr$   r`   ÚKeyErrorÚioÚIOBaseÚupload_fileÚosÚfspathrn   rk   Ú
model_dump©rs   r   r?   Úconfig_modelÚfile_objrf   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    ©Údestinationr?   rº   c                ó   — d S ©NrF   ©rs   r   rº   r?   s       r   ÚdownloadzFiles.download�  ó	   € ð €Cr    c                ó   — d S r¼   rF   r½   s       r   r¾   zFiles.download™  r¿   r    c                ó~  — | 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                              |||¬
¦  «        }	|€Ot          |t
          j        ¦  «        r|	|_        n-t          |t
          j        ¦  «        r|j        �|	|j        _        |	S )a  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: When destination is None, this method returns the data as bytes. For
    `Video` and `GeneratedVideo` objects, if destination is None, it also sets
    the
    `video_bytes` property on the `Video` object. When destination is provided,
    chunks are streamed directly to disk or the writable stream without loading
    the full file into memory, and None is returned.

    Args:
      file: A file name, uri, or file object identifying which file to download.
      destination: Optional, a local file path or writable binary stream to
        write the file directly to in chunks, avoiding holding the full file in
        memory.
      config: Optional, configuration for the get method.

    Returns:
      bytes: The file data as bytes if destination is None; otherwise None.

    Usage:

    .. code-block:: python

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

      # Download to memory:
      data = client.files.download(file=file)

      # Stream directly to a file path (avoids memory spike):
      client.files.download(file=file, destination="output.mp4")

      # Download video object:
      video = types.Video(uri=file.uri)
      video_bytes = client.files.download(file=video)
      video.video_bytes
    r˜   Núª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ÚmediarV   rf   ©rf   rº   rF   )r	   rb   rc   r¥   r¦   r   ÚDownloadFileConfigrŠ   Údownload_urir,   r-   r   r   Údownload_fileÚVideoÚvideo_bytesÚGeneratedVideoÚvideo)
rs   r   rº   r?   r³   r)   rw   rx   rf   Údatas
             r   r¾   zFiles.download£  s�  € ðd ÔÔ ð ÝØ
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�EÔ0Ñ1Ô1ð &°d´jÐ6LØ!%ˆŒ
Ôà€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 rF   ©Úlower©rH   Ú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ÚCredentialsrc   r   ÚRegisterFilesConfigÚmodel_validateÚ
model_copyrf   ÚHttpOptionsr`   Úitemsr	   Úget_token_from_credentialsÚquota_project_idr–   ©rs   rÏ   r5   r?   rf   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)
    rD   rR   )r{   r   ©rs   r?   Úlist_requests      r   Úlistz
Files.list   s7   € ð( ”:€LÝØØØ�
Š
˜&ˆ
Ñ!Ô!Øñ	ô ð r    )+Ú__name__Ú
__module__Ú__qualname__r   r   ÚListFilesConfigOrDictrm   r{   Ú
FileOrDictÚCreateFileConfigOrDictrƒ   r…   ÚstrÚGetFileConfigOrDictrŠ   rW   ÚDeleteFileConfigOrDictr�   r�   Úbuiltinsrð   ÚRegisterFilesConfigOrDictr”   r–   r   r¯   ÚPathLiker¬   r­   ÚUploadFileConfigOrDictr¸   r   rÊ   rÌ   ÚDownloadFileConfigOrDictÚbytesr¾   rà   rÏ   rá   râ   rì   r   rF   r    r   rQ   rQ   ¶   s`  € € € € € ð @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ðZ ð
 Ø9=ðð ð ð �#�u”z 5¤;°Ô0DÐDÔEðð ð	ð
 �uÔ5Ô6ðð ðð ð ñ „8ðð ð :>ðð ð ð �#�u”z 5¤;°Ô0DÐDÔEðð ˜˜bœk¨#Ô.°´	Ð9Ô:ð	ð
 �uÔ5Ô6ðð ðð ð ñ „8ðð HLØ9=ðZð Zð Zð �#�u”z 5¤;°Ô0DÐDÔEðZð ˜E # r¤{°3Ô'7¸¼Ð"BÔCÔDð	Zð
 �uÔ5Ô6ðZð �„ðZð Zð Zð ZðB ;?ð:ð :ð :ð ŒKÔ#Ô/ð:ð ŒM˜#Ôð	:ð
 �uÔ6Ô7ð:ð Ô"ð:ð :ð :ð :ðD @Dðð ð Ø Ô ;Ô<ðàˆUŒZÔðð ð ð ð ð r    rQ   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edddœdeeej        ej         ej!        f         dddeej"                 de#fd„¦   «         Z$eddœdeeej        ej         ej!        f         deeej        e         ej        f         deej"                 ddfd„¦   «         Z$dddœdeeej        ej         ej!        f         deeeej        e         ej        f                  deej"                 de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 )Ú
AsyncFilesNrR   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 rT   )r   ra   r	   rb   rc   r@   rW   rd   r   re   r?   rf   r   rg   rh   Úasync_requestrj   rk   rl   rL   rm   rn   ro   rp   r`   r$   rq   rr   s              r   r{   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	   rb   rc   r   rW   rd   r   re   r?   rf   r   rg   rh   r  ro   rƒ   rq   rj   rk   rl   r%   rn   r„   s               r   r…   zAsyncFiles._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àÔ%×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‡   rU   r*   rˆ   r9   rV   r?   NrW   rX   rY   rZ   r[   r\   )r   r‰   r	   rb   rc   r3   rW   rd   r   re   r?   rf   r   rg   rh   r  rj   rk   rl   rŠ   rn   ro   rq   r‹   s               r   rW   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‡   rU   r*   rˆ   r9   rV   r?   Nr�   rX   rY   rZ   r[   r\   r_   )r   rŽ   r	   rb   rc   r.   rW   rd   r   re   r?   rf   r   rg   rh   r  rj   rk   rl   r1   r�   rn   ro   rp   r`   r$   rq   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    r5   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	   rb   rc   r6   rW   rd   r   re   r?   rf   r   rg   rh   r  ro   r”   rq   rj   rk   rl   rO   rn   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\   rF   )r	   rb   rc   r   r¤   r¥   r¦   rŠ   rš   r)   r›   r§   r   r¨   rf   r©   r…   rª   r$   r`   r«   r¬   r­   Úasync_upload_filer¯   r°   rn   rk   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    r¹   rº   c             ƒ   ó
   K  — d S r¼   rF   r½   s       r   r¾   zAsyncFiles.download  ó   è è € ð €Cr    c             ƒ   ó
   K  — d S r¼   rF   r½   s       r   r¾   zAsyncFiles.download)  r  r    c             ƒ   ó’  K  — | 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}t          |dg¦  «        �t          |dg¦  «        }ddi}|r|› d	t          |¦  «        › �}| j                              |||¬
¦  «        ƒ d{V —†}	|€Ot          |t
          j        ¦  «        r|	|_        n-t          |t
          j        ¦  «        r|j        �|	|j        _        |	S )a  Downloads a file's data from the file service asynchronously.

    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.

    Note: When destination is None, this method returns the data as bytes. For
    `Video` and `GeneratedVideo` objects, if destination is None, it also sets
    the
    `video_bytes` property on the `Video` object. When destination is provided,
    chunks are streamed directly to disk or the writable stream without loading
    the full file into memory, and None is returned.

    Args:
      file: A file name, uri, or file object identifying which file to download.
      destination: Optional, a local file path or writable binary stream to
        write the file directly to in chunks, avoiding holding the full file in
        memory.
      config: Optional, configuration for the get method.

    Returns:
      bytes: The file data as bytes if destination is None; otherwise None.

    Usage:

    .. code-block:: python

      async for file in await client.aio.files.list():
        if file.download_uri is not None:
          break
      else:
        raise ValueError('No files found with a `download_uri`.')

      # Download to memory:
      data = await client.aio.files.download(file=file)

      # Stream directly to a file path (avoids memory spike):
      await client.aio.files.download(file=file, destination="output.mp4")
    r˜   NrÂ   rœ   rÃ   rf   rÄ   rÅ   rV   rÆ   rF   )r	   rb   rc   r¥   r¦   r   rÇ   rŠ   rÈ   r,   r-   r   r   Úasync_download_filerÊ   rË   rÌ   rÍ   )
rs   r   rº   r?   r³   r)   rw   rf   rx   rÎ   s
             r   r¾   zAsyncFiles.download3  s«  è è € ð` ÔÔ ð ÝØ
Iñô ð ð €LØð Ý	�F�DÑ	!Ô	!ð ÝÔ/Ð9Ð9°&Ð9Ð9ˆˆàˆå�$�œ
Ñ#Ô#ð ¨Ô(9Ð(AÝð5ñô ð õ
 Œ=˜ÑÔ€Dà#�DÐ#Ð#Ð#€Dà€LÝˆL˜>Ð*Ñ+Ô+Ð7Ý˜,¨Ð(8Ñ9Ô9€là˜7Ð#€LØð 1ØÐ0Ð0•y Ñ.Ô.Ð0Ð0€dàÔ!×5Ò5ØØ!Øð 6ñ ô ð ð ð ð ð ð €Dð ÐÝ	�D�%œ+Ñ	&Ô	&ð &ØˆÔÐÝ�d�EÔ0Ñ1Ô1ð &°d´jÐ6LØ!%ˆŒ
Ôà€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 rF   rÖ   rØ   s      r   rÛ   z-AsyncFiles.register_files.<locals>.<dictcomp>£  rÜ   r    rÝ   rÞ   rß   r’   )r¥   rà   rÏ   rá   râ   rc   r   rã   rä   rå   rf   ræ   r`   rç   r	   Ú async_get_token_from_credentialsré   r–   rê   s          r   rì   zAsyncFiles.register_files�  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)
    rD   rR   N)r{   r   rî   s      r   rð   zAsyncFiles.list²  sM   è è € ð( ”:€LÝØØØ�jŠj ˆjÑ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Øñ	ô ð r    )+rñ   rò   ró   r   r   rô   rm   r{   rõ   rö   rƒ   r…   r÷   rø   rŠ   rW   rù   r�   r�   rú   rð   rû   r”   r–   r   r¯   rü   r¬   r­   rý   r¸   r   rÊ   rÌ   rþ   rÿ   r¾   rà   rÏ   rá   râ   rì   r   rF   r    r   r  r  =  sj  € € € € € ð @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ðd ð
 Ø9=ðð ð ð �#�u”z 5¤;°Ô0DÐDÔEðð ð	ð
 �uÔ5Ô6ðð ðð ð ñ „8ðð ð :>ðð ð ð �#�u”z 5¤;°Ô0DÐDÔEðð ˜˜bœk¨#Ô.°´	Ð9Ô:ð	ð
 �uÔ5Ô6ðð ðð ð ñ „8ðð HLØ9=ðZð Zð Zð �#�u”z 5¤;°Ô0DÐDÔEðZð ˜E # r¤{°3Ô'7¸¼Ð"BÔCÔDð	Zð
 �uÔ5Ô6ðZð �„ðZð Zð Zð ZðB ;?ð!@ð !@ð !@ð ŒKÔ#Ô/ð!@ð ŒM˜#Ôð	!@ð
 �uÔ6Ô7ð!@ð Ô"ð!@ð !@ð !@ð !@ðH @Dðð ð Ø Ô ;Ô<ðà�%”*Ôðð ð ð ð ð r    r  r¼   )/rú   r¬   rk   Úloggingr¯   Útypingr   r   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.   r1   r3   r6   r=   r@   rL   rO   Ú
BaseModulerQ   r  rF   r    r   ú<module>r     s^  ðð$ €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 	€	€	€	Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ø .Ð .Ð .Ð .Ð .Ð .Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à	ˆÔ	Ð/Ñ	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ˆ(„^ðð ð ð ð D
ð D
ð D
ð D
ð D
ˆKÔ"ñ D
ô D
ð D
ðNO
ð O
ð O
ð O
ð O
�Ô'ñ O
ô O
ð O
ð O
ð O
r    