metaflow 2.19.3__tar.gz → 2.19.4__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 (452) hide show
  1. {metaflow-2.19.3/metaflow.egg-info → metaflow-2.19.4}/PKG-INFO +2 -2
  2. {metaflow-2.19.3 → metaflow-2.19.4}/devtools/Tiltfile +1 -1
  3. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/datastore/flow_datastore.py +2 -1
  4. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/client_modules.py +102 -72
  5. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/user_decorators/mutable_flow.py +1 -1
  6. metaflow-2.19.4/metaflow/version.py +1 -0
  7. {metaflow-2.19.3 → metaflow-2.19.4/metaflow.egg-info}/PKG-INFO +2 -2
  8. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow.egg-info/requires.txt +1 -1
  9. metaflow-2.19.3/metaflow/version.py +0 -1
  10. {metaflow-2.19.3 → metaflow-2.19.4}/LICENSE +0 -0
  11. {metaflow-2.19.3 → metaflow-2.19.4}/MANIFEST.in +0 -0
  12. {metaflow-2.19.3 → metaflow-2.19.4}/README.md +0 -0
  13. {metaflow-2.19.3 → metaflow-2.19.4}/devtools/Makefile +0 -0
  14. {metaflow-2.19.3 → metaflow-2.19.4}/devtools/pick_services.sh +0 -0
  15. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/R.py +0 -0
  16. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/__init__.py +0 -0
  17. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/__init__.py +0 -0
  18. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/__init__.py +0 -0
  19. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/_bashcomplete.py +0 -0
  20. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/_compat.py +0 -0
  21. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/_termui_impl.py +0 -0
  22. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/_textwrap.py +0 -0
  23. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/_unicodefun.py +0 -0
  24. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/_winconsole.py +0 -0
  25. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/core.py +0 -0
  26. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/decorators.py +0 -0
  27. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/exceptions.py +0 -0
  28. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/formatting.py +0 -0
  29. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/globals.py +0 -0
  30. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/parser.py +0 -0
  31. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/termui.py +0 -0
  32. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/testing.py +0 -0
  33. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/types.py +0 -0
  34. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/click/utils.py +0 -0
  35. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/imghdr/__init__.py +0 -0
  36. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/importlib_metadata/__init__.py +0 -0
  37. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/importlib_metadata/_adapters.py +0 -0
  38. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/importlib_metadata/_collections.py +0 -0
  39. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/importlib_metadata/_compat.py +0 -0
  40. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/importlib_metadata/_functools.py +0 -0
  41. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/importlib_metadata/_itertools.py +0 -0
  42. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/importlib_metadata/_meta.py +0 -0
  43. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/importlib_metadata/_text.py +0 -0
  44. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/importlib_metadata/py.typed +0 -0
  45. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/packaging/__init__.py +0 -0
  46. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/packaging/_elffile.py +0 -0
  47. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/packaging/_manylinux.py +0 -0
  48. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/packaging/_musllinux.py +0 -0
  49. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/packaging/_parser.py +0 -0
  50. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/packaging/_structures.py +0 -0
  51. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/packaging/_tokenizer.py +0 -0
  52. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/packaging/markers.py +0 -0
  53. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/packaging/py.typed +0 -0
  54. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/packaging/requirements.py +0 -0
  55. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/packaging/specifiers.py +0 -0
  56. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/packaging/tags.py +0 -0
  57. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/packaging/utils.py +0 -0
  58. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/packaging/version.py +0 -0
  59. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/typeguard/__init__.py +0 -0
  60. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/typeguard/_checkers.py +0 -0
  61. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/typeguard/_config.py +0 -0
  62. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/typeguard/_decorators.py +0 -0
  63. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/typeguard/_exceptions.py +0 -0
  64. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/typeguard/_functions.py +0 -0
  65. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/typeguard/_importhook.py +0 -0
  66. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/typeguard/_memo.py +0 -0
  67. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/typeguard/_pytest_plugin.py +0 -0
  68. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/typeguard/_suppression.py +0 -0
  69. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/typeguard/_transformer.py +0 -0
  70. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/typeguard/_union_transformer.py +0 -0
  71. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/typeguard/_utils.py +0 -0
  72. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/typeguard/py.typed +0 -0
  73. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/typing_extensions.py +0 -0
  74. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_6/__init__.py +0 -0
  75. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py +0 -0
  76. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py +0 -0
  77. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py +0 -0
  78. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py +0 -0
  79. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py +0 -0
  80. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py +0 -0
  81. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_6/importlib_metadata/_meta.py +0 -0
  82. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_6/importlib_metadata/_text.py +0 -0
  83. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_6/importlib_metadata/py.typed +0 -0
  84. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_6/typing_extensions.py +0 -0
  85. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_6/zipp.py +0 -0
  86. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/__init__.py +0 -0
  87. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/importlib_metadata/__init__.py +0 -0
  88. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/importlib_metadata/_adapters.py +0 -0
  89. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/importlib_metadata/_collections.py +0 -0
  90. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/importlib_metadata/_compat.py +0 -0
  91. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/importlib_metadata/_functools.py +0 -0
  92. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/importlib_metadata/_itertools.py +0 -0
  93. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/importlib_metadata/_meta.py +0 -0
  94. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/importlib_metadata/_text.py +0 -0
  95. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/importlib_metadata/py.typed +0 -0
  96. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/typeguard/__init__.py +0 -0
  97. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/typeguard/_checkers.py +0 -0
  98. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/typeguard/_config.py +0 -0
  99. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/typeguard/_decorators.py +0 -0
  100. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/typeguard/_exceptions.py +0 -0
  101. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/typeguard/_functions.py +0 -0
  102. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/typeguard/_importhook.py +0 -0
  103. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/typeguard/_memo.py +0 -0
  104. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/typeguard/_pytest_plugin.py +0 -0
  105. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/typeguard/_suppression.py +0 -0
  106. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/typeguard/_transformer.py +0 -0
  107. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/typeguard/_union_transformer.py +0 -0
  108. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/typeguard/_utils.py +0 -0
  109. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/typeguard/py.typed +0 -0
  110. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/typing_extensions.py +0 -0
  111. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/v3_7/zipp.py +0 -0
  112. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/__init__.py +0 -0
  113. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/composer.py +0 -0
  114. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/constructor.py +0 -0
  115. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/cyaml.py +0 -0
  116. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/dumper.py +0 -0
  117. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/emitter.py +0 -0
  118. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/error.py +0 -0
  119. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/events.py +0 -0
  120. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/loader.py +0 -0
  121. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/nodes.py +0 -0
  122. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/parser.py +0 -0
  123. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/reader.py +0 -0
  124. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/representer.py +0 -0
  125. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/resolver.py +0 -0
  126. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/scanner.py +0 -0
  127. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/serializer.py +0 -0
  128. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/yaml/tokens.py +0 -0
  129. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/_vendor/zipp.py +0 -0
  130. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cards.py +0 -0
  131. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cli.py +0 -0
  132. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cli_args.py +0 -0
  133. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cli_components/__init__.py +0 -0
  134. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cli_components/dump_cmd.py +0 -0
  135. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cli_components/init_cmd.py +0 -0
  136. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cli_components/run_cmds.py +0 -0
  137. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cli_components/step_cmd.py +0 -0
  138. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cli_components/utils.py +0 -0
  139. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/client/__init__.py +0 -0
  140. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/client/core.py +0 -0
  141. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/client/filecache.py +0 -0
  142. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/clone_util.py +0 -0
  143. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cmd/__init__.py +0 -0
  144. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cmd/code/__init__.py +0 -0
  145. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cmd/configure_cmd.py +0 -0
  146. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cmd/develop/__init__.py +0 -0
  147. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cmd/develop/stub_generator.py +0 -0
  148. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cmd/develop/stubs.py +0 -0
  149. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cmd/main_cli.py +0 -0
  150. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cmd/make_wrapper.py +0 -0
  151. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cmd/tutorials_cmd.py +0 -0
  152. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cmd/util.py +0 -0
  153. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/cmd_with_io.py +0 -0
  154. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/datastore/__init__.py +0 -0
  155. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/datastore/content_addressed_store.py +0 -0
  156. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/datastore/datastore_set.py +0 -0
  157. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/datastore/datastore_storage.py +0 -0
  158. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/datastore/exceptions.py +0 -0
  159. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/datastore/inputs.py +0 -0
  160. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/datastore/spin_datastore.py +0 -0
  161. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/datastore/task_datastore.py +0 -0
  162. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/debug.py +0 -0
  163. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/decorators.py +0 -0
  164. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/event_logger.py +0 -0
  165. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/events.py +0 -0
  166. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/exception.py +0 -0
  167. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/extension_support/__init__.py +0 -0
  168. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/extension_support/_empty_file.py +0 -0
  169. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/extension_support/cmd.py +0 -0
  170. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/extension_support/integrations.py +0 -0
  171. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/extension_support/plugins.py +0 -0
  172. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/flowspec.py +0 -0
  173. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/graph.py +0 -0
  174. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/includefile.py +0 -0
  175. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/integrations.py +0 -0
  176. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/lint.py +0 -0
  177. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/meta_files.py +0 -0
  178. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/metadata_provider/__init__.py +0 -0
  179. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/metadata_provider/heartbeat.py +0 -0
  180. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/metadata_provider/metadata.py +0 -0
  181. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/metadata_provider/util.py +0 -0
  182. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/metaflow_config.py +0 -0
  183. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/metaflow_config_funcs.py +0 -0
  184. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/metaflow_current.py +0 -0
  185. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/metaflow_environment.py +0 -0
  186. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/metaflow_git.py +0 -0
  187. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/metaflow_profile.py +0 -0
  188. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/metaflow_version.py +0 -0
  189. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/mflog/__init__.py +0 -0
  190. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/mflog/mflog.py +0 -0
  191. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/mflog/save_logs.py +0 -0
  192. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/mflog/save_logs_periodically.py +0 -0
  193. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/mflog/tee.py +0 -0
  194. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/monitor.py +0 -0
  195. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/multicore_utils.py +0 -0
  196. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/package/__init__.py +0 -0
  197. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/packaging_sys/__init__.py +0 -0
  198. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/packaging_sys/backend.py +0 -0
  199. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/packaging_sys/distribution_support.py +0 -0
  200. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/packaging_sys/tar_backend.py +0 -0
  201. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/packaging_sys/utils.py +0 -0
  202. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/packaging_sys/v1.py +0 -0
  203. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/parameters.py +0 -0
  204. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/__init__.py +0 -0
  205. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/airflow/__init__.py +0 -0
  206. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/airflow/airflow.py +0 -0
  207. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/airflow/airflow_cli.py +0 -0
  208. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/airflow/airflow_decorator.py +0 -0
  209. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/airflow/airflow_utils.py +0 -0
  210. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/airflow/dag.py +0 -0
  211. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/airflow/exception.py +0 -0
  212. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/airflow/plumbing/__init__.py +0 -0
  213. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/airflow/plumbing/set_parameters.py +0 -0
  214. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/airflow/sensors/__init__.py +0 -0
  215. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/airflow/sensors/base_sensor.py +0 -0
  216. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/airflow/sensors/external_task_sensor.py +0 -0
  217. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/airflow/sensors/s3_sensor.py +0 -0
  218. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/argo/__init__.py +0 -0
  219. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/argo/argo_client.py +0 -0
  220. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/argo/argo_events.py +0 -0
  221. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/argo/argo_workflows.py +0 -0
  222. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/argo/argo_workflows_cli.py +0 -0
  223. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/argo/argo_workflows_decorator.py +0 -0
  224. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/argo/argo_workflows_deployer.py +0 -0
  225. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/argo/argo_workflows_deployer_objects.py +0 -0
  226. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/argo/capture_error.py +0 -0
  227. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/argo/conditional_input_paths.py +0 -0
  228. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/argo/exit_hooks.py +0 -0
  229. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/argo/generate_input_paths.py +0 -0
  230. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/argo/jobset_input_paths.py +0 -0
  231. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/argo/param_val.py +0 -0
  232. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/__init__.py +0 -0
  233. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/aws_client.py +0 -0
  234. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/aws_utils.py +0 -0
  235. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/batch/__init__.py +0 -0
  236. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/batch/batch.py +0 -0
  237. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/batch/batch_cli.py +0 -0
  238. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/batch/batch_client.py +0 -0
  239. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/batch/batch_decorator.py +0 -0
  240. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/secrets_manager/__init__.py +0 -0
  241. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py +0 -0
  242. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/step_functions/__init__.py +0 -0
  243. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/step_functions/dynamo_db_client.py +0 -0
  244. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/step_functions/event_bridge_client.py +0 -0
  245. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/step_functions/production_token.py +0 -0
  246. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/step_functions/schedule_decorator.py +0 -0
  247. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/step_functions/set_batch_environment.py +0 -0
  248. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/step_functions/step_functions.py +0 -0
  249. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/step_functions/step_functions_cli.py +0 -0
  250. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/step_functions/step_functions_client.py +0 -0
  251. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/step_functions/step_functions_decorator.py +0 -0
  252. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/step_functions/step_functions_deployer.py +0 -0
  253. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +0 -0
  254. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/azure/__init__.py +0 -0
  255. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/azure/azure_credential.py +0 -0
  256. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/azure/azure_exceptions.py +0 -0
  257. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/azure/azure_secret_manager_secrets_provider.py +0 -0
  258. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/azure/azure_tail.py +0 -0
  259. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/azure/azure_utils.py +0 -0
  260. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/azure/blob_service_client_factory.py +0 -0
  261. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/azure/includefile_support.py +0 -0
  262. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/__init__.py +0 -0
  263. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_cli.py +0 -0
  264. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_client.py +0 -0
  265. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_creator.py +0 -0
  266. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_datastore.py +0 -0
  267. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_decorator.py +0 -0
  268. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/__init__.py +0 -0
  269. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/base.html +0 -0
  270. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/basic.py +0 -0
  271. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/bundle.css +0 -0
  272. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/card.py +0 -0
  273. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/chevron/__init__.py +0 -0
  274. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/chevron/main.py +0 -0
  275. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/chevron/metadata.py +0 -0
  276. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/chevron/renderer.py +0 -0
  277. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/chevron/tokenizer.py +0 -0
  278. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/components.py +0 -0
  279. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/convert_to_native_type.py +0 -0
  280. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/json_viewer.py +0 -0
  281. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/main.css +0 -0
  282. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/main.js +0 -0
  283. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/renderer_tools.py +0 -0
  284. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_modules/test_cards.py +0 -0
  285. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_resolver.py +0 -0
  286. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_server.py +0 -0
  287. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/card_viewer/viewer.html +0 -0
  288. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/component_serializer.py +0 -0
  289. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/exception.py +0 -0
  290. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/cards/metadata.py +0 -0
  291. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/catch_decorator.py +0 -0
  292. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/datastores/__init__.py +0 -0
  293. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/datastores/azure_storage.py +0 -0
  294. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/datastores/gs_storage.py +0 -0
  295. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/datastores/local_storage.py +0 -0
  296. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/datastores/s3_storage.py +0 -0
  297. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/datastores/spin_storage.py +0 -0
  298. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/datatools/__init__.py +0 -0
  299. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/datatools/local.py +0 -0
  300. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/datatools/s3/__init__.py +0 -0
  301. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/datatools/s3/s3.py +0 -0
  302. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/datatools/s3/s3op.py +0 -0
  303. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/datatools/s3/s3tail.py +0 -0
  304. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/datatools/s3/s3util.py +0 -0
  305. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/debug_logger.py +0 -0
  306. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/debug_monitor.py +0 -0
  307. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/__init__.py +0 -0
  308. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/client.py +0 -0
  309. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/communication/__init__.py +0 -0
  310. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/communication/bytestream.py +0 -0
  311. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/communication/channel.py +0 -0
  312. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/communication/socket_bytestream.py +0 -0
  313. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/communication/utils.py +0 -0
  314. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py +0 -0
  315. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +0 -0
  316. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +0 -0
  317. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py +0 -0
  318. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +0 -0
  319. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/consts.py +0 -0
  320. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/data_transferer.py +0 -0
  321. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/exception_transferer.py +0 -0
  322. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/override_decorators.py +0 -0
  323. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/server.py +0 -0
  324. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/stub.py +0 -0
  325. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/env_escape/utils.py +0 -0
  326. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/environment_decorator.py +0 -0
  327. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/events_decorator.py +0 -0
  328. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/exit_hook/__init__.py +0 -0
  329. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/exit_hook/exit_hook_decorator.py +0 -0
  330. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/exit_hook/exit_hook_script.py +0 -0
  331. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/frameworks/__init__.py +0 -0
  332. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/frameworks/pytorch.py +0 -0
  333. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/gcp/__init__.py +0 -0
  334. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +0 -0
  335. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/gcp/gs_exceptions.py +0 -0
  336. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/gcp/gs_storage_client_factory.py +0 -0
  337. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/gcp/gs_tail.py +0 -0
  338. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/gcp/gs_utils.py +0 -0
  339. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/gcp/includefile_support.py +0 -0
  340. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/kubernetes/__init__.py +0 -0
  341. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/kubernetes/kube_utils.py +0 -0
  342. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/kubernetes/kubernetes.py +0 -0
  343. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/kubernetes/kubernetes_cli.py +0 -0
  344. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/kubernetes/kubernetes_client.py +0 -0
  345. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/kubernetes/kubernetes_decorator.py +0 -0
  346. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/kubernetes/kubernetes_job.py +0 -0
  347. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/kubernetes/kubernetes_jobsets.py +0 -0
  348. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/kubernetes/spot_metadata_cli.py +0 -0
  349. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/kubernetes/spot_monitor_sidecar.py +0 -0
  350. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/logs_cli.py +0 -0
  351. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/metadata_providers/__init__.py +0 -0
  352. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/metadata_providers/local.py +0 -0
  353. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/metadata_providers/service.py +0 -0
  354. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/metadata_providers/spin.py +0 -0
  355. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/package_cli.py +0 -0
  356. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/parallel_decorator.py +0 -0
  357. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/parsers.py +0 -0
  358. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/project_decorator.py +0 -0
  359. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/pypi/__init__.py +0 -0
  360. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/pypi/bootstrap.py +0 -0
  361. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/pypi/conda_decorator.py +0 -0
  362. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/pypi/conda_environment.py +0 -0
  363. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/pypi/micromamba.py +0 -0
  364. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/pypi/parsers.py +0 -0
  365. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/pypi/pip.py +0 -0
  366. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/pypi/pypi_decorator.py +0 -0
  367. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/pypi/pypi_environment.py +0 -0
  368. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/pypi/utils.py +0 -0
  369. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/resources_decorator.py +0 -0
  370. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/retry_decorator.py +0 -0
  371. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/secrets/__init__.py +0 -0
  372. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/secrets/inline_secrets_provider.py +0 -0
  373. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/secrets/secrets_decorator.py +0 -0
  374. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/secrets/secrets_func.py +0 -0
  375. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/secrets/secrets_spec.py +0 -0
  376. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/secrets/utils.py +0 -0
  377. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/storage_executor.py +0 -0
  378. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/tag_cli.py +0 -0
  379. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/test_unbounded_foreach_decorator.py +0 -0
  380. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/timeout_decorator.py +0 -0
  381. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/uv/__init__.py +0 -0
  382. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/uv/bootstrap.py +0 -0
  383. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/plugins/uv/uv_environment.py +0 -0
  384. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/procpoll.py +0 -0
  385. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/py.typed +0 -0
  386. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/pylint_wrapper.py +0 -0
  387. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/runner/__init__.py +0 -0
  388. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/runner/click_api.py +0 -0
  389. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/runner/deployer.py +0 -0
  390. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/runner/deployer_impl.py +0 -0
  391. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/runner/metaflow_runner.py +0 -0
  392. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/runner/nbdeploy.py +0 -0
  393. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/runner/nbrun.py +0 -0
  394. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/runner/subprocess_manager.py +0 -0
  395. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/runner/utils.py +0 -0
  396. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/runtime.py +0 -0
  397. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/sidecar/__init__.py +0 -0
  398. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/sidecar/sidecar.py +0 -0
  399. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/sidecar/sidecar_messages.py +0 -0
  400. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/sidecar/sidecar_subprocess.py +0 -0
  401. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/sidecar/sidecar_worker.py +0 -0
  402. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/system/__init__.py +0 -0
  403. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/system/system_logger.py +0 -0
  404. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/system/system_monitor.py +0 -0
  405. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/system/system_utils.py +0 -0
  406. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tagging_util.py +0 -0
  407. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/task.py +0 -0
  408. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tracing/__init__.py +0 -0
  409. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tracing/propagator.py +0 -0
  410. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tracing/span_exporter.py +0 -0
  411. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tracing/tracing_modules.py +0 -0
  412. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tuple_util.py +0 -0
  413. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/00-helloworld/README.md +0 -0
  414. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/00-helloworld/helloworld.py +0 -0
  415. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/01-playlist/README.md +0 -0
  416. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/01-playlist/movies.csv +0 -0
  417. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/01-playlist/playlist.ipynb +0 -0
  418. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/01-playlist/playlist.py +0 -0
  419. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/02-statistics/README.md +0 -0
  420. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/02-statistics/movies.csv +0 -0
  421. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/02-statistics/stats.ipynb +0 -0
  422. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/02-statistics/stats.py +0 -0
  423. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/03-playlist-redux/README.md +0 -0
  424. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/03-playlist-redux/playlist.py +0 -0
  425. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/04-playlist-plus/README.md +0 -0
  426. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/04-playlist-plus/playlist.py +0 -0
  427. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/05-hello-cloud/README.md +0 -0
  428. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/05-hello-cloud/hello-cloud.ipynb +0 -0
  429. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/05-hello-cloud/hello-cloud.py +0 -0
  430. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/06-statistics-redux/README.md +0 -0
  431. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/06-statistics-redux/stats.ipynb +0 -0
  432. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/07-worldview/README.md +0 -0
  433. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/07-worldview/worldview.ipynb +0 -0
  434. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/08-autopilot/README.md +0 -0
  435. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/tutorials/08-autopilot/autopilot.ipynb +0 -0
  436. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/unbounded_foreach.py +0 -0
  437. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/user_configs/__init__.py +0 -0
  438. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/user_configs/config_options.py +0 -0
  439. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/user_configs/config_parameters.py +0 -0
  440. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/user_decorators/__init__.py +0 -0
  441. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/user_decorators/common.py +0 -0
  442. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/user_decorators/mutable_step.py +0 -0
  443. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/user_decorators/user_flow_decorator.py +0 -0
  444. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/user_decorators/user_step_decorator.py +0 -0
  445. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/util.py +0 -0
  446. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow/vendor.py +0 -0
  447. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow.egg-info/SOURCES.txt +0 -0
  448. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow.egg-info/dependency_links.txt +0 -0
  449. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow.egg-info/entry_points.txt +0 -0
  450. {metaflow-2.19.3 → metaflow-2.19.4}/metaflow.egg-info/top_level.txt +0 -0
  451. {metaflow-2.19.3 → metaflow-2.19.4}/setup.cfg +0 -0
  452. {metaflow-2.19.3 → metaflow-2.19.4}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metaflow
