metaflow 2.18.8__tar.gz → 2.19.7__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 (454) hide show
  1. {metaflow-2.18.8/metaflow.egg-info → metaflow-2.19.7}/PKG-INFO +2 -4
  2. {metaflow-2.18.8 → metaflow-2.19.7}/README.md +0 -2
  3. {metaflow-2.18.8 → metaflow-2.19.7}/devtools/Makefile +10 -0
  4. {metaflow-2.18.8 → metaflow-2.19.7}/devtools/Tiltfile +78 -3
  5. {metaflow-2.18.8 → metaflow-2.19.7}/devtools/pick_services.sh +1 -0
  6. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/__init__.py +1 -0
  7. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cards.py +3 -0
  8. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cli.py +78 -13
  9. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cli_components/run_cmds.py +182 -39
  10. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cli_components/step_cmd.py +160 -4
  11. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/client/__init__.py +1 -0
  12. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/client/core.py +162 -99
  13. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/client/filecache.py +59 -32
  14. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cmd/code/__init__.py +2 -1
  15. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/datastore/__init__.py +1 -0
  16. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/datastore/content_addressed_store.py +40 -9
  17. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/datastore/datastore_set.py +10 -1
  18. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/datastore/flow_datastore.py +124 -4
  19. metaflow-2.19.7/metaflow/datastore/spin_datastore.py +91 -0
  20. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/datastore/task_datastore.py +86 -2
  21. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/decorators.py +77 -8
  22. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/extension_support/__init__.py +372 -305
  23. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/flowspec.py +3 -2
  24. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/graph.py +2 -2
  25. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/includefile.py +25 -3
  26. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/metaflow_config.py +43 -1
  27. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/metaflow_environment.py +1 -0
  28. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/metaflow_profile.py +18 -0
  29. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/packaging_sys/utils.py +2 -39
  30. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/packaging_sys/v1.py +63 -16
  31. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/parameters.py +4 -0
  32. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/__init__.py +3 -0
  33. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/argo/argo_client.py +1 -0
  34. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/argo/argo_events.py +6 -6
  35. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/argo/argo_workflows.py +65 -34
  36. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/argo/argo_workflows_cli.py +20 -0
  37. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/argo/capture_error.py +5 -2
  38. metaflow-2.19.7/metaflow/plugins/argo/param_val.py +19 -0
  39. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_datastore.py +13 -13
  40. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_decorator.py +1 -0
  41. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/basic.py +23 -7
  42. metaflow-2.19.7/metaflow/plugins/cards/card_modules/bundle.css +1 -0
  43. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/components.py +364 -3
  44. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/convert_to_native_type.py +23 -3
  45. metaflow-2.19.7/metaflow/plugins/cards/card_modules/json_viewer.py +232 -0
  46. metaflow-2.19.7/metaflow/plugins/cards/card_modules/main.js +269 -0
  47. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/datastores/local_storage.py +12 -6
  48. metaflow-2.19.7/metaflow/plugins/datastores/spin_storage.py +12 -0
  49. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/datatools/s3/s3.py +46 -17
  50. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/datatools/s3/s3op.py +99 -65
  51. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/client_modules.py +102 -72
  52. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/metadata_providers/local.py +76 -82
  53. metaflow-2.19.7/metaflow/plugins/metadata_providers/spin.py +16 -0
  54. metaflow-2.19.7/metaflow/plugins/parsers.py +16 -0
  55. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/pypi/pip.py +12 -2
  56. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/pypi/utils.py +22 -0
  57. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/secrets/secrets_decorator.py +5 -5
  58. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/runner/click_api.py +44 -6
  59. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/runner/metaflow_runner.py +210 -19
  60. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/runner/utils.py +19 -16
  61. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/runtime.py +348 -21
  62. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/task.py +61 -12
  63. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/user_configs/config_parameters.py +2 -4
  64. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/user_decorators/mutable_flow.py +2 -2
  65. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/user_decorators/user_step_decorator.py +15 -3
  66. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/util.py +191 -1
  67. metaflow-2.19.7/metaflow/version.py +1 -0
  68. {metaflow-2.18.8 → metaflow-2.19.7/metaflow.egg-info}/PKG-INFO +2 -4
  69. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow.egg-info/SOURCES.txt +6 -0
  70. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow.egg-info/requires.txt +1 -1
  71. metaflow-2.18.8/metaflow/plugins/cards/card_modules/bundle.css +0 -1
  72. metaflow-2.18.8/metaflow/plugins/cards/card_modules/main.js +0 -254
  73. metaflow-2.18.8/metaflow/version.py +0 -1
  74. {metaflow-2.18.8 → metaflow-2.19.7}/LICENSE +0 -0
  75. {metaflow-2.18.8 → metaflow-2.19.7}/MANIFEST.in +0 -0
  76. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/R.py +0 -0
  77. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/__init__.py +0 -0
  78. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/__init__.py +0 -0
  79. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/_bashcomplete.py +0 -0
  80. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/_compat.py +0 -0
  81. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/_termui_impl.py +0 -0
  82. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/_textwrap.py +0 -0
  83. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/_unicodefun.py +0 -0
  84. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/_winconsole.py +0 -0
  85. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/core.py +0 -0
  86. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/decorators.py +0 -0
  87. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/exceptions.py +0 -0
  88. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/formatting.py +0 -0
  89. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/globals.py +0 -0
  90. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/parser.py +0 -0
  91. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/termui.py +0 -0
  92. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/testing.py +0 -0
  93. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/types.py +0 -0
  94. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/click/utils.py +0 -0
  95. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/imghdr/__init__.py +0 -0
  96. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/__init__.py +0 -0
  97. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/_adapters.py +0 -0
  98. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/_collections.py +0 -0
  99. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/_compat.py +0 -0
  100. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/_functools.py +0 -0
  101. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/_itertools.py +0 -0
  102. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/_meta.py +0 -0
  103. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/_text.py +0 -0
  104. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/py.typed +0 -0
  105. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/packaging/__init__.py +0 -0
  106. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/packaging/_elffile.py +0 -0
  107. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/packaging/_manylinux.py +0 -0
  108. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/packaging/_musllinux.py +0 -0
  109. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/packaging/_parser.py +0 -0
  110. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/packaging/_structures.py +0 -0
  111. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/packaging/_tokenizer.py +0 -0
  112. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/packaging/markers.py +0 -0
  113. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/packaging/py.typed +0 -0
  114. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/packaging/requirements.py +0 -0
  115. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/packaging/specifiers.py +0 -0
  116. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/packaging/tags.py +0 -0
  117. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/packaging/utils.py +0 -0
  118. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/packaging/version.py +0 -0
  119. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/typeguard/__init__.py +0 -0
  120. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_checkers.py +0 -0
  121. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_config.py +0 -0
  122. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_decorators.py +0 -0
  123. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_exceptions.py +0 -0
  124. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_functions.py +0 -0
  125. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_importhook.py +0 -0
  126. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_memo.py +0 -0
  127. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_pytest_plugin.py +0 -0
  128. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_suppression.py +0 -0
  129. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_transformer.py +0 -0
  130. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_union_transformer.py +0 -0
  131. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_utils.py +0 -0
  132. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/typeguard/py.typed +0 -0
  133. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/typing_extensions.py +0 -0
  134. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_6/__init__.py +0 -0
  135. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py +0 -0
  136. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py +0 -0
  137. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py +0 -0
  138. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py +0 -0
  139. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py +0 -0
  140. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py +0 -0
  141. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/_meta.py +0 -0
  142. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/_text.py +0 -0
  143. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/py.typed +0 -0
  144. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_6/typing_extensions.py +0 -0
  145. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_6/zipp.py +0 -0
  146. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/__init__.py +0 -0
  147. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/__init__.py +0 -0
  148. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/_adapters.py +0 -0
  149. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/_collections.py +0 -0
  150. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/_compat.py +0 -0
  151. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/_functools.py +0 -0
  152. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/_itertools.py +0 -0
  153. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/_meta.py +0 -0
  154. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/_text.py +0 -0
  155. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/py.typed +0 -0
  156. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/__init__.py +0 -0
  157. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_checkers.py +0 -0
  158. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_config.py +0 -0
  159. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_decorators.py +0 -0
  160. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_exceptions.py +0 -0
  161. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_functions.py +0 -0
  162. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_importhook.py +0 -0
  163. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_memo.py +0 -0
  164. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_pytest_plugin.py +0 -0
  165. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_suppression.py +0 -0
  166. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_transformer.py +0 -0
  167. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_union_transformer.py +0 -0
  168. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_utils.py +0 -0
  169. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/py.typed +0 -0
  170. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typing_extensions.py +0 -0
  171. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/v3_7/zipp.py +0 -0
  172. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/__init__.py +0 -0
  173. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/composer.py +0 -0
  174. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/constructor.py +0 -0
  175. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/cyaml.py +0 -0
  176. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/dumper.py +0 -0
  177. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/emitter.py +0 -0
  178. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/error.py +0 -0
  179. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/events.py +0 -0
  180. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/loader.py +0 -0
  181. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/nodes.py +0 -0
  182. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/parser.py +0 -0
  183. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/reader.py +0 -0
  184. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/representer.py +0 -0
  185. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/resolver.py +0 -0
  186. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/scanner.py +0 -0
  187. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/serializer.py +0 -0
  188. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/yaml/tokens.py +0 -0
  189. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/_vendor/zipp.py +0 -0
  190. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cli_args.py +0 -0
  191. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cli_components/__init__.py +0 -0
  192. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cli_components/dump_cmd.py +0 -0
  193. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cli_components/init_cmd.py +0 -0
  194. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cli_components/utils.py +0 -0
  195. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/clone_util.py +0 -0
  196. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cmd/__init__.py +0 -0
  197. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cmd/configure_cmd.py +0 -0
  198. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cmd/develop/__init__.py +0 -0
  199. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cmd/develop/stub_generator.py +0 -0
  200. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cmd/develop/stubs.py +0 -0
  201. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cmd/main_cli.py +0 -0
  202. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cmd/make_wrapper.py +0 -0
  203. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cmd/tutorials_cmd.py +0 -0
  204. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cmd/util.py +0 -0
  205. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/cmd_with_io.py +0 -0
  206. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/datastore/datastore_storage.py +0 -0
  207. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/datastore/exceptions.py +0 -0
  208. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/datastore/inputs.py +0 -0
  209. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/debug.py +0 -0
  210. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/event_logger.py +0 -0
  211. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/events.py +0 -0
  212. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/exception.py +0 -0
  213. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/extension_support/_empty_file.py +0 -0
  214. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/extension_support/cmd.py +0 -0
  215. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/extension_support/integrations.py +0 -0
  216. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/extension_support/plugins.py +0 -0
  217. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/integrations.py +0 -0
  218. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/lint.py +0 -0
  219. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/meta_files.py +0 -0
  220. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/metadata_provider/__init__.py +0 -0
  221. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/metadata_provider/heartbeat.py +0 -0
  222. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/metadata_provider/metadata.py +0 -0
  223. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/metadata_provider/util.py +0 -0
  224. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/metaflow_config_funcs.py +0 -0
  225. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/metaflow_current.py +0 -0
  226. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/metaflow_git.py +0 -0
  227. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/metaflow_version.py +0 -0
  228. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/mflog/__init__.py +0 -0
  229. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/mflog/mflog.py +0 -0
  230. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/mflog/save_logs.py +0 -0
  231. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/mflog/save_logs_periodically.py +0 -0
  232. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/mflog/tee.py +0 -0
  233. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/monitor.py +0 -0
  234. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/multicore_utils.py +0 -0
  235. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/package/__init__.py +0 -0
  236. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/packaging_sys/__init__.py +0 -0
  237. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/packaging_sys/backend.py +0 -0
  238. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/packaging_sys/distribution_support.py +0 -0
  239. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/packaging_sys/tar_backend.py +0 -0
  240. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/airflow/__init__.py +0 -0
  241. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/airflow/airflow.py +0 -0
  242. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/airflow/airflow_cli.py +0 -0
  243. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/airflow/airflow_decorator.py +0 -0
  244. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/airflow/airflow_utils.py +0 -0
  245. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/airflow/dag.py +0 -0
  246. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/airflow/exception.py +0 -0
  247. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/airflow/plumbing/__init__.py +0 -0
  248. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/airflow/plumbing/set_parameters.py +0 -0
  249. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/airflow/sensors/__init__.py +0 -0
  250. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/airflow/sensors/base_sensor.py +0 -0
  251. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/airflow/sensors/external_task_sensor.py +0 -0
  252. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/airflow/sensors/s3_sensor.py +0 -0
  253. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/argo/__init__.py +0 -0
  254. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/argo/argo_workflows_decorator.py +0 -0
  255. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/argo/argo_workflows_deployer.py +0 -0
  256. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/argo/argo_workflows_deployer_objects.py +0 -0
  257. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/argo/conditional_input_paths.py +0 -0
  258. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/argo/exit_hooks.py +0 -0
  259. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/argo/generate_input_paths.py +0 -0
  260. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/argo/jobset_input_paths.py +0 -0
  261. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/__init__.py +0 -0
  262. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/aws_client.py +0 -0
  263. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/aws_utils.py +0 -0
  264. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/batch/__init__.py +0 -0
  265. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/batch/batch.py +0 -0
  266. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/batch/batch_cli.py +0 -0
  267. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/batch/batch_client.py +0 -0
  268. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/batch/batch_decorator.py +0 -0
  269. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/secrets_manager/__init__.py +0 -0
  270. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py +0 -0
  271. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/__init__.py +0 -0
  272. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/dynamo_db_client.py +0 -0
  273. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/event_bridge_client.py +0 -0
  274. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/production_token.py +0 -0
  275. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/schedule_decorator.py +0 -0
  276. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/set_batch_environment.py +0 -0
  277. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/step_functions.py +0 -0
  278. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/step_functions_cli.py +0 -0
  279. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/step_functions_client.py +0 -0
  280. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/step_functions_decorator.py +0 -0
  281. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/step_functions_deployer.py +0 -0
  282. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +0 -0
  283. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/azure/__init__.py +0 -0
  284. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/azure/azure_credential.py +0 -0
  285. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/azure/azure_exceptions.py +0 -0
  286. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/azure/azure_secret_manager_secrets_provider.py +0 -0
  287. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/azure/azure_tail.py +0 -0
  288. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/azure/azure_utils.py +0 -0
  289. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/azure/blob_service_client_factory.py +0 -0
  290. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/azure/includefile_support.py +0 -0
  291. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/__init__.py +0 -0
  292. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_cli.py +0 -0
  293. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_client.py +0 -0
  294. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_creator.py +0 -0
  295. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/__init__.py +0 -0
  296. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/base.html +0 -0
  297. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/card.py +0 -0
  298. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/chevron/__init__.py +0 -0
  299. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/chevron/main.py +0 -0
  300. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/chevron/metadata.py +0 -0
  301. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/chevron/renderer.py +0 -0
  302. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/chevron/tokenizer.py +0 -0
  303. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/main.css +0 -0
  304. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/renderer_tools.py +0 -0
  305. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/test_cards.py +0 -0
  306. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_resolver.py +0 -0
  307. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_server.py +0 -0
  308. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/card_viewer/viewer.html +0 -0
  309. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/component_serializer.py +0 -0
  310. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/exception.py +0 -0
  311. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/cards/metadata.py +0 -0
  312. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/catch_decorator.py +0 -0
  313. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/datastores/__init__.py +0 -0
  314. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/datastores/azure_storage.py +0 -0
  315. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/datastores/gs_storage.py +0 -0
  316. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/datastores/s3_storage.py +0 -0
  317. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/datatools/__init__.py +0 -0
  318. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/datatools/local.py +0 -0
  319. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/datatools/s3/__init__.py +0 -0
  320. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/datatools/s3/s3tail.py +0 -0
  321. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/datatools/s3/s3util.py +0 -0
  322. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/debug_logger.py +0 -0
  323. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/debug_monitor.py +0 -0
  324. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/__init__.py +0 -0
  325. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/client.py +0 -0
  326. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/communication/__init__.py +0 -0
  327. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/communication/bytestream.py +0 -0
  328. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/communication/channel.py +0 -0
  329. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/communication/socket_bytestream.py +0 -0
  330. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/communication/utils.py +0 -0
  331. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py +0 -0
  332. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +0 -0
  333. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +0 -0
  334. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py +0 -0
  335. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +0 -0
  336. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/consts.py +0 -0
  337. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/data_transferer.py +0 -0
  338. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/exception_transferer.py +0 -0
  339. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/override_decorators.py +0 -0
  340. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/server.py +0 -0
  341. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/stub.py +0 -0
  342. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/env_escape/utils.py +0 -0
  343. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/environment_decorator.py +0 -0
  344. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/events_decorator.py +0 -0
  345. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/exit_hook/__init__.py +0 -0
  346. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/exit_hook/exit_hook_decorator.py +0 -0
  347. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/exit_hook/exit_hook_script.py +0 -0
  348. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/frameworks/__init__.py +0 -0
  349. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/frameworks/pytorch.py +0 -0
  350. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/gcp/__init__.py +0 -0
  351. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +0 -0
  352. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/gcp/gs_exceptions.py +0 -0
  353. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/gcp/gs_storage_client_factory.py +0 -0
  354. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/gcp/gs_tail.py +0 -0
  355. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/gcp/gs_utils.py +0 -0
  356. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/gcp/includefile_support.py +0 -0
  357. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/kubernetes/__init__.py +0 -0
  358. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/kubernetes/kube_utils.py +0 -0
  359. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/kubernetes/kubernetes.py +0 -0
  360. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/kubernetes/kubernetes_cli.py +0 -0
  361. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/kubernetes/kubernetes_client.py +0 -0
  362. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/kubernetes/kubernetes_decorator.py +0 -0
  363. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/kubernetes/kubernetes_job.py +0 -0
  364. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/kubernetes/kubernetes_jobsets.py +0 -0
  365. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/kubernetes/spot_metadata_cli.py +0 -0
  366. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/kubernetes/spot_monitor_sidecar.py +0 -0
  367. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/logs_cli.py +0 -0
  368. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/metadata_providers/__init__.py +0 -0
  369. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/metadata_providers/service.py +0 -0
  370. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/package_cli.py +0 -0
  371. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/parallel_decorator.py +0 -0
  372. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/project_decorator.py +0 -0
  373. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/pypi/__init__.py +0 -0
  374. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/pypi/bootstrap.py +0 -0
  375. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/pypi/conda_decorator.py +0 -0
  376. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/pypi/conda_environment.py +0 -0
  377. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/pypi/micromamba.py +0 -0
  378. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/pypi/parsers.py +0 -0
  379. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/pypi/pypi_decorator.py +0 -0
  380. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/pypi/pypi_environment.py +0 -0
  381. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/resources_decorator.py +0 -0
  382. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/retry_decorator.py +0 -0
  383. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/secrets/__init__.py +0 -0
  384. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/secrets/inline_secrets_provider.py +0 -0
  385. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/secrets/secrets_func.py +0 -0
  386. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/secrets/secrets_spec.py +0 -0
  387. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/secrets/utils.py +0 -0
  388. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/storage_executor.py +0 -0
  389. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/tag_cli.py +0 -0
  390. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/test_unbounded_foreach_decorator.py +0 -0
  391. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/timeout_decorator.py +0 -0
  392. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/uv/__init__.py +0 -0
  393. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/uv/bootstrap.py +0 -0
  394. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/plugins/uv/uv_environment.py +0 -0
  395. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/procpoll.py +0 -0
  396. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/py.typed +0 -0
  397. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/pylint_wrapper.py +0 -0
  398. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/runner/__init__.py +0 -0
  399. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/runner/deployer.py +0 -0
  400. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/runner/deployer_impl.py +0 -0
  401. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/runner/nbdeploy.py +0 -0
  402. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/runner/nbrun.py +0 -0
  403. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/runner/subprocess_manager.py +0 -0
  404. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/sidecar/__init__.py +0 -0
  405. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/sidecar/sidecar.py +0 -0
  406. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/sidecar/sidecar_messages.py +0 -0
  407. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/sidecar/sidecar_subprocess.py +0 -0
  408. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/sidecar/sidecar_worker.py +0 -0
  409. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/system/__init__.py +0 -0
  410. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/system/system_logger.py +0 -0
  411. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/system/system_monitor.py +0 -0
  412. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/system/system_utils.py +0 -0
  413. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tagging_util.py +0 -0
  414. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tracing/__init__.py +0 -0
  415. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tracing/propagator.py +0 -0
  416. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tracing/span_exporter.py +0 -0
  417. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tracing/tracing_modules.py +0 -0
  418. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tuple_util.py +0 -0
  419. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/00-helloworld/README.md +0 -0
  420. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/00-helloworld/helloworld.py +0 -0
  421. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/01-playlist/README.md +0 -0
  422. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/01-playlist/movies.csv +0 -0
  423. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/01-playlist/playlist.ipynb +0 -0
  424. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/01-playlist/playlist.py +0 -0
  425. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/02-statistics/README.md +0 -0
  426. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/02-statistics/movies.csv +0 -0
  427. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/02-statistics/stats.ipynb +0 -0
  428. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/02-statistics/stats.py +0 -0
  429. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/03-playlist-redux/README.md +0 -0
  430. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/03-playlist-redux/playlist.py +0 -0
  431. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/04-playlist-plus/README.md +0 -0
  432. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/04-playlist-plus/playlist.py +0 -0
  433. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/05-hello-cloud/README.md +0 -0
  434. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/05-hello-cloud/hello-cloud.ipynb +0 -0
  435. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/05-hello-cloud/hello-cloud.py +0 -0
  436. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/06-statistics-redux/README.md +0 -0
  437. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/06-statistics-redux/stats.ipynb +0 -0
  438. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/07-worldview/README.md +0 -0
  439. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/07-worldview/worldview.ipynb +0 -0
  440. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/08-autopilot/README.md +0 -0
  441. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/tutorials/08-autopilot/autopilot.ipynb +0 -0
  442. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/unbounded_foreach.py +0 -0
  443. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/user_configs/__init__.py +0 -0
  444. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/user_configs/config_options.py +0 -0
  445. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/user_decorators/__init__.py +0 -0
  446. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/user_decorators/common.py +0 -0
  447. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/user_decorators/mutable_step.py +0 -0
  448. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/user_decorators/user_flow_decorator.py +0 -0
  449. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow/vendor.py +0 -0
  450. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow.egg-info/dependency_links.txt +0 -0
  451. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow.egg-info/entry_points.txt +0 -0
  452. {metaflow-2.18.8 → metaflow-2.19.7}/metaflow.egg-info/top_level.txt +0 -0
  453. {metaflow-2.18.8 → metaflow-2.19.7}/setup.cfg +0 -0
  454. {metaflow-2.18.8 → metaflow-2.19.7}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metaflow
