diff --git a/README.md b/README.md index a5c01fe..78e0c1d 100644 --- a/README.md +++ b/README.md @@ -42,15 +42,15 @@ JSON file: "5": 2 }, "edges": [ - {"target": 0, "targetHandle": "x", "source": 1, "sourceHandle": "x"}, - {"target": 1, "targetHandle": "x", "source": 4, "sourceHandle": null}, - {"target": 1, "targetHandle": "y", "source": 5, "sourceHandle": null}, - {"target": 0, "targetHandle": "y", "source": 2, "sourceHandle": "y"}, - {"target": 2, "targetHandle": "x", "source": 4, "sourceHandle": null}, - {"target": 2, "targetHandle": "y", "source": 5, "sourceHandle": null}, - {"target": 0, "targetHandle": "z", "source": 3, "sourceHandle": "z"}, - {"target": 3, "targetHandle": "x", "source": 4, "sourceHandle": null}, - {"target": 3, "targetHandle": "y", "source": 5, "sourceHandle": null} + {"tn": 0, "th": "x", "sn": 1, "sh": "x"}, + {"tn": 1, "th": "x", "sn": 4, "sh": null}, + {"tn": 1, "th": "y", "sn": 5, "sh": null}, + {"tn": 0, "th": "y", "sn": 2, "sh": "y"}, + {"tn": 2, "th": "x", "sn": 4, "sh": null}, + {"tn": 2, "th": "y", "sn": 5, "sh": null}, + {"tn": 0, "th": "z", "sn": 3, "sh": "z"}, + {"tn": 3, "th": "x", "sn": 4, "sh": null}, + {"tn": 3, "th": "y", "sn": 5, "sh": null} ] } ``` diff --git a/python_workflow_definition/src/python_workflow_definition/aiida.py b/python_workflow_definition/src/python_workflow_definition/aiida.py index 97809c4..3c240f3 100644 --- a/python_workflow_definition/src/python_workflow_definition/aiida.py +++ b/python_workflow_definition/src/python_workflow_definition/aiida.py @@ -35,34 +35,34 @@ def load_workflow_json(file_name): task_name_mapping[id] = wg.tasks[-1].name # add links for link in data["edges"]: - if link["sourceHandle"] is None: - link["sourceHandle"] = "result" + if link["sh"] is None: + link["sh"] = "result" try: - from_task = wg.tasks[task_name_mapping[str(link["source"])]] + from_task = wg.tasks[task_name_mapping[str(link["sn"])]] # because we are not define the outputs explicitly during the pythonjob creation # we add it here, and assume the output exit - if link["sourceHandle"] not in from_task.outputs: - # if str(link["sourceHandle"]) not in from_task.outputs: + if link["sh"] not in from_task.outputs: + # if str(link["sh"]) not in from_task.outputs: from_socket = from_task.add_output( "workgraph.any", - name=link["sourceHandle"], - # name=str(link["sourceHandle"]), + name=link["sh"], + # name=str(link["sh"]), metadata={"is_function_output": True}, ) else: - from_socket = from_task.outputs[link["sourceHandle"]] - to_task = wg.tasks[task_name_mapping[str(link["target"])]] + from_socket = from_task.outputs[link["sh"]] + to_task = wg.tasks[task_name_mapping[str(link["tn"])]] # if the input is not exit, it means we pass the data into to the kwargs # in this case, we add the input socket - if link["targetHandle"] not in to_task.inputs: + if link["th"] not in to_task.inputs: # to_socket = to_task.add_input( "workgraph.any", - name=link["targetHandle"], + name=link["th"], metadata={"is_function_input": True}, ) else: - to_socket = to_task.inputs[link["targetHandle"]] + to_socket = to_task.inputs[link["th"]] wg.add_link(from_socket, to_socket) except Exception as e: traceback.print_exc() @@ -112,10 +112,10 @@ def write_workflow_json(wg, file_name): # if the from socket is the default result, we set it to None if link_data["from_socket"] == "result": link_data["from_socket"] = None - link_data["target"] = node_name_mapping[link_data.pop("to_node")] - link_data["targetHandle"] = link_data.pop("to_socket") - link_data["source"] = node_name_mapping[link_data.pop("from_node")] - link_data["sourceHandle"] = link_data.pop("from_socket") + link_data["tn"] = node_name_mapping[link_data.pop("to_node")] + link_data["th"] = link_data.pop("to_socket") + link_data["sn"] = node_name_mapping[link_data.pop("from_node")] + link_data["sh"] = link_data.pop("from_socket") data["edges"].append(link_data) with open(file_name, "w") as f: diff --git a/python_workflow_definition/src/python_workflow_definition/executorlib.py b/python_workflow_definition/src/python_workflow_definition/executorlib.py index a8fba77..3e301a5 100644 --- a/python_workflow_definition/src/python_workflow_definition/executorlib.py +++ b/python_workflow_definition/src/python_workflow_definition/executorlib.py @@ -12,7 +12,7 @@ def get_item(obj, key): def _get_value(result_dict, nodes_new_dict, link_dict, exe): - source, source_handle = link_dict["source"], link_dict["sourceHandle"] + source, source_handle = link_dict["sn"], link_dict["sh"] if source in result_dict.keys(): result = result_dict[source] elif source in nodes_new_dict.keys(): diff --git a/python_workflow_definition/src/python_workflow_definition/jobflow.py b/python_workflow_definition/src/python_workflow_definition/jobflow.py index 185c7f2..b3d3203 100644 --- a/python_workflow_definition/src/python_workflow_definition/jobflow.py +++ b/python_workflow_definition/src/python_workflow_definition/jobflow.py @@ -26,9 +26,9 @@ def _get_nodes_dict(function_dict): def _get_edge_from_dict(target, key, value_dict, nodes_mapping_dict): if len(value_dict['attributes']) == 1: - return {'target': target, 'targetHandle': key, "source": nodes_mapping_dict[value_dict['uuid']], 'sourceHandle': value_dict['attributes'][0][1]} + return {'tn': target, 'th': key, "sn": nodes_mapping_dict[value_dict['uuid']], 'sh': value_dict['attributes'][0][1]} else: - return {'target': target, 'targetHandle': key, "source": nodes_mapping_dict[value_dict['uuid']], 'sourceHandle': None} + return {'tn': target, 'th': key, "sn": nodes_mapping_dict[value_dict['uuid']], 'sh': None} def _get_edges_and_extend_nodes(flow_dict, nodes_mapping_dict, nodes_dict): @@ -59,8 +59,8 @@ def _get_edges_and_extend_nodes(flow_dict, nodes_mapping_dict, nodes_dict): nodes_dict[node_index] = vt else: node_index = {str(tv): tk for tk, tv in nodes_dict.items()}[str(vt)] - edges_lst.append({'target': node_dict_index, 'targetHandle': kt, "source": node_index, 'sourceHandle': None}) - edges_lst.append({'target': nodes_mapping_dict[job["uuid"]], 'targetHandle': k, "source": node_dict_index, 'sourceHandle': None}) + edges_lst.append({'tn': node_dict_index, 'th': kt, "sn": node_index, 'sh': None}) + edges_lst.append({'tn': nodes_mapping_dict[job["uuid"]], 'th': k, "sn": node_dict_index, 'sh': None}) elif isinstance(v, list) and any([isinstance(el, dict) and '@module' in el and '@class' in el and '@version' in el for el in v]): node_list_index = len(nodes_dict) nodes_dict[node_list_index] = get_list @@ -78,15 +78,15 @@ def _get_edges_and_extend_nodes(flow_dict, nodes_mapping_dict, nodes_dict): nodes_dict[node_index] = vt else: node_index = {str(tv): tk for tk, tv in nodes_dict.items()}[str(vt)] - edges_lst.append({'target': node_list_index, 'targetHandle': kt, "source": node_index, 'sourceHandle': None}) - edges_lst.append({'target': nodes_mapping_dict[job["uuid"]], 'targetHandle': k, "source": node_list_index, 'sourceHandle': None}) + edges_lst.append({'tn': node_list_index, 'th': kt, "sn": node_index, 'sh': None}) + edges_lst.append({'tn': nodes_mapping_dict[job["uuid"]], 'th': k, "sn": node_list_index, 'sh': None}) else: if v not in nodes_dict.values(): node_index = len(nodes_dict) nodes_dict[node_index] = v else: node_index = {tv: tk for tk, tv in nodes_dict.items()}[v] - edges_lst.append({'target': nodes_mapping_dict[job["uuid"]], 'targetHandle': k, "source": node_index, 'sourceHandle': None}) + edges_lst.append({'tn': nodes_mapping_dict[job["uuid"]], 'th': k, "sn": node_index, 'sh': None}) return edges_lst, nodes_dict @@ -99,7 +99,7 @@ def _resort_total_lst(total_dict, nodes_dict): for ind in sorted(total_dict.keys()): connect = total_dict[ind] if ind not in ordered_lst: - source_lst = [sd["source"] for sd in connect.values()] + source_lst = [sd["sn"] for sd in connect.values()] if all([s in ordered_lst or s in nodes_without_dep_lst for s in source_lst]): ordered_lst.append(ind) total_new_dict[ind] = connect @@ -109,11 +109,11 @@ def _resort_total_lst(total_dict, nodes_dict): def _group_edges(edges_lst): total_dict = {} for ed_major in edges_lst: - target_id = ed_major["target"] + target_id = ed_major["tn"] tmp_lst = [] if target_id not in total_dict.keys(): for ed in edges_lst: - if target_id == ed["target"]: + if target_id == ed["tn"]: tmp_lst.append(ed) total_dict[target_id] = get_kwargs(lst=tmp_lst) return total_dict @@ -139,8 +139,8 @@ def get_attr_helper(obj, source_handle): else: fn = job(method=v) kwargs = { - kw: input_dict[vw['source']] if vw['source'] in input_dict else get_attr_helper( - obj=memory_dict[vw['source']], source_handle=vw['sourceHandle']) + kw: input_dict[vw['sn']] if vw['sn'] in input_dict else get_attr_helper( + obj=memory_dict[vw['sn']], source_handle=vw['sh']) for kw, vw in total_dict[k].items() } memory_dict[k] = fn(**kwargs) @@ -160,15 +160,15 @@ def load_workflow_json(file_name): edges_new_lst = [] for edge in content["edges"]: - if edge['sourceHandle'] is None: + if edge['sh'] is None: edges_new_lst.append(edge) else: edges_new_lst.append( { - 'target': edge['target'], - 'targetHandle': edge['targetHandle'], - 'source': edge['source'], - 'sourceHandle': str(edge['sourceHandle']), + 'tn': edge['tn'], + 'th': edge['th'], + 'sn': edge['sn'], + 'sh': str(edge['sh']), } ) diff --git a/python_workflow_definition/src/python_workflow_definition/purepython.py b/python_workflow_definition/src/python_workflow_definition/purepython.py index 8e67055..019f029 100644 --- a/python_workflow_definition/src/python_workflow_definition/purepython.py +++ b/python_workflow_definition/src/python_workflow_definition/purepython.py @@ -13,7 +13,7 @@ def resort_total_lst(total_lst, nodes_dict): while len(total_new_lst) < len(total_lst): for ind, connect in total_lst: if ind not in ordered_lst: - source_lst = [sd["source"] for sd in connect.values()] + source_lst = [sd["sn"] for sd in connect.values()] if all([s in ordered_lst or s in nodes_without_dep_lst for s in source_lst]): ordered_lst.append(ind) total_new_lst.append([ind, connect]) @@ -21,22 +21,22 @@ def resort_total_lst(total_lst, nodes_dict): def group_edges(edges_lst): - edges_sorted_lst = sorted(edges_lst, key=lambda x: x['target'], reverse=True) + edges_sorted_lst = sorted(edges_lst, key=lambda x: x["tn"], reverse=True) total_lst, tmp_lst = [], [] - target_id = edges_sorted_lst[0]['target'] + target_id = edges_sorted_lst[0]["tn"] for ed in edges_sorted_lst: - if target_id == ed["target"]: + if target_id == ed["tn"]: tmp_lst.append(ed) else: total_lst.append((target_id, get_kwargs(lst=tmp_lst))) - target_id = ed["target"] + target_id = ed["tn"] tmp_lst = [ed] total_lst.append((target_id, get_kwargs(lst=tmp_lst))) return total_lst def _get_value(result_dict, nodes_new_dict, link_dict): - source, source_handle = link_dict["source"], link_dict["sourceHandle"] + source, source_handle = link_dict["sn"], link_dict["sh"] if source in result_dict.keys(): result = result_dict[source] elif source in nodes_new_dict.keys(): diff --git a/python_workflow_definition/src/python_workflow_definition/pyiron_base.py b/python_workflow_definition/src/python_workflow_definition/pyiron_base.py index 2a4c303..016514a 100644 --- a/python_workflow_definition/src/python_workflow_definition/pyiron_base.py +++ b/python_workflow_definition/src/python_workflow_definition/pyiron_base.py @@ -16,7 +16,7 @@ def _resort_total_lst(total_lst, nodes_dict): while len(total_new_lst) < len(total_lst): for ind, connect in total_lst: if ind not in ordered_lst: - source_lst = [sd["source"] for sd in connect.values()] + source_lst = [sd["sn"] for sd in connect.values()] if all([s in ordered_lst or s in nodes_without_dep_lst for s in source_lst]): ordered_lst.append(ind) total_new_lst.append([ind, connect]) @@ -24,15 +24,15 @@ def _resort_total_lst(total_lst, nodes_dict): def _group_edges(edges_lst): - edges_sorted_lst = sorted(edges_lst, key=lambda x: x['target'], reverse=True) + edges_sorted_lst = sorted(edges_lst, key=lambda x: x["tn"], reverse=True) total_lst, tmp_lst = [], [] - target_id = edges_sorted_lst[0]['target'] + target_id = edges_sorted_lst[0]["tn"] for ed in edges_sorted_lst: - if target_id == ed["target"]: + if target_id == ed["tn"]: tmp_lst.append(ed) else: total_lst.append((target_id, get_kwargs(lst=tmp_lst))) - target_id = ed["target"] + target_id = ed["tn"] tmp_lst = [ed] total_lst.append((target_id, get_kwargs(lst=tmp_lst))) return total_lst @@ -53,8 +53,8 @@ def _get_delayed_object_dict(total_lst, nodes_dict, source_handle_dict, pyiron_p k: _get_source( nodes_dict=nodes_dict, delayed_object_dict=delayed_object_dict, - source=v["source"], - sourceHandle=v["sourceHandle"], + source=v["sn"], + sourceHandle=v["sh"], ) for k, v in input_dict.items() } @@ -151,24 +151,24 @@ def _get_edges_dict(edges_lst, nodes_dict, connection_dict, lookup_dict): if isinstance(output, DelayedObject): if output._list_index is not None: edges_dict_lst.append({ - "target": target, - "targetHandle": target_handle, - "source": connection_dict[output_name], - "sourceHandle": f"s_{output._list_index}", # check for list index + "tn": target, + "th": target_handle, + "sn": connection_dict[output_name], + "sh": f"s_{output._list_index}", # check for list index }) else: edges_dict_lst.append({ - "target": target, - "targetHandle": target_handle, - "source": connection_dict[output_name], - "sourceHandle": output._output_key, # check for list index + "tn": target, + "th": target_handle, + "sn": connection_dict[output_name], + "sh": output._output_key, # check for list index }) else: edges_dict_lst.append({ - "target": target, - "targetHandle": target_handle, - "source": connection_dict[output_name], - "sourceHandle": None, + "tn": target, + "th": target_handle, + "sn": connection_dict[output_name], + "sh": None, }) existing_connection_lst.append(connection_name) return edges_dict_lst diff --git a/python_workflow_definition/src/python_workflow_definition/shared.py b/python_workflow_definition/src/python_workflow_definition/shared.py index a526903..444aee6 100644 --- a/python_workflow_definition/src/python_workflow_definition/shared.py +++ b/python_workflow_definition/src/python_workflow_definition/shared.py @@ -9,16 +9,16 @@ def get_list(**kwargs): def get_kwargs(lst): - return {t['targetHandle']: {'source': t['source'], 'sourceHandle': t['sourceHandle']} for t in lst} + return {t["th"]: {"sn": t["sn"], "sh": t["sh"]} for t in lst} def get_source_handles(edges_lst): source_handle_dict = {} for ed in edges_lst: - if ed['source'] not in source_handle_dict.keys(): - source_handle_dict[ed['source']] = [ed['sourceHandle']] + if ed["sn"] not in source_handle_dict.keys(): + source_handle_dict[ed["sn"]] = [ed["sh"]] else: - source_handle_dict[ed['source']].append(ed['sourceHandle']) + source_handle_dict[ed["sn"]].append(ed["sh"]) return { k: list(range(len(v))) if len(v) > 1 and all([el is None for el in v]) else v for k, v in source_handle_dict.items() diff --git a/workflow_qe.json b/workflow_qe.json index ac11b3f..b26b658 100644 --- a/workflow_qe.json +++ b/workflow_qe.json @@ -34,64 +34,64 @@ "31": "python_workflow_definition.shared.get_list" }, "edges": [ - {"target": 0, "targetHandle": "element", "source": 9, "sourceHandle": null}, - {"target": 0, "targetHandle": "a", "source": 10, "sourceHandle": null}, - {"target": 0, "targetHandle": "cubic", "source": 11, "sourceHandle": null}, - {"target": 1, "targetHandle": "working_directory", "source": 12, "sourceHandle": null}, - {"target": 13, "targetHandle": "structure", "source": 0, "sourceHandle": null}, - {"target": 13, "targetHandle": "pseudopotentials", "source": 14, "sourceHandle": null}, - {"target": 13, "targetHandle": "kpts", "source": 15, "sourceHandle": null}, - {"target": 13, "targetHandle": "calculation", "source": 16, "sourceHandle": null}, - {"target": 13, "targetHandle": "smearing", "source": 17, "sourceHandle": null}, - {"target": 1, "targetHandle": "input_dict", "source": 13, "sourceHandle": null}, - {"target": 2, "targetHandle": "structure", "source": 1, "sourceHandle": "structure"}, - {"target": 2, "targetHandle": "strain_lst", "source": 18, "sourceHandle": null}, - {"target": 3, "targetHandle": "working_directory", "source": 19, "sourceHandle": null}, - {"target": 20, "targetHandle": "structure", "source": 2, "sourceHandle": "s_0"}, - {"target": 20, "targetHandle": "pseudopotentials", "source": 14, "sourceHandle": null}, - {"target": 20, "targetHandle": "kpts", "source": 15, "sourceHandle": null}, - {"target": 20, "targetHandle": "calculation", "source": 21, "sourceHandle": null}, - {"target": 20, "targetHandle": "smearing", "source": 17, "sourceHandle": null}, - {"target": 3, "targetHandle": "input_dict", "source": 20, "sourceHandle": null}, - {"target": 4, "targetHandle": "working_directory", "source": 22, "sourceHandle": null}, - {"target": 23, "targetHandle": "structure", "source": 2, "sourceHandle": "s_1"}, - {"target": 23, "targetHandle": "pseudopotentials", "source": 14, "sourceHandle": null}, - {"target": 23, "targetHandle": "kpts", "source": 15, "sourceHandle": null}, - {"target": 23, "targetHandle": "calculation", "source": 21, "sourceHandle": null}, - {"target": 23, "targetHandle": "smearing", "source": 17, "sourceHandle": null}, - {"target": 4, "targetHandle": "input_dict", "source": 23, "sourceHandle": null}, - {"target": 5, "targetHandle": "working_directory", "source": 24, "sourceHandle": null}, - {"target": 25, "targetHandle": "structure", "source": 2, "sourceHandle": "s_2"}, - {"target": 25, "targetHandle": "pseudopotentials", "source": 14, "sourceHandle": null}, - {"target": 25, "targetHandle": "kpts", "source": 15, "sourceHandle": null}, - {"target": 25, "targetHandle": "calculation", "source": 21, "sourceHandle": null}, - {"target": 25, "targetHandle": "smearing", "source": 17, "sourceHandle": null}, - {"target": 5, "targetHandle": "input_dict", "source": 25, "sourceHandle": null}, - {"target": 6, "targetHandle": "working_directory", "source": 26, "sourceHandle": null}, - {"target": 27, "targetHandle": "structure", "source": 2, "sourceHandle": "s_3"}, - {"target": 27, "targetHandle": "pseudopotentials", "source": 14, "sourceHandle": null}, - {"target": 27, "targetHandle": "kpts", "source": 15, "sourceHandle": null}, - {"target": 27, "targetHandle": "calculation", "source": 21, "sourceHandle": null}, - {"target": 27, "targetHandle": "smearing", "source": 17, "sourceHandle": null}, - {"target": 6, "targetHandle": "input_dict", "source": 27, "sourceHandle": null}, - {"target": 7, "targetHandle": "working_directory", "source": 28, "sourceHandle": null}, - {"target": 29, "targetHandle": "structure", "source": 2, "sourceHandle": "s_4"}, - {"target": 29, "targetHandle": "pseudopotentials", "source": 14, "sourceHandle": null}, - {"target": 29, "targetHandle": "kpts", "source": 15, "sourceHandle": null}, - {"target": 29, "targetHandle": "calculation", "source": 21, "sourceHandle": null}, - {"target": 29, "targetHandle": "smearing", "source": 17, "sourceHandle": null}, - {"target": 7, "targetHandle": "input_dict", "source": 29, "sourceHandle": null}, - {"target": 30, "targetHandle": "0", "source": 3, "sourceHandle": "volume"}, - {"target": 30, "targetHandle": "1", "source": 4, "sourceHandle": "volume"}, - {"target": 30, "targetHandle": "2", "source": 5, "sourceHandle": "volume"}, - {"target": 30, "targetHandle": "3", "source": 6, "sourceHandle": "volume"}, - {"target": 30, "targetHandle": "4", "source": 7, "sourceHandle": "volume"}, - {"target": 8, "targetHandle": "volume_lst", "source": 30, "sourceHandle": null}, - {"target": 31, "targetHandle": "0", "source": 3, "sourceHandle": "energy"}, - {"target": 31, "targetHandle": "1", "source": 4, "sourceHandle": "energy"}, - {"target": 31, "targetHandle": "2", "source": 5, "sourceHandle": "energy"}, - {"target": 31, "targetHandle": "3", "source": 6, "sourceHandle": "energy"}, - {"target": 31, "targetHandle": "4", "source": 7, "sourceHandle": "energy"}, - {"target": 8, "targetHandle": "energy_lst", "source": 31, "sourceHandle": null} + {"tn": 0, "th": "element", "sn": 9, "sh": null}, + {"tn": 0, "th": "a", "sn": 10, "sh": null}, + {"tn": 0, "th": "cubic", "sn": 11, "sh": null}, + {"tn": 1, "th": "working_directory", "sn": 12, "sh": null}, + {"tn": 13, "th": "structure", "sn": 0, "sh": null}, + {"tn": 13, "th": "pseudopotentials", "sn": 14, "sh": null}, + {"tn": 13, "th": "kpts", "sn": 15, "sh": null}, + {"tn": 13, "th": "calculation", "sn": 16, "sh": null}, + {"tn": 13, "th": "smearing", "sn": 17, "sh": null}, + {"tn": 1, "th": "input_dict", "sn": 13, "sh": null}, + {"tn": 2, "th": "structure", "sn": 1, "sh": "structure"}, + {"tn": 2, "th": "strain_lst", "sn": 18, "sh": null}, + {"tn": 3, "th": "working_directory", "sn": 19, "sh": null}, + {"tn": 20, "th": "structure", "sn": 2, "sh": "s_0"}, + {"tn": 20, "th": "pseudopotentials", "sn": 14, "sh": null}, + {"tn": 20, "th": "kpts", "sn": 15, "sh": null}, + {"tn": 20, "th": "calculation", "sn": 21, "sh": null}, + {"tn": 20, "th": "smearing", "sn": 17, "sh": null}, + {"tn": 3, "th": "input_dict", "sn": 20, "sh": null}, + {"tn": 4, "th": "working_directory", "sn": 22, "sh": null}, + {"tn": 23, "th": "structure", "sn": 2, "sh": "s_1"}, + {"tn": 23, "th": "pseudopotentials", "sn": 14, "sh": null}, + {"tn": 23, "th": "kpts", "sn": 15, "sh": null}, + {"tn": 23, "th": "calculation", "sn": 21, "sh": null}, + {"tn": 23, "th": "smearing", "sn": 17, "sh": null}, + {"tn": 4, "th": "input_dict", "sn": 23, "sh": null}, + {"tn": 5, "th": "working_directory", "sn": 24, "sh": null}, + {"tn": 25, "th": "structure", "sn": 2, "sh": "s_2"}, + {"tn": 25, "th": "pseudopotentials", "sn": 14, "sh": null}, + {"tn": 25, "th": "kpts", "sn": 15, "sh": null}, + {"tn": 25, "th": "calculation", "sn": 21, "sh": null}, + {"tn": 25, "th": "smearing", "sn": 17, "sh": null}, + {"tn": 5, "th": "input_dict", "sn": 25, "sh": null}, + {"tn": 6, "th": "working_directory", "sn": 26, "sh": null}, + {"tn": 27, "th": "structure", "sn": 2, "sh": "s_3"}, + {"tn": 27, "th": "pseudopotentials", "sn": 14, "sh": null}, + {"tn": 27, "th": "kpts", "sn": 15, "sh": null}, + {"tn": 27, "th": "calculation", "sn": 21, "sh": null}, + {"tn": 27, "th": "smearing", "sn": 17, "sh": null}, + {"tn": 6, "th": "input_dict", "sn": 27, "sh": null}, + {"tn": 7, "th": "working_directory", "sn": 28, "sh": null}, + {"tn": 29, "th": "structure", "sn": 2, "sh": "s_4"}, + {"tn": 29, "th": "pseudopotentials", "sn": 14, "sh": null}, + {"tn": 29, "th": "kpts", "sn": 15, "sh": null}, + {"tn": 29, "th": "calculation", "sn": 21, "sh": null}, + {"tn": 29, "th": "smearing", "sn": 17, "sh": null}, + {"tn": 7, "th": "input_dict", "sn": 29, "sh": null}, + {"tn": 30, "th": "0", "sn": 3, "sh": "volume"}, + {"tn": 30, "th": "1", "sn": 4, "sh": "volume"}, + {"tn": 30, "th": "2", "sn": 5, "sh": "volume"}, + {"tn": 30, "th": "3", "sn": 6, "sh": "volume"}, + {"tn": 30, "th": "4", "sn": 7, "sh": "volume"}, + {"tn": 8, "th": "volume_lst", "sn": 30, "sh": null}, + {"tn": 31, "th": "0", "sn": 3, "sh": "energy"}, + {"tn": 31, "th": "1", "sn": 4, "sh": "energy"}, + {"tn": 31, "th": "2", "sn": 5, "sh": "energy"}, + {"tn": 31, "th": "3", "sn": 6, "sh": "energy"}, + {"tn": 31, "th": "4", "sn": 7, "sh": "energy"}, + {"tn": 8, "th": "energy_lst", "sn": 31, "sh": null} ] } \ No newline at end of file diff --git a/workflow_simple.json b/workflow_simple.json index 0690b2b..4a30bce 100644 --- a/workflow_simple.json +++ b/workflow_simple.json @@ -6,10 +6,10 @@ "3": 2 }, "edges": [ - {"target": 0, "targetHandle": "x", "source": 2, "sourceHandle": null}, - {"target": 0, "targetHandle": "y", "source": 3, "sourceHandle": null}, - {"target": 1, "targetHandle": "x", "source": 0, "sourceHandle": "x"}, - {"target": 1, "targetHandle": "y", "source": 0, "sourceHandle": "y"}, - {"target": 1, "targetHandle": "z", "source": 0, "sourceHandle": "z"} + {"tn": 0, "th": "x", "sn": 2, "sh": null}, + {"tn": 0, "th": "y", "sn": 3, "sh": null}, + {"tn": 1, "th": "x", "sn": 0, "sh": "x"}, + {"tn": 1, "th": "y", "sn": 0, "sh": "y"}, + {"tn": 1, "th": "z", "sn": 0, "sh": "z"} ] }