Skip to content

Commit 2ff5117

Browse files
committed
Support python 3.9 for thee -- not for me
1 parent 6770ee4 commit 2ff5117

File tree

3 files changed

+23
-8
lines changed

3 files changed

+23
-8
lines changed

pydantic_ai_slim/pydantic_ai/agent.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1652,12 +1652,9 @@ def toolset(
16521652
agent = Agent('test', deps_type=str)
16531653
16541654
@agent.toolset
1655-
def simple_toolset(ctx: RunContext[str]) -> AbstractToolset[str]:
1656-
return FunctionToolset(foobar)
1655+
async def simple_toolset(ctx: RunContext[str]) -> AbstractToolset[str]:
1656+
return FunctionToolset()
16571657
1658-
@agent.toolset
1659-
async def async_toolset(ctx: RunContext[str]) -> AbstractToolset[str]:
1660-
return FunctionToolset(foobar)
16611658
```
16621659
"""
16631660
if func is None:

pydantic_ai_slim/pydantic_ai/toolsets/abstract.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
from abc import ABC, abstractmethod
44
from dataclasses import dataclass
5-
from typing import TYPE_CHECKING, Any, Callable, Generic, Literal, Protocol, TypeAlias
5+
from typing import TYPE_CHECKING, Any, Callable, Generic, Literal, Protocol
66

77
from pydantic_core import SchemaValidator
8-
from typing_extensions import Self
8+
from typing_extensions import Self, TypeAlias
99

1010
from .._run_context import AgentDepsT, RunContext
1111
from ..tools import ToolDefinition, ToolsPrepareFunc

tests/test_agent.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3702,7 +3702,7 @@ def bar() -> str:
37023702
assert result.output == snapshot('{"baz":"Hello from baz"}')
37033703

37043704

3705-
def test_toolset_decorator():
3705+
def test_toolset_factory():
37063706
toolset = FunctionToolset()
37073707

37083708
@toolset.tool
@@ -3739,6 +3739,24 @@ def respond(messages: list[ModelMessage], info: AgentInfo) -> ModelResponse:
37393739
assert len(available_tools) == 1
37403740
assert toolset_creation_count == 1
37413741

3742+
def test_toolset_decorator():
3743+
toolset = FunctionToolset()
3744+
3745+
@toolset.tool
3746+
def foo() -> str:
3747+
return 'Hello from foo'
3748+
3749+
3750+
agent = Agent('test')
3751+
3752+
@agent.toolset
3753+
def create_function_toolset(ctx: RunContext[None]) -> AbstractToolset[None]:
3754+
return toolset
3755+
3756+
agent_toolset_functions = agent._toolset_functions # pyright: ignore[reportPrivateUsage]
3757+
3758+
assert len(agent_toolset_functions) == 1
3759+
assert agent_toolset_functions[0] is create_function_toolset
37423760

37433761
def test_adding_tools_during_run():
37443762
toolset = FunctionToolset()

0 commit comments

Comments
 (0)