From efc687a13b15d5c73e5fa7d4b879ec0a99c30bf4 Mon Sep 17 00:00:00 2001 From: ccurme Date: Thu, 2 Jan 2025 11:14:17 -0500 Subject: [PATCH] community[patch]: fix instantiation for Slack tools (#28990) Believe the current implementation raises PydanticUserError following [this](https://github.com/pydantic/pydantic/releases/tag/v2.10.1) Pydantic release. Resolves https://github.com/langchain-ai/langchain/issues/28989 --- .../langchain_community/agent_toolkits/slack/toolkit.py | 7 +++++++ libs/community/langchain_community/tools/slack/base.py | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/libs/community/langchain_community/agent_toolkits/slack/toolkit.py b/libs/community/langchain_community/agent_toolkits/slack/toolkit.py index fd61311326d..a8ca7f56419 100644 --- a/libs/community/langchain_community/agent_toolkits/slack/toolkit.py +++ b/libs/community/langchain_community/agent_toolkits/slack/toolkit.py @@ -13,7 +13,14 @@ from langchain_community.tools.slack.send_message import SlackSendMessage from langchain_community.tools.slack.utils import login if TYPE_CHECKING: + # This is for linting and IDE typehints from slack_sdk import WebClient +else: + try: + # We do this so pydantic can resolve the types when instantiating + from slack_sdk import WebClient + except ImportError: + pass class SlackToolkit(BaseToolkit): diff --git a/libs/community/langchain_community/tools/slack/base.py b/libs/community/langchain_community/tools/slack/base.py index 23a3fa6c99f..38eb8f7d3f3 100644 --- a/libs/community/langchain_community/tools/slack/base.py +++ b/libs/community/langchain_community/tools/slack/base.py @@ -10,7 +10,14 @@ from pydantic import Field from langchain_community.tools.slack.utils import login if TYPE_CHECKING: + # This is for linting and IDE typehints from slack_sdk import WebClient +else: + try: + # We do this so pydantic can resolve the types when instantiating + from slack_sdk import WebClient + except ImportError: + pass class SlackBaseTool(BaseTool): # type: ignore[override]