
    ; i                        d Z ddlmZ ddlmZmZmZmZ ddlm	Z	 e	j
        Zeeee         f         Zeee	j        f         Zdd	ZddZddZdS )z'Utilities for handling input variables.    )annotations)AnyMappingSequenceUnion)llmfn_inputs_sourceinputsr   returnboolc                    t          | t                    sdS |                                 D ]G}t          |t                    s dS t          |t                    st          |t
                    r dS HdS )a*  See if inputs is of the form: {"key1": ["val1", "val2", ...]}.

    This is similar to the format produced by:
      pandas.DataFrame.to_dict(orient="list")

    Args:
      inputs: The inputs passed into an LLMFunction.

    Returns:
      Whether `inputs` is a column-ordered list of values.
    FT)
isinstancer   valuesr   strbytes)r	   xs     /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/google/generativeai/notebook/lib/llmfn_input_utils.py_is_column_order_values_listr      s     fg&& u]]__  !X&& 	55 a 	Au!5!5 	55	4    _ColumnOrderValuesList_NormalizedInputsListc                   g }t          |                                           }|rZ|d         }t          t          | |                             D ]/}i }|                    |           |D ]}| |         |         ||<   0|S )z5Transforms prompt inputs into a list of dictionaries.r   )listkeysrangelenappend)r	   return_listr   	first_keyrow_numrow_dictkeys          r   #_normalize_column_order_values_listr"   8   s     )+KD 5G	S	!23344 	5 	5GHx((( 5 5 &sG 45r   LLMFunctionInputsc                6   g }t          | t          j                  r(|                    |                                            nTt          |           r#|                    t          |                      n"t          d                    |                     |S )zFHandles the different types of `inputs` and returns a normalized form.zUnsupported input type {!r})	r   r   LLMFnInputsSourceextendto_normalized_inputsr   r"   
ValueErrorformat)r	   normalized_inputss     r   r'   r'   H   s    13&-?@@ G  !<!<!>!>????	%f	-	- G  !DV!L!LMMMM6==fEEFFFr   N)r	   r   r
   r   )r	   r   r
   r   )r	   r#   r
   r   )__doc__
__future__r   typingr   r   r   r    google.generativeai.notebook.libr   NormalizedInputsListr   r   r   r%   r#   r   r"   r'    r   r   <module>r1      s    . - " " " " " " 0 0 0 0 0 0 0 0 0 0 0 0 @ @ @ @ @ @ ,@  hsm!34 02E2WWX    4    	 	 	 	 	 	r   