Skip to content

Commit 6b78fb0

Browse files
committed
fixed syntax error. outputs now missing in our json representation
1 parent 79c8edf commit 6b78fb0

File tree

2 files changed

+134
-3
lines changed

2 files changed

+134
-3
lines changed
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
#!/usr/bin/env python
2+
# coding: utf-8
3+
4+
# # Aiida
5+
6+
# ## Define workflow with aiida
7+
8+
# In[1]:
9+
10+
11+
from python_workflow_definition.aiida import write_workflow_json
12+
13+
from aiida_workgraph import WorkGraph, task
14+
from aiida import orm, load_profile
15+
load_profile()
16+
17+
workflow_json_filename = "aiida_simple.json"
18+
19+
20+
# In[2]:
21+
22+
23+
from workflow import (
24+
get_sum as _get_sum,
25+
get_prod_and_div as _get_prod_and_div,
26+
get_square as _get_square,
27+
)
28+
29+
30+
# In[3]:
31+
32+
33+
wg = WorkGraph("arithmetic")
34+
35+
36+
# In[4]:
37+
38+
39+
get_prod_and_div_task = wg.add_task(
40+
task(outputs=['prod', 'div'])(_get_prod_and_div),
41+
x=orm.Float(1),
42+
y=orm.Float(2),
43+
)
44+
45+
46+
# In[5]:
47+
48+
49+
get_sum_task = wg.add_task(
50+
_get_sum,
51+
x=get_prod_and_div_task.outputs.prod,
52+
y=get_prod_and_div_task.outputs.div,
53+
)
54+
55+
56+
# In[6]:
57+
58+
59+
get_square_task = wg.add_task(
60+
_get_square,
61+
x=get_sum_task.outputs.result,
62+
)
63+
64+
65+
# In[7]:
66+
67+
68+
write_workflow_json(wg=wg, file_name=workflow_json_filename)
69+
70+
71+
# In[8]:
72+
73+
74+
get_ipython().system('cat {workflow_json_filename}')
75+
76+
77+
# ## Load Workflow with jobflow
78+
79+
# In[9]:
80+
81+
82+
from python_workflow_definition.jobflow import load_workflow_json
83+
84+
85+
# In[10]:
86+
87+
88+
from jobflow.managers.local import run_locally
89+
90+
91+
# In[11]:
92+
93+
94+
flow = load_workflow_json(file_name=workflow_json_filename)
95+
96+
97+
# In[12]:
98+
99+
100+
result = run_locally(flow)
101+
result
102+
103+
104+
# ## Load Workflow with pyiron_base
105+
106+
# In[13]:
107+
108+
109+
from python_workflow_definition.pyiron_base import load_workflow_json
110+
111+
112+
# In[14]:
113+
114+
115+
delayed_object_lst = load_workflow_json(file_name=workflow_json_filename)
116+
delayed_object_lst[-1].draw()
117+
118+
119+
# In[15]:
120+
121+
122+
delayed_object_lst[-1].pull()
123+

src/python_workflow_definition/aiida.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,18 @@ def write_workflow_json(wg: WorkGraph, file_name: str) -> dict:
9090
node_name_mapping = {}
9191
data_node_name_mapping = {}
9292
i = 0
93+
GRAPH_LEVEL_NAMES = ['graph_inputs', 'graph_outputs', 'graph_ctx']
94+
9395
for node in wg.tasks:
94-
executor = node.get_executor()
96+
97+
if node.name in GRAPH_LEVEL_NAMES:
98+
continue
99+
95100
node_name_mapping[node.name] = i
96101

97-
callable_name = executor["callable_name"]
98-
callable_name = f"{executor['module_path']}.{callable_name}"
102+
executor = node.get_executor()
103+
callable_name = executor.callable_name
104+
99105
data[NODES_LABEL].append({"id": i, "type": "function", "value": callable_name})
100106
i += 1
101107

@@ -110,6 +116,7 @@ def write_workflow_json(wg: WorkGraph, file_name: str) -> dict:
110116
link_data[SOURCE_PORT_LABEL] = link_data.pop("from_socket")
111117
data[EDGES_LABEL].append(link_data)
112118

119+
113120
for node in wg.tasks:
114121
for input in node.inputs:
115122
# assume namespace is not used as input
@@ -141,6 +148,7 @@ def write_workflow_json(wg: WorkGraph, file_name: str) -> dict:
141148
SOURCE_PORT_LABEL: None,
142149
}
143150
)
151+
144152
data[VERSION_LABEL] = VERSION_NUMBER
145153
PythonWorkflowDefinitionWorkflow(
146154
**set_result_node(workflow_dict=update_node_names(workflow_dict=data))

0 commit comments

Comments
 (0)