Source code for langchain_community.tools.gmail.base
"""Base class for Gmail tools."""from__future__importannotationsfromtypingimportTYPE_CHECKINGfromlangchain_core.toolsimportBaseToolfrompydanticimportFieldfromlangchain_community.tools.gmail.utilsimportbuild_resource_serviceifTYPE_CHECKING:# This is for linting and IDE typehintsfromgoogleapiclient.discoveryimportResourceelse:try:# We do this so pydantic can resolve the types when instantiatingfromgoogleapiclient.discoveryimportResourceexceptImportError:pass
[docs]classGmailBaseTool(BaseTool):# type: ignore[override]"""Base class for Gmail tools."""api_resource:Resource=Field(default_factory=build_resource_service)
[docs]@classmethoddeffrom_api_resource(cls,api_resource:Resource)->"GmailBaseTool":"""Create a tool from an api resource. Args: api_resource: The api resource to use. Returns: A tool. """returncls(service=api_resource)# type: ignore[call-arg]