
    3fi                         d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZmZ d dlmZmZmZmZ erd d	lmZ n	 d d	lmZ  G d
 de      Zy# e$ r Y w xY w)    )TYPE_CHECKINGListOptional)BaseTool)BaseToolkit)
ConfigDictField)SheetsCreateSpreadsheetTool)SheetsGetSpreadsheetInfoTool)SheetsBatchReadDataToolSheetsFilteredReadDataToolSheetsReadDataTool)SheetsAppendValuesToolSheetsBatchUpdateValuesToolSheetsClearValuesToolSheetsUpdateValuesTool)Resourcec                   t    e Zd ZU dZ ed      Zeed<    ed      Ze	e
   ed<    ed      Zdee   fd	Zy)
SheetsToolkitaI  Toolkit for interacting with Google Sheets.

    Inherits from [`BaseToolkit`][langchain_core.tools.base.BaseToolkit].

    Provides comprehensive Google Sheets integration with read and write capabilities.

    !!! warning "Security Note"

        This toolkit contains tools that can read and write data to Google Sheets.
        Ensure proper authentication and access controls.

    !!! info "Authentication Requirements"

        - **Read operations**: Require only API key (for public spreadsheets)
        - **Write operations**: Require OAuth2 credentials (`api_resource`)
    N)defaultapi_resourceapi_keyT)arbitrary_types_allowedreturnc                    | j                   rAt        | j                         t        | j                         t        | j                         gS t        | j                        t        | j                        t        | j                        t        | j                        t        | j                        t        | j                        t        | j                        t        | j                        t        | j                        g	S )zGet the tools in the toolkit.

        Returns:
            List of tools based on authentication method. API key provides read-only
            tools. OAuth2 provides full read/write tools.
        )r   )r   )r   r   r   r   r   r   r
   r   r   r   r   )selfs    g/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/langchain_google_community/sheets/toolkit.py	get_toolszSheetsToolkit.get_tools>   s     <<"4<<8'=,T\\B  D,=,=>#1B1BC&D4E4EF(d6G6GH'T5F5FG"0A0AB"0A0AB!t/@/@A'T5F5FG
 	
    )__name__
__module____qualname____doc__r	   r   r   __annotations__r   r   strr   model_configr   r   r    r   r   r   r   $   sH    " #40L(0"40GXc]0 $L
4> 
r   r   N)typingr   r   r   langchain_core.toolsr   langchain_core.tools.baser   pydanticr   r	   9langchain_google_community.sheets.create_spreadsheet_toolr
   6langchain_google_community.sheets.get_spreadsheet_infor   2langchain_google_community.sheets.read_sheet_toolsr   r   r   3langchain_google_community.sheets.write_sheet_toolsr   r   r   r   googleapiclient.discoveryr   ImportErrorr   r'   r   r   <module>r2      sb    0 0 ) 1 & 
  26
7
K 7
	  s   A A%$A%