metaflow 2.18.6__tar.gz → 2.19.7__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.18.6/metaflow.egg-info → metaflow-2.19.7}/PKG-INFO +2 -3
- {metaflow-2.18.6 → metaflow-2.19.7}/README.md +0 -1
- {metaflow-2.18.6 → metaflow-2.19.7}/devtools/Makefile +10 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/devtools/Tiltfile +78 -3
- {metaflow-2.18.6 → metaflow-2.19.7}/devtools/pick_services.sh +1 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/__init__.py +1 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cards.py +4 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cli.py +78 -13
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cli_components/run_cmds.py +182 -39
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cli_components/step_cmd.py +160 -4
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/client/__init__.py +1 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/client/core.py +162 -99
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/client/filecache.py +59 -32
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cmd/code/__init__.py +2 -1
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/datastore/__init__.py +1 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/datastore/content_addressed_store.py +40 -9
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/datastore/datastore_set.py +10 -1
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/datastore/flow_datastore.py +124 -4
- metaflow-2.19.7/metaflow/datastore/spin_datastore.py +91 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/datastore/task_datastore.py +86 -2
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/decorators.py +77 -8
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/extension_support/__init__.py +372 -305
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/flowspec.py +3 -2
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/graph.py +2 -2
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/includefile.py +25 -3
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/metaflow_config.py +43 -1
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/metaflow_environment.py +1 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/metaflow_profile.py +18 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/packaging_sys/utils.py +2 -39
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/packaging_sys/v1.py +63 -16
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/parameters.py +4 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/__init__.py +3 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/argo/argo_client.py +1 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/argo/argo_events.py +6 -6
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/argo/argo_workflows.py +65 -34
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/argo/argo_workflows_cli.py +20 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/argo/capture_error.py +5 -2
- metaflow-2.19.7/metaflow/plugins/argo/param_val.py +19 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_datastore.py +13 -13
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_decorator.py +1 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/basic.py +23 -7
- metaflow-2.19.7/metaflow/plugins/cards/card_modules/bundle.css +1 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/components.py +592 -3
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/convert_to_native_type.py +23 -3
- metaflow-2.19.7/metaflow/plugins/cards/card_modules/json_viewer.py +232 -0
- metaflow-2.19.7/metaflow/plugins/cards/card_modules/main.js +269 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/datastores/local_storage.py +12 -6
- metaflow-2.19.7/metaflow/plugins/datastores/spin_storage.py +12 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/datatools/s3/s3.py +49 -17
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/datatools/s3/s3op.py +112 -65
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/client_modules.py +102 -72
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/metadata_providers/local.py +76 -82
- metaflow-2.19.7/metaflow/plugins/metadata_providers/spin.py +16 -0
- metaflow-2.19.7/metaflow/plugins/parsers.py +16 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/pypi/pip.py +41 -5
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/pypi/utils.py +22 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/secrets/secrets_decorator.py +5 -5
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/runner/click_api.py +44 -6
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/runner/metaflow_runner.py +210 -19
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/runner/utils.py +19 -16
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/runtime.py +348 -21
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/task.py +61 -12
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/user_configs/config_parameters.py +2 -4
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/user_decorators/mutable_flow.py +2 -2
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/user_decorators/user_step_decorator.py +15 -3
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/util.py +191 -1
- metaflow-2.19.7/metaflow/version.py +1 -0
- {metaflow-2.18.6 → metaflow-2.19.7/metaflow.egg-info}/PKG-INFO +2 -3
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow.egg-info/SOURCES.txt +6 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow.egg-info/requires.txt +1 -1
- metaflow-2.18.6/metaflow/plugins/cards/card_modules/bundle.css +0 -1
- metaflow-2.18.6/metaflow/plugins/cards/card_modules/main.js +0 -254
- metaflow-2.18.6/metaflow/version.py +0 -1
- {metaflow-2.18.6 → metaflow-2.19.7}/LICENSE +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/MANIFEST.in +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/R.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/_bashcomplete.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/_compat.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/_termui_impl.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/_textwrap.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/_unicodefun.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/_winconsole.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/core.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/decorators.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/exceptions.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/formatting.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/globals.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/parser.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/termui.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/testing.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/types.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/click/utils.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/imghdr/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/_adapters.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/_collections.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/_compat.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/_functools.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/_itertools.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/_meta.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/_text.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/importlib_metadata/py.typed +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/packaging/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/packaging/_elffile.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/packaging/_manylinux.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/packaging/_musllinux.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/packaging/_parser.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/packaging/_structures.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/packaging/_tokenizer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/packaging/markers.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/packaging/py.typed +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/packaging/requirements.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/packaging/specifiers.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/packaging/tags.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/packaging/utils.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/packaging/version.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/typeguard/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_checkers.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_config.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_decorators.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_exceptions.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_functions.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_importhook.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_memo.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_pytest_plugin.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_suppression.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_transformer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_union_transformer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/typeguard/_utils.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/typeguard/py.typed +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/typing_extensions.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_6/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/_meta.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/_text.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_6/importlib_metadata/py.typed +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_6/typing_extensions.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_6/zipp.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/_adapters.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/_collections.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/_compat.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/_functools.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/_itertools.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/_meta.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/_text.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/importlib_metadata/py.typed +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_checkers.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_config.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_decorators.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_exceptions.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_functions.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_importhook.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_memo.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_pytest_plugin.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_suppression.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_transformer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_union_transformer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/_utils.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typeguard/py.typed +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/typing_extensions.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/v3_7/zipp.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/composer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/constructor.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/cyaml.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/dumper.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/emitter.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/error.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/events.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/loader.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/nodes.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/parser.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/reader.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/representer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/resolver.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/scanner.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/serializer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/yaml/tokens.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/_vendor/zipp.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cli_args.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cli_components/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cli_components/dump_cmd.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cli_components/init_cmd.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cli_components/utils.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/clone_util.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cmd/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cmd/configure_cmd.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cmd/develop/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cmd/develop/stub_generator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cmd/develop/stubs.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cmd/main_cli.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cmd/make_wrapper.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cmd/tutorials_cmd.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cmd/util.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/cmd_with_io.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/datastore/datastore_storage.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/datastore/exceptions.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/datastore/inputs.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/debug.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/event_logger.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/events.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/exception.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/extension_support/_empty_file.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/extension_support/cmd.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/extension_support/integrations.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/extension_support/plugins.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/integrations.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/lint.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/meta_files.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/metadata_provider/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/metadata_provider/heartbeat.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/metadata_provider/metadata.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/metadata_provider/util.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/metaflow_config_funcs.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/metaflow_current.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/metaflow_git.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/metaflow_version.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/mflog/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/mflog/mflog.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/mflog/save_logs.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/mflog/save_logs_periodically.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/mflog/tee.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/monitor.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/multicore_utils.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/package/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/packaging_sys/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/packaging_sys/backend.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/packaging_sys/distribution_support.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/packaging_sys/tar_backend.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/airflow/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/airflow/airflow.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/airflow/airflow_cli.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/airflow/airflow_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/airflow/airflow_utils.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/airflow/dag.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/airflow/exception.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/airflow/plumbing/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/airflow/plumbing/set_parameters.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/airflow/sensors/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/airflow/sensors/base_sensor.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/airflow/sensors/external_task_sensor.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/airflow/sensors/s3_sensor.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/argo/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/argo/argo_workflows_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/argo/argo_workflows_deployer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/argo/argo_workflows_deployer_objects.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/argo/conditional_input_paths.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/argo/exit_hooks.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/argo/generate_input_paths.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/argo/jobset_input_paths.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/aws_client.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/aws_utils.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/batch/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/batch/batch.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/batch/batch_cli.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/batch/batch_client.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/batch/batch_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/secrets_manager/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/dynamo_db_client.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/event_bridge_client.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/production_token.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/schedule_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/set_batch_environment.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/step_functions.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/step_functions_cli.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/step_functions_client.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/step_functions_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/step_functions_deployer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/azure/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/azure/azure_credential.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/azure/azure_exceptions.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/azure/azure_secret_manager_secrets_provider.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/azure/azure_tail.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/azure/azure_utils.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/azure/blob_service_client_factory.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/azure/includefile_support.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_cli.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_client.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_creator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/base.html +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/card.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/chevron/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/chevron/main.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/chevron/metadata.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/chevron/renderer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/chevron/tokenizer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/main.css +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/renderer_tools.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_modules/test_cards.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_resolver.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_server.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/card_viewer/viewer.html +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/component_serializer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/exception.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/cards/metadata.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/catch_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/datastores/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/datastores/azure_storage.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/datastores/gs_storage.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/datastores/s3_storage.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/datatools/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/datatools/local.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/datatools/s3/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/datatools/s3/s3tail.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/datatools/s3/s3util.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/debug_logger.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/debug_monitor.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/client.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/communication/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/communication/bytestream.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/communication/channel.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/communication/socket_bytestream.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/communication/utils.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/consts.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/data_transferer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/exception_transferer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/override_decorators.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/server.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/stub.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/env_escape/utils.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/environment_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/events_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/exit_hook/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/exit_hook/exit_hook_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/exit_hook/exit_hook_script.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/frameworks/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/frameworks/pytorch.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/gcp/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/gcp/gs_exceptions.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/gcp/gs_storage_client_factory.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/gcp/gs_tail.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/gcp/gs_utils.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/gcp/includefile_support.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/kubernetes/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/kubernetes/kube_utils.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/kubernetes/kubernetes.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/kubernetes/kubernetes_cli.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/kubernetes/kubernetes_client.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/kubernetes/kubernetes_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/kubernetes/kubernetes_job.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/kubernetes/kubernetes_jobsets.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/kubernetes/spot_metadata_cli.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/kubernetes/spot_monitor_sidecar.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/logs_cli.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/metadata_providers/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/metadata_providers/service.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/package_cli.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/parallel_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/project_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/pypi/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/pypi/bootstrap.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/pypi/conda_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/pypi/conda_environment.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/pypi/micromamba.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/pypi/parsers.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/pypi/pypi_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/pypi/pypi_environment.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/resources_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/retry_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/secrets/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/secrets/inline_secrets_provider.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/secrets/secrets_func.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/secrets/secrets_spec.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/secrets/utils.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/storage_executor.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/tag_cli.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/test_unbounded_foreach_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/timeout_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/uv/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/uv/bootstrap.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/plugins/uv/uv_environment.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/procpoll.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/py.typed +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/pylint_wrapper.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/runner/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/runner/deployer.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/runner/deployer_impl.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/runner/nbdeploy.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/runner/nbrun.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/runner/subprocess_manager.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/sidecar/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/sidecar/sidecar.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/sidecar/sidecar_messages.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/sidecar/sidecar_subprocess.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/sidecar/sidecar_worker.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/system/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/system/system_logger.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/system/system_monitor.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/system/system_utils.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tagging_util.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tracing/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tracing/propagator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tracing/span_exporter.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tracing/tracing_modules.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tuple_util.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/00-helloworld/README.md +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/00-helloworld/helloworld.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/01-playlist/README.md +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/01-playlist/movies.csv +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/01-playlist/playlist.ipynb +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/01-playlist/playlist.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/02-statistics/README.md +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/02-statistics/movies.csv +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/02-statistics/stats.ipynb +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/02-statistics/stats.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/03-playlist-redux/README.md +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/03-playlist-redux/playlist.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/04-playlist-plus/README.md +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/04-playlist-plus/playlist.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/05-hello-cloud/README.md +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/05-hello-cloud/hello-cloud.ipynb +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/05-hello-cloud/hello-cloud.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/06-statistics-redux/README.md +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/06-statistics-redux/stats.ipynb +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/07-worldview/README.md +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/07-worldview/worldview.ipynb +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/08-autopilot/README.md +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/tutorials/08-autopilot/autopilot.ipynb +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/unbounded_foreach.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/user_configs/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/user_configs/config_options.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/user_decorators/__init__.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/user_decorators/common.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/user_decorators/mutable_step.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/user_decorators/user_flow_decorator.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow/vendor.py +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow.egg-info/dependency_links.txt +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow.egg-info/entry_points.txt +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/metaflow.egg-info/top_level.txt +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/setup.cfg +0 -0
- {metaflow-2.18.6 → metaflow-2.19.7}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: metaflow
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.19.7
|
|
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.
|
|
29
|
+
Requires-Dist: metaflow-stubs==2.19.7; extra == "stubs"
|
|
30
30
|
Dynamic: author
|
|
31
31
|
Dynamic: author-email
|
|
32
32
|
Dynamic: classifier
|
|
@@ -101,4 +101,3 @@ We'd love to hear from you. Join our community [Slack workspace](http://slack.ou
|
|
|
101
101
|
|
|
102
102
|
## Contributing
|
|
103
103
|
We welcome contributions to Metaflow. Please see our [contribution guide](https://docs.metaflow.org/introduction/contributing-to-metaflow) for more details.
|
|
104
|
-
|
|
@@ -31,6 +31,7 @@ MAKE_CMD := $(MAKE) -f "$(MKFILE_PATH)"
|
|
|
31
31
|
MINIKUBE_CPUS ?= 4
|
|
32
32
|
MINIKUBE_MEMORY ?= 6144
|
|
33
33
|
MINIKUBE_DISK_SIZE ?= 20g
|
|
34
|
+
WAIT_TIMEOUT ?= 300
|
|
34
35
|
|
|
35
36
|
ifeq ($(shell uname), Darwin)
|
|
36
37
|
minikube_os = darwin
|
|
@@ -269,6 +270,15 @@ shell: setup-tilt
|
|
|
269
270
|
"$$user_shell" -i; \
|
|
270
271
|
fi'
|
|
271
272
|
|
|
273
|
+
wait-until-ready:
|
|
274
|
+
@echo "Waiting for infrastructure to be ready. Timing out in $(WAIT_TIMEOUT) seconds..."
|
|
275
|
+
@timeout $(WAIT_TIMEOUT) bash -c 'while [ ! -f $(DEVTOOLS_DIR)/start.sh ]; do sleep 10; done; echo "Infra is Ready"' || (echo "Waiting for infra timed out"&&exit 1)
|
|
276
|
+
# buffer to get the tilt api running
|
|
277
|
+
@timeout 120 bash -c 'while ! $(TILT) get session; do sleep 3;done'
|
|
278
|
+
@echo "Waiting for services to be ready. Timing out in $(WAIT_TIMEOUT) seconds..."
|
|
279
|
+
# Need to wait for Tiltfile first, as other resources return 404 otherwise
|
|
280
|
+
@$(TILT) wait --for=condition=Ready "uiresource/(Tiltfile)" --timeout=$(WAIT_TIMEOUT)s
|
|
281
|
+
@$(TILT) wait --for=condition=Ready uiresource/generate-configs --timeout=$(WAIT_TIMEOUT)s
|
|
272
282
|
|
|
273
283
|
# @echo '$(MAKE_CMD) create-dev-shell' >> $(DEVTOOLS_DIR)/start.sh
|
|
274
284
|
# @echo 'rm -f /tmp/metaflow-devshell-*' >> $(DEVTOOLS_DIR)/start.sh
|
|
@@ -14,6 +14,17 @@
|
|
|
14
14
|
version_settings(constraint='>=0.22.2')
|
|
15
15
|
allow_k8s_contexts('minikube')
|
|
16
16
|
|
|
17
|
+
# Version configuration for components
|
|
18
|
+
JOBSET_VERSION = os.getenv("JOBSET_VERSION", "v0.8.2")
|
|
19
|
+
|
|
20
|
+
# Argo Workflows versions
|
|
21
|
+
ARGO_WORKFLOWS_HELM_CHART_VERSION = os.getenv("ARGO_WORKFLOWS_HELM_CHART_VERSION", "0.45.2") # Helm chart version
|
|
22
|
+
ARGO_WORKFLOWS_IMAGE_TAG = os.getenv("ARGO_WORKFLOWS_IMAGE_TAG", "v3.6.0") # Argo Workflows application version
|
|
23
|
+
|
|
24
|
+
# Argo Events versions
|
|
25
|
+
ARGO_EVENTS_HELM_CHART_VERSION = os.getenv("ARGO_EVENTS_HELM_CHART_VERSION", "2.4.8") # Helm chart version
|
|
26
|
+
ARGO_EVENTS_IMAGE_TAG = os.getenv("ARGO_EVENTS_IMAGE_TAG", "v1.9.2") # Argo Events application version
|
|
27
|
+
|
|
17
28
|
components = {
|
|
18
29
|
"metadata-service": ["postgresql"],
|
|
19
30
|
"ui": ["postgresql", "minio"],
|
|
@@ -21,9 +32,10 @@ components = {
|
|
|
21
32
|
"postgresql": [],
|
|
22
33
|
"argo-workflows": [],
|
|
23
34
|
"argo-events": ["argo-workflows"],
|
|
35
|
+
"jobset": [],
|
|
24
36
|
}
|
|
25
37
|
|
|
26
|
-
services_env = os.getenv("SERVICES", "").strip().lower()
|
|
38
|
+
services_env = os.getenv("SERVICES", "all").strip().lower()
|
|
27
39
|
|
|
28
40
|
if services_env:
|
|
29
41
|
if services_env == "all":
|
|
@@ -172,6 +184,7 @@ if "postgresql" in enabled_components:
|
|
|
172
184
|
'auth.username=metaflow',
|
|
173
185
|
'auth.password=metaflow123',
|
|
174
186
|
'auth.database=metaflow',
|
|
187
|
+
'image.repository=bitnamilegacy/postgresql',
|
|
175
188
|
'primary.persistence.enabled=false',
|
|
176
189
|
'primary.resources.requests.memory=128Mi',
|
|
177
190
|
'primary.resources.requests.cpu=50m',
|
|
@@ -205,6 +218,7 @@ if "postgresql" in enabled_components:
|
|
|
205
218
|
if "argo-workflows" in enabled_components:
|
|
206
219
|
helm_remote(
|
|
207
220
|
'argo-workflows',
|
|
221
|
+
version=ARGO_WORKFLOWS_HELM_CHART_VERSION,
|
|
208
222
|
repo_name='argo',
|
|
209
223
|
repo_url='https://argoproj.github.io/argo-helm',
|
|
210
224
|
set=[
|
|
@@ -220,7 +234,9 @@ if "argo-workflows" in enabled_components:
|
|
|
220
234
|
'controller.resources.requests.memory=128Mi',
|
|
221
235
|
'controller.resources.requests.cpu=50m',
|
|
222
236
|
'controller.resources.limits.memory=256Mi',
|
|
223
|
-
'controller.resources.limits.cpu=100m'
|
|
237
|
+
'controller.resources.limits.cpu=100m',
|
|
238
|
+
# Image version overrides
|
|
239
|
+
'images.tag=%s' % ARGO_WORKFLOWS_IMAGE_TAG,
|
|
224
240
|
]
|
|
225
241
|
)
|
|
226
242
|
|
|
@@ -307,6 +323,7 @@ if "argo-workflows" in enabled_components:
|
|
|
307
323
|
if "argo-events" in enabled_components:
|
|
308
324
|
helm_remote(
|
|
309
325
|
'argo-events',
|
|
326
|
+
version=ARGO_EVENTS_HELM_CHART_VERSION,
|
|
310
327
|
repo_name='argo',
|
|
311
328
|
repo_url='https://argoproj.github.io/argo-helm',
|
|
312
329
|
set=[
|
|
@@ -334,6 +351,8 @@ if "argo-events" in enabled_components:
|
|
|
334
351
|
'configs.jetstream.versions[1].natsImage=nats:2.9.15',
|
|
335
352
|
'configs.jetstream.versions[1].startCommand=/nats-server',
|
|
336
353
|
'configs.jetstream.versions[1].version=2.9.15',
|
|
354
|
+
# Image version overrides
|
|
355
|
+
'global.image.tag=%s' % ARGO_EVENTS_IMAGE_TAG,
|
|
337
356
|
]
|
|
338
357
|
)
|
|
339
358
|
|
|
@@ -541,6 +560,62 @@ if "argo-events" in enabled_components:
|
|
|
541
560
|
config_resources.append('argo-events-controller-manager')
|
|
542
561
|
config_resources.append('argo-events-webhook-eventsource-svc')
|
|
543
562
|
|
|
563
|
+
#################################################
|
|
564
|
+
# JOBSET
|
|
565
|
+
#################################################
|
|
566
|
+
if "jobset" in enabled_components:
|
|
567
|
+
# Apply JobSet manifests directly from GitHub releases
|
|
568
|
+
jobset_manifest_url = "https://github.com/kubernetes-sigs/jobset/releases/download/%s/manifests.yaml" % JOBSET_VERSION
|
|
569
|
+
|
|
570
|
+
cmd = "curl -sSL %s" % (jobset_manifest_url)
|
|
571
|
+
k8s_yaml(
|
|
572
|
+
local(
|
|
573
|
+
cmd,
|
|
574
|
+
)
|
|
575
|
+
)
|
|
576
|
+
|
|
577
|
+
k8s_resource(
|
|
578
|
+
'jobset-controller-manager',
|
|
579
|
+
labels=['jobset'],
|
|
580
|
+
)
|
|
581
|
+
|
|
582
|
+
metaflow_config["METAFLOW_KUBERNETES_JOBSET_ENABLED"] = "true"
|
|
583
|
+
|
|
584
|
+
config_resources.append('jobset-controller-manager')
|
|
585
|
+
|
|
586
|
+
# ClusterRole for jobset operations
|
|
587
|
+
k8s_yaml(encode_yaml({
|
|
588
|
+
'apiVersion': 'rbac.authorization.k8s.io/v1',
|
|
589
|
+
'kind': 'ClusterRole',
|
|
590
|
+
'metadata': {
|
|
591
|
+
'name': 'jobset-full-access'
|
|
592
|
+
},
|
|
593
|
+
'rules': [{
|
|
594
|
+
'apiGroups': ['jobset.x-k8s.io'],
|
|
595
|
+
'resources': ['jobsets'],
|
|
596
|
+
'verbs': ['*']
|
|
597
|
+
}]
|
|
598
|
+
}))
|
|
599
|
+
|
|
600
|
+
# ClusterRoleBinding for default service account to access jobsets
|
|
601
|
+
k8s_yaml(encode_yaml({
|
|
602
|
+
'apiVersion': 'rbac.authorization.k8s.io/v1',
|
|
603
|
+
'kind': 'ClusterRoleBinding',
|
|
604
|
+
'metadata': {
|
|
605
|
+
'name': 'default-jobset-binding'
|
|
606
|
+
},
|
|
607
|
+
'subjects': [{
|
|
608
|
+
'kind': 'ServiceAccount',
|
|
609
|
+
'name': 'default',
|
|
610
|
+
'namespace': 'default'
|
|
611
|
+
}],
|
|
612
|
+
'roleRef': {
|
|
613
|
+
'kind': 'ClusterRole',
|
|
614
|
+
'name': 'jobset-full-access',
|
|
615
|
+
'apiGroup': 'rbac.authorization.k8s.io'
|
|
616
|
+
}
|
|
617
|
+
}))
|
|
618
|
+
|
|
544
619
|
#################################################
|
|
545
620
|
# METADATA SERVICE
|
|
546
621
|
#################################################
|
|
@@ -555,7 +630,7 @@ if "metadata-service" in enabled_components:
|
|
|
555
630
|
'metadatadb.database=metaflow',
|
|
556
631
|
'metadatadb.host=postgresql',
|
|
557
632
|
'image.repository=public.ecr.aws/outerbounds/metaflow_metadata_service',
|
|
558
|
-
'image.tag=2.
|
|
633
|
+
'image.tag=2.5.0',
|
|
559
634
|
'resources.requests.cpu=25m',
|
|
560
635
|
'resources.requests.memory=64Mi',
|
|
561
636
|
'resources.limits.cpu=50m',
|
|
@@ -8,7 +8,11 @@ from metaflow.plugins.cards.card_modules.components import (
|
|
|
8
8
|
Markdown,
|
|
9
9
|
VegaChart,
|
|
10
10
|
ProgressBar,
|
|
11
|
+
ValueBox,
|
|
11
12
|
PythonCode,
|
|
13
|
+
EventsTimeline,
|
|
14
|
+
JSONViewer,
|
|
15
|
+
YAMLViewer,
|
|
12
16
|
)
|
|
13
17
|
from metaflow.plugins.cards.card_modules.basic import (
|
|
14
18
|
DefaultCard,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import os
|
|
1
2
|
import functools
|
|
2
3
|
import inspect
|
|
3
4
|
import os
|
|
@@ -7,7 +8,6 @@ from datetime import datetime
|
|
|
7
8
|
|
|
8
9
|
import metaflow.tracing as tracing
|
|
9
10
|
from metaflow._vendor import click
|
|
10
|
-
from metaflow.system import _system_logger, _system_monitor
|
|
11
11
|
|
|
12
12
|
from . import decorators, lint, metaflow_version, parameters, plugins
|
|
13
13
|
from .cli_args import cli_args
|
|
@@ -27,6 +27,8 @@ from .metaflow_config import (
|
|
|
27
27
|
DEFAULT_PACKAGE_SUFFIXES,
|
|
28
28
|
)
|
|
29
29
|
from .metaflow_current import current
|
|
30
|
+
from .metaflow_profile import from_start
|
|
31
|
+
from metaflow.system import _system_monitor, _system_logger
|
|
30
32
|
from .metaflow_environment import MetaflowEnvironment
|
|
31
33
|
from .packaging_sys import MetaflowCodeContent
|
|
32
34
|
from .plugins import (
|
|
@@ -38,9 +40,9 @@ from .plugins import (
|
|
|
38
40
|
)
|
|
39
41
|
from .pylint_wrapper import PyLint
|
|
40
42
|
from .R import metaflow_r_version, use_r
|
|
43
|
+
from .util import get_latest_run_id, resolve_identity, decompress_list
|
|
41
44
|
from .user_configs.config_options import LocalFileInput, config_options
|
|
42
45
|
from .user_configs.config_parameters import ConfigValue
|
|
43
|
-
from .util import get_latest_run_id, resolve_identity
|
|
44
46
|
|
|
45
47
|
ERASE_TO_EOL = "\033[K"
|
|
46
48
|
HIGHLIGHT = "red"
|
|
@@ -125,6 +127,8 @@ def logger(body="", system_msg=False, head="", bad=False, timestamp=True, nl=Tru
|
|
|
125
127
|
"step": "metaflow.cli_components.step_cmd.step",
|
|
126
128
|
"run": "metaflow.cli_components.run_cmds.run",
|
|
127
129
|
"resume": "metaflow.cli_components.run_cmds.resume",
|
|
130
|
+
"spin": "metaflow.cli_components.run_cmds.spin",
|
|
131
|
+
"spin-step": "metaflow.cli_components.step_cmd.spin_step",
|
|
128
132
|
},
|
|
129
133
|
)
|
|
130
134
|
def cli(ctx):
|
|
@@ -318,6 +322,13 @@ def version(obj):
|
|
|
318
322
|
hidden=True,
|
|
319
323
|
is_eager=True,
|
|
320
324
|
)
|
|
325
|
+
@click.option(
|
|
326
|
+
"--mode",
|
|
327
|
+
type=click.Choice(["spin"]),
|
|
328
|
+
default=None,
|
|
329
|
+
help="Execution mode for metaflow CLI commands. Use 'spin' to enable "
|
|
330
|
+
"spin metadata and spin datastore for executions",
|
|
331
|
+
)
|
|
321
332
|
@click.pass_context
|
|
322
333
|
def start(
|
|
323
334
|
ctx,
|
|
@@ -335,6 +346,7 @@ def start(
|
|
|
335
346
|
local_config_file=None,
|
|
336
347
|
config=None,
|
|
337
348
|
config_value=None,
|
|
349
|
+
mode=None,
|
|
338
350
|
**deco_options
|
|
339
351
|
):
|
|
340
352
|
if quiet:
|
|
@@ -347,6 +359,7 @@ def start(
|
|
|
347
359
|
if use_r():
|
|
348
360
|
version = metaflow_r_version()
|
|
349
361
|
|
|
362
|
+
from_start("MetaflowCLI: Starting")
|
|
350
363
|
echo("Metaflow %s" % version, fg="magenta", bold=True, nl=False)
|
|
351
364
|
echo(" executing *%s*" % ctx.obj.flow.name, fg="magenta", nl=False)
|
|
352
365
|
echo(" for *%s*" % resolve_identity(), fg="magenta")
|
|
@@ -366,6 +379,7 @@ def start(
|
|
|
366
379
|
ctx.obj.check = functools.partial(_check, echo)
|
|
367
380
|
ctx.obj.top_cli = cli
|
|
368
381
|
ctx.obj.package_suffixes = package_suffixes.split(",")
|
|
382
|
+
ctx.obj.spin_mode = mode == "spin"
|
|
369
383
|
|
|
370
384
|
ctx.obj.datastore_impl = [d for d in DATASTORES if d.TYPE == datastore][0]
|
|
371
385
|
|
|
@@ -472,19 +486,12 @@ def start(
|
|
|
472
486
|
# set force rebuild flag for environments that support it.
|
|
473
487
|
ctx.obj.environment._force_rebuild = force_rebuild_environments
|
|
474
488
|
ctx.obj.environment.validate_environment(ctx.obj.logger, datastore)
|
|
475
|
-
|
|
476
489
|
ctx.obj.event_logger = LOGGING_SIDECARS[event_logger](
|
|
477
490
|
flow=ctx.obj.flow, env=ctx.obj.environment
|
|
478
491
|
)
|
|
479
|
-
ctx.obj.event_logger.start()
|
|
480
|
-
_system_logger.init_system_logger(ctx.obj.flow.name, ctx.obj.event_logger)
|
|
481
|
-
|
|
482
492
|
ctx.obj.monitor = MONITOR_SIDECARS[monitor](
|
|
483
493
|
flow=ctx.obj.flow, env=ctx.obj.environment
|
|
484
494
|
)
|
|
485
|
-
ctx.obj.monitor.start()
|
|
486
|
-
_system_monitor.init_system_monitor(ctx.obj.flow.name, ctx.obj.monitor)
|
|
487
|
-
|
|
488
495
|
ctx.obj.metadata = [m for m in METADATA_PROVIDERS if m.TYPE == metadata][0](
|
|
489
496
|
ctx.obj.environment, ctx.obj.flow, ctx.obj.event_logger, ctx.obj.monitor
|
|
490
497
|
)
|
|
@@ -498,6 +505,57 @@ def start(
|
|
|
498
505
|
)
|
|
499
506
|
|
|
500
507
|
ctx.obj.config_options = config_options
|
|
508
|
+
ctx.obj.is_spin = False
|
|
509
|
+
ctx.obj.skip_decorators = False
|
|
510
|
+
|
|
511
|
+
# Override values for spin steps, or if we are in spin mode
|
|
512
|
+
if (
|
|
513
|
+
hasattr(ctx, "saved_args")
|
|
514
|
+
and ctx.saved_args
|
|
515
|
+
and "spin" in ctx.saved_args[0]
|
|
516
|
+
or ctx.obj.spin_mode
|
|
517
|
+
):
|
|
518
|
+
# To minimize side effects for spin, we will only use the following:
|
|
519
|
+
# - local metadata provider,
|
|
520
|
+
# - local datastore,
|
|
521
|
+
# - local environment,
|
|
522
|
+
# - null event logger,
|
|
523
|
+
# - null monitor
|
|
524
|
+
ctx.obj.is_spin = True
|
|
525
|
+
if "--skip-decorators" in ctx.saved_args:
|
|
526
|
+
ctx.obj.skip_decorators = True
|
|
527
|
+
|
|
528
|
+
ctx.obj.event_logger = LOGGING_SIDECARS["nullSidecarLogger"](
|
|
529
|
+
flow=ctx.obj.flow, env=ctx.obj.environment
|
|
530
|
+
)
|
|
531
|
+
ctx.obj.monitor = MONITOR_SIDECARS["nullSidecarMonitor"](
|
|
532
|
+
flow=ctx.obj.flow, env=ctx.obj.environment
|
|
533
|
+
)
|
|
534
|
+
# Use spin metadata, spin datastore, and spin datastore root
|
|
535
|
+
ctx.obj.metadata = [m for m in METADATA_PROVIDERS if m.TYPE == "spin"][0](
|
|
536
|
+
ctx.obj.environment, ctx.obj.flow, ctx.obj.event_logger, ctx.obj.monitor
|
|
537
|
+
)
|
|
538
|
+
ctx.obj.datastore_impl = [d for d in DATASTORES if d.TYPE == "spin"][0]
|
|
539
|
+
datastore_root = ctx.obj.datastore_impl.get_datastore_root_from_config(
|
|
540
|
+
ctx.obj.echo, create_on_absent=True
|
|
541
|
+
)
|
|
542
|
+
ctx.obj.datastore_impl.datastore_root = datastore_root
|
|
543
|
+
|
|
544
|
+
ctx.obj.flow_datastore = FlowDataStore(
|
|
545
|
+
ctx.obj.flow.name,
|
|
546
|
+
ctx.obj.environment, # Same environment as run/resume
|
|
547
|
+
ctx.obj.metadata, # local metadata
|
|
548
|
+
ctx.obj.event_logger, # null event logger
|
|
549
|
+
ctx.obj.monitor, # null monitor
|
|
550
|
+
storage_impl=ctx.obj.datastore_impl,
|
|
551
|
+
)
|
|
552
|
+
|
|
553
|
+
# Start event logger and monitor
|
|
554
|
+
ctx.obj.event_logger.start()
|
|
555
|
+
_system_logger.init_system_logger(ctx.obj.flow.name, ctx.obj.event_logger)
|
|
556
|
+
|
|
557
|
+
ctx.obj.monitor.start()
|
|
558
|
+
_system_monitor.init_system_monitor(ctx.obj.flow.name, ctx.obj.monitor)
|
|
501
559
|
|
|
502
560
|
decorators._init(ctx.obj.flow)
|
|
503
561
|
|
|
@@ -512,9 +570,11 @@ def start(
|
|
|
512
570
|
ctx.obj.logger,
|
|
513
571
|
echo,
|
|
514
572
|
deco_options,
|
|
573
|
+
ctx.obj.is_spin,
|
|
574
|
+
ctx.obj.skip_decorators,
|
|
515
575
|
)
|
|
516
576
|
|
|
517
|
-
# In the case of run/resume, we will want to apply the TL decospecs
|
|
577
|
+
# In the case of run/resume/spin, we will want to apply the TL decospecs
|
|
518
578
|
# *after* the run decospecs so that they don't take precedence. In other
|
|
519
579
|
# words, for the same decorator, we want `myflow.py run --with foo` to
|
|
520
580
|
# take precedence over any other `foo` decospec
|
|
@@ -542,11 +602,10 @@ def start(
|
|
|
542
602
|
if (
|
|
543
603
|
hasattr(ctx, "saved_args")
|
|
544
604
|
and ctx.saved_args
|
|
545
|
-
and ctx.saved_args[0] not in ("run", "resume")
|
|
605
|
+
and ctx.saved_args[0] not in ("run", "resume", "spin")
|
|
546
606
|
):
|
|
547
|
-
# run/resume are special cases because they can add more decorators with --with,
|
|
607
|
+
# run/resume/spin are special cases because they can add more decorators with --with,
|
|
548
608
|
# so they have to take care of themselves.
|
|
549
|
-
|
|
550
609
|
all_decospecs = ctx.obj.tl_decospecs + list(
|
|
551
610
|
ctx.obj.environment.decospecs() or []
|
|
552
611
|
)
|
|
@@ -556,6 +615,9 @@ def start(
|
|
|
556
615
|
# or a scheduler setting them up in their own way.
|
|
557
616
|
if ctx.saved_args[0] not in ("step", "init"):
|
|
558
617
|
all_decospecs += DEFAULT_DECOSPECS.split()
|
|
618
|
+
elif ctx.saved_args[0] == "spin-step":
|
|
619
|
+
# If we are in spin-args, we will not attach any decorators
|
|
620
|
+
all_decospecs = []
|
|
559
621
|
if all_decospecs:
|
|
560
622
|
decorators._attach_decorators(ctx.obj.flow, all_decospecs)
|
|
561
623
|
decorators._init(ctx.obj.flow)
|
|
@@ -569,6 +631,9 @@ def start(
|
|
|
569
631
|
ctx.obj.environment,
|
|
570
632
|
ctx.obj.flow_datastore,
|
|
571
633
|
ctx.obj.logger,
|
|
634
|
+
# The last two arguments are only used for spin steps
|
|
635
|
+
ctx.obj.is_spin,
|
|
636
|
+
ctx.obj.skip_decorators,
|
|
572
637
|
)
|
|
573
638
|
|
|
574
639
|
# Check the graph again (mutators may have changed it)
|