Skip to content

Commit 9a70f1f

Browse files
committed
Refactor function arguments and address comments
1 parent 2a0e01b commit 9a70f1f

File tree

5 files changed

+29
-11
lines changed

5 files changed

+29
-11
lines changed

metaflow/mflog/__init__.py

+20-6
Original file line numberDiff line numberDiff line change
@@ -42,22 +42,36 @@
4242
)
4343

4444

45-
def _get_bash_capture_log(default_python_executable="python"):
46-
bash_save_log_args = [default_python_executable, "-m", "metaflow.mflog.save_logs"]
47-
return bash_save_log_args, " ".join(bash_save_log_args)
45+
def _get_bash_capture_log(default_python_executable=None):
46+
python_executable = default_python_executable or "python"
47+
bash_save_log_args = [python_executable, "-m", "metaflow.mflog.save_logs"]
48+
return bash_save_log_args
4849

4950

5051
# this function returns a bash expression that redirects stdout
5152
# and stderr of the given bash expression to mflog.tee
52-
def bash_capture_logs(bash_expr, var_transform=None, default_python_executable_path="python"):
53+
def bash_capture_logs(
54+
bash_expr, var_transform=None, default_python_executable_path=None
55+
):
56+
python_executable = default_python_executable_path or "python"
5357
if var_transform is None:
5458
var_transform = lambda s: "$%s" % s
5559

5660
cmd = "%s -m metaflow.mflog.tee %s %s"
5761
parts = (
5862
bash_expr,
59-
cmd % (default_python_executable_path, TASK_LOG_SOURCE, var_transform("MFLOG_STDOUT")),
60-
cmd % (default_python_executable_path, TASK_LOG_SOURCE, var_transform("MFLOG_STDERR")),
63+
cmd
64+
% (
65+
python_executable,
66+
TASK_LOG_SOURCE,
67+
var_transform("MFLOG_STDOUT"),
68+
),
69+
cmd
70+
% (
71+
python_executable,
72+
TASK_LOG_SOURCE,
73+
var_transform("MFLOG_STDERR"),
74+
),
6175
)
6276
return "(%s) 1>> >(%s) 2>> >(%s >&2)" % parts
6377

metaflow/mflog/save_logs_periodically.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def _file_size(path):
3838
if new_sizes != sizes:
3939
sizes = new_sizes
4040
try:
41-
subprocess.call(_get_bash_capture_log()[0])
41+
subprocess.call(_get_bash_capture_log())
4242
except:
4343
pass
4444
time.sleep(update_delay(time.time() - start_time))

metaflow/plugins/argo/argo_workflows.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,11 @@
4545
UI_URL,
4646
)
4747
from metaflow.metaflow_config_funcs import config_values
48-
from metaflow.mflog import _get_bash_capture_log, bash_capture_logs, export_mflog_env_vars
48+
from metaflow.mflog import (
49+
_get_bash_capture_log,
50+
bash_capture_logs,
51+
export_mflog_env_vars,
52+
)
4953
from metaflow.parameters import deploy_time_eval
5054
from metaflow.plugins.kubernetes.kubernetes import (
5155
parse_kube_keyvalue_list,
@@ -1194,7 +1198,7 @@ def _container_templates(self):
11941198

11951199
cmd_str = "%s; c=$?; %s; exit $c" % (
11961200
" && ".join([init_cmds, bash_capture_logs(" && ".join(step_cmds))]),
1197-
_get_bash_capture_log()[1],
1201+
" ".join(_get_bash_capture_log()),
11981202
)
11991203
cmds = shlex.split('bash -c "%s"' % cmd_str)
12001204

metaflow/plugins/aws/batch/batch.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def _command(self, environment, code_package_url, step_name, step_cmds, task_spe
9292
# Note that if step_expr OOMs, this tail expression is never executed.
9393
# We lose the last logs in this scenario (although they are visible
9494
# still through AWS CloudWatch console).
95-
cmd_str += "c=$?; %s; exit $c" % _get_bash_capture_log()[1]
95+
cmd_str += "c=$?; %s; exit $c" % " ".join(_get_bash_capture_log())
9696
return shlex.split('bash -c "%s"' % cmd_str)
9797

9898
def _search_jobs(self, flow_name, run_id, user):

metaflow/plugins/kubernetes/kubernetes.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ def _command(
130130
# We lose the last logs in this scenario.
131131
#
132132
# TODO: Capture hard exit logs in Kubernetes.
133-
cmd_str += "c=$?; %s; exit $c" % _get_bash_capture_log()
133+
cmd_str += "c=$?; %s; exit $c" % " ".join(_get_bash_capture_log())
134134
# For supporting sandboxes, ensure that a custom script is executed before
135135
# anything else is executed. The script is passed in as an env var.
136136
cmd_str = (

0 commit comments

Comments
 (0)