o
    j6h\                     @  s   d Z ddlmZ ddlmZmZ ddlmZ ddlmZ ddlm	Z	 ddlm
Z
 ddlmZ dd	lmZ dd
lmZ 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 G dd dZdddZdS )zMagicsEngine class.    )annotations)AbstractSetSequence)argument_parser)cmd_line_parser)command)compare_cmd)compile_cmd)eval_cmd)ipython_env)model_registry)parsed_args_lib)post_process_utils)run_cmd)prompt_utilsc                   @  s>   e Zd ZdZ		ddddZdddZdddZdddZdS )MagicsEnginezImplementation of functionality used by Magics.

    This class provides the implementation for Magics, decoupled from the
    details of integrating with Colab Magics such as registration.
    Nregistry#model_registry.ModelRegistry | Noneenvipython_env.IPythonEnv | Nonec                 C  sb   || _ |pt }tjjtj||dtjjt	j
||dtjjtj|dtjjtj||di| _d S )N)modelsr   )r   )_ipython_envr   ModelRegistryr   CommandNameRUN_CMDr   
RunCommandCOMPILE_CMDr	   CompileCommandCOMPARE_CMDr   CompareCommandEVAL_CMDr
   EvalCommand_cmd_handlers)selfr   r   r    r$   y/var/www/html/chefvision.cloud.itp360.com/venv/lib/python3.10/site-packages/google/generativeai/notebook/magics_engine.py__init__)   s   

zMagicsEngine.__init__linestrplaceholdersAbstractSet[str]returnGtuple[parsed_args_lib.ParsedArgs, parsed_args_lib.PostProcessingTokens]c                 C  s   t  ||S )N)r   CmdLineParser
parse_line)r#   r'   r)   r$   r$   r%   r.   9   s   zMagicsEngine.parse_lineftuple[command.Command, parsed_args_lib.ParsedArgs, Sequence[post_process_utils.ParsedPostProcessExpr]]c                 C  s4   |  ||\}}|j}| j| }||}|||fS )a}  Given the command line, parse and return all components.

        Args:
          line: The LLM Magics command line.
          placeholders: Placeholders from prompts in the cell contents.

        Returns:
          A three-tuple containing:
          - The command (e.g. "run")
          - Parsed arguments for the command,
          - Parsed post-processing expressions
        )r.   cmdr"   parse_post_processing_tokens)r#   r'   r)   parsed_argspost_processing_tokenscmd_namehandlerpost_processing_fnsr$   r$   r%   _get_handler@   s
   


zMagicsEngine._get_handlercell_contentc           
   
   C  s   t |}t|}z| ||\}}}||||W S  tjy: } z| jdur.|| j |W  Y d}~S d}~w tj	y` } z|
| j | rUd| d nd}	t|	|d}~ww )z2Executes the supplied magic line and cell payload.NzGot parser error: {} )_clean_cellr   get_placeholdersr7   executer   ParserNormalExitr   set_ipython_envParserErrordisplaymsgsformat
SystemExit)
r#   r'   r8   cellr)   r5   r2   r6   e	error_msgr$   r$   r%   execute_cellW   s    



zMagicsEngine.execute_cell)NN)r   r   r   r   )r'   r(   r)   r*   r+   r,   )r'   r(   r)   r*   r+   r/   )r'   r(   r8   r(   )__name__
__module____qualname____doc__r&   r.   r7   rH   r$   r$   r$   r%   r   "   s    

r   r8   r(   r+   c                 C  s   | }| dr|d d }|S )N
r9   )endswith)r8   rE   r$   r$   r%   r;   t   s   
r;   N)r8   r(   r+   r(   )rL   
__future__r   typingr   r   google.generativeai.notebookr   r   r   r   r	   r
   r   r   r   r   r    google.generativeai.notebook.libr   r   r;   r$   r$   r$   r%   <module>   s"   R