
    rh|                        d Z ddlmZ ddlmZmZ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	Zdd
ZddZddZ G d dej(                        Z G d dej,                        Zy)zSheetsInputs.    )annotations)AnyCallableMappingSequence)parse)gspread_client)	sheets_id)llmfn_inputs_source)llmfn_outputsc                   	 t        j                  |       }|j                  rNt	        j
                  t	        j                  |             }t        j                         j                  |       |S y# t        $ r Y yw xY w)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      |/var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/google/generativeai/notebook/sheets_utils.py_try_sheet_id_as_urlr      sp    ~~e,
  ((Y-@-@-GH!!#,,S1
  s   A2 2	A>=A>c                    	 t        j                  t        j                  |             }	 t	        j
                         j                  |       |S # t        $ r Y yw xY w# t        j                  $ r Y yw xY w)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 A65A6c                    t        j                  |       }	 t        j                         j	                  |       |S # t        j
                  $ r Y yw xY w)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                    t        |       x}r|S t        |       x}r|S t        |       x}r|S t        dj	                  |             )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                  2     e Zd ZdZdd fdZ	 	 ddZ xZS )SheetsInputsz,Inputs to an LLMFunction from Google Sheets.c                >    t         |           || _        || _        y N)super__init___sid_worksheet_id)selfr   worksheet_id	__class__s      r   r.   zSheetsInputs.__init__S   s    	)r(   c                t    t        j                         j                  | j                  | j                        S )N)r   r2   )r	   r   get_all_recordsr/   r0   )r1   s    r   _to_normalized_inputs_implz'SheetsInputs._to_normalized_inputs_implX   s4     ((*::		(:(: ; 
 	
r(   )r   )r   sheets_id.SheetsIdentifierr2   int)returnz6tuple[Sequence[Mapping[str, str]], Callable[[], None]])__name__
__module____qualname____doc__r.   r6   __classcell__)r3   s   @r   r*   r*   P   s    6*

	?
r(   r*   c                       e Zd ZdZddZddZy)SheetsOutputsz4Writes outputs from an LLMFunction to Google Sheets.c                    || _         y r,   )r/   )r1   r   s     r   r.   zSheetsOutputs.__init__c   s	    	r(   c                8   |j                         }t        |j                               g}|j                  t	        |j                          D cg c]  }t        |       c}       t        j                         j                  | j                  |       y c c}w )N)r   rows)
as_dictlistkeysextendzipvaluesr	   r   write_recordsr/   )r1   outputsoutputs_dictoutputs_rowsxs        r   write_outputszSheetsOutputs.write_outputsf   s{    (-1,2C2C2E-F,Gc<3F3F3H.IJT!WJK!!#11		 	2 	
 Ks   BN)r   r7   )rK   zllmfn_outputs.LLMFnOutputsBaser9   None)r:   r;   r<   r=   r.   rO    r(   r   r@   r@   `   s    >	
r(   r@   N)r   strr9   z!sheets_id.SheetsIdentifier | None)r   rR   r9   r7   )r=   
__future__r   typingr   r   r   r   urllibr   google.generativeai.notebookr	   r
    google.generativeai.notebook.libr   r   r   r    r#   r'   LLMFnInputsSourcer*   LLMFnOutputsSinkr@   rQ   r(   r   <module>rZ      s\     " 3 3  7 2 @ :&V
&88 
 
M22 
r(   