ó
    ±"³j®  ã                  ó¾   • S SK Jr  S SKJrJr  S SKJr  S SKJrJ	r	  S SK
Jr  S SKJrJr  S SKJrJrJr  S SKJr  S	S
KJr  \	S   r \" SS9 " S S\\   5      5       rg)é    )Úannotations)Ú	AwaitableÚCallable)Ú	dataclass)ÚAnyÚLiteral)Ú	UserError)ÚWebSearchToolÚWebSearchUserLocation)Ú
AgentDepsTÚ
RunContextÚTool)ÚAbstractToolseté   )ÚNativeOrLocalToolÚ
duckduckgoF)Úinitc                  óî   • \ rS rSr% SrS\S'    S\S'    S\S'    S\S	'    S
\S'    S\S'    SrS\S'    SSSSSSSSSSSS.                       SS jjrSS jrSS jr	SS jr
SS jrSrg) Ú	WebSearché   u�  Web search capability.

Uses the model's native web search and raises `UserError` on models that
don't support it natively. Pass `local='duckduckgo'` (or `local=True`) to opt into a
local DuckDuckGo fallback â€” requires the `duckduckgo` optional group:

```bash
pip install "pydantic-ai-slim[duckduckgo]"
```

`local=` also accepts any callable, `Tool`, or `AbstractToolset` for a custom fallback.
ú'Literal['low', 'medium', 'high'] | NoneÚsearch_context_sizeúWebSearchUserLocation | NoneÚuser_locationúlist[str] | NoneÚblocked_domainsÚallowed_domainsú
int | NoneÚmax_usesúbool | NoneÚexternal_web_accessÚ
web_searchú
str | NoneÚidTNF)ÚnativeÚlocalr   r   r   r   r   r!   r$   Údefer_loadingÚdescriptionc               ó¨   • X�l         X°l        X l        Xl        X l        X0l        X@l        XPl        X`l        Xpl	        X€l
        U R                  5         g ©N)r$   r(   r'   r%   r&   r   r   r   r   r   r!   Ú__post_init__)Úselfr%   r&   r   r   r   r   r   r!   r$   r'   r(   s               Ú`/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pydantic_ai/capabilities/web_search.pyÚ__init__ÚWebSearch.__init__:   sN   € ð" ŒØ&ÔØ*ÔØŒØŒ
Ø#6Ô Ø*ÔØ.ÔØ.ÔØ ŒØ#6Ô Ø×ÑÕó    c                ól  • 0 nU R                   b  U R                   US'   U R                  b  U R                  US'   U R                  b  U R                  US'   U R                  b  U R                  US'   U R                  b  U R                  US'   U R
                  b  U R
                  US'   [        S0 UD6$ )Nr   r   r   r   r   r!   © )r   r   r   r   r   r!   r
   )r,   Úkwargss     r-   Ú_default_nativeÚWebSearch._default_nativeX   s½   € Ø!#ˆØ×#Ñ#Ñ/Ø,0×,DÑ,DˆFÐ(Ñ)Ø×ÑÑ)Ø&*×&8Ñ&8ˆF�?Ñ#Ø×ÑÑ+Ø(,×(<Ñ(<ˆFÐ$Ñ%Ø×ÑÑ+Ø(,×(<Ñ(<ˆFÐ$Ñ%Ø�=‰=Ñ$Ø!%§¡ˆF�:ÑØ×#Ñ#Ñ/Ø,0×,DÑ,DˆFÐ(Ñ)ÜÑ&˜vÑ&Ð&r0   c                ó"   • [         R                  $ r*   )r
   Úkind©r,   s    r-   Ú_native_unique_idÚWebSearch._native_unique_idh   s   € Ü×!Ñ!Ð!r0   c                ó˜   • USL a  SOUnUS:X  a   SSK Jn  U" 5       $ [        SU< S35      e! [         a  n[        S5      UeS nAff = f)NTr   r   )Úduckduckgo_search_toolux   WebSearch(local='duckduckgo') requires the `duckduckgo` optional group â€” `pip install "pydantic-ai-slim[duckduckgo]"`.zWebSearch(local=zg) is not a known strategy. Supported: 'duckduckgo' (or `local=True`). Or pass a Tool/callable directly.)Ú#pydantic_ai.common_tools.duckduckgor<   ÚImportErrorr	   )r,   ÚnameÚstrategyr<   Úes        r-   Ú_resolve_local_strategyÚ!WebSearch._resolve_local_strategyk   st   € à#'¨4¢<‘<°TˆØ�|Ó#ðÝVñ *Ó+Ð+ÜØ˜t™hð '[ð [ó
ð 	
øô ó ÜðDóð ðûðús   ‘. ®
A	¸AÁA	c                óœ   • U R                   S L=(       d8    U R                  S L=(       d#    U R                  S L=(       d    U R                  SL $ )NF)r   r   r   r!   r8   s    r-   Ú_requires_nativeÚWebSearch._requires_native|   sN   € à× Ñ ¨Ð,÷ 1Ø×#Ñ#¨4Ð/÷1à�}‰} DÐ(÷1ð ×'Ñ'¨5Ð0ð		
r0   )r   r   r'   r(   r!   r$   r&   r   r%   r   r   )r%   zqWebSearchTool | Callable[[RunContext[AgentDepsT]], Awaitable[WebSearchTool | None] | WebSearchTool | None] | boolr&   zLWebSearchLocalStrategy | Tool[AgentDepsT] | Callable[..., Any] | bool | Noner   r   r   r   r   r   r   r   r   r   r!   r    r$   r#   r'   Úboolr(   r#   ÚreturnÚNone)rH   r
   )rH   Ústr)r?   z
str | boolrH   z.Tool[AgentDepsT] | AbstractToolset[AgentDepsT])rH   rG   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r$   r.   r4   r9   rB   rE   Ú__static_attributes__r2   r0   r-   r   r      s  ‡ ñð AÓ@Øcà/Ó/Ø^à%Ó%ØCà%Ó%ØKàÓØJà$Ó$Ø_à!€Bˆ
Ó!ðð Ø^bØGKØ6:Ø,0Ø,0Ø#Ø+/Ø%Ø#Ø"&ñððð \ðð Eðð 4ðð *ðð *ðð ðð )ðð ðð ðð  ðð  
õ!ô<'ô "ô
÷"
r0   r   N)Ú
__future__r   Úcollections.abcr   r   Údataclassesr   Útypingr   r   Úpydantic_ai.exceptionsr	   Úpydantic_ai.native_toolsr
   r   Úpydantic_ai.toolsr   r   r   Úpydantic_ai.toolsetsr   Únative_or_localr   ÚWebSearchLocalStrategyr   r2   r0   r-   Ú<module>r\      sZ   ðÝ "ç /Ý !ß å ,ß Iß :Ñ :Ý 0å .à  Ñ.Ð Ø dñ �Ñôo
Ð! *Ñ-ó o
ó ño
r0   