metaflow 2.13.1__tar.gz → 2.13.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. {metaflow-2.13.1/metaflow.egg-info → metaflow-2.13.2}/PKG-INFO +2 -2
  2. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/extension_support/plugins.py +1 -0
  3. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/parameters.py +1 -1
  4. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/__init__.py +13 -0
  5. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/argo/argo_workflows.py +12 -0
  6. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/pypi/micromamba.py +5 -1
  7. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/runner/metaflow_runner.py +25 -3
  8. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/runtime.py +18 -8
  9. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/user_configs/config_parameters.py +23 -6
  10. metaflow-2.13.2/metaflow/version.py +1 -0
  11. {metaflow-2.13.1 → metaflow-2.13.2/metaflow.egg-info}/PKG-INFO +2 -2
  12. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow.egg-info/requires.txt +1 -1
  13. metaflow-2.13.1/metaflow/version.py +0 -1
  14. {metaflow-2.13.1 → metaflow-2.13.2}/LICENSE +0 -0
  15. {metaflow-2.13.1 → metaflow-2.13.2}/MANIFEST.in +0 -0
  16. {metaflow-2.13.1 → metaflow-2.13.2}/README.md +0 -0
  17. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/R.py +0 -0
  18. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/__init__.py +0 -0
  19. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/__init__.py +0 -0
  20. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/__init__.py +0 -0
  21. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/_bashcomplete.py +0 -0
  22. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/_compat.py +0 -0
  23. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/_termui_impl.py +0 -0
  24. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/_textwrap.py +0 -0
  25. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/_unicodefun.py +0 -0
  26. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/_winconsole.py +0 -0
  27. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/core.py +0 -0
  28. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/decorators.py +0 -0
  29. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/exceptions.py +0 -0
  30. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/formatting.py +0 -0
  31. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/globals.py +0 -0
  32. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/parser.py +0 -0
  33. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/termui.py +0 -0
  34. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/testing.py +0 -0
  35. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/types.py +0 -0
  36. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/click/utils.py +0 -0
  37. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/importlib_metadata/__init__.py +0 -0
  38. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/importlib_metadata/_adapters.py +0 -0
  39. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/importlib_metadata/_collections.py +0 -0
  40. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/importlib_metadata/_compat.py +0 -0
  41. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/importlib_metadata/_functools.py +0 -0
  42. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/importlib_metadata/_itertools.py +0 -0
  43. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/importlib_metadata/_meta.py +0 -0
  44. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/importlib_metadata/_text.py +0 -0
  45. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/importlib_metadata/py.typed +0 -0
  46. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/packaging/__init__.py +0 -0
  47. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/packaging/_elffile.py +0 -0
  48. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/packaging/_manylinux.py +0 -0
  49. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/packaging/_musllinux.py +0 -0
  50. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/packaging/_parser.py +0 -0
  51. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/packaging/_structures.py +0 -0
  52. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/packaging/_tokenizer.py +0 -0
  53. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/packaging/markers.py +0 -0
  54. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/packaging/py.typed +0 -0
  55. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/packaging/requirements.py +0 -0
  56. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/packaging/specifiers.py +0 -0
  57. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/packaging/tags.py +0 -0
  58. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/packaging/utils.py +0 -0
  59. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/packaging/version.py +0 -0
  60. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/typeguard/__init__.py +0 -0
  61. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/typeguard/_checkers.py +0 -0
  62. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/typeguard/_config.py +0 -0
  63. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/typeguard/_decorators.py +0 -0
  64. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/typeguard/_exceptions.py +0 -0
  65. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/typeguard/_functions.py +0 -0
  66. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/typeguard/_importhook.py +0 -0
  67. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/typeguard/_memo.py +0 -0
  68. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/typeguard/_pytest_plugin.py +0 -0
  69. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/typeguard/_suppression.py +0 -0
  70. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/typeguard/_transformer.py +0 -0
  71. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/typeguard/_union_transformer.py +0 -0
  72. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/typeguard/_utils.py +0 -0
  73. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/typeguard/py.typed +0 -0
  74. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/typing_extensions.py +0 -0
  75. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_5/__init__.py +0 -0
  76. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_5/importlib_metadata/__init__.py +0 -0
  77. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_5/importlib_metadata/_compat.py +0 -0
  78. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_5/zipp.py +0 -0
  79. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_6/__init__.py +0 -0
  80. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py +0 -0
  81. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py +0 -0
  82. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py +0 -0
  83. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py +0 -0
  84. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py +0 -0
  85. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py +0 -0
  86. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_6/importlib_metadata/_meta.py +0 -0
  87. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_6/importlib_metadata/_text.py +0 -0
  88. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_6/importlib_metadata/py.typed +0 -0
  89. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_6/typing_extensions.py +0 -0
  90. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/v3_6/zipp.py +0 -0
  91. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/_vendor/zipp.py +0 -0
  92. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cards.py +0 -0
  93. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cli.py +0 -0
  94. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cli_args.py +0 -0
  95. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cli_components/__init__.py +0 -0
  96. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cli_components/dump_cmd.py +0 -0
  97. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cli_components/init_cmd.py +0 -0
  98. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cli_components/run_cmds.py +0 -0
  99. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cli_components/step_cmd.py +0 -0
  100. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cli_components/utils.py +0 -0
  101. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/client/__init__.py +0 -0
  102. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/client/core.py +0 -0
  103. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/client/filecache.py +0 -0
  104. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/clone_util.py +0 -0
  105. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cmd/__init__.py +0 -0
  106. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cmd/configure_cmd.py +0 -0
  107. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cmd/develop/__init__.py +0 -0
  108. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cmd/develop/stub_generator.py +0 -0
  109. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cmd/develop/stubs.py +0 -0
  110. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cmd/main_cli.py +0 -0
  111. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cmd/tutorials_cmd.py +0 -0
  112. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cmd/util.py +0 -0
  113. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/cmd_with_io.py +0 -0
  114. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/datastore/__init__.py +0 -0
  115. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/datastore/content_addressed_store.py +0 -0
  116. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/datastore/datastore_set.py +0 -0
  117. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/datastore/datastore_storage.py +0 -0
  118. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/datastore/exceptions.py +0 -0
  119. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/datastore/flow_datastore.py +0 -0
  120. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/datastore/inputs.py +0 -0
  121. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/datastore/task_datastore.py +0 -0
  122. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/debug.py +0 -0
  123. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/decorators.py +0 -0
  124. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/event_logger.py +0 -0
  125. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/events.py +0 -0
  126. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/exception.py +0 -0
  127. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/extension_support/__init__.py +0 -0
  128. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/extension_support/_empty_file.py +0 -0
  129. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/extension_support/cmd.py +0 -0
  130. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/extension_support/integrations.py +0 -0
  131. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/flowspec.py +0 -0
  132. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/graph.py +0 -0
  133. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/includefile.py +0 -0
  134. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/info_file.py +0 -0
  135. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/integrations.py +0 -0
  136. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/lint.py +0 -0
  137. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/metadata_provider/__init__.py +0 -0
  138. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/metadata_provider/heartbeat.py +0 -0
  139. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/metadata_provider/metadata.py +0 -0
  140. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/metadata_provider/util.py +0 -0
  141. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/metaflow_config.py +0 -0
  142. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/metaflow_config_funcs.py +0 -0
  143. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/metaflow_current.py +0 -0
  144. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/metaflow_environment.py +0 -0
  145. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/metaflow_profile.py +0 -0
  146. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/metaflow_version.py +0 -0
  147. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/mflog/__init__.py +0 -0
  148. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/mflog/mflog.py +0 -0
  149. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/mflog/save_logs.py +0 -0
  150. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/mflog/save_logs_periodically.py +0 -0
  151. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/mflog/tee.py +0 -0
  152. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/monitor.py +0 -0
  153. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/multicore_utils.py +0 -0
  154. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/package.py +0 -0
  155. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/airflow/__init__.py +0 -0
  156. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/airflow/airflow.py +0 -0
  157. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/airflow/airflow_cli.py +0 -0
  158. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/airflow/airflow_decorator.py +0 -0
  159. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/airflow/airflow_utils.py +0 -0
  160. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/airflow/dag.py +0 -0
  161. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/airflow/exception.py +0 -0
  162. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/airflow/plumbing/__init__.py +0 -0
  163. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/airflow/plumbing/set_parameters.py +0 -0
  164. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/airflow/sensors/__init__.py +0 -0
  165. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/airflow/sensors/base_sensor.py +0 -0
  166. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/airflow/sensors/external_task_sensor.py +0 -0
  167. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/airflow/sensors/s3_sensor.py +0 -0
  168. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/argo/__init__.py +0 -0
  169. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/argo/argo_client.py +0 -0
  170. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/argo/argo_events.py +0 -0
  171. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/argo/argo_workflows_cli.py +0 -0
  172. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/argo/argo_workflows_decorator.py +0 -0
  173. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/argo/argo_workflows_deployer.py +0 -0
  174. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/argo/argo_workflows_deployer_objects.py +0 -0
  175. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/argo/capture_error.py +0 -0
  176. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/argo/generate_input_paths.py +0 -0
  177. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/argo/jobset_input_paths.py +0 -0
  178. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/__init__.py +0 -0
  179. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/aws_client.py +0 -0
  180. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/aws_utils.py +0 -0
  181. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/batch/__init__.py +0 -0
  182. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/batch/batch.py +0 -0
  183. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/batch/batch_cli.py +0 -0
  184. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/batch/batch_client.py +0 -0
  185. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/batch/batch_decorator.py +0 -0
  186. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/secrets_manager/__init__.py +0 -0
  187. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py +0 -0
  188. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/step_functions/__init__.py +0 -0
  189. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/step_functions/dynamo_db_client.py +0 -0
  190. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/step_functions/event_bridge_client.py +0 -0
  191. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/step_functions/production_token.py +0 -0
  192. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/step_functions/schedule_decorator.py +0 -0
  193. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/step_functions/set_batch_environment.py +0 -0
  194. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/step_functions/step_functions.py +0 -0
  195. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/step_functions/step_functions_cli.py +0 -0
  196. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/step_functions/step_functions_client.py +0 -0
  197. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/step_functions/step_functions_decorator.py +0 -0
  198. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/step_functions/step_functions_deployer.py +0 -0
  199. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +0 -0
  200. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/azure/__init__.py +0 -0
  201. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/azure/azure_credential.py +0 -0
  202. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/azure/azure_exceptions.py +0 -0
  203. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/azure/azure_secret_manager_secrets_provider.py +0 -0
  204. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/azure/azure_tail.py +0 -0
  205. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/azure/azure_utils.py +0 -0
  206. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/azure/blob_service_client_factory.py +0 -0
  207. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/azure/includefile_support.py +0 -0
  208. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/__init__.py +0 -0
  209. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_cli.py +0 -0
  210. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_client.py +0 -0
  211. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_creator.py +0 -0
  212. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_datastore.py +0 -0
  213. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_decorator.py +0 -0
  214. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_modules/__init__.py +0 -0
  215. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_modules/base.html +0 -0
  216. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_modules/basic.py +0 -0
  217. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_modules/bundle.css +0 -0
  218. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_modules/card.py +0 -0
  219. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_modules/chevron/__init__.py +0 -0
  220. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_modules/chevron/main.py +0 -0
  221. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_modules/chevron/metadata.py +0 -0
  222. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_modules/chevron/renderer.py +0 -0
  223. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_modules/chevron/tokenizer.py +0 -0
  224. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_modules/components.py +0 -0
  225. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_modules/convert_to_native_type.py +0 -0
  226. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_modules/main.js +0 -0
  227. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_modules/renderer_tools.py +0 -0
  228. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_modules/test_cards.py +0 -0
  229. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_resolver.py +0 -0
  230. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_server.py +0 -0
  231. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/card_viewer/viewer.html +0 -0
  232. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/component_serializer.py +0 -0
  233. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/cards/exception.py +0 -0
  234. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/catch_decorator.py +0 -0
  235. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/datastores/__init__.py +0 -0
  236. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/datastores/azure_storage.py +0 -0
  237. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/datastores/gs_storage.py +0 -0
  238. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/datastores/local_storage.py +0 -0
  239. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/datastores/s3_storage.py +0 -0
  240. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/datatools/__init__.py +0 -0
  241. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/datatools/local.py +0 -0
  242. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/datatools/s3/__init__.py +0 -0
  243. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/datatools/s3/s3.py +0 -0
  244. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/datatools/s3/s3op.py +0 -0
  245. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/datatools/s3/s3tail.py +0 -0
  246. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/datatools/s3/s3util.py +0 -0
  247. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/debug_logger.py +0 -0
  248. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/debug_monitor.py +0 -0
  249. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/__init__.py +0 -0
  250. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/client.py +0 -0
  251. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/client_modules.py +0 -0
  252. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/communication/__init__.py +0 -0
  253. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/communication/bytestream.py +0 -0
  254. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/communication/channel.py +0 -0
  255. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/communication/socket_bytestream.py +0 -0
  256. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/communication/utils.py +0 -0
  257. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py +0 -0
  258. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +0 -0
  259. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +0 -0
  260. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py +0 -0
  261. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +0 -0
  262. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/consts.py +0 -0
  263. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/data_transferer.py +0 -0
  264. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/exception_transferer.py +0 -0
  265. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/override_decorators.py +0 -0
  266. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/server.py +0 -0
  267. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/stub.py +0 -0
  268. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/env_escape/utils.py +0 -0
  269. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/environment_decorator.py +0 -0
  270. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/events_decorator.py +0 -0
  271. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/frameworks/__init__.py +0 -0
  272. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/frameworks/pytorch.py +0 -0
  273. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/gcp/__init__.py +0 -0
  274. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +0 -0
  275. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/gcp/gs_exceptions.py +0 -0
  276. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/gcp/gs_storage_client_factory.py +0 -0
  277. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/gcp/gs_tail.py +0 -0
  278. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/gcp/gs_utils.py +0 -0
  279. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/gcp/includefile_support.py +0 -0
  280. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/kubernetes/__init__.py +0 -0
  281. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/kubernetes/kube_utils.py +0 -0
  282. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/kubernetes/kubernetes.py +0 -0
  283. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/kubernetes/kubernetes_cli.py +0 -0
  284. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/kubernetes/kubernetes_client.py +0 -0
  285. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/kubernetes/kubernetes_decorator.py +0 -0
  286. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/kubernetes/kubernetes_job.py +0 -0
  287. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/kubernetes/kubernetes_jobsets.py +0 -0
  288. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/logs_cli.py +0 -0
  289. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/metadata_providers/__init__.py +0 -0
  290. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/metadata_providers/local.py +0 -0
  291. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/metadata_providers/service.py +0 -0
  292. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/package_cli.py +0 -0
  293. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/parallel_decorator.py +0 -0
  294. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/project_decorator.py +0 -0
  295. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/pypi/__init__.py +0 -0
  296. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/pypi/bootstrap.py +0 -0
  297. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/pypi/conda_decorator.py +0 -0
  298. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/pypi/conda_environment.py +0 -0
  299. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/pypi/pip.py +0 -0
  300. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/pypi/pypi_decorator.py +0 -0
  301. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/pypi/pypi_environment.py +0 -0
  302. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/pypi/utils.py +0 -0
  303. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/resources_decorator.py +0 -0
  304. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/retry_decorator.py +0 -0
  305. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/secrets/__init__.py +0 -0
  306. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/secrets/inline_secrets_provider.py +0 -0
  307. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/secrets/secrets_decorator.py +0 -0
  308. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/storage_executor.py +0 -0
  309. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/tag_cli.py +0 -0
  310. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/test_unbounded_foreach_decorator.py +0 -0
  311. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/plugins/timeout_decorator.py +0 -0
  312. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/procpoll.py +0 -0
  313. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/py.typed +0 -0
  314. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/pylint_wrapper.py +0 -0
  315. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/runner/__init__.py +0 -0
  316. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/runner/click_api.py +0 -0
  317. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/runner/deployer.py +0 -0
  318. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/runner/deployer_impl.py +0 -0
  319. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/runner/nbdeploy.py +0 -0
  320. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/runner/nbrun.py +0 -0
  321. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/runner/subprocess_manager.py +0 -0
  322. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/runner/utils.py +0 -0
  323. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/sidecar/__init__.py +0 -0
  324. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/sidecar/sidecar.py +0 -0
  325. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/sidecar/sidecar_messages.py +0 -0
  326. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/sidecar/sidecar_subprocess.py +0 -0
  327. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/sidecar/sidecar_worker.py +0 -0
  328. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/system/__init__.py +0 -0
  329. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/system/system_logger.py +0 -0
  330. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/system/system_monitor.py +0 -0
  331. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/system/system_utils.py +0 -0
  332. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tagging_util.py +0 -0
  333. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/task.py +0 -0
  334. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tracing/__init__.py +0 -0
  335. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tracing/propagator.py +0 -0
  336. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tracing/span_exporter.py +0 -0
  337. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tracing/tracing_modules.py +0 -0
  338. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tuple_util.py +0 -0
  339. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/00-helloworld/README.md +0 -0
  340. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/00-helloworld/helloworld.py +0 -0
  341. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/01-playlist/README.md +0 -0
  342. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/01-playlist/movies.csv +0 -0
  343. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/01-playlist/playlist.ipynb +0 -0
  344. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/01-playlist/playlist.py +0 -0
  345. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/02-statistics/README.md +0 -0
  346. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/02-statistics/movies.csv +0 -0
  347. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/02-statistics/stats.ipynb +0 -0
  348. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/02-statistics/stats.py +0 -0
  349. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/03-playlist-redux/README.md +0 -0
  350. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/03-playlist-redux/playlist.py +0 -0
  351. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/04-playlist-plus/README.md +0 -0
  352. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/04-playlist-plus/playlist.py +0 -0
  353. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/05-hello-cloud/README.md +0 -0
  354. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/05-hello-cloud/hello-cloud.ipynb +0 -0
  355. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/05-hello-cloud/hello-cloud.py +0 -0
  356. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/06-statistics-redux/README.md +0 -0
  357. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/06-statistics-redux/stats.ipynb +0 -0
  358. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/07-worldview/README.md +0 -0
  359. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/07-worldview/worldview.ipynb +0 -0
  360. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/08-autopilot/README.md +0 -0
  361. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/tutorials/08-autopilot/autopilot.ipynb +0 -0
  362. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/unbounded_foreach.py +0 -0
  363. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/user_configs/__init__.py +0 -0
  364. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/user_configs/config_decorators.py +0 -0
  365. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/user_configs/config_options.py +0 -0
  366. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/util.py +0 -0
  367. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow/vendor.py +0 -0
  368. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow.egg-info/SOURCES.txt +0 -0
  369. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow.egg-info/dependency_links.txt +0 -0
  370. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow.egg-info/entry_points.txt +0 -0
  371. {metaflow-2.13.1 → metaflow-2.13.2}/metaflow.egg-info/top_level.txt +0 -0
  372. {metaflow-2.13.1 → metaflow-2.13.2}/setup.cfg +0 -0
  373. {metaflow-2.13.1 → metaflow-2.13.2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: metaflow
3
- Version: 2.13.1
3
+ Version: 2.13.2
4
4
  Summary: Metaflow: More Data Science, Less Engineering
5
5
  Author: Metaflow Developers
6
6
  Author-email: help@metaflow.org
@@ -26,7 +26,7 @@ License-File: LICENSE
26
26
  Requires-Dist: requests
27
27
  Requires-Dist: boto3
28
28
  Provides-Extra: stubs
29
- Requires-Dist: metaflow-stubs==2.13.1; extra == "stubs"
29
+ Requires-Dist: metaflow-stubs==2.13.2; extra == "stubs"
30
30
 
31
31
  ![Metaflow_Logo_Horizontal_FullColor_Ribbon_Dark_RGB](https://user-images.githubusercontent.com/763451/89453116-96a57e00-d713-11ea-9fa6-82b29d4d6eff.png)
32
32
 
@@ -197,6 +197,7 @@ _plugin_categories = {
197
197
  "cli": lambda x: (
198
198
  list(x.commands)[0] if len(x.commands) == 1 else "too many commands"
199
199
  ),
200
+ "runner_cli": lambda x: x.name,
200
201
  }
201
202
 
202
203
 
@@ -369,7 +369,7 @@ class Parameter(object):
369
369
  # Resolve any value from configurations
370
370
  self.kwargs = unpack_delayed_evaluator(self.kwargs, ignore_errors=ignore_errors)
371
371
  # Do it one item at a time so errors are ignored at that level (as opposed to
372
- # at the entire kwargs leve)
372
+ # at the entire kwargs level)
373
373
  self.kwargs = {
374
374
  k: resolve_delayed_evaluator(v, ignore_errors=ignore_errors)
375
375
  for k, v in self.kwargs.items()
@@ -19,6 +19,11 @@ CLIS_DESC = [
19
19
  ("logs", ".logs_cli.cli"),
20
20
  ]
21
21
 
22
+ # Add additional commands to the runner here
23
+ # These will be accessed using Runner().<command>()
24
+ RUNNER_CLIS_DESC = []
25
+
26
+
22
27
  from .test_unbounded_foreach_decorator import InternalTestUnboundedForeachInput
23
28
 
24
29
  # Add new step decorators here
@@ -168,6 +173,14 @@ def get_plugin_cli_path():
168
173
  return resolve_plugins("cli", path_only=True)
169
174
 
170
175
 
176
+ def get_runner_cli():
177
+ return resolve_plugins("runner_cli")
178
+
179
+
180
+ def get_runner_cli_path():
181
+ return resolve_plugins("runner_cli", path_only=True)
182
+
183
+
171
184
  STEP_DECORATORS = resolve_plugins("step_decorator")
172
185
  FLOW_DECORATORS = resolve_plugins("flow_decorator")
173
186
  ENVIRONMENTS = resolve_plugins("environment")
@@ -743,6 +743,17 @@ class ArgoWorkflows(object):
743
743
  )
744
744
  }
745
745
  )
