From 84533cbfe05138eee8a271e3bf7402b292d0194a Mon Sep 17 00:00:00 2001 From: Tyson Cung <45380903+tysoncung@users.noreply.github.com> Date: Tue, 24 Feb 2026 16:29:17 +0800 Subject: [PATCH] fix: resolve pyright bad-index errors in parser.py (#32507) --- api/core/tools/utils/parser.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/api/core/tools/utils/parser.py b/api/core/tools/utils/parser.py index 584975de05..67079665e6 100644 --- a/api/core/tools/utils/parser.py +++ b/api/core/tools/utils/parser.py @@ -2,7 +2,7 @@ import re from json import dumps as json_dumps from json import loads as json_loads from json.decoder import JSONDecodeError -from typing import Any +from typing import Any, TypedDict import httpx from flask import request @@ -14,6 +14,12 @@ from core.tools.entities.tool_entities import ApiProviderSchemaType, ToolParamet from core.tools.errors import ToolApiSchemaError, ToolNotSupportedError, ToolProviderNotFoundError +class _OpenAPIInterface(TypedDict): + path: str + method: str + operation: dict[str, Any] + + class ApiBasedToolSchemaParser: @staticmethod def parse_openapi_to_tool_bundle( @@ -35,17 +41,17 @@ class ApiBasedToolSchemaParser: server_url = matched_servers[0] if matched_servers else server_url # list all interfaces - interfaces = [] + interfaces: list[_OpenAPIInterface] = [] for path, path_item in openapi["paths"].items(): methods = ["get", "post", "put", "delete", "patch", "head", "options", "trace"] for method in methods: if method in path_item: interfaces.append( - { - "path": path, - "method": method, - "operation": path_item[method], - } + _OpenAPIInterface( + path=path, + method=method, + operation=path_item[method], + ) ) # get all parameters