3
- Version: 2.19.3
3
+ Version: 2.19.4
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.19.3; extra == "stubs"
29
+ Requires-Dist: metaflow-stubs==2.19.4; extra == "stubs"
30
30
  Dynamic: author
31
31
  Dynamic: author-email
32
32
  Dynamic: classifier
@@ -630,7 +630,7 @@ if "metadata-service" in enabled_components:
630
630
  'metadatadb.database=metaflow',
631
631
  'metadatadb.host=postgresql',
632
632
  'image.repository=public.ecr.aws/outerbounds/metaflow_metadata_service',
633
- 'image.tag=2.4.13-2-g70af4ed',
633
+ 'image.tag=2.5.0',
634
634
  'resources.requests.cpu=25m',
635
635
  'resources.requests.memory=64Mi',
636
636
  'resources.limits.cpu=50m',
@@ -167,7 +167,8 @@ class FlowDataStore(object):
167
167
  if attempt is not None and attempt <= metaflow_config.MAX_ATTEMPTS - 1:
168
168
  attempt_range = range(attempt + 1) if include_prior else [attempt]
169
169
  for task_url in task_urls:
170
- task_splits = task_url.split("/")
170
+ # task_url can have a trailing slash, so strip this to avoid empty strings in the split
171
+ task_splits = task_url.rstrip("/").split("/")
171
172
  # Usually it is flow, run, step, task (so 4 components) -- if we have a