746
+ try:
747
+ # Build the DAG based on the DAGNodes given by the FlowGraph for the found FlowSpec class.
748
+ _steps_info, graph_structure = self.graph.output_steps()
749
+ graph_info = {
750
+ # for the time being, we only need the graph_structure. Being mindful of annotation size limits we do not include anything extra.
751
+ "graph_structure": graph_structure
752
+ }
753
+ except Exception:
754
+ graph_info = None
755
+
756
+ dag_annotation = {"metaflow/dag": json.dumps(graph_info)}
746
757
 
747
758
  return (
748
759
  WorkflowTemplate()
@@ -758,6 +769,7 @@ class ArgoWorkflows(object):
758
769
  .annotations(self._base_annotations)
759
770
  .labels(self._base_labels)
760
771
  .label("app.kubernetes.io/name", "metaflow-flow")
772
+ .annotations(dag_annotation)
761
773
  )
762
774
  .spec(
763
775
  WorkflowSpec()
@@ -1,6 +1,7 @@
1
1
  import functools
2
2
  import json
3
3
  import os
4
+ import re
4
5
  import subprocess
5
6
  import tempfile
6
7
  import time
@@ -23,6 +24,8 @@ class MicromambaException(MetaflowException):
23
24
 
24
25
  GLIBC_VERSION = os.environ.get("CONDA_OVERRIDE_GLIBC", "2.38")
25
26
 
27
+ _double_equal_match = re.compile("==(?=[<=>!~])")
28
+
26
29
 
27
30
  class Micromamba(object):
28
31
  def __init__(self, logger=None):
@@ -101,7 +104,8 @@ class Micromamba(object):
101
104
  cmd.append("--channel=%s" % channel)
102
105
 
103
106
  for package, version in packages.items():
104
- cmd.append("%s==%s" % (package, version))
107
+ version_string = "%s==%s" % (package, version)
108
+ cmd.append(_double_equal_match.sub("", version_string))
105
109
  if python:
106
110
  cmd.append("python==%s" % python)
107
111
  # TODO: Ensure a human readable message is returned when the environment
@@ -7,6 +7,8 @@ from typing import Dict, Iterator, Optional, Tuple
7
7
 
8
8
  from metaflow import Run
9
9
 
10
+ from metaflow.plugins import get_runner_cli
11
+
10
12
  from .utils import (
11
13
  temporary_fifo,
12
14
  handle_timeout,
@@ -187,7 +189,27 @@ class ExecutingRun(object):
187
189
  yield position, line
188
190
 
189
191
 
190
- class Runner(object):
192
+ class RunnerMeta(type):
193
+ def __new__(mcs, name, bases, dct):
194
+ cls = super().__new__(mcs, name, bases, dct)
195
+
196
+ def _injected_method(subcommand_name, runner_subcommand):
197
+ def f(self, *args, **kwargs):
198
+ return runner_subcommand(self, *args, **kwargs)
199
+
200
+ f.__doc__ = runner_subcommand.__doc__ or ""
201
+ f.__name__ = subcommand_name
202
+
203
+ return f
204
+
205
+ for runner_subcommand in get_runner_cli():
206
+ method_name = runner_subcommand.name.replace("-", "_")
207
+ setattr(cls, method_name, _injected_method(method_name, runner_subcommand))
208
+
209
+ return cls
210
+
211
+
212
+ class Runner(metaclass=RunnerMeta):
191
213
  """
192
214
  Metaflow's Runner API that presents a programmatic interface
193
215
  to run flows and perform other operations either synchronously or asynchronously.
@@ -337,7 +359,7 @@ class Runner(object):
337
359
 
338
360
  return self.__get_executing_run(attribute_file_fd, command_obj)
339
361
 
340
- def resume(self, **kwargs):
362
+ def resume(self, **kwargs) -> ExecutingRun:
341
363
  """
342
364
  Blocking resume execution of the run.
343
365
  This method will wait until the resumed run has completed execution.
@@ -400,7 +422,7 @@ class Runner(object):
400
422
 
401
423
  return await self.__async_get_executing_run(attribute_file_fd, command_obj)
402
424
 
403
- async def async_resume(self, **kwargs):
425
+ async def async_resume(self, **kwargs) -> ExecutingRun:
404
426
  """
405
427
  Non-blocking resume execution of the run.
406
428
  This method will return as soon as the resume has launched.
@@ -125,7 +125,7 @@ class NativeRuntime(object):
125
125
  self._clone_run_id = clone_run_id
126
126
  self._clone_only = clone_only
127
127
  self._cloned_tasks = []
128
- self._cloned_task_index = set()
128
+ self._ran_or_scheduled_task_index = set()
129
129
  self._reentrant = reentrant
130
130
  self._run_url = None
131
131
 
@@ -297,7 +297,7 @@ class NativeRuntime(object):
297
297
  task.ubf_context = ubf_context
298
298
  new_task_id = task.task_id
299
299
  self._cloned_tasks.append(task)
300
- self._cloned_task_index.add(cloned_task_pathspec_index)
300
+ self._ran_or_scheduled_task_index.add(cloned_task_pathspec_index)
301
301
  task_pathspec = "{}/{}/{}".format(self._run_id, step_name, new_task_id)
302
302
  else:
303
303
  task_pathspec = "{}/{}/{}".format(self._run_id, step_name, new_task_id)
@@ -384,8 +384,10 @@ class NativeRuntime(object):
384
384
  and step_name != "_parameters"
385
385
  and (step_name not in self._steps_to_rerun)
386
386
  ):
387
- # "_unbounded_foreach" is a special flag to indicate that the transition is an unbounded foreach.
388
- # Both parent and splitted children tasks will have this flag set. The splitted control/mapper tasks
387
+ # "_unbounded_foreach" is a special flag to indicate that the transition
388
+ # is an unbounded foreach.
389
+ # Both parent and splitted children tasks will have this flag set.
390
+ # The splitted control/mapper tasks
389
391
  # are not foreach types because UBF is always followed by a join step.
390
392
  is_ubf_task = (
391
393
  "_unbounded_foreach" in task_ds and task_ds["_unbounded_foreach"]
@@ -647,10 +649,18 @@ class NativeRuntime(object):
647
649
  # Store the parameters needed for task creation, so that pushing on items
648
650
  # onto the run_queue is an inexpensive operation.
649
651
  def _queue_push(self, step, task_kwargs, index=None):
650
- # If the to-be-pushed task is already cloned before, we don't need
651
- # to re-run it.
652
- if index and index in self._cloned_task_index:
653
- return
652
+ # In the case of cloning, we set all the cloned tasks as the
653
+ # finished tasks when pushing tasks using _queue_tasks. This means that we
654
+ # could potentially try to push the same task multiple times (for example
655
+ # if multiple parents of a join are cloned). We therefore keep track of what
656
+ # has executed (been cloned) or what has been scheduled and avoid scheduling
657
+ # it again.
658
+ if index:
659
+ if index in self._ran_or_scheduled_task_index:
660
+ # It has already run or been scheduled
661
+ return
662
+ # Note that we are scheduling this to run
663
+ self._ran_or_scheduled_task_index.add(index)
654
664
  self._run_queue.insert(0, (step, task_kwargs))
655
665
  # For foreaches, this will happen multiple time but is ok, becomes a no-op
656
666
  self._unprocessed_steps.discard(step)
@@ -183,7 +183,7 @@ class DelayEvaluator(collections.abc.Mapping):
183
183
 
184
184
  def __getattr__(self, name):
185
185
  if self._access is None:
186
- raise AttributeError()
186
+ raise AttributeError(name)
187
187
  self._access.append(name)
188
188
  return self
189
189
 
@@ -336,6 +336,8 @@ class Config(Parameter, collections.abc.Mapping):
336
336
  self.parser = parser
337
337
  self._computed_value = None
338
338
 
339
+ self._delayed_evaluator = None
340
+
339
341
  def load_parameter(self, v):
340
342
  if v is None:
341
343
  return None
@@ -344,22 +346,37 @@ class Config(Parameter, collections.abc.Mapping):
344
346
  def _store_value(self, v: Any) -> None:
345
347
  self._computed_value = v
346
348
 
349
+ def _init_delayed_evaluator(self) -> None:
350
+ if self._delayed_evaluator is None:
351
+ self._delayed_evaluator = DelayEvaluator(self.name.lower())
352
+
347
353
  # Support <config>.<var> syntax
348
354
  def __getattr__(self, name):
349
- return DelayEvaluator(self.name.lower()).__getattr__(name)
355
+ # Need to return a new DelayEvaluator everytime because the evaluator will
356
+ # contain the "path" (ie: .name) and can be further accessed.
357
+ return getattr(DelayEvaluator(self.name.lower()), name)
350
358
 
351
- # Next three methods are to implement mapping to support **<config> syntax
359
+ # Next three methods are to implement mapping to support **<config> syntax. We
360
+ # need to be careful, however, to also support a regular `config["key"]` syntax
361
+ # which calls into `__getitem__` and therefore behaves like __getattr__ above.
352
362
  def __iter__(self):
353
- return iter(DelayEvaluator(self.name.lower()))
363
+ self._init_delayed_evaluator()
364
+ yield from self._delayed_evaluator
354
365
 
355
366
  def __len__(self):
356
- return len(DelayEvaluator(self.name.lower()))
367
+ self._init_delayed_evaluator()
368
+ return len(self._delayed_evaluator)
357
369
 
358
370
  def __getitem__(self, key):
371
+ self._init_delayed_evaluator()
372
+ if key.startswith(UNPACK_KEY):
373
+ return self._delayed_evaluator[key]
359
374
  return DelayEvaluator(self.name.lower())[key]
360
375
 
361
376
 
362
377
  def resolve_delayed_evaluator(v: Any, ignore_errors: bool = False) -> Any:
378
+ # NOTE: We don't ignore errors in downstream calls because we want to have either
379
+ # all or nothing for the top-level call by the user.
363
380
  try:
364
381
  if isinstance(v, DelayEvaluator):
365
382
  return v()
@@ -397,7 +414,7 @@ def unpack_delayed_evaluator(
397
414
  else:
398
415
  # k.startswith(UNPACK_KEY)
399
416
  try:
400
- result.update(resolve_delayed_evaluator(v[k]))
417
+ result.update(resolve_delayed_evaluator(v))
401
418
  except Exception as e:
402
419
  if ignore_errors:
403
420
  continue
@@ -0,0 +1 @@
1
+ metaflow_version = "2.13.2"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: metaflow
3
- Version: 2.13.1
3
+ Version: 2.13.2
4
4
  Summary: Metaflow: More Data Science, Less Engineering
5
5
  Author: Metaflow Developers
6
6
  Author-email: help@metaflow.org
@@ -26,7 +26,7 @@ License-File: LICENSE
26
26
  Requires-Dist: requests
27
27
  Requires-Dist: boto3
28
28
  Provides-Extra: stubs
29
- Requires-Dist: metaflow-stubs==2.13.1; extra == "stubs"
29
+ Requires-Dist: metaflow-stubs==2.13.2; extra == "stubs"
30
30
 
31
31
  ![Metaflow_Logo_Horizontal_FullColor_Ribbon_Dark_RGB](https://user-images.githubusercontent.com/763451/89453116-96a57e00-d713-11ea-9fa6-82b29d4d6eff.png)
32
32
 
@@ -2,4 +2,4 @@ requests
2
2
  boto3
3
3
 
4
4
  [stubs]
5
- metaflow-stubs==2.13.1
5
+ metaflow-stubs==2.13.2
@@ -1 +0,0 @@
1
- metaflow_version = "2.13.1"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes