metaflow 2.15.18__tar.gz → 2.15.19__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 (417) hide show
  1. {metaflow-2.15.18/metaflow.egg-info → metaflow-2.15.19}/PKG-INFO +2 -2
  2. {metaflow-2.15.18 → metaflow-2.15.19}/devtools/Tiltfile +27 -2
  3. metaflow-2.15.19/metaflow/_vendor/imghdr/__init__.py +180 -0
  4. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/develop/stub_generator.py +19 -2
  5. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/__init__.py +3 -0
  6. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/airflow.py +6 -0
  7. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/argo_workflows.py +316 -287
  8. metaflow-2.15.19/metaflow/plugins/argo/exit_hooks.py +209 -0
  9. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/aws_utils.py +1 -1
  10. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/step_functions.py +6 -0
  11. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_cli.py +20 -1
  12. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_creator.py +24 -1
  13. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_decorator.py +57 -1
  14. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/convert_to_native_type.py +5 -2
  15. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/test_cards.py +16 -0
  16. metaflow-2.15.19/metaflow/plugins/cards/metadata.py +22 -0
  17. metaflow-2.15.19/metaflow/plugins/exit_hook/exit_hook_decorator.py +46 -0
  18. metaflow-2.15.19/metaflow/plugins/exit_hook/exit_hook_script.py +52 -0
  19. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/secrets/__init__.py +3 -0
  20. metaflow-2.15.19/metaflow/plugins/secrets/secrets_decorator.py +123 -0
  21. metaflow-2.15.19/metaflow/plugins/secrets/secrets_func.py +60 -0
  22. metaflow-2.15.19/metaflow/plugins/secrets/secrets_spec.py +101 -0
  23. metaflow-2.15.19/metaflow/plugins/secrets/utils.py +74 -0
  24. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/metaflow_runner.py +16 -1
  25. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runtime.py +45 -0
  26. metaflow-2.15.19/metaflow/user_configs/__init__.py +0 -0
  27. metaflow-2.15.19/metaflow/version.py +1 -0
  28. {metaflow-2.15.18 → metaflow-2.15.19/metaflow.egg-info}/PKG-INFO +2 -2
  29. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow.egg-info/SOURCES.txt +9 -0
  30. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow.egg-info/requires.txt +1 -1
  31. metaflow-2.15.18/metaflow/plugins/secrets/secrets_decorator.py +0 -287
  32. metaflow-2.15.18/metaflow/version.py +0 -1
  33. {metaflow-2.15.18 → metaflow-2.15.19}/LICENSE +0 -0
  34. {metaflow-2.15.18 → metaflow-2.15.19}/MANIFEST.in +0 -0
  35. {metaflow-2.15.18 → metaflow-2.15.19}/README.md +0 -0
  36. {metaflow-2.15.18 → metaflow-2.15.19}/devtools/Makefile +0 -0
  37. {metaflow-2.15.18 → metaflow-2.15.19}/devtools/pick_services.sh +0 -0
  38. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/R.py +0 -0
  39. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/__init__.py +0 -0
  40. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/__init__.py +0 -0
  41. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/__init__.py +0 -0
  42. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/_bashcomplete.py +0 -0
  43. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/_compat.py +0 -0
  44. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/_termui_impl.py +0 -0
  45. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/_textwrap.py +0 -0
  46. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/_unicodefun.py +0 -0
  47. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/_winconsole.py +0 -0
  48. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/core.py +0 -0
  49. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/decorators.py +0 -0
  50. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/exceptions.py +0 -0
  51. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/formatting.py +0 -0
  52. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/globals.py +0 -0
  53. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/parser.py +0 -0
  54. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/termui.py +0 -0
  55. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/testing.py +0 -0
  56. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/types.py +0 -0
  57. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/utils.py +0 -0
  58. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/__init__.py +0 -0
  59. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/_adapters.py +0 -0
  60. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/_collections.py +0 -0
  61. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/_compat.py +0 -0
  62. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/_functools.py +0 -0
  63. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/_itertools.py +0 -0
  64. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/_meta.py +0 -0
  65. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/_text.py +0 -0
  66. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/py.typed +0 -0
  67. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/__init__.py +0 -0
  68. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/_elffile.py +0 -0
  69. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/_manylinux.py +0 -0
  70. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/_musllinux.py +0 -0
  71. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/_parser.py +0 -0
  72. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/_structures.py +0 -0
  73. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/_tokenizer.py +0 -0
  74. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/markers.py +0 -0
  75. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/py.typed +0 -0
  76. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/requirements.py +0 -0
  77. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/specifiers.py +0 -0
  78. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/tags.py +0 -0
  79. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/utils.py +0 -0
  80. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/version.py +0 -0
  81. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/__init__.py +0 -0
  82. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_checkers.py +0 -0
  83. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_config.py +0 -0
  84. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_decorators.py +0 -0
  85. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_exceptions.py +0 -0
  86. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_functions.py +0 -0
  87. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_importhook.py +0 -0
  88. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_memo.py +0 -0
  89. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_pytest_plugin.py +0 -0
  90. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_suppression.py +0 -0
  91. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_transformer.py +0 -0
  92. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_union_transformer.py +0 -0
  93. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_utils.py +0 -0
  94. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/py.typed +0 -0
  95. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typing_extensions.py +0 -0
  96. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/__init__.py +0 -0
  97. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py +0 -0
  98. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py +0 -0
  99. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py +0 -0
  100. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py +0 -0
  101. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py +0 -0
  102. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py +0 -0
  103. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/_meta.py +0 -0
  104. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/_text.py +0 -0
  105. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/py.typed +0 -0
  106. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/typing_extensions.py +0 -0
  107. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/zipp.py +0 -0
  108. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/__init__.py +0 -0
  109. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/__init__.py +0 -0
  110. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/_adapters.py +0 -0
  111. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/_collections.py +0 -0
  112. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/_compat.py +0 -0
  113. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/_functools.py +0 -0
  114. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/_itertools.py +0 -0
  115. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/_meta.py +0 -0
  116. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/_text.py +0 -0
  117. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/py.typed +0 -0
  118. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/__init__.py +0 -0
  119. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_checkers.py +0 -0
  120. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_config.py +0 -0
  121. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_decorators.py +0 -0
  122. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_exceptions.py +0 -0
  123. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_functions.py +0 -0
  124. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_importhook.py +0 -0
  125. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_memo.py +0 -0
  126. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_pytest_plugin.py +0 -0
  127. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_suppression.py +0 -0
  128. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_transformer.py +0 -0
  129. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_union_transformer.py +0 -0
  130. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_utils.py +0 -0
  131. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/py.typed +0 -0
  132. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typing_extensions.py +0 -0
  133. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/zipp.py +0 -0
  134. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/zipp.py +0 -0
  135. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cards.py +0 -0
  136. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli.py +0 -0
  137. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli_args.py +0 -0
  138. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli_components/__init__.py +0 -0
  139. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli_components/dump_cmd.py +0 -0
  140. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli_components/init_cmd.py +0 -0
  141. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli_components/run_cmds.py +0 -0
  142. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli_components/step_cmd.py +0 -0
  143. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli_components/utils.py +0 -0
  144. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/client/__init__.py +0 -0
  145. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/client/core.py +0 -0
  146. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/client/filecache.py +0 -0
  147. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/clone_util.py +0 -0
  148. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/__init__.py +0 -0
  149. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/code/__init__.py +0 -0
  150. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/configure_cmd.py +0 -0
  151. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/develop/__init__.py +0 -0
  152. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/develop/stubs.py +0 -0
  153. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/main_cli.py +0 -0
  154. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/make_wrapper.py +0 -0
  155. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/tutorials_cmd.py +0 -0
  156. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/util.py +0 -0
  157. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd_with_io.py +0 -0
  158. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/__init__.py +0 -0
  159. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/content_addressed_store.py +0 -0
  160. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/datastore_set.py +0 -0
  161. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/datastore_storage.py +0 -0
  162. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/exceptions.py +0 -0
  163. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/flow_datastore.py +0 -0
  164. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/inputs.py +0 -0
  165. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/task_datastore.py +0 -0
  166. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/debug.py +0 -0
  167. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/decorators.py +0 -0
  168. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/event_logger.py +0 -0
  169. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/events.py +0 -0
  170. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/exception.py +0 -0
  171. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/extension_support/__init__.py +0 -0
  172. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/extension_support/_empty_file.py +0 -0
  173. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/extension_support/cmd.py +0 -0
  174. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/extension_support/integrations.py +0 -0
  175. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/extension_support/plugins.py +0 -0
  176. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/flowspec.py +0 -0
  177. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/graph.py +0 -0
  178. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/includefile.py +0 -0
  179. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/info_file.py +0 -0
  180. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/integrations.py +0 -0
  181. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/lint.py +0 -0
  182. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metadata_provider/__init__.py +0 -0
  183. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metadata_provider/heartbeat.py +0 -0
  184. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metadata_provider/metadata.py +0 -0
  185. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metadata_provider/util.py +0 -0
  186. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metaflow_config.py +0 -0
  187. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metaflow_config_funcs.py +0 -0
  188. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metaflow_current.py +0 -0
  189. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metaflow_environment.py +0 -0
  190. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metaflow_git.py +0 -0
  191. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metaflow_profile.py +0 -0
  192. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metaflow_version.py +0 -0
  193. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/mflog/__init__.py +0 -0
  194. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/mflog/mflog.py +0 -0
  195. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/mflog/save_logs.py +0 -0
  196. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/mflog/save_logs_periodically.py +0 -0
  197. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/mflog/tee.py +0 -0
  198. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/monitor.py +0 -0
  199. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/multicore_utils.py +0 -0
  200. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/package.py +0 -0
  201. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/parameters.py +0 -0
  202. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/__init__.py +0 -0
  203. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/airflow_cli.py +0 -0
  204. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/airflow_decorator.py +0 -0
  205. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/airflow_utils.py +0 -0
  206. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/dag.py +0 -0
  207. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/exception.py +0 -0
  208. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/plumbing/__init__.py +0 -0
  209. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/plumbing/set_parameters.py +0 -0
  210. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/sensors/__init__.py +0 -0
  211. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/sensors/base_sensor.py +0 -0
  212. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/sensors/external_task_sensor.py +0 -0
  213. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/sensors/s3_sensor.py +0 -0
  214. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/__init__.py +0 -0
  215. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/argo_client.py +0 -0
  216. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/argo_events.py +0 -0
  217. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/argo_workflows_cli.py +0 -0
  218. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/argo_workflows_decorator.py +0 -0
  219. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/argo_workflows_deployer.py +0 -0
  220. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/argo_workflows_deployer_objects.py +0 -0
  221. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/capture_error.py +0 -0
  222. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/generate_input_paths.py +0 -0
  223. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/jobset_input_paths.py +0 -0
  224. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/__init__.py +0 -0
  225. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/aws_client.py +0 -0
  226. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/batch/__init__.py +0 -0
  227. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/batch/batch.py +0 -0
  228. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/batch/batch_cli.py +0 -0
  229. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/batch/batch_client.py +0 -0
  230. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/batch/batch_decorator.py +0 -0
  231. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/secrets_manager/__init__.py +0 -0
  232. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py +0 -0
  233. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/__init__.py +0 -0
  234. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/dynamo_db_client.py +0 -0
  235. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/event_bridge_client.py +0 -0
  236. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/production_token.py +0 -0
  237. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/schedule_decorator.py +0 -0
  238. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/set_batch_environment.py +0 -0
  239. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/step_functions_cli.py +0 -0
  240. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/step_functions_client.py +0 -0
  241. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/step_functions_decorator.py +0 -0
  242. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/step_functions_deployer.py +0 -0
  243. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +0 -0
  244. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/__init__.py +0 -0
  245. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/azure_credential.py +0 -0
  246. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/azure_exceptions.py +0 -0
  247. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/azure_secret_manager_secrets_provider.py +0 -0
  248. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/azure_tail.py +0 -0
  249. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/azure_utils.py +0 -0
  250. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/blob_service_client_factory.py +0 -0
  251. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/includefile_support.py +0 -0
  252. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/__init__.py +0 -0
  253. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_client.py +0 -0
  254. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_datastore.py +0 -0
  255. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/__init__.py +0 -0
  256. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/base.html +0 -0
  257. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/basic.py +0 -0
  258. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/bundle.css +0 -0
  259. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/card.py +0 -0
  260. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/chevron/__init__.py +0 -0
  261. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/chevron/main.py +0 -0
  262. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/chevron/metadata.py +0 -0
  263. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/chevron/renderer.py +0 -0
  264. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/chevron/tokenizer.py +0 -0
  265. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/components.py +0 -0
  266. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/main.js +0 -0
  267. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/renderer_tools.py +0 -0
  268. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_resolver.py +0 -0
  269. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_server.py +0 -0
  270. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_viewer/viewer.html +0 -0
  271. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/component_serializer.py +0 -0
  272. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/exception.py +0 -0
  273. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/catch_decorator.py +0 -0
  274. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datastores/__init__.py +0 -0
  275. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datastores/azure_storage.py +0 -0
  276. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datastores/gs_storage.py +0 -0
  277. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datastores/local_storage.py +0 -0
  278. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datastores/s3_storage.py +0 -0
  279. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datatools/__init__.py +0 -0
  280. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datatools/local.py +0 -0
  281. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datatools/s3/__init__.py +0 -0
  282. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datatools/s3/s3.py +0 -0
  283. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datatools/s3/s3op.py +0 -0
  284. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datatools/s3/s3tail.py +0 -0
  285. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datatools/s3/s3util.py +0 -0
  286. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/debug_logger.py +0 -0
  287. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/debug_monitor.py +0 -0
  288. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/__init__.py +0 -0
  289. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/client.py +0 -0
  290. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/client_modules.py +0 -0
  291. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/communication/__init__.py +0 -0
  292. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/communication/bytestream.py +0 -0
  293. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/communication/channel.py +0 -0
  294. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/communication/socket_bytestream.py +0 -0
  295. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/communication/utils.py +0 -0
  296. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py +0 -0
  297. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +0 -0
  298. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +0 -0
  299. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py +0 -0
  300. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +0 -0
  301. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/consts.py +0 -0
  302. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/data_transferer.py +0 -0
  303. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/exception_transferer.py +0 -0
  304. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/override_decorators.py +0 -0
  305. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/server.py +0 -0
  306. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/stub.py +0 -0
  307. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/utils.py +0 -0
  308. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/environment_decorator.py +0 -0
  309. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/events_decorator.py +0 -0
  310. {metaflow-2.15.18/metaflow/plugins/frameworks → metaflow-2.15.19/metaflow/plugins/exit_hook}/__init__.py +0 -0
  311. {metaflow-2.15.18/metaflow/plugins/kubernetes → metaflow-2.15.19/metaflow/plugins/frameworks}/__init__.py +0 -0
  312. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/frameworks/pytorch.py +0 -0
  313. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/gcp/__init__.py +0 -0
  314. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +0 -0
  315. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/gcp/gs_exceptions.py +0 -0
  316. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/gcp/gs_storage_client_factory.py +0 -0
  317. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/gcp/gs_tail.py +0 -0
  318. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/gcp/gs_utils.py +0 -0
  319. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/gcp/includefile_support.py +0 -0
  320. {metaflow-2.15.18/metaflow/plugins/uv → metaflow-2.15.19/metaflow/plugins/kubernetes}/__init__.py +0 -0
  321. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/kube_utils.py +0 -0
  322. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/kubernetes.py +0 -0
  323. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/kubernetes_cli.py +0 -0
  324. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/kubernetes_client.py +0 -0
  325. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/kubernetes_decorator.py +0 -0
  326. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/kubernetes_job.py +0 -0
  327. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/kubernetes_jobsets.py +0 -0
  328. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/spot_metadata_cli.py +0 -0
  329. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/spot_monitor_sidecar.py +0 -0
  330. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/logs_cli.py +0 -0
  331. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/metadata_providers/__init__.py +0 -0
  332. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/metadata_providers/local.py +0 -0
  333. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/metadata_providers/service.py +0 -0
  334. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/package_cli.py +0 -0
  335. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/parallel_decorator.py +0 -0
  336. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/project_decorator.py +0 -0
  337. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/__init__.py +0 -0
  338. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/bootstrap.py +0 -0
  339. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/conda_decorator.py +0 -0
  340. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/conda_environment.py +0 -0
  341. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/micromamba.py +0 -0
  342. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/parsers.py +0 -0
  343. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/pip.py +0 -0
  344. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/pypi_decorator.py +0 -0
  345. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/pypi_environment.py +0 -0
  346. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/utils.py +0 -0
  347. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/resources_decorator.py +0 -0
  348. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/retry_decorator.py +0 -0
  349. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/secrets/inline_secrets_provider.py +0 -0
  350. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/storage_executor.py +0 -0
  351. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/tag_cli.py +0 -0
  352. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/test_unbounded_foreach_decorator.py +0 -0
  353. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/timeout_decorator.py +0 -0
  354. {metaflow-2.15.18/metaflow/runner → metaflow-2.15.19/metaflow/plugins/uv}/__init__.py +0 -0
  355. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/uv/bootstrap.py +0 -0
  356. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/uv/uv_environment.py +0 -0
  357. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/procpoll.py +0 -0
  358. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/py.typed +0 -0
  359. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/pylint_wrapper.py +0 -0
  360. {metaflow-2.15.18/metaflow/user_configs → metaflow-2.15.19/metaflow/runner}/__init__.py +0 -0
  361. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/click_api.py +0 -0
  362. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/deployer.py +0 -0
  363. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/deployer_impl.py +0 -0
  364. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/nbdeploy.py +0 -0
  365. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/nbrun.py +0 -0
  366. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/subprocess_manager.py +0 -0
  367. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/utils.py +0 -0
  368. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/sidecar/__init__.py +0 -0
  369. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/sidecar/sidecar.py +0 -0
  370. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/sidecar/sidecar_messages.py +0 -0
  371. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/sidecar/sidecar_subprocess.py +0 -0
  372. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/sidecar/sidecar_worker.py +0 -0
  373. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/system/__init__.py +0 -0
  374. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/system/system_logger.py +0 -0
  375. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/system/system_monitor.py +0 -0
  376. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/system/system_utils.py +0 -0
  377. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tagging_util.py +0 -0
  378. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/task.py +0 -0
  379. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tracing/__init__.py +0 -0
  380. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tracing/propagator.py +0 -0
  381. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tracing/span_exporter.py +0 -0
  382. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tracing/tracing_modules.py +0 -0
  383. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tuple_util.py +0 -0
  384. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/00-helloworld/README.md +0 -0
  385. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/00-helloworld/helloworld.py +0 -0
  386. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/01-playlist/README.md +0 -0
  387. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/01-playlist/movies.csv +0 -0
  388. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/01-playlist/playlist.ipynb +0 -0
  389. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/01-playlist/playlist.py +0 -0
  390. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/02-statistics/README.md +0 -0
  391. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/02-statistics/movies.csv +0 -0
  392. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/02-statistics/stats.ipynb +0 -0
  393. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/02-statistics/stats.py +0 -0
  394. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/03-playlist-redux/README.md +0 -0
  395. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/03-playlist-redux/playlist.py +0 -0
  396. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/04-playlist-plus/README.md +0 -0
  397. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/04-playlist-plus/playlist.py +0 -0
  398. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/05-hello-cloud/README.md +0 -0
  399. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/05-hello-cloud/hello-cloud.ipynb +0 -0
  400. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/05-hello-cloud/hello-cloud.py +0 -0
  401. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/06-statistics-redux/README.md +0 -0
  402. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/06-statistics-redux/stats.ipynb +0 -0
  403. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/07-worldview/README.md +0 -0
  404. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/07-worldview/worldview.ipynb +0 -0
  405. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/08-autopilot/README.md +0 -0
  406. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/08-autopilot/autopilot.ipynb +0 -0
  407. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/unbounded_foreach.py +0 -0
  408. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/user_configs/config_decorators.py +0 -0
  409. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/user_configs/config_options.py +0 -0
  410. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/user_configs/config_parameters.py +0 -0
  411. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/util.py +0 -0
  412. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/vendor.py +0 -0
  413. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow.egg-info/dependency_links.txt +0 -0
  414. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow.egg-info/entry_points.txt +0 -0
  415. {metaflow-2.15.18 → metaflow-2.15.19}/metaflow.egg-info/top_level.txt +0 -0
  416. {metaflow-2.15.18 → metaflow-2.15.19}/setup.cfg +0 -0
  417. {metaflow-2.15.18 → metaflow-2.15.19}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metaflow
