metaflow 2.17.3__tar.gz → 2.17.5__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.17.3/metaflow.egg-info → metaflow-2.17.5}/PKG-INFO +2 -2
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/datastore/task_datastore.py +3 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/graph.py +3 -1
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/lint.py +6 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/argo/argo_workflows.py +132 -2
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/main.js +29 -29
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/runtime.py +166 -26
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/task.py +67 -2
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/user_decorators/user_step_decorator.py +7 -1
- metaflow-2.17.5/metaflow/version.py +1 -0
- {metaflow-2.17.3 → metaflow-2.17.5/metaflow.egg-info}/PKG-INFO +2 -2
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow.egg-info/requires.txt +1 -1
- metaflow-2.17.3/metaflow/version.py +0 -1
- {metaflow-2.17.3 → metaflow-2.17.5}/LICENSE +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/MANIFEST.in +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/README.md +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/devtools/Makefile +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/devtools/Tiltfile +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/devtools/pick_services.sh +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/R.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/_bashcomplete.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/_compat.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/_termui_impl.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/_textwrap.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/_unicodefun.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/_winconsole.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/core.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/decorators.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/exceptions.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/formatting.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/globals.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/parser.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/termui.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/testing.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/types.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/click/utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/imghdr/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/importlib_metadata/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/importlib_metadata/_adapters.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/importlib_metadata/_collections.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/importlib_metadata/_compat.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/importlib_metadata/_functools.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/importlib_metadata/_itertools.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/importlib_metadata/_meta.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/importlib_metadata/_text.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/importlib_metadata/py.typed +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/packaging/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/packaging/_elffile.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/packaging/_manylinux.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/packaging/_musllinux.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/packaging/_parser.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/packaging/_structures.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/packaging/_tokenizer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/packaging/markers.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/packaging/py.typed +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/packaging/requirements.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/packaging/specifiers.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/packaging/tags.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/packaging/utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/packaging/version.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/typeguard/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/typeguard/_checkers.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/typeguard/_config.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/typeguard/_decorators.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/typeguard/_exceptions.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/typeguard/_functions.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/typeguard/_importhook.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/typeguard/_memo.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/typeguard/_pytest_plugin.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/typeguard/_suppression.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/typeguard/_transformer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/typeguard/_union_transformer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/typeguard/_utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/typeguard/py.typed +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/typing_extensions.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_6/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_6/importlib_metadata/_meta.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_6/importlib_metadata/_text.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_6/importlib_metadata/py.typed +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_6/typing_extensions.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_6/zipp.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/importlib_metadata/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/importlib_metadata/_adapters.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/importlib_metadata/_collections.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/importlib_metadata/_compat.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/importlib_metadata/_functools.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/importlib_metadata/_itertools.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/importlib_metadata/_meta.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/importlib_metadata/_text.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/importlib_metadata/py.typed +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/typeguard/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/typeguard/_checkers.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/typeguard/_config.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/typeguard/_decorators.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/typeguard/_exceptions.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/typeguard/_functions.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/typeguard/_importhook.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/typeguard/_memo.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/typeguard/_pytest_plugin.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/typeguard/_suppression.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/typeguard/_transformer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/typeguard/_union_transformer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/typeguard/_utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/typeguard/py.typed +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/typing_extensions.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/v3_7/zipp.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/composer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/constructor.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/cyaml.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/dumper.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/emitter.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/error.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/events.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/loader.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/nodes.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/parser.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/reader.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/representer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/resolver.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/scanner.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/serializer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/yaml/tokens.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/_vendor/zipp.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cards.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cli.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cli_args.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cli_components/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cli_components/dump_cmd.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cli_components/init_cmd.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cli_components/run_cmds.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cli_components/step_cmd.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cli_components/utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/client/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/client/core.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/client/filecache.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/clone_util.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cmd/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cmd/code/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cmd/configure_cmd.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cmd/develop/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cmd/develop/stub_generator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cmd/develop/stubs.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cmd/main_cli.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cmd/make_wrapper.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cmd/tutorials_cmd.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cmd/util.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/cmd_with_io.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/datastore/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/datastore/content_addressed_store.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/datastore/datastore_set.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/datastore/datastore_storage.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/datastore/exceptions.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/datastore/flow_datastore.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/datastore/inputs.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/debug.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/decorators.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/event_logger.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/events.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/exception.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/extension_support/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/extension_support/_empty_file.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/extension_support/cmd.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/extension_support/integrations.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/extension_support/plugins.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/flowspec.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/includefile.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/integrations.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/meta_files.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/metadata_provider/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/metadata_provider/heartbeat.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/metadata_provider/metadata.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/metadata_provider/util.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/metaflow_config.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/metaflow_config_funcs.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/metaflow_current.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/metaflow_environment.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/metaflow_git.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/metaflow_profile.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/metaflow_version.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/mflog/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/mflog/mflog.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/mflog/save_logs.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/mflog/save_logs_periodically.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/mflog/tee.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/monitor.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/multicore_utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/package/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/packaging_sys/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/packaging_sys/backend.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/packaging_sys/distribution_support.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/packaging_sys/tar_backend.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/packaging_sys/utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/packaging_sys/v1.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/parameters.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/airflow/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/airflow/airflow.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/airflow/airflow_cli.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/airflow/airflow_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/airflow/airflow_utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/airflow/dag.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/airflow/exception.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/airflow/plumbing/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/airflow/plumbing/set_parameters.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/airflow/sensors/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/airflow/sensors/base_sensor.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/airflow/sensors/external_task_sensor.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/airflow/sensors/s3_sensor.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/argo/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/argo/argo_client.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/argo/argo_events.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/argo/argo_workflows_cli.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/argo/argo_workflows_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/argo/argo_workflows_deployer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/argo/argo_workflows_deployer_objects.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/argo/capture_error.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/argo/conditional_input_paths.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/argo/exit_hooks.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/argo/generate_input_paths.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/argo/jobset_input_paths.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/aws_client.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/aws_utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/batch/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/batch/batch.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/batch/batch_cli.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/batch/batch_client.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/batch/batch_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/secrets_manager/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/step_functions/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/step_functions/dynamo_db_client.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/step_functions/event_bridge_client.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/step_functions/production_token.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/step_functions/schedule_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/step_functions/set_batch_environment.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/step_functions/step_functions.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/step_functions/step_functions_cli.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/step_functions/step_functions_client.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/step_functions/step_functions_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/step_functions/step_functions_deployer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/azure/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/azure/azure_credential.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/azure/azure_exceptions.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/azure/azure_secret_manager_secrets_provider.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/azure/azure_tail.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/azure/azure_utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/azure/blob_service_client_factory.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/azure/includefile_support.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_cli.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_client.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_creator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_datastore.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/base.html +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/basic.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/bundle.css +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/card.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/chevron/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/chevron/main.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/chevron/metadata.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/chevron/renderer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/chevron/tokenizer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/components.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/convert_to_native_type.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/main.css +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/renderer_tools.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_modules/test_cards.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_resolver.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_server.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/card_viewer/viewer.html +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/component_serializer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/exception.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/cards/metadata.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/catch_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/datastores/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/datastores/azure_storage.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/datastores/gs_storage.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/datastores/local_storage.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/datastores/s3_storage.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/datatools/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/datatools/local.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/datatools/s3/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/datatools/s3/s3.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/datatools/s3/s3op.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/datatools/s3/s3tail.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/datatools/s3/s3util.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/debug_logger.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/debug_monitor.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/client.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/client_modules.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/communication/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/communication/bytestream.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/communication/channel.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/communication/socket_bytestream.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/communication/utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/consts.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/data_transferer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/exception_transferer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/override_decorators.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/server.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/stub.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/env_escape/utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/environment_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/events_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/exit_hook/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/exit_hook/exit_hook_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/exit_hook/exit_hook_script.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/frameworks/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/frameworks/pytorch.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/gcp/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/gcp/gs_exceptions.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/gcp/gs_storage_client_factory.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/gcp/gs_tail.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/gcp/gs_utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/gcp/includefile_support.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/kubernetes/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/kubernetes/kube_utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/kubernetes/kubernetes.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/kubernetes/kubernetes_cli.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/kubernetes/kubernetes_client.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/kubernetes/kubernetes_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/kubernetes/kubernetes_job.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/kubernetes/kubernetes_jobsets.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/kubernetes/spot_metadata_cli.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/kubernetes/spot_monitor_sidecar.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/logs_cli.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/metadata_providers/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/metadata_providers/local.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/metadata_providers/service.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/package_cli.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/parallel_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/project_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/pypi/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/pypi/bootstrap.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/pypi/conda_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/pypi/conda_environment.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/pypi/micromamba.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/pypi/parsers.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/pypi/pip.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/pypi/pypi_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/pypi/pypi_environment.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/pypi/utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/resources_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/retry_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/secrets/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/secrets/inline_secrets_provider.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/secrets/secrets_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/secrets/secrets_func.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/secrets/secrets_spec.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/secrets/utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/storage_executor.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/tag_cli.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/test_unbounded_foreach_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/timeout_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/uv/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/uv/bootstrap.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/plugins/uv/uv_environment.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/procpoll.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/py.typed +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/pylint_wrapper.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/runner/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/runner/click_api.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/runner/deployer.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/runner/deployer_impl.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/runner/metaflow_runner.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/runner/nbdeploy.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/runner/nbrun.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/runner/subprocess_manager.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/runner/utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/sidecar/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/sidecar/sidecar.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/sidecar/sidecar_messages.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/sidecar/sidecar_subprocess.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/sidecar/sidecar_worker.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/system/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/system/system_logger.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/system/system_monitor.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/system/system_utils.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tagging_util.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tracing/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tracing/propagator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tracing/span_exporter.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tracing/tracing_modules.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tuple_util.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/00-helloworld/README.md +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/00-helloworld/helloworld.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/01-playlist/README.md +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/01-playlist/movies.csv +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/01-playlist/playlist.ipynb +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/01-playlist/playlist.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/02-statistics/README.md +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/02-statistics/movies.csv +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/02-statistics/stats.ipynb +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/02-statistics/stats.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/03-playlist-redux/README.md +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/03-playlist-redux/playlist.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/04-playlist-plus/README.md +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/04-playlist-plus/playlist.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/05-hello-cloud/README.md +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/05-hello-cloud/hello-cloud.ipynb +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/05-hello-cloud/hello-cloud.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/06-statistics-redux/README.md +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/06-statistics-redux/stats.ipynb +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/07-worldview/README.md +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/07-worldview/worldview.ipynb +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/08-autopilot/README.md +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/tutorials/08-autopilot/autopilot.ipynb +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/unbounded_foreach.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/user_configs/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/user_configs/config_options.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/user_configs/config_parameters.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/user_decorators/__init__.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/user_decorators/common.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/user_decorators/mutable_flow.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/user_decorators/mutable_step.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/user_decorators/user_flow_decorator.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/util.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow/vendor.py +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow.egg-info/SOURCES.txt +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow.egg-info/dependency_links.txt +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow.egg-info/entry_points.txt +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/metaflow.egg-info/top_level.txt +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/setup.cfg +0 -0
- {metaflow-2.17.3 → metaflow-2.17.5}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: metaflow
|
3
|
-
Version: 2.17.
|
3
|
+
Version: 2.17.5
|
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.17.
|
29
|
+
Requires-Dist: metaflow-stubs==2.17.5; extra == "stubs"
|
30
30
|
Dynamic: author
|
31
31
|
Dynamic: author-email
|
32
32
|
Dynamic: classifier
|
@@ -222,6 +222,9 @@ class TaskDataStore(object):
|
|
222
222
|
@property
|
223
223
|
def pathspec_index(self):
|
224
224
|
idxstr = ",".join(map(str, (f.index for f in self["_foreach_stack"])))
|
225
|
+
if "_iteration_stack" in self:
|
226
|
+
itrstr = ",".join(map(str, (f for f in self["_iteration_stack"])))
|
227
|
+
return "%s/%s[%s][%s]" % (self._run_id, self._step_name, idxstr, itrstr)
|
225
228
|
return "%s/%s[%s]" % (self._run_id, self._step_name, idxstr)
|
226
229
|
|
227
230
|
@property
|
@@ -478,7 +478,9 @@ class FlowGraph(object):
|
|
478
478
|
cur_name = cur_node.matching_join
|
479
479
|
elif node_type == "split-switch":
|
480
480
|
all_paths = [
|
481
|
-
populate_block(s, end_name)
|
481
|
+
populate_block(s, end_name)
|
482
|
+
for s in cur_node.out_funcs
|
483
|
+
if s != cur_name
|
482
484
|
]
|
483
485
|
resulting_list.append(all_paths)
|
484
486
|
cur_name = end_name
|
@@ -175,6 +175,8 @@ def check_for_acyclicity(graph):
|
|
175
175
|
|
176
176
|
def check_path(node, seen):
|
177
177
|
for n in node.out_funcs:
|
178
|
+
if node.type == "split-switch" and n == node.name:
|
179
|
+
continue
|
178
180
|
if n in seen:
|
179
181
|
path = "->".join(seen + [n])
|
180
182
|
raise LintWarn(
|
@@ -241,6 +243,8 @@ def check_split_join_balance(graph):
|
|
241
243
|
elif node.type == "split-switch":
|
242
244
|
# For a switch, continue traversal down each path with the same stack
|
243
245
|
for n in node.out_funcs:
|
246
|
+
if node.type == "split-switch" and n == node.name:
|
247
|
+
continue
|
244
248
|
traverse(graph[n], split_stack)
|
245
249
|
return
|
246
250
|
elif node.type == "end":
|
@@ -293,6 +297,8 @@ def check_split_join_balance(graph):
|
|
293
297
|
new_stack = split_stack
|
294
298
|
|
295
299
|
for n in node.out_funcs:
|
300
|
+
if node.type == "split-switch" and n == node.name:
|
301
|
+
continue
|
296
302
|
traverse(graph[n], new_stack)
|
297
303
|
|
298
304
|
traverse(graph["start"], [])
|
@@ -926,6 +926,7 @@ class ArgoWorkflows(object):
|
|
926
926
|
self.conditional_nodes = set()
|
927
927
|
self.conditional_join_nodes = set()
|
928
928
|
self.matching_conditional_join_dict = {}
|
929
|
+
self.recursive_nodes = set()
|
929
930
|
|
930
931
|
node_conditional_parents = {}
|
931
932
|
node_conditional_branches = {}
|
@@ -948,6 +949,12 @@ class ArgoWorkflows(object):
|
|
948
949
|
)
|
949
950
|
node_conditional_parents[node.name] = conditional_parents
|
950
951
|
|
952
|
+
# check for recursion. this split is recursive if any of its out functions are itself.
|
953
|
+
if any(
|
954
|
+
out_func for out_func in node.out_funcs if out_func == node.name
|
955
|
+
):
|
956
|
+
self.recursive_nodes.add(node.name)
|
957
|
+
|
951
958
|
if conditional_parents and not node.type == "split-switch":
|
952
959
|
node_conditional_parents[node.name] = conditional_parents
|
953
960
|
conditional_branch = conditional_branch + [node.name]
|
@@ -1033,6 +1040,9 @@ class ArgoWorkflows(object):
|
|
1033
1040
|
def _is_conditional_join_node(self, node):
|
1034
1041
|
return node.name in self.conditional_join_nodes
|
1035
1042
|
|
1043
|
+
def _is_recursive_node(self, node):
|
1044
|
+
return node.name in self.recursive_nodes
|
1045
|
+
|
1036
1046
|
def _matching_conditional_join(self, node):
|
1037
1047
|
return self.matching_conditional_join_dict.get(node.name, None)
|
1038
1048
|
|
@@ -1044,6 +1054,7 @@ class ArgoWorkflows(object):
|
|
1044
1054
|
templates=None,
|
1045
1055
|
dag_tasks=None,
|
1046
1056
|
parent_foreach=None,
|
1057
|
+
seen=None,
|
1047
1058
|
): # Returns Tuple[List[Template], List[DAGTask]]
|
1048
1059
|
""" """
|
1049
1060
|
# Every for-each node results in a separate subDAG and an equivalent
|
@@ -1053,6 +1064,8 @@ class ArgoWorkflows(object):
|
|
1053
1064
|
# of the for-each node.
|
1054
1065
|
|
1055
1066
|
# Emit if we have reached the end of the sub workflow
|
1067
|
+
if seen is None:
|
1068
|
+
seen = []
|
1056
1069
|
if dag_tasks is None:
|
1057
1070
|
dag_tasks = []
|
1058
1071
|
if templates is None:
|
@@ -1060,6 +1073,13 @@ class ArgoWorkflows(object):
|
|
1060
1073
|
|
1061
1074
|
if exit_node is not None and exit_node is node.name:
|
1062
1075
|
return templates, dag_tasks
|
1076
|
+
if node.name in seen:
|
1077
|
+
return templates, dag_tasks
|
1078
|
+
|
1079
|
+
seen.append(node.name)
|
1080
|
+
|
1081
|
+
# helper variable for recursive conditional inputs
|
1082
|
+
has_foreach_inputs = False
|
1063
1083
|
if node.name == "start":
|
1064
1084
|
# Start node has no dependencies.
|
1065
1085
|
dag_task = DAGTask(self._sanitize(node.name)).template(
|
@@ -1073,9 +1093,10 @@ class ArgoWorkflows(object):
|
|
1073
1093
|
# vs what is a "num_parallel" based foreach (i.e. something that follows gang semantics.)
|
1074
1094
|
# A `regular` foreach is basically any arbitrary kind of foreach.
|
1075
1095
|
):
|
1096
|
+
# helper variable for recursive conditional inputs
|
1097
|
+
has_foreach_inputs = True
|
1076
1098
|
# Child of a foreach node needs input-paths as well as split-index
|
1077
1099
|
# This child is the first node of the sub workflow and has no dependency
|
1078
|
-
|
1079
1100
|
parameters = [
|
1080
1101
|
Parameter("input-paths").value("{{inputs.parameters.input-paths}}"),
|
1081
1102
|
Parameter("split-index").value("{{inputs.parameters.split-index}}"),
|
@@ -1253,6 +1274,7 @@ class ArgoWorkflows(object):
|
|
1253
1274
|
templates,
|
1254
1275
|
dag_tasks,
|
1255
1276
|
parent_foreach,
|
1277
|
+
seen,
|
1256
1278
|
)
|
1257
1279
|
return _visit(
|
1258
1280
|
self.graph[node.matching_join],
|
@@ -1260,8 +1282,102 @@ class ArgoWorkflows(object):
|
|
1260
1282
|
templates,
|
1261
1283
|
dag_tasks,
|
1262
1284
|
parent_foreach,
|
1285
|
+
seen,
|
1263
1286
|
)
|
1264
1287
|
elif node.type == "split-switch":
|
1288
|
+
if self._is_recursive_node(node):
|
1289
|
+
# we need an additional recursive template if the step is recursive
|
1290
|
+
# NOTE: in the recursive case, the original step is renamed in the container templates to 'recursive-<step_name>'
|
1291
|
+
# so that we do not have to touch the step references in the DAG.
|
1292
|
+
#
|
1293
|
+
# NOTE: The way that recursion in Argo Workflows is achieved is with the following structure:
|
1294
|
+
# - the usual 'example-step' template which would match example_step in flow code is renamed to 'recursive-example-step'
|
1295
|
+
# - templates has another template with the original task name: 'example-step'
|
1296
|
+
# - the template 'example-step' in turn has steps
|
1297
|
+
# - 'example-step-internal' which uses the metaflow step executing template 'recursive-example-step'
|
1298
|
+
# - 'example-step-recursion' which calls the parent template 'example-step' if switch-step output from 'example-step-internal' matches the condition.
|
1299
|
+
sanitized_name = self._sanitize(node.name)
|
1300
|
+
templates.append(
|
1301
|
+
Template(sanitized_name)
|
1302
|
+
.steps(
|
1303
|
+
[
|
1304
|
+
WorkflowStep()
|
1305
|
+
.name("%s-internal" % sanitized_name)
|
1306
|
+
.template("recursive-%s" % sanitized_name)
|
1307
|
+
.arguments(
|
1308
|
+
Arguments().parameters(
|
1309
|
+
[
|
1310
|
+
Parameter("input-paths").value(
|
1311
|
+
"{{inputs.parameters.input-paths}}"
|
1312
|
+
)
|
1313
|
+
]
|
1314
|
+
# Add the additional inputs required by specific node types.
|
1315
|
+
# We do not need to cover joins or @parallel, as a split-switch step can not be either one of these.
|
1316
|
+
+ (
|
1317
|
+
[
|
1318
|
+
Parameter("split-index").value(
|
1319
|
+
"{{inputs.parameters.split-index}}"
|
1320
|
+
)
|
1321
|
+
]
|
1322
|
+
if has_foreach_inputs
|
1323
|
+
else []
|
1324
|
+
)
|
1325
|
+
)
|
1326
|
+
)
|
1327
|
+
]
|
1328
|
+
)
|
1329
|
+
.steps(
|
1330
|
+
[
|
1331
|
+
WorkflowStep()
|
1332
|
+
.name("%s-recursion" % sanitized_name)
|
1333
|
+
.template(sanitized_name)
|
1334
|
+
.when(
|
1335
|
+
"{{steps.%s-internal.outputs.parameters.switch-step}}==%s"
|
1336
|
+
% (sanitized_name, node.name)
|
1337
|
+
)
|
1338
|
+
.arguments(
|
1339
|
+
Arguments().parameters(
|
1340
|
+
[
|
1341
|
+
Parameter("input-paths").value(
|
1342
|
+
"argo-{{workflow.name}}/%s/{{steps.%s-internal.outputs.parameters.task-id}}"
|
1343
|
+
% (node.name, sanitized_name)
|
1344
|
+
)
|
1345
|
+
]
|
1346
|
+
+ (
|
1347
|
+
[
|
1348
|
+
Parameter("split-index").value(
|
1349
|
+
"{{inputs.parameters.split-index}}"
|
1350
|
+
)
|
1351
|
+
]
|
1352
|
+
if has_foreach_inputs
|
1353
|
+
else []
|
1354
|
+
)
|
1355
|
+
)
|
1356
|
+
),
|
1357
|
+
]
|
1358
|
+
)
|
1359
|
+
.inputs(Inputs().parameters(parameters))
|
1360
|
+
.outputs(
|
1361
|
+
# NOTE: We try to read the output parameters from the recursive template call first (<step>-recursion), and the internal step second (<step>-internal).
|
1362
|
+
# This guarantees that we always get the output parameters of the last recursive step that executed.
|
1363
|
+
Outputs().parameters(
|
1364
|
+
[
|
1365
|
+
Parameter("task-id").valueFrom(
|
1366
|
+
{
|
1367
|
+
"expression": "(steps['%s-recursion']?.outputs ?? steps['%s-internal']?.outputs).parameters['task-id']"
|
1368
|
+
% (sanitized_name, sanitized_name)
|
1369
|
+
}
|
1370
|
+
),
|
1371
|
+
Parameter("switch-step").valueFrom(
|
1372
|
+
{
|
1373
|
+
"expression": "(steps['%s-recursion']?.outputs ?? steps['%s-internal']?.outputs).parameters['switch-step']"
|
1374
|
+
% (sanitized_name, sanitized_name)
|
1375
|
+
}
|
1376
|
+
),
|
1377
|
+
]
|
1378
|
+
)
|
1379
|
+
)
|
1380
|
+
)
|
1265
1381
|
for n in node.out_funcs:
|
1266
1382
|
_visit(
|
1267
1383
|
self.graph[n],
|
@@ -1269,6 +1385,7 @@ class ArgoWorkflows(object):
|
|
1269
1385
|
templates,
|
1270
1386
|
dag_tasks,
|
1271
1387
|
parent_foreach,
|
1388
|
+
seen,
|
1272
1389
|
)
|
1273
1390
|
|
1274
1391
|
return _visit(
|
@@ -1277,6 +1394,7 @@ class ArgoWorkflows(object):
|
|
1277
1394
|
templates,
|
1278
1395
|
dag_tasks,
|
1279
1396
|
parent_foreach,
|
1397
|
+
seen,
|
1280
1398
|
)
|
1281
1399
|
# For foreach nodes generate a new sub DAGTemplate
|
1282
1400
|
# We do this for "regular" foreaches (ie. `self.next(self.a, foreach=)`)
|
@@ -1367,6 +1485,7 @@ class ArgoWorkflows(object):
|
|
1367
1485
|
templates,
|
1368
1486
|
[],
|
1369
1487
|
node.name,
|
1488
|
+
seen,
|
1370
1489
|
)
|
1371
1490
|
|
1372
1491
|
# How do foreach's work on Argo:
|
@@ -1500,6 +1619,7 @@ class ArgoWorkflows(object):
|
|
1500
1619
|
templates,
|
1501
1620
|
dag_tasks,
|
1502
1621
|
parent_foreach,
|
1622
|
+
seen,
|
1503
1623
|
)
|
1504
1624
|
# For linear nodes continue traversing to the next node
|
1505
1625
|
if node.type in ("linear", "join", "start"):
|
@@ -1509,6 +1629,7 @@ class ArgoWorkflows(object):
|
|
1509
1629
|
templates,
|
1510
1630
|
dag_tasks,
|
1511
1631
|
parent_foreach,
|
1632
|
+
seen,
|
1512
1633
|
)
|
1513
1634
|
else:
|
1514
1635
|
raise ArgoWorkflowsException(
|
@@ -2290,8 +2411,13 @@ class ArgoWorkflows(object):
|
|
2290
2411
|
)
|
2291
2412
|
)
|
2292
2413
|
else:
|
2414
|
+
template_name = self._sanitize(node.name)
|
2415
|
+
if self._is_recursive_node(node):
|
2416
|
+
# The recursive template has the original step name,
|
2417
|
+
# this becomes a template within the recursive ones 'steps'
|
2418
|
+
template_name = self._sanitize("recursive-%s" % node.name)
|
2293
2419
|
yield (
|
2294
|
-
Template(
|
2420
|
+
Template(template_name)
|
2295
2421
|
# Set @timeout values
|
2296
2422
|
.active_deadline_seconds(run_time_limit)
|
2297
2423
|
# Set service account
|
@@ -3750,6 +3876,10 @@ class WorkflowStep(object):
|
|
3750
3876
|
self.payload["template"] = str(template)
|
3751
3877
|
return self
|
3752
3878
|
|
3879
|
+
def arguments(self, arguments):
|
3880
|
+
self.payload["arguments"] = arguments.to_json()
|
3881
|
+
return self
|
3882
|
+
|
3753
3883
|
def when(self, condition):
|
3754
3884
|
self.payload["when"] = str(condition)
|
3755
3885
|
return self
|