metaflow 2.15.8__tar.gz → 2.15.10__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.
- {metaflow-2.15.8/metaflow.egg-info → metaflow-2.15.10}/PKG-INFO +2 -2
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/argo/argo_workflows.py +11 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/argo/argo_workflows_cli.py +1 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/datatools/s3/s3.py +8 -1
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/datatools/s3/s3op.py +17 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/kubernetes/kubernetes.py +4 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/kubernetes/kubernetes_cli.py +8 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/kubernetes/kubernetes_decorator.py +10 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/kubernetes/kubernetes_job.py +8 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/kubernetes/kubernetes_jobsets.py +7 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/pypi/conda_decorator.py +2 -1
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/pypi/conda_environment.py +1 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/runner/deployer.py +8 -2
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/runner/deployer_impl.py +6 -2
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/runner/metaflow_runner.py +7 -2
- metaflow-2.15.10/metaflow/version.py +1 -0
- {metaflow-2.15.8 → metaflow-2.15.10/metaflow.egg-info}/PKG-INFO +2 -2
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow.egg-info/requires.txt +1 -1
- metaflow-2.15.8/metaflow/version.py +0 -1
- {metaflow-2.15.8 → metaflow-2.15.10}/LICENSE +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/MANIFEST.in +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/README.md +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/devtools/Makefile +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/devtools/Tiltfile +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/devtools/pick_services.sh +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/R.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/_bashcomplete.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/_compat.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/_termui_impl.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/_textwrap.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/_unicodefun.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/_winconsole.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/core.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/decorators.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/exceptions.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/formatting.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/globals.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/parser.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/termui.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/testing.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/types.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/click/utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/importlib_metadata/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/importlib_metadata/_adapters.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/importlib_metadata/_collections.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/importlib_metadata/_compat.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/importlib_metadata/_functools.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/importlib_metadata/_itertools.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/importlib_metadata/_meta.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/importlib_metadata/_text.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/importlib_metadata/py.typed +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/packaging/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/packaging/_elffile.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/packaging/_manylinux.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/packaging/_musllinux.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/packaging/_parser.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/packaging/_structures.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/packaging/_tokenizer.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/packaging/markers.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/packaging/py.typed +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/packaging/requirements.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/packaging/specifiers.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/packaging/tags.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/packaging/utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/packaging/version.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/typeguard/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/typeguard/_checkers.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/typeguard/_config.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/typeguard/_decorators.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/typeguard/_exceptions.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/typeguard/_functions.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/typeguard/_importhook.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/typeguard/_memo.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/typeguard/_pytest_plugin.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/typeguard/_suppression.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/typeguard/_transformer.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/typeguard/_union_transformer.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/typeguard/_utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/typeguard/py.typed +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/typing_extensions.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_5/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_5/importlib_metadata/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_5/importlib_metadata/_compat.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_5/zipp.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_6/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_6/importlib_metadata/_meta.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_6/importlib_metadata/_text.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_6/importlib_metadata/py.typed +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_6/typing_extensions.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_6/zipp.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/importlib_metadata/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/importlib_metadata/_adapters.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/importlib_metadata/_collections.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/importlib_metadata/_compat.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/importlib_metadata/_functools.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/importlib_metadata/_itertools.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/importlib_metadata/_meta.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/importlib_metadata/_text.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/importlib_metadata/py.typed +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/typeguard/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/typeguard/_checkers.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/typeguard/_config.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/typeguard/_decorators.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/typeguard/_exceptions.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/typeguard/_functions.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/typeguard/_importhook.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/typeguard/_memo.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/typeguard/_pytest_plugin.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/typeguard/_suppression.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/typeguard/_transformer.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/typeguard/_union_transformer.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/typeguard/_utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/typeguard/py.typed +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/typing_extensions.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/zipp.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/zipp.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cards.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cli.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cli_args.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cli_components/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cli_components/dump_cmd.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cli_components/init_cmd.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cli_components/run_cmds.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cli_components/step_cmd.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cli_components/utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/client/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/client/core.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/client/filecache.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/clone_util.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cmd/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cmd/code/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cmd/configure_cmd.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cmd/develop/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cmd/develop/stub_generator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cmd/develop/stubs.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cmd/main_cli.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cmd/make_wrapper.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cmd/tutorials_cmd.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cmd/util.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/cmd_with_io.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/datastore/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/datastore/content_addressed_store.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/datastore/datastore_set.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/datastore/datastore_storage.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/datastore/exceptions.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/datastore/flow_datastore.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/datastore/inputs.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/datastore/task_datastore.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/debug.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/decorators.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/event_logger.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/events.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/exception.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/extension_support/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/extension_support/_empty_file.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/extension_support/cmd.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/extension_support/integrations.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/extension_support/plugins.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/flowspec.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/graph.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/includefile.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/info_file.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/integrations.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/lint.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/metadata_provider/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/metadata_provider/heartbeat.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/metadata_provider/metadata.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/metadata_provider/util.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/metaflow_config.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/metaflow_config_funcs.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/metaflow_current.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/metaflow_environment.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/metaflow_git.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/metaflow_profile.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/metaflow_version.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/mflog/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/mflog/mflog.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/mflog/save_logs.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/mflog/save_logs_periodically.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/mflog/tee.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/monitor.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/multicore_utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/package.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/parameters.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/airflow/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/airflow/airflow.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/airflow/airflow_cli.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/airflow/airflow_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/airflow/airflow_utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/airflow/dag.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/airflow/exception.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/airflow/plumbing/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/airflow/plumbing/set_parameters.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/airflow/sensors/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/airflow/sensors/base_sensor.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/airflow/sensors/external_task_sensor.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/airflow/sensors/s3_sensor.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/argo/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/argo/argo_client.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/argo/argo_events.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/argo/argo_workflows_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/argo/argo_workflows_deployer.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/argo/argo_workflows_deployer_objects.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/argo/capture_error.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/argo/generate_input_paths.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/argo/jobset_input_paths.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/aws_client.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/aws_utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/batch/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/batch/batch.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/batch/batch_cli.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/batch/batch_client.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/batch/batch_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/secrets_manager/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/step_functions/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/step_functions/dynamo_db_client.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/step_functions/event_bridge_client.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/step_functions/production_token.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/step_functions/schedule_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/step_functions/set_batch_environment.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/step_functions/step_functions.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/step_functions/step_functions_cli.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/step_functions/step_functions_client.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/step_functions/step_functions_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/step_functions/step_functions_deployer.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/azure/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/azure/azure_credential.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/azure/azure_exceptions.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/azure/azure_secret_manager_secrets_provider.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/azure/azure_tail.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/azure/azure_utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/azure/blob_service_client_factory.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/azure/includefile_support.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_cli.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_client.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_creator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_datastore.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_modules/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_modules/base.html +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_modules/basic.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_modules/bundle.css +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_modules/card.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_modules/chevron/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_modules/chevron/main.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_modules/chevron/metadata.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_modules/chevron/renderer.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_modules/chevron/tokenizer.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_modules/components.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_modules/convert_to_native_type.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_modules/main.js +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_modules/renderer_tools.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_modules/test_cards.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_resolver.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_server.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/card_viewer/viewer.html +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/component_serializer.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/cards/exception.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/catch_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/datastores/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/datastores/azure_storage.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/datastores/gs_storage.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/datastores/local_storage.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/datastores/s3_storage.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/datatools/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/datatools/local.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/datatools/s3/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/datatools/s3/s3tail.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/datatools/s3/s3util.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/debug_logger.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/debug_monitor.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/client.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/client_modules.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/communication/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/communication/bytestream.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/communication/channel.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/communication/socket_bytestream.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/communication/utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/consts.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/data_transferer.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/exception_transferer.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/override_decorators.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/server.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/stub.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/env_escape/utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/environment_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/events_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/frameworks/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/frameworks/pytorch.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/gcp/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/gcp/gs_exceptions.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/gcp/gs_storage_client_factory.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/gcp/gs_tail.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/gcp/gs_utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/gcp/includefile_support.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/kubernetes/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/kubernetes/kube_utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/kubernetes/kubernetes_client.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/kubernetes/spot_metadata_cli.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/kubernetes/spot_monitor_sidecar.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/logs_cli.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/metadata_providers/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/metadata_providers/local.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/metadata_providers/service.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/package_cli.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/parallel_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/project_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/pypi/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/pypi/bootstrap.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/pypi/micromamba.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/pypi/parsers.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/pypi/pip.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/pypi/pypi_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/pypi/pypi_environment.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/pypi/utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/resources_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/retry_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/secrets/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/secrets/inline_secrets_provider.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/secrets/secrets_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/storage_executor.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/tag_cli.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/test_unbounded_foreach_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/timeout_decorator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/uv/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/uv/bootstrap.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/plugins/uv/uv_environment.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/procpoll.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/py.typed +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/pylint_wrapper.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/runner/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/runner/click_api.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/runner/nbdeploy.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/runner/nbrun.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/runner/subprocess_manager.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/runner/utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/runtime.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/sidecar/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/sidecar/sidecar.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/sidecar/sidecar_messages.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/sidecar/sidecar_subprocess.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/sidecar/sidecar_worker.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/system/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/system/system_logger.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/system/system_monitor.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/system/system_utils.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tagging_util.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/task.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tracing/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tracing/propagator.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tracing/span_exporter.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tracing/tracing_modules.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tuple_util.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/00-helloworld/README.md +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/00-helloworld/helloworld.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/01-playlist/README.md +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/01-playlist/movies.csv +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/01-playlist/playlist.ipynb +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/01-playlist/playlist.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/02-statistics/README.md +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/02-statistics/movies.csv +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/02-statistics/stats.ipynb +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/02-statistics/stats.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/03-playlist-redux/README.md +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/03-playlist-redux/playlist.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/04-playlist-plus/README.md +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/04-playlist-plus/playlist.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/05-hello-cloud/README.md +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/05-hello-cloud/hello-cloud.ipynb +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/05-hello-cloud/hello-cloud.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/06-statistics-redux/README.md +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/06-statistics-redux/stats.ipynb +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/07-worldview/README.md +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/07-worldview/worldview.ipynb +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/08-autopilot/README.md +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/tutorials/08-autopilot/autopilot.ipynb +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/unbounded_foreach.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/user_configs/__init__.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/user_configs/config_decorators.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/user_configs/config_options.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/user_configs/config_parameters.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/util.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow/vendor.py +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow.egg-info/SOURCES.txt +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow.egg-info/dependency_links.txt +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow.egg-info/entry_points.txt +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/metaflow.egg-info/top_level.txt +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/setup.cfg +0 -0
- {metaflow-2.15.8 → metaflow-2.15.10}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: metaflow
|
3
|
-
Version: 2.15.
|
3
|
+
Version: 2.15.10
|
4
4
|
Summary: Metaflow: More AI and ML, Less Engineering
|
5
5
|
Author: Metaflow Developers
|
6
6
|
Author-email: help@metaflow.org
|
@@ -26,7 +26,7 @@ License-File: LICENSE
|
|
26
26
|
Requires-Dist: requests
|
27
27
|
Requires-Dist: boto3
|
28
28
|
Provides-Extra: stubs
|
29
|
-
Requires-Dist: metaflow-stubs==2.15.
|
29
|
+
Requires-Dist: metaflow-stubs==2.15.10; extra == "stubs"
|
30
30
|
Dynamic: author
|
31
31
|
Dynamic: author-email
|
32
32
|
Dynamic: classifier
|
@@ -1978,6 +1978,15 @@ class ArgoWorkflows(object):
|
|
1978
1978
|
resources["disk"],
|
1979
1979
|
)
|
1980
1980
|
|
1981
|
+
security_context = resources.get("security_context", None)
|
1982
|
+
_security_context = {}
|
1983
|
+
if security_context is not None and len(security_context) > 0:
|
1984
|
+
_security_context = {
|
1985
|
+
"security_context": kubernetes_sdk.V1SecurityContext(
|
1986
|
+
**security_context
|
1987
|
+
)
|
1988
|
+
}
|
1989
|
+
|
1981
1990
|
# Create a ContainerTemplate for this node. Ideally, we would have
|
1982
1991
|
# liked to inline this ContainerTemplate and avoid scanning the workflow
|
1983
1992
|
# twice, but due to issues with variable substitution, we will have to
|
@@ -2034,6 +2043,7 @@ class ArgoWorkflows(object):
|
|
2034
2043
|
shared_memory=shared_memory,
|
2035
2044
|
port=port,
|
2036
2045
|
qos=resources["qos"],
|
2046
|
+
security_context=security_context,
|
2037
2047
|
)
|
2038
2048
|
|
2039
2049
|
for k, v in env.items():
|
@@ -2310,6 +2320,7 @@ class ArgoWorkflows(object):
|
|
2310
2320
|
is not None
|
2311
2321
|
else []
|
2312
2322
|
),
|
2323
|
+
**_security_context,
|
2313
2324
|
).to_dict()
|
2314
2325
|
)
|
2315
2326
|
)
|
@@ -40,6 +40,7 @@ unsupported_decorators = {
|
|
40
40
|
"snowpark": "Step *%s* is marked for execution on Snowpark with Argo Workflows which isn't currently supported.",
|
41
41
|
"slurm": "Step *%s* is marked for execution on Slurm with Argo Workflows which isn't currently supported.",
|
42
42
|
"nvidia": "Step *%s* is marked for execution on Nvidia with Argo Workflows which isn't currently supported.",
|
43
|
+
"nvct": "Step *%s* is marked for execution on Nvct with Argo Workflows which isn't currently supported.",
|
43
44
|
}
|
44
45
|
|
45
46
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import errno
|
1
2
|
import json
|
2
3
|
import os
|
3
4
|
import re
|
@@ -137,6 +138,10 @@ class MetaflowS3InvalidRange(MetaflowException):
|
|
137
138
|
headline = "S3 invalid range"
|
138
139
|
|
139
140
|
|
141
|
+
class MetaflowS3InsufficientDiskSpace(MetaflowException):
|
142
|
+
headline = "Insufficient disk space"
|
143
|
+
|
144
|
+
|
140
145
|
class S3Object(object):
|
141
146
|
"""
|
142
147
|
This object represents a path or an object in S3,
|
@@ -1377,8 +1382,10 @@ class S3(object):
|
|
1377
1382
|
elif error_code == "NoSuchBucket":
|
1378
1383
|
raise MetaflowS3URLException("Specified S3 bucket doesn't exist.")
|
1379
1384
|
error = str(err)
|
1385
|
+
except OSError as e:
|
1386
|
+
if e.errno == errno.ENOSPC:
|
1387
|
+
raise MetaflowS3InsufficientDiskSpace(str(e))
|
1380
1388
|
except Exception as ex:
|
1381
|
-
# TODO specific error message for out of disk space
|
1382
1389
|
error = str(ex)
|
1383
1390
|
if tmp:
|
1384
1391
|
os.unlink(tmp.name)
|
@@ -1,5 +1,6 @@
|
|
1
1
|
from __future__ import print_function
|
2
2
|
|
3
|
+
import errno
|
3
4
|
import json
|
4
5
|
import time
|
5
6
|
import math
|
@@ -108,6 +109,7 @@ ERROR_VERIFY_FAILED = 9
|
|
108
109
|
ERROR_LOCAL_FILE_NOT_FOUND = 10
|
109
110
|
ERROR_INVALID_RANGE = 11
|
110
111
|
ERROR_TRANSIENT = 12
|
112
|
+
ERROR_OUT_OF_DISK_SPACE = 13
|
111
113
|
|
112
114
|
|
113
115
|
def format_result_line(idx, prefix, url="", local=""):
|
@@ -277,6 +279,17 @@ def worker(result_file_name, queue, mode, s3config):
|
|
277
279
|
err = convert_to_client_error(e)
|
278
280
|
handle_client_error(err, idx, result_file)
|
279
281
|
continue
|
282
|
+
except OSError as e:
|
283
|
+
tmp.close()
|
284
|
+
os.unlink(tmp.name)
|
285
|
+
if e.errno == errno.ENOSPC:
|
286
|
+
result_file.write(
|
287
|
+
"%d %d\n" % (idx, -ERROR_OUT_OF_DISK_SPACE)
|
288
|
+
)
|
289
|
+
else:
|
290
|
+
result_file.write("%d %d\n" % (idx, -ERROR_TRANSIENT))
|
291
|
+
result_file.flush()
|
292
|
+
continue
|
280
293
|
except (SSLError, Exception) as e:
|
281
294
|
tmp.close()
|
282
295
|
os.unlink(tmp.name)
|
@@ -643,6 +656,8 @@ def exit(exit_code, url):
|
|
643
656
|
msg = "Local file not found: %s" % url
|
644
657
|
elif exit_code == ERROR_TRANSIENT:
|
645
658
|
msg = "Transient error for url: %s" % url
|
659
|
+
elif exit_code == ERROR_OUT_OF_DISK_SPACE:
|
660
|
+
msg = "Out of disk space when downloading URL: %s" % url
|
646
661
|
else:
|
647
662
|
msg = "Unknown error"
|
648
663
|
print("s3op failed:\n%s" % msg, file=sys.stderr)
|
@@ -1173,6 +1188,8 @@ def get(
|
|
1173
1188
|
)
|
1174
1189
|
if verify:
|
1175
1190
|
verify_info.append((url, sz))
|
1191
|
+
elif sz == -ERROR_OUT_OF_DISK_SPACE:
|
1192
|
+
exit(ERROR_OUT_OF_DISK_SPACE, url)
|
1176
1193
|
elif sz == -ERROR_URL_ACCESS_DENIED:
|
1177
1194
|
denied_url = url
|
1178
1195
|
break
|
@@ -194,6 +194,7 @@ class Kubernetes(object):
|
|
194
194
|
port=None,
|
195
195
|
num_parallel=None,
|
196
196
|
qos=None,
|
197
|
+
security_context=None,
|
197
198
|
):
|
198
199
|
name = "js-%s" % str(uuid4())[:6]
|
199
200
|
jobset = (
|
@@ -227,6 +228,7 @@ class Kubernetes(object):
|
|
227
228
|
port=port,
|
228
229
|
num_parallel=num_parallel,
|
229
230
|
qos=qos,
|
231
|
+
security_context=security_context,
|
230
232
|
)
|
231
233
|
.environment_variable("METAFLOW_CODE_SHA", code_package_sha)
|
232
234
|
.environment_variable("METAFLOW_CODE_URL", code_package_url)
|
@@ -488,6 +490,7 @@ class Kubernetes(object):
|
|
488
490
|
name_pattern=None,
|
489
491
|
qos=None,
|
490
492
|
annotations=None,
|
493
|
+
security_context=None,
|
491
494
|
):
|
492
495
|
if env is None:
|
493
496
|
env = {}
|
@@ -530,6 +533,7 @@ class Kubernetes(object):
|
|
530
533
|
shared_memory=shared_memory,
|
531
534
|
port=port,
|
532
535
|
qos=qos,
|
536
|
+
security_context=security_context,
|
533
537
|
)
|
534
538
|
.environment_variable("METAFLOW_CODE_SHA", code_package_sha)
|
535
539
|
.environment_variable("METAFLOW_CODE_URL", code_package_url)
|
@@ -145,6 +145,12 @@ def kubernetes():
|
|
145
145
|
type=JSONTypeClass(),
|
146
146
|
multiple=False,
|
147
147
|
)
|
148
|
+
@click.option(
|
149
|
+
"--security-context",
|
150
|
+
default=None,
|
151
|
+
type=JSONTypeClass(),
|
152
|
+
multiple=False,
|
153
|
+
)
|
148
154
|
@click.pass_context
|
149
155
|
def step(
|
150
156
|
ctx,
|
@@ -176,6 +182,7 @@ def step(
|
|
176
182
|
qos=None,
|
177
183
|
labels=None,
|
178
184
|
annotations=None,
|
185
|
+
security_context=None,
|
179
186
|
**kwargs
|
180
187
|
):
|
181
188
|
def echo(msg, stream="stderr", job_id=None, **kwargs):
|
@@ -319,6 +326,7 @@ def step(
|
|
319
326
|
qos=qos,
|
320
327
|
labels=labels,
|
321
328
|
annotations=annotations,
|
329
|
+
security_context=security_context,
|
322
330
|
)
|
323
331
|
except Exception:
|
324
332
|
traceback.print_exc(chain=False)
|
@@ -122,6 +122,14 @@ class KubernetesDecorator(StepDecorator):
|
|
122
122
|
Only applicable when @parallel is used.
|
123
123
|
qos: str, default: Burstable
|
124
124
|
Quality of Service class to assign to the pod. Supported values are: Guaranteed, Burstable, BestEffort
|
125
|
+
|
126
|
+
security_context: Dict[str, Any], optional, default None
|
127
|
+
Container security context. Applies to the task container. Allows the following keys:
|
128
|
+
- privileged: bool, optional, default None
|
129
|
+
- allow_privilege_escalation: bool, optional, default None
|
130
|
+
- run_as_user: int, optional, default None
|
131
|
+
- run_as_group: int, optional, default None
|
132
|
+
- run_as_non_root: bool, optional, default None
|
125
133
|
"""
|
126
134
|
|
127
135
|
name = "kubernetes"
|
@@ -152,6 +160,7 @@ class KubernetesDecorator(StepDecorator):
|
|
152
160
|
"executable": None,
|
153
161
|
"hostname_resolution_timeout": 10 * 60,
|
154
162
|
"qos": KUBERNETES_QOS,
|
163
|
+
"security_context": None,
|
155
164
|
}
|
156
165
|
package_url = None
|
157
166
|
package_sha = None
|
@@ -474,6 +483,7 @@ class KubernetesDecorator(StepDecorator):
|
|
474
483
|
"persistent_volume_claims",
|
475
484
|
"labels",
|
476
485
|
"annotations",
|
486
|
+
"security_context",
|
477
487
|
]:
|
478
488
|
cli_args.command_options[k] = json.dumps(v)
|
479
489
|
else:
|
@@ -80,6 +80,13 @@ class KubernetesJob(object):
|
|
80
80
|
self._kwargs["disk"],
|
81
81
|
)
|
82
82
|
|
83
|
+
security_context = self._kwargs.get("security_context", {})
|
84
|
+
_security_context = {}
|
85
|
+
if security_context is not None and len(security_context) > 0:
|
86
|
+
_security_context = {
|
87
|
+
"security_context": client.V1SecurityContext(**security_context)
|
88
|
+
}
|
89
|
+
|
83
90
|
return client.V1JobSpec(
|
84
91
|
# Retries are handled by Metaflow when it is responsible for
|
85
92
|
# executing the flow. The responsibility is moved to Kubernetes
|
@@ -203,6 +210,7 @@ class KubernetesJob(object):
|
|
203
210
|
if self._kwargs["persistent_volume_claims"] is not None
|
204
211
|
else []
|
205
212
|
),
|
213
|
+
**_security_context,
|
206
214
|
)
|
207
215
|
],
|
208
216
|
node_selector=self._kwargs.get("node_selector"),
|
@@ -562,6 +562,12 @@ class JobSetSpec(object):
|
|
562
562
|
self._kwargs["memory"],
|
563
563
|
self._kwargs["disk"],
|
564
564
|
)
|
565
|
+
security_context = self._kwargs.get("security_context", {})
|
566
|
+
_security_context = {}
|
567
|
+
if security_context is not None and len(security_context) > 0:
|
568
|
+
_security_context = {
|
569
|
+
"security_context": client.V1SecurityContext(**security_context)
|
570
|
+
}
|
565
571
|
return dict(
|
566
572
|
name=self.name,
|
567
573
|
template=client.api_client.ApiClient().sanitize_for_serialization(
|
@@ -708,6 +714,7 @@ class JobSetSpec(object):
|
|
708
714
|
is not None
|
709
715
|
else []
|
710
716
|
),
|
717
|
+
**_security_context,
|
711
718
|
)
|
712
719
|
],
|
713
720
|
node_selector=self._kwargs.get("node_selector"),
|
@@ -227,7 +227,8 @@ class CondaStepDecorator(StepDecorator):
|
|
227
227
|
self.interpreter = (
|
228
228
|
self.environment.interpreter(self.step)
|
229
229
|
if not any(
|
230
|
-
decorator.name
|
230
|
+
decorator.name
|
231
|
+
in ["batch", "kubernetes", "nvidia", "snowpark", "slurm", "nvct"]
|
231
232
|
for decorator in next(
|
232
233
|
step for step in self.flow if step.name == self.step
|
233
234
|
).decorators
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import os
|
1
2
|
import json
|
2
3
|
import time
|
3
4
|
|
@@ -52,7 +53,7 @@ class Deployer(metaclass=DeployerMeta):
|
|
52
53
|
Parameters
|
53
54
|
----------
|
54
55
|
flow_file : str
|
55
|
-
Path to the flow file to deploy.
|
56
|
+
Path to the flow file to deploy, relative to current directory.
|
56
57
|
show_output : bool, default True
|
57
58
|
Show the 'stdout' and 'stderr' to the console by default.
|
58
59
|
profile : Optional[str], default None
|
@@ -80,7 +81,12 @@ class Deployer(metaclass=DeployerMeta):
|
|
80
81
|
file_read_timeout: int = 3600,
|
81
82
|
**kwargs,
|
82
83
|
):
|
83
|
-
|
84
|
+
# Convert flow_file to absolute path if it's relative
|
85
|
+
if not os.path.isabs(flow_file):
|
86
|
+
self.flow_file = os.path.abspath(flow_file)
|
87
|
+
else:
|
88
|
+
self.flow_file = flow_file
|
89
|
+
|
84
90
|
self.show_output = show_output
|
85
91
|
self.profile = profile
|
86
92
|
self.env = env
|
@@ -25,7 +25,7 @@ class DeployerImpl(object):
|
|
25
25
|
Parameters
|
26
26
|
----------
|
27
27
|
flow_file : str
|
28
|
-
Path to the flow file to deploy.
|
28
|
+
Path to the flow file to deploy, relative to current directory.
|
29
29
|
show_output : bool, default True
|
30
30
|
Show the 'stdout' and 'stderr' to the console by default.
|
31
31
|
profile : Optional[str], default None
|
@@ -80,7 +80,11 @@ class DeployerImpl(object):
|
|
80
80
|
from metaflow.cli import start
|
81
81
|
from metaflow.runner.click_api import MetaflowAPI
|
82
82
|
|
83
|
-
|
83
|
+
# Convert flow_file to absolute path if it's relative
|
84
|
+
if not os.path.isabs(flow_file):
|
85
|
+
self.flow_file = os.path.abspath(flow_file)
|
86
|
+
else:
|
87
|
+
self.flow_file = flow_file
|
84
88
|
self.show_output = show_output
|
85
89
|
self.profile = profile
|
86
90
|
self.env = env
|
@@ -229,7 +229,7 @@ class Runner(metaclass=RunnerMeta):
|
|
229
229
|
Parameters
|
230
230
|
----------
|
231
231
|
flow_file : str
|
232
|
-
Path to the flow file to run
|
232
|
+
Path to the flow file to run, relative to current directory.
|
233
233
|
show_output : bool, default True
|
234
234
|
Show the 'stdout' and 'stderr' to the console by default,
|
235
235
|
Only applicable for synchronous 'run' and 'resume' functions.
|
@@ -286,7 +286,12 @@ class Runner(metaclass=RunnerMeta):
|
|
286
286
|
from metaflow.cli import start
|
287
287
|
from metaflow.runner.click_api import MetaflowAPI
|
288
288
|
|
289
|
-
|
289
|
+
# Convert flow_file to absolute path if it's relative
|
290
|
+
if not os.path.isabs(flow_file):
|
291
|
+
self.flow_file = os.path.abspath(flow_file)
|
292
|
+
else:
|
293
|
+
self.flow_file = flow_file
|
294
|
+
|
290
295
|
self.show_output = show_output
|
291
296
|
|
292
297
|
self.env_vars = os.environ.copy()
|
@@ -0,0 +1 @@
|
|
1
|
+
metaflow_version = "2.15.10"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: metaflow
|
3
|
-
Version: 2.15.
|
3
|
+
Version: 2.15.10
|
4
4
|
Summary: Metaflow: More AI and ML, Less Engineering
|
5
5
|
Author: Metaflow Developers
|
6
6
|
Author-email: help@metaflow.org
|
@@ -26,7 +26,7 @@ License-File: LICENSE
|
|
26
26
|
Requires-Dist: requests
|
27
27
|
Requires-Dist: boto3
|
28
28
|
Provides-Extra: stubs
|
29
|
-
Requires-Dist: metaflow-stubs==2.15.
|
29
|
+
Requires-Dist: metaflow-stubs==2.15.10; extra == "stubs"
|
30
30
|
Dynamic: author
|
31
31
|
Dynamic: author-email
|
32
32
|
Dynamic: classifier
|
@@ -1 +0,0 @@
|
|
1
|
-
metaflow_version = "2.15.8"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{metaflow-2.15.8 → metaflow-2.15.10}/metaflow/_vendor/v3_7/importlib_metadata/_collections.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|