
    rh\                        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      ZddZy)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                  H    e Zd ZdZ	 	 d	 	 	 ddZ	 	 	 	 	 	 d	dZd
dZddZy)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.
    Nc                   || _         |xs t        j                         }t        j                  j
                  t        j                  ||      t        j                  j                  t        j                  ||      t        j                  j                  t        j                  |      t        j                  j                  t        j                   ||      i| _        y )N)modelsenv)r   )_ipython_envr   ModelRegistryr   CommandNameRUN_CMDr   
RunCommandCOMPILE_CMDr
   CompileCommandCOMPARE_CMDr	   CompareCommandEVAL_CMDr   EvalCommand_cmd_handlers)selfregistryr   r   s       }/var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/google/generativeai/notebook/magics_engine.py__init__zMagicsEngine.__init__)   s    
  ;^99;''//1C1C6WZ1[''33[5O5O36 ''33[5O5OTW5X''00(2F2FfZ]2^R
    c                J    t        j                         j                  ||      S )N)r   CmdLineParser
parse_line)r#   lineplaceholderss      r%   r*   zMagicsEngine.parse_line9   s     
 ,,.99$MMr'   c                    | j                  ||      \  }}|j                  }| 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_fnss           r%   _get_handlerzMagicsEngine._get_handler@   sS    " /3oodL.Q++??$$X.%BBCYZ%888r'   c                
   t        |      }t        j                  |      }	 | j                  ||      \  }}}|j	                  |||      S # t
        j                  $ r3}| j                  |j                  | j                         |cY d}~S d}~wt
        j                  $ r`}|j                  | j                         |j                         r"dj                  |j                         d         nd}	t        |	      |d}~ww xY w)z2Executes the supplied magic line and cell payload.NzGot parser error: {} )_clean_cellr   get_placeholdersr5   executer   ParserNormalExitr   set_ipython_envParserErrordisplaymsgsformat
SystemExit)
r#   r+   cell_contentcellr,   r3   r0   r4   e	error_msgs
             r%   execute_cellzMagicsEngine.execute_cellW   s    <(#44T:	/8<8I8I$P\8]5G["5??;6IJJ// 	  ,!!$"3"34 H** 	/IId''( HIvvx.55affhrlCUWIY'Q.	/s*   (A D(BDD"AC==D)NN)r$   z#model_registry.ModelRegistry | Noner   zipython_env.IPythonEnv | None)r+   strr,   AbstractSet[str]returnzGtuple[parsed_args_lib.ParsedArgs, parsed_args_lib.PostProcessingTokens])r+   rH   r,   rI   rJ   zftuple[command.Command, parsed_args_lib.ParsedArgs, Sequence[post_process_utils.ParsedPostProcessExpr]])r+   rH   rC   rH   )__name__
__module____qualname____doc__r&   r*   r5   rG    r'   r%   r   r   "   sV     9=-1
5
 +
 NN 'N 
Q	N9./r'   r   c                6    | }|j                  d      r|d d }|S )N
r7   )endswith)rC   rD   s     r%   r9   r9   t   s%    
 D}}TCRyKr'   N)rC   rH   rJ   rH   )rN   
__future__r   typingr   r   google.generativeai.notebookr   r   r   r	   r
   r   r   r   r   r   r    google.generativeai.notebook.libr   r   r9   rO   r'   r%   <module>rW      sF     " ( 8 8 0 4 4 1 4 7 8 ; 0 9O/ O/dr'   