Ë
    ümxiß:  ã                  ó’  — d dl mZ d dlZ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
 d dlmZ d dlZd dlmZ d dlmc mZ d dlmc 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#Z$d dl%Z$	 d dl&m'Z' e'jP                  Z(dZ*dZ+ejX                  d„ «       Z- G d„ dej\                  «      Z. G d„ dej^                  «      Z/ej`                   G d„ d«      «       Z1dddddddœ	 	 	 	 	 	 	 	 	 	 	 d%d„Z2 e1«       Z3e3je                  «        d&d„Z4d'd„Z5d(d„Z6d)d„Z7d*d„Z8d+d„Z9d,d „Z:d-d!„Z;d.d"„Z<d/d#„Z=d0d$„Z>y# e)$ r dZ(Y Œ½w xY w)1é    )ÚannotationsN)ÚAnyÚcast)ÚSequence)ÚIOBase)Úcredentials)Ú
exceptions)Úauth)Úclient_options)Úgapic_v1)Úoperations_v1)Úversionz0.0.0zgenai-pyz9https://generativelanguage.googleapis.com/$discovery/restc               #  óø   K  — t         j                  j                  } dt        j                  v rd„ t         j                  _        	 d –— | t         j                  _        y # | t         j                  _        w xY w­w)NÚCOLAB_RELEASE_TAGc                  ó   — y)N)NN© )ÚargsÚkwargss     úQ/home/htdocs/ttos/venv/lib/python3.12/site-packages/google/generativeai/client.pyú<lambda>z-patch_colab_gce_credentials.<locals>.<lambda>9   s   � ó    )r
   Ú_defaultÚ_get_gce_credentialsÚosÚenviron)Úget_gces    r   Úpatch_colab_gce_credentialsr   5   sM   è ø€ ä�m‰m×0Ñ0€GØœbŸj™jÑ(Ù-QŒ�‰Ô*ð5Ûà-4Œ�‰Õ*ø¨WŒ�‰Õ*üs   ‚AA:ÁA  Á
A:Á A7Á7A:c                  óX   ‡ — e Zd Zˆ fd„Zdd	d„Zddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 d
d„Zˆ xZS )ÚFileServiceClientc                ód   •— d | _         t        j                  «       | _        t	        ‰| �  |i |¤Ž y ©N)Ú_discovery_apiÚ	threadingÚlocalÚ_localÚsuperÚ__init__)Úselfr   r   Ú	__class__s      €r   r'   zFileServiceClient.__init__B   s+   ø€ Ø"ˆÔÜ—o‘oÓ'ˆŒÜ‰Ñ˜$Ð) &Ó)r   r   c                ó¶  — | j                   j                  }|€t        d«      ‚t        j                  j                  t        j                  «       d„ t        › d|› �t        |«      ¬«      }|j                  «       \  }}|j                  j                  «        |j                  d«      }t        j                  j                  ||¬«      | j                  _        y )NzaInvalid operation: Uploading to the File API requires an API key. Please provide a valid API key.c                ó
   — | |fS r!   r   )ÚrespÚcontents     r   r   z8FileServiceClient._setup_discovery_api.<locals>.<lambda>P   s
   € ¨D°'¨?€ r   z?version=v1beta&key=)ÚhttpÚpostprocÚuriÚheaderszutf-8)ÚdeveloperKey)Ú_client_optionsÚapi_keyÚ
