Skip to content

Commit 6d2806f

Browse files
authored
Fix function_schema name override bug (#872)
## Summary - ensure `name_override` is always used in `function_schema` - test name override when docstring info is disabled ## Testing - `make format` - `make lint` - `make mypy` - `make tests` Resolves #860 ------ https://chatgpt.com/codex/tasks/task_i_684f1cf885b08321b4dd3f4294e24ca2
1 parent 0eee6b8 commit 6d2806f

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

src/agents/function_schema.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,8 @@ def function_schema(
223223
doc_info = None
224224
param_descs = {}
225225

226-
func_name = name_override or doc_info.name if doc_info else func.__name__
226+
# Ensure name_override takes precedence even if docstring info is disabled.
227+
func_name = name_override or (doc_info.name if doc_info else func.__name__)
227228

228229
# 2. Inspect function signature and get type hints
229230
sig = inspect.signature(func)

tests/test_function_schema.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,3 +439,15 @@ def func_with_mapping(test_one: Mapping[str, int]) -> str:
439439

440440
with pytest.raises(UserError):
441441
function_schema(func_with_mapping)
442+
443+
444+
def test_name_override_without_docstring() -> None:
445+
"""name_override should be used even when not parsing docstrings."""
446+
447+
def foo(x: int) -> int:
448+
return x
449+
450+
fs = function_schema(foo, use_docstring_info=False, name_override="custom")
451+
452+
assert fs.name == "custom"
453+
assert fs.params_json_schema.get("title") == "custom_args"

0 commit comments

Comments
 (0)