
    
!i\                        S r SSKJr  SSKJrJr  SSKJr  SSKJr  SSKJ	r	  SSKJ
r
  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr   " S S5      rSS jrg)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                  Z    \ rS rSrSr  S	   S
S jjr      SS jrSS jrSS jrSr	g)MagicsEngine"   zImplementation 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 l         U=(       d    [        R                  " 5       n[        R                  R
                  [        R                  " X2S9[        R                  R                  [        R                  " X2S9[        R                  R                  [        R                  " US9[        R                  R                  [        R                   " X2S90U l        g )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       d/home/james-whalen/.local/lib/python3.13/site-packages/google/generativeai/notebook/magics_engine.py__init__MagicsEngine.__init__)   s    
  ;^99;''//1C1C61[''33[5O5O6 ''33[5O5OTW5X''00(2F2Ff2^R
    c                J    [         R                  " 5       R                  X5      $ )N)r   CmdLineParser
parse_line)r$   lineplaceholderss      r&   r,   MagicsEngine.parse_line9   s    
 ,,.99$MMr)   c                    U R                  X5      u  p4UR                  nU R                  U   nUR                  U5      nXcU4$ )a5  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_handlerMagicsEngine._get_handler@   sL    " /3ood.Q+??$$X.%BBCYZ%888r)   c                   [        U5      n[        R                  " U5      n U R                  X5      u  pVnUR	                  XcU5      $ ! [
        R                   a4  nU R                  b  UR                  U R                  5        Us SnA$ SnAf[
        R                   ae  nUR                  U R                  5        UR                  5       (       a"  SR                  UR                  5       S   5      OSn	[        U	5      UeSnAff = f)z2Executes the supplied magic line and cell payload.NzGot parser error: {} )_clean_cellr   get_placeholdersr8   executer   ParserNormalExitr   set_ipython_envParserErrordisplaymsgsformat
SystemExit)
r$   r-   cell_contentcellr.   r6   r3   r7   e	error_msgs
             r&   execute_cellMagicsEngine.execute_cellW   s    <(#44T:	/8<8I8I$8]5G"5??;6IJJ// 	  ,!!$"3"34 H** 	/IId''( HIvvxx.55affhrlCUWIY'Q.	/s*   %A	 	D)BDD#A DD)r#   r   )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-   rM   r.   rN   rO   zftuple[command.Command, parsed_args_lib.ParsedArgs, Sequence[post_process_utils.ParsedPostProcessExpr]])r-   rM   rG   rM   )
__name__
__module____qualname____firstlineno____doc__r'   r,   r8   rK   __static_attributes__ r)   r&   r   r   "   sV     9=-1
5
 +
 NN 'N 
Q	N9./r)   r   c                @    U nUR                  S5      (       a  US S nU$ )N
r;   )endswith)rG   rH   s     r&   r=   r=   t   s(    
 D}}TCRyKr)   N)rG   rM   rO   rM   )rT   
__future__r   typingr   r   google.generativeai.notebookr   r   r   r	   r
   r   r   r   r   r   r    google.generativeai.notebook.libr   r   r=   rV   r)   r&   <module>r^      sF     " ( 8 8 0 4 4 1 4 7 8 ; 0 9O/ O/dr)   