(
*,
input_tools: Iterable[ToolParam] | Omit | None,
function_call: ParsedResponseFunctionToolCall | ResponseFunctionToolCall,
)
| 164 | |
| 165 | |
| 166 | def parse_function_tool_arguments( |
| 167 | *, |
| 168 | input_tools: Iterable[ToolParam] | Omit | None, |
| 169 | function_call: ParsedResponseFunctionToolCall | ResponseFunctionToolCall, |
| 170 | ) -> object: |
| 171 | if input_tools is None or not is_given(input_tools): |
| 172 | return None |
| 173 | |
| 174 | input_tool = get_input_tool_by_name(input_tools=input_tools, name=function_call.name) |
| 175 | if not input_tool: |
| 176 | return None |
| 177 | |
| 178 | tool = cast(object, input_tool) |
| 179 | if isinstance(tool, ResponsesPydanticFunctionTool): |
| 180 | return model_parse_json(tool.model, function_call.arguments) |
| 181 | |
| 182 | if not input_tool.get("strict"): |
| 183 | return None |
| 184 | |
| 185 | return json.loads(function_call.arguments) |
no test coverage detected