3
- Version: 2.18.8
3
+ Version: 2.19.7
4
4
  Summary: Metaflow: More AI and ML, 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.18.8; extra == "stubs"
29
+ Requires-Dist: metaflow-stubs==2.19.7; extra == "stubs"
30
30
  Dynamic: author
31
31
  Dynamic: author-email
32
32
  Dynamic: classifier
@@ -101,5 +101,3 @@ We'd love to hear from you. Join our community [Slack workspace](http://slack.ou
101
101
 
102
102
  ## Contributing
103
103
  We welcome contributions to Metaflow. Please see our [contribution guide](https://docs.metaflow.org/introduction/contributing-to-metaflow) for more details.
104
-
105
-
@@ -60,5 +60,3 @@ We'd love to hear from you. Join our community [Slack workspace](http://slack.ou
60
60
 
61
61
  ## Contributing
62
62
  We welcome contributions to Metaflow. Please see our [contribution guide](https://docs.metaflow.org/introduction/contributing-to-metaflow) for more details.
63
-
64
-
@@ -31,6 +31,7 @@ MAKE_CMD := $(MAKE) -f "$(MKFILE_PATH)"
31
31
  MINIKUBE_CPUS ?= 4
32
32
  MINIKUBE_MEMORY ?= 6144
33
33
  MINIKUBE_DISK_SIZE ?= 20g
34
+ WAIT_TIMEOUT ?= 300
34
35
 
35
36
  ifeq ($(shell uname), Darwin)
36
37
  minikube_os = darwin
@@ -269,6 +270,15 @@ shell: setup-tilt
269
270
  "$$user_shell" -i; \
270
271
  fi'
271
272
 
273
+ wait-until-ready:
274
+ @echo "Waiting for infrastructure to be ready. Timing out in $(WAIT_TIMEOUT) seconds..."
275
+ @timeout $(WAIT_TIMEOUT) bash -c 'while [ ! -f $(DEVTOOLS_DIR)/start.sh ]; do sleep 10; done; echo "Infra is Ready"' || (echo "Waiting for infra timed out"&&exit 1)
276
+ # buffer to get the tilt api running
277
+ @timeout 120 bash -c 'while ! $(TILT) get session; do sleep 3;done'
278
+ @echo "Waiting for services to be ready. Timing out in $(WAIT_TIMEOUT) seconds..."
279
+ # Need to wait for Tiltfile first, as other resources return 404 otherwise
280
+ @$(TILT) wait --for=condition=Ready "uiresource/(Tiltfile)" --timeout=$(WAIT_TIMEOUT)s
281
+ @$(TILT) wait --for=condition=Ready uiresource/generate-configs --timeout=$(WAIT_TIMEOUT)s
272
282
 
273
283
  # @echo '$(MAKE_CMD) create-dev-shell' >> $(DEVTOOLS_DIR)/start.sh
274
284
  # @echo 'rm -f /tmp/metaflow-devshell-*' >> $(DEVTOOLS_DIR)/start.sh
@@ -14,6 +14,17 @@
14
14
  version_settings(constraint='>=0.22.2')
15
15
  allow_k8s_contexts('minikube')
16
16
 
17
+ # Version configuration for components
18
+ JOBSET_VERSION = os.getenv("JOBSET_VERSION", "v0.8.2")
19
+
20
+ # Argo Workflows versions
21
+ ARGO_WORKFLOWS_HELM_CHART_VERSION = os.getenv("ARGO_WORKFLOWS_HELM_CHART_VERSION", "0.45.2") # Helm chart version
22
+ ARGO_WORKFLOWS_IMAGE_TAG = os.getenv("ARGO_WORKFLOWS_IMAGE_TAG", "v3.6.0") # Argo Workflows application version
23
+
24
+ # Argo Events versions
25
+ ARGO_EVENTS_HELM_CHART_VERSION = os.getenv("ARGO_EVENTS_HELM_CHART_VERSION", "2.4.8") # Helm chart version
26
+ ARGO_EVENTS_IMAGE_TAG = os.getenv("ARGO_EVENTS_IMAGE_TAG", "v1.9.2") # Argo Events application version
27
+
17
28
  components = {
18
29
  "metadata-service": ["postgresql"],
19
30
  "ui": ["postgresql", "minio"],
@@ -21,9 +32,10 @@ components = {
21
32
  "postgresql": [],
22
33
  "argo-workflows": [],
23
34
  "argo-events": ["argo-workflows"],
35
+ "jobset": [],
24
36
  }
25
37
 
26
- services_env = os.getenv("SERVICES", "").strip().lower()
38
+ services_env = os.getenv("SERVICES", "all").strip().lower()
27
39
 
28
40
  if services_env:
29
41
  if services_env == "all":
@@ -172,6 +184,7 @@ if "postgresql" in enabled_components:
172
184
  'auth.username=metaflow',
173
185
  'auth.password=metaflow123',
174
186
  'auth.database=metaflow',
187
+ 'image.repository=bitnamilegacy/postgresql',
175
188
  'primary.persistence.enabled=false',
176
189
  'primary.resources.requests.memory=128Mi',
177
190
  'primary.resources.requests.cpu=50m',
@@ -205,6 +218,7 @@ if "postgresql" in enabled_components:
205
218
  if "argo-workflows" in enabled_components:
206
219
  helm_remote(
207
220
  'argo-workflows',
221
+ version=ARGO_WORKFLOWS_HELM_CHART_VERSION,
208
222
  repo_name='argo',
209
223
  repo_url='https://argoproj.github.io/argo-helm',
210
224
  set=[
@@ -220,7 +234,9 @@ if "argo-workflows" in enabled_components:
220
234
  'controller.resources.requests.memory=128Mi',
221
235
  'controller.resources.requests.cpu=50m',
222
236
  'controller.resources.limits.memory=256Mi',
223
- 'controller.resources.limits.cpu=100m'
237
+ 'controller.resources.limits.cpu=100m',
238
+ # Image version overrides
239
+ 'images.tag=%s' % ARGO_WORKFLOWS_IMAGE_TAG,
224
240
  ]
225
241
  )
226
242
 
@@ -307,6 +323,7 @@ if "argo-workflows" in enabled_components:
307
323
  if "argo-events" in enabled_components:
308
324
  helm_remote(
309
325
  'argo-events',
326
+ version=ARGO_EVENTS_HELM_CHART_VERSION,
310
327
  repo_name='argo',
311
328
  repo_url='https://argoproj.github.io/argo-helm',
312
329
  set=[
@@ -334,6 +351,8 @@ if "argo-events" in enabled_components:
334
351
  'configs.jetstream.versions[1].natsImage=nats:2.9.15',
335
352
  'configs.jetstream.versions[1].startCommand=/nats-server',
336
353
  'configs.jetstream.versions[1].version=2.9.15',
354
+ # Image version overrides
355
+ 'global.image.tag=%s' % ARGO_EVENTS_IMAGE_TAG,
337
356
  ]
338
357
  )
339
358
 
@@ -541,6 +560,62 @@ if "argo-events" in enabled_components:
541
560
  config_resources.append('argo-events-controller-manager')
542
561
  config_resources.append('argo-events-webhook-eventsource-svc')
543
562
 
563
+ #################################################
564
+ # JOBSET
565
+ #################################################
566
+ if "jobset" in enabled_components:
567
+ # Apply JobSet manifests directly from GitHub releases
568
+ jobset_manifest_url = "https://github.com/kubernetes-sigs/jobset/releases/download/%s/manifests.yaml" % JOBSET_VERSION
569
+
570
+ cmd = "curl -sSL %s" % (jobset_manifest_url)
571
+ k8s_yaml(
572
+ local(
573
+ cmd,
574
+ )
575
+ )
576
+
577
+ k8s_resource(
578
+ 'jobset-controller-manager',
579
+ labels=['jobset'],
580
+ )
581
+
582
+ metaflow_config["METAFLOW_KUBERNETES_JOBSET_ENABLED"] = "true"
583
+
584
+ config_resources.append('jobset-controller-manager')
585
+
586
+ # ClusterRole for jobset operations
587
+ k8s_yaml(encode_yaml({
588
+ 'apiVersion': 'rbac.authorization.k8s.io/v1',
589
+ 'kind': 'ClusterRole',
590
+ 'metadata': {
591
+ 'name': 'jobset-full-access'
592
+ },
593
+ 'rules': [{
594
+ 'apiGroups': ['jobset.x-k8s.io'],
595
+ 'resources': ['jobsets'],
596
+ 'verbs': ['*']
597
+ }]
598
+ }))
599
+
600
+ # ClusterRoleBinding for default service account to access jobsets
601
+ k8s_yaml(encode_yaml({
602
+ 'apiVersion': 'rbac.authorization.k8s.io/v1',
603
+ 'kind': 'ClusterRoleBinding',
604
+ 'metadata': {
605
+ 'name': 'default-jobset-binding'
606
+ },
607
+ 'subjects': [{
608
+ 'kind': 'ServiceAccount',
609
+ 'name': 'default',
610
+ 'namespace': 'default'
611
+ }],
612
+ 'roleRef': {
613
+ 'kind': 'ClusterRole',
614
+ 'name': 'jobset-full-access',
615
+ 'apiGroup': 'rbac.authorization.k8s.io'
616
+ }
617
+ }))
618
+
544
619
  #################################################
545
620
  # METADATA SERVICE
546
621
  #################################################
@@ -555,7 +630,7 @@ if "metadata-service" in enabled_components:
555
630
  'metadatadb.database=metaflow',
556
631
  'metadatadb.host=postgresql',
557
632
  'image.repository=public.ecr.aws/outerbounds/metaflow_metadata_service',
558
- 'image.tag=2.4.13-2-g70af4ed',
633
+ 'image.tag=2.5.0',
559
634
  'resources.requests.cpu=25m',
560
635
  'resources.requests.memory=64Mi',
561
636
  'resources.limits.cpu=50m',
@@ -18,6 +18,7 @@ SERVICE_OPTIONS=(
18
18
  "ui"
19
19
  "argo-workflows"
20
20
  "argo-events"
21
+ "jobset"
21
22
  )
22
23
 
23
24
  gum style "$LOGO" \
@@ -146,6 +146,7 @@ from .client import (
146
146
  metadata,
147
147
  get_metadata,
148
148
  default_metadata,
149
+ inspect_spin,
149
150
  Metaflow,
150
151
  Flow,
151
152
  Run,
@@ -10,6 +10,9 @@ from metaflow.plugins.cards.card_modules.components import (
10
10
  ProgressBar,
11
11
  ValueBox,
12
12
  PythonCode,
13
+ EventsTimeline,
14
+ JSONViewer,
15
+ YAMLViewer,
13
16
  )
14
17
  from metaflow.plugins.cards.card_modules.basic import (
15
18
  DefaultCard,
@@ -1,3 +1,4 @@
1
+ import os
1
2
  import functools
2
3
  import inspect
3
4
  import os
@@ -7,7 +8,6 @@ from datetime import datetime
7
8
 
8
9
  import metaflow.tracing as tracing
9
10
  from metaflow._vendor import click
10
- from metaflow.system import _system_logger, _system_monitor
11
11
 
12
12
  from . import decorators, lint, metaflow_version, parameters, plugins
13
13
  from .cli_args import cli_args
@@ -27,6 +27,8 @@ from .metaflow_config import (
27
27
  DEFAULT_PACKAGE_SUFFIXES,
28
28
  )
29
29
  from .metaflow_current import current
30
+ from .metaflow_profile import from_start
31
+ from metaflow.system import _system_monitor, _system_logger
30
32
  from .metaflow_environment import MetaflowEnvironment
31
33
  from .packaging_sys import MetaflowCodeContent
32
34
  from .plugins import (
@@ -38,9 +40,9 @@ from .plugins import (
38
40
  )
39
41
  from .pylint_wrapper import PyLint
40
42
  from .R import metaflow_r_version, use_r
43
+ from .util import get_latest_run_id, resolve_identity, decompress_list
41
44
  from .user_configs.config_options import LocalFileInput, config_options
42
45
  from .user_configs.config_parameters import ConfigValue
43
- from .util import get_latest_run_id, resolve_identity
44
46
 
45
47
  ERASE_TO_EOL = "\033[K"
46
48
  HIGHLIGHT = "red"
@@ -125,6 +127,8 @@ def logger(body="", system_msg=False, head="", bad=False, timestamp=True, nl=Tru
125
127
  "step": "metaflow.cli_components.step_cmd.step",
126
128
  "run": "metaflow.cli_components.run_cmds.run",
127
129
  "resume": "metaflow.cli_components.run_cmds.resume",
130
+ "spin": "metaflow.cli_components.run_cmds.spin",
131
+ "spin-step": "metaflow.cli_components.step_cmd.spin_step",
128
132
  },
129
133
  )
130
134
  def cli(ctx):
@@ -318,6 +322,13 @@ def version(obj):
318
322
  hidden=True,
319
323
  is_eager=True,
320
324
  )
325
+ @click.option(
326
+ "--mode",
327
+ type=click.Choice(["spin"]),
328
+ default=None,
329
+ help="Execution mode for metaflow CLI commands. Use 'spin' to enable "
330
+ "spin metadata and spin datastore for executions",
331
+ )
321
332
  @click.pass_context
322
333
  def start(
323
334
  ctx,
@@ -335,6 +346,7 @@ def start(
335
346
  local_config_file=None,
336
347
  config=None,
337
348
  config_value=None,
349
+ mode=None,
338
350
  **deco_options
339
351
  ):
340
352
  if quiet:
@@ -347,6 +359,7 @@ def start(
347
359
  if use_r():
348
360
  version = metaflow_r_version()
349
361
 
362
+ from_start("MetaflowCLI: Starting")
350
363
  echo("Metaflow %s" % version, fg="magenta", bold=True, nl=False)
351
364
  echo(" executing *%s*" % ctx.obj.flow.name, fg="magenta", nl=False)
352
365
  echo(" for *%s*" % resolve_identity(), fg="magenta")
@@ -366,6 +379,7 @@ def start(
366
379
  ctx.obj.check = functools.partial(_check, echo)
367
380
  ctx.obj.top_cli = cli
368
381
  ctx.obj.package_suffixes = package_suffixes.split(",")
382
+ ctx.obj.spin_mode = mode == "spin"
369
383
 
370
384
  ctx.obj.datastore_impl = [d for d in DATASTORES if d.TYPE == datastore][0]
371
385
 
@@ -472,19 +486,12 @@ def start(
472
486
  # set force rebuild flag for environments that support it.
473
487
  ctx.obj.environment._force_rebuild = force_rebuild_environments
474
488
  ctx.obj.environment.validate_environment(ctx.obj.logger, datastore)
475
-
476
489
  ctx.obj.event_logger = LOGGING_SIDECARS[event_logger](
477
490
  flow=ctx.obj.flow, env=ctx.obj.environment
478
491
  )
479
- ctx.obj.event_logger.start()
480
- _system_logger.init_system_logger(ctx.obj.flow.name, ctx.obj.event_logger)
481
-
482
492
  ctx.obj.monitor = MONITOR_SIDECARS[monitor](
483
493
  flow=ctx.obj.flow, env=ctx.obj.environment
484
494
  )
485
- ctx.obj.monitor.start()
486
- _system_monitor.init_system_monitor(ctx.obj.flow.name, ctx.obj.monitor)
487
-
488
495
  ctx.obj.metadata = [m for m in METADATA_PROVIDERS if m.TYPE == metadata][0](
489
496
  ctx.obj.environment, ctx.obj.flow, ctx.obj.event_logger, ctx.obj.monitor
490
497
  )
@@ -498,6 +505,57 @@ def start(
498
505
  )
499
506
 
500
507
  ctx.obj.config_options = config_options
508
+ ctx.obj.is_spin = False
509
+ ctx.obj.skip_decorators = False
510
+
511
+ # Override values for spin steps, or if we are in spin mode
512
+ if (
513
+ hasattr(ctx, "saved_args")
514
+ and ctx.saved_args
515
+ and "spin" in ctx.saved_args[0]
516
+ or ctx.obj.spin_mode
517
+ ):
518
+ # To minimize side effects for spin, we will only use the following:
519
+ # - local metadata provider,
520
+ # - local datastore,
521
+ # - local environment,
522
+ # - null event logger,
523
+ # - null monitor
524
+ ctx.obj.is_spin = True
525
+ if "--skip-decorators" in ctx.saved_args:
526
+ ctx.obj.skip_decorators = True
527
+
528
+ ctx.obj.event_logger = LOGGING_SIDECARS["nullSidecarLogger"](
529
+ flow=ctx.obj.flow, env=ctx.obj.environment
530
+ )
531
+ ctx.obj.monitor = MONITOR_SIDECARS["nullSidecarMonitor"](
532
+ flow=ctx.obj.flow, env=ctx.obj.environment
533
+ )
534
+ # Use spin metadata, spin datastore, and spin datastore root
535
+ ctx.obj.metadata = [m for m in METADATA_PROVIDERS if m.TYPE == "spin"][0](
536
+ ctx.obj.environment, ctx.obj.flow, ctx.obj.event_logger, ctx.obj.monitor
537
+ )
538
+ ctx.obj.datastore_impl = [d for d in DATASTORES if d.TYPE == "spin"][0]
539
+ datastore_root = ctx.obj.datastore_impl.get_datastore_root_from_config(
540
+ ctx.obj.echo, create_on_absent=True
541
+ )
542
+ ctx.obj.datastore_impl.datastore_root = datastore_root
543
+
544
+ ctx.obj.flow_datastore = FlowDataStore(
545
+ ctx.obj.flow.name,
546
+ ctx.obj.environment, # Same environment as run/resume
547
+ ctx.obj.metadata, # local metadata
548
+ ctx.obj.event_logger, # null event logger
549
+ ctx.obj.monitor, # null monitor
550
+ storage_impl=ctx.obj.datastore_impl,
551
+ )
552
+
553
+ # Start event logger and monitor
554
+ ctx.obj.event_logger.start()
555
+ _system_logger.init_system_logger(ctx.obj.flow.name, ctx.obj.event_logger)
556
+
557
+ ctx.obj.monitor.start()
558
+ _system_monitor.init_system_monitor(ctx.obj.flow.name, ctx.obj.monitor)
501
559
 
502
560
  decorators._init(ctx.obj.flow)
503
561
 
@@ -512,9 +570,11 @@ def start(
512
570
  ctx.obj.logger,
513
571
  echo,
514
572
  deco_options,
573
+ ctx.obj.is_spin,
574
+ ctx.obj.skip_decorators,
515
575
  )
516
576
 
517
- # In the case of run/resume, we will want to apply the TL decospecs
577
+ # In the case of run/resume/spin, we will want to apply the TL decospecs
518
578
  # *after* the run decospecs so that they don't take precedence. In other
519
579
  # words, for the same decorator, we want `myflow.py run --with foo` to
520
580
  # take precedence over any other `foo` decospec
@@ -542,11 +602,10 @@ def start(
542
602
  if (
543
603
  hasattr(ctx, "saved_args")
544
604
  and ctx.saved_args
545
- and ctx.saved_args[0] not in ("run", "resume")
605
+ and ctx.saved_args[0] not in ("run", "resume", "spin")
546
606
  ):
547
- # run/resume are special cases because they can add more decorators with --with,
607
+ # run/resume/spin are special cases because they can add more decorators with --with,
548
608
  # so they have to take care of themselves.
549
-
550
609
  all_decospecs = ctx.obj.tl_decospecs + list(
551
610
  ctx.obj.environment.decospecs() or []
552
611
  )
@@ -556,6 +615,9 @@ def start(
556
615
  # or a scheduler setting them up in their own way.
557
616
  if ctx.saved_args[0] not in ("step", "init"):
558
617
  all_decospecs += DEFAULT_DECOSPECS.split()
618
+ elif ctx.saved_args[0] == "spin-step":
619
+ # If we are in spin-args, we will not attach any decorators
620
+ all_decospecs = []
559
621
  if all_decospecs:
560
622
  decorators._attach_decorators(ctx.obj.flow, all_decospecs)
561
623
  decorators._init(ctx.obj.flow)
@@ -569,6 +631,9 @@ def start(
569
631
  ctx.obj.environment,
570
632
  ctx.obj.flow_datastore,
571
633
  ctx.obj.logger,
634
+ # The last two arguments are only used for spin steps
635
+ ctx.obj.is_spin,
636
+ ctx.obj.skip_decorators,
572
637
  )
573
638
 
574
639
  # Check the graph again (mutators may have changed it)