Ë
    ümxi  ã                  óæ  — U d 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ZddlmZ de_        ej(                  Zej*                  Zej,                  Zej.                  Zdaded<   dd„Zdd„Z G d„ dej8                  «      Z G d„ de«      Zej>                   G d„ dej@                  «      «       Z  ejB                  «       jE                  e «       y)z,Colab Magics class.

Installs %%llm magics.
é    )ÚannotationsN)Úcredentials)Úclient)Úgspread_client)Úipython_env)Úipython_env_impl)Úmagics_engine)Úpost_process_utils)Úsheets_utils)Úmagiczgenai-py-magiczipython_env.IPythonEnv | NoneÚ_ipython_envc                 óB   — t         €t        j                  «       a t         S )z;Lazily constructs and returns a global IPythonEnv instance.)r   r   ÚIPythonEnvImpl© ó    úZ/home/htdocs/ttos/venv/lib/python3.12/site-packages/google/generativeai/notebook/magics.pyÚ_get_ipython_envr   4   s   € ô ÐÜ'×6Ñ6Ó8ˆÜÐr   c                óB   — t        j                  | t        «       ¬«       y)z¼Sets up credentials.

    This is used for interacting Google APIs, such as Google Sheets.

    Args:
      creds: The credentials that will be used (e.g. to read from Google Sheets.)
    )ÚcredsÚenvN)r   Ú	authorizer   )r   s    r   r   r   <   s   € ô ×Ñ 5Ô.>Ó.@ÖAr   c                  ó6   — e Zd ZdZej
                  dd„«       Zy)ÚAbstractMagicsz"Defines interface to Magics class.c                ó   — t        «       ‚)z¨Perform various LLM-related operations.

        Args:
          cell_line: String to pass to the MagicsEngine.
          cell_body: Contents of the cell body.
        )ÚNotImplementedError©ÚselfÚ	cell_lineÚ	cell_bodys      r   ÚllmzAbstractMagics.llmJ   s   € ô "Ó#Ð#r   N©r   ú
str | Noner   r"   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚabcÚabstractmethodr    r   r   r   r   r   G   s   „ Ù,à×Ñò$ó ñ$r   r   c                  ó   — e Zd ZdZd„ Zdd„Zy)Ú
MagicsImplz’Actual class implementing the magics functionality.

    We use a separate class to ensure a single, global instance
    of the magics class.
    c                óJ   — t        j                  t        «       ¬«      | _        y )N)r   )r	   ÚMagicsEnginer   Ú_engine)r   s    r   Ú__init__zMagicsImpl.__init__\   s   € Ü$×1Ñ1Ô6FÓ6HÔIˆ�r   c                óR   — |xs d}|xs d}| j                   j                  ||«      S )úçPerform various LLM-related operations.

        Args:
          cell_line: String to pass to the MagicsEngine.
          cell_body: Contents of the cell body.

        Returns:
          Results from running MagicsEngine.
        Ú )r-   Úexecute_cellr   s      r   r    zMagicsImpl.llm_   s-   € ð ’O ˆ	Ø’O ˆ	Ø�|‰|×(Ñ(¨°IÓ>Ð>r   Nr!   )r#   r$   r%   r&   r.   r    r   r   r   r*   r*   U   s   „ ñòJô?r   r*   c                  ó˜   — e Zd ZdZdZedd„«       Zej                  dd„«       Z	ej                  dd„«       Z
ej                  dd„«       Zy)	ÚMagicsz|Class to register the magic with Colab.

    Objects of this class delegate all calls to a single,
    global instance.
    Nc                óP   — | j                   €t        «       | _         | j                   S )z.Retrieve global instance of the Magics object.)Ú	_instancer*   )Úclss    r   Úget_instancezMagics.get_instancey   s!   € ð �=‰=Ð Ü&›LˆCŒMØ�}‰}Ðr   c                óL   — t         j                  «       j                  ||¬«      S )r0   )r   r   )r4   r8   r    r   s      r   r    z
Magics.llm€   s#   € ô ×"Ñ"Ó$×(Ñ(°9È	Ð(ÓRÐRr   c                ó&   — | j                  ||«      S ©N©r    r   s      r   ÚpalmzMagics.palm�   ó   € à�x‰x˜	 9Ó-Ð-r   c                ó&   — | j                  ||«      S r;   r<   r   s      r   ÚgeminizMagics.gemini‘   r>   r   )Úreturnr   r!   )r#   r$   r%   r&   r6   Úclassmethodr8   r   Úline_cell_magicr    r=   r@   r   r   r   r4   r4   n   sp   „ ñð €Iàòó ðð ×Ñò
Só ð
Sð ×Ñò.ó ð.ð ×Ñò.ó ñ.r   r4   )rA   zipython_env.IPythonEnv)r   zcredentials.CredentialsrA   ÚNone)#r&   Ú
__future__r   r'   Úgoogle.authr   Úgoogle.generativeair   ÚgenaiÚgoogle.generativeai.notebookr   r   r   r	   r
   r   ÚIPythonÚIPython.corer   Ú
USER_AGENTÚSheetsInputsÚSheetsOutputsÚpost_process_add_fnÚpost_process_replace_fnr   Ú__annotations__r   r   ÚABCr   r*   Úmagics_classr4   Úget_ipythonÚregister_magicsr   r   r   ú<module>rV      sß   ðòõ #ã 
å #Ý /Ý 7Ý 4Ý 9Ý 6Ý ;Ý 5ã Ý ð $€Ô à×(Ñ(€Ø×*Ñ*€ð )×<Ñ<Ð Ø,×DÑDÐ ð /3€Ð+Ó 2óóBô$�S—W‘Wô $ô?�ô ?ð2 ×Ñô$.ˆU�\‰\ó $.ó ð$.ðN €× Ñ Ó × %Ñ % fÕ -r   