11
11
12
12
from metaflow .cli import start , run
13
13
from metaflow ._vendor import click
14
+ from metaflow import Runner
14
15
15
16
skip_api_executor = False
16
17
23
24
except RuntimeError :
24
25
skip_api_executor = True
25
26
26
- skip_api_executor = False
27
-
28
- try :
29
- from metaflow .click_api import (
30
- MetaflowAPI ,
31
- extract_all_params ,
32
- click_to_python_types ,
33
- )
34
- from metaflow .cli import start , run
35
- except RuntimeError :
36
- skip_api_executor = True
37
-
38
27
from metaflow_test import MetaflowTest
39
28
from metaflow_test .formatter import FlowFormatter
40
29
@@ -135,8 +124,7 @@ def construct_arg_dict(params_opts, cli_options):
135
124
136
125
return result_dict
137
126
138
- def construct_cmd_from_click_api (mode ):
139
- api = MetaflowAPI .from_cli ("test_flow.py" , start )
127
+ def construct_arg_dicts_from_click_api ():
140
128
_ , _ , param_opts , _ , _ = extract_all_params (start )
141
129
top_level_options = context ["top_options" ]
142
130
top_level_dict = construct_arg_dict (param_opts , top_level_options )
@@ -146,10 +134,7 @@ def construct_cmd_from_click_api(mode):
146
134
run_level_dict = construct_arg_dict (param_opts , run_level_options )
147
135
run_level_dict ["run_id_file" ] = "run-id"
148
136
149
- cmd = getattr (api (** top_level_dict ), mode )(** run_level_dict )
150
- command = [context ["python" ], "-B" ]
151
- command .extend (cmd )
152
- return command
137
+ return top_level_dict , run_level_dict
153
138
154
139
cwd = os .getcwd ()
155
140
tempdir = tempfile .mkdtemp ("_metaflow_test" )
@@ -208,7 +193,11 @@ def construct_cmd_from_click_api(mode):
208
193
if executor == "cli" :
209
194
flow_ret = subprocess .call (run_cmd ("run" ), env = env )
210
195
elif executor == "api" :
211
- flow_ret = subprocess .call (construct_cmd_from_click_api ("run" ), env = env )
196
+ top_level_dict , run_level_dict = construct_arg_dicts_from_click_api ()
197
+ result = Runner ("test_flow.py" , env = env , ** top_level_dict ).run (
198
+ ** run_level_dict
199
+ )
200
+ flow_ret = result .command_obj .process .returncode
212
201
213
202
if flow_ret :
214
203
if formatter .should_fail :
@@ -218,9 +207,14 @@ def construct_cmd_from_click_api(mode):
218
207
if executor == "cli" :
219
208
flow_ret = subprocess .call (run_cmd ("resume" ), env = env )
220
209
elif executor == "api" :
221
- flow_ret = subprocess .call (
222
- construct_cmd_from_click_api ("resume" ), env = env
210
+ (
211
+ top_level_dict ,
212
+ resume_level_dict ,
213
+ ) = construct_arg_dicts_from_click_api ()
214
+ result = Runner ("test_flow.py" , env = env , ** top_level_dict ).resume (
215
+ ** resume_level_dict
223
216
)
217
+ flow_ret = result .command_obj .process .returncode
224
218
else :
225
219
log ("flow failed" , formatter , context )
226
220
return flow_ret , path
0 commit comments