metaflow 2.14.3__tar.gz → 2.15.1__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 (381) hide show
  1. {metaflow-2.14.3 → metaflow-2.15.1}/MANIFEST.in +2 -1
  2. {metaflow-2.14.3/metaflow.egg-info → metaflow-2.15.1}/PKG-INFO +3 -3
  3. metaflow-2.15.1/devtools/Makefile +322 -0
  4. metaflow-2.15.1/devtools/Tiltfile +620 -0
  5. metaflow-2.15.1/devtools/pick_services.sh +104 -0
  6. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/__init__.py +7 -0
  7. metaflow-2.15.1/metaflow/cmd/code/__init__.py +230 -0
  8. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cmd/develop/stub_generator.py +5 -2
  9. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cmd/main_cli.py +1 -0
  10. metaflow-2.15.1/metaflow/cmd/make_wrapper.py +16 -0
  11. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/metaflow_config.py +2 -0
  12. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/metaflow_environment.py +3 -1
  13. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/mflog/__init__.py +4 -3
  14. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/batch/batch_cli.py +4 -4
  15. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/batch/batch_decorator.py +8 -0
  16. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/kubernetes/kubernetes_decorator.py +2 -1
  17. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/kubernetes/kubernetes_jobsets.py +2 -0
  18. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/pypi/bootstrap.py +18 -27
  19. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/pypi/conda_environment.py +8 -8
  20. metaflow-2.15.1/metaflow/plugins/pypi/parsers.py +268 -0
  21. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/pypi/utils.py +18 -0
  22. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/runner/subprocess_manager.py +12 -6
  23. metaflow-2.15.1/metaflow/version.py +1 -0
  24. {metaflow-2.14.3 → metaflow-2.15.1/metaflow.egg-info}/PKG-INFO +3 -3
  25. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow.egg-info/SOURCES.txt +6 -0
  26. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow.egg-info/entry_points.txt +1 -0
  27. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow.egg-info/requires.txt +1 -1
  28. {metaflow-2.14.3 → metaflow-2.15.1}/setup.py +13 -1
  29. metaflow-2.14.3/metaflow/version.py +0 -1
  30. {metaflow-2.14.3 → metaflow-2.15.1}/LICENSE +0 -0
  31. {metaflow-2.14.3 → metaflow-2.15.1}/README.md +0 -0
  32. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/R.py +0 -0
  33. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/__init__.py +0 -0
  34. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/__init__.py +0 -0
  35. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/_bashcomplete.py +0 -0
  36. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/_compat.py +0 -0
  37. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/_termui_impl.py +0 -0
  38. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/_textwrap.py +0 -0
  39. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/_unicodefun.py +0 -0
  40. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/_winconsole.py +0 -0
  41. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/core.py +0 -0
  42. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/decorators.py +0 -0
  43. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/exceptions.py +0 -0
  44. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/formatting.py +0 -0
  45. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/globals.py +0 -0
  46. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/parser.py +0 -0
  47. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/termui.py +0 -0
  48. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/testing.py +0 -0
  49. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/types.py +0 -0
  50. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/click/utils.py +0 -0
  51. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/importlib_metadata/__init__.py +0 -0
  52. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/importlib_metadata/_adapters.py +0 -0
  53. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/importlib_metadata/_collections.py +0 -0
  54. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/importlib_metadata/_compat.py +0 -0
  55. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/importlib_metadata/_functools.py +0 -0
  56. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/importlib_metadata/_itertools.py +0 -0
  57. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/importlib_metadata/_meta.py +0 -0
  58. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/importlib_metadata/_text.py +0 -0
  59. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/importlib_metadata/py.typed +0 -0
  60. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/packaging/__init__.py +0 -0
  61. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/packaging/_elffile.py +0 -0
  62. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/packaging/_manylinux.py +0 -0
  63. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/packaging/_musllinux.py +0 -0
  64. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/packaging/_parser.py +0 -0
  65. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/packaging/_structures.py +0 -0
  66. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/packaging/_tokenizer.py +0 -0
  67. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/packaging/markers.py +0 -0
  68. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/packaging/py.typed +0 -0
  69. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/packaging/requirements.py +0 -0
  70. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/packaging/specifiers.py +0 -0
  71. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/packaging/tags.py +0 -0
  72. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/packaging/utils.py +0 -0
  73. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/packaging/version.py +0 -0
  74. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/typeguard/__init__.py +0 -0
  75. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/typeguard/_checkers.py +0 -0
  76. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/typeguard/_config.py +0 -0
  77. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/typeguard/_decorators.py +0 -0
  78. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/typeguard/_exceptions.py +0 -0
  79. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/typeguard/_functions.py +0 -0
  80. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/typeguard/_importhook.py +0 -0
  81. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/typeguard/_memo.py +0 -0
  82. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/typeguard/_pytest_plugin.py +0 -0
  83. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/typeguard/_suppression.py +0 -0
  84. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/typeguard/_transformer.py +0 -0
  85. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/typeguard/_union_transformer.py +0 -0
  86. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/typeguard/_utils.py +0 -0
  87. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/typeguard/py.typed +0 -0
  88. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/typing_extensions.py +0 -0
  89. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_5/__init__.py +0 -0
  90. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_5/importlib_metadata/__init__.py +0 -0
  91. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_5/importlib_metadata/_compat.py +0 -0
  92. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_5/zipp.py +0 -0
  93. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_6/__init__.py +0 -0
  94. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py +0 -0
  95. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py +0 -0
  96. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py +0 -0
  97. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py +0 -0
  98. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py +0 -0
  99. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py +0 -0
  100. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_6/importlib_metadata/_meta.py +0 -0
  101. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_6/importlib_metadata/_text.py +0 -0
  102. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_6/importlib_metadata/py.typed +0 -0
  103. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_6/typing_extensions.py +0 -0
  104. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/v3_6/zipp.py +0 -0
  105. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/_vendor/zipp.py +0 -0
  106. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cards.py +0 -0
  107. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cli.py +0 -0
  108. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cli_args.py +0 -0
  109. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cli_components/__init__.py +0 -0
  110. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cli_components/dump_cmd.py +0 -0
  111. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cli_components/init_cmd.py +0 -0
  112. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cli_components/run_cmds.py +0 -0
  113. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cli_components/step_cmd.py +0 -0
  114. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cli_components/utils.py +0 -0
  115. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/client/__init__.py +0 -0
  116. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/client/core.py +0 -0
  117. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/client/filecache.py +0 -0
  118. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/clone_util.py +0 -0
  119. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cmd/__init__.py +0 -0
  120. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cmd/configure_cmd.py +0 -0
  121. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cmd/develop/__init__.py +0 -0
  122. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cmd/develop/stubs.py +0 -0
  123. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cmd/tutorials_cmd.py +0 -0
  124. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cmd/util.py +0 -0
  125. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/cmd_with_io.py +0 -0
  126. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/datastore/__init__.py +0 -0
  127. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/datastore/content_addressed_store.py +0 -0
  128. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/datastore/datastore_set.py +0 -0
  129. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/datastore/datastore_storage.py +0 -0
  130. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/datastore/exceptions.py +0 -0
  131. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/datastore/flow_datastore.py +0 -0
  132. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/datastore/inputs.py +0 -0
  133. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/datastore/task_datastore.py +0 -0
  134. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/debug.py +0 -0
  135. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/decorators.py +0 -0
  136. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/event_logger.py +0 -0
  137. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/events.py +0 -0
  138. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/exception.py +0 -0
  139. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/extension_support/__init__.py +0 -0
  140. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/extension_support/_empty_file.py +0 -0
  141. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/extension_support/cmd.py +0 -0
  142. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/extension_support/integrations.py +0 -0
  143. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/extension_support/plugins.py +0 -0
  144. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/flowspec.py +0 -0
  145. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/graph.py +0 -0
  146. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/includefile.py +0 -0
  147. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/info_file.py +0 -0
  148. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/integrations.py +0 -0
  149. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/lint.py +0 -0
  150. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/metadata_provider/__init__.py +0 -0
  151. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/metadata_provider/heartbeat.py +0 -0
  152. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/metadata_provider/metadata.py +0 -0
  153. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/metadata_provider/util.py +0 -0
  154. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/metaflow_config_funcs.py +0 -0
  155. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/metaflow_current.py +0 -0
  156. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/metaflow_profile.py +0 -0
  157. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/metaflow_version.py +0 -0
  158. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/mflog/mflog.py +0 -0
  159. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/mflog/save_logs.py +0 -0
  160. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/mflog/save_logs_periodically.py +0 -0
  161. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/mflog/tee.py +0 -0
  162. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/monitor.py +0 -0
  163. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/multicore_utils.py +0 -0
  164. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/package.py +0 -0
  165. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/parameters.py +0 -0
  166. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/__init__.py +0 -0
  167. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/airflow/__init__.py +0 -0
  168. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/airflow/airflow.py +0 -0
  169. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/airflow/airflow_cli.py +0 -0
  170. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/airflow/airflow_decorator.py +0 -0
  171. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/airflow/airflow_utils.py +0 -0
  172. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/airflow/dag.py +0 -0
  173. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/airflow/exception.py +0 -0
  174. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/airflow/plumbing/__init__.py +0 -0
  175. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/airflow/plumbing/set_parameters.py +0 -0
  176. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/airflow/sensors/__init__.py +0 -0
  177. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/airflow/sensors/base_sensor.py +0 -0
  178. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/airflow/sensors/external_task_sensor.py +0 -0
  179. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/airflow/sensors/s3_sensor.py +0 -0
  180. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/argo/__init__.py +0 -0
  181. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/argo/argo_client.py +0 -0
  182. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/argo/argo_events.py +0 -0
  183. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/argo/argo_workflows.py +0 -0
  184. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/argo/argo_workflows_cli.py +0 -0
  185. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/argo/argo_workflows_decorator.py +0 -0
  186. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/argo/argo_workflows_deployer.py +0 -0
  187. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/argo/argo_workflows_deployer_objects.py +0 -0
  188. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/argo/capture_error.py +0 -0
  189. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/argo/generate_input_paths.py +0 -0
  190. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/argo/jobset_input_paths.py +0 -0
  191. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/__init__.py +0 -0
  192. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/aws_client.py +0 -0
  193. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/aws_utils.py +0 -0
  194. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/batch/__init__.py +0 -0
  195. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/batch/batch.py +0 -0
  196. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/batch/batch_client.py +0 -0
  197. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/secrets_manager/__init__.py +0 -0
  198. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py +0 -0
  199. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/step_functions/__init__.py +0 -0
  200. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/step_functions/dynamo_db_client.py +0 -0
  201. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/step_functions/event_bridge_client.py +0 -0
  202. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/step_functions/production_token.py +0 -0
  203. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/step_functions/schedule_decorator.py +0 -0
  204. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/step_functions/set_batch_environment.py +0 -0
  205. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/step_functions/step_functions.py +0 -0
  206. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/step_functions/step_functions_cli.py +0 -0
  207. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/step_functions/step_functions_client.py +0 -0
  208. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/step_functions/step_functions_decorator.py +0 -0
  209. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/step_functions/step_functions_deployer.py +0 -0
  210. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +0 -0
  211. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/azure/__init__.py +0 -0
  212. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/azure/azure_credential.py +0 -0
  213. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/azure/azure_exceptions.py +0 -0
  214. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/azure/azure_secret_manager_secrets_provider.py +0 -0
  215. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/azure/azure_tail.py +0 -0
  216. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/azure/azure_utils.py +0 -0
  217. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/azure/blob_service_client_factory.py +0 -0
  218. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/azure/includefile_support.py +0 -0
  219. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/__init__.py +0 -0
  220. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_cli.py +0 -0
  221. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_client.py +0 -0
  222. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_creator.py +0 -0
  223. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_datastore.py +0 -0
  224. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_decorator.py +0 -0
  225. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_modules/__init__.py +0 -0
  226. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_modules/base.html +0 -0
  227. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_modules/basic.py +0 -0
  228. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_modules/bundle.css +0 -0
  229. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_modules/card.py +0 -0
  230. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_modules/chevron/__init__.py +0 -0
  231. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_modules/chevron/main.py +0 -0
  232. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_modules/chevron/metadata.py +0 -0
  233. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_modules/chevron/renderer.py +0 -0
  234. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_modules/chevron/tokenizer.py +0 -0
  235. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_modules/components.py +0 -0
  236. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_modules/convert_to_native_type.py +0 -0
  237. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_modules/main.js +0 -0
  238. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_modules/renderer_tools.py +0 -0
  239. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_modules/test_cards.py +0 -0
  240. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_resolver.py +0 -0
  241. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_server.py +0 -0
  242. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/card_viewer/viewer.html +0 -0
  243. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/component_serializer.py +0 -0
  244. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/cards/exception.py +0 -0
  245. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/catch_decorator.py +0 -0
  246. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/datastores/__init__.py +0 -0
  247. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/datastores/azure_storage.py +0 -0
  248. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/datastores/gs_storage.py +0 -0
  249. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/datastores/local_storage.py +0 -0
  250. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/datastores/s3_storage.py +0 -0
  251. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/datatools/__init__.py +0 -0
  252. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/datatools/local.py +0 -0
  253. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/datatools/s3/__init__.py +0 -0
  254. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/datatools/s3/s3.py +0 -0
  255. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/datatools/s3/s3op.py +0 -0
  256. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/datatools/s3/s3tail.py +0 -0
  257. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/datatools/s3/s3util.py +0 -0
  258. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/debug_logger.py +0 -0
  259. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/debug_monitor.py +0 -0
  260. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/__init__.py +0 -0
  261. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/client.py +0 -0
  262. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/client_modules.py +0 -0
  263. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/communication/__init__.py +0 -0
  264. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/communication/bytestream.py +0 -0
  265. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/communication/channel.py +0 -0
  266. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/communication/socket_bytestream.py +0 -0
  267. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/communication/utils.py +0 -0
  268. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py +0 -0
  269. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +0 -0
  270. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +0 -0
  271. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py +0 -0
  272. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +0 -0
  273. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/consts.py +0 -0
  274. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/data_transferer.py +0 -0
  275. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/exception_transferer.py +0 -0
  276. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/override_decorators.py +0 -0
  277. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/server.py +0 -0
  278. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/stub.py +0 -0
  279. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/env_escape/utils.py +0 -0
  280. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/environment_decorator.py +0 -0
  281. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/events_decorator.py +0 -0
  282. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/frameworks/__init__.py +0 -0
  283. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/frameworks/pytorch.py +0 -0
  284. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/gcp/__init__.py +0 -0
  285. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +0 -0
  286. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/gcp/gs_exceptions.py +0 -0
  287. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/gcp/gs_storage_client_factory.py +0 -0
  288. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/gcp/gs_tail.py +0 -0
  289. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/gcp/gs_utils.py +0 -0
  290. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/gcp/includefile_support.py +0 -0
  291. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/kubernetes/__init__.py +0 -0
  292. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/kubernetes/kube_utils.py +0 -0
  293. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/kubernetes/kubernetes.py +0 -0
  294. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/kubernetes/kubernetes_cli.py +0 -0
  295. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/kubernetes/kubernetes_client.py +0 -0
  296. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/kubernetes/kubernetes_job.py +0 -0
  297. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/kubernetes/spot_metadata_cli.py +0 -0
  298. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/kubernetes/spot_monitor_sidecar.py +0 -0
  299. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/logs_cli.py +0 -0
  300. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/metadata_providers/__init__.py +0 -0
  301. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/metadata_providers/local.py +0 -0
  302. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/metadata_providers/service.py +0 -0
  303. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/package_cli.py +0 -0
  304. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/parallel_decorator.py +0 -0
  305. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/project_decorator.py +0 -0
  306. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/pypi/__init__.py +0 -0
  307. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/pypi/conda_decorator.py +0 -0
  308. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/pypi/micromamba.py +0 -0
  309. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/pypi/pip.py +0 -0
  310. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/pypi/pypi_decorator.py +0 -0
  311. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/pypi/pypi_environment.py +0 -0
  312. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/resources_decorator.py +0 -0
  313. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/retry_decorator.py +0 -0
  314. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/secrets/__init__.py +0 -0
  315. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/secrets/inline_secrets_provider.py +0 -0
  316. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/secrets/secrets_decorator.py +0 -0
  317. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/storage_executor.py +0 -0
  318. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/tag_cli.py +0 -0
  319. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/test_unbounded_foreach_decorator.py +0 -0
  320. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/plugins/timeout_decorator.py +0 -0
  321. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/procpoll.py +0 -0
  322. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/py.typed +0 -0
  323. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/pylint_wrapper.py +0 -0
  324. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/runner/__init__.py +0 -0
  325. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/runner/click_api.py +0 -0
  326. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/runner/deployer.py +0 -0
  327. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/runner/deployer_impl.py +0 -0
  328. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/runner/metaflow_runner.py +0 -0
  329. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/runner/nbdeploy.py +0 -0
  330. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/runner/nbrun.py +0 -0
  331. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/runner/utils.py +0 -0
  332. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/runtime.py +0 -0
  333. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/sidecar/__init__.py +0 -0
  334. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/sidecar/sidecar.py +0 -0
  335. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/sidecar/sidecar_messages.py +0 -0
  336. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/sidecar/sidecar_subprocess.py +0 -0
  337. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/sidecar/sidecar_worker.py +0 -0
  338. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/system/__init__.py +0 -0
  339. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/system/system_logger.py +0 -0
  340. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/system/system_monitor.py +0 -0
  341. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/system/system_utils.py +0 -0
  342. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tagging_util.py +0 -0
  343. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/task.py +0 -0
  344. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tracing/__init__.py +0 -0
  345. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tracing/propagator.py +0 -0
  346. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tracing/span_exporter.py +0 -0
  347. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tracing/tracing_modules.py +0 -0
  348. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tuple_util.py +0 -0
  349. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/00-helloworld/README.md +0 -0
  350. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/00-helloworld/helloworld.py +0 -0
  351. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/01-playlist/README.md +0 -0
  352. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/01-playlist/movies.csv +0 -0
  353. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/01-playlist/playlist.ipynb +0 -0
  354. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/01-playlist/playlist.py +0 -0
  355. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/02-statistics/README.md +0 -0
  356. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/02-statistics/movies.csv +0 -0
  357. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/02-statistics/stats.ipynb +0 -0
  358. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/02-statistics/stats.py +0 -0
  359. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/03-playlist-redux/README.md +0 -0
  360. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/03-playlist-redux/playlist.py +0 -0
  361. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/04-playlist-plus/README.md +0 -0
  362. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/04-playlist-plus/playlist.py +0 -0
  363. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/05-hello-cloud/README.md +0 -0
  364. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/05-hello-cloud/hello-cloud.ipynb +0 -0
  365. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/05-hello-cloud/hello-cloud.py +0 -0
  366. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/06-statistics-redux/README.md +0 -0
  367. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/06-statistics-redux/stats.ipynb +0 -0
  368. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/07-worldview/README.md +0 -0
  369. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/07-worldview/worldview.ipynb +0 -0
  370. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/08-autopilot/README.md +0 -0
  371. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/tutorials/08-autopilot/autopilot.ipynb +0 -0
  372. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/unbounded_foreach.py +0 -0
  373. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/user_configs/__init__.py +0 -0
  374. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/user_configs/config_decorators.py +0 -0
  375. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/user_configs/config_options.py +0 -0
  376. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/user_configs/config_parameters.py +0 -0
  377. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/util.py +0 -0
  378. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow/vendor.py +0 -0
  379. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow.egg-info/dependency_links.txt +0 -0
  380. {metaflow-2.14.3 → metaflow-2.15.1}/metaflow.egg-info/top_level.txt +0 -0
  381. {metaflow-2.14.3 → metaflow-2.15.1}/setup.cfg +0 -0
