From c21cf483eb7ddb9bb8223731b2e237213d686d90 Mon Sep 17 00:00:00 2001 From: Johan Date: Tue, 4 Nov 2025 15:03:05 +0100 Subject: [PATCH 1/6] fix type annotation for duckduckgo --- pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py b/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py index c0a32f68b7..e96181656c 100644 --- a/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py +++ b/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import functools from dataclasses import KW_ONLY, dataclass From 69294300ce8f426b4a5cd5ae50ae4a21cefb959d Mon Sep 17 00:00:00 2001 From: Johan Date: Tue, 4 Nov 2025 15:12:11 +0100 Subject: [PATCH 2/6] fix type annotation --- .../pydantic_ai/common_tools/duckduckgo.py | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py b/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py index e96181656c..5ad63f815f 100644 --- a/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py +++ b/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py @@ -2,6 +2,7 @@ import functools from dataclasses import KW_ONLY, dataclass +from typing import TYPE_CHECKING import anyio import anyio.to_thread @@ -10,16 +11,19 @@ from pydantic_ai.tools import Tool -try: +if TYPE_CHECKING: + from ddgs import DDGS +else: try: - from ddgs import DDGS - except ImportError: # Fallback for older versions of ddgs - from duckduckgo_search import DDGS -except ImportError as _import_error: - raise ImportError( - 'Please install `ddgs` to use the DuckDuckGo search tool, ' - 'you can use the `duckduckgo` optional group — `pip install "pydantic-ai-slim[duckduckgo]"`' - ) from _import_error + try: + from ddgs import DDGS + except ImportError: # Fallback for older versions of ddgs + from duckduckgo_search import DDGS + except ImportError as _import_error: + raise ImportError( + 'Please install `ddgs` to use the DuckDuckGo search tool, ' + 'you can use the `duckduckgo` optional group — `pip install "pydantic-ai-slim[duckduckgo]"`' + ) from _import_error __all__ = ('duckduckgo_search_tool',) From b4e38dadbebb9584695b2e4854d422899ff991c8 Mon Sep 17 00:00:00 2001 From: Johan Date: Tue, 4 Nov 2025 15:31:54 +0100 Subject: [PATCH 3/6] adress pr comments --- .../pydantic_ai/common_tools/duckduckgo.py | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py b/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py index 5ad63f815f..441b358696 100644 --- a/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py +++ b/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py @@ -2,7 +2,6 @@ import functools from dataclasses import KW_ONLY, dataclass -from typing import TYPE_CHECKING import anyio import anyio.to_thread @@ -11,19 +10,16 @@ from pydantic_ai.tools import Tool -if TYPE_CHECKING: - from ddgs import DDGS -else: +try: try: - try: - from ddgs import DDGS - except ImportError: # Fallback for older versions of ddgs - from duckduckgo_search import DDGS - except ImportError as _import_error: - raise ImportError( - 'Please install `ddgs` to use the DuckDuckGo search tool, ' - 'you can use the `duckduckgo` optional group — `pip install "pydantic-ai-slim[duckduckgo]"`' - ) from _import_error + from ddgs.ddgs import DDGS + except ImportError: # Fallback for older versions of ddgs + from duckduckgo_search import DDGS +except ImportError as _import_error: + raise ImportError( + 'Please install `ddgs` to use the DuckDuckGo search tool, ' + 'you can use the `duckduckgo` optional group — `pip install "pydantic-ai-slim[duckduckgo]"`' + ) from _import_error __all__ = ('duckduckgo_search_tool',) From fca0616cc47a3531ed071903ecf0e6bc9df27b7a Mon Sep 17 00:00:00 2001 From: Johan Date: Tue, 4 Nov 2025 15:32:52 +0100 Subject: [PATCH 4/6] adress pr comments --- pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py b/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py index 441b358696..4954c00de9 100644 --- a/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py +++ b/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py @@ -1,5 +1,4 @@ from __future__ import annotations - import functools from dataclasses import KW_ONLY, dataclass From 65b23d4768fdc01f1600576d2351981c831b2f39 Mon Sep 17 00:00:00 2001 From: Johan Date: Tue, 4 Nov 2025 15:47:04 +0100 Subject: [PATCH 5/6] fix linting --- pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py b/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py index 4954c00de9..441b358696 100644 --- a/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py +++ b/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py @@ -1,4 +1,5 @@ from __future__ import annotations + import functools from dataclasses import KW_ONLY, dataclass From b57368373e1b3129fe5bf4060173c230510b9fb0 Mon Sep 17 00:00:00 2001 From: Johan Date: Wed, 5 Nov 2025 08:19:10 +0100 Subject: [PATCH 6/6] fix linting --- pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py b/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py index 441b358696..fd488ca12a 100644 --- a/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py +++ b/pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py @@ -1,5 +1,3 @@ -from __future__ import annotations - import functools from dataclasses import KW_ONLY, dataclass