From 16a11e91af274881a6a272cc35ac15d2b4d7ee46 Mon Sep 17 00:00:00 2001 From: Carson Katri Date: Fri, 9 Dec 2022 15:51:38 -0500 Subject: [PATCH] Handle dict output --- api/tree.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/api/tree.py b/api/tree.py index a85e80d..c9ed29d 100644 --- a/api/tree.py +++ b/api/tree.py @@ -98,12 +98,20 @@ def tree(name): outputs = builder(**builder_inputs) # Create the output sockets - for i, result in enumerate(_as_iterable(outputs)): - if not issubclass(type(result), Type): - result = Type(value=result) - # raise Exception(f"Return value '{result}' is not a valid 'Type' subclass.") - node_group.outputs.new(result.socket_type, 'Result') - link = node_group.links.new(result._socket, group_output_node.inputs[i]) + if isinstance(outputs, dict): + # Use a dict to name each return value + for i, (k, v) in enumerate(outputs.items()): + if not issubclass(type(v), Type): + v = Type(value=v) + node_group.outputs.new(v.socket_type, k) + node_group.links.new(v._socket, group_output_node.inputs[i]) + else: + for i, result in enumerate(_as_iterable(outputs)): + if not issubclass(type(result), Type): + result = Type(value=result) + # raise Exception(f"Return value '{result}' is not a valid 'Type' subclass.") + node_group.outputs.new(result.socket_type, 'Result') + node_group.links.new(result._socket, group_output_node.inputs[i]) _arrange(node_group)