Skip to content

Commit cedeb8e

Browse files
committed
Small fixes
1 parent 64b61d1 commit cedeb8e

File tree

3 files changed

+9
-12
lines changed

3 files changed

+9
-12
lines changed

pydantic_ai_slim/pydantic_ai/agent/__init__.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
capture_run_messages,
3838
)
3939
from .._json_schema import JsonSchema
40-
from .._output import OutputToolset
40+
from .._output import OutputToolset, _flatten_output_spec # pyright: ignore[reportPrivateUsage]
4141
from .._tool_manager import ToolManager
4242
from ..builtin_tools import AbstractBuiltinTool
4343
from ..models.instrumented import InstrumentationSettings, InstrumentedModel, instrument_model
@@ -958,35 +958,32 @@ def decorator(
958958
self._system_prompt_functions.append(_system_prompt.SystemPromptRunner[AgentDepsT](func, dynamic=dynamic))
959959
return func
960960

961-
def output_json_schema(self, output_type: OutputSpec[OutputDataT] | None = None) -> JsonSchema:
961+
def output_json_schema(self, output_type: OutputSpec[OutputDataT | RunOutputDataT] | None = None) -> JsonSchema:
962962
"""The output JSON schema."""
963963
if output_type is None:
964964
output_type = self.output_type
965965

966966
# call this first to force output_type to an iterable
967-
output_type = list(_output._flatten_output_spec(output_type))
967+
output_type = list(_flatten_output_spec(output_type))
968968

969969
# flatten special outputs
970970
for i, _ in enumerate(output_type):
971971
if isinstance(_, _output.NativeOutput):
972-
output_type[i] = _output._flatten_output_spec(_.outputs)
972+
output_type[i] = _flatten_output_spec(_.outputs)
973973
if isinstance(_, _output.PromptedOutput):
974-
output_type[i] = _output._flatten_output_spec(_.outputs)
974+
output_type[i] = _flatten_output_spec(_.outputs)
975975
if isinstance(_, _output.ToolOutput):
976-
output_type[i] = _output._flatten_output_spec(_.output)
976+
output_type[i] = _flatten_output_spec(_.output)
977977

978978
# final flattening
979-
output_type = _output._flatten_output_spec(output_type)
979+
output_type = _flatten_output_spec(output_type)
980980

981981
json_schemas: list[JsonSchema] = []
982982
for _ in output_type:
983983
if inspect.isfunction(_) or inspect.ismethod(_):
984984
function_schema = _function_schema.function_schema(_, GenerateToolJsonSchema)
985985
json_schema = function_schema.json_schema
986986
json_schema['description'] = function_schema.description
987-
elif isinstance(_, _messages.BinaryImage):
988-
json_schema = TypeAdapter(_).json_schema(mode='serialization')
989-
json_schema = {k: v for k, v in json_schema['properties'].items() if k in ['data', 'media_type']}
990987
else:
991988
json_schema = TypeAdapter(_).json_schema(mode='serialization')
992989

pydantic_ai_slim/pydantic_ai/agent/abstract.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ def toolsets(self) -> Sequence[AbstractToolset[AgentDepsT]]:
124124
raise NotImplementedError
125125

126126
@abstractmethod
127-
def output_json_schema(self, output_type: OutputSpec[OutputDataT] | None = None) -> JsonSchema:
127+
def output_json_schema(self, output_type: OutputSpec[OutputDataT | RunOutputDataT] | None = None) -> JsonSchema:
128128
"""The output JSON schema."""
129129
raise NotImplementedError
130130

pydantic_ai_slim/pydantic_ai/agent/wrapper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ async def __aenter__(self) -> AbstractAgent[AgentDepsT, OutputDataT]:
6868
async def __aexit__(self, *args: Any) -> bool | None:
6969
return await self.wrapped.__aexit__(*args)
7070

71-
def output_json_schema(self, output_type: OutputSpec[OutputDataT] | None = None) -> JsonSchema:
71+
def output_json_schema(self, output_type: OutputSpec[OutputDataT | RunOutputDataT] | None = None) -> JsonSchema:
7272
return self.wrapped.output_json_schema(output_type=output_type)
7373

7474
@overload

0 commit comments

Comments
 (0)