o
    i                     @  s   d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 ddlmZmZ ddlmZ d	d
lmZmZ ee dZG dd dee Ze
dG dd deZdS )    )annotations)replace)Any)SchemaValidatorcore_schema)
deprecated   )
AgentDepsT
RunContext)ToolDefinition   )AbstractToolsetToolsetTool)schemac                   @  sT   e Zd ZU dZded< ded< dddd	d
ZedddZdddZdddZ	dS ) ExternalToolsetzA toolset that holds tools whose results will be produced outside of the Pydantic AI agent run in which they were called.

    See [toolset docs](../toolsets.md#external-toolset) for more information.
    list[ToolDefinition]	tool_defs
str | None_idN)idr   c                C  s   || _ || _d S N)r   r   )selfr   r    r   c/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/pydantic_ai/toolsets/external.py__init__   s   
zExternalToolset.__init__returnc                 C  s   | j S r   )r   r   r   r   r   r      s   zExternalToolset.idctxRunContext[AgentDepsT]"dict[str, ToolsetTool[AgentDepsT]]c                   s    fdd j D S )Nc              	     s(   i | ]}|j t t|d ddtdqS )external)kindr   )toolsettool_defmax_retriesargs_validator)namer   r   TOOL_SCHEMA_VALIDATOR).0r#   r   r   r   
<dictcomp>"   s    
z-ExternalToolset.get_tools.<locals>.<dictcomp>)r   )r   r   r   r   r   	get_tools!   s   
zExternalToolset.get_toolsr&   str	tool_argsdict[str, Any]toolToolsetTool[AgentDepsT]r   c                   s
   t d)Nz(External tools cannot be called directly)NotImplementedError)r   r&   r,   r   r.   r   r   r   	call_tool,   s   zExternalToolset.call_tool)r   r   r   r   )r   r   )r   r   r   r   )
r&   r+   r,   r-   r   r   r.   r/   r   r   )
__name__
__module____qualname____doc____annotations__r   propertyr   r*   r1   r   r   r   r   r      s   
 
r   z>`DeferredToolset` is deprecated, use `ExternalToolset` insteadc                   @  s   e Zd ZdZdS )DeferredToolsetz'Deprecated alias for `ExternalToolset`.N)r2   r3   r4   r5   r   r   r   r   r8   2   s    r8   N)
__future__r   dataclassesr   typingr   pydantic_corer   r   typing_extensionsr   _run_contextr	   r
   toolsr   abstractr   r   
any_schemar'   r   r8   r   r   r   r   <module>   s    "