From c1d3cd0a9b536531fef82570f85994b23b469b1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Jan=C3=9Fen?= Date: Sun, 8 Feb 2026 20:42:27 +0100 Subject: [PATCH 1/4] Fix the order of nodes for pyiron_base --- src/python_workflow_definition/pyiron_base.py | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/python_workflow_definition/pyiron_base.py b/src/python_workflow_definition/pyiron_base.py index d60d345..cfc1d1b 100644 --- a/src/python_workflow_definition/pyiron_base.py +++ b/src/python_workflow_definition/pyiron_base.py @@ -285,26 +285,39 @@ def write_workflow_json( ) nodes_store_lst = [] - for k, v in nodes_new_dict.items(): + translate_dict = {} + for i, k in enumerate(nodes_new_dict.keys()): + v = nodes_new_dict[v] + translate_dict[k] = i if isfunction(v): mod = v.__module__ if mod == "python_workflow_definition.pyiron_base": mod = "python_workflow_definition.shared" nodes_store_lst.append( - {"id": k, "type": "function", "value": mod + "." + v.__name__} + {"id": i, "type": "function", "value": mod + "." + v.__name__} ) elif isinstance(v, np.ndarray): - nodes_store_lst.append({"id": k, "type": "input", "value": v.tolist()}) + nodes_store_lst.append({"id": i, "type": "input", "value": v.tolist()}) else: - nodes_store_lst.append({"id": k, "type": "input", "value": v}) - + nodes_store_lst.append({"id": i, "type": "input", "value": v}) + + edges_store_lst = [ + { + TARGET_LABEL: translate_dict[edge[TARGET_LABEL]], + TARGET_PORT_LABEL: edge[TARGET_PORT_LABEL], + SOURCE_LABEL: translate_dict[edge[SOURCE_LABEL]], + SOURCE_PORT_LABEL: edge[SOURCE_PORT_LABEL], + } + for edge in edges_new_lst + ] + PythonWorkflowDefinitionWorkflow( **set_result_node( workflow_dict=update_node_names( workflow_dict={ VERSION_LABEL: VERSION_NUMBER, NODES_LABEL: nodes_store_lst, - EDGES_LABEL: edges_new_lst, + EDGES_LABEL: edges_store_lst, } ) ) From c2fedc1e9b70923dc5c16eb05f8759e52f8a97b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Jan=C3=9Fen?= Date: Sun, 8 Feb 2026 20:45:25 +0100 Subject: [PATCH 2/4] black fixes --- src/python_workflow_definition/pyiron_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/python_workflow_definition/pyiron_base.py b/src/python_workflow_definition/pyiron_base.py index cfc1d1b..7ee7f80 100644 --- a/src/python_workflow_definition/pyiron_base.py +++ b/src/python_workflow_definition/pyiron_base.py @@ -310,7 +310,7 @@ def write_workflow_json( } for edge in edges_new_lst ] - + PythonWorkflowDefinitionWorkflow( **set_result_node( workflow_dict=update_node_names( From 18b0e8b6be90fe9d3a7875263c2936f4181c03bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Jan=C3=9Fen?= Date: Sun, 8 Feb 2026 20:47:07 +0100 Subject: [PATCH 3/4] load object --- src/python_workflow_definition/pyiron_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/python_workflow_definition/pyiron_base.py b/src/python_workflow_definition/pyiron_base.py index 7ee7f80..cc5aacf 100644 --- a/src/python_workflow_definition/pyiron_base.py +++ b/src/python_workflow_definition/pyiron_base.py @@ -287,7 +287,7 @@ def write_workflow_json( nodes_store_lst = [] translate_dict = {} for i, k in enumerate(nodes_new_dict.keys()): - v = nodes_new_dict[v] + v = nodes_new_dict[k] translate_dict[k] = i if isfunction(v): mod = v.__module__ From d0c4e446cf9dca55b89e0a74d92fa108ba6ced08 Mon Sep 17 00:00:00 2001 From: jan-janssen Date: Sun, 8 Feb 2026 21:18:33 +0100 Subject: [PATCH 4/4] invert order --- src/python_workflow_definition/pyiron_base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/python_workflow_definition/pyiron_base.py b/src/python_workflow_definition/pyiron_base.py index cc5aacf..a362fea 100644 --- a/src/python_workflow_definition/pyiron_base.py +++ b/src/python_workflow_definition/pyiron_base.py @@ -286,7 +286,7 @@ def write_workflow_json( nodes_store_lst = [] translate_dict = {} - for i, k in enumerate(nodes_new_dict.keys()): + for i, k in enumerate(list(nodes_new_dict.keys())[::-1]): v = nodes_new_dict[k] translate_dict[k] = i if isfunction(v): @@ -301,6 +301,7 @@ def write_workflow_json( else: nodes_store_lst.append({"id": i, "type": "input", "value": v}) + print(translate_dict) edges_store_lst = [ { TARGET_LABEL: translate_dict[edge[TARGET_LABEL]],