Spaces:
Runtime error
Runtime error
| """Base class for Gmail tools.""" | |
| from __future__ import annotations | |
| from typing import TYPE_CHECKING | |
| from langchain_core.pydantic_v1 import Field | |
| from langchain.tools.base import BaseTool | |
| from langchain.tools.gmail.utils import build_resource_service | |
| if TYPE_CHECKING: | |
| # This is for linting and IDE typehints | |
| from googleapiclient.discovery import Resource | |
| else: | |
| try: | |
| # We do this so pydantic can resolve the types when instantiating | |
| from googleapiclient.discovery import Resource | |
| except ImportError: | |
| pass | |
| class GmailBaseTool(BaseTool): | |
| """Base class for Gmail tools.""" | |
| api_resource: Resource = Field(default_factory=build_resource_service) | |
| def from_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. | |
| """ | |
| return cls(service=api_resource) | |