ob-metaflow 2.16.8.2rc1__py2.py3-none-any.whl → 2.17.0.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.

Files changed (62) hide show
  1. metaflow/_vendor/click/core.py +3 -4
  2. metaflow/_vendor/imghdr/__init__.py +7 -1
  3. metaflow/_vendor/yaml/__init__.py +427 -0
  4. metaflow/_vendor/yaml/composer.py +139 -0
  5. metaflow/_vendor/yaml/constructor.py +748 -0
  6. metaflow/_vendor/yaml/cyaml.py +101 -0
  7. metaflow/_vendor/yaml/dumper.py +62 -0
  8. metaflow/_vendor/yaml/emitter.py +1137 -0
  9. metaflow/_vendor/yaml/error.py +75 -0
  10. metaflow/_vendor/yaml/events.py +86 -0
  11. metaflow/_vendor/yaml/loader.py +63 -0
  12. metaflow/_vendor/yaml/nodes.py +49 -0
  13. metaflow/_vendor/yaml/parser.py +589 -0
  14. metaflow/_vendor/yaml/reader.py +185 -0
  15. metaflow/_vendor/yaml/representer.py +389 -0
  16. metaflow/_vendor/yaml/resolver.py +227 -0
  17. metaflow/_vendor/yaml/scanner.py +1435 -0
  18. metaflow/_vendor/yaml/serializer.py +111 -0
  19. metaflow/_vendor/yaml/tokens.py +104 -0
  20. metaflow/cli.py +11 -2
  21. metaflow/cli_components/run_cmds.py +0 -15
  22. metaflow/client/core.py +6 -1
  23. metaflow/extension_support/__init__.py +4 -3
  24. metaflow/flowspec.py +1 -113
  25. metaflow/graph.py +10 -134
  26. metaflow/lint.py +3 -70
  27. metaflow/metaflow_environment.py +14 -6
  28. metaflow/package/__init__.py +18 -9
  29. metaflow/packaging_sys/__init__.py +53 -43
  30. metaflow/packaging_sys/backend.py +21 -6
  31. metaflow/packaging_sys/tar_backend.py +16 -3
  32. metaflow/packaging_sys/v1.py +21 -21
  33. metaflow/plugins/argo/argo_client.py +31 -14
  34. metaflow/plugins/argo/argo_workflows.py +67 -22
  35. metaflow/plugins/argo/argo_workflows_cli.py +348 -85
  36. metaflow/plugins/argo/argo_workflows_deployer_objects.py +69 -0
  37. metaflow/plugins/aws/step_functions/step_functions.py +0 -6
  38. metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +30 -0
  39. metaflow/plugins/cards/card_modules/basic.py +3 -14
  40. metaflow/plugins/cards/card_modules/convert_to_native_type.py +7 -1
  41. metaflow/plugins/kubernetes/kubernetes_decorator.py +1 -1
  42. metaflow/plugins/kubernetes/kubernetes_job.py +8 -2
  43. metaflow/plugins/kubernetes/kubernetes_jobsets.py +26 -28
  44. metaflow/plugins/pypi/conda_decorator.py +4 -2
  45. metaflow/runner/click_api.py +14 -7
  46. metaflow/runner/deployer.py +160 -7
  47. metaflow/runner/subprocess_manager.py +20 -12
  48. metaflow/runtime.py +27 -102
  49. metaflow/task.py +25 -46
  50. metaflow/user_decorators/mutable_flow.py +3 -1
  51. metaflow/util.py +0 -29
  52. metaflow/vendor.py +23 -6
  53. metaflow/version.py +1 -1
  54. {ob_metaflow-2.16.8.2rc1.dist-info → ob_metaflow-2.17.0.1.dist-info}/METADATA +2 -2
  55. {ob_metaflow-2.16.8.2rc1.dist-info → ob_metaflow-2.17.0.1.dist-info}/RECORD +62 -45
  56. {ob_metaflow-2.16.8.2rc1.data → ob_metaflow-2.17.0.1.data}/data/share/metaflow/devtools/Makefile +0 -0
  57. {ob_metaflow-2.16.8.2rc1.data → ob_metaflow-2.17.0.1.data}/data/share/metaflow/devtools/Tiltfile +0 -0
  58. {ob_metaflow-2.16.8.2rc1.data → ob_metaflow-2.17.0.1.data}/data/share/metaflow/devtools/pick_services.sh +0 -0
  59. {ob_metaflow-2.16.8.2rc1.dist-info → ob_metaflow-2.17.0.1.dist-info}/WHEEL +0 -0
  60. {ob_metaflow-2.16.8.2rc1.dist-info → ob_metaflow-2.17.0.1.dist-info}/entry_points.txt +0 -0
  61. {ob_metaflow-2.16.8.2rc1.dist-info → ob_metaflow-2.17.0.1.dist-info}/licenses/LICENSE +0 -0
  62. {ob_metaflow-2.16.8.2rc1.dist-info → ob_metaflow-2.17.0.1.dist-info}/top_level.txt +0 -0
metaflow/runtime.py CHANGED
@@ -37,7 +37,7 @@ from .debug import debug
37
37
  from .decorators import flow_decorators
38
38
  from .flowspec import _FlowState
39
39
  from .mflog import mflog, RUNTIME_LOG_SOURCE
40
- from .util import to_unicode, compress_list, unicode_type, get_split_branch_for_node
40
+ from .util import to_unicode, compress_list, unicode_type
41
41
  from .clone_util import clone_task_helper
