mirror of
https://github.com/aljazceru/mcp-python-sdk.git
synced 2025-12-24 01:04:20 +01:00
replace inefficient use of to_jsonable_python (#545)
This commit is contained in:
@@ -9,7 +9,7 @@ from typing import Any
|
||||
import anyio
|
||||
import anyio.to_thread
|
||||
import httpx
|
||||
import pydantic.json
|
||||
import pydantic
|
||||
import pydantic_core
|
||||
from pydantic import Field, ValidationInfo
|
||||
|
||||
@@ -59,15 +59,12 @@ class FunctionResource(Resource):
|
||||
)
|
||||
if isinstance(result, Resource):
|
||||
return await result.read()
|
||||
if isinstance(result, bytes):
|
||||
elif isinstance(result, bytes):
|
||||
return result
|
||||
if isinstance(result, str):
|
||||
elif isinstance(result, str):
|
||||
return result
|
||||
try:
|
||||
return json.dumps(pydantic_core.to_jsonable_python(result))
|
||||
except (TypeError, pydantic_core.PydanticSerializationError):
|
||||
# If JSON serialization fails, try str()
|
||||
return str(result)
|
||||
else:
|
||||
return pydantic_core.to_json(result, fallback=str, indent=2).decode()
|
||||
except Exception as e:
|
||||
raise ValueError(f"Error reading resource {self.uri}: {e}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user