Skip to content
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 15 additions & 9 deletions pydantic_ai_slim/pydantic_ai/common_tools/duckduckgo.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
from __future__ import annotations

import functools
from dataclasses import KW_ONLY, dataclass
from typing import TYPE_CHECKING

import anyio
import anyio.to_thread
Expand All @@ -8,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',)

Expand Down
Loading