fix(fastmcp): handle strings containing numbers correctly

This is a port of https://github.com/jlowin/fastmcp/pull/63 to this repo
- I guess the transition was made before this PR was merged into
fastmcp, so it wasn't included here.

See https://github.com/jlowin/fastmcp/issues/62 for the initial bug
report.
This commit is contained in:
Ben Sully 2025-01-08 17:17:45 +00:00
commit 5abe811337
No known key found for this signature in database

View file

@ -176,6 +176,21 @@ def test_str_vs_list_str():
assert result["str_or_list"] == ["hello", "world"]
def test_str_vs_int():
"""
Test that string values are kept as strings even when they contain numbers,
while numbers are parsed correctly.
"""
def func_with_str_and_int(a: str, b: int):
return a
meta = func_metadata(func_with_str_and_int)
result = meta.pre_parse_json({"a": "123", "b": 123})
assert result["a"] == "123"
assert result["b"] == 123
def test_skip_names():
"""Test that skipped parameters are not included in the model"""