172
173
  # fifth one, there is a specific attempt number listed as well.
173
174
  task_attempt_range = attempt_range
@@ -1,5 +1,6 @@
1
1
  import atexit
2
2
  import importlib
3
+ import importlib.util
3
4
  import itertools
4
5
  import pickle
5
6
  import re
@@ -41,6 +42,8 @@ class _WrappedModule(object):
41
42
  def __getattr__(self, name):
42
43
  if name == "__loader__":
43
44
  return self._loader
45
+ if name == "__spec__":
46
+ return importlib.util.spec_from_loader(self._prefix, self._loader)
44
47
  if name in ("__name__", "__package__"):
45
48
  return self._prefix
46
49
  if name in ("__file__", "__path__"):
@@ -71,7 +74,8 @@ class _WrappedModule(object):
71
74
  # Try to see if this is a submodule that we can load
72
75
  m = None
73
76
  try:
74
- m = self._loader.load_module(".".join([self._prefix, name]))
77
+ submodule_name = ".".join([self._prefix, name])
78
+ m = importlib.import_module(submodule_name)
75
79
  except ImportError:
76
80
  pass
77
81
  if m is None:
@@ -117,7 +121,28 @@ class _WrappedModule(object):
117
121
 
118
122
 
119
123
  class ModuleImporter(object):
