From 76fb1b6ea81660475cfb32164823db6b47060397 Mon Sep 17 00:00:00 2001 From: Evan <2869018789@qq.com> Date: Sat, 6 Jun 2026 10:39:07 +0800 Subject: [PATCH] refactor(api): remove redundant typing.cast calls (#37124) --- api/core/workflow/generator/runner.py | 2 +- api/core/workflow/nodes/agent_v2/plugin_tools_builder.py | 4 ++-- api/enterprise/telemetry/enterprise_trace.py | 2 +- api/models/dataset.py | 2 +- api/models/model.py | 8 ++++---- api/models/workflow.py | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/api/core/workflow/generator/runner.py b/api/core/workflow/generator/runner.py index 1b5468b3dd..ed7411eb8d 100644 --- a/api/core/workflow/generator/runner.py +++ b/api/core/workflow/generator/runner.py @@ -434,7 +434,7 @@ class WorkflowGenerator: if isinstance(parsed, dict): if attempt > 0: logger.info("Workflow generator: %s JSON parse recovered on retry", stage) - return cast(dict[str, Any], parsed) + return parsed last_detail = f"Non-object JSON: {type(parsed).__name__}" logger.info("Workflow generator: %s non-object JSON on attempt %s", stage, attempt + 1) raise _StageJSONError(stage, last_detail or "JSON parse failed") diff --git a/api/core/workflow/nodes/agent_v2/plugin_tools_builder.py b/api/core/workflow/nodes/agent_v2/plugin_tools_builder.py index 0dd98f65ed..09defaf2d5 100644 --- a/api/core/workflow/nodes/agent_v2/plugin_tools_builder.py +++ b/api/core/workflow/nodes/agent_v2/plugin_tools_builder.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, Protocol, cast +from typing import Any, Protocol from dify_agent.layers.dify_plugin import ( DifyPluginCredentialValue, @@ -197,7 +197,7 @@ class WorkflowAgentPluginToolsBuilder: credentials=self._normalize_credentials(runtime.credentials, tool_name=tool_config.tool_name), runtime_parameters=runtime_parameters, parameters=parameters, - parameters_json_schema=cast(dict[str, Any], tool_runtime.get_llm_parameters_json_schema()), + parameters_json_schema=tool_runtime.get_llm_parameters_json_schema(), ) @staticmethod diff --git a/api/enterprise/telemetry/enterprise_trace.py b/api/enterprise/telemetry/enterprise_trace.py index 25c1a96dc1..92ecc99857 100644 --- a/api/enterprise/telemetry/enterprise_trace.py +++ b/api/enterprise/telemetry/enterprise_trace.py @@ -720,7 +720,7 @@ class EnterpriseOtelTrace: docs: list[dict[str, Any]] = [] documents_any: Any = info.documents - documents_list: list[Any] = cast(list[Any], documents_any) if isinstance(documents_any, list) else [] + documents_list: list[Any] = documents_any if isinstance(documents_any, list) else [] for entry in documents_list: if isinstance(entry, dict): entry_dict: dict[str, Any] = cast(dict[str, Any], entry) diff --git a/api/models/dataset.py b/api/models/dataset.py index 5c7a58d53f..007d24728f 100644 --- a/api/models/dataset.py +++ b/api/models/dataset.py @@ -1226,7 +1226,7 @@ class DatasetKeywordTable(TypeBase): items = cast(dict[str, Any], dct).items() for keyword, node_idxs in items: if isinstance(node_idxs, list): - result[keyword] = set(cast(list[Any], node_idxs)) + result[keyword] = set(node_idxs) else: result[keyword] = node_idxs return result diff --git a/api/models/model.py b/api/models/model.py index b84a06bf69..d20089e49a 100644 --- a/api/models/model.py +++ b/api/models/model.py @@ -1153,7 +1153,7 @@ class Conversation(Base): tenant_resolver=tenant_resolver, ) elif isinstance(value, list): - value_list = cast(list[Any], value) + value_list = value if all( isinstance(item, dict) and cast(dict[str, Any], item).get("dify_model_identity") == FILE_MODEL_IDENTITY @@ -1181,7 +1181,7 @@ class Conversation(Base): if isinstance(v, File): inputs[k] = v.model_dump() elif isinstance(v, list): - v_list = cast(list[Any], v) + v_list = v if all(isinstance(item, File) for item in v_list): inputs[k] = [item.model_dump() for item in v_list if isinstance(item, File)] self._inputs = inputs @@ -1495,7 +1495,7 @@ class Message(Base): tenant_resolver=tenant_resolver, ) elif isinstance(value, list): - value_list = cast(list[Any], value) + value_list = value if all( isinstance(item, dict) and cast(dict[str, Any], item).get("dify_model_identity") == FILE_MODEL_IDENTITY @@ -1522,7 +1522,7 @@ class Message(Base): if isinstance(v, File): inputs[k] = v.model_dump() elif isinstance(v, list): - v_list = cast(list[Any], v) + v_list = v if all(isinstance(item, File) for item in v_list): inputs[k] = [item.model_dump() for item in v_list if isinstance(item, File)] self._inputs = inputs diff --git a/api/models/workflow.py b/api/models/workflow.py index f1a4e13414..16daafe785 100644 --- a/api/models/workflow.py +++ b/api/models/workflow.py @@ -1688,7 +1688,7 @@ class WorkflowDraftVariable(Base): tenant_id=tenant_id, ) case list() if value: - value_list = cast(list[Any], value) + value_list = value first: Any = value_list[0] if not maybe_file_object(first): return cast(Any, value) @@ -1742,7 +1742,7 @@ class WorkflowDraftVariable(Base): normalized_file.pop("tenant_id", None) return build_file_from_mapping_without_lookup(file_mapping=normalized_file) case list() if value: - value_list = cast(list[Any], value) + value_list = value first: Any = value_list[0] if not maybe_file_object(first): return cast(Any, value)