U
    hX
                     @  s   d 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ZG dd dejZdS )zThe eval command.    )annotations)Sequence)command)command_utils)input_utils)ipython_env)model_registry)output_utils)parsed_args_lib)post_process_utilsNc                      sN   e Zd ZdZdddd fddZdd	d
ddddZdd
dddZ  ZS )EvalCommandz!Implementation of "eval" command.Nzmodel_registry.ModelRegistryzipython_env.IPythonEnv | None)modelsenvc                   s   t    || _|| _dS )ziConstructor.

    Args:
      models: ModelRegistry instance.
      env: The IPythonEnv environment.
    N)super__init___models_ipython_env)selfr   r   	__class__ I/tmp/pip-unpacked-wheel-doshhd5e/google/generativeai/notebook/eval_cmd.pyr   "   s    
zEvalCommand.__init__zparsed_args_lib.ParsedArgsstrz2Sequence[post_process_utils.ParsedPostProcessExpr]zpandas.DataFrame)parsed_argscell_contentpost_processing_fnsreturnc                 C  sF   t j|dd}tj| j| j|||d}||d}tj||d | S )NT)Zsuppress_status_msgs)r   r   r   r   r   )inputs)resultsr   )	r   Zjoin_inputs_sourcesr   Zcreate_llm_eval_functionr   r   r	   Zwrite_to_outputsZas_pandas_dataframe)r   r   r   r   r   Z
llm_cmp_fnr   r   r   r   execute1   s    	 
zEvalCommand.executezSequence[Sequence[str]])tokensr   c                 C  s
   t |S )N)r   Zresolve_post_processing_tokens)r   r    r   r   r   parse_post_processing_tokensJ   s    z(EvalCommand.parse_post_processing_tokens)N)__name__
__module____qualname____doc__r   r   r!   __classcell__r   r   r   r   r      s
    r   )r%   
__future__r   typingr   Zgoogle.generativeai.notebookr   r   r   r   r   r	   r
   r   ZpandasCommandr   r   r   r   r   <module>   s   