Skip to content

Commit 10ceda4

Browse files
add warning for workflow registry
1 parent 66cb346 commit 10ceda4

1 file changed

Lines changed: 15 additions & 5 deletions

File tree

griptape_nodes_library/engine/subflow_workflow_node.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@
1616
RemoveParameterFromNodeRequest,
1717
SetParameterValueRequest,
1818
)
19+
20+
# Add pyright ignore because this is a new event - we know it does exist
1921
from griptape_nodes.retained_mode.events.workflow_events import (
2022
ImportWorkflowAsReferencedSubFlowRequest,
2123
ImportWorkflowAsReferencedSubFlowResultSuccess,
22-
ListCallableWorkflowsRequest,
23-
ListCallableWorkflowsResultSuccess,
24+
ListCallableWorkflowsRequest, # pyright: ignore[reportAttributeAccessIssue]
25+
ListCallableWorkflowsResultSuccess, # pyright: ignore[reportAttributeAccessIssue]
2426
)
25-
from griptape_nodes.retained_mode.griptape_nodes import GriptapeNodes
27+
from griptape_nodes.retained_mode.griptape_nodes import GriptapeNodes, logger
2628
from griptape_nodes.traits.button import Button, ButtonDetailsMessagePayload
2729
from griptape_nodes.traits.options import Options
2830

@@ -31,8 +33,13 @@ class SubflowWorkflowNode(BaseNode):
3133
def __init__(self, name: str, metadata: dict[Any, Any] | None = None) -> None:
3234
super().__init__(name, metadata)
3335
result = GriptapeNodes.handle_request(ListCallableWorkflowsRequest())
34-
workflow_names = result.workflow_names if isinstance(result, ListCallableWorkflowsResultSuccess) else []
35-
choices = workflow_names if workflow_names else [""]
36+
if isinstance(result, ListCallableWorkflowsResultSuccess):
37+
# Add pyright ignore here becuase we know ListCallableWOrkflowsResultSuccess reutrns workflow_names
38+
workflow_names = result.workflow_names # pyright: ignore[reportAttributeAccessIssue]
39+
choices = workflow_names
40+
else:
41+
workflow_names = []
42+
choices = [""]
3643

3744
# If a workflow was previously selected, restore it as the default.
3845
saved_workflow = self.metadata.get("_workflow_file_value")
@@ -103,6 +110,9 @@ def get_node_dependencies(self) -> NodeDependencies | None:
103110
workflow_name = self.get_parameter_value("workflow_file")
104111
if workflow_name and WorkflowRegistry.has_workflow_with_name(workflow_name):
105112
deps.referenced_workflows.add(workflow_name)
113+
else:
114+
msg = f"Node {self.name} has a dependency on workflow {workflow_name} but it is not in your WorkflowRegistry. Register this workflow for proper dependency bundling."
115+
logger.warning(msg)
106116
return deps
107117

108118
def _reload_subflow(self, workflow_name: str) -> None:

0 commit comments

Comments
 (0)