From aa0bc7467c630818952ea4843572c8d0208e0176 Mon Sep 17 00:00:00 2001 From: Eugene Yurtsev Date: Wed, 1 May 2024 09:36:03 -0400 Subject: [PATCH] langchain[patch]: Migrate agents module into optional imports for community (#21088) --- libs/langchain/langchain/agents/__init__.py | 39 +++++--- .../agents/agent_toolkits/__init__.py | 94 +++++++++++++++---- .../agent_toolkits/ainetwork/toolkit.py | 26 ++++- .../azure_cognitive_services.py | 32 ++++++- .../agents/agent_toolkits/clickup/toolkit.py | 26 ++++- .../file_management/__init__.py | 31 +++++- .../agent_toolkits/file_management/toolkit.py | 32 ++++++- .../agents/agent_toolkits/github/toolkit.py | 68 ++++++++++---- .../agents/agent_toolkits/gitlab/toolkit.py | 26 ++++- .../agents/agent_toolkits/gmail/toolkit.py | 24 ++++- .../agents/agent_toolkits/jira/toolkit.py | 24 ++++- .../agents/agent_toolkits/json/base.py | 26 ++++- .../agents/agent_toolkits/json/toolkit.py | 24 ++++- .../agents/agent_toolkits/multion/toolkit.py | 26 ++++- .../agents/agent_toolkits/nasa/toolkit.py | 24 ++++- .../agents/agent_toolkits/nla/tool.py | 24 ++++- .../agents/agent_toolkits/nla/toolkit.py | 24 ++++- .../agent_toolkits/office365/toolkit.py | 26 ++++- .../agents/agent_toolkits/openapi/base.py | 26 ++++- .../agents/agent_toolkits/openapi/planner.py | 53 +++++++++-- .../agents/agent_toolkits/openapi/spec.py | 34 ++++++- .../agents/agent_toolkits/openapi/toolkit.py | 34 ++++++- .../agent_toolkits/playwright/__init__.py | 30 +++++- .../agent_toolkits/playwright/toolkit.py | 30 +++++- .../agents/agent_toolkits/powerbi/base.py | 26 ++++- .../agent_toolkits/powerbi/chat_base.py | 28 +++++- .../agents/agent_toolkits/powerbi/toolkit.py | 26 ++++- .../agents/agent_toolkits/slack/toolkit.py | 24 ++++- .../agents/agent_toolkits/spark_sql/base.py | 26 ++++- .../agent_toolkits/spark_sql/toolkit.py | 26 ++++- .../agents/agent_toolkits/sql/base.py | 24 ++++- .../agents/agent_toolkits/sql/toolkit.py | 26 ++++- .../agents/agent_toolkits/steam/toolkit.py | 24 ++++- .../agents/agent_toolkits/zapier/toolkit.py | 26 ++++- 34 files changed, 926 insertions(+), 133 deletions(-) diff --git a/libs/langchain/langchain/agents/__init__.py b/libs/langchain/langchain/agents/__init__.py index f3551f061a..d4d7fa7770 100644 --- a/libs/langchain/langchain/agents/__init__.py +++ b/libs/langchain/langchain/agents/__init__.py @@ -29,19 +29,12 @@ Agents select and use **Tools** and **Toolkits** for actions. """ # noqa: E501 from pathlib import Path -from typing import Any - -from langchain_community.agent_toolkits import ( - create_json_agent, - create_openapi_agent, - create_pbi_agent, - create_pbi_chat_agent, - create_spark_sql_agent, - create_sql_agent, -) +from typing import TYPE_CHECKING, Any + from langchain_core._api.path import as_import_path from langchain_core.tools import Tool, tool +from langchain._api import create_importer from langchain.agents.agent import ( Agent, AgentExecutor, @@ -86,6 +79,16 @@ from langchain.agents.structured_chat.base import ( from langchain.agents.tool_calling_agent.base import create_tool_calling_agent from langchain.agents.xml.base import XMLAgent, create_xml_agent +if TYPE_CHECKING: + from langchain_community.agent_toolkits.json.base import create_json_agent + from langchain_community.agent_toolkits.openapi.base import create_openapi_agent + from langchain_community.agent_toolkits.powerbi.base import create_pbi_agent + from langchain_community.agent_toolkits.powerbi.chat_base import ( + create_pbi_chat_agent, + ) + from langchain_community.agent_toolkits.spark_sql.base import create_spark_sql_agent + from langchain_community.agent_toolkits.sql.base import create_sql_agent + DEPRECATED_CODE = [ "create_csv_agent", "create_pandas_dataframe_agent", @@ -93,6 +96,20 @@ DEPRECATED_CODE = [ "create_xorbits_agent", ] +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "create_json_agent": "langchain_community.agent_toolkits.json.base", + "create_openapi_agent": "langchain_community.agent_toolkits.openapi.base", + "create_pbi_agent": "langchain_community.agent_toolkits.powerbi.base", + "create_pbi_chat_agent": "langchain_community.agent_toolkits.powerbi.chat_base", + "create_spark_sql_agent": "langchain_community.agent_toolkits.spark_sql.base", + "create_sql_agent": "langchain_community.agent_toolkits.sql.base", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + def __getattr__(name: str) -> Any: """Get attr name.""" @@ -110,7 +127,7 @@ def __getattr__(name: str) -> Any: "for more information.\n" f"Please update your import statement from: `{old_path}` to `{new_path}`." ) - raise AttributeError(f"{name} does not exist") + return _import_attribute(name) __all__ = [ diff --git a/libs/langchain/langchain/agents/agent_toolkits/__init__.py b/libs/langchain/langchain/agents/agent_toolkits/__init__.py index e718a66c31..c311c87602 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/__init__.py +++ b/libs/langchain/langchain/agents/agent_toolkits/__init__.py @@ -13,13 +13,12 @@ whether permissions of the given toolkit are appropriate for the application. See [Security](https://python.langchain.com/docs/security) for more information. """ -import warnings from pathlib import Path -from typing import Any +from typing import TYPE_CHECKING, Any -from langchain_core._api import LangChainDeprecationWarning from langchain_core._api.path import as_import_path +from langchain._api import create_importer from langchain.agents.agent_toolkits.conversational_retrieval.openai_functions import ( create_conversational_retrieval_agent, ) @@ -33,7 +32,41 @@ from langchain.agents.agent_toolkits.vectorstore.toolkit import ( VectorStoreToolkit, ) from langchain.tools.retriever import create_retriever_tool -from langchain.utils.interactive_env import is_interactive_env + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.ainetwork.toolkit import AINetworkToolkit + from langchain_community.agent_toolkits.amadeus.toolkit import AmadeusToolkit + from langchain_community.agent_toolkits.azure_cognitive_services import ( + AzureCognitiveServicesToolkit, + ) + from langchain_community.agent_toolkits.file_management.toolkit import ( + FileManagementToolkit, + ) + from langchain_community.agent_toolkits.gmail.toolkit import GmailToolkit + from langchain_community.agent_toolkits.jira.toolkit import JiraToolkit + from langchain_community.agent_toolkits.json.base import create_json_agent + from langchain_community.agent_toolkits.json.toolkit import JsonToolkit + from langchain_community.agent_toolkits.multion.toolkit import MultionToolkit + from langchain_community.agent_toolkits.nasa.toolkit import NasaToolkit + from langchain_community.agent_toolkits.nla.toolkit import NLAToolkit + from langchain_community.agent_toolkits.office365.toolkit import O365Toolkit + from langchain_community.agent_toolkits.openapi.base import create_openapi_agent + from langchain_community.agent_toolkits.openapi.toolkit import OpenAPIToolkit + from langchain_community.agent_toolkits.playwright.toolkit import ( + PlayWrightBrowserToolkit, + ) + from langchain_community.agent_toolkits.powerbi.base import create_pbi_agent + from langchain_community.agent_toolkits.powerbi.chat_base import ( + create_pbi_chat_agent, + ) + from langchain_community.agent_toolkits.powerbi.toolkit import PowerBIToolkit + from langchain_community.agent_toolkits.slack.toolkit import SlackToolkit + from langchain_community.agent_toolkits.spark_sql.base import create_spark_sql_agent + from langchain_community.agent_toolkits.spark_sql.toolkit import SparkSQLToolkit + from langchain_community.agent_toolkits.sql.base import create_sql_agent + from langchain_community.agent_toolkits.sql.toolkit import SQLDatabaseToolkit + from langchain_community.agent_toolkits.steam.toolkit import SteamToolkit + from langchain_community.agent_toolkits.zapier.toolkit import ZapierToolkit DEPRECATED_AGENTS = [ "create_csv_agent", @@ -43,6 +76,43 @@ DEPRECATED_AGENTS = [ "create_spark_dataframe_agent", ] +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "AINetworkToolkit": "langchain_community.agent_toolkits.ainetwork.toolkit", + "AmadeusToolkit": "langchain_community.agent_toolkits.amadeus.toolkit", + "AzureCognitiveServicesToolkit": ( + "langchain_community.agent_toolkits.azure_cognitive_services" + ), + "FileManagementToolkit": ( + "langchain_community.agent_toolkits.file_management.toolkit" + ), + "GmailToolkit": "langchain_community.agent_toolkits.gmail.toolkit", + "JiraToolkit": "langchain_community.agent_toolkits.jira.toolkit", + "JsonToolkit": "langchain_community.agent_toolkits.json.toolkit", + "MultionToolkit": "langchain_community.agent_toolkits.multion.toolkit", + "NasaToolkit": "langchain_community.agent_toolkits.nasa.toolkit", + "NLAToolkit": "langchain_community.agent_toolkits.nla.toolkit", + "O365Toolkit": "langchain_community.agent_toolkits.office365.toolkit", + "OpenAPIToolkit": "langchain_community.agent_toolkits.openapi.toolkit", + "PlayWrightBrowserToolkit": "langchain_community.agent_toolkits.playwright.toolkit", + "PowerBIToolkit": "langchain_community.agent_toolkits.powerbi.toolkit", + "SlackToolkit": "langchain_community.agent_toolkits.slack.toolkit", + "SteamToolkit": "langchain_community.agent_toolkits.steam.toolkit", + "SQLDatabaseToolkit": "langchain_community.agent_toolkits.sql.toolkit", + "SparkSQLToolkit": "langchain_community.agent_toolkits.spark_sql.toolkit", + "ZapierToolkit": "langchain_community.agent_toolkits.zapier.toolkit", + "create_json_agent": "langchain_community.agent_toolkits.json.base", + "create_openapi_agent": "langchain_community.agent_toolkits.openapi.base", + "create_pbi_agent": "langchain_community.agent_toolkits.powerbi.base", + "create_pbi_chat_agent": "langchain_community.agent_toolkits.powerbi.chat_base", + "create_spark_sql_agent": "langchain_community.agent_toolkits.spark_sql.base", + "create_sql_agent": "langchain_community.agent_toolkits.sql.base", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + def __getattr__(name: str) -> Any: """Get attr name.""" @@ -56,21 +126,7 @@ def __getattr__(name: str) -> Any: "for more information.\n" f"Please update your import statement from: `{old_path}` to `{new_path}`." ) - - from langchain_community import agent_toolkits - - # If not in interactive env, raise warning. - if not is_interactive_env(): - warnings.warn( - "Importing this agent toolkit from langchain is deprecated. Importing it " - "from langchain will no longer be supported as of langchain==0.2.0. " - "Please import from langchain-community instead:\n\n" - f"`from langchain_community.agent_toolkits import {name}`.\n\n" - "To install langchain-community run `pip install -U langchain-community`.", - category=LangChainDeprecationWarning, - ) - - return getattr(agent_toolkits, name) + return _import_attribute(name) __all__ = [ diff --git a/libs/langchain/langchain/agents/agent_toolkits/ainetwork/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/ainetwork/toolkit.py index 397276703a..2a797a0bfc 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/ainetwork/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/ainetwork/toolkit.py @@ -1,3 +1,25 @@ -from langchain_community.agent_toolkits.ainetwork.toolkit import AINetworkToolkit +from typing import TYPE_CHECKING, Any -__all__ = ["AINetworkToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.ainetwork.toolkit import AINetworkToolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "AINetworkToolkit": "langchain_community.agent_toolkits.ainetwork.toolkit" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "AINetworkToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/azure_cognitive_services.py b/libs/langchain/langchain/agents/agent_toolkits/azure_cognitive_services.py index 224a04ca41..4f49ae86e1 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/azure_cognitive_services.py +++ b/libs/langchain/langchain/agents/agent_toolkits/azure_cognitive_services.py @@ -1,5 +1,29 @@ -from langchain_community.agent_toolkits.azure_cognitive_services import ( - AzureCognitiveServicesToolkit, -) +from typing import TYPE_CHECKING, Any -__all__ = ["AzureCognitiveServicesToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.azure_cognitive_services import ( + AzureCognitiveServicesToolkit, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "AzureCognitiveServicesToolkit": ( + "langchain_community.agent_toolkits.azure_cognitive_services" + ) +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "AzureCognitiveServicesToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/clickup/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/clickup/toolkit.py index b6bd3cc888..e58a8678cd 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/clickup/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/clickup/toolkit.py @@ -1,3 +1,25 @@ -from langchain_community.agent_toolkits.clickup.toolkit import ClickupToolkit +from typing import TYPE_CHECKING, Any -__all__ = ["ClickupToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.clickup.toolkit import ClickupToolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "ClickupToolkit": "langchain_community.agent_toolkits.clickup.toolkit" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "ClickupToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/file_management/__init__.py b/libs/langchain/langchain/agents/agent_toolkits/file_management/__init__.py index 53ce9329f9..feebd63713 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/file_management/__init__.py +++ b/libs/langchain/langchain/agents/agent_toolkits/file_management/__init__.py @@ -1,7 +1,30 @@ """Local file management toolkit.""" +from typing import TYPE_CHECKING, Any -from langchain_community.agent_toolkits.file_management.toolkit import ( - FileManagementToolkit, -) +from langchain._api import create_importer -__all__ = ["FileManagementToolkit"] +if TYPE_CHECKING: + from langchain_community.agent_toolkits.file_management.toolkit import ( + FileManagementToolkit, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "FileManagementToolkit": ( + "langchain_community.agent_toolkits.file_management.toolkit" + ) +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "FileManagementToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/file_management/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/file_management/toolkit.py index 47a4325c28..ac6830e14a 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/file_management/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/file_management/toolkit.py @@ -1,5 +1,29 @@ -from langchain_community.agent_toolkits.file_management.toolkit import ( - FileManagementToolkit, -) +from typing import TYPE_CHECKING, Any -__all__ = ["FileManagementToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.file_management.toolkit import ( + FileManagementToolkit, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "FileManagementToolkit": ( + "langchain_community.agent_toolkits.file_management.toolkit" + ) +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "FileManagementToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/github/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/github/toolkit.py index 2c4b9e213b..c5ce5db62d 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/github/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/github/toolkit.py @@ -1,20 +1,54 @@ -from langchain_community.agent_toolkits.github.toolkit import ( - BranchName, - CommentOnIssue, - CreateFile, - CreatePR, - CreateReviewRequest, - DeleteFile, - DirectoryPath, - GetIssue, - GetPR, - GitHubToolkit, - NoInput, - ReadFile, - SearchCode, - SearchIssuesAndPRs, - UpdateFile, -) +from typing import TYPE_CHECKING, Any + +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.github.toolkit import ( + BranchName, + CommentOnIssue, + CreateFile, + CreatePR, + CreateReviewRequest, + DeleteFile, + DirectoryPath, + GetIssue, + GetPR, + GitHubToolkit, + NoInput, + ReadFile, + SearchCode, + SearchIssuesAndPRs, + UpdateFile, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "NoInput": "langchain_community.agent_toolkits.github.toolkit", + "GetIssue": "langchain_community.agent_toolkits.github.toolkit", + "CommentOnIssue": "langchain_community.agent_toolkits.github.toolkit", + "GetPR": "langchain_community.agent_toolkits.github.toolkit", + "CreatePR": "langchain_community.agent_toolkits.github.toolkit", + "CreateFile": "langchain_community.agent_toolkits.github.toolkit", + "ReadFile": "langchain_community.agent_toolkits.github.toolkit", + "UpdateFile": "langchain_community.agent_toolkits.github.toolkit", + "DeleteFile": "langchain_community.agent_toolkits.github.toolkit", + "DirectoryPath": "langchain_community.agent_toolkits.github.toolkit", + "BranchName": "langchain_community.agent_toolkits.github.toolkit", + "SearchCode": "langchain_community.agent_toolkits.github.toolkit", + "CreateReviewRequest": "langchain_community.agent_toolkits.github.toolkit", + "SearchIssuesAndPRs": "langchain_community.agent_toolkits.github.toolkit", + "GitHubToolkit": "langchain_community.agent_toolkits.github.toolkit", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + __all__ = [ "NoInput", diff --git a/libs/langchain/langchain/agents/agent_toolkits/gitlab/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/gitlab/toolkit.py index e5c1164944..c603fc456d 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/gitlab/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/gitlab/toolkit.py @@ -1,3 +1,25 @@ -from langchain_community.agent_toolkits.gitlab.toolkit import GitLabToolkit +from typing import TYPE_CHECKING, Any -__all__ = ["GitLabToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.gitlab.toolkit import GitLabToolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "GitLabToolkit": "langchain_community.agent_toolkits.gitlab.toolkit" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "GitLabToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/gmail/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/gmail/toolkit.py index d6f500e894..65255dcbd6 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/gmail/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/gmail/toolkit.py @@ -1,3 +1,23 @@ -from langchain_community.agent_toolkits.gmail.toolkit import SCOPES, GmailToolkit +from typing import TYPE_CHECKING, Any -__all__ = ["SCOPES", "GmailToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.gmail.toolkit import GmailToolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"GmailToolkit": "langchain_community.agent_toolkits.gmail.toolkit"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "GmailToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/jira/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/jira/toolkit.py index 4f353747d8..4a94a9e8e5 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/jira/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/jira/toolkit.py @@ -1,3 +1,23 @@ -from langchain_community.agent_toolkits.jira.toolkit import JiraToolkit +from typing import TYPE_CHECKING, Any -__all__ = ["JiraToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.jira.toolkit import JiraToolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"JiraToolkit": "langchain_community.agent_toolkits.jira.toolkit"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "JiraToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/json/base.py b/libs/langchain/langchain/agents/agent_toolkits/json/base.py index d3e90faa61..f60163265c 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/json/base.py +++ b/libs/langchain/langchain/agents/agent_toolkits/json/base.py @@ -1,3 +1,25 @@ -from langchain_community.agent_toolkits.json.base import create_json_agent +from typing import TYPE_CHECKING, Any -__all__ = ["create_json_agent"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.json.base import create_json_agent + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "create_json_agent": "langchain_community.agent_toolkits.json.base" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "create_json_agent", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/json/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/json/toolkit.py index f4d558b69c..4db6fa2cb7 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/json/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/json/toolkit.py @@ -1,3 +1,23 @@ -from langchain_community.agent_toolkits.json.toolkit import JsonToolkit +from typing import TYPE_CHECKING, Any -__all__ = ["JsonToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.json.toolkit import JsonToolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"JsonToolkit": "langchain_community.agent_toolkits.json.toolkit"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "JsonToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/multion/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/multion/toolkit.py index 4df2a4c9b6..eee04a9e6f 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/multion/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/multion/toolkit.py @@ -1,3 +1,25 @@ -from langchain_community.agent_toolkits.multion.toolkit import MultionToolkit +from typing import TYPE_CHECKING, Any -__all__ = ["MultionToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.multion.toolkit import MultionToolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "MultionToolkit": "langchain_community.agent_toolkits.multion.toolkit" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "MultionToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/nasa/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/nasa/toolkit.py index 312233762c..3ddb794ba6 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/nasa/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/nasa/toolkit.py @@ -1,3 +1,23 @@ -from langchain_community.agent_toolkits.nasa.toolkit import NasaToolkit +from typing import TYPE_CHECKING, Any -__all__ = ["NasaToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.nasa.toolkit import NasaToolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"NasaToolkit": "langchain_community.agent_toolkits.nasa.toolkit"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "NasaToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/nla/tool.py b/libs/langchain/langchain/agents/agent_toolkits/nla/tool.py index 1d66bedadd..6168ba397f 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/nla/tool.py +++ b/libs/langchain/langchain/agents/agent_toolkits/nla/tool.py @@ -1,3 +1,23 @@ -from langchain_community.agent_toolkits.nla.tool import NLATool +from typing import TYPE_CHECKING, Any -__all__ = ["NLATool"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.nla.tool import NLATool + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"NLATool": "langchain_community.agent_toolkits.nla.tool"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "NLATool", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/nla/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/nla/toolkit.py index ca290f0283..491d1e6a9c 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/nla/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/nla/toolkit.py @@ -1,3 +1,23 @@ -from langchain_community.agent_toolkits.nla.toolkit import NLAToolkit +from typing import TYPE_CHECKING, Any -__all__ = ["NLAToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.nla.toolkit import NLAToolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"NLAToolkit": "langchain_community.agent_toolkits.nla.toolkit"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "NLAToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/office365/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/office365/toolkit.py index 86cf061230..466d979d0e 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/office365/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/office365/toolkit.py @@ -1,3 +1,25 @@ -from langchain_community.agent_toolkits.office365.toolkit import O365Toolkit +from typing import TYPE_CHECKING, Any -__all__ = ["O365Toolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.office365.toolkit import O365Toolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "O365Toolkit": "langchain_community.agent_toolkits.office365.toolkit" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "O365Toolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/openapi/base.py b/libs/langchain/langchain/agents/agent_toolkits/openapi/base.py index 1fd86c1ba9..acb6eaba63 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/openapi/base.py +++ b/libs/langchain/langchain/agents/agent_toolkits/openapi/base.py @@ -1,3 +1,25 @@ -from langchain_community.agent_toolkits.openapi.base import create_openapi_agent +from typing import TYPE_CHECKING, Any -__all__ = ["create_openapi_agent"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.openapi.base import create_openapi_agent + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "create_openapi_agent": "langchain_community.agent_toolkits.openapi.base" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "create_openapi_agent", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/openapi/planner.py b/libs/langchain/langchain/agents/agent_toolkits/openapi/planner.py index 15e2ffc4fb..ad276207c0 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/openapi/planner.py +++ b/libs/langchain/langchain/agents/agent_toolkits/openapi/planner.py @@ -1,15 +1,48 @@ -from langchain_community.agent_toolkits.openapi.planner import ( - MAX_RESPONSE_LENGTH, - RequestsDeleteToolWithParsing, - RequestsGetToolWithParsing, - RequestsPatchToolWithParsing, - RequestsPostToolWithParsing, - RequestsPutToolWithParsing, - create_openapi_agent, -) +from typing import TYPE_CHECKING, Any + +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.openapi.planner import ( + RequestsDeleteToolWithParsing, + RequestsGetToolWithParsing, + RequestsPatchToolWithParsing, + RequestsPostToolWithParsing, + RequestsPutToolWithParsing, + create_openapi_agent, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "RequestsGetToolWithParsing": ( + "langchain_community.agent_toolkits.openapi.planner" + ), + "RequestsPostToolWithParsing": ( + "langchain_community.agent_toolkits.openapi.planner" + ), + "RequestsPatchToolWithParsing": ( + "langchain_community.agent_toolkits.openapi.planner" + ), + "RequestsPutToolWithParsing": ( + "langchain_community.agent_toolkits.openapi.planner" + ), + "RequestsDeleteToolWithParsing": ( + "langchain_community.agent_toolkits.openapi.planner" + ), + "create_openapi_agent": "langchain_community.agent_toolkits.openapi.planner", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + __all__ = [ - "MAX_RESPONSE_LENGTH", "RequestsGetToolWithParsing", "RequestsPostToolWithParsing", "RequestsPatchToolWithParsing", diff --git a/libs/langchain/langchain/agents/agent_toolkits/openapi/spec.py b/libs/langchain/langchain/agents/agent_toolkits/openapi/spec.py index 961010e3eb..032563044e 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/openapi/spec.py +++ b/libs/langchain/langchain/agents/agent_toolkits/openapi/spec.py @@ -1,6 +1,30 @@ -from langchain_community.agent_toolkits.openapi.spec import ( - ReducedOpenAPISpec, - reduce_openapi_spec, -) +from typing import TYPE_CHECKING, Any -__all__ = ["ReducedOpenAPISpec", "reduce_openapi_spec"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.openapi.spec import ( + ReducedOpenAPISpec, + reduce_openapi_spec, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "ReducedOpenAPISpec": "langchain_community.agent_toolkits.openapi.spec", + "reduce_openapi_spec": "langchain_community.agent_toolkits.openapi.spec", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "ReducedOpenAPISpec", + "reduce_openapi_spec", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/openapi/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/openapi/toolkit.py index 5ff0195ef8..bb20794b8e 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/openapi/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/openapi/toolkit.py @@ -1,6 +1,30 @@ -from langchain_community.agent_toolkits.openapi.toolkit import ( - OpenAPIToolkit, - RequestsToolkit, -) +from typing import TYPE_CHECKING, Any -__all__ = ["RequestsToolkit", "OpenAPIToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.openapi.toolkit import ( + OpenAPIToolkit, + RequestsToolkit, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "RequestsToolkit": "langchain_community.agent_toolkits.openapi.toolkit", + "OpenAPIToolkit": "langchain_community.agent_toolkits.openapi.toolkit", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "RequestsToolkit", + "OpenAPIToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/playwright/__init__.py b/libs/langchain/langchain/agents/agent_toolkits/playwright/__init__.py index 7fc7f6d995..080581a93d 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/playwright/__init__.py +++ b/libs/langchain/langchain/agents/agent_toolkits/playwright/__init__.py @@ -1,6 +1,28 @@ """Playwright browser toolkit.""" -from langchain_community.agent_toolkits.playwright.toolkit import ( - PlayWrightBrowserToolkit, -) +from typing import TYPE_CHECKING, Any -__all__ = ["PlayWrightBrowserToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.playwright.toolkit import ( + PlayWrightBrowserToolkit, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "PlayWrightBrowserToolkit": "langchain_community.agent_toolkits.playwright.toolkit" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "PlayWrightBrowserToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/playwright/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/playwright/toolkit.py index 2ab77c652f..debd504ace 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/playwright/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/playwright/toolkit.py @@ -1,5 +1,27 @@ -from langchain_community.agent_toolkits.playwright.toolkit import ( - PlayWrightBrowserToolkit, -) +from typing import TYPE_CHECKING, Any -__all__ = ["PlayWrightBrowserToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.playwright.toolkit import ( + PlayWrightBrowserToolkit, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "PlayWrightBrowserToolkit": "langchain_community.agent_toolkits.playwright.toolkit" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "PlayWrightBrowserToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/powerbi/base.py b/libs/langchain/langchain/agents/agent_toolkits/powerbi/base.py index fc7ac24bb3..18538bbcb3 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/powerbi/base.py +++ b/libs/langchain/langchain/agents/agent_toolkits/powerbi/base.py @@ -1,3 +1,25 @@ -from langchain_community.agent_toolkits.powerbi.base import create_pbi_agent +from typing import TYPE_CHECKING, Any -__all__ = ["create_pbi_agent"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.powerbi.base import create_pbi_agent + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "create_pbi_agent": "langchain_community.agent_toolkits.powerbi.base" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "create_pbi_agent", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/powerbi/chat_base.py b/libs/langchain/langchain/agents/agent_toolkits/powerbi/chat_base.py index 34a8b9b19c..db0bed9bdc 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/powerbi/chat_base.py +++ b/libs/langchain/langchain/agents/agent_toolkits/powerbi/chat_base.py @@ -1,3 +1,27 @@ -from langchain_community.agent_toolkits.powerbi.chat_base import create_pbi_chat_agent +from typing import TYPE_CHECKING, Any -__all__ = ["create_pbi_chat_agent"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.powerbi.chat_base import ( + create_pbi_chat_agent, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "create_pbi_chat_agent": "langchain_community.agent_toolkits.powerbi.chat_base" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "create_pbi_chat_agent", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/powerbi/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/powerbi/toolkit.py index dfab1055c2..b008c385e7 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/powerbi/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/powerbi/toolkit.py @@ -1,3 +1,25 @@ -from langchain_community.agent_toolkits.powerbi.toolkit import PowerBIToolkit +from typing import TYPE_CHECKING, Any -__all__ = ["PowerBIToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.powerbi.toolkit import PowerBIToolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "PowerBIToolkit": "langchain_community.agent_toolkits.powerbi.toolkit" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "PowerBIToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/slack/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/slack/toolkit.py index 2a536e4b0e..b747bf460f 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/slack/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/slack/toolkit.py @@ -1,3 +1,23 @@ -from langchain_community.agent_toolkits.slack.toolkit import SlackToolkit +from typing import TYPE_CHECKING, Any -__all__ = ["SlackToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.slack.toolkit import SlackToolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"SlackToolkit": "langchain_community.agent_toolkits.slack.toolkit"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "SlackToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/spark_sql/base.py b/libs/langchain/langchain/agents/agent_toolkits/spark_sql/base.py index 6f4a80920e..25b3bda1ae 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/spark_sql/base.py +++ b/libs/langchain/langchain/agents/agent_toolkits/spark_sql/base.py @@ -1,3 +1,25 @@ -from langchain_community.agent_toolkits.spark_sql.base import create_spark_sql_agent +from typing import TYPE_CHECKING, Any -__all__ = ["create_spark_sql_agent"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.spark_sql.base import create_spark_sql_agent + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "create_spark_sql_agent": "langchain_community.agent_toolkits.spark_sql.base" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "create_spark_sql_agent", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/spark_sql/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/spark_sql/toolkit.py index 54dcdda76c..4c393c02f0 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/spark_sql/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/spark_sql/toolkit.py @@ -1,3 +1,25 @@ -from langchain_community.agent_toolkits.spark_sql.toolkit import SparkSQLToolkit +from typing import TYPE_CHECKING, Any -__all__ = ["SparkSQLToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.spark_sql.toolkit import SparkSQLToolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "SparkSQLToolkit": "langchain_community.agent_toolkits.spark_sql.toolkit" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "SparkSQLToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/sql/base.py b/libs/langchain/langchain/agents/agent_toolkits/sql/base.py index b465062de6..0b73f87ae2 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/sql/base.py +++ b/libs/langchain/langchain/agents/agent_toolkits/sql/base.py @@ -1,3 +1,23 @@ -from langchain_community.agent_toolkits.sql.base import create_sql_agent +from typing import TYPE_CHECKING, Any -__all__ = ["create_sql_agent"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.sql.base import create_sql_agent + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"create_sql_agent": "langchain_community.agent_toolkits.sql.base"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "create_sql_agent", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/sql/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/sql/toolkit.py index 0293074e64..e330c4894c 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/sql/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/sql/toolkit.py @@ -1,3 +1,25 @@ -from langchain_community.agent_toolkits.sql.toolkit import SQLDatabaseToolkit +from typing import TYPE_CHECKING, Any -__all__ = ["SQLDatabaseToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.sql.toolkit import SQLDatabaseToolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "SQLDatabaseToolkit": "langchain_community.agent_toolkits.sql.toolkit" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "SQLDatabaseToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/steam/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/steam/toolkit.py index 4fde82fea2..aa141081c0 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/steam/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/steam/toolkit.py @@ -1,3 +1,23 @@ -from langchain_community.agent_toolkits.steam.toolkit import SteamToolkit +from typing import TYPE_CHECKING, Any -__all__ = ["SteamToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.steam.toolkit import SteamToolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"SteamToolkit": "langchain_community.agent_toolkits.steam.toolkit"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "SteamToolkit", +] diff --git a/libs/langchain/langchain/agents/agent_toolkits/zapier/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/zapier/toolkit.py index 9a99d47460..83461b54a2 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/zapier/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/zapier/toolkit.py @@ -1,3 +1,25 @@ -from langchain_community.agent_toolkits.zapier.toolkit import ZapierToolkit +from typing import TYPE_CHECKING, Any -__all__ = ["ZapierToolkit"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.agent_toolkits.zapier.toolkit import ZapierToolkit + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "ZapierToolkit": "langchain_community.agent_toolkits.zapier.toolkit" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "ZapierToolkit", +]