chore: clean some isinstance (#37602)

Co-authored-by: WH-2099 <wh2099@pm.me>
This commit is contained in:
Asuka Minato
2026-06-22 03:51:21 +00:00
committed by GitHub
co-authored by WH-2099
parent 265dc54c51
commit d5cdb2e6f1
3 changed files with 38 additions and 36 deletions
+22 -22
View File
@@ -14,6 +14,7 @@ from concurrent.futures import ThreadPoolExecutor
from contextlib import contextmanager
from dataclasses import dataclass
from datetime import timedelta
from http import HTTPStatus
from typing import Any, cast
import httpx
@@ -293,28 +294,27 @@ class StreamableHTTPTransport:
json=message.model_dump(by_alias=True, mode="json", exclude_none=True),
headers=headers,
) as response:
if response.status_code == 202:
logger.debug("Received 202 Accepted")
return
if response.status_code == 204:
logger.debug("Received 204 No Content")
return
if response.status_code == 404:
if isinstance(message.root, JSONRPCRequest):
error_msg = (
f"MCP server URL returned 404 Not Found: {self.url} "
"— verify the server URL is correct and the server is running"
if is_initialization
else "Session terminated by server"
)
self._send_session_terminated_error(
ctx.server_to_client_queue,
message.root.id,
message=error_msg,
)
return
match response.status_code:
case HTTPStatus.ACCEPTED:
logger.debug("Received 202 Accepted")
return
case HTTPStatus.NO_CONTENT:
logger.debug("Received 204 No Content")
return
case HTTPStatus.NOT_FOUND:
if isinstance(message.root, JSONRPCRequest):
error_msg = (
f"MCP server URL returned 404 Not Found: {self.url} "
"— verify the server URL is correct and the server is running"
if is_initialization
else "Session terminated by server"
)
self._send_session_terminated_error(
ctx.server_to_client_queue,
message.root.id,
message=error_msg,
)
return
response.raise_for_status()
if is_initialization:
+9 -8
View File
@@ -359,15 +359,16 @@ class ApiTool(Tool):
if value is None:
return None
elif property["type"] == "object" or property["type"] == "array":
if isinstance(value, str):
try:
return json.loads(value)
except ValueError:
match value:
case str():
try:
return json.loads(value)
except ValueError:
return value
case dict():
return value
case _:
return value
elif isinstance(value, dict):
return value
else:
return value
else:
raise ValueError(f"Invalid type {property['type']} for property {property}")
elif "anyOf" in property and isinstance(property["anyOf"], list):