@@ -2,4 +2,5 @@ include LICENSE
2
2
  include metaflow/plugins/cards/card_modules/*.html
3
3
  include metaflow/plugins/cards/card_modules/*.js
4
4
  include metaflow/plugins/cards/card_modules/*.css
5
- include metaflow/plugins/cards/card_viewer/*.html
5
+ include metaflow/plugins/cards/card_viewer/*.html
6
+ recursive-include devtools *
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: metaflow
3
- Version: 2.14.3
4
- Summary: Metaflow: More Data Science, Less Engineering
3
+ Version: 2.15.1
4
+ Summary: Metaflow: More AI and ML, Less Engineering
5
5
  Author: Metaflow Developers
6
6
  Author-email: help@metaflow.org
7
7
  License: Apache Software License
@@ -26,7 +26,7 @@ License-File: LICENSE
26
26
  Requires-Dist: requests
27
27
  Requires-Dist: boto3
28
28
  Provides-Extra: stubs
29
- Requires-Dist: metaflow-stubs==2.14.3; extra == "stubs"
29
+ Requires-Dist: metaflow-stubs==2.15.1; extra == "stubs"
30
30
  Dynamic: author
31
31
  Dynamic: author-email
32
32
  Dynamic: classifier
@@ -0,0 +1,322 @@
1
+ SHELL := /bin/bash
2
+ .SHELLFLAGS := -eu -o pipefail -c
3
+
4
+ help:
5
+ @echo "Available targets:"
6
+ @echo " up - Start the development environment"
7
+ @echo " shell - Switch to development environment's shell"
8
+ @echo " ui - Open Metaflow UI"
9
+ @echo " dashboard - Open Minikube dashboard"
10
+ @echo " down - Stop and clean up the environment"
11
+ @echo " help - Show this help message"
12
+
13
+ HELM_VERSION := v3.14.0
14
+ MINIKUBE_VERSION := v1.32.0
15
+ TILT_VERSION := v0.33.11
16
+ GUM_VERSION := v0.15.2
17
+
18
+ MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
19
+ MKFILE_DIR := $(dir $(MKFILE_PATH))
20
+ DEVTOOLS_DIR := $(MKFILE_DIR).devtools
21
+ PICK_SERVICES := $(MKFILE_DIR)pick_services.sh
22
+ MINIKUBE_DIR := $(DEVTOOLS_DIR)/minikube
23
+ MINIKUBE := $(MINIKUBE_DIR)/minikube
24
+ TILT_DIR := $(DEVTOOLS_DIR)/tilt
25
+ TILT := $(TILT_DIR)/tilt
26
+ TILTFILE := $(MKFILE_DIR)/Tiltfile
27
+ MAKE_CMD := $(MAKE) -C "$(MKFILE_DIR)"
28
+
29
+ MINIKUBE_CPUS ?= 4
30
+ MINIKUBE_MEMORY ?= 6000
31
+ MINIKUBE_DISK_SIZE ?= 20g
32
+
33
+ ifeq ($(shell uname), Darwin)
34
+ minikube_os = darwin
35
+ tilt_os = mac
36
+ else
37
+ minikube_os = linux
38
+ tilt_os = linux
39
+ endif
40
+
41
+ ifeq ($(shell uname -m), x86_64)
42
+ arch = amd64
43
+ tilt_arch = x86_64
44
+ else
45
+ arch = arm64
46
+ tilt_arch = arm64
47
+ endif
48
+
49
+ # TODO: Move scripts to a folder
50
+
51
+ install-helm:
52
+ @if ! command -v helm >/dev/null 2>&1; then \
53
+ echo "📥 Installing Helm $(HELM_VERSION) (may require sudo access)..."; \
54
+ curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | HELM_INSTALL_VERSION=$(HELM_VERSION) bash; \
55
+ echo "✅ Helm installation complete"; \
56
+ fi
57
+
58
+ check-docker:
59
+ @if ! command -v docker >/dev/null 2>&1; then \
60
+ echo "❌ Docker is not installed. Please install Docker first: https://docs.docker.com/get-docker/"; \
61
+ exit 1; \
62
+ fi
63
+ @echo "🔍 Checking Docker daemon..."
64
+ @if [ "$(shell uname)" = "Darwin" ]; then \
65
+ open -a Docker || (echo "❌ Please start Docker Desktop" && exit 1); \
66
+ else \
67
+ systemctl is-active --quiet docker || (echo "❌ Docker daemon is not running. Start with 'sudo systemctl start docker'" && exit 1); \
68
+ fi
69
+ @echo "✅ Docker is running"
70
+
71
+ install-brew:
72
+ @if [ "$(shell uname)" = "Darwin" ] && ! command -v brew >/dev/null 2>&1; then \
73
+ echo "📥 Installing Homebrew..."; \
74
+ /bin/bash -c "$$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"; \
75
+ echo "✅ Homebrew installation complete"; \
76
+ fi
77
+
78
+ install-curl:
79
+ @if ! command -v curl >/dev/null 2>&1; then \
80
+ echo "📥 Installing curl..."; \
81
+ if [ "$(shell uname)" = "Darwin" ]; then \
82
+ HOMEBREW_NO_AUTO_UPDATE=1 brew install curl; \
83
+ elif command -v apt-get >/dev/null 2>&1; then \
84
+ sudo apt-get update && sudo apt-get install -y curl; \
85
+ elif command -v yum >/dev/null 2>&1; then \
86
+ sudo yum install -y curl; \
87
+ elif command -v dnf >/dev/null 2>&1; then \
88
+ sudo dnf install -y curl; \
89
+ else \
90
+ echo "❌ Could not install curl. Please install manually."; \
91
+ exit 1; \
92
+ fi; \
93
+ echo "✅ curl installation complete"; \
94
+ fi
95
+
96
+ install-gum:
97
+ @echo "🔍 Checking if gum is installed..."
98
+ @if ! command -v gum >/dev/null 2>&1; then \
99
+ echo "📥 Installing gum..."; \
100
+ if [ "$(shell uname)" = "Darwin" ]; then \
101
+ HOMEBREW_NO_AUTO_UPDATE=1 brew install gum; \
102
+ elif command -v apt-get >/dev/null 2>&1; then \
103
+ curl -fsSL -o /tmp/gum.deb \
104
+ "https://github.com/charmbracelet/gum/releases/download/$(GUM_VERSION)/gum_$(GUM_VERSION:v%=%)_$(arch).deb"; \
105
+ sudo apt-get update -qq; \
106
+ sudo apt-get install -y /tmp/gum.deb || sudo dpkg -i /tmp/gum.deb; \
107
+ rm -f /tmp/gum.deb; \
108
+ else \
109
+ echo "❌ Could not determine how to install gum for your platform. Please install manually."; \
110
+ exit 1; \
111
+ fi; \
112
+ echo "✅ gum installation complete"; \
113
+ else \
114
+ echo "✅ gum is already installed."; \
115
+ fi
116
+
117
+ setup-minikube:
118
+ @if [ ! -f "$(MINIKUBE)" ]; then \
119
+ echo "📥 Installing Minikube $(MINIKUBE_VERSION)"; \
120
+ mkdir -p $(MINIKUBE_DIR); \
121
+ curl -L --fail https://github.com/kubernetes/minikube/releases/download/$(MINIKUBE_VERSION)/minikube-$(minikube_os)-$(arch) -o $(MINIKUBE) || (echo "❌ Failed to download minikube" && exit 1); \
122
+ chmod +x $(MINIKUBE); \
123
+ echo "✅ Minikube $(MINIKUBE_VERSION) installed successfully"; \
124
+ fi
125
+ @echo "🔧 Setting up Minikube $(MINIKUBE_VERSION) cluster..."
126
+ @if ! $(MINIKUBE) status >/dev/null 2>&1; then \
127
+ echo "🚀 Starting new Minikube $(MINIKUBE_VERSION) cluster..."; \
128
+ $(MINIKUBE) start \
129
+ --cpus $(MINIKUBE_CPUS) \
130
+ --memory $(MINIKUBE_MEMORY) \
131
+ --disk-size $(MINIKUBE_DISK_SIZE) \
132
+ --driver docker; \
133
+ echo "🔌 Enabling metrics-server and dashboard (quietly)..."; \
134
+ $(MINIKUBE) addons enable metrics-server >/dev/null 2>&1; \
135
+ $(MINIKUBE) addons enable dashboard >/dev/null 2>&1; \
136
+ else \
137
+ echo "✅ Minikube $(MINIKUBE_VERSION) cluster is already running"; \
138
+ fi
139
+ @echo "🎉 Minikube $(MINIKUBE_VERSION) cluster is ready!"
140
+
141
+ setup-tilt:
142
+ @if [ ! -f "$(TILT)" ]; then \
143
+ echo "📥 Installing Tilt $(TILT_VERSION)"; \
144
+ mkdir -p $(TILT_DIR); \
145
+ (curl -L https://github.com/tilt-dev/tilt/releases/download/$(TILT_VERSION)/tilt.$(TILT_VERSION:v%=%).$(tilt_os).$(tilt_arch).tar.gz | tar -xz -C $(TILT_DIR)) && echo "✅ Tilt $(TILT_VERSION) installed successfully" || (echo "❌ Failed to install Tilt" && exit 1); \
146
+ fi
147
+
148
+ tunnel:
149
+ $(MINIKUBE) tunnel
150
+
151
+ teardown-minikube:
152
+ @echo "🛑 Stopping Minikube $(MINIKUBE_VERSION) cluster..."
153
+ -$(MINIKUBE) stop
154
+ @echo "🗑️ Deleting Minikube $(MINIKUBE_VERSION) cluster..."
155
+ -$(MINIKUBE) delete --all
156
+ @echo "🧹 Removing Minikube binary..."
157
+ -rm -rf $(MINIKUBE_DIR)
158
+ @echo "✅ Minikube $(MINIKUBE_VERSION) teardown complete"
159
+
160
+ dashboard:
161
+ @echo "🔗 Opening Minikube Dashboard..."
162
+ @$(MINIKUBE) dashboard
163
+
164
+ # make shell is symlinked to metaflow-dev shell by metaflow
165
+ up: install-brew check-docker install-curl install-gum setup-minikube install-helm setup-tilt
166
+ @echo "🚀 Starting up (may require sudo access)..."
167
+ @mkdir -p $(DEVTOOLS_DIR)
168
+ @echo '#!/bin/bash' > $(DEVTOOLS_DIR)/start.sh
169
+ @echo 'set -e' >> $(DEVTOOLS_DIR)/start.sh
170
+ @echo 'trap "exit" INT TERM' >> $(DEVTOOLS_DIR)/start.sh
171
+ @echo 'trap "kill 0" EXIT' >> $(DEVTOOLS_DIR)/start.sh
172
+ @echo 'eval $$($(MINIKUBE) docker-env)' >> $(DEVTOOLS_DIR)/start.sh
173
+
174
+ @echo 'if [ -n "$$SERVICES_OVERRIDE" ]; then' >> "$(DEVTOOLS_DIR)/start.sh"
175
+ @echo ' echo "🌐 Using user-provided list of services: $$SERVICES_OVERRIDE"' >> "$(DEVTOOLS_DIR)/start.sh"
176
+ @echo ' SERVICES="$$SERVICES_OVERRIDE"' >> "$(DEVTOOLS_DIR)/start.sh"
177
+ @echo 'else' >> "$(DEVTOOLS_DIR)/start.sh"
178
+ @echo ' echo "📝 Selecting services..."' >> "$(DEVTOOLS_DIR)/start.sh"
179
+ @echo ' SERVICES=$$($(PICK_SERVICES))' >> "$(DEVTOOLS_DIR)/start.sh"
180
+ @echo 'fi' >> "$(DEVTOOLS_DIR)/start.sh"
181
+ @echo 'PATH="$(MINIKUBE_DIR):$(TILT_DIR):$$PATH" $(MINIKUBE) tunnel &' >> $(DEVTOOLS_DIR)/start.sh
182
+ @echo 'echo -e "🚀 Starting Tilt with selected services..."' >> $(DEVTOOLS_DIR)/start.sh
183
+ @echo 'echo -e "\033[1;38;5;46m\n🔥 \033[1;38;5;196mNext Steps:\033[0;38;5;46m Use \033[3mmetaflow-dev shell\033[23m to switch to the development\n environment'\''s shell and start executing your Metaflow flows.\n\033[0m"' >> "$(DEVTOOLS_DIR)/start.sh"
184
+ @echo 'PATH="$(MINIKUBE_DIR):$(TILT_DIR):$$PATH" SERVICES="$$SERVICES" tilt up -f $(TILTFILE)' >> $(DEVTOOLS_DIR)/start.sh
185
+ @echo 'wait' >> $(DEVTOOLS_DIR)/start.sh
186
+ @chmod +x $(DEVTOOLS_DIR)/start.sh
187
+ @$(DEVTOOLS_DIR)/start.sh
188
+
189
+ down:
190
+ @echo "🛑 Stopping all services..."
191
+ @-pkill -f "$(MINIKUBE) tunnel" 2>/dev/null || true
192
+ @echo "⏹️ Stopping Tilt..."
193
+ -PATH="$(MINIKUBE_DIR):$(TILT_DIR):$$PATH" tilt down -f $(TILTFILE)
194
+ @echo "🧹 Cleaning up Minikube..."
195
+ $(MAKE_CMD) teardown-minikube
196
+ @echo "🗑️ Removing Tilt binary and directory..."
197
+ -rm -rf $(TILT_DIR)
198
+ @echo "🧹 Removing temporary scripts..."
199
+ -rm -rf $(DEVTOOLS_DIR)
200
+ @echo "✨ All done!"
201
+
202
+ shell: setup-tilt
203
+ @echo "⏳ Checking if development environment is up..."
204
+ @set -e; \
205
+ for i in $$(seq 1 90); do \
206
+ if "$(TILT)" get session >/dev/null 2>&1; then \
207
+ found_session=1; \
208
+ break; \
209
+ else \
210
+ sleep 2; \
211
+ fi; \
212
+ done; \
213
+ if [ -z "$${found_session}" ]; then \
214
+ echo "❌ Development environment is not up."; \
215
+ echo " Please run 'metaflow-dev up' in another terminal, then re-run 'metaflow-dev shell'."; \
216
+ exit 1; \
217
+ fi
218
+ @echo "⏳ Waiting for development environment to be ready..."
219
+ @while true; do \
220
+ "$(TILT)" get uiresource generate-configs >/dev/null 2>&1; \
221
+ status=$$?; \
222
+ if [ $$status -eq 0 ]; then \
223
+ "$(TILT)" wait --for=condition=Ready uiresource/generate-configs; \
224
+ break; \
225
+ elif [ $$status -eq 127 ]; then \
226
+ echo "❌ Development environment is not up."; \
227
+ echo " Please run 'metaflow-dev up' in another terminal, then re-run 'metaflow-dev shell'."; \
228
+ exit 1; \
229
+ else \
230
+ sleep 1; \
231
+ fi; \
232
+ done
233
+ @echo "🔧 Starting a new shell for development environment..."
234
+ @bash -c '\
235
+ if [ -n "$$SHELL" ]; then \
236
+ user_shell="$$SHELL"; \
237
+ else \
238
+ user_shell="$(SHELL)"; \
239
+ fi; \
240
+ echo "🔎 Using $$user_shell for interactive session."; \
241
+ echo "🐍 If you installed Metaflow in a virtual environment, activate it now."; \
242
+ if [ -f "$(DEVTOOLS_DIR)/aws_config" ]; then \
243
+ env METAFLOW_HOME="$(DEVTOOLS_DIR)" \
244
+ METAFLOW_PROFILE=local \
245
+ AWS_CONFIG_FILE="$(DEVTOOLS_DIR)/aws_config" \
246
+ "$$user_shell" -i; \
247
+ else \
248
+ env METAFLOW_HOME="$(DEVTOOLS_DIR)" \
249
+ METAFLOW_PROFILE=local \
250
+ "$$user_shell" -i; \
251
+ fi'
252
+
253
+
254
+ # @echo '$(MAKE_CMD) create-dev-shell' >> $(DEVTOOLS_DIR)/start.sh
255
+ # @echo 'rm -f /tmp/metaflow-devshell-*' >> $(DEVTOOLS_DIR)/start.sh
256
+ create-dev-shell: setup-tilt
257
+ @bash -c '\
258
+ SHELL_PATH=/tmp/metaflow-dev-shell-$$$$ && \
259
+ echo "#!/bin/bash" > $$SHELL_PATH && \
260
+ echo "set -e" >> $$SHELL_PATH && \
261
+ echo "" >> $$SHELL_PATH && \
262
+ echo "echo \"⏳ Checking if development environment is up...\"" >> $$SHELL_PATH && \
263
+ echo "if ! $(TILT) get session >/dev/null 2>&1; then" >> $$SHELL_PATH && \
264
+ echo " echo \"❌ Development environment is not up.\"" >> $$SHELL_PATH && \
265
+ echo " echo \" Please run '\''make up'\'' in another terminal, then re-run this script.\"" >> $$SHELL_PATH && \
266
+ echo " exit 1" >> $$SHELL_PATH && \
267
+ echo "fi" >> $$SHELL_PATH && \
268
+ echo "" >> $$SHELL_PATH && \
269
+ echo "echo \"⏳ Waiting for development environment to be ready...\"" >> $$SHELL_PATH && \
270
+ echo "$(TILT) wait --for=condition=Ready uiresource/generate-configs" >> $$SHELL_PATH && \
271
+ echo "" >> $$SHELL_PATH && \
272
+ echo "echo \"🔧 Starting a new shell for development environment...\"" >> $$SHELL_PATH && \
273
+ echo "if [ -n \"\$$SHELL\" ]; then" >> $$SHELL_PATH && \
274
+ echo " user_shell=\"\$$SHELL\"" >> $$SHELL_PATH && \
275
+ echo "else" >> $$SHELL_PATH && \
276
+ echo " user_shell=\"$(SHELL)\"" >> $$SHELL_PATH && \
277
+ echo "fi" >> $$SHELL_PATH && \
278
+ echo "echo \"🔎 Using \$$user_shell for interactive session.\"" >> $$SHELL_PATH && \
279
+ echo "echo \"🐍 If you installed Metaflow in a virtual environment, activate it now.\"" >> $$SHELL_PATH && \
280
+ echo "if [ -f \"$(DEVTOOLS_DIR)/aws_config\" ]; then" >> $$SHELL_PATH && \
281
+ echo " env METAFLOW_HOME=\"$(DEVTOOLS_DIR)\" \\" >> $$SHELL_PATH && \
282
+ echo " METAFLOW_PROFILE=local \\" >> $$SHELL_PATH && \
283
+ echo " AWS_CONFIG_FILE=\"$(DEVTOOLS_DIR)/aws_config\" \\" >> $$SHELL_PATH && \
284
+ echo " \"\$$user_shell\" -i" >> $$SHELL_PATH && \
285
+ echo "else" >> $$SHELL_PATH && \
286
+ echo " env METAFLOW_HOME=\"$(DEVTOOLS_DIR)\" \\" >> $$SHELL_PATH && \
287
+ echo " METAFLOW_PROFILE=local \\" >> $$SHELL_PATH && \
288
+ echo " \"\$$user_shell\" -i" >> $$SHELL_PATH && \
289
+ echo "fi" >> $$SHELL_PATH && \
290
+ chmod +x $$SHELL_PATH && \
291
+ echo "✨ Created $$SHELL_PATH" && \
292
+ echo "🔑 Execute it from ANY directory to switch to development environment shell!" \
293
+ '
294
+
295
+ ui: setup-tilt
296
+ @echo "⏳ Checking if the development environment is up..."
297
+ @if ! $(TILT) get session >/dev/null 2>&1; then \
298
+ echo "❌ Development environment is not up."; \
299
+ echo " Please run 'metaflow-dev up' in another terminal, then re-run 'metaflow-dev ui'."; \
300
+ exit 1; \
301
+ fi
302
+ @echo "⏳ Waiting for Metaflow UI to be ready..."
303
+ @while true; do \
304
+ "$(TILT)" get uiresource metaflow-ui >/dev/null 2>&1; \
305
+ status=$$?; \
306
+ if [ $$status -eq 0 ]; then \
307
+ "$(TILT)" wait --for=condition=Ready uiresource/metaflow-ui; \
308
+ break; \
309
+ elif [ $$status -eq 127 ]; then \
310
+ echo "❌ Development environment is not up."; \
311
+ echo " Please run 'metaflow-dev up' in another terminal, then re-run 'metaflow-dev shell'."; \
312
+ exit 1; \
313
+ else \
314
+ sleep 1; \
315
+ fi; \
316
+ done
317
+ @echo "🔗 Opening Metaflow UI at http://localhost:3000"
318
+ @open http://localhost:3000
319
+
320
+ .PHONY: install-helm setup-minikube setup-tilt teardown-minikube tunnel up down check-docker install-curl install-gum install-brew up down dashboard shell ui help
321
+
322
+ .DEFAULT_GOAL := up