chore(api): fix mypy typing issues, remove debugging code

pull/20699/head
QuantumGhost 12 months ago
parent 9e17eb39e2
commit 77ec5f3f68

@ -82,7 +82,6 @@ class WorkflowAppRunner(WorkflowBasedAppRunner):
workflow=workflow, workflow=workflow,
node_id=self.application_generate_entity.single_iteration_run.node_id, node_id=self.application_generate_entity.single_iteration_run.node_id,
user_inputs=self.application_generate_entity.single_iteration_run.inputs, user_inputs=self.application_generate_entity.single_iteration_run.inputs,
variable_loader=self._var_loader,
) )
elif self.application_generate_entity.single_loop_run: elif self.application_generate_entity.single_loop_run:
# if only single loop run is requested # if only single loop run is requested

@ -1,4 +1,4 @@
from collections.abc import Mapping from collections.abc import Mapping, MutableMapping
from enum import StrEnum from enum import StrEnum
from typing import Any, Optional from typing import Any, Optional
@ -43,7 +43,7 @@ class NodeRunResult(BaseModel):
inputs: Optional[Mapping[str, Any]] = None # node inputs inputs: Optional[Mapping[str, Any]] = None # node inputs
process_data: Optional[Mapping[str, Any]] = None # process data process_data: Optional[Mapping[str, Any]] = None # process data
outputs: Optional[Mapping[str, Any]] = None # node outputs outputs: Optional[Mapping[str, Any]] = None # node outputs
metadata: Optional[Mapping[NodeRunMetadataKey, Any]] = None # node metadata metadata: Optional[MutableMapping[NodeRunMetadataKey, Any]] = None # node metadata
llm_usage: Optional[LLMUsage] = None # llm usage llm_usage: Optional[LLMUsage] = None # llm usage
edge_source_handle: Optional[str] = None # source handle id of node with multiple branches edge_source_handle: Optional[str] = None # source handle id of node with multiple branches

@ -119,9 +119,6 @@ class FileSaverImpl(LLMFileSaver):
size=len(data), size=len(data),
related_id=tool_file.id, related_id=tool_file.id,
url=url, url=url,
# TODO(QuantumGhost): how should I set the following key?
# What's the difference between `remote_url` and `url`?
# What's the purpose of `storage_key` and `dify_model_identity`?
storage_key=tool_file.file_key, storage_key=tool_file.file_key,
) )

@ -478,7 +478,7 @@ class LoopNode(BaseNode[LoopNodeData]):
variable_mapping.update(sub_node_variable_mapping) variable_mapping.update(sub_node_variable_mapping)
for loop_variable in node_data.loop_variables: for loop_variable in node_data.loop_variables or []:
if loop_variable.value_type == "variable": if loop_variable.value_type == "variable":
assert loop_variable.value is not None, "Loop variable value must be provided for variable type" assert loop_variable.value is not None, "Loop variable value must be provided for variable type"
# add loop variable to variable mapping # add loop variable to variable mapping

@ -1,5 +1,5 @@
import abc import abc
from collections.abc import Mapping from collections.abc import Mapping, Sequence
from typing import Any, Protocol from typing import Any, Protocol
from core.variables import Variable from core.variables import Variable
@ -55,7 +55,7 @@ DUMMY_VARIABLE_LOADER = _DummyVariableLoader()
def load_into_variable_pool( def load_into_variable_pool(
variable_loader: VariableLoader, variable_loader: VariableLoader,
variable_pool: VariablePool, variable_pool: VariablePool,
variable_mapping: Mapping[str, list[str]], variable_mapping: Mapping[str, Sequence[str]],
user_inputs: Mapping[str, Any], user_inputs: Mapping[str, Any],
): ):
# Loading missing variable from draft var here, and set it into # Loading missing variable from draft var here, and set it into

@ -1,31 +1,11 @@
"""Utility functions for working with generators.""" """Utility functions for working with generators."""
import logging
from collections.abc import Callable, Generator from collections.abc import Callable, Generator
from inspect import isgenerator
from typing import TypeVar from typing import TypeVar
_YieldT = TypeVar("_YieldT") _YieldT = TypeVar("_YieldT")
_YieldR = TypeVar("_YieldR") _YieldR = TypeVar("_YieldR")
_T = TypeVar("_T")
def inspect(gen_or_normal: _T, logger: logging.Logger) -> _T:
if not isgenerator(gen_or_normal):
return gen_or_normal
def wrapper():
for item in gen_or_normal:
logger.info(
"received generator item, type=%s, value=%s",
type(item),
item,
)
yield item
return wrapper()
def map_( def map_(
gen: Generator[_YieldT, None, None], gen: Generator[_YieldT, None, None],

@ -459,7 +459,6 @@ class WorkflowService:
) -> NodeExecution: ) -> NodeExecution:
try: try:
node_instance, generator = invoke_node_fn() node_instance, generator = invoke_node_fn()
generator = gen_utils.inspect(generator, logging.getLogger(__name__))
node_run_result: NodeRunResult | None = None node_run_result: NodeRunResult | None = None
for event in generator: for event in generator:

Loading…
Cancel
Save