From 4f3025d54f13a4d508c6bdae7b87adb22ad5b15a 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 fd61311326d70..a8ca7f564192b 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.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 23a3fa6c99f94..38eb8f7d3f3c4 100644 --- a/libs/community/langchain_community/tools/slack/base.py +++ b/libs/community/langchain_community/tools/slack/base.py @@ -10,7 +10,14 @@ 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]