42
42
  from .unbounded_foreach import (
43
43
  CONTROL_TASK_TAG,
@@ -820,90 +820,39 @@ class NativeRuntime(object):
820
820
  # matching_split is the split-parent of the finished task
821
821
  matching_split = self._graph[self._graph[next_step].split_parents[-1]]
822
822
  _, foreach_stack = task.finished_id
823
-
824
- direct_parents = set(self._graph[next_step].in_funcs)
825
-
826
- # next step is a foreach join
823
+ index = ""
827
824
  if matching_split.type == "foreach":
828
- top_frame = task.finished_id[1][-1]
829
- num_splits = top_frame.num_splits
830
-
831
- finished_for_each_index = {}
832
- for finished_id, pathspec in self._finished.items():
833
- finished_step, finished_foreach_stack = finished_id
834
-
835
- if finished_step not in direct_parents:
836
- continue
837
-
838
- if (
839
- len(finished_foreach_stack) != len(task.finished_id[1])
840
- or finished_foreach_stack[:-1] != task.finished_id[1][:-1]
841
- ):
842
- continue
843
-
844
- current_index = finished_foreach_stack[-1].index
845
- finished_for_each_index[current_index] = pathspec
825
+ # next step is a foreach join
846
826
 
847
- if (
848
- num_splits is not None
849
- and len(finished_for_each_index) == num_splits
850
- ):
851
- required_tasks = list(finished_for_each_index.values())
852
- index = self._translate_index(task, next_step, "join")
853
- self._queue_push(
854
- next_step,
855
- {"input_paths": required_tasks, "join_type": "foreach"},
856
- index,
857
- )
858
- elif matching_split.type == "split-switch":
859
- required_tasks = [task.path]
860
- join_type = "split-switch"
827
+ def siblings(foreach_stack):
828
+ top = foreach_stack[-1]
829
+ bottom = list(foreach_stack[:-1])
830
+ for index in range(top.num_splits):
831
+ yield tuple(bottom + [top._replace(index=index)])
832
+
833
+ # required tasks are all split-siblings of the finished task
834
+ required_tasks = [
835
+ self._finished.get((task.step, s)) for s in siblings(foreach_stack)
836
+ ]
837
+ join_type = "foreach"
838
+ index = self._translate_index(task, next_step, "join")
839
+ else:
840
+ # next step is a split
841
+ # required tasks are all branches joined by the next step
842
+ required_tasks = [
843
+ self._finished.get((step, foreach_stack))
844
+ for step in self._graph[next_step].in_funcs
845
+ ]
846
+ join_type = "linear"
861
847
  index = self._translate_index(task, next_step, "linear")
848
+
849
+ if all(required_tasks):
850
+ # all tasks to be joined are ready. Schedule the next join step.
862
851
  self._queue_push(
863
852
  next_step,
864
853
  {"input_paths": required_tasks, "join_type": join_type},
865
854
  index,
866
855
  )
867
- else:
868
- split_node_name = matching_split.name
869
- expected_branches = set(matching_split.out_funcs)
870
-
871
- resolved_and_finished = {}
872
- for finished_id, pathspec in self._finished.items():
873
- finished_step, finished_foreach_stack = finished_id
874
-
875
- if finished_step not in direct_parents:
876
- continue
877
-
878
- if finished_foreach_stack != foreach_stack:
879
- continue
880
-
881
- branch = get_split_branch_for_node(
882
- self._graph, finished_step, split_node_name
883
- )
884
- if branch in expected_branches:
885
- resolved_and_finished[branch] = pathspec
886
-
887
- if set(resolved_and_finished.keys()) == expected_branches:
888
- required_tasks = list(resolved_and_finished.values())
889
- index = self._translate_index(task, next_step, "linear")
890
- self._queue_push(
891
- next_step,
892
- {"input_paths": required_tasks, "join_type": "linear"},
893
- index,
894
- )
895
-
896
- def _queue_task_switch(self, task, next_steps):
897
- if len(next_steps) != 1:
898
- msg = (
899
- "Step *{step}* is a switch statement but runtime got {actual} transitions. "
900
- "Expected exactly 1 chosen step."
901
- )
902
- raise Exception(msg.format(step=task.step, actual=len(next_steps)))
903
-
904
- chosen_step = next_steps[0]
905
- index = self._translate_index(task, chosen_step, "linear")
906
- self._queue_push(chosen_step, {"input_paths": [task.path]}, index)
907
856
 
908
857
  def _queue_task_foreach(self, task, next_steps):
909
858
  # CHECK: this condition should be enforced by the linter but
@@ -981,28 +930,7 @@ class NativeRuntime(object):
981
930
  next_steps = []
982
931
  foreach = None
983
932
  expected = self._graph[task.step].out_funcs
984
- if self._graph[task.step].type == "split-switch":
985
- if len(next_steps) != 1:
986
- msg = (
987
- "Switch step *{step}* should transition to exactly "
988
- "one step at runtime, but got: {actual}"
989
- )
990
- raise MetaflowInternalError(
991
- msg.format(step=task.step, actual=", ".join(next_steps))
992
- )
993
- if next_steps[0] not in expected:
994
- msg = (
995
- "Switch step *{step}* transitioned to unexpected "
996
- "step *{actual}*. Expected one of: {expected}"
997
- )
998
- raise MetaflowInternalError(
999
- msg.format(
1000
- step=task.step,
1001
- actual=next_steps[0],
1002
- expected=", ".join(expected),
1003
- )
1004
- )
1005
- elif next_steps != expected:
933
+ if next_steps != expected:
1006
934
  msg = (
1007
935
  "Based on static analysis of the code, step *{step}* "
1008
936
  "was expected to transition to step(s) *{expected}*. "
@@ -1026,9 +954,6 @@ class NativeRuntime(object):
1026
954
  elif foreach:
1027
955
  # Next step is a foreach child
1028
956
  self._queue_task_foreach(task, next_steps)
1029
- elif self._graph[task.step].type == "split-switch":
1030
- # Next step is switch - queue the chosen step
1031
- self._queue_task_switch(task, next_steps)
1032
957
  else:
1033
958
  # Next steps are normal linear steps
1034
959
  for step in next_steps:
metaflow/task.py CHANGED
@@ -670,49 +670,31 @@ class MetaflowTask(object):
670
670
 
671
671
  if join_type:
672
672
  # Join step:
673
- passdown_params = None
674
-
675
- # Ensure that we have the right number of inputs.
676
- if join_type not in ("foreach", "split-switch"):
677
- # Find the corresponding split node from the graph.
678
- split_node = self.flow._graph[node.split_parents[-1]]
679
- # The number of expected inputs is the number of branches from that split.
680
- expected_inputs = len(split_node.out_funcs)
681
-
682
- if len(inputs) != expected_inputs:
683
- raise MetaflowDataMissing(
684
- "Join *%s* expected %d inputs but only %d inputs "
685
- "were found" % (step_name, expected_inputs, len(inputs))
686
- )
687
- if join_type == "split-switch":
688
- # Switch joins only have one input path (the chosen branch from the switch).
689
- # This occurs when a switch leads directly to a step without other converging branches.
690
- if len(inputs) > 1:
691
- raise MetaflowInternalError(
692
- f"Step *{step_name}* is a switch join but gets multiple inputs"
693
- )
694
- # Use input datastore directly - no need to copy parameters since we're not
695
- # creating a new output datastore
696
- self.flow._set_datastore(inputs[0])
697
- passdown_params = False
698
- else:
699
- # Multiple input contexts are passed in as an argument
700
- # to the step function.
701
- input_obj = Inputs(self._clone_flow(inp) for inp in inputs)
702
- self.flow._set_datastore(output)
703
- passdown_params = True
704
- # initialize parameters (if they exist)
705
- # We take Parameter values from the first input,
706
- # which is always safe since parameters are read-only
707
- if passdown_params is not None:
708
- current._update_env(
709
- {
710
- "parameter_names": self._init_parameters(
711
- inputs[0], passdown=passdown_params
712
- ),
713
- "graph_info": self.flow._graph_info,
714
- }
673
+
674
+ # Ensure that we have the right number of inputs. The
675
+ # foreach case is checked above.
676
+ if join_type != "foreach" and len(inputs) != len(node.in_funcs):
677
+ raise MetaflowDataMissing(
678
+ "Join *%s* expected %d "
679
+ "inputs but only %d inputs "
680
+ "were found" % (step_name, len(node.in_funcs), len(inputs))
715
681
  )
682
+
683
+ # Multiple input contexts are passed in as an argument
684
+ # to the step function.
685
+ input_obj = Inputs(self._clone_flow(inp) for inp in inputs)
686
+ self.flow._set_datastore(output)
687
+ # initialize parameters (if they exist)
688
+ # We take Parameter values from the first input,
689
+ # which is always safe since parameters are read-only
690
+ current._update_env(
691
+ {
692
+ "parameter_names": self._init_parameters(
693
+ inputs[0], passdown=True
694
+ ),
695
+ "graph_info": self.flow._graph_info,
696
+ }
697
+ )
716
698
  else:
717
699
  # Linear step:
718
700
  # We are running with a single input context.
@@ -770,10 +752,7 @@ class MetaflowTask(object):
770
752
  )
771
753
 
772
754
  if join_type:
773
- if join_type == "split-switch":
774
- self._exec_step_function(step_func, orig_step_func)
775
- else:
776
- self._exec_step_function(step_func, orig_step_func, input_obj)
755
+ self._exec_step_function(step_func, orig_step_func, input_obj)
777
756
  else:
778
757
  self._exec_step_function(step_func, orig_step_func)
779
758
 
@@ -347,8 +347,10 @@ class MutableFlow:
347
347
  "Mutable flow adding flow decorator '%s'" % deco_type
348
348
  )
349
349
 
350
+ # self._flow_cls._flow_decorators is a dictionary of form :
351
+ # <deco_name> : [deco_instance, deco_instance, ...]
350
352
  existing_deco = [
351
- d for d in self._flow_cls._flow_decorators if d.name == flow_deco.name
353
+ d for d in self._flow_cls._flow_decorators if d == flow_deco.name
352
354
  ]
353
355
 
354
356
  if flow_deco.allow_multiple or not existing_deco:
metaflow/util.py CHANGED
@@ -212,35 +212,6 @@ def write_latest_run_id(obj, run_id):
212
212
  f.write(str(run_id))
213
213
 
214
214
 
215
- def get_split_branch_for_node(graph, node_name, split_node_name):
216
- """
217
- Walks backwards from a node to find which branch of a given split
218
- it belongs to. The branches are the direct children of the split node.
219
- """
220
-
221
- # The branches are the direct children of the split node
222
- split_branches = set(graph[split_node_name].out_funcs)
223
-
224
- # Use a queue for breadth-first search backwards
225
- q = [node_name]
226
- visited = {node_name}
227
-
228
- while q:
229
- current_name = q.pop(0)
230
-
231
- # If we have reached one of the original branches, we are done
232
- if current_name in split_branches:
233
- return current_name
234
-
235
- # Add this node's parents to the queue to continue searching
236
- for parent_name in graph[current_name].in_funcs:
237
- if parent_name not in visited:
238
- visited.add(parent_name)
239
- q.append(parent_name)
240
-
241
- return None
242
-
243
-
244
215
  def get_object_package_version(obj):
245
216
  """
246
217
  Return the top level package name and package version that defines the
metaflow/vendor.py CHANGED
@@ -63,14 +63,29 @@ def find_vendored_libs(vendor_dir, whitelist, whitelist_dirs):
63
63
  return vendored_libs, paths
64
64
 
65
65
 
66
- def fetch_licenses(*info_dir, vendor_dir):
67
- for file in chain.from_iterable(map(iter_subtree, info_dir)):
68
- if "LICENSE" in file.name:
69
- library = file.parent.name.split("-")[0]
70
- shutil.copy(file, vendor_dir / ("%s.LICENSE" % library))
71
- else:
66
+ def fetch_licenses(*info_dirs, vendor_dir):
67
+ for dist_info in info_dirs:
68
+ metadata_file = dist_info / "METADATA"
69
+ if not metadata_file.exists():
70
+ continue
71
+
72
+ project_name = None
73
+ for line in metadata_file.read_text("utf-8").splitlines():
74
+ if line.startswith("Name: "):
75
+ project_name = line.split("Name: ", 1)[1].strip()
76
+ break
77
+ if not project_name:
72
78
  continue
73
79
 
80
+ for item in dist_info.iterdir():
81
+ if item.is_file() and re.search(r"(LICENSE|COPYING)", item.name, re.I):
82
+ shutil.copy(item, vendor_dir / f"{project_name}.LICENSE")
83
+ elif item.is_dir() and item.name.lower() == "licenses":
84
+ for license_file in item.iterdir():
85
+ if license_file.is_file():
86
+ dest_name = f"{project_name}.{license_file.name}"
87
+ shutil.copy(license_file, vendor_dir / dest_name)
88
+
74
89
 
75
90
  def vendor(vendor_dir):
76
91
  # remove everything
@@ -108,6 +123,8 @@ def vendor(vendor_dir):
108
123
  "-r",
109
124
  "_vendor/vendor_%s.txt" % subdir,
110
125
  "--no-compile",
126
+ "--no-binary",
127
+ ":all:",
111
128
  ]
112
129
  )
113
130
 
metaflow/version.py CHANGED
@@ -1 +1 @@
1
- metaflow_version = "2.16.8.2rc1"
1
+ metaflow_version = "2.17.0.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ob-metaflow
3
- Version: 2.16.8.2rc1
3
+ Version: 2.17.0.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,7 +12,7 @@ Requires-Dist: boto3
12
12
  Requires-Dist: pylint
13
13
  Requires-Dist: kubernetes
14
14
  Provides-Extra: stubs
15
- Requires-Dist: metaflow-stubs==2.16.8.2rc1; extra == "stubs"
15
+ Requires-Dist: metaflow-stubs==2.17.0.1; extra == "stubs"
16
16
  Dynamic: author
17
17
  Dynamic: author-email
18
18
  Dynamic: description
@@ -1,7 +1,7 @@
1
1
  metaflow/R.py,sha256=CqVfIatvmjciuICNnoyyNGrwE7Va9iXfLdFbQa52hwA,3958
2
2
  metaflow/__init__.py,sha256=bS5KESnJIVfDYZIYf_CEYsUOj49014PFuUWtA6KOCo8,6420
3
3
  metaflow/cards.py,sha256=IbRmredvmFEU0V6JL7DR8wCESwVmmZJubr6x24bo7U4,442
4
- metaflow/cli.py,sha256=WG_2HjYM5ETGl_Vw6nQmFxROKXHH3ZqK1WVmFbGp4r4,22453
4
+ metaflow/cli.py,sha256=uF1ACHw3aWCe6ypFP1SplMZWVA8dgtMYc2z6I4v5neA,22802
5
5
  metaflow/cli_args.py,sha256=hDsdWdRmfXYifVGq6b6FDfgoWxtIG2nr_lU6EBV0Pnk,3584
6
6
  metaflow/clone_util.py,sha256=LSuVbFpPUh92UW32DBcnZbL0FFw-4w3CLa0tpEbCkzk,2066
7
7
  metaflow/cmd_with_io.py,sha256=kl53HkAIyv0ecpItv08wZYczv7u3msD1VCcciqigqf0,588
@@ -10,16 +10,16 @@ metaflow/decorators.py,sha256=4g11F5xtXmKRMNfeFd9yKOWpiHAoyxfbfDqIWak1_Q0,30831
10
10
  metaflow/event_logger.py,sha256=joTVRqZPL87nvah4ZOwtqWX8NeraM_CXKXXGVpKGD8o,780
11
11
  metaflow/events.py,sha256=ahjzkSbSnRCK9RZ-9vTfUviz_6gMvSO9DGkJ86X80-k,5300
12
12
  metaflow/exception.py,sha256=_m9ZBJM0cooHRslDqfxCPQmkChqaTh6fGxp7HvISnYI,5161
13
- metaflow/flowspec.py,sha256=Lv9Rl-2jXLceJGx0baLG6-JD4v96jUKyJNK2a7BBAlw,42971
14
- metaflow/graph.py,sha256=9QMNV5aW973h47-V6hURpKULCHVQ-On2D49EHtFjx6U,18527
13
+ metaflow/flowspec.py,sha256=hCONv0wlC-MgxNUDWzDtS_4ayr-0sqPNUdnpXJ75b1Y,37944
14
+ metaflow/graph.py,sha256=alPCQPexm-0hjquQgLYNhoe6PbXL_LXMg1L__G1DxYw,13183
15
15
  metaflow/includefile.py,sha256=RtISGl1V48qjkJBakUZ9yPpHV102h7pOIFiKP8PLHpc,20927
16
16
  metaflow/integrations.py,sha256=LlsaoePRg03DjENnmLxZDYto3NwWc9z_PtU6nJxLldg,1480
17
- metaflow/lint.py,sha256=pRflBshJHCZ8-EAmfxo031zYuuescxJ-MiK8QbwJZSU,14358
17
+ metaflow/lint.py,sha256=x4p6tnRzYqNNniCGXyrUW0WuYfTUgnaOMRivxvnxask,11661
18
18
  metaflow/meta_files.py,sha256=vlgJHI8GJUKzXoxdrVoH8yyCF5bhFgwYemUgnyd1wgM,342
19
19
  metaflow/metaflow_config.py,sha256=xEAsJ-Fa-fkDq1hzI72Hx9BC00-S1yQoqgSYG9K46AY,24267
20
20
  metaflow/metaflow_config_funcs.py,sha256=5GlvoafV6SxykwfL8D12WXSfwjBN_NsyuKE_Q3gjGVE,6738
21
21
  metaflow/metaflow_current.py,sha256=pfkXmkyHeMJhxIs6HBJNBEaBDpcl5kz9Wx5mW6F_3qo,7164
22
- metaflow/metaflow_environment.py,sha256=YVq2j8cK6JjbmBkPXoTBNiAw29H1TVpDsnpVN-ZTBR4,11210
22
+ metaflow/metaflow_environment.py,sha256=20PIhA5R_rJneNj8f8UaWRmznGRPcEd6hP7goj_rc1s,11477
23
23
  metaflow/metaflow_git.py,sha256=Pb_VtvQzcjpuuM7UfC2u5kz85EbPMUfspl2UrPWBQMM,3647
24
24
  metaflow/metaflow_profile.py,sha256=jKPEW-hmAQO-htSxb9hXaeloLacAh41A35rMZH6G8pA,418
25
25
  metaflow/metaflow_version.py,sha256=KJJAxhOMY28DaavMpvJUzvw-G6MI-29Fi2A6AEcQpok,7495
@@ -29,14 +29,14 @@ metaflow/parameters.py,sha256=b3rS6P-TeEj2JgPEKaiy0ys1B_JtOGJ6XM0KkY2layc,18649
29
29
  metaflow/procpoll.py,sha256=U2tE4iK_Mwj2WDyVTx_Uglh6xZ-jixQOo4wrM9OOhxg,2859
30
30
  metaflow/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
31
  metaflow/pylint_wrapper.py,sha256=tJjmdsgtbHTCqg_oA6fV6SbWq_3V5XUgE9xH0zJ1CGU,3004
32
- metaflow/runtime.py,sha256=dxJT9Jiz091kMdqwfLxqPneXeoucdIkL4r4fgLueYfA,80937
32
+ metaflow/runtime.py,sha256=KwHKZ6kNZuC8HgL_r0-gTi9Y-GPAhTz0tNXydQFjZO4,77617
33
33
  metaflow/tagging_util.py,sha256=ctyf0Q1gBi0RyZX6J0e9DQGNkNHblV_CITfy66axXB4,2346
34
- metaflow/task.py,sha256=olXBWgxd_qehwPkiVO_RQGyrt5zIPlK1VY2cCJfAO7c,35800
34
+ metaflow/task.py,sha256=1DslU1CHoEeFIilABQvk4Zbpl-yCdZMEkECnv2LQAZg,34356
35
35
  metaflow/tuple_util.py,sha256=_G5YIEhuugwJ_f6rrZoelMFak3DqAR2tt_5CapS1XTY,830
36
36
  metaflow/unbounded_foreach.py,sha256=p184WMbrMJ3xKYHwewj27ZhRUsSj_kw1jlye5gA9xJk,387
37
- metaflow/util.py,sha256=SKQbbOu055AmPGjPxoJ3ahDkeNlZEL8ejLLKd3lEJOQ,15503
38
- metaflow/vendor.py,sha256=EDZokNMrx1PU07jNMiWFMFtC7TL03pMXZ1kKn13k-2g,5139
39
- metaflow/version.py,sha256=B0X4_E_IabFH1qjPjp-xZ_0SV3AhhSaCzSkjl3eEWMU,33
37
+ metaflow/util.py,sha256=g2SOU_CRzJLgDM_UGF9QDMANMAIHAsDRXE6S76_YzsY,14594
38
+ metaflow/vendor.py,sha256=A82CGHfStZGDP5pQ5XzRjFkbN1ZC-vFmghXIrzMDDNg,5868
39
+ metaflow/version.py,sha256=rbInJxd6O8bDUbgjHmDU2XInimwrKLQ13sO0iA5sw0o,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
@@ -47,7 +47,7 @@ metaflow/_vendor/click/_termui_impl.py,sha256=yNktUMAdjYOU1HMkq915jR3zgAzUNtGSQq
47
47
  metaflow/_vendor/click/_textwrap.py,sha256=ajCzkzFly5tjm9foQ5N9_MOeaYJMBjAltuFa69n4iXY,1197
48
48
  metaflow/_vendor/click/_unicodefun.py,sha256=apLSNEBZgUsQNPMUv072zJ1swqnm0dYVT5TqcIWTt6w,4201
49
49
  metaflow/_vendor/click/_winconsole.py,sha256=6YDu6Rq1Wxx4w9uinBMK2LHvP83aerZM9GQurlk3QDo,10010
50
- metaflow/_vendor/click/core.py,sha256=nzhJwIeN4LBFz92JnWxlrrsYHqBGhSQPbkkUI2p_hXA,77654
50
+ metaflow/_vendor/click/core.py,sha256=V6DJzastGhrC6WTDwV9MSLwcJUdX2Uf1ypmgkjBdn_Y,77650
51
51
  metaflow/_vendor/click/decorators.py,sha256=3TvEO_BkaHl7k6Eh1G5eC7JK4LKPdpFqH9JP0QDyTlM,11215
52
52
  metaflow/_vendor/click/exceptions.py,sha256=3pQAyyMFzx5A3eV0Y27WtDTyGogZRbrC6_o5DjjKBbw,8118
53
53
  metaflow/_vendor/click/formatting.py,sha256=Wb4gqFEpWaKPgAbOvnkCl8p-bEZx5KpM5ZSByhlnJNk,9281
@@ -57,7 +57,7 @@ metaflow/_vendor/click/termui.py,sha256=G7QBEKIepRIGLvNdGwBTYiEtSImRxvTO_AglVpyH
57
57
  metaflow/_vendor/click/testing.py,sha256=EUEsDUqNXFgCLhZ0ZFOROpaVDA5I_rijwnNPE6qICgA,12854
58
58
  metaflow/_vendor/click/types.py,sha256=wuubik4VqgqAw5dvbYFkDt-zSAx97y9TQXuXcVaRyQA,25045
59
59
  metaflow/_vendor/click/utils.py,sha256=4VEcJ7iEHwjnFuzEuRtkT99o5VG3zqSD7Q2CVzv13WU,15940
60
- metaflow/_vendor/imghdr/__init__.py,sha256=wbtS6ggW20xfNCBlWrSkdvs4KXCRQekfGla5xv4obVY,4398
60
+ metaflow/_vendor/imghdr/__init__.py,sha256=h_vK71LtjerpJ1h1EU_bv_CuA1Qoq18qdH8Zj19dHBk,4667
61
61
  metaflow/_vendor/importlib_metadata/__init__.py,sha256=dH_kBRM61VLiIV0zuU5macqk3XYY-ljq_9gt8ZcJDMI,30525
62
62
  metaflow/_vendor/importlib_metadata/_adapters.py,sha256=B6fCi5-8mLVDFUZj3krI5nAo-mKp1dH_qIavyIyFrJs,1862
63
63
  metaflow/_vendor/importlib_metadata/_collections.py,sha256=CJ0OTCHIjWA0ZIVS4voORAsn2R4R2cQBEtPsZEJpASY,743
@@ -133,14 +133,31 @@ metaflow/_vendor/v3_7/typeguard/_transformer.py,sha256=ezvPCMScd3XQUj_QDKGaPJSQF
133
133
  metaflow/_vendor/v3_7/typeguard/_union_transformer.py,sha256=qdAi2FQYikacoCk3YybNcYjWbC4jDM3y0Jfcu3qvfKw,1353
134
134
  metaflow/_vendor/v3_7/typeguard/_utils.py,sha256=Bj8D17zny8yTan8CNG6HhlL8Gb-BOMGP-5mmElNk6e8,5086
135
135
  metaflow/_vendor/v3_7/typeguard/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
+ metaflow/_vendor/yaml/__init__.py,sha256=XFUNbKTg4afAd0BETjGQ1mKQ97_g5jbE1C0WoKc74dc,13170
137
+ metaflow/_vendor/yaml/composer.py,sha256=_Ko30Wr6eDWUeUpauUGT3Lcg9QPBnOPVlTnIMRGJ9FM,4883
138
+ metaflow/_vendor/yaml/constructor.py,sha256=O3Uaf0_J_5GQBoeI9ZNhpJAhtdagr_X2HzDgGbZOMnw,28627
139
+ metaflow/_vendor/yaml/cyaml.py,sha256=LiMkvchNonfoy1F6ec9L2BiUz3r0bwF4hympASJX1Ic,3846
140
+ metaflow/_vendor/yaml/dumper.py,sha256=PLctZlYwZLp7XmeUdwRuv4nYOZ2UBnDIUy8-lKfLF-o,2837
141
+ metaflow/_vendor/yaml/emitter.py,sha256=jghtaU7eFwg31bG0B7RZea_29Adi9CKmXq_QjgQpCkQ,43006
142
+ metaflow/_vendor/yaml/error.py,sha256=Ah9z-toHJUbE9j-M8YpxgSRM5CgLCcwVzJgLLRF2Fxo,2533
143
+ metaflow/_vendor/yaml/events.py,sha256=50_TksgQiE4up-lKo_V-nBy-tAIxkIPQxY5qDhKCeHw,2445
144
+ metaflow/_vendor/yaml/loader.py,sha256=UVa-zIqmkFSCIYq_PgSGm4NSJttHY2Rf_zQ4_b1fHN0,2061
145
+ metaflow/_vendor/yaml/nodes.py,sha256=gPKNj8pKCdh2d4gr3gIYINnPOaOxGhJAUiYhGRnPE84,1440
146
+ metaflow/_vendor/yaml/parser.py,sha256=ilWp5vvgoHFGzvOZDItFoGjD6D42nhlZrZyjAwa0oJo,25495
147
+ metaflow/_vendor/yaml/reader.py,sha256=0dmzirOiDG4Xo41RnuQS7K9rkY3xjHiVasfDMNTqCNw,6794
148
+ metaflow/_vendor/yaml/representer.py,sha256=82UM3ZxUQKqsKAF4ltWOxCS6jGPIFtXpGs7mvqyv4Xs,14184
149
+ metaflow/_vendor/yaml/resolver.py,sha256=DJCjpQr8YQCEYYjKEYqTl0GrsZil2H4aFOI9b0Oe-U4,8970
150
+ metaflow/_vendor/yaml/scanner.py,sha256=KeQIKGNlSyPE8QDwionHxy9CgbqE5teJEz05FR9-nAg,51277
151
+ metaflow/_vendor/yaml/serializer.py,sha256=ChuFgmhU01hj4xgI8GaKv6vfM2Bujwa9i7d2FAHj7cA,4165
152
+ metaflow/_vendor/yaml/tokens.py,sha256=lTQIzSVw8Mg9wv459-TjiOQe6wVziqaRlqX2_89rp54,2573
136
153
  metaflow/cli_components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
154
  metaflow/cli_components/dump_cmd.py,sha256=SZEX51BWNd1o3H2uHDkYA8KRvou5X8g5rTwpdu5vnNQ,2704
138
155
  metaflow/cli_components/init_cmd.py,sha256=AIkQHNlMRsmf8fxXwXQSEWTuv_9nxNY82-IdWsgGjEs,1554
139
- metaflow/cli_components/run_cmds.py,sha256=_xk2asy3SkqsJfZVhbgYSJ2rkkJe7cvLik6b0HT-704,12264
156
+ metaflow/cli_components/run_cmds.py,sha256=xULZQ2UrxLNsWjQIZd38EbOGNBw8UJT7w_T19UbS_fg,11555
140
157
  metaflow/cli_components/step_cmd.py,sha256=zGJgTv7wxrv34nWDi__CHaC2eS6kItR95EdVGJX803w,4766
141
158
  metaflow/cli_components/utils.py,sha256=gpoDociadjnJD7MuiJup_MDR02ZJjjleejr0jPBu29c,6057
142
159
  metaflow/client/__init__.py,sha256=1GtQB4Y_CBkzaxg32L1syNQSlfj762wmLrfrDxGi1b8,226
143
- metaflow/client/core.py,sha256=h_sPTG36U2UPiZRRwL-oQ5EAeJ6ijfXaibhinb22Hj0,83548
160
+ metaflow/client/core.py,sha256=tj2PuqQt1RXg8GuyLQ_WRuxYEvTaDyi_lW18YGwWvAQ,83714
144
161
  metaflow/client/filecache.py,sha256=Wy0yhhCqC1JZgebqi7z52GCwXYnkAqMZHTtxThvwBgM,15229
145
162
  metaflow/cmd/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
146
163
  metaflow/cmd/configure_cmd.py,sha256=o-DKnUf2FBo_HiMVyoyzQaGBSMtpbEPEdFTQZ0hkU-k,33396
@@ -160,7 +177,7 @@ metaflow/datastore/exceptions.py,sha256=r7Ab5FvHIzyFh6kwiptA1lO5nLqWg0xRBoeYGefv
160
177
  metaflow/datastore/flow_datastore.py,sha256=rDMEHdYwub1PwLp2uaK-8CHdd8hiwxqeELXzsUfuqZs,10250
161
178
  metaflow/datastore/inputs.py,sha256=i43dXr2xvgtsgKMO9allgCR18bk80GeayeQFyUTH36w,449
162
179
  metaflow/datastore/task_datastore.py,sha256=bEti1X5rvKBQykfvsoAnmHXel_itZbI5MeLrEpWPHPQ,35059
163
- metaflow/extension_support/__init__.py,sha256=Y0DoVZ1Eh4W7aO9DMIXrI8xUoJFP40Oux2gVWv-xoYY,52488
180
+ metaflow/extension_support/__init__.py,sha256=xLkhh0IzQ70IfF9j6MopMY02SMpEVI_eguksIOEXbDs,52522
164
181
  metaflow/extension_support/_empty_file.py,sha256=vz61sSExf5DZH3JCqdfwkp7l_NrJR8HV175kG82yUas,133
165
182
  metaflow/extension_support/cmd.py,sha256=hk8iBUUINqvKCDxInKgWpum8ThiRZtHSJP7qBASHzl8,5711
166
183
  metaflow/extension_support/integrations.py,sha256=AWAh-AZ-vo9IxuAVEjGw3s8p_NMm2DKHYx10oC51gPU,5506
@@ -174,13 +191,13 @@ metaflow/mflog/mflog.py,sha256=VebXxqitOtNAs7VJixnNfziO_i_urG7bsJ5JiB5IXgY,4370
174
191
  metaflow/mflog/save_logs.py,sha256=4p1OwozsHJBslOzAf0wUq2XPMNpEOZWM68MgWzh_jJY,2330
175
192
  metaflow/mflog/save_logs_periodically.py,sha256=2Uvk9hi-zlCqXxOQoXmmjH1SCugfw6eG6w70WgfI-ho,1256
176
193
  metaflow/mflog/tee.py,sha256=wTER15qeHuiRpCkOqo-bd-r3Gj-EVlf3IvWRCA4beW4,887
177
- metaflow/package/__init__.py,sha256=O2fCTo7Ktm4TnjA6blkepUWs8sf3fTY1q5y8I5nk8Ak,25962
178
- metaflow/packaging_sys/__init__.py,sha256=VIDa-J_UNyD-Axf5Iuom6SUssQfqAcTq4ezHU6_uqIM,31529
179
- metaflow/packaging_sys/backend.py,sha256=b3OX42Io8xP5l56zhXZxi-VLqXBr-B2q8AM7cWZvmMw,3104
194
+ metaflow/package/__init__.py,sha256=1ckiqYx4mJ0Rtp5vr5ta3fIx1LuCSkTdoHy0Gzx_Lwo,26384
195
+ metaflow/packaging_sys/__init__.py,sha256=HzpznaW1T9xppCIsxI7MzcTIu6QasyDZ3pJ5fRjzuao,31994
196
+ metaflow/packaging_sys/backend.py,sha256=uiJNMTTh3RV9_Zqkd5MBd2TnukfxpY2OEGBOmDroeTM,3534
180
197
  metaflow/packaging_sys/distribution_support.py,sha256=VvikZBCH8N1TBZZ2Twk8jH1brmiinKWCD3y_aFqBsIw,4937
181
- metaflow/packaging_sys/tar_backend.py,sha256=EYZD5iGEzPoO4L6IQhmrZC1QlaOPV471SBKyOYBS2XU,2593
198
+ metaflow/packaging_sys/tar_backend.py,sha256=nFWuXiwYjWQkFdV2KaZ6gazNVvtY84Eqsh9txhU3pNY,3010
182
199
  metaflow/packaging_sys/utils.py,sha256=x8SVglJvY5mIAilS7MqZi2PpMr6IEyi6RCg3l8hN3G0,2972
183
- metaflow/packaging_sys/v1.py,sha256=_YlVPR7oSYt7B8dHOS0Fb6ZPrxaSZMSQyRhdN8CL8ZY,20483
200
+ metaflow/packaging_sys/v1.py,sha256=kbNK0-pDAv3QJPZ789TE0UirGXcHbXkVQiyNT815H7A,20631
184
201
  metaflow/plugins/__init__.py,sha256=yFxjJOlnfap7tQMNgSgaso2tl_zr1BcWL7KoUKk4c9Y,8617
185
202
  metaflow/plugins/catch_decorator.py,sha256=UOM2taN_OL2RPpuJhwEOA9ZALm0-hHD0XS2Hn2GUev0,4061
186
203
  metaflow/plugins/debug_logger.py,sha256=mcF5HYzJ0NQmqCMjyVUk3iAP-heroHRIiVWQC6Ha2-I,879
@@ -211,13 +228,13 @@ metaflow/plugins/airflow/sensors/base_sensor.py,sha256=s-OQBfPWZ_T3wn96Ua59CCEj1
211
228
  metaflow/plugins/airflow/sensors/external_task_sensor.py,sha256=zhYlrZnXT20KW8-fVk0fCNtTyNiKJB5PMVASacu30r0,6034
212
229
  metaflow/plugins/airflow/sensors/s3_sensor.py,sha256=iDReG-7FKnumrtQg-HY6cCUAAqNA90nARrjjjEEk_x4,3275
213
230
  metaflow/plugins/argo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
214
- metaflow/plugins/argo/argo_client.py,sha256=A1kI9rjVjCadDsBscZ2Wk8xRBI6GNgWV6SU7TyrdfrI,16530
231
+ metaflow/plugins/argo/argo_client.py,sha256=jLz0FjCTBvFLZt-8lZcMQhDcInhgEcGdPrU2Gvh67zA,17080
215
232
  metaflow/plugins/argo/argo_events.py,sha256=_C1KWztVqgi3zuH57pInaE9OzABc2NnncC-zdwOMZ-w,5909
216
- metaflow/plugins/argo/argo_workflows.py,sha256=f-GXtT0RwLNp1xllL6Z2uMSV1GFTl-xKuwNTCWPX9ms,190058
217
- metaflow/plugins/argo/argo_workflows_cli.py,sha256=pfqYH0nqkgmkDcz3EPIz5yR_PSdd3CfLb92wzplS8fY,38810
233
+ metaflow/plugins/argo/argo_workflows.py,sha256=vdPn3fF1ckJ03u23aY9j2Q9nbZuazsa7tBnQxJsyBU8,191318
234
+ metaflow/plugins/argo/argo_workflows_cli.py,sha256=L5KwcT6Vd4HqAXFCPGmHUONgM2eOCTbvxdoIs6CQchw,51877
218
235
  metaflow/plugins/argo/argo_workflows_decorator.py,sha256=ogCSBmwsC2C3eusydrgjuAJd4qK18f1sI4jJwA4Fd-o,7800
219
236
  metaflow/plugins/argo/argo_workflows_deployer.py,sha256=6kHxEnYXJwzNCM9swI8-0AckxtPWqwhZLerYkX8fxUM,4444
220
- metaflow/plugins/argo/argo_workflows_deployer_objects.py,sha256=7OiapcIM_r-aBkuIobhofgLC5NRJHC-p9bvBmxvhqoM,12500
237
+ metaflow/plugins/argo/argo_workflows_deployer_objects.py,sha256=ydBE-lP42eNKvep36nQdUBPS3rQQErvoA7rCgyp5M6I,14949
221
238
  metaflow/plugins/argo/capture_error.py,sha256=Ys9dscGrTpW-ZCirLBU0gD9qBM0BjxyxGlUMKcwewQc,1852
222
239
  metaflow/plugins/argo/exit_hooks.py,sha256=nh8IEkzAtQnbKVnh3N9CVnVKZB39Bjm3e0LFrACsLz8,6109
223
240
  metaflow/plugins/argo/generate_input_paths.py,sha256=loYsI6RFX9LlFsHb7Fe-mzlTTtRdySoOu7sYDy-uXK0,881
@@ -238,12 +255,12 @@ metaflow/plugins/aws/step_functions/event_bridge_client.py,sha256=U9-tqKdih4KR-Z
238
255
  metaflow/plugins/aws/step_functions/production_token.py,sha256=rREx9djJzKYDiGhPCZ919pSpfrBCYuhSL5WlwnAojNM,1890
239
256
  metaflow/plugins/aws/step_functions/schedule_decorator.py,sha256=Ab1rW8O_no4HNZm4__iBmFDCDW0Z8-TgK4lnxHHA6HI,1940
240
257
  metaflow/plugins/aws/step_functions/set_batch_environment.py,sha256=ibiGWFHDjKcLfprH3OsX-g2M9lUsh6J-bp7v2cdLhD4,1294
241
- metaflow/plugins/aws/step_functions/step_functions.py,sha256=3mkd9FCiWe1QlduLq73hlfdA6RonxstSYKw80jZiVqU,53819
258
+ metaflow/plugins/aws/step_functions/step_functions.py,sha256=Svz232OA5UewY5W9gfDk-xGqiWyCNPkuUwlPxe9g5j8,53577
242
259
  metaflow/plugins/aws/step_functions/step_functions_cli.py,sha256=tLIfDwgdcfBjkjmQMNgVjXY85HoDZNA6lNcOtZZZA1A,26495
243
260
  metaflow/plugins/aws/step_functions/step_functions_client.py,sha256=DKpNwAIWElvWjFANs5Ku3rgzjxFoqAD6k-EF8Xhkg3Q,4754
244
261
  metaflow/plugins/aws/step_functions/step_functions_decorator.py,sha256=jzDHYmgU_XvLffZDazR_1viow_1qQFblx9UKyjtoM_0,3788
245
262
  metaflow/plugins/aws/step_functions/step_functions_deployer.py,sha256=JKYtDhKivtXUWPklprZFzkqezh14loGDmk8mNk6QtpI,3714
246
- metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py,sha256=zDWmrOeCEL2_uBbmdmXbVpHVTjswwjEL_rOux6MAcRI,7303
263
+ metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py,sha256=n7AEPs3uULXEuG3TVf2ZlTNq1LFd2n7x1IPVO2T5Ekk,8174
247
264
  metaflow/plugins/azure/__init__.py,sha256=GuuhTVC-zSdyAf79a1wiERMq0Zts7fwVT7t9fAf234A,100
248
265
  metaflow/plugins/azure/azure_credential.py,sha256=JmdGEbVzgxy8ucqnQDdTTI_atyMX9WSZUw3qYOo7RhE,2174
249
266
  metaflow/plugins/azure/azure_exceptions.py,sha256=NnbwpUC23bc61HZjJmeXztY0tBNn_Y_VpIpDDuYWIZ0,433
@@ -265,11 +282,11 @@ metaflow/plugins/cards/exception.py,sha256=2UqlNb-Kxpg6cuLu2sBEIPTIElwlVBsSpeCgD
265
282
  metaflow/plugins/cards/metadata.py,sha256=tACaw7_XNAICZ4A25celIbgxUF0CxHh7BBpFzKrMLTo,487
266
283
  metaflow/plugins/cards/card_modules/__init__.py,sha256=WI2IAsFiKGyqPrHtO9S9-MbyVtUTgWJNL4xjJaBErRo,3437
267
284
  metaflow/plugins/cards/card_modules/base.html,sha256=Y208ZKIZqEWWUcoBFTLTdWKAG0C8xH5lmyCRSjaN2FY,21004
268
- metaflow/plugins/cards/card_modules/basic.py,sha256=MKEcdfvukw1ju1N0e8PXC7FaXVzFlgLCpP1u1n5kU-s,25780
285
+ metaflow/plugins/cards/card_modules/basic.py,sha256=vFWijqHnil-d337qRztfekgySSkZJjCNLUbhU-u1Csw,25405
269
286
  metaflow/plugins/cards/card_modules/bundle.css,sha256=ms2wOKftlPM_i6bC_4BkrmqCOj8mYw9OFvRCJF9FSV4,11981
270
287
  metaflow/plugins/cards/card_modules/card.py,sha256=6sbqP5mwf7QWvQvX2N_bC78H9ixuI5sQ8612Q5islys,4627
271
288
  metaflow/plugins/cards/card_modules/components.py,sha256=Y-Yo7UgSOyTB3zs-wDfUqUKl0PI_BzeY1QGcy2fqE2M,26752
272
- metaflow/plugins/cards/card_modules/convert_to_native_type.py,sha256=BB4CDj6t0LoOUwLe-A-hgzGABC-e-eAZUb29pqs5Nm4,16034
289
+ metaflow/plugins/cards/card_modules/convert_to_native_type.py,sha256=Vcjqn5rfC0kVMdhqDwsYEjknXTbkG_ppraQrQGaQY_E,16245
273
290
  metaflow/plugins/cards/card_modules/main.js,sha256=72mKcMEjrne7TlLxc-LkxTJVoM4z2pLWGtU1NzHtlWM,1043628
274
291
  metaflow/plugins/cards/card_modules/renderer_tools.py,sha256=uiTdKHWFInWgtfWArOUSQLnTwqVd4hAw49jfOfg8rGA,1642
275
292
  metaflow/plugins/cards/card_modules/test_cards.py,sha256=t2PZ3QnjCN_KUlDKxAt2FfK1BX2dp8rqK6TjtkCNyew,5876
@@ -328,9 +345,9 @@ metaflow/plugins/kubernetes/kube_utils.py,sha256=jdFMGbEmIow-oli26v31W9CmbZXigx0
328
345
  metaflow/plugins/kubernetes/kubernetes.py,sha256=3ugZTwMniF3VBZ3yzfIgby69KgaVw-i-Cq2g2FHef4A,31164
329
346
  metaflow/plugins/kubernetes/kubernetes_cli.py,sha256=qtWTQqp8i-hTKAA0RcJ_qeOuD8TieN3B5vuyYdnvEP4,14425
330
347
  metaflow/plugins/kubernetes/kubernetes_client.py,sha256=tuvXP-QKpdeSmzVolB2R_TaacOr5DIb0j642eKcjsiM,6491
331
- metaflow/plugins/kubernetes/kubernetes_decorator.py,sha256=BB5E_pl39vVc6IhDZm2QYhr-S9BJMmky0pkK5DcED5E,33268
332
- metaflow/plugins/kubernetes/kubernetes_job.py,sha256=xhucNJR7EpM-XMsfY0nt-BASbjo_T4vL_-tmQ_xHL1U,33284
333
- metaflow/plugins/kubernetes/kubernetes_jobsets.py,sha256=ZZU5vsBe67NmGuxgXw6clf7kKRST7867AW6_t3fCD5g,43065
348
+ metaflow/plugins/kubernetes/kubernetes_decorator.py,sha256=htawUXm3SDfxzAcjluKrdfMez0o9Lf6ni5_rqK38YJY,33278
349
+ metaflow/plugins/kubernetes/kubernetes_job.py,sha256=wKYpj5ZePdfTNQPLWPzY6E3NN3zR8dxEtTR0CVvLlHM,33673
350
+ metaflow/plugins/kubernetes/kubernetes_jobsets.py,sha256=9DOGNdGnhOlaBsIp1Sl7ylIc444WRP7Y_fT2_JbPZLg,43040
334
351
  metaflow/plugins/kubernetes/spot_metadata_cli.py,sha256=an0nWCxgflmqIPBCBrlb4m3DereDFFJBLt-KKhqcHc8,1670
335
352
  metaflow/plugins/kubernetes/spot_monitor_sidecar.py,sha256=zrWU-smQwPnL6MBHmzTxWyEA00R6iKKQbhhy50xFwQ8,3832
336
353
  metaflow/plugins/metadata_providers/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
@@ -338,7 +355,7 @@ metaflow/plugins/metadata_providers/local.py,sha256=Z0CXaGZJbAkj4II3WspJi-uCCtSh
338
355
  metaflow/plugins/metadata_providers/service.py,sha256=WL3GkEQlQk0syjSZ6iOnBSb3nRGfeUye95ySvLnMwhg,22953
339
356
  metaflow/plugins/pypi/__init__.py,sha256=0YFZpXvX7HCkyBFglatual7XGifdA1RwC3U4kcizyak,1037
340
357
  metaflow/plugins/pypi/bootstrap.py,sha256=8EWBdwOp5moXkTfLadn3ZOtPXoGftjOFD-c2W_rn77c,14998
341
- metaflow/plugins/pypi/conda_decorator.py,sha256=ie0ftOcozloj_qdASOxYvycb-Zr1GJHedzEDnp6cl2w,13984
358
+ metaflow/plugins/pypi/conda_decorator.py,sha256=fXG9EvImP4Eqle_Trhb3tQhs40xTc4cxL_r7r0BlJzo,14064
342
359
  metaflow/plugins/pypi/conda_environment.py,sha256=MFWHUykFXpBhEuvxRku2FV5dtiWH_ECZgnoq1PoF9Ik,25134
343
360
  metaflow/plugins/pypi/micromamba.py,sha256=UltfY8NmLphfZ-AbpaMFIdxIeOXLdTYDrMrabvPrYVU,17352
344
361
  metaflow/plugins/pypi/parsers.py,sha256=gpOOG2Ph95wI73MWCAi7XjpK0gYhv5k5YIGBs73QPuE,8556
@@ -356,13 +373,13 @@ metaflow/plugins/uv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
356
373
  metaflow/plugins/uv/bootstrap.py,sha256=1UmNnnR7I1YcOtjdAmhuiU23-vj7NimUk3C9QillBaE,4380
357
374
  metaflow/plugins/uv/uv_environment.py,sha256=AYZICrBEq3Bv-taXktJwu9DhKFxNooPFwlcH379EYMs,2719
358
375
  metaflow/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
359
- metaflow/runner/click_api.py,sha256=DSxa5A0C_IHNug7fZlLpD_N99F_skDcAjTRx5YRMylY,23756
360
- metaflow/runner/deployer.py,sha256=U-hwf4gVzwUlXgnkfTW3y1daGXvo5eP4HTQZwb-vS0g,11058
376
+ metaflow/runner/click_api.py,sha256=w0-47ntQD4Dd-LiSJ9vPSjlvW5YBniNSmlf95lcXs5E,24026
377
+ metaflow/runner/deployer.py,sha256=OAAMG_l3Q1ClcY_603VZnhclVkfFe3Rf8bFRodC3poc,17138
361
378
  metaflow/runner/deployer_impl.py,sha256=zTING0_fwP44JcGo69DuNrVut5KqdBVzYOM7MYTZgIY,7049
362
379
  metaflow/runner/metaflow_runner.py,sha256=uo3BzcAfZ67VT_f-TPe5ZHiWHn6uuojWusOMGksvX14,18178
363
380
  metaflow/runner/nbdeploy.py,sha256=Sp5w-6nCZwjHaRBHWxi8udya-RYnJOB76KNLjB4L7Gs,4166
364
381
  metaflow/runner/nbrun.py,sha256=LhJu-Teoi7wTkNxg0kpNPVXFxH_9P4lvtp0ysMEIFJ8,7299
365
- metaflow/runner/subprocess_manager.py,sha256=0nAXG1PM7KXSIpu6ECeNMv5EfrqCymlIS6k25crnIBA,22792
382
+ metaflow/runner/subprocess_manager.py,sha256=x-MtPpGGMQUkIbQ_oNOuR-45b91DFvsCJ0SPoFc0dF4,23028
366
383
  metaflow/runner/utils.py,sha256=fU4vPazBdi6ATAUW_DaBAQeVslRwrLT8Pn9s5wav3gg,10350
367
384
  metaflow/sidecar/__init__.py,sha256=1mmNpmQ5puZCpRmmYlCOeieZ4108Su9XQ4_EqF1FGOU,131
368
385
  metaflow/sidecar/sidecar.py,sha256=EspKXvPPNiyRToaUZ51PS5TT_PzrBNAurn_wbFnmGr0,1334
@@ -405,16 +422,16 @@ metaflow/user_configs/config_options.py,sha256=d3hKA6WRPe21PdTl7sBnxIp5sE6zBpRtg
405
422
  metaflow/user_configs/config_parameters.py,sha256=Loa5wu3vIs0SLyGhbOo8b88nWgCuZ09k24EqC_lI7n4,20890
406
423
  metaflow/user_decorators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
407
424
  metaflow/user_decorators/common.py,sha256=0u9NRLQ95TfJCjWVEOGT4MJ9WoQgAMBM9kJ2gJGlVjk,5362
408
- metaflow/user_decorators/mutable_flow.py,sha256=y2FCTQVjTTeiptsztD26jdkU_LY_Z_kzMjTkDajo2rc,19303
425
+ metaflow/user_decorators/mutable_flow.py,sha256=icF7XFCS5FdlW3OEL68ZbQOtTPhLsUycKcFKVOeK_vU,19435
409
426
  metaflow/user_decorators/mutable_step.py,sha256=-BY0UDXf_RCAEnC5JlLzEXGdiw1KD9oSrSxS_SWaB9Y,16791
410
427
  metaflow/user_decorators/user_flow_decorator.py,sha256=2yDwZq9QGv9W-7kEuKwa8o4ZkTvuHJ5ESz7VVrGViAI,9890
411
428
  metaflow/user_decorators/user_step_decorator.py,sha256=JYNGXONWCpzwn-_bF5WiAkof4Ii9tRS4xdK8ojSxG6M,26007
412
- ob_metaflow-2.16.8.2rc1.data/data/share/metaflow/devtools/Makefile,sha256=5n89OGIC_kE4wxtEI66VCucN-b-1w5bqvGeZYmeRGz8,13737
413
- ob_metaflow-2.16.8.2rc1.data/data/share/metaflow/devtools/Tiltfile,sha256=I55XTG4RBnrMfDcYRtREXqqS8T9bF8agkZq0DlvdFLk,21404
414
- ob_metaflow-2.16.8.2rc1.data/data/share/metaflow/devtools/pick_services.sh,sha256=DCnrMXwtApfx3B4S-YiZESMyAFHbXa3VuNL0MxPLyiE,2196
415
- ob_metaflow-2.16.8.2rc1.dist-info/licenses/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
416
- ob_metaflow-2.16.8.2rc1.dist-info/METADATA,sha256=BdbsdjjqOjBolg2jjFrtEuD2e2XYWedOUUVS0FMv3V8,5941
417
- ob_metaflow-2.16.8.2rc1.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
418
- ob_metaflow-2.16.8.2rc1.dist-info/entry_points.txt,sha256=RvEq8VFlgGe_FfqGOZi0D7ze1hLD0pAtXeNyGfzc_Yc,103
419
- ob_metaflow-2.16.8.2rc1.dist-info/top_level.txt,sha256=v1pDHoWaSaKeuc5fKTRSfsXCKSdW1zvNVmvA-i0if3o,9
420
- ob_metaflow-2.16.8.2rc1.dist-info/RECORD,,
429
+ ob_metaflow-2.17.0.1.data/data/share/metaflow/devtools/Makefile,sha256=5n89OGIC_kE4wxtEI66VCucN-b-1w5bqvGeZYmeRGz8,13737
430
+ ob_metaflow-2.17.0.1.data/data/share/metaflow/devtools/Tiltfile,sha256=I55XTG4RBnrMfDcYRtREXqqS8T9bF8agkZq0DlvdFLk,21404
431
+ ob_metaflow-2.17.0.1.data/data/share/metaflow/devtools/pick_services.sh,sha256=DCnrMXwtApfx3B4S-YiZESMyAFHbXa3VuNL0MxPLyiE,2196
432
+ ob_metaflow-2.17.0.1.dist-info/licenses/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
433
+ ob_metaflow-2.17.0.1.dist-info/METADATA,sha256=rwtiERZo3tsx3kjHOob6Fy1m8kCyB0N7fOtv3-2heoU,5935
434
+ ob_metaflow-2.17.0.1.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
435
+ ob_metaflow-2.17.0.1.dist-info/entry_points.txt,sha256=RvEq8VFlgGe_FfqGOZi0D7ze1hLD0pAtXeNyGfzc_Yc,103
436
+ ob_metaflow-2.17.0.1.dist-info/top_level.txt,sha256=v1pDHoWaSaKeuc5fKTRSfsXCKSdW1zvNVmvA-i0if3o,9
437
+ ob_metaflow-2.17.0.1.dist-info/RECORD,,