ob-metaflow 2.15.6.1__py2.py3-none-any.whl → 2.15.7.1__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ob-metaflow might be problematic. Click here for more details.
- metaflow/plugins/argo/argo_workflows.py +34 -11
- metaflow/plugins/argo/argo_workflows_deployer_objects.py +7 -6
- metaflow/version.py +1 -1
- {ob_metaflow-2.15.6.1.data → ob_metaflow-2.15.7.1.data}/data/share/metaflow/devtools/Makefile +2 -2
- {ob_metaflow-2.15.6.1.dist-info → ob_metaflow-2.15.7.1.dist-info}/METADATA +4 -3
- {ob_metaflow-2.15.6.1.dist-info → ob_metaflow-2.15.7.1.dist-info}/RECORD +12 -12
- {ob_metaflow-2.15.6.1.dist-info → ob_metaflow-2.15.7.1.dist-info}/WHEEL +1 -1
- {ob_metaflow-2.15.6.1.data → ob_metaflow-2.15.7.1.data}/data/share/metaflow/devtools/Tiltfile +0 -0
- {ob_metaflow-2.15.6.1.data → ob_metaflow-2.15.7.1.data}/data/share/metaflow/devtools/pick_services.sh +0 -0
- {ob_metaflow-2.15.6.1.dist-info → ob_metaflow-2.15.7.1.dist-info}/entry_points.txt +0 -0
- {ob_metaflow-2.15.6.1.dist-info → ob_metaflow-2.15.7.1.dist-info/licenses}/LICENSE +0 -0
- {ob_metaflow-2.15.6.1.dist-info → ob_metaflow-2.15.7.1.dist-info}/top_level.txt +0 -0
|
@@ -525,6 +525,7 @@ class ArgoWorkflows(object):
|
|
|
525
525
|
default_value = json.dumps(default_value)
|
|
526
526
|
|
|
527
527
|
parameters[param.name] = dict(
|
|
528
|
+
python_var_name=var,
|
|
528
529
|
name=param.name,
|
|
529
530
|
value=default_value,
|
|
530
531
|
type=param_type,
|
|
@@ -839,7 +840,11 @@ class ArgoWorkflows(object):
|
|
|
839
840
|
Arguments().parameters(
|
|
840
841
|
[
|
|
841
842
|
Parameter(parameter["name"])
|
|
842
|
-
.value(
|
|
843
|
+
.value(
|
|
844
|
+
"'%s'" % parameter["value"]
|
|
845
|
+
if parameter["type"] == "JSON"
|
|
846
|
+
else parameter["value"]
|
|
847
|
+
)
|
|
843
848
|
.description(parameter.get("description"))
|
|
844
849
|
# TODO: Better handle IncludeFile in Argo Workflows UI.
|
|
845
850
|
for parameter in self.parameters.values()
|
|
@@ -1595,11 +1600,7 @@ class ArgoWorkflows(object):
|
|
|
1595
1600
|
# {{foo.bar['param_name']}}.
|
|
1596
1601
|
# https://argoproj.github.io/argo-events/tutorials/02-parameterization/
|
|
1597
1602
|
# http://masterminds.github.io/sprig/strings.html
|
|
1598
|
-
|
|
1599
|
-
"--%s='{{workflow.parameters.%s}}'"
|
|
1600
|
-
if parameter["type"] == "JSON"
|
|
1601
|
-
else "--%s={{workflow.parameters.%s}}"
|
|
1602
|
-
)
|
|
1603
|
+
"--%s={{workflow.parameters.%s}}"
|
|
1603
1604
|
% (parameter["name"], parameter["name"])
|
|
1604
1605
|
for parameter in self.parameters.values()
|
|
1605
1606
|
]
|
|
@@ -3197,15 +3198,37 @@ class ArgoWorkflows(object):
|
|
|
3197
3198
|
# NOTE: We need the conditional logic in order to successfully fall back to the default value
|
|
3198
3199
|
# when the event payload does not contain a key for a parameter.
|
|
3199
3200
|
# NOTE: Keys might contain dashes, so use the safer 'get' for fetching the value
|
|
3200
|
-
data_template='{{ if (hasKey $.Input.body.payload "%s") }}{{- (get $.Input.body.payload "%s"
|
|
3201
|
-
% (
|
|
3201
|
+
data_template='{{ if (hasKey $.Input.body.payload "%s") }}{{- (get $.Input.body.payload "%s" %s) -}}{{- else -}}{{ (fail "use-default-instead") }}{{- end -}}'
|
|
3202
|
+
% (
|
|
3203
|
+
v,
|
|
3204
|
+
v,
|
|
3205
|
+
(
|
|
3206
|
+
"| toRawJson | squote"
|
|
3207
|
+
if self.parameters[
|
|
3208
|
+
parameter_name
|
|
3209
|
+
]["type"]
|
|
3210
|
+
== "JSON"
|
|
3211
|
+
else "| toRawJson"
|
|
3212
|
+
),
|
|
3213
|
+
),
|
|
3202
3214
|
# Unfortunately the sensor needs to
|
|
3203
3215
|
# record the default values for
|
|
3204
3216
|
# the parameters - there doesn't seem
|
|
3205
3217
|
# to be any way for us to skip
|
|
3206
|
-
value=
|
|
3207
|
-
|
|
3208
|
-
|
|
3218
|
+
value=(
|
|
3219
|
+
json.dumps(
|
|
3220
|
+
self.parameters[parameter_name][
|
|
3221
|
+
"value"
|
|
3222
|
+
]
|
|
3223
|
+
)
|
|
3224
|
+
if self.parameters[parameter_name][
|
|
3225
|
+
"type"
|
|
3226
|
+
]
|
|
3227
|
+
== "JSON"
|
|
3228
|
+
else self.parameters[
|
|
3229
|
+
parameter_name
|
|
3230
|
+
]["value"]
|
|
3231
|
+
),
|
|
3209
3232
|
)
|
|
3210
3233
|
.dest(
|
|
3211
3234
|
# this undocumented (mis?)feature in
|
|
@@ -19,6 +19,7 @@ def generate_fake_flow_file_contents(
|
|
|
19
19
|
):
|
|
20
20
|
params_code = ""
|
|
21
21
|
for _, param_details in param_info.items():
|
|
22
|
+
param_python_var_name = param_details["python_var_name"]
|
|
22
23
|
param_name = param_details["name"]
|
|
23
24
|
param_type = param_details["type"]
|
|
24
25
|
param_help = param_details["description"]
|
|
@@ -26,21 +27,21 @@ def generate_fake_flow_file_contents(
|
|
|
26
27
|
|
|
27
28
|
if param_type == "JSON":
|
|
28
29
|
params_code += (
|
|
29
|
-
f" {
|
|
30
|
-
f"type=JSONType, help='{param_help}', required={param_required})\n"
|
|
30
|
+
f" {param_python_var_name} = Parameter('{param_name}', "
|
|
31
|
+
f"type=JSONType, help='''{param_help}''', required={param_required})\n"
|
|
31
32
|
)
|
|
32
33
|
elif param_type == "FilePath":
|
|
33
34
|
is_text = param_details.get("is_text", True)
|
|
34
35
|
encoding = param_details.get("encoding", "utf-8")
|
|
35
36
|
params_code += (
|
|
36
|
-
f" {
|
|
37
|
-
f"is_text={is_text}, encoding='{encoding}', help='{param_help}', "
|
|
37
|
+
f" {param_python_var_name} = IncludeFile('{param_name}', "
|
|
38
|
+
f"is_text={is_text}, encoding='{encoding}', help='''{param_help}''', "
|
|
38
39
|
f"required={param_required})\n"
|
|
39
40
|
)
|
|
40
41
|
else:
|
|
41
42
|
params_code += (
|
|
42
|
-
f" {
|
|
43
|
-
f"type={param_type}, help='{param_help}', required={param_required})\n"
|
|
43
|
+
f" {param_python_var_name} = Parameter('{param_name}', "
|
|
44
|
+
f"type={param_type}, help='''{param_help}''', required={param_required})\n"
|
|
44
45
|
)
|
|
45
46
|
|
|
46
47
|
project_decorator = f"@project(name='{project_name}')\n" if project_name else ""
|
metaflow/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
metaflow_version = "2.15.
|
|
1
|
+
metaflow_version = "2.15.7.1"
|
{ob_metaflow-2.15.6.1.data → ob_metaflow-2.15.7.1.data}/data/share/metaflow/devtools/Makefile
RENAMED
|
@@ -75,7 +75,7 @@ check-docker:
|
|
|
75
75
|
@if [ "$(shell uname)" = "Darwin" ]; then \
|
|
76
76
|
open -a Docker || (echo "❌ Please start Docker Desktop" && exit 1); \
|
|
77
77
|
else \
|
|
78
|
-
|
|
78
|
+
docker info >/dev/null 2>&1 || (echo "❌ Docker daemon is not running." && exit 1); \
|
|
79
79
|
fi
|
|
80
80
|
@echo "✅ Docker is running"
|
|
81
81
|
|
|
@@ -339,4 +339,4 @@ ui: setup-tilt
|
|
|
339
339
|
|
|
340
340
|
.PHONY: install-helm setup-minikube setup-tilt teardown-minikube tunnel up down check-docker install-curl install-gum install-brew up down dashboard shell ui all-up help
|
|
341
341
|
|
|
342
|
-
.DEFAULT_GOAL := help
|
|
342
|
+
.DEFAULT_GOAL := help
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: ob-metaflow
|
|
3
|
-
Version: 2.15.
|
|
3
|
+
Version: 2.15.7.1
|
|
4
4
|
Summary: Metaflow: More AI and ML, Less Engineering
|
|
5
5
|
Author: Netflix, Outerbounds & the Metaflow Community
|
|
6
6
|
Author-email: help@outerbounds.co
|
|
@@ -12,12 +12,13 @@ Requires-Dist: boto3
|
|
|
12
12
|
Requires-Dist: pylint
|
|
13
13
|
Requires-Dist: kubernetes
|
|
14
14
|
Provides-Extra: stubs
|
|
15
|
-
Requires-Dist: metaflow-stubs==2.15.
|
|
15
|
+
Requires-Dist: metaflow-stubs==2.15.7.1; extra == "stubs"
|
|
16
16
|
Dynamic: author
|
|
17
17
|
Dynamic: author-email
|
|
18
18
|
Dynamic: description
|
|
19
19
|
Dynamic: description-content-type
|
|
20
20
|
Dynamic: license
|
|
21
|
+
Dynamic: license-file
|
|
21
22
|
Dynamic: provides-extra
|
|
22
23
|
Dynamic: requires-dist
|
|
23
24
|
Dynamic: summary
|
|
@@ -36,7 +36,7 @@ metaflow/tuple_util.py,sha256=_G5YIEhuugwJ_f6rrZoelMFak3DqAR2tt_5CapS1XTY,830
|
|
|
36
36
|
metaflow/unbounded_foreach.py,sha256=p184WMbrMJ3xKYHwewj27ZhRUsSj_kw1jlye5gA9xJk,387
|
|
37
37
|
metaflow/util.py,sha256=mJBkV5tShIyCsLDeM1zygQGeciQVMrVPm_qI8Oi33G0,14656
|
|
38
38
|
metaflow/vendor.py,sha256=LZgXrh7ZSDmD32D1T5jj3OKKpXIqqxKzdMAOc5V0SD4,5162
|
|
39
|
-
metaflow/version.py,sha256=
|
|
39
|
+
metaflow/version.py,sha256=52FwS3gwBj3oIVkP-M7Crib5L_rmsEoWZFnVmVRof9A,30
|
|
40
40
|
metaflow/_vendor/__init__.py,sha256=y_CiwUD3l4eAKvTVDZeqgVujMy31cAM1qjAB-HfI-9s,353
|
|
41
41
|
metaflow/_vendor/typing_extensions.py,sha256=q9zxWa6p6CzF1zZvSkygSlklduHf_b3K7MCxGz7MJRc,134519
|
|
42
42
|
metaflow/_vendor/zipp.py,sha256=ajztOH-9I7KA_4wqDYygtHa6xUBVZgFpmZ8FE74HHHI,8425
|
|
@@ -209,11 +209,11 @@ metaflow/plugins/airflow/sensors/s3_sensor.py,sha256=iDReG-7FKnumrtQg-HY6cCUAAqN
|
|
|
209
209
|
metaflow/plugins/argo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
210
210
|
metaflow/plugins/argo/argo_client.py,sha256=A1kI9rjVjCadDsBscZ2Wk8xRBI6GNgWV6SU7TyrdfrI,16530
|
|
211
211
|
metaflow/plugins/argo/argo_events.py,sha256=_C1KWztVqgi3zuH57pInaE9OzABc2NnncC-zdwOMZ-w,5909
|
|
212
|
-
metaflow/plugins/argo/argo_workflows.py,sha256=
|
|
212
|
+
metaflow/plugins/argo/argo_workflows.py,sha256=ZylWUsa5m9s5UBgt4SoueFZExcwPIN9ZztIwO7ZLjQE,186877
|
|
213
213
|
metaflow/plugins/argo/argo_workflows_cli.py,sha256=27eLtcp5N5plapP-uIJqR41B0zDfXOV39AGM0nchymo,37952
|
|
214
214
|
metaflow/plugins/argo/argo_workflows_decorator.py,sha256=ogCSBmwsC2C3eusydrgjuAJd4qK18f1sI4jJwA4Fd-o,7800
|
|
215
215
|
metaflow/plugins/argo/argo_workflows_deployer.py,sha256=6kHxEnYXJwzNCM9swI8-0AckxtPWqwhZLerYkX8fxUM,4444
|
|
216
|
-
metaflow/plugins/argo/argo_workflows_deployer_objects.py,sha256=
|
|
216
|
+
metaflow/plugins/argo/argo_workflows_deployer_objects.py,sha256=lRRHUcpiyJZFltthxZoIp7aJWwy7pcdhaRm0etKN9es,14182
|
|
217
217
|
metaflow/plugins/argo/capture_error.py,sha256=Ys9dscGrTpW-ZCirLBU0gD9qBM0BjxyxGlUMKcwewQc,1852
|
|
218
218
|
metaflow/plugins/argo/generate_input_paths.py,sha256=loYsI6RFX9LlFsHb7Fe-mzlTTtRdySoOu7sYDy-uXK0,881
|
|
219
219
|
metaflow/plugins/argo/jobset_input_paths.py,sha256=-h0E_e0w6FMiBUod9Rf_XOSCtZv_C0exacw4q1SfIfg,501
|
|
@@ -389,12 +389,12 @@ metaflow/user_configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
|
389
389
|
metaflow/user_configs/config_decorators.py,sha256=qCKVAvd0NKgaCxQ2OThes5-DYHXq6A1HqURubYNeFdw,20481
|
|
390
390
|
metaflow/user_configs/config_options.py,sha256=m6jccSpzI4qUJ7vyYkYBIf8G3V0Caunxg_k7zg4Zlqg,21067
|
|
391
391
|
metaflow/user_configs/config_parameters.py,sha256=oeJGVKu1ao_YQX6Lg6P2FEv5k5-_F4sARLlVpTW9ezM,15502
|
|
392
|
-
ob_metaflow-2.15.
|
|
393
|
-
ob_metaflow-2.15.
|
|
394
|
-
ob_metaflow-2.15.
|
|
395
|
-
ob_metaflow-2.15.
|
|
396
|
-
ob_metaflow-2.15.
|
|
397
|
-
ob_metaflow-2.15.
|
|
398
|
-
ob_metaflow-2.15.
|
|
399
|
-
ob_metaflow-2.15.
|
|
400
|
-
ob_metaflow-2.15.
|
|
392
|
+
ob_metaflow-2.15.7.1.data/data/share/metaflow/devtools/Makefile,sha256=kZJDrvY2qRfqkue3mBecZutaGs35zsZR_vNu8WOBcto,13632
|
|
393
|
+
ob_metaflow-2.15.7.1.data/data/share/metaflow/devtools/Tiltfile,sha256=P5_rn_F3xYLN1_cEAQ9mNeS22HG2rb8beKIz2RIK6fU,20634
|
|
394
|
+
ob_metaflow-2.15.7.1.data/data/share/metaflow/devtools/pick_services.sh,sha256=DCnrMXwtApfx3B4S-YiZESMyAFHbXa3VuNL0MxPLyiE,2196
|
|
395
|
+
ob_metaflow-2.15.7.1.dist-info/licenses/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
|
|
396
|
+
ob_metaflow-2.15.7.1.dist-info/METADATA,sha256=l3msSYE394QrHyGRUsza3l92uJwq1DFGtB-LYYjvKD8,5935
|
|
397
|
+
ob_metaflow-2.15.7.1.dist-info/WHEEL,sha256=hLAVbN_1g7qXnG_3sY9erV0tsmek_RdDpqqJkhwSgEY,109
|
|
398
|
+
ob_metaflow-2.15.7.1.dist-info/entry_points.txt,sha256=RvEq8VFlgGe_FfqGOZi0D7ze1hLD0pAtXeNyGfzc_Yc,103
|
|
399
|
+
ob_metaflow-2.15.7.1.dist-info/top_level.txt,sha256=v1pDHoWaSaKeuc5fKTRSfsXCKSdW1zvNVmvA-i0if3o,9
|
|
400
|
+
ob_metaflow-2.15.7.1.dist-info/RECORD,,
|
{ob_metaflow-2.15.6.1.data → ob_metaflow-2.15.7.1.data}/data/share/metaflow/devtools/Tiltfile
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|