This is an automated email from the ASF dual-hosted git repository.

Lee-W pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 386c0ba69eb Export `DataFusionToolset`, `AgentSkillsToolset` and 
`LoggingToolset`… (#74449)
386c0ba69eb is described below

commit 386c0ba69eb274e041513f6e58cfa39ba95b6dff
Author: Wei Lee <[email protected]>
AuthorDate: Fri Oct 9 15:07:02 2026 +0900

    Export `DataFusionToolset`, `AgentSkillsToolset` and `LoggingToolset`… 
(#74449)
---
 providers/common/ai/docs/toolsets/index.rst        | 26 +++++++++++++++-------
 .../providers/common/ai/toolsets/__init__.py       |  9 ++++++++
 2 files changed, 27 insertions(+), 8 deletions(-)

diff --git a/providers/common/ai/docs/toolsets/index.rst 
b/providers/common/ai/docs/toolsets/index.rst
index d9aacae2d5f..34f5d07fb8d 100644
--- a/providers/common/ai/docs/toolsets/index.rst
+++ b/providers/common/ai/docs/toolsets/index.rst
@@ -96,14 +96,24 @@ toolset to log its calls, the other converts a toolset for 
a LangChain agent.
 Importing toolsets
 ------------------
 
-Six toolsets import from the ``airflow.providers.common.ai.toolsets`` package 
root:
-``HookToolset``, ``SQLToolset``, ``ObjectStorageToolset``, ``MCPToolset``,
-``SandboxToolset`` and ``ManagedAgentToolset``. Import the other three from 
their own
-submodules::
-
-    from airflow.providers.common.ai.toolsets.datafusion import 
DataFusionToolset
-    from airflow.providers.common.ai.toolsets.logging import LoggingToolset
-    from airflow.providers.common.ai.toolsets.skills import AgentSkillsToolset
+Every toolset imports from the ``airflow.providers.common.ai.toolsets`` 
package root::
+
+    from airflow.providers.common.ai.toolsets import (
+        AgentSkillsToolset,
+        DataFusionToolset,
+        HookToolset,
+        LoggingToolset,
+        ManagedAgentToolset,
+        MCPToolset,
+        ObjectStorageToolset,
+        SandboxToolset,
+        SQLToolset,
+    )
+
+``SQLToolset`` and ``DataFusionToolset`` depend on optional extras. If the 
extra is not
+installed, the first access to the name raises 
``AirflowOptionalProviderFeatureException``.
+``MCPToolset`` imports without its extra; the missing dependency raises 
``ImportError``
+when the toolset first connects to the MCP server.
 
 Every toolset here implements pydantic-ai's
 `AbstractToolset <https://ai.pydantic.dev/toolsets/>`__ interface, so it works 
in any
diff --git 
a/providers/common/ai/src/airflow/providers/common/ai/toolsets/__init__.py 
b/providers/common/ai/src/airflow/providers/common/ai/toolsets/__init__.py
index 771fd0c5a84..9c997f50c4d 100644
--- a/providers/common/ai/src/airflow/providers/common/ai/toolsets/__init__.py
+++ b/providers/common/ai/src/airflow/providers/common/ai/toolsets/__init__.py
@@ -19,16 +19,21 @@
 from __future__ import annotations
 
 from airflow.providers.common.ai.toolsets.hook import HookToolset
+from airflow.providers.common.ai.toolsets.logging import LoggingToolset
 from airflow.providers.common.ai.toolsets.managed_agent import (
     BaseManagedAgentToolset,
     ManagedAgentToolset,
 )
 from airflow.providers.common.ai.toolsets.object_storage import 
ObjectStorageToolset
 from airflow.providers.common.ai.toolsets.sandbox import SandboxToolset
+from airflow.providers.common.ai.toolsets.skills import AgentSkillsToolset
 
 __all__ = [
+    "AgentSkillsToolset",
     "BaseManagedAgentToolset",
+    "DataFusionToolset",
     "HookToolset",
+    "LoggingToolset",
     "MCPToolset",
     "ManagedAgentToolset",
     "ObjectStorageToolset",
@@ -61,4 +66,8 @@ def __getattr__(name: str):
 
             raise AirflowOptionalProviderFeatureException(e)
         return MCPToolset
+    if name == "DataFusionToolset":
+        from airflow.providers.common.ai.toolsets.datafusion import 
DataFusionToolset
+
+        return DataFusionToolset
     raise AttributeError(f"module {__name__!r} has no attribute {name!r}")

Reply via email to