3
- Version: 2.15.18
3
+ Version: 2.15.19
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.15.18; extra == "stubs"
29
+ Requires-Dist: metaflow-stubs==2.15.19; extra == "stubs"
30
30
  Dynamic: author
31
31
  Dynamic: author-email
32
32
  Dynamic: classifier
@@ -224,6 +224,19 @@ if "argo-workflows" in enabled_components:
224
224
  ]
225
225
  )
226
226
 
227
+ # This fixes issue described in: https://github.com/argoproj/argo-workflows/issues/10340
228
+ k8s_yaml(encode_yaml({
229
+ 'apiVersion': 'v1',
230
+ 'kind': 'Secret',
231
+ 'metadata': {
232
+ 'name': 'default.service-account-token',
233
+ 'annotations': {
234
+ 'kubernetes.io/service-account.name': 'default'
235
+ }
236
+ },
237
+ 'type': 'kubernetes.io/service-account-token'
238
+ }))
239
+
227
240
  k8s_yaml(encode_yaml({
228
241
  'apiVersion': 'rbac.authorization.k8s.io/v1',
229
242
  'kind': 'Role',
@@ -231,11 +244,23 @@ if "argo-workflows" in enabled_components:
231
244
  'name': 'argo-workflowtaskresults-role',
232
245
  'namespace': 'default'
233
246
  },
234
- 'rules': [{
247
+ 'rules': [
248
+ {
235
249
  'apiGroups': ['argoproj.io'],
236
250
  'resources': ['workflowtaskresults'],
237
251
  'verbs': ['create', 'patch', 'get', 'list']
238
- }]
252
+ },
253
+ {
254
+ 'apiGroups': ['argoproj.io'],
255
+ 'resources': ['workflowtasksets'],
256
+ 'verbs': ['watch', 'list']
257
+ },
258
+ {
259
+ 'apiGroups': ['argoproj.io'],
260
+ 'resources': ['workflowtasksets/status'],
261
+ 'verbs': ['patch']
262
+ },
263
+ ]
239
264
  }))