120
- # This ModuleImporter implements the Importer Protocol defined in PEP 302
124
+ """
125
+ A custom import hook that proxies module imports to a different Python environment.
126
+
127
+ This class implements the MetaPathFinder and Loader protocols (PEP 451) to enable
128
+ "environment escape" - allowing the current Python process to import and use modules
129
+ from a different Python interpreter with potentially different versions or packages.
130
+
131
+ When a module is imported through this importer:
132
+ 1. A client spawns a server process in the target Python environment
133
+ 2. The module is loaded in the remote environment
134
+ 3. A _WrappedModule proxy is returned that forwards all operations (function calls,
135
+ attribute access, etc.) to the remote environment via RPC
136
+ 4. Data is serialized/deserialized using pickle for cross-environment communication
137
+
138
+ Args:
139
+ python_executable: Path to the Python interpreter for the remote environment
140
+ pythonpath: Python path to use in the remote environment
141
+ max_pickle_version: Maximum pickle protocol version supported by remote interpreter
142
+ config_dir: Directory containing configuration for the environment escape
143
+ module_prefixes: List of module name prefixes to handle
144
+ """
145
+
121
146
  def __init__(
122
147
  self,
123
148
  python_executable,
@@ -135,84 +160,89 @@ class ModuleImporter(object):
135
160
  self._handled_modules = None
136
161
  self._aliases = {}
137
162
 
138
- def find_module(self, fullname, path=None):
163
+ def find_spec(self, fullname, path=None, target=None):
139
164
  if self._handled_modules is not None:
140
165
  if get_canonical_name(fullname, self._aliases) in self._handled_modules:
141
- return self
166
+ return importlib.util.spec_from_loader(fullname, self)
142
167
  return None
143
168
  if any([fullname.startswith(prefix) for prefix in self._module_prefixes]):
144
169
  # We potentially handle this
145
- return self
170
+ return importlib.util.spec_from_loader(fullname, self)
146
171
  return None
147
172
 
148
- def load_module(self, fullname):
149
- if fullname in sys.modules:
150
- return sys.modules[fullname]
151
- if self._client is None:
152
- if sys.version_info[0] < 3:
153
- raise NotImplementedError(
154
- "Environment escape imports are not supported in Python 2"
155
- )
156
- # We initialize a client and query the modules we handle
157
- # The max_pickle_version is the pickle version that the server (so
158
- # the underlying interpreter we call into) supports; we determine
159
- # what version the current environment support and take the minimum
160
- # of those two
161
- max_pickle_version = min(self._max_pickle_version, pickle.HIGHEST_PROTOCOL)
162
-
163
- self._client = Client(
164
- self._module_prefixes,
165
- self._python_executable,
166
- self._pythonpath,
167
- max_pickle_version,
168
- self._config_dir,
169
- )
170
- atexit.register(_clean_client, self._client)
171
-
172
- # Get information about overrides and what the server knows about
173
- exports = self._client.get_exports()
174
-
175
- prefixes = set()
176
- export_classes = exports.get("classes", [])
177
- export_functions = exports.get("functions", [])
178
- export_values = exports.get("values", [])
179
- export_exceptions = exports.get("exceptions", [])
180
- self._aliases = exports.get("aliases", {})
181
- for name in itertools.chain(
182
- export_classes,
183
- export_functions,
184
- export_values,
185
- (e[0] for e in export_exceptions),
186
- ):
187
- splits = name.rsplit(".", 1)
188
- prefixes.add(splits[0])
189
- # We will make sure that we create modules even for "empty" prefixes
190
- # because packages are always loaded hierarchically so if we have
191
- # something in `a.b.c` but nothing directly in `a`, we still need to
192
- # create a module named `a`. There is probably a better way of doing this
193
- all_prefixes = list(prefixes)
194
- for prefix in all_prefixes:
195
- parts = prefix.split(".")
196
- cur = parts[0]
197
- for i in range(1, len(parts)):
198
- prefixes.add(cur)
199
- cur = ".".join([cur, parts[i]])
200
-
201
- # We now know all the modules that we can handle. We update
202
- # handled_module and return the module if we have it or raise ImportError
203
- self._handled_modules = {}
204
- for prefix in prefixes:
205
- self._handled_modules[prefix] = _WrappedModule(
206
- self, prefix, exports, self._client
207
- )
173
+ def create_module(self, spec):
174
+ # Return the pre-created wrapped module for this spec
175
+ self._initialize_client()
176
+
177
+ fullname = spec.name
208
178
  canonical_fullname = get_canonical_name(fullname, self._aliases)
209
- # Modules are created canonically but we need to return something for any
210
- # of the aliases.
211
- module = self._handled_modules.get(canonical_fullname)
212
- if module is None:
213
- raise ImportError
214
- sys.modules[fullname] = module
215
- return module
179
+ # Modules are created canonically but we need to handle any of the aliases.
180
+ wrapped_module = self._handled_modules.get(canonical_fullname)
181
+ if wrapped_module is None:
182
+ raise ImportError(f"No module named '{fullname}'")
183
+ return wrapped_module
184
+
185
+ def exec_module(self, module):
186
+ # No initialization needed since the wrapped module returned by
187
+ # create_module() is fully initialized
188
+ pass
189
+
190
+ def _initialize_client(self):
191
+ if self._client is not None:
192
+ return
193
+
194
+ # We initialize a client and query the modules we handle
195
+ # The max_pickle_version is the pickle version that the server (so
196
+ # the underlying interpreter we call into) supports; we determine
197
+ # what version the current environment support and take the minimum
198
+ # of those two
199
+ max_pickle_version = min(self._max_pickle_version, pickle.HIGHEST_PROTOCOL)
200
+
201
+ self._client = Client(
202
+ self._module_prefixes,
203
+ self._python_executable,
204
+ self._pythonpath,
205
+ max_pickle_version,
206
+ self._config_dir,
207
+ )
208
+ atexit.register(_clean_client, self._client)
209
+
210
+ # Get information about overrides and what the server knows about
211
+ exports = self._client.get_exports()
212
+
213
+ prefixes = set()
214
+ export_classes = exports.get("classes", [])
215
+ export_functions = exports.get("functions", [])
216
+ export_values = exports.get("values", [])
217
+ export_exceptions = exports.get("exceptions", [])
218
+ self._aliases = exports.get("aliases", {})
219
+ for name in itertools.chain(
220
+ export_classes,
221
+ export_functions,
222
+ export_values,
223
+ (e[0] for e in export_exceptions),
224
+ ):
225
+ splits = name.rsplit(".", 1)
226
+ prefixes.add(splits[0])
227
+ # We will make sure that we create modules even for "empty" prefixes
228
+ # because packages are always loaded hierarchically so if we have
229
+ # something in `a.b.c` but nothing directly in `a`, we still need to
230
+ # create a module named `a`. There is probably a better way of doing this
231
+ all_prefixes = list(prefixes)
232
+ for prefix in all_prefixes:
233
+ parts = prefix.split(".")
234
+ cur = parts[0]
235
+ for i in range(1, len(parts)):
236
+ prefixes.add(cur)
237
+ cur = ".".join([cur, parts[i]])
238
+
239
+ # We now know all the modules that we can handle. We update
240
+ # handled_module and return the module if we have it or raise ImportError
241
+ self._handled_modules = {}
242
+ for prefix in prefixes:
243
+ self._handled_modules[prefix] = _WrappedModule(
244
+ self, prefix, exports, self._client
245
+ )
216
246
 
217
247
 
218
248
  def create_modules(python_executable, pythonpath, max_pickle_version, path, prefixes):
@@ -239,7 +239,7 @@ class MutableFlow:
239
239
  "Mutable flow removing parameter %s from flow" % var
240
240
  )
241
241
  # Reset so that we don't list it again
242
- del self._flow_cls._flow_state[_FlowState.CACHED_PARAMETERS]
242
+ self._flow_cls._flow_state.pop(_FlowState.CACHED_PARAMETERS, None)
243
243
  return True
244
244
  debug.userconf_exec(
245
245
  "Mutable flow failed to remove parameter %s from flow" % parameter_name
@@ -0,0 +1 @@
1
+ metaflow_version = "2.19.4"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metaflow
3
- Version: 2.19.3
3
+ Version: 2.19.4
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.19.3; extra == "stubs"
29
+ Requires-Dist: metaflow-stubs==2.19.4; extra == "stubs"
30
30
  Dynamic: author
31
31
  Dynamic: author-email
32
32
  Dynamic: classifier
@@ -2,4 +2,4 @@ requests
2
2
  boto3
3
3
 
4
4
  [stubs]
5
- metaflow-stubs==2.19.3
5
+ metaflow-stubs==2.19.4
@@ -1 +0,0 @@
1
- metaflow_version = "2.19.3"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes