
    
!i|                        S r SSKJr  SSKJrJr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	 jrSS
 jrSS jrSS jr " S S\R(                  5      r " S S\R,                  5      rg)zSheetsInputs.    )annotations)AnyCallableMappingSequence)parse)gspread_client)	sheets_id)llmfn_inputs_source)llmfn_outputsc                    [         R                  " U 5      nUR                  (       aN  [        R
                  " [        R                  " U 5      S9n[        R                  " 5       R                  U5        U$ g! [         a     gf = f)z4Try to open a Sheets document with `value` as a URL.N)url)
r   urlparse
ValueErrorschemer
   SheetsIdentifier	SheetsURLr	   
get_clientvalidate)valueparse_resultsids      c/home/james-whalen/.local/lib/python3.13/site-packages/google/generativeai/notebook/sheets_utils.py_try_sheet_id_as_urlr      sp    ~~e,
  ((Y-@-@-GH!!#,,S1
  s   A8 8
BBc                     [         R                  " [         R                  " U 5      S9n [        R
                  " 5       R                  U5        U$ ! [         a     gf = f! [        R                   a     gf = f)z4Try to open a Sheets document with `value` as a key.)keyN)r
   r   	SheetsKeyr   r	   r   r   SpreadsheetNotFoundErrorr   r   s     r   _try_sheet_id_as_keyr    -   sr    ((Y-@-@-GH
!!#,,S1 J   22 s"   (A $A! 
AA!A87A8c                    [         R                  " U S9n [        R                  " 5       R	                  U5        U$ ! [        R
                   a     gf = f)z5Try to open a Sheets document with `value` as a name.)nameN)r
   r   r	   r   r   r   r   s     r   _try_sheet_id_as_namer#   <   sO    

$
$%
0C!!#,,S1 J 22 s   $< AAc                    [        U 5      =n(       a  U$ [        U 5      =n(       a  U$ [        U 5      =n(       a  U$ [        SR	                  U 5      5      e)Nz-No Sheets found with "{}" as URL, key or name)r   r    r#   RuntimeErrorformatr   s     r   get_sheets_id_from_strr'   F   sX    "5))s)
"5))s)
#E**s*

FMMeT
UU    c                  B   ^  \ rS rSrSrSSU 4S jjjr  SS jrSrU =r$ )	SheetsInputsP   z,Inputs to an LLMFunction from Google Sheets.c                :   > [         TU ]  5         Xl        X l        g N)super__init___sid_worksheet_id)selfr   worksheet_id	__class__s      r   r/   SheetsInputs.__init__S   s    	)r(   c                p    [         R                  " 5       R                  U R                  U R                  S9$ )N)r   r3   )r	   r   get_all_recordsr0   r1   )r2   s    r   _to_normalized_inputs_impl'SheetsInputs._to_normalized_inputs_implX   s4     ((*::		(:(: ; 
 	
r(   )r0   r1   )r   )r   sheets_id.SheetsIdentifierr3   int)returnz6tuple[Sequence[Mapping[str, str]], Callable[[], None]])	__name__
__module____qualname____firstlineno____doc__r/   r8   __static_attributes____classcell__)r4   s   @r   r*   r*   P   s"    6* *

	?
 
r(   r*   c                  ,    \ rS rSrSrSS jrSS jrSrg)	SheetsOutputs`   z4Writes outputs from an LLMFunction to Google Sheets.c                    Xl         g r-   r0   )r2   r   s     r   r/   SheetsOutputs.__init__c   s    	r(   c                :   UR                  5       n[        UR                  5       5      /nUR                  [	        UR                  5       6  Vs/ s H  n[        U5      PM     sn5        [        R                  " 5       R                  U R                  US9  g s  snf )N)r   rows)
as_dictlistkeysextendzipvaluesr	   r   write_recordsr0   )r2   outputsoutputs_dictoutputs_rowsxs        r   write_outputsSheetsOutputs.write_outputsf   s    (-1,2C2C2E-F,Gc<3F3F3H.IJ.IT!W.IJK!!#11		 	2 	
 Ks   BrH   N)r   r:   )rS   zllmfn_outputs.LLMFnOutputsBaser<   None)r=   r>   r?   r@   rA   r/   rW   rB    r(   r   rE   rE   `   s    >	
r(   rE   N)r   strr<   z!sheets_id.SheetsIdentifier | None)r   r[   r<   r:   )rA   
__future__r   typingr   r   r   r   urllibr   google.generativeai.notebookr	   r
    google.generativeai.notebook.libr   r   r   r    r#   r'   LLMFnInputsSourcer*   LLMFnOutputsSinkrE   rZ   r(   r   <module>rc      s\     " 3 3  7 2 @ :&V
&88 
 
M22 
r(   