240
265
 
241
266
  k8s_yaml(encode_yaml({
@@ -0,0 +1,180 @@
1
+ """Recognize image file formats based on their first few bytes."""
2
+
3
+ from os import PathLike
4
+ import warnings
5
+
6
+ __all__ = ["what"]
7
+
8
+
9
+ warnings._deprecated(__name__, remove=(3, 13))
10
+
11
+
12
+ #-------------------------#
13
+ # Recognize image headers #
14
+ #-------------------------#
15
+
16
+ def what(file, h=None):
17
+ """Return the type of image contained in a file or byte stream."""
18
+ f = None
19
+ try:
20
+ if h is None:
21
+ if isinstance(file, (str, PathLike)):
22
+ f = open(file, 'rb')
23
+ h = f.read(32)
24
+ else:
25
+ location = file.tell()
26
+ h = file.read(32)
27
+ file.seek(location)
28
+ for tf in tests:
29
+ res = tf(h, f)
30
+ if res:
31
+ return res
32
+ finally:
33
+ if f: f.close()
34
+ return None
35
+
36
+
37
+ #---------------------------------#
38
+ # Subroutines per image file type #
39
+ #---------------------------------#
40
+
41
+ tests = []
42
+
43
+ def test_jpeg(h, f):
44
+ """Test for JPEG data with JFIF or Exif markers; and raw JPEG."""
45
+ if h[6:10] in (b'JFIF', b'Exif'):
46
+ return 'jpeg'
47
+ elif h[:4] == b'\xff\xd8\xff\xdb':
48
+ return 'jpeg'
49
+
50
+ tests.append(test_jpeg)
51
+
52
+ def test_png(h, f):
53
+ """Verify if the image is a PNG."""
54
+ if h.startswith(b'\211PNG\r\n\032\n'):
55
+ return 'png'
56
+
57
+ tests.append(test_png)
58
+
59
+ def test_gif(h, f):
60
+ """Verify if the image is a GIF ('87 or '89 variants)."""
61
+ if h[:6] in (b'GIF87a', b'GIF89a'):
62
+ return 'gif'
63
+
64
+ tests.append(test_gif)
65
+
66
+ def test_tiff(h, f):
67
+ """Verify if the image is a TIFF (can be in Motorola or Intel byte order)."""
68
+ if h[:2] in (b'MM', b'II'):
69
+ return 'tiff'
70
+
71
+ tests.append(test_tiff)
72
+
73
+ def test_rgb(h, f):
74
+ """test for the SGI image library."""
75
+ if h.startswith(b'\001\332'):
76
+ return 'rgb'
77
+
78
+ tests.append(test_rgb)
79
+
80
+ def test_pbm(h, f):
81
+ """Verify if the image is a PBM (portable bitmap)."""
82
+ if len(h) >= 3 and \
83
+ h[0] == ord(b'P') and h[1] in b'14' and h[2] in b' \t\n\r':
84
+ return 'pbm'
85
+
86
+ tests.append(test_pbm)
87
+
88
+ def test_pgm(h, f):
89
+ """Verify if the image is a PGM (portable graymap)."""
90
+ if len(h) >= 3 and \
91
+ h[0] == ord(b'P') and h[1] in b'25' and h[2] in b' \t\n\r':
92
+ return 'pgm'
93
+
94
+ tests.append(test_pgm)
95
+
96
+ def test_ppm(h, f):
97
+ """Verify if the image is a PPM (portable pixmap)."""
98
+ if len(h) >= 3 and \
99
+ h[0] == ord(b'P') and h[1] in b'36' and h[2] in b' \t\n\r':
100
+ return 'ppm'
101
+
102
+ tests.append(test_ppm)
103
+
104
+ def test_rast(h, f):
105
+ """test for the Sun raster file."""
106
+ if h.startswith(b'\x59\xA6\x6A\x95'):
107
+ return 'rast'
108
+
109
+ tests.append(test_rast)
110
+
111
+ def test_xbm(h, f):
112
+ """Verify if the image is a X bitmap (X10 or X11)."""
113
+ if h.startswith(b'#define '):
114
+ return 'xbm'
115
+
116
+ tests.append(test_xbm)
117
+
118
+ def test_bmp(h, f):
119
+ """Verify if the image is a BMP file."""
120
+ if h.startswith(b'BM'):
121
+ return 'bmp'
122
+
123
+ tests.append(test_bmp)
124
+
125
+ def test_webp(h, f):
126
+ """Verify if the image is a WebP."""
127
+ if h.startswith(b'RIFF') and h[8:12] == b'WEBP':
128
+ return 'webp'
129
+
130
+ tests.append(test_webp)
131
+
132
+ def test_exr(h, f):
133
+ """verify is the image ia a OpenEXR fileOpenEXR."""
134
+ if h.startswith(b'\x76\x2f\x31\x01'):
135
+ return 'exr'
136
+
137
+ tests.append(test_exr)
138
+
139
+ #--------------------#
140
+ # Small test program #
141
+ #--------------------#
142
+
143
+ def test():
144
+ import sys
145
+ recursive = 0
146
+ if sys.argv[1:] and sys.argv[1] == '-r':
147
+ del sys.argv[1:2]
148
+ recursive = 1
149
+ try:
150
+ if sys.argv[1:]:
151
+ testall(sys.argv[1:], recursive, 1)
152
+ else:
153
+ testall(['.'], recursive, 1)
154
+ except KeyboardInterrupt:
155
+ sys.stderr.write('\n[Interrupted]\n')
156
+ sys.exit(1)
157
+
158
+ def testall(list, recursive, toplevel):
159
+ import sys
160
+ import os
161
+ for filename in list:
162
+ if os.path.isdir(filename):
163
+ print(filename + '/:', end=' ')
164
+ if recursive or toplevel:
165
+ print('recursing down:')
166
+ import glob
167
+ names = glob.glob(os.path.join(glob.escape(filename), '*'))
168
+ testall(names, recursive, 0)
169
+ else:
170
+ print('*** directory (use -r) ***')
171
+ else:
172
+ print(filename + ':', end=' ')
173
+ sys.stdout.flush()
174
+ try:
175
+ print(what(filename))
176
+ except OSError:
177
+ print('*** not found ***')
178
+
179
+ if __name__ == '__main__':
180
+ test()
@@ -7,7 +7,6 @@ import pathlib
7
7
  import re
8
8
  import time
9
9
  import typing
10
-
11
10
  from datetime import datetime
12
11
  from io import StringIO
13
12
  from types import ModuleType
@@ -335,6 +334,8 @@ class StubGenerator:
335
334
 
336
335
  # Imports that are needed at the top of the file
337
336
  self._imports = set() # type: Set[str]
337
+
338
+ self._sub_module_imports = set() # type: Set[Tuple[str, str]]``
338
339
  # Typing imports (behind if TYPE_CHECKING) that are needed at the top of the file
339
340
  self._typing_imports = set() # type: Set[str]
340
341
  # Typevars that are defined
@@ -643,6 +644,21 @@ class StubGenerator:
643
644
  "deployer"
644
645
  ] = (self._current_module_name + "." + name)
645
646
 
647
+ # Handle TypedDict gracefully for Python 3.7 compatibility
648
+ # _TypedDictMeta is not available in Python 3.7
649
+ typed_dict_meta = getattr(typing, "_TypedDictMeta", None)
650
+ if typed_dict_meta is not None and isinstance(clazz, typed_dict_meta):
651
+ self._sub_module_imports.add(("typing", "TypedDict"))
652
+ total_flag = getattr(clazz, "__total__", False)
653
+ buff = StringIO()
654
+ # Emit the TypedDict base and total flag
655
+ buff.write(f"class {name}(TypedDict, total={total_flag}):\n")
656
+ # Write out each field from __annotations__
657
+ for field_name, field_type in clazz.__annotations__.items():
658
+ ann = self._get_element_name_with_module(field_type)
659
+ buff.write(f"{TAB}{field_name}: {ann}\n")
660
+ return buff.getvalue()
661
+
646
662
  buff = StringIO()
647
663
  # Class prototype
648
664
  buff.write("class " + name.split(".")[-1] + "(")
@@ -987,7 +1003,6 @@ class StubGenerator:
987
1003
  ]
988
1004
 
989
1005
  docs = split_docs(raw_doc, section_boundaries)
990
-
991
1006
  parameters, no_arg_version = parse_params_from_doc(docs["param_doc"])
992
1007
 
993
1008
  if docs["add_to_current_doc"]:
@@ -1515,6 +1530,8 @@ class StubGenerator:
1515
1530
  f.write("import " + module + "\n")
1516
1531
  if module == "typing":
1517
1532
  imported_typing = True
1533
+ for module, sub_module in self._sub_module_imports:
1534
+ f.write(f"from {module} import {sub_module}\n")
1518
1535
  if self._typing_imports:
1519
1536
  if not imported_typing:
1520
1537
  f.write("import typing\n")
@@ -69,6 +69,7 @@ FLOW_DECORATORS_DESC = [
69
69
  ("trigger_on_finish", ".events_decorator.TriggerOnFinishDecorator"),
70
70
  ("pypi_base", ".pypi.pypi_decorator.PyPIFlowDecorator"),
71
71
  ("conda_base", ".pypi.conda_decorator.CondaFlowDecorator"),
72
+ ("exit_hook", ".exit_hook.exit_hook_decorator.ExitHookDecorator"),
72
73
  ]
73
74
 
74
75
  # Add environments here
@@ -240,6 +241,7 @@ from .cards.card_modules.test_cards import (
240
241
  TestTimeoutCard,
241
242
  TestRefreshCard,
242
243
  TestRefreshComponentCard,
244
+ TestImageCard,
243
245
  )
244
246
 
245
247
  CARDS = [
@@ -258,6 +260,7 @@ CARDS = [
258
260
  DefaultCardJSON,
259
261
  TestRefreshCard,
260
262
  TestRefreshComponentCard,
263
+ TestImageCard,
261
264
  ]
262
265
  merge_lists(CARDS, MF_EXTERNAL_CARDS, "type")
263
266
 
@@ -654,6 +654,12 @@ class Airflow(object):
654
654
  "to Airflow is not supported currently."
655
655
  )
656
656
 
657
+ if self.flow._flow_decorators.get("exit_hook"):
658
+ raise AirflowException(
659
+ "Deploying flows with the @exit_hook decorator "
660
+ "to Airflow is not currently supported."
661
+ )
662
+
657
663
  # Visit every node of the flow and recursively build the state machine.
658
664
  def _visit(node, workflow, exit_node=None):
659
665
  kube_deco = dict(