metaflow 2.14.0__tar.gz → 2.14.2__tar.gz

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.
Files changed (376) hide show
  1. {metaflow-2.14.0/metaflow.egg-info → metaflow-2.14.2}/PKG-INFO +2 -2
  2. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cli.py +0 -23
  3. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cli_components/run_cmds.py +34 -14
  4. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cli_components/step_cmd.py +2 -0
  5. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/client/core.py +241 -1
  6. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cmd/main_cli.py +1 -1
  7. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/metadata_provider/heartbeat.py +1 -0
  8. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/metadata_provider/metadata.py +33 -0
  9. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/metaflow_config.py +5 -9
  10. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/mflog/save_logs.py +2 -2
  11. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/argo/argo_workflows.py +12 -8
  12. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/argo/argo_workflows_cli.py +2 -2
  13. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/datatools/s3/s3op.py +4 -4
  14. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/server.py +7 -0
  15. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/stub.py +21 -4
  16. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/kubernetes/kubernetes_cli.py +1 -1
  17. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/metadata_providers/local.py +66 -0
  18. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/metadata_providers/service.py +51 -0
  19. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/pypi/bootstrap.py +4 -4
  20. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/runner/click_api.py +6 -3
  21. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/sidecar/sidecar_worker.py +1 -1
  22. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/task.py +21 -2
  23. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tracing/__init__.py +7 -7
  24. metaflow-2.14.2/metaflow/tracing/span_exporter.py +55 -0
  25. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tracing/tracing_modules.py +39 -44
  26. metaflow-2.14.2/metaflow/version.py +1 -0
  27. {metaflow-2.14.0 → metaflow-2.14.2/metaflow.egg-info}/PKG-INFO +2 -2
  28. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow.egg-info/requires.txt +1 -1
  29. metaflow-2.14.0/metaflow/tracing/span_exporter.py +0 -62
  30. metaflow-2.14.0/metaflow/version.py +0 -1
  31. {metaflow-2.14.0 → metaflow-2.14.2}/LICENSE +0 -0
  32. {metaflow-2.14.0 → metaflow-2.14.2}/MANIFEST.in +0 -0
  33. {metaflow-2.14.0 → metaflow-2.14.2}/README.md +0 -0
  34. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/R.py +0 -0
  35. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/__init__.py +0 -0
  36. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/__init__.py +0 -0
  37. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/__init__.py +0 -0
  38. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/_bashcomplete.py +0 -0
  39. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/_compat.py +0 -0
  40. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/_termui_impl.py +0 -0
  41. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/_textwrap.py +0 -0
  42. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/_unicodefun.py +0 -0
  43. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/_winconsole.py +0 -0
  44. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/core.py +0 -0
  45. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/decorators.py +0 -0
  46. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/exceptions.py +0 -0
  47. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/formatting.py +0 -0
  48. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/globals.py +0 -0
  49. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/parser.py +0 -0
  50. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/termui.py +0 -0
  51. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/testing.py +0 -0
  52. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/types.py +0 -0
  53. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/click/utils.py +0 -0
  54. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/importlib_metadata/__init__.py +0 -0
  55. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/importlib_metadata/_adapters.py +0 -0
  56. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/importlib_metadata/_collections.py +0 -0
  57. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/importlib_metadata/_compat.py +0 -0
  58. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/importlib_metadata/_functools.py +0 -0
  59. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/importlib_metadata/_itertools.py +0 -0
  60. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/importlib_metadata/_meta.py +0 -0
  61. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/importlib_metadata/_text.py +0 -0
  62. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/importlib_metadata/py.typed +0 -0
  63. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/packaging/__init__.py +0 -0
  64. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/packaging/_elffile.py +0 -0
  65. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/packaging/_manylinux.py +0 -0
  66. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/packaging/_musllinux.py +0 -0
  67. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/packaging/_parser.py +0 -0
  68. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/packaging/_structures.py +0 -0
  69. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/packaging/_tokenizer.py +0 -0
  70. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/packaging/markers.py +0 -0
  71. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/packaging/py.typed +0 -0
  72. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/packaging/requirements.py +0 -0
  73. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/packaging/specifiers.py +0 -0
  74. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/packaging/tags.py +0 -0
  75. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/packaging/utils.py +0 -0
  76. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/packaging/version.py +0 -0
  77. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/typeguard/__init__.py +0 -0
  78. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/typeguard/_checkers.py +0 -0
  79. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/typeguard/_config.py +0 -0
  80. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/typeguard/_decorators.py +0 -0
  81. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/typeguard/_exceptions.py +0 -0
  82. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/typeguard/_functions.py +0 -0
  83. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/typeguard/_importhook.py +0 -0
  84. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/typeguard/_memo.py +0 -0
  85. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/typeguard/_pytest_plugin.py +0 -0
  86. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/typeguard/_suppression.py +0 -0
  87. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/typeguard/_transformer.py +0 -0
  88. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/typeguard/_union_transformer.py +0 -0
  89. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/typeguard/_utils.py +0 -0
  90. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/typeguard/py.typed +0 -0
  91. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/typing_extensions.py +0 -0
  92. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_5/__init__.py +0 -0
  93. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_5/importlib_metadata/__init__.py +0 -0
  94. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_5/importlib_metadata/_compat.py +0 -0
  95. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_5/zipp.py +0 -0
  96. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_6/__init__.py +0 -0
  97. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py +0 -0
  98. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py +0 -0
  99. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py +0 -0
  100. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py +0 -0
  101. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py +0 -0
  102. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py +0 -0
  103. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_6/importlib_metadata/_meta.py +0 -0
  104. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_6/importlib_metadata/_text.py +0 -0
  105. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_6/importlib_metadata/py.typed +0 -0
  106. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_6/typing_extensions.py +0 -0
  107. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/v3_6/zipp.py +0 -0
  108. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/_vendor/zipp.py +0 -0
  109. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cards.py +0 -0
  110. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cli_args.py +0 -0
  111. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cli_components/__init__.py +0 -0
  112. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cli_components/dump_cmd.py +0 -0
  113. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cli_components/init_cmd.py +0 -0
  114. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cli_components/utils.py +0 -0
  115. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/client/__init__.py +0 -0
  116. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/client/filecache.py +0 -0
  117. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/clone_util.py +0 -0
  118. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cmd/__init__.py +0 -0
  119. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cmd/configure_cmd.py +0 -0
  120. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cmd/develop/__init__.py +0 -0
  121. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cmd/develop/stub_generator.py +0 -0
  122. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cmd/develop/stubs.py +0 -0
  123. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cmd/tutorials_cmd.py +0 -0
  124. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cmd/util.py +0 -0
  125. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/cmd_with_io.py +0 -0
  126. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/datastore/__init__.py +0 -0
  127. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/datastore/content_addressed_store.py +0 -0
  128. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/datastore/datastore_set.py +0 -0
  129. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/datastore/datastore_storage.py +0 -0
  130. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/datastore/exceptions.py +0 -0
  131. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/datastore/flow_datastore.py +0 -0
  132. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/datastore/inputs.py +0 -0
  133. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/datastore/task_datastore.py +0 -0
  134. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/debug.py +0 -0
  135. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/decorators.py +0 -0
  136. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/event_logger.py +0 -0
  137. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/events.py +0 -0
  138. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/exception.py +0 -0
  139. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/extension_support/__init__.py +0 -0
  140. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/extension_support/_empty_file.py +0 -0
  141. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/extension_support/cmd.py +0 -0
  142. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/extension_support/integrations.py +0 -0
  143. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/extension_support/plugins.py +0 -0
  144. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/flowspec.py +0 -0
  145. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/graph.py +0 -0
  146. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/includefile.py +0 -0
  147. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/info_file.py +0 -0
  148. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/integrations.py +0 -0
  149. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/lint.py +0 -0
  150. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/metadata_provider/__init__.py +0 -0
  151. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/metadata_provider/util.py +0 -0
  152. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/metaflow_config_funcs.py +0 -0
  153. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/metaflow_current.py +0 -0
  154. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/metaflow_environment.py +0 -0
  155. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/metaflow_profile.py +0 -0
  156. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/metaflow_version.py +0 -0
  157. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/mflog/__init__.py +0 -0
  158. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/mflog/mflog.py +0 -0
  159. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/mflog/save_logs_periodically.py +0 -0
  160. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/mflog/tee.py +0 -0
  161. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/monitor.py +0 -0
  162. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/multicore_utils.py +0 -0
  163. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/package.py +0 -0
  164. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/parameters.py +0 -0
  165. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/__init__.py +0 -0
  166. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/airflow/__init__.py +0 -0
  167. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/airflow/airflow.py +0 -0
  168. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/airflow/airflow_cli.py +0 -0
  169. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/airflow/airflow_decorator.py +0 -0
  170. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/airflow/airflow_utils.py +0 -0
  171. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/airflow/dag.py +0 -0
  172. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/airflow/exception.py +0 -0
  173. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/airflow/plumbing/__init__.py +0 -0
  174. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/airflow/plumbing/set_parameters.py +0 -0
  175. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/airflow/sensors/__init__.py +0 -0
  176. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/airflow/sensors/base_sensor.py +0 -0
  177. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/airflow/sensors/external_task_sensor.py +0 -0
  178. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/airflow/sensors/s3_sensor.py +0 -0
  179. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/argo/__init__.py +0 -0
  180. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/argo/argo_client.py +0 -0
  181. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/argo/argo_events.py +0 -0
  182. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/argo/argo_workflows_decorator.py +0 -0
  183. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/argo/argo_workflows_deployer.py +0 -0
  184. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/argo/argo_workflows_deployer_objects.py +0 -0
  185. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/argo/capture_error.py +0 -0
  186. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/argo/generate_input_paths.py +0 -0
  187. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/argo/jobset_input_paths.py +0 -0
  188. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/__init__.py +0 -0
  189. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/aws_client.py +0 -0
  190. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/aws_utils.py +0 -0
  191. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/batch/__init__.py +0 -0
  192. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/batch/batch.py +0 -0
  193. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/batch/batch_cli.py +0 -0
  194. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/batch/batch_client.py +0 -0
  195. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/batch/batch_decorator.py +0 -0
  196. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/secrets_manager/__init__.py +0 -0
  197. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py +0 -0
  198. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/step_functions/__init__.py +0 -0
  199. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/step_functions/dynamo_db_client.py +0 -0
  200. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/step_functions/event_bridge_client.py +0 -0
  201. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/step_functions/production_token.py +0 -0
  202. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/step_functions/schedule_decorator.py +0 -0
  203. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/step_functions/set_batch_environment.py +0 -0
  204. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/step_functions/step_functions.py +0 -0
  205. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/step_functions/step_functions_cli.py +0 -0
  206. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/step_functions/step_functions_client.py +0 -0
  207. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/step_functions/step_functions_decorator.py +0 -0
  208. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/step_functions/step_functions_deployer.py +0 -0
  209. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +0 -0
  210. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/azure/__init__.py +0 -0
  211. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/azure/azure_credential.py +0 -0
  212. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/azure/azure_exceptions.py +0 -0
  213. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/azure/azure_secret_manager_secrets_provider.py +0 -0
  214. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/azure/azure_tail.py +0 -0
  215. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/azure/azure_utils.py +0 -0
  216. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/azure/blob_service_client_factory.py +0 -0
  217. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/azure/includefile_support.py +0 -0
  218. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/__init__.py +0 -0
  219. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_cli.py +0 -0
  220. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_client.py +0 -0
  221. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_creator.py +0 -0
  222. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_datastore.py +0 -0
  223. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_decorator.py +0 -0
  224. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_modules/__init__.py +0 -0
  225. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_modules/base.html +0 -0
  226. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_modules/basic.py +0 -0
  227. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_modules/bundle.css +0 -0
  228. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_modules/card.py +0 -0
  229. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_modules/chevron/__init__.py +0 -0
  230. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_modules/chevron/main.py +0 -0
  231. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_modules/chevron/metadata.py +0 -0
  232. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_modules/chevron/renderer.py +0 -0
  233. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_modules/chevron/tokenizer.py +0 -0
  234. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_modules/components.py +0 -0
  235. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_modules/convert_to_native_type.py +0 -0
  236. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_modules/main.js +0 -0
  237. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_modules/renderer_tools.py +0 -0
  238. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_modules/test_cards.py +0 -0
  239. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_resolver.py +0 -0
  240. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_server.py +0 -0
  241. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/card_viewer/viewer.html +0 -0
  242. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/component_serializer.py +0 -0
  243. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/cards/exception.py +0 -0
  244. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/catch_decorator.py +0 -0
  245. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/datastores/__init__.py +0 -0
  246. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/datastores/azure_storage.py +0 -0
  247. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/datastores/gs_storage.py +0 -0
  248. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/datastores/local_storage.py +0 -0
  249. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/datastores/s3_storage.py +0 -0
  250. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/datatools/__init__.py +0 -0
  251. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/datatools/local.py +0 -0
  252. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/datatools/s3/__init__.py +0 -0
  253. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/datatools/s3/s3.py +0 -0
  254. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/datatools/s3/s3tail.py +0 -0
  255. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/datatools/s3/s3util.py +0 -0
  256. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/debug_logger.py +0 -0
  257. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/debug_monitor.py +0 -0
  258. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/__init__.py +0 -0
  259. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/client.py +0 -0
  260. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/client_modules.py +0 -0
  261. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/communication/__init__.py +0 -0
  262. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/communication/bytestream.py +0 -0
  263. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/communication/channel.py +0 -0
  264. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/communication/socket_bytestream.py +0 -0
  265. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/communication/utils.py +0 -0
  266. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py +0 -0
  267. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +0 -0
  268. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +0 -0
  269. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py +0 -0
  270. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +0 -0
  271. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/consts.py +0 -0
  272. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/data_transferer.py +0 -0
  273. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/exception_transferer.py +0 -0
  274. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/override_decorators.py +0 -0
  275. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/env_escape/utils.py +0 -0
  276. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/environment_decorator.py +0 -0
  277. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/events_decorator.py +0 -0
  278. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/frameworks/__init__.py +0 -0
  279. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/frameworks/pytorch.py +0 -0
  280. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/gcp/__init__.py +0 -0
  281. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +0 -0
  282. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/gcp/gs_exceptions.py +0 -0
  283. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/gcp/gs_storage_client_factory.py +0 -0
  284. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/gcp/gs_tail.py +0 -0
  285. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/gcp/gs_utils.py +0 -0
  286. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/gcp/includefile_support.py +0 -0
  287. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/kubernetes/__init__.py +0 -0
  288. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/kubernetes/kube_utils.py +0 -0
  289. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/kubernetes/kubernetes.py +0 -0
  290. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/kubernetes/kubernetes_client.py +0 -0
  291. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/kubernetes/kubernetes_decorator.py +0 -0
  292. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/kubernetes/kubernetes_job.py +0 -0
  293. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/kubernetes/kubernetes_jobsets.py +0 -0
  294. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/kubernetes/spot_metadata_cli.py +0 -0
  295. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/kubernetes/spot_monitor_sidecar.py +0 -0
  296. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/logs_cli.py +0 -0
  297. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/metadata_providers/__init__.py +0 -0
  298. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/package_cli.py +0 -0
  299. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/parallel_decorator.py +0 -0
  300. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/project_decorator.py +0 -0
  301. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/pypi/__init__.py +0 -0
  302. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/pypi/conda_decorator.py +0 -0
  303. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/pypi/conda_environment.py +0 -0
  304. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/pypi/micromamba.py +0 -0
  305. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/pypi/pip.py +0 -0
  306. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/pypi/pypi_decorator.py +0 -0
  307. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/pypi/pypi_environment.py +0 -0
  308. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/pypi/utils.py +0 -0
  309. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/resources_decorator.py +0 -0
  310. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/retry_decorator.py +0 -0
  311. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/secrets/__init__.py +0 -0
  312. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/secrets/inline_secrets_provider.py +0 -0
  313. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/secrets/secrets_decorator.py +0 -0
  314. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/storage_executor.py +0 -0
  315. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/tag_cli.py +0 -0
  316. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/test_unbounded_foreach_decorator.py +0 -0
  317. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/plugins/timeout_decorator.py +0 -0
  318. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/procpoll.py +0 -0
  319. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/py.typed +0 -0
  320. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/pylint_wrapper.py +0 -0
  321. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/runner/__init__.py +0 -0
  322. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/runner/deployer.py +0 -0
  323. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/runner/deployer_impl.py +0 -0
  324. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/runner/metaflow_runner.py +0 -0
  325. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/runner/nbdeploy.py +0 -0
  326. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/runner/nbrun.py +0 -0
  327. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/runner/subprocess_manager.py +0 -0
  328. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/runner/utils.py +0 -0
  329. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/runtime.py +0 -0
  330. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/sidecar/__init__.py +0 -0
  331. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/sidecar/sidecar.py +0 -0
  332. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/sidecar/sidecar_messages.py +0 -0
  333. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/sidecar/sidecar_subprocess.py +0 -0
  334. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/system/__init__.py +0 -0
  335. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/system/system_logger.py +0 -0
  336. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/system/system_monitor.py +0 -0
  337. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/system/system_utils.py +0 -0
  338. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tagging_util.py +0 -0
  339. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tracing/propagator.py +0 -0
  340. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tuple_util.py +0 -0
  341. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/00-helloworld/README.md +0 -0
  342. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/00-helloworld/helloworld.py +0 -0
  343. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/01-playlist/README.md +0 -0
  344. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/01-playlist/movies.csv +0 -0
  345. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/01-playlist/playlist.ipynb +0 -0
  346. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/01-playlist/playlist.py +0 -0
  347. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/02-statistics/README.md +0 -0
  348. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/02-statistics/movies.csv +0 -0
  349. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/02-statistics/stats.ipynb +0 -0
  350. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/02-statistics/stats.py +0 -0
  351. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/03-playlist-redux/README.md +0 -0
  352. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/03-playlist-redux/playlist.py +0 -0
  353. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/04-playlist-plus/README.md +0 -0
  354. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/04-playlist-plus/playlist.py +0 -0
  355. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/05-hello-cloud/README.md +0 -0
  356. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/05-hello-cloud/hello-cloud.ipynb +0 -0
  357. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/05-hello-cloud/hello-cloud.py +0 -0
  358. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/06-statistics-redux/README.md +0 -0
  359. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/06-statistics-redux/stats.ipynb +0 -0
  360. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/07-worldview/README.md +0 -0
  361. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/07-worldview/worldview.ipynb +0 -0
  362. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/08-autopilot/README.md +0 -0
  363. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/tutorials/08-autopilot/autopilot.ipynb +0 -0
  364. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/unbounded_foreach.py +0 -0
  365. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/user_configs/__init__.py +0 -0
  366. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/user_configs/config_decorators.py +0 -0
  367. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/user_configs/config_options.py +0 -0
  368. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/user_configs/config_parameters.py +0 -0
  369. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/util.py +0 -0
  370. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow/vendor.py +0 -0
  371. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow.egg-info/SOURCES.txt +0 -0
  372. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow.egg-info/dependency_links.txt +0 -0
  373. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow.egg-info/entry_points.txt +0 -0
  374. {metaflow-2.14.0 → metaflow-2.14.2}/metaflow.egg-info/top_level.txt +0 -0
  375. {metaflow-2.14.0 → metaflow-2.14.2}/setup.cfg +0 -0
  376. {metaflow-2.14.0 → metaflow-2.14.2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: metaflow
3
- Version: 2.14.0
3
+ Version: 2.14.2
4
4
  Summary: Metaflow: More Data Science, Less Engineering
5
5
  Author: Metaflow Developers
6
6
  Author-email: help@metaflow.org
@@ -26,7 +26,7 @@ License-File: LICENSE
26
26
  Requires-Dist: requests
27
27
  Requires-Dist: boto3
28
28
  Provides-Extra: stubs
29
- Requires-Dist: metaflow-stubs==2.14.0; extra == "stubs"
29
+ Requires-Dist: metaflow-stubs==2.14.2; extra == "stubs"
30
30
  Dynamic: author
31
31
  Dynamic: author-email
32
32
  Dynamic: classifier
@@ -16,7 +16,6 @@ from .exception import CommandException, MetaflowException
16
16
  from .flowspec import _FlowState
17
17
  from .graph import FlowGraph
18
18
  from .metaflow_config import (
19
- DECOSPECS,
20
19
  DEFAULT_DATASTORE,
21
20
  DEFAULT_ENVIRONMENT,
22
21
  DEFAULT_EVENT_LOGGER,
@@ -106,26 +105,6 @@ def logger(body="", system_msg=False, head="", bad=False, timestamp=True, nl=Tru
106
105
  click.secho(body, bold=system_msg, fg=LOGGER_BAD_COLOR if bad else None, nl=nl)
107
106
 
108
107
 
109
- def config_merge_cb(ctx, param, value):
110
- # Callback to:
111
- # - read the Click auto_envvar variable from both the
112
- # environment AND the configuration
113
- # - merge that value with the value passed in the command line (value)
114
- # - return the value as a tuple
115
- # Note that this function gets called even if there is no option passed on the
116
- # command line.
117
- # NOTE: Assumes that ctx.auto_envvar_prefix is set to METAFLOW (same as in
118
- # from_conf)
119
-
120
- # Special case where DECOSPECS and value are the same. This happens
121
- # when there is no --with option at the TL and DECOSPECS is read from
122
- # the env var. In this case, click also passes it as value
123
- splits = DECOSPECS.split()
124
- if len(splits) == len(value) and all([a == b for (a, b) in zip(splits, value)]):
125
- return value
126
- return tuple(list(value) + DECOSPECS.split())
127
-
128
-
129
108
  @click.group(
130
109
  cls=LazyGroup,
131
110
  lazy_subcommands={
@@ -238,7 +217,6 @@ def version(obj):
238
217
  lazy_sources=plugins.get_plugin_cli_path(),
239
218
  invoke_without_command=True,
240
219
  )
241
- @tracing.cli_entrypoint("cli/start")
242
220
  # Quiet is eager to make sure it is available when processing --config options since
243
221
  # we need it to construct a context to pass to any DeployTimeField for the default
244
222
  # value.
@@ -285,7 +263,6 @@ def version(obj):
285
263
  multiple=True,
286
264
  help="Add a decorator to all steps. You can specify this option "
287
265
  "multiple times to attach multiple decorators in steps.",
288
- callback=config_merge_cb,
289
266
  )
290
267
  @click.option(
291
268
  "--pylint/--no-pylint",
@@ -8,6 +8,7 @@ from .. import decorators, namespace, parameters, tracing
8
8
  from ..exception import CommandException
9
9
  from ..graph import FlowGraph
10
10
  from ..metaflow_current import current
11
+ from ..metaflow_config import DEFAULT_DECOSPECS
11
12
  from ..package import MetaflowPackage
12
13
  from ..runtime import NativeRuntime
13
14
  from ..system import _system_logger
@@ -70,6 +71,23 @@ def write_file(file_path, content):
70
71
  f.write(str(content))
71
72
 
72
73
 
74
+ def config_merge_cb(ctx, param, value):
75
+ # Callback to:
76
+ # - read the Click auto_envvar variable from both the
77
+ # environment AND the configuration
78
+ # - merge that value with the value passed in the command line (value)
79
+ # - return the value as a tuple
80
+ # Note that this function gets called even if there is no option passed on the
81
+ # command line.
82
+ # NOTE: Assumes that ctx.auto_envvar_prefix is set to METAFLOW (same as in
83
+ # from_conf)
84
+
85
+ # Read decospecs options from the environment (METAFLOW_DEFAULT_DECOSPECS=...)
86
+ # and merge them with the one provided as --with.
87
+ splits = DEFAULT_DECOSPECS.split()
88
+ return tuple(list(value) + splits)
89
+
90
+
73
91
  def common_run_options(func):
74
92
  @click.option(
75
93
  "--tag",
@@ -109,6 +127,7 @@ def common_run_options(func):
109
127
  help="Add a decorator to all steps. You can specify this "
110
128
  "option multiple times to attach multiple decorators "
111
129
  "in steps.",
130
+ callback=config_merge_cb,
112
131
  )
113
132
  @click.option(
114
133
  "--run-id-file",
@@ -166,6 +185,7 @@ def common_run_options(func):
166
185
  )
167
186
  @click.argument("step-to-rerun", required=False)
168
187
  @click.command(help="Resume execution of a previous run of this flow.")
188
+ @tracing.cli("cli/resume")
169
189
  @common_run_options
170
190
  @click.pass_obj
171
191
  def resume(
@@ -283,7 +303,7 @@ def resume(
283
303
 
284
304
  @parameters.add_custom_parameters(deploy_mode=True)
285
305
  @click.command(help="Run the workflow locally.")
286
- @tracing.cli_entrypoint("cli/run")
306
+ @tracing.cli("cli/run")
287
307
  @common_run_options
288
308
  @click.option(
289
309
  "--namespace",
@@ -345,18 +365,18 @@ def run(
345
365
  "msg": "Starting run",
346
366
  },
347
367
  )
368
+
369
+ runtime.print_workflow_info()
370
+ runtime.persist_constants()
371
+ if runner_attribute_file:
372
+ with open(runner_attribute_file, "w", encoding="utf-8") as f:
373
+ json.dump(
374
+ {
375
+ "run_id": runtime.run_id,
376
+ "flow_name": obj.flow.name,
377
+ "metadata": obj.metadata.metadata_str(),
378
+ },
379
+ f,
380
+ )
348
381
  with runtime.run_heartbeat():
349
- runtime.print_workflow_info()
350
- runtime.persist_constants()
351
-
352
- if runner_attribute_file:
353
- with open(runner_attribute_file, "w", encoding="utf-8") as f:
354
- json.dump(
355
- {
356
- "run_id": runtime.run_id,
357
- "flow_name": obj.flow.name,
358
- "metadata": obj.metadata.metadata_str(),
359
- },
360
- f,
361
- )
362
382
  runtime.execute()
@@ -7,9 +7,11 @@ from ..exception import CommandException
7
7
  from ..task import MetaflowTask
8
8
  from ..unbounded_foreach import UBF_CONTROL, UBF_TASK
9
9
  from ..util import decompress_list
10
+ import metaflow.tracing as tracing
10
11
 
11
12
 
12
13
  @click.command(help="Internal command to execute a single task.", hidden=True)
14
+ @tracing.cli("cli/step")
13
15
  @click.argument("step-name")
14
16
  @click.option(
15
17
  "--run-id",
@@ -5,6 +5,7 @@ import os
5
5
  import tarfile
6
6
  from collections import namedtuple
7
7
  from datetime import datetime
8
+ from tempfile import TemporaryDirectory
8
9
  from io import BytesIO
9
10
  from itertools import chain
10
11
  from typing import (
@@ -379,7 +380,7 @@ class MetaflowObject(object):
379
380
  _CLASSES[self._CHILD_CLASS]._NAME,
380
381
  query_filter,
381
382
  self._attempt,
382
- *self.path_components
383
+ *self.path_components,
383
384
  )
384
385
  unfiltered_children = unfiltered_children if unfiltered_children else []
385
386
  children = filter(
@@ -878,6 +879,73 @@ class MetaflowCode(object):
878
879
  """
879
880
  return self._tar
880
881
 
882
+ def extract(self) -> TemporaryDirectory:
883
+ """
884
+ Extracts the code package to a temporary directory.
885
+
886
+ This creates a temporary directory containing all user code
887
+ files from the code package. The temporary directory is
888
+ automatically deleted when the returned TemporaryDirectory
889
+ object is garbage collected or when its cleanup() is called.
890
+
891
+ To preserve the contents to a permanent location, use
892
+ os.replace() which performs a zero-copy move on the same
893
+ filesystem:
894
+
895
+ ```python
896
+ with task.code.extract() as tmp_dir:
897
+ # Move contents to permanent location
898
+ for item in os.listdir(tmp_dir):
899
+ src = os.path.join(tmp_dir, item)
900
+ dst = os.path.join('/path/to/permanent/dir', item)
901
+ os.makedirs(os.path.dirname(dst), exist_ok=True)
902
+ os.replace(src, dst) # Atomic move operation
903
+ ```
904
+ Returns
905
+ -------
906
+ TemporaryDirectory
907
+ A temporary directory containing the extracted code files.
908
+ The directory and its contents are automatically deleted when
909
+ this object is garbage collected.
910
+ """
911
+ exclusions = [
912
+ "metaflow/",
913
+ "metaflow_extensions/",
914
+ "INFO",
915
+ "CONFIG_PARAMETERS",
916
+ "conda.manifest",
917
+ # This file is created when using the conda/pypi features available in
918
+ # nflx-metaflow-extensions: https://github.com/Netflix/metaflow-nflx-extensions
919
+ "condav2-1.cnd",
920
+ ]
921
+ members = [
922
+ m
923
+ for m in self.tarball.getmembers()
924
+ if not any(
925
+ (x.endswith("/") and m.name.startswith(x)) or (m.name == x)
926
+ for x in exclusions
927
+ )
928
+ ]
929
+
930
+ tmp = TemporaryDirectory()
931
+ self.tarball.extractall(tmp.name, members)
932
+ return tmp
933
+
934
+ @property
935
+ def script_name(self) -> str:
936
+ """
937
+ Returns the filename of the Python script containing the FlowSpec.
938
+
939
+ This is the main Python file that was used to execute the flow. For example,
940
+ if your flow is defined in 'myflow.py', this property will return 'myflow.py'.
941
+
942
+ Returns
943
+ -------
944
+ str
945
+ Name of the Python file containing the FlowSpec
946
+ """
947
+ return self._info["script"]
948
+
881
949
  def __str__(self):
882
950
  return "<MetaflowCode: %s>" % self._info["script"]
883
951
 
@@ -1123,6 +1191,143 @@ class Task(MetaflowObject):
1123
1191
  # exclude private data artifacts
1124
1192
  return x.id[0] != "_"
1125
1193
 
1194
+ def _iter_matching_tasks(self, steps, metadata_key, metadata_pattern):
1195
+ """
1196
+ Yield tasks from specified steps matching a foreach path pattern.
1197
+
1198
+ Parameters
1199
+ ----------
1200
+ steps : List[str]
1201
+ List of step names to search for tasks
1202
+ pattern : str
1203
+ Regex pattern to match foreach-indices metadata
1204
+
1205
+ Returns
1206
+ -------
1207
+ Iterator[Task]
1208
+ Tasks matching the foreach path pattern
1209
+ """
1210
+ flow_id, run_id, _, _ = self.path_components
1211
+
1212
+ for step in steps:
1213
+ task_pathspecs = self._metaflow.metadata.filter_tasks_by_metadata(
1214
+ flow_id, run_id, step.id, metadata_key, metadata_pattern
1215
+ )
1216
+ for task_pathspec in task_pathspecs:
1217
+ yield Task(pathspec=task_pathspec, _namespace_check=False)
1218
+
1219
+ @property
1220
+ def parent_tasks(self) -> Iterator["Task"]:
1221
+ """
1222
+ Yields all parent tasks of the current task if one exists.
1223
+
1224
+ Yields
1225
+ ------
1226
+ Task
1227
+ Parent task of the current task
1228
+
1229
+ """
1230
+ flow_id, run_id, _, _ = self.path_components
1231
+
1232
+ steps = list(self.parent.parent_steps)
1233
+ if not steps:
1234
+ return []
1235
+
1236
+ current_path = self.metadata_dict.get("foreach-execution-path", "")
1237
+
1238
+ if len(steps) > 1:
1239
+ # Static join - use exact path matching
1240
+ pattern = current_path or ".*"
1241
+ yield from self._iter_matching_tasks(
1242
+ steps, "foreach-execution-path", pattern
1243
+ )
1244
+ return
1245
+
1246
+ # Handle single step case
1247
+ target_task = Step(
1248
+ f"{flow_id}/{run_id}/{steps[0].id}", _namespace_check=False
1249
+ ).task
1250
+ target_path = target_task.metadata_dict.get("foreach-execution-path")
1251
+
1252
+ if not target_path or not current_path:
1253
+ # (Current task, "A:10") and (Parent task, "")
1254
+ # Pattern: ".*"
1255
+ pattern = ".*"
1256
+ else:
1257
+ current_depth = len(current_path.split(","))
1258
+ target_depth = len(target_path.split(","))
1259
+
1260
+ if current_depth < target_depth:
1261
+ # Foreach join
1262
+ # (Current task, "A:10,B:13") and (Parent task, "A:10,B:13,C:21")
1263
+ # Pattern: "A:10,B:13,.*"
1264
+ pattern = f"{current_path},.*"
1265
+ else:
1266
+ # Foreach split or linear step
1267
+ # Option 1:
1268
+ # (Current task, "A:10,B:13,C:21") and (Parent task, "A:10,B:13")
1269
+ # Option 2:
1270
+ # (Current task, "A:10,B:13") and (Parent task, "A:10,B:13")
1271
+ # Pattern: "A:10,B:13"
1272
+ pattern = ",".join(current_path.split(",")[:target_depth])
1273
+
1274
+ yield from self._iter_matching_tasks(steps, "foreach-execution-path", pattern)
1275
+
1276
+ @property
1277
+ def child_tasks(self) -> Iterator["Task"]:
1278
+ """
1279
+ Yield all child tasks of the current task if one exists.
1280
+
1281
+ Yields
1282
+ ------
1283
+ Task
1284
+ Child task of the current task
1285
+ """
1286
+ flow_id, run_id, _, _ = self.path_components
1287
+ steps = list(self.parent.child_steps)
1288
+ if not steps:
1289
+ return []
1290
+
1291
+ current_path = self.metadata_dict.get("foreach-execution-path", "")
1292
+
1293
+ if len(steps) > 1:
1294
+ # Static split - use exact path matching
1295
+ pattern = current_path or ".*"
1296
+ yield from self._iter_matching_tasks(
1297
+ steps, "foreach-execution-path", pattern
1298
+ )
1299
+ return
1300
+
1301
+ # Handle single step case
1302
+ target_task = Step(
1303
+ f"{flow_id}/{run_id}/{steps[0].id}", _namespace_check=False
1304
+ ).task
1305
+ target_path = target_task.metadata_dict.get("foreach-execution-path")
1306
+
1307
+ if not target_path or not current_path:
1308
+ # (Current task, "A:10") and (Child task, "")
1309
+ # Pattern: ".*"
1310
+ pattern = ".*"
1311
+ else:
1312
+ current_depth = len(current_path.split(","))
1313
+ target_depth = len(target_path.split(","))
1314
+
1315
+ if current_depth < target_depth:
1316
+ # Foreach split
1317
+ # (Current task, "A:10,B:13") and (Child task, "A:10,B:13,C:21")
1318
+ # Pattern: "A:10,B:13,.*"
1319
+ pattern = f"{current_path},.*"
1320
+ else:
1321
+ # Foreach join or linear step
1322
+ # Option 1:
1323
+ # (Current task, "A:10,B:13,C:21") and (Child task, "A:10,B:13")
1324
+ # Option 2:
1325
+ # (Current task, "A:10,B:13") and (Child task, "A:10,B:13")
1326
+ # Pattern: "A:10,B:13"
1327
+ pattern = ",".join(current_path.split(",")[:target_depth])
1328
+
1329
+ yield from self._iter_matching_tasks(steps, "foreach-execution-path", pattern)
1330
+
1126
1331
  @property
1127
1332
  def metadata(self) -> List[Metadata]:
1128
1333
  """
@@ -1837,6 +2042,41 @@ class Step(MetaflowObject):
1837
2042
  for t in self:
1838
2043
  return t.environment_info
1839
2044
 
2045
+ @property
2046
+ def parent_steps(self) -> Iterator["Step"]:
2047
+ """
2048
+ Yields parent steps for the current step.
2049
+
2050
+ Yields
2051
+ ------
2052
+ Step
2053
+ Parent step
2054
+ """
2055
+ graph_info = self.task["_graph_info"].data
2056
+
2057
+ if self.id != "start":
2058
+ flow, run, _ = self.path_components
2059
+ for node_name, attributes in graph_info["steps"].items():
2060
+ if self.id in attributes["next"]:
2061
+ yield Step(f"{flow}/{run}/{node_name}", _namespace_check=False)
2062
+
2063
+ @property
2064
+ def child_steps(self) -> Iterator["Step"]:
2065
+ """
2066
+ Yields child steps for the current step.
2067
+
2068
+ Yields
2069
+ ------
2070
+ Step
2071
+ Child step
2072
+ """
2073
+ graph_info = self.task["_graph_info"].data
2074
+
2075
+ if self.id != "end":
2076
+ flow, run, _ = self.path_components
2077
+ for next_step in graph_info["steps"][self.id]["next"]:
2078
+ yield Step(f"{flow}/{run}/{next_step}", _namespace_check=False)
2079
+
1840
2080
 
1841
2081
  class Run(MetaflowObject):
1842
2082
  """
@@ -12,7 +12,7 @@ import metaflow.tracing as tracing
12
12
 
13
13
 
14
14
  @click.group()
15
- @tracing.cli_entrypoint("cli/main")
15
+ @tracing.cli("cli/main")
16
16
  def main():
17
17
  pass
18
18
 
@@ -52,6 +52,7 @@ class MetadataHeartBeat(object):
52
52
  time.sleep(frequency_secs)
53
53
  retry_counter = 0
54
54
  except HeartBeatException as e:
55
+ print(e)
55
56
  retry_counter = retry_counter + 1
56
57
  time.sleep(1.5**retry_counter)
57
58
 
@@ -5,6 +5,7 @@ import time
5
5
  from collections import namedtuple
6
6
  from itertools import chain
7
7
 
8
+ from typing import List
8
9
  from metaflow.exception import MetaflowInternalError, MetaflowTaggingError
9
10
  from metaflow.tagging_util import validate_tag
10
11
  from metaflow.util import get_username, resolve_identity_as_tuple, is_stringish
@@ -672,6 +673,38 @@ class MetadataProvider(object):
672
673
  if metadata:
673
674
  self.register_metadata(run_id, step_name, task_id, metadata)
674
675
 
676
+ @classmethod
677
+ def filter_tasks_by_metadata(
678
+ cls,
679
+ flow_name: str,
680
+ run_id: str,
681
+ step_name: str,
682
+ field_name: str,
683
+ pattern: str,
684
+ ) -> List[str]:
685
+ """
686
+ Filter tasks by metadata field and pattern, returning task pathspecs that match criteria.
687
+
688
+ Parameters
689
+ ----------
690
+ flow_name : str
691
+ Flow name, that the run belongs to.
692
+ run_id: str
693
+ Run id, together with flow_id, that identifies the specific Run whose tasks to query
694
+ step_name: str
695
+ Step name to query tasks from
696
+ field_name: str
697
+ Metadata field name to query
698
+ pattern: str
699
+ Pattern to match in metadata field value
700
+
701
+ Returns
702
+ -------
703
+ List[str]
704
+ List of task pathspecs that satisfy the query
705
+ """
706
+ raise NotImplementedError()
707
+
675
708
  @staticmethod
676
709
  def _apply_filter(elts, filters):
677
710
  if filters is None:
@@ -248,8 +248,7 @@ DEFAULT_CONTAINER_IMAGE = from_conf("DEFAULT_CONTAINER_IMAGE")
248
248
  # Default container registry
249
249
  DEFAULT_CONTAINER_REGISTRY = from_conf("DEFAULT_CONTAINER_REGISTRY")
250
250
  # Controls whether to include foreach stack information in metadata.
251
- # TODO(Darin, 05/01/24): Remove this flag once we are confident with this feature.
252
- INCLUDE_FOREACH_STACK = from_conf("INCLUDE_FOREACH_STACK", False)
251
+ INCLUDE_FOREACH_STACK = from_conf("INCLUDE_FOREACH_STACK", True)
253
252
  # Maximum length of the foreach value string to be stored in each ForeachFrame.
254
253
  MAXIMUM_FOREACH_VALUE_CHARS = from_conf("MAXIMUM_FOREACH_VALUE_CHARS", 30)
255
254
  # The default runtime limit (In seconds) of jobs launched by any compute provider. Default of 5 days.
@@ -285,7 +284,7 @@ CONTACT_INFO = from_conf(
285
284
  ###
286
285
  # Format is a space separated string of decospecs (what is passed
287
286
  # using --with)
288
- DECOSPECS = from_conf("DECOSPECS", "")
287
+ DEFAULT_DECOSPECS = from_conf("DEFAULT_DECOSPECS", "")
289
288
 
290
289
  ###
291
290
  # AWS Batch configuration
@@ -433,9 +432,6 @@ CONDA_PACKAGE_GSROOT = from_conf("CONDA_PACKAGE_GSROOT")
433
432
  # should result in an appreciable speedup in flow environment initialization.
434
433
  CONDA_DEPENDENCY_RESOLVER = from_conf("CONDA_DEPENDENCY_RESOLVER", "conda")
435
434
 
436
- # Default to not using fast init binary.
437
- CONDA_USE_FAST_INIT = from_conf("CONDA_USE_FAST_INIT", False)
438
-
439
435
  ###
440
436
  # Escape hatch configuration
441
437
  ###
@@ -581,9 +577,9 @@ try:
581
577
  _TOGGLE_DECOSPECS.extend(o)
582
578
  elif not n.startswith("__") and not isinstance(o, types.ModuleType):
583
579
  globals()[n] = o
584
- # If DECOSPECS is set, use that, else extrapolate from extensions
585
- if not DECOSPECS:
586
- DECOSPECS = " ".join(_TOGGLE_DECOSPECS)
580
+ # If DEFAULT_DECOSPECS is set, use that, else extrapolate from extensions
581
+ if not DEFAULT_DECOSPECS:
582
+ DEFAULT_DECOSPECS = " ".join(_TOGGLE_DECOSPECS)
587
583
 
588
584
  finally:
589
585
  # Erase all temporary names to avoid leaking things
@@ -8,12 +8,12 @@ from metaflow.plugins import DATASTORES
8
8
  from metaflow.util import Path
9
9
  from . import TASK_LOG_SOURCE
10
10
 
11
- from metaflow.tracing import cli_entrypoint
11
+ from metaflow.tracing import cli
12
12
 
13
13
  SMALL_FILE_LIMIT = 1024 * 1024
14
14
 
15
15
 
16
- @cli_entrypoint("save_logs")
16
+ @cli("save_logs")
17
17
  def save_logs():
18
18
  def _read_file(path):
19
19
  with open(path, "rb") as f:
@@ -77,13 +77,9 @@ class ArgoWorkflowsSchedulingException(MetaflowException):
77
77
  # List of future enhancements -
78
78
  # 1. Configure Argo metrics.
79
79
  # 2. Support resuming failed workflows within Argo Workflows.
80
- # 3. Support gang-scheduled clusters for distributed PyTorch/TF - One option is to
81
- # use volcano - https://github.com/volcano-sh/volcano/tree/master/example/integrations/argo
82
- # 4. Support GitOps workflows.
83
- # 5. Add Metaflow tags to labels/annotations.
84
- # 6. Support Multi-cluster scheduling - https://github.com/argoproj/argo-workflows/issues/3523#issuecomment-792307297
85
- # 7. Support R lang.
86
- # 8. Ping @savin at slack.outerbounds.co for any feature request
80
+ # 3. Add Metaflow tags to labels/annotations.
81
+ # 4. Support R lang.
82
+ # 5. Ping @savin at slack.outerbounds.co for any feature request
87
83
 
88
84
 
89
85
  class ArgoWorkflows(object):
@@ -742,6 +738,7 @@ class ArgoWorkflows(object):
742
738
  {
743
739
  "slack": bool(self.notify_slack_webhook_url),
744
740
  "pager_duty": bool(self.notify_pager_duty_integration_key),
741
+ "incident_io": bool(self.notify_incident_io_api_key),
745
742
  }
746
743
  )
747
744
  }
@@ -753,6 +750,7 @@ class ArgoWorkflows(object):
753
750
  {
754
751
  "slack": bool(self.notify_slack_webhook_url),
755
752
  "pager_duty": bool(self.notify_pager_duty_integration_key),
753
+ "incident_io": bool(self.notify_incident_io_api_key),
756
754
  }
757
755
  )
758
756
  }
@@ -2021,6 +2019,8 @@ class ArgoWorkflows(object):
2021
2019
  kubernetes_labels = {
2022
2020
  "task_id_entropy": "{{inputs.parameters.task-id-entropy}}",
2023
2021
  "num_parallel": "{{inputs.parameters.num-parallel}}",
2022
+ "metaflow/argo-workflows-name": "{{workflow.name}}",
2023
+ "workflows.argoproj.io/workflow": "{{workflow.name}}",
2024
2024
  }
2025
2025
  jobset.labels(
2026
2026
  {
@@ -2305,6 +2305,10 @@ class ArgoWorkflows(object):
2305
2305
  templates.append(self._slack_success_template())
2306
2306
  templates.append(self._pager_duty_change_template())
2307
2307
  templates.append(self._incident_io_change_template())
2308
+
2309
+ # Clean up None values from templates.
2310
+ templates = list(filter(None, templates))
2311
+
2308
2312
  if self.notify_on_error or self.notify_on_success:
2309
2313
  # Warning: terrible hack to workaround a bug in Argo Workflow where the
2310
2314
  # templates listed above do not execute unless there is an
@@ -3635,7 +3639,7 @@ class Template(object):
3635
3639
  def resource(self, action, manifest, success_criteria, failure_criteria):
3636
3640
  self.payload["resource"] = {}
3637
3641
  self.payload["resource"]["action"] = action
3638
- self.payload["setOwnerReference"] = True
3642
+ self.payload["resource"]["setOwnerReference"] = True
3639
3643
  self.payload["resource"]["successCondition"] = success_criteria
3640
3644
  self.payload["resource"]["failureCondition"] = failure_criteria
3641
3645
  self.payload["resource"]["manifest"] = manifest
@@ -168,12 +168,12 @@ def argo_workflows(obj, name=None):
168
168
  )
169
169
  @click.option(
170
170
  "--notify-slack-webhook-url",
171
- default="",
171
+ default=None,
172
172
  help="Slack incoming webhook url for workflow success/failure notifications.",
173
173
  )
174
174
  @click.option(
175
175
  "--notify-pager-duty-integration-key",
176
- default="",
176
+ default=None,
177
177
  help="PagerDuty Events API V2 Integration key for workflow success/failure notifications.",
178
178
  )
179
179
  @click.option(
@@ -155,7 +155,7 @@ def normalize_client_error(err):
155
155
  # S3 worker pool
156
156
 
157
157
 
158
- @tracing.cli_entrypoint("s3op/worker")
158
+ @tracing.cli("s3op/worker")
159
159
  def worker(result_file_name, queue, mode, s3config):
160
160
  # Interpret mode, it can either be a single op or something like
161
161
  # info_download or info_upload which implies:
@@ -723,7 +723,7 @@ def cli():
723
723
 
724
724
 
725
725
  @cli.command("list", help="List S3 objects")
726
- @tracing.cli_entrypoint("s3op/list")
726
+ @tracing.cli("s3op/list")
727
727
  @click.option(
728
728
  "--recursive/--no-recursive",
729
729
  default=False,
@@ -783,7 +783,7 @@ def lst(
783
783
 
784
784
 
785
785
  @cli.command(help="Upload files to S3")
786
- @tracing.cli_entrypoint("s3op/put")
786
+ @tracing.cli("s3op/put")
787
787
  @click.option(
788
788
  "--file",
789
789
  "files",
@@ -978,7 +978,7 @@ def _populate_prefixes(prefixes, inputs):
978
978
 
979
979
 
980
980
  @cli.command(help="Download files from S3")
981
- @tracing.cli_entrypoint("s3op/get")
981
+ @tracing.cli("s3op/get")
982
982
  @click.option(
983
983
  "--recursive/--no-recursive",
984
984
  default=False,