ValueErrorÚgoogleapiclientr.   ÚHttpRequestÚhttplib2ÚHttpÚGENAI_API_DISCOVERY_URLÚdictÚexecuteÚcloseÚdecodeÚ	discoveryÚbuild_from_documentr%   Údiscovery_api)r(   Úmetadatar4   ÚrequestÚresponser-   Údiscovery_docs          r   Ú_setup_discovery_apiz&FileServiceClient._setup_discovery_apiG   sÁ   € Ø×&Ñ&×.Ñ.ˆØˆ?ÜØsóð ô "×&Ñ&×2Ñ2Ü—‘“Ù:Ü*Ð+Ð+?À¸yÐIÜ˜“Nð	 3ó 
ˆð $ŸO™OÓ-Ñˆ�'Ø�‰×ÑÔàŸ™ wÓ/ˆÜ$3×$=Ñ$=×$QÑ$QØ¨ð %Ró %
ˆ�‰Õ!r   NT)Ú	mime_typeÚnameÚdisplay_nameÚ	resumablerB   c               óø  — | j                   €| j                  |«       i }|�||d<   |�||d<   t        |t        «      r#t        j
                  j                  |||¬«      }n"t        j
                  j                  |||¬«      }| j                  j                  j                  «       j                  d|i|¬«      }	|D ]  \  }
}||	j                  |
<   Œ |	j                  «       }| j                  d|d   d   i«      S )NrH   ÚdisplayName)ÚfdÚmimetyperJ   )ÚfilenamerN   rJ   Úfile)ÚbodyÚ
media_body)r"   rF   Ú
isinstancer   r6   r.   ÚMediaIoBaseUploadÚMediaFileUploadr%   rA   ÚmediaÚuploadr1   r<   Úget_file)r(   ÚpathrG   rH   rI   rJ   rB   rP   rV   rC   ÚkeyÚvalueÚresults                r   Úcreate_filezFileServiceClient.create_file\   s  € ð ×ÑÐ&Ø×%Ñ% hÔ/àˆØÐØˆD�‰LØÐ#Ø".ˆD�Ñä�dœFÔ#Ü#×(Ñ(×:Ñ:Ø )°yð ;ó ‰Eô $×(Ñ(×8Ñ8Ø¨	¸Yð 9ó ˆEð —+‘+×+Ñ+×1Ñ1Ó3×:Ñ:ÀÈÀÐ[`Ð:ÓaˆØ"ò 	)‰JˆC�Ø#(ˆG�O‰O˜CÒ ð	)à—‘Ó"ˆà�}‰}˜f f¨V¡n°VÑ&<Ð=Ó>Ð>r   )r   )rB   z dict | Sequence[tuple[str, str]])rY   z)str | pathlib.Path | os.PathLike | IOBaserG   ú
str | NonerH   r^   rI   r^   rJ   ÚboolrB   úSequence[tuple[str, str]]Úreturnzprotos.File)Ú__name__Ú
__module__Ú__qualname__r'   rF   r]   Ú__classcell__)r)   s   @r   r   r   A   sg   ø„ ô*ô

ð2 !%ØØ#'ØØ.0ñ!?à7ð!?ð ð	!?ð
 ð!?ð !ð!?ð ð!?ð ,ð!?ð 
÷!?r   r   c                  ó   — e Zd Zd„ Zy)ÚFileServiceAsyncClientc              �  ó    K  — t        d«      ‚­w)NzPThe `create_file` method is currently not supported for the asynchronous client.)ÚNotImplementedError)r(   r   r   s      r   r]   z"FileServiceAsyncClient.create_file�   s   è ø€ Ü!Ø^ó
ð 	
ùs   ‚N)rb   rc   rd   r]   r   r   r   rg   rg   €   s   „ ó
r   rg   c                  óÂ   — e Zd ZU  ej                  e¬«      Zded<   dZded<    ej                  e¬«      Z	ded<   ddddddd	œ	 	 	 	 	 	 	 	 	 	 	 	 	 dd
„Z
d„ Zd„ Zdd„Zy)Ú_ClientManager)Údefault_factoryzdict[str, Any]Úclient_configr   r`   Údefault_metadataÚclientsN©r4   r   Ú	transportr   Úclient_inforn   c               óœ  — t        |t        «      rt        j                  |«      }|€t        j                  «       }t        t        j                  |«      }t        |dd«      }|r|�@t        d«      ‚|st        j                  d«      }|st        j                  d«      }||_
        t        › dt        › �}|r-|j                  r|xj                  d|› �z  c_        n(||_        n t        j                  j!                  |¬«      }||||d	œ}	|	j#                  «       D �
�ci c]  \  }
}|€Œ	|
|“Œ }	}
}|	| _        || _        i | _        yc c}}
w )
a”  Initializes default client configurations using specified parameters or environment variables.

        If no API key has been provided (either directly, or on `client_options`) and the
        `GEMINI_API_KEY` environment variable is set, it will be used as the API key. If not,
        if the `GOOGLE_API_KEY` environement variable is set, it will be used as the API key.

        Note: Not all arguments are detailed below. Refer to the `*ServiceClient` classes in
        `google.ai.generativelanguage` for details on the other arguments.

        Args:
            transport: A string, one of: [`rest`, `grpc`, `grpc_asyncio`].
            api_key: The API-Key to use when creating the default clients (each service uses
                a separate client). This is a shortcut for `client_options={"api_key": api_key}`.
                If omitted, and the `GEMINI_API_KEY` or the `GOOGLE_API_KEY` environment variable
                are set, they will be used in this order of priority.
            default_metadata: Default (key, value) metadata pairs to send with every request.
                when using `transport="rest"` these are sent as HTTP headers.
        Nr4   z`Invalid configuration: Please set either `api_key` or `client_options['api_key']`, but not both.ÚGEMINI_API_KEYÚGOOGLE_API_KEYú/ú )Ú
user_agent)r   rq   r   rr   )rS   r;   Úclient_options_libÚ	from_dictÚClientOptionsr   Úgetattrr5   r   Úgetenvr4   Ú
USER_AGENTÚ__version__rx   r   rr   Ú
ClientInfoÚitemsrm   rn   ro   )r(   r4   r   rq   r   rr   rn   Úhad_api_key_valuerx   rm   rZ   r[   s               r   Ú	configurez_ClientManager.configure�   sS  € ôD �n¤dÔ+Ü/×9Ñ9¸.ÓIˆNØÐ!Ü/×=Ñ=Ó?ˆNÜÔ0×>Ñ>ÀÓOˆÜ# N°I¸tÓDÐáØÐ"Ü Øvóð ñ ô Ÿ)™)Ð$4Ó5�áô Ÿ)™)Ð$4Ó5�à%,ˆNÔ"ä"�| 1¤[ MÐ2ˆ
Ùà×%Ò%Ø×&Ò&¨A¨j¨\Ð*:Ñ:Ö&à)3�Õ&ä"×.Ñ.×9Ñ9ÀZÐ9ÓPˆKð 'Ø"Ø,Ø&ñ	
ˆð 7D×6IÑ6IÓ6K×a©
¨¨UÈuÑO`˜˜e™ÐaˆÑaà*ˆÔØ 0ˆÔàˆ�ùó bs   Ä
EÄ*Ec                óœ  ‡ — |dk(  rt         }nt|dk(  rt        }nh|j                  d«      r6|j                  d«      d   }t	        t
        |j                  «       dz   «      }n!t	        t
        |j                  «       dz   «      }‰ j                  s
t        «        	 t        «       5   |di ‰ j                  ¤Ž}d d d «       ‰ j                  sS d	„ }ˆ fd
„}t        j                  |«      D ]0  \  }} |||«      sŒt	        |«      } ||«      }t!        |||«       Œ2 S # 1 sw Y   ŒixY w# t        j                  $ r}d|_        |‚d }~ww xY w)NrP   Ú
file_asyncÚ_asyncÚ_r   ÚServiceAsyncClientÚServiceClient)a  
  No API_KEY or ADC found. Please either:
    - Set the `GOOGLE_API_KEY` environment variable.
    - Manually pass the key with `genai.configure(api_key=my_api_key)`.
    - Or set up Application Default Credentials, see https://ai.google.dev/gemini-api/docs/oauth for more information.c                ó    — | j                  d«      ryt        |«      sydt        j                  |«      j                  j                  «       vryy)Nr‡   FrB   T)Ú
startswithÚcallableÚinspectÚ	signatureÚ
parametersÚkeys)rH   Úfs     r   Úkeepz(_ClientManager.make_client.<locals>.keepþ   sC   € Ø�‰˜sÔ#Øä˜A”;Øà¤×!2Ñ!2°1Ó!5×!@Ñ!@×!EÑ!EÓ!GÑGØàr   c                ó   •‡ — ddœˆ ˆfd„
}|S )Nr   )rB   c                ó^   •— t        | «      t        ‰j                  «      z   }  ‰|i |¤d| i¤ŽS )NrB   )Úlistrn   )rB   r   r   r‘   r(   s      €€r   ÚcallzN_ClientManager.make_client.<locals>.add_default_metadata_wrapper.<locals>.call  s1   ø€ Ü ›>¬D°×1FÑ1FÓ,GÑG�Ù˜$Ð< &Ñ<°8Ò<Ð<r   r   )r‘   r–   r(   s   ` €r   Úadd_default_metadata_wrapperz@_ClientManager.make_client.<locals>.add_default_metadata_wrapper
  s   ù€ Ø%'÷ =ð ˆKr   r   )r   rg   ÚendswithÚsplitr|   ÚglmÚtitlerm   rƒ   r   Úga_exceptionsÚDefaultCredentialsErrorr   rn   r�   Ú
getmembersÚsetattr)	r(   rH   ÚclsÚclientÚer’   r—   r[   r‘   s	   `        r   Úmake_clientz_ClientManager.make_clientà   sB  ø€ Ø�6Š>Ü#‰CØ�\Ò!Ü(‰CØ�]‰]˜8Ô$Ø—:‘:˜c“? 1Ñ%ˆDÜœ#˜tŸz™z›|Ð.BÑBÓC‰Cäœ#˜tŸz™z›|¨oÑ=Ó>ˆCð ×!Ò!ÜŒKð
	Ü,Ó.ñ 3ÙÑ2˜t×1Ñ1Ñ2�÷3ð ×$Ò$ØˆMò
	ô	ô #×-Ñ-¨cÓ2ò 	%‰KˆD�%Ù˜˜eÔ$ØÜ˜ Ó%ˆAÙ,¨QÓ/ˆAÜ�F˜D !Õ$ð	%ð ˆ÷Q3ð 3ûä×4Ñ4ò 	ðˆAŒFð ˆGûð	ús0   Â
D* Â#DÂ6D* ÄD'Ä#D* Ä*EÄ=	EÅEc                óÊ   — |j                  «       }|dk(  r| j                  «       S | j                  j                  |«      }|€ | j	                  |«      }|| j                  |<   |S ©NÚ
operations)ÚlowerÚget_default_operations_clientro   Úgetr£   )r(   rH   r¡   s      r   Úget_default_clientz!_ClientManager.get_default_client  s`   € Ø�z‰z‹|ˆØ�<ÒØ×5Ñ5Ó7Ð7à—‘×!Ñ! $Ó'ˆØˆ>Ø×%Ñ% dÓ+ˆFØ!'ˆD�L‰L˜ÑØˆr   c                ó®   — | j                   j                  dd «      }|€6| j                  d«      }|j                  j                  }|| j                   d<   |S )Nr¦   ÚModel)ro   r©   rª   Ú
_transportÚoperations_client)r(   r¡   Úmodel_clients      r   r¨   z,_ClientManager.get_default_operations_client%  sQ   € Ø—‘×!Ñ! ,°Ó5ˆØˆ>Ø×2Ñ2°7Ó;ˆLØ!×,Ñ,×>Ñ>ˆFØ)/ˆD�L‰L˜Ñ&Øˆr   )r4   r^   r   ú(ga_credentials.Credentials | dict | Nonerq   r^   r   z8client_options_lib.ClientOptions | dict[str, Any] | Nonerr   ú&gapic_v1.client_info.ClientInfo | Nonern   r`   ra   ÚNone©ra   zoperations_v1.OperationsClient)rb   rc   rd   ÚdataclassesÚfieldr;   rm   Ú__annotations__rn   ro   rƒ   r£   rª   r¨   r   r   r   rk   rk   ‡   s·   … à$5 K×$5Ñ$5ÀdÔ$K€M�>ÓKØ24ÐÐ/Ó4Ø/˜k×/Ñ/ÀÔE€Gˆ^ÓEð
 #Ø@Dð !%ØSWØ>BØ68ñQð ðQð >ð	Qð ðQð QðQð <ðQð 4ðQð 
óQòf8òt	ôr   rk   r   rp   c                ó8   — t         j                  | |||||¬«      S )a�  Captures default client configuration.

    If no API key has been provided (either directly, or on `client_options`) and the
    `GOOGLE_API_KEY` environment variable is set, it will be used as the API key.

    Note: Not all arguments are detailed below. Refer to the `*ServiceClient` classes in
    `google.ai.generativelanguage` for details on the other arguments.

    Args:
        transport: A string, one of: [`rest`, `grpc`, `grpc_asyncio`].
        api_key: The API-Key to use when creating the default clients (each service uses
            a separate client). This is a shortcut for `client_options={"api_key": api_key}`.
            If omitted, and the `GOOGLE_API_KEY` environment variable is set, it will be
            used.
        default_metadata: Default (key, value) metadata pairs to send with every request.
            when using `transport="rest"` these are sent as HTTP headers.
    rp   )Ú_client_managerrƒ   rp   s         r   rƒ   rƒ   .  s.   € ô> ×$Ñ$ØØØØ%ØØ)ð %ó ð r   c                 ó,   — t         j                  d«      S )NÚcache©r¸   rª   r   r   r   Úget_default_cache_clientr¼   [  ó   € Ü×-Ñ-¨gÓ6Ð6r   c                 ó,   — t         j                  d«      S )NrP   r»   r   r   r   Úget_default_file_clientr¿   _  s   € Ü×-Ñ-¨fÓ5Ð5r   c                 ó,   — t         j                  d«      S )Nr…   r»   r   r   r   Úget_default_file_async_clientrÁ   c  ó   € Ü×-Ñ-¨lÓ;Ð;r   c                 ó,   — t         j                  d«      S )NÚ
generativer»   r   r   r   Úget_default_generative_clientrÅ   g  rÂ   r   c                 ó,   — t         j                  d«      S )NÚgenerative_asyncr»   r   r   r   Ú#get_default_generative_async_clientrÈ   k  ó   € Ü×-Ñ-Ð.@ÓAÐAr   c                 ó,   — t         j                  d«      S r¥   r»   r   r   r   r¨   r¨   o  rÂ   r   c                 ó,   — t         j                  d«      S )NÚmodelr»   r   r   r   Úget_default_model_clientrÍ   s  r½   r   c                 ó,   — t         j                  d«      S )NÚ	retrieverr»   r   r   r   Úget_default_retriever_clientrÐ   w  s   € Ü×-Ñ-¨kÓ:Ð:r   c                 ó,   — t         j                  d«      S )NÚretriever_asyncr»   r   r   r   Ú"get_default_retriever_async_clientrÓ   {  s   € Ü×-Ñ-Ð.?Ó@Ð@r   c                 ó,   — t         j                  d«      S )NÚ
permissionr»   r   r   r   Úget_default_permission_clientrÖ     rÂ   r   c                 ó,   — t         j                  d«      S )NÚpermission_asyncr»   r   r   r   Ú#get_default_permission_async_clientrÙ   ƒ  rÉ   r   )r4   r^   r   r°   rq   r^   r   z.client_options_lib.ClientOptions | dict | Nonerr   r±   rn   r`   )ra   zglm.CacheServiceClient)ra   zglm.FilesServiceClient)ra   zglm.FilesServiceAsyncClient)ra   zglm.GenerativeServiceClient)ra   z glm.GenerativeServiceAsyncClientr³   )ra   zglm.ModelServiceAsyncClient)ra   zglm.RetrieverClient)ra   zglm.RetrieverAsyncClient)ra   zglm.PermissionServiceClient)ra   z glm.PermissionServiceAsyncClient)?Ú
__future__r   r   Ú
contextlibr�   r´   Úpathlibr#   Útypingr   r   Úcollections.abcr   r8   Úior   Úgoogle.ai.generativelanguageÚaiÚgenerativelanguagerš   Úgoogle.generativeai.protosÚgenerativeaiÚprotosÚgoogle.authr   Úga_credentialsr	   rœ   Úgoogler
   Úgoogle.api_corer   ry   r   r   Úgoogleapiclient.httpr6   Úgoogleapiclient.discoveryÚgoogle.generativeair   r   ÚImportErrorr~   r:   Úcontextmanagerr   r   rg   Ú	dataclassrk   rƒ   r¸   r¼   r¿   rÁ   rÅ   rÈ   r¨   rÍ   rÐ   rÓ   rÖ   rÙ   r   r   r   ú<module>rð      s�  ðÝ "ã 	Û Û Û Û Û ß Ý $Û Ý ç *Ð *ß +Ð +å 5Ý 3Ý Ý @Ý $Ý )ã Û  ðÝ+à×%Ñ%€Kð €
ð  VÐ ð ×Ññ5ó ð5ô<?˜×-Ñ-ô <?ô~
˜S×7Ñ7ô 
ð ×Ñ÷cð có ðcðP Ø<@ð !ØEIØ:>Ø24ñ&àð&ð :ð&ð ð&ð Cð&ð 8ð&ð 0ó&ñR !Ó"€Ø × Ñ Ô ó7ó6ó<ó<óBó<ó7ó;óAó<ôBøðI ò Ø‚Kðús   Á6D< Ä<EÅE