ob-metaflow 2.16.6.4rc0__tar.gz → 2.16.6.5rc1__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.
Potentially problematic release.
This version of ob-metaflow might be problematic. Click here for more details.
- {ob_metaflow-2.16.6.4rc0/ob_metaflow.egg-info → ob_metaflow-2.16.6.5rc1}/PKG-INFO +2 -2
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/devtools/Tiltfile +43 -2
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/devtools/pick_services.sh +1 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/imghdr/__init__.py +0 -5
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/client/core.py +1 -6
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/extension_support/__init__.py +3 -4
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/metaflow_environment.py +6 -14
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/package/__init__.py +9 -18
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/packaging_sys/__init__.py +43 -53
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/packaging_sys/backend.py +6 -21
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/packaging_sys/tar_backend.py +3 -16
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/packaging_sys/v1.py +21 -21
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/argo/argo_client.py +31 -14
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/argo/argo_workflows.py +66 -17
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/argo/argo_workflows_cli.py +1 -2
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/argo/argo_workflows_deployer_objects.py +32 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +14 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/kubernetes/kubernetes_decorator.py +1 -1
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/pypi/conda_decorator.py +2 -4
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/runner/click_api.py +7 -14
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/runner/deployer.py +83 -7
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/runner/subprocess_manager.py +12 -20
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/user_decorators/mutable_flow.py +3 -1
- ob_metaflow-2.16.6.5rc1/metaflow/version.py +1 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1/ob_metaflow.egg-info}/PKG-INFO +2 -2
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/ob_metaflow.egg-info/requires.txt +1 -1
- ob_metaflow-2.16.6.4rc0/metaflow/version.py +0 -1
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/LICENSE +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/MANIFEST.in +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/README.md +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/devtools/Makefile +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/R.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/_bashcomplete.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/_compat.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/_termui_impl.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/_textwrap.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/_unicodefun.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/_winconsole.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/core.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/decorators.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/exceptions.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/formatting.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/globals.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/parser.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/termui.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/testing.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/types.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/click/utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/importlib_metadata/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/importlib_metadata/_adapters.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/importlib_metadata/_collections.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/importlib_metadata/_compat.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/importlib_metadata/_functools.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/importlib_metadata/_itertools.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/importlib_metadata/_meta.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/importlib_metadata/_text.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/importlib_metadata/py.typed +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/packaging/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/packaging/_elffile.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/packaging/_manylinux.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/packaging/_musllinux.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/packaging/_parser.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/packaging/_structures.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/packaging/_tokenizer.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/packaging/markers.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/packaging/py.typed +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/packaging/requirements.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/packaging/specifiers.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/packaging/tags.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/packaging/utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/packaging/version.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/typeguard/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/typeguard/_checkers.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/typeguard/_config.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/typeguard/_decorators.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/typeguard/_exceptions.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/typeguard/_functions.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/typeguard/_importhook.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/typeguard/_memo.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/typeguard/_pytest_plugin.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/typeguard/_suppression.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/typeguard/_transformer.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/typeguard/_union_transformer.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/typeguard/_utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/typeguard/py.typed +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/typing_extensions.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_6/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_6/importlib_metadata/_meta.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_6/importlib_metadata/_text.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_6/importlib_metadata/py.typed +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_6/typing_extensions.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_6/zipp.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/importlib_metadata/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/importlib_metadata/_adapters.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/importlib_metadata/_collections.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/importlib_metadata/_compat.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/importlib_metadata/_functools.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/importlib_metadata/_itertools.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/importlib_metadata/_meta.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/importlib_metadata/_text.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/importlib_metadata/py.typed +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/typeguard/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/typeguard/_checkers.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/typeguard/_config.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/typeguard/_decorators.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/typeguard/_exceptions.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/typeguard/_functions.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/typeguard/_importhook.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/typeguard/_memo.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/typeguard/_pytest_plugin.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/typeguard/_suppression.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/typeguard/_transformer.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/typeguard/_union_transformer.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/typeguard/_utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/typeguard/py.typed +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/typing_extensions.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/v3_7/zipp.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/_vendor/zipp.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cards.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cli.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cli_args.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cli_components/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cli_components/dump_cmd.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cli_components/init_cmd.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cli_components/run_cmds.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cli_components/step_cmd.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cli_components/utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/client/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/client/filecache.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/clone_util.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cmd/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cmd/code/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cmd/configure_cmd.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cmd/develop/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cmd/develop/stub_generator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cmd/develop/stubs.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cmd/main_cli.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cmd/make_wrapper.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cmd/tutorials_cmd.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cmd/util.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/cmd_with_io.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/datastore/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/datastore/content_addressed_store.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/datastore/datastore_set.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/datastore/datastore_storage.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/datastore/exceptions.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/datastore/flow_datastore.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/datastore/inputs.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/datastore/task_datastore.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/debug.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/decorators.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/event_logger.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/events.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/exception.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/extension_support/_empty_file.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/extension_support/cmd.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/extension_support/integrations.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/extension_support/plugins.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/flowspec.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/graph.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/includefile.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/integrations.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/lint.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/meta_files.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/metadata_provider/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/metadata_provider/heartbeat.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/metadata_provider/metadata.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/metadata_provider/util.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/metaflow_config.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/metaflow_config_funcs.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/metaflow_current.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/metaflow_git.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/metaflow_profile.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/metaflow_version.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/mflog/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/mflog/mflog.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/mflog/save_logs.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/mflog/save_logs_periodically.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/mflog/tee.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/monitor.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/multicore_utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/packaging_sys/distribution_support.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/packaging_sys/utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/parameters.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/airflow/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/airflow/airflow.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/airflow/airflow_cli.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/airflow/airflow_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/airflow/airflow_utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/airflow/dag.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/airflow/exception.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/airflow/plumbing/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/airflow/plumbing/set_parameters.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/airflow/sensors/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/airflow/sensors/base_sensor.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/airflow/sensors/external_task_sensor.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/airflow/sensors/s3_sensor.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/argo/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/argo/argo_events.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/argo/argo_workflows_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/argo/argo_workflows_deployer.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/argo/capture_error.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/argo/exit_hooks.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/argo/generate_input_paths.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/argo/jobset_input_paths.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/aws_client.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/aws_utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/batch/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/batch/batch.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/batch/batch_cli.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/batch/batch_client.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/batch/batch_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/secrets_manager/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/step_functions/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/step_functions/dynamo_db_client.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/step_functions/event_bridge_client.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/step_functions/production_token.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/step_functions/schedule_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/step_functions/set_batch_environment.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/step_functions/step_functions.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/step_functions/step_functions_cli.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/step_functions/step_functions_client.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/step_functions/step_functions_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/aws/step_functions/step_functions_deployer.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/azure/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/azure/azure_credential.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/azure/azure_exceptions.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/azure/azure_secret_manager_secrets_provider.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/azure/azure_tail.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/azure/azure_utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/azure/blob_service_client_factory.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/azure/includefile_support.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_cli.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_client.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_creator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_datastore.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_modules/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_modules/base.html +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_modules/basic.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_modules/bundle.css +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_modules/card.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_modules/chevron/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_modules/chevron/main.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_modules/chevron/metadata.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_modules/chevron/renderer.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_modules/chevron/tokenizer.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_modules/components.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_modules/convert_to_native_type.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_modules/main.js +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_modules/renderer_tools.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_modules/test_cards.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_resolver.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_server.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/card_viewer/viewer.html +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/component_serializer.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/exception.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/cards/metadata.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/catch_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/datastores/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/datastores/azure_storage.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/datastores/gs_storage.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/datastores/local_storage.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/datastores/s3_storage.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/datatools/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/datatools/local.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/datatools/s3/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/datatools/s3/s3.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/datatools/s3/s3op.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/datatools/s3/s3tail.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/datatools/s3/s3util.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/debug_logger.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/debug_monitor.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/client.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/client_modules.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/communication/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/communication/bytestream.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/communication/channel.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/communication/socket_bytestream.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/communication/utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/consts.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/data_transferer.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/exception_transferer.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/override_decorators.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/server.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/stub.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/env_escape/utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/environment_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/events_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/exit_hook/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/exit_hook/exit_hook_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/exit_hook/exit_hook_script.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/frameworks/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/frameworks/pytorch.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/gcp/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/gcp/gs_exceptions.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/gcp/gs_storage_client_factory.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/gcp/gs_tail.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/gcp/gs_utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/gcp/includefile_support.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/kubernetes/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/kubernetes/kube_utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/kubernetes/kubernetes.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/kubernetes/kubernetes_cli.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/kubernetes/kubernetes_client.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/kubernetes/kubernetes_job.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/kubernetes/kubernetes_jobsets.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/kubernetes/spot_metadata_cli.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/kubernetes/spot_monitor_sidecar.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/logs_cli.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/metadata_providers/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/metadata_providers/local.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/metadata_providers/service.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/package_cli.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/parallel_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/project_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/pypi/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/pypi/bootstrap.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/pypi/conda_environment.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/pypi/micromamba.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/pypi/parsers.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/pypi/pip.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/pypi/pypi_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/pypi/pypi_environment.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/pypi/utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/resources_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/retry_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/secrets/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/secrets/inline_secrets_provider.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/secrets/secrets_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/secrets/secrets_func.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/secrets/secrets_spec.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/secrets/utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/storage_executor.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/tag_cli.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/test_unbounded_foreach_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/timeout_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/uv/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/uv/bootstrap.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/plugins/uv/uv_environment.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/procpoll.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/py.typed +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/pylint_wrapper.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/runner/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/runner/deployer_impl.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/runner/metaflow_runner.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/runner/nbdeploy.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/runner/nbrun.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/runner/utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/runtime.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/sidecar/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/sidecar/sidecar.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/sidecar/sidecar_messages.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/sidecar/sidecar_subprocess.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/sidecar/sidecar_worker.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/system/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/system/system_logger.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/system/system_monitor.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/system/system_utils.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tagging_util.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/task.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tracing/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tracing/propagator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tracing/span_exporter.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tracing/tracing_modules.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tuple_util.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/00-helloworld/README.md +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/00-helloworld/helloworld.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/01-playlist/README.md +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/01-playlist/movies.csv +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/01-playlist/playlist.ipynb +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/01-playlist/playlist.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/02-statistics/README.md +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/02-statistics/movies.csv +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/02-statistics/stats.ipynb +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/02-statistics/stats.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/03-playlist-redux/README.md +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/03-playlist-redux/playlist.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/04-playlist-plus/README.md +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/04-playlist-plus/playlist.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/05-hello-cloud/README.md +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/05-hello-cloud/hello-cloud.ipynb +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/05-hello-cloud/hello-cloud.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/06-statistics-redux/README.md +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/06-statistics-redux/stats.ipynb +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/07-worldview/README.md +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/07-worldview/worldview.ipynb +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/08-autopilot/README.md +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/tutorials/08-autopilot/autopilot.ipynb +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/unbounded_foreach.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/user_configs/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/user_configs/config_options.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/user_configs/config_parameters.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/user_decorators/__init__.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/user_decorators/common.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/user_decorators/mutable_step.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/user_decorators/user_flow_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/user_decorators/user_step_decorator.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/util.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/metaflow/vendor.py +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/ob_metaflow.egg-info/SOURCES.txt +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/ob_metaflow.egg-info/dependency_links.txt +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/ob_metaflow.egg-info/entry_points.txt +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/ob_metaflow.egg-info/top_level.txt +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/setup.cfg +0 -0
- {ob_metaflow-2.16.6.4rc0 → ob_metaflow-2.16.6.5rc1}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ob-metaflow
|
|
3
|
-
Version: 2.16.6.
|
|
3
|
+
Version: 2.16.6.5rc1
|
|
4
4
|
Summary: Metaflow: More AI and ML, Less Engineering
|
|
5
5
|
Author: Netflix, Outerbounds & the Metaflow Community
|
|
6
6
|
Author-email: help@outerbounds.co
|
|
@@ -12,7 +12,7 @@ Requires-Dist: boto3
|
|
|
12
12
|
Requires-Dist: pylint
|
|
13
13
|
Requires-Dist: kubernetes
|
|
14
14
|
Provides-Extra: stubs
|
|
15
|
-
Requires-Dist: metaflow-stubs==2.16.6.
|
|
15
|
+
Requires-Dist: metaflow-stubs==2.16.6.5rc1; extra == "stubs"
|
|
16
16
|
Dynamic: author
|
|
17
17
|
Dynamic: author-email
|
|
18
18
|
Dynamic: description
|
|
@@ -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.6.0")
|
|
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":
|
|
@@ -205,6 +217,7 @@ if "postgresql" in enabled_components:
|
|
|
205
217
|
if "argo-workflows" in enabled_components:
|
|
206
218
|
helm_remote(
|
|
207
219
|
'argo-workflows',
|
|
220
|
+
version=ARGO_WORKFLOWS_HELM_CHART_VERSION,
|
|
208
221
|
repo_name='argo',
|
|
209
222
|
repo_url='https://argoproj.github.io/argo-helm',
|
|
210
223
|
set=[
|
|
@@ -220,7 +233,9 @@ if "argo-workflows" in enabled_components:
|
|
|
220
233
|
'controller.resources.requests.memory=128Mi',
|
|
221
234
|
'controller.resources.requests.cpu=50m',
|
|
222
235
|
'controller.resources.limits.memory=256Mi',
|
|
223
|
-
'controller.resources.limits.cpu=100m'
|
|
236
|
+
'controller.resources.limits.cpu=100m',
|
|
237
|
+
# Image version overrides
|
|
238
|
+
'images.tag=%s' % ARGO_WORKFLOWS_IMAGE_TAG,
|
|
224
239
|
]
|
|
225
240
|
)
|
|
226
241
|
|
|
@@ -307,6 +322,7 @@ if "argo-workflows" in enabled_components:
|
|
|
307
322
|
if "argo-events" in enabled_components:
|
|
308
323
|
helm_remote(
|
|
309
324
|
'argo-events',
|
|
325
|
+
version=ARGO_EVENTS_HELM_CHART_VERSION,
|
|
310
326
|
repo_name='argo',
|
|
311
327
|
repo_url='https://argoproj.github.io/argo-helm',
|
|
312
328
|
set=[
|
|
@@ -334,6 +350,8 @@ if "argo-events" in enabled_components:
|
|
|
334
350
|
'configs.jetstream.versions[1].natsImage=nats:2.9.15',
|
|
335
351
|
'configs.jetstream.versions[1].startCommand=/nats-server',
|
|
336
352
|
'configs.jetstream.versions[1].version=2.9.15',
|
|
353
|
+
# Image version overrides
|
|
354
|
+
'global.image.tag=%s' % ARGO_EVENTS_IMAGE_TAG,
|
|
337
355
|
]
|
|
338
356
|
)
|
|
339
357
|
|
|
@@ -541,6 +559,29 @@ if "argo-events" in enabled_components:
|
|
|
541
559
|
config_resources.append('argo-events-controller-manager')
|
|
542
560
|
config_resources.append('argo-events-webhook-eventsource-svc')
|
|
543
561
|
|
|
562
|
+
#################################################
|
|
563
|
+
# JOBSET
|
|
564
|
+
#################################################
|
|
565
|
+
if "jobset" in enabled_components:
|
|
566
|
+
# Apply JobSet manifests directly from GitHub releases
|
|
567
|
+
jobset_manifest_url = "https://github.com/kubernetes-sigs/jobset/releases/download/%s/manifests.yaml" % JOBSET_VERSION
|
|
568
|
+
|
|
569
|
+
cmd = "curl -sSL %s" % (jobset_manifest_url)
|
|
570
|
+
k8s_yaml(
|
|
571
|
+
local(
|
|
572
|
+
cmd,
|
|
573
|
+
)
|
|
574
|
+
)
|
|
575
|
+
|
|
576
|
+
k8s_resource(
|
|
577
|
+
'jobset-controller-manager',
|
|
578
|
+
labels=['jobset'],
|
|
579
|
+
)
|
|
580
|
+
|
|
581
|
+
metaflow_config["METAFLOW_KUBERNETES_JOBSET_ENABLED"] = "true"
|
|
582
|
+
|
|
583
|
+
config_resources.append('jobset-controller-manager')
|
|
584
|
+
|
|
544
585
|
#################################################
|
|
545
586
|
# METADATA SERVICE
|
|
546
587
|
#################################################
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
"""Recognize image file formats based on their first few bytes."""
|
|
2
2
|
|
|
3
3
|
from os import PathLike
|
|
4
|
-
import warnings
|
|
5
4
|
|
|
6
5
|
__all__ = ["what"]
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
warnings._deprecated(__name__, remove=(3, 13))
|
|
10
|
-
|
|
11
|
-
|
|
12
7
|
#-------------------------#
|
|
13
8
|
# Recognize image headers #
|
|
14
9
|
#-------------------------#
|
|
@@ -831,12 +831,10 @@ class MetaflowCode(object):
|
|
|
831
831
|
)
|
|
832
832
|
self._code_obj = BytesIO(blobdata)
|
|
833
833
|
self._info = MetaflowPackage.cls_get_info(self._code_metadata, self._code_obj)
|
|
834
|
-
self._code_obj.seek(0)
|
|
835
834
|
if self._info:
|
|
836
835
|
self._flowspec = MetaflowPackage.cls_get_content(
|
|
837
836
|
self._code_metadata, self._code_obj, self._info["script"]
|
|
838
837
|
)
|
|
839
|
-
self._code_obj.seek(0)
|
|
840
838
|
else:
|
|
841
839
|
raise MetaflowInternalError("Code package metadata is invalid.")
|
|
842
840
|
|
|
@@ -887,9 +885,7 @@ class MetaflowCode(object):
|
|
|
887
885
|
TarFile for everything in this code package
|
|
888
886
|
"""
|
|
889
887
|
if self._backend.type == "tgz":
|
|
890
|
-
|
|
891
|
-
self._code_obj.seek(0)
|
|
892
|
-
return to_return
|
|
888
|
+
return self._backend.cls_open(self._code_obj)
|
|
893
889
|
raise RuntimeError("Archive is not a tarball")
|
|
894
890
|
|
|
895
891
|
def extract(self) -> TemporaryDirectory:
|
|
@@ -925,7 +921,6 @@ class MetaflowCode(object):
|
|
|
925
921
|
MetaflowPackage.cls_extract_into(
|
|
926
922
|
self._code_metadata, self._code_obj, tmp.name, ContentType.USER_CONTENT
|
|
927
923
|
)
|
|
928
|
-
self._code_obj.seek(0)
|
|
929
924
|
return tmp
|
|
930
925
|
|
|
931
926
|
@property
|
|
@@ -205,10 +205,9 @@ def package_mfext_all():
|
|
|
205
205
|
# the packaged metaflow_extensions directory "self-contained" so that
|
|
206
206
|
# python doesn't go and search other parts of the system for more
|
|
207
207
|
# metaflow_extensions.
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
), os.path.join(EXT_PKG, "__init__.py")
|
|
208
|
+
yield os.path.join(
|
|
209
|
+
os.path.dirname(os.path.abspath(__file__)), "_empty_file.py"
|
|
210
|
+
), os.path.join(EXT_PKG, "__init__.py")
|
|
212
211
|
|
|
213
212
|
for p in _all_packages:
|
|
214
213
|
for path_tuple in package_mfext_package(p):
|
|
@@ -203,19 +203,6 @@ class MetaflowEnvironment(object):
|
|
|
203
203
|
"mfcontent_version": 1,
|
|
204
204
|
}
|
|
205
205
|
)
|
|
206
|
-
|
|
207
|
-
extra_exports = []
|
|
208
|
-
for k, v in MetaflowPackage.get_post_extract_env_vars(
|
|
209
|
-
code_package_metadata, dest_dir="$(pwd)"
|
|
210
|
-
).items():
|
|
211
|
-
if k.endswith(":"):
|
|
212
|
-
# If the value ends with a colon, we override the existing value
|
|
213
|
-
extra_exports.append("export %s=%s" % (k[:-1], v))
|
|
214
|
-
else:
|
|
215
|
-
extra_exports.append(
|
|
216
|
-
"export %s=%s:$(printenv %s)" % (k, v.replace('"', '\\"'), k)
|
|
217
|
-
)
|
|
218
|
-
|
|
219
206
|
cmds = (
|
|
220
207
|
[
|
|
221
208
|
BASH_MFLOG,
|
|
@@ -239,7 +226,12 @@ class MetaflowEnvironment(object):
|
|
|
239
226
|
+ MetaflowPackage.get_extract_commands(
|
|
240
227
|
code_package_metadata, "job.tar", dest_dir="."
|
|
241
228
|
)
|
|
242
|
-
+
|
|
229
|
+
+ [
|
|
230
|
+
"export %s=%s:$(printenv %s)" % (k, v.replace('"', '\\"'), k)
|
|
231
|
+
for k, v in MetaflowPackage.get_post_extract_env_vars(
|
|
232
|
+
code_package_metadata, dest_dir="."
|
|
233
|
+
).items()
|
|
234
|
+
]
|
|
243
235
|
+ [
|
|
244
236
|
"mflog 'Task is starting.'",
|
|
245
237
|
"flush_mflogs",
|
|
@@ -17,6 +17,7 @@ from ..packaging_sys.utils import suffix_filter, walk
|
|
|
17
17
|
from ..metaflow_config import DEFAULT_PACKAGE_SUFFIXES
|
|
18
18
|
from ..exception import MetaflowException
|
|
19
19
|
from ..user_configs.config_parameters import dump_config_values
|
|
20
|
+
from ..util import get_metaflow_root
|
|
20
21
|
from .. import R
|
|
21
22
|
|
|
22
23
|
DEFAULT_SUFFIXES_LIST = DEFAULT_PACKAGE_SUFFIXES.split(",")
|
|
@@ -75,22 +76,12 @@ class MetaflowPackage(object):
|
|
|
75
76
|
from ..user_decorators.user_flow_decorator import FlowMutatorMeta
|
|
76
77
|
from ..user_decorators.user_step_decorator import UserStepDecoratorMeta
|
|
77
78
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
or m.__name__ in UserStepDecoratorMeta._import_modules
|
|
85
|
-
or (
|
|
86
|
-
hasattr(m, "METAFLOW_PACKAGE_POLICY")
|
|
87
|
-
and m.METAFLOW_PACKAGE_POLICY == "include"
|
|
88
|
-
)
|
|
89
|
-
):
|
|
90
|
-
return True
|
|
91
|
-
return False
|
|
92
|
-
except:
|
|
93
|
-
return False
|
|
79
|
+
if (
|
|
80
|
+
m.__name__ in FlowMutatorMeta._import_modules
|
|
81
|
+
or m.__name__ in UserStepDecoratorMeta._import_modules
|
|
82
|
+
or hasattr(m, "METAFLOW_PACKAGE")
|
|
83
|
+
):
|
|
84
|
+
return True
|
|
94
85
|
|
|
95
86
|
if mfcontent is None:
|
|
96
87
|
self._mfcontent = MetaflowCodeContentV1(criteria=_module_selector)
|
|
@@ -359,10 +350,10 @@ class MetaflowPackage(object):
|
|
|
359
350
|
"""
|
|
360
351
|
backend = cls.get_backend(pkg_metadata)
|
|
361
352
|
with backend.cls_open(archive) as opened_archive:
|
|
362
|
-
|
|
353
|
+
include_names = MetaflowCodeContent.get_archive_content_names(
|
|
363
354
|
opened_archive, content_types, backend
|
|
364
355
|
)
|
|
365
|
-
backend.
|
|
356
|
+
backend.extract_members(include_names, dest_dir)
|
|
366
357
|
|
|
367
358
|
def user_tuples(self, timeout: Optional[float] = None):
|
|
368
359
|
# Wait for at least the blob to be formed
|
|
@@ -118,7 +118,9 @@ class MetaflowCodeContent:
|
|
|
118
118
|
return handling_cls.get_filename_impl(mfcontent_info, filename, content_type)
|
|
119
119
|
|
|
120
120
|
@classmethod
|
|
121
|
-
def get_env_vars_for_packaged_metaflow(
|
|
121
|
+
def get_env_vars_for_packaged_metaflow(
|
|
122
|
+
cls, dest_dir: str
|
|
123
|
+
) -> Optional[Dict[str, str]]:
|
|
122
124
|
"""
|
|
123
125
|
Get the environment variables that are needed to run Metaflow when it is
|
|
124
126
|
packaged. This is typically used to set the PYTHONPATH to include the
|
|
@@ -126,19 +128,17 @@ class MetaflowCodeContent:
|
|
|
126
128
|
|
|
127
129
|
Returns
|
|
128
130
|
-------
|
|
129
|
-
Dict[str, str]
|
|
131
|
+
Optional[Dict[str, str]]
|
|
130
132
|
The environment variables that are needed to run Metaflow when it is
|
|
131
|
-
packaged
|
|
133
|
+
packaged -- None if there are no such variables (not packaged for example)
|
|
132
134
|
"""
|
|
133
|
-
mfcontent_info = cls._extract_mfcontent_info(
|
|
135
|
+
mfcontent_info = cls._extract_mfcontent_info()
|
|
134
136
|
if mfcontent_info is None:
|
|
135
137
|
# No MFCONTENT_MARKER file found -- this is not a packaged Metaflow code
|
|
136
138
|
# package so no environment variables to set.
|
|
137
|
-
return
|
|
139
|
+
return None
|
|
138
140
|
handling_cls = cls._get_mfcontent_class(mfcontent_info)
|
|
139
|
-
|
|
140
|
-
v["METAFLOW_EXTRACTED_ROOT:"] = dest_dir
|
|
141
|
-
return v
|
|
141
|
+
return handling_cls.get_post_extract_env_vars_impl(dest_dir)
|
|
142
142
|
|
|
143
143
|
@classmethod
|
|
144
144
|
def get_archive_info(
|
|
@@ -216,15 +216,15 @@ class MetaflowCodeContent:
|
|
|
216
216
|
)
|
|
217
217
|
|
|
218
218
|
@classmethod
|
|
219
|
-
def
|
|
219
|
+
def get_archive_content_names(
|
|
220
220
|
cls,
|
|
221
221
|
archive: Any,
|
|
222
222
|
content_types: Optional[int] = None,
|
|
223
223
|
packaging_backend: Type[PackagingBackend] = TarPackagingBackend,
|
|
224
|
-
) -> List[
|
|
224
|
+
) -> List[str]:
|
|
225
225
|
mfcontent_info = cls._extract_archive_mfcontent_info(archive, packaging_backend)
|
|
226
226
|
handling_cls = cls._get_mfcontent_class(mfcontent_info)
|
|
227
|
-
return handling_cls.
|
|
227
|
+
return handling_cls.get_archive_content_names_impl(
|
|
228
228
|
mfcontent_info, archive, content_types, packaging_backend
|
|
229
229
|
)
|
|
230
230
|
|
|
@@ -276,9 +276,7 @@ class MetaflowCodeContent:
|
|
|
276
276
|
"Invalid package -- unknown version %s in info: %s"
|
|
277
277
|
% (version_id, cls._mappings)
|
|
278
278
|
)
|
|
279
|
-
|
|
280
|
-
v["METAFLOW_EXTRACTED_ROOT:"] = dest_dir
|
|
281
|
-
return v
|
|
279
|
+
return cls._mappings[version_id].get_post_extract_env_vars_impl(dest_dir)
|
|
282
280
|
|
|
283
281
|
# Implement the _impl methods in the base subclass (in this file). These need to
|
|
284
282
|
# happen with as few imports as possible to prevent circular dependencies.
|
|
@@ -339,14 +337,14 @@ class MetaflowCodeContent:
|
|
|
339
337
|
raise NotImplementedError("get_archive_filename_impl not implemented")
|
|
340
338
|
|
|
341
339
|
@classmethod
|
|
342
|
-
def
|
|
340
|
+
def get_archive_content_names_impl(
|
|
343
341
|
cls,
|
|
344
342
|
mfcontent_info: Optional[Dict[str, Any]],
|
|
345
343
|
archive: Any,
|
|
346
344
|
content_types: Optional[int] = None,
|
|
347
345
|
packaging_backend: Type[PackagingBackend] = TarPackagingBackend,
|
|
348
|
-
) -> List[
|
|
349
|
-
raise NotImplementedError("
|
|
346
|
+
) -> List[str]:
|
|
347
|
+
raise NotImplementedError("get_archive_content_names_impl not implemented")
|
|
350
348
|
|
|
351
349
|
@classmethod
|
|
352
350
|
def get_post_extract_env_vars_impl(cls, dest_dir: str) -> Dict[str, str]:
|
|
@@ -525,22 +523,19 @@ class MetaflowCodeContent:
|
|
|
525
523
|
return mfcontent_info
|
|
526
524
|
|
|
527
525
|
@classmethod
|
|
528
|
-
def _extract_mfcontent_info(
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
target_dir = target_dir or "_local"
|
|
532
|
-
if target_dir in cls._cached_mfcontent_info:
|
|
533
|
-
return cls._cached_mfcontent_info[target_dir]
|
|
526
|
+
def _extract_mfcontent_info(cls) -> Optional[Dict[str, Any]]:
|
|
527
|
+
if "_local" in cls._cached_mfcontent_info:
|
|
528
|
+
return cls._cached_mfcontent_info["_local"]
|
|
534
529
|
|
|
535
530
|
mfcontent_info = None # type: Optional[Dict[str, Any]]
|
|
536
|
-
if
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
531
|
+
if os.path.exists(os.path.join(get_metaflow_root(), MFCONTENT_MARKER)):
|
|
532
|
+
with open(
|
|
533
|
+
os.path.join(get_metaflow_root(), MFCONTENT_MARKER),
|
|
534
|
+
"r",
|
|
535
|
+
encoding="utf-8",
|
|
536
|
+
) as f:
|
|
542
537
|
mfcontent_info = json.load(f)
|
|
543
|
-
cls._cached_mfcontent_info[
|
|
538
|
+
cls._cached_mfcontent_info["_local"] = mfcontent_info
|
|
544
539
|
return mfcontent_info
|
|
545
540
|
|
|
546
541
|
def get_package_version(self) -> int:
|
|
@@ -632,13 +627,13 @@ class MetaflowCodeContentV0(MetaflowCodeContent, version_id=0):
|
|
|
632
627
|
return None
|
|
633
628
|
|
|
634
629
|
@classmethod
|
|
635
|
-
def
|
|
630
|
+
def get_archive_content_names_impl(
|
|
636
631
|
cls,
|
|
637
632
|
mfcontent_info: Optional[Dict[str, Any]],
|
|
638
633
|
archive: Any,
|
|
639
634
|
content_types: Optional[int] = None,
|
|
640
635
|
packaging_backend: Type[PackagingBackend] = TarPackagingBackend,
|
|
641
|
-
) -> List[
|
|
636
|
+
) -> List[str]:
|
|
642
637
|
"""
|
|
643
638
|
For V0, we use a static list of known files to classify the content
|
|
644
639
|
"""
|
|
@@ -654,20 +649,16 @@ class MetaflowCodeContentV0(MetaflowCodeContent, version_id=0):
|
|
|
654
649
|
"condav2-1.cnd": ContentType.OTHER_CONTENT.value,
|
|
655
650
|
}
|
|
656
651
|
to_return = []
|
|
657
|
-
for
|
|
658
|
-
filename = packaging_backend.cls_member_name(member)
|
|
659
|
-
added = False
|
|
652
|
+
for filename in packaging_backend.cls_list_members(archive):
|
|
660
653
|
for prefix, classification in known_prefixes.items():
|
|
661
654
|
if (
|
|
662
655
|
prefix[-1] == "/" and filename.startswith(prefix)
|
|
663
656
|
) or prefix == filename:
|
|
664
657
|
if content_types & classification:
|
|
665
|
-
to_return.append(
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
# Everything else is user content
|
|
670
|
-
to_return.append(member)
|
|
658
|
+
to_return.append(filename)
|
|
659
|
+
elif content_types & ContentType.USER_CONTENT.value:
|
|
660
|
+
# Everything else is user content
|
|
661
|
+
to_return.append(filename)
|
|
671
662
|
return to_return
|
|
672
663
|
|
|
673
664
|
@classmethod
|
|
@@ -714,7 +705,7 @@ class MetaflowCodeContentV1Base(MetaflowCodeContent, version_id=1):
|
|
|
714
705
|
cls, mfcontent_info: Optional[Dict[str, Any]], filename: str, in_archive: bool
|
|
715
706
|
) -> str:
|
|
716
707
|
if in_archive:
|
|
717
|
-
return
|
|
708
|
+
return filename
|
|
718
709
|
return os.path.join(get_metaflow_root(), "..", cls._other_dir, filename)
|
|
719
710
|
|
|
720
711
|
@classmethod
|
|
@@ -722,7 +713,7 @@ class MetaflowCodeContentV1Base(MetaflowCodeContent, version_id=1):
|
|
|
722
713
|
cls, mfcontent_info: Optional[Dict[str, Any]], filename: str, in_archive: bool
|
|
723
714
|
) -> str:
|
|
724
715
|
if in_archive:
|
|
725
|
-
return
|
|
716
|
+
return filename
|
|
726
717
|
return os.path.join(get_metaflow_root(), filename)
|
|
727
718
|
|
|
728
719
|
@classmethod
|
|
@@ -841,38 +832,37 @@ class MetaflowCodeContentV1Base(MetaflowCodeContent, version_id=1):
|
|
|
841
832
|
return None
|
|
842
833
|
|
|
843
834
|
@classmethod
|
|
844
|
-
def
|
|
835
|
+
def get_archive_content_names_impl(
|
|
845
836
|
cls,
|
|
846
837
|
mfcontent_info: Optional[Dict[str, Any]],
|
|
847
838
|
archive: Any,
|
|
848
839
|
content_types: Optional[int] = None,
|
|
849
840
|
packaging_backend: Type[PackagingBackend] = TarPackagingBackend,
|
|
850
|
-
) -> List[
|
|
841
|
+
) -> List[str]:
|
|
851
842
|
to_return = []
|
|
852
843
|
module_content = set(mfcontent_info.get("module_files", []))
|
|
853
|
-
for
|
|
854
|
-
filename = packaging_backend.cls_member_name(member)
|
|
844
|
+
for filename in packaging_backend.cls_list_members(archive):
|
|
855
845
|
if filename.startswith(cls._other_dir) and (
|
|
856
846
|
content_types & ContentType.OTHER_CONTENT.value
|
|
857
847
|
):
|
|
858
|
-
to_return.append(
|
|
848
|
+
to_return.append(filename)
|
|
859
849
|
elif filename.startswith(cls._code_dir):
|
|
860
850
|
# Special case for marker which is a other content even if in code.
|
|
861
|
-
if filename == MFCONTENT_MARKER:
|
|
851
|
+
if filename == f"{cls._code_dir}/{MFCONTENT_MARKER}":
|
|
862
852
|
if content_types & ContentType.OTHER_CONTENT.value:
|
|
863
|
-
to_return.append(
|
|
853
|
+
to_return.append(filename)
|
|
864
854
|
else:
|
|
865
855
|
continue
|
|
866
856
|
# Here it is either module or code
|
|
867
857
|
if os.path.join(cls._code_dir, filename) in module_content:
|
|
868
858
|
if content_types & ContentType.MODULE_CONTENT.value:
|
|
869
|
-
to_return.append(
|
|
859
|
+
to_return.append(filename)
|
|
870
860
|
elif content_types & ContentType.CODE_CONTENT.value:
|
|
871
|
-
to_return.append(
|
|
861
|
+
to_return.append(filename)
|
|
872
862
|
else:
|
|
873
863
|
if content_types & ContentType.USER_CONTENT.value:
|
|
874
864
|
# Everything else is user content
|
|
875
|
-
to_return.append(
|
|
865
|
+
to_return.append(filename)
|
|
876
866
|
return to_return
|
|
877
867
|
|
|
878
868
|
@classmethod
|
|
@@ -57,15 +57,6 @@ class PackagingBackend(ABC):
|
|
|
57
57
|
"""Open the archive from the given content."""
|
|
58
58
|
pass
|
|
59
59
|
|
|
60
|
-
@classmethod
|
|
61
|
-
@abstractmethod
|
|
62
|
-
def cls_member_name(cls, member: Union[Any, str]) -> str:
|
|
63
|
-
"""
|
|
64
|
-
Returns the name of the member as a string.
|
|
65
|
-
This is used to ensure consistent naming across different archive formats.
|
|
66
|
-
"""
|
|
67
|
-
pass
|
|
68
|
-
|
|
69
60
|
@classmethod
|
|
70
61
|
@abstractmethod
|
|
71
62
|
def cls_has_member(cls, archive: Any, name: str) -> bool:
|
|
@@ -81,20 +72,14 @@ class PackagingBackend(ABC):
|
|
|
81
72
|
def cls_extract_members(
|
|
82
73
|
cls,
|
|
83
74
|
archive: Any,
|
|
84
|
-
members: Optional[List[
|
|
75
|
+
members: Optional[List[str]] = None,
|
|
85
76
|
dest_dir: str = ".",
|
|
86
77
|
) -> None:
|
|
87
78
|
pass
|
|
88
79
|
|
|
89
80
|
@classmethod
|
|
90
81
|
@abstractmethod
|
|
91
|
-
def
|
|
92
|
-
pass
|
|
93
|
-
|
|
94
|
-
@classmethod
|
|
95
|
-
@abstractmethod
|
|
96
|
-
def cls_list_members(cls, archive: Any) -> Optional[List[Any]]:
|
|
97
|
-
"""List all members in the archive."""
|
|
82
|
+
def cls_list_members(cls, archive: Any) -> Optional[List[str]]:
|
|
98
83
|
pass
|
|
99
84
|
|
|
100
85
|
def has_member(self, name: str) -> bool:
|
|
@@ -108,17 +93,17 @@ class PackagingBackend(ABC):
|
|
|
108
93
|
raise ValueError("Cannot get member from an uncreated archive")
|
|
109
94
|
|
|
110
95
|
def extract_members(
|
|
111
|
-
self, members: Optional[List[
|
|
96
|
+
self, members: Optional[List[str]] = None, dest_dir: str = "."
|
|
112
97
|
) -> None:
|
|
113
98
|
if self._archive:
|
|
114
99
|
self.cls_extract_members(self._archive, members, dest_dir)
|
|
115
100
|
else:
|
|
116
101
|
raise ValueError("Cannot extract from an uncreated archive")
|
|
117
102
|
|
|
118
|
-
def
|
|
103
|
+
def list_members(self) -> Optional[List[str]]:
|
|
119
104
|
if self._archive:
|
|
120
|
-
return self.
|
|
121
|
-
raise ValueError("Cannot list
|
|
105
|
+
return self.cls_list_members(self._archive)
|
|
106
|
+
raise ValueError("Cannot list members from an uncreated archive")
|
|
122
107
|
|
|
123
108
|
def __enter__(self):
|
|
124
109
|
self.create()
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import tarfile
|
|
2
2
|
|
|
3
3
|
from io import BytesIO
|
|
4
|
-
from typing import
|
|
4
|
+
from typing import IO, List, Optional, Union
|
|
5
5
|
|
|
6
6
|
from .backend import PackagingBackend
|
|
7
7
|
|
|
@@ -56,13 +56,6 @@ class TarPackagingBackend(PackagingBackend):
|
|
|
56
56
|
def cls_open(cls, content: IO[bytes]) -> tarfile.TarFile:
|
|
57
57
|
return tarfile.open(fileobj=content, mode="r:gz")
|
|
58
58
|
|
|
59
|
-
@classmethod
|
|
60
|
-
def cls_member_name(cls, member: Union[tarfile.TarInfo, str]) -> str:
|
|
61
|
-
"""
|
|
62
|
-
Returns the name of the member as a string.
|
|
63
|
-
"""
|
|
64
|
-
return member.name if isinstance(member, tarfile.TarInfo) else member
|
|
65
|
-
|
|
66
59
|
@classmethod
|
|
67
60
|
def cls_has_member(cls, archive: tarfile.TarFile, name: str) -> bool:
|
|
68
61
|
try:
|
|
@@ -83,17 +76,11 @@ class TarPackagingBackend(PackagingBackend):
|
|
|
83
76
|
def cls_extract_members(
|
|
84
77
|
cls,
|
|
85
78
|
archive: tarfile.TarFile,
|
|
86
|
-
members: Optional[List[
|
|
79
|
+
members: Optional[List[str]] = None,
|
|
87
80
|
dest_dir: str = ".",
|
|
88
81
|
) -> None:
|
|
89
82
|
archive.extractall(path=dest_dir, members=members)
|
|
90
83
|
|
|
91
84
|
@classmethod
|
|
92
|
-
def cls_list_members(
|
|
93
|
-
cls, archive: tarfile.TarFile
|
|
94
|
-
) -> Optional[List[tarfile.TarInfo]]:
|
|
95
|
-
return archive.getmembers() or None
|
|
96
|
-
|
|
97
|
-
@classmethod
|
|
98
|
-
def cls_list_names(cls, archive: tarfile.TarFile) -> Optional[List[str]]:
|
|
85
|
+
def cls_list_members(cls, archive: tarfile.TarFile) -> Optional[List[str]]:
|
|
99
86
|
return archive.getnames() or None
|
|
@@ -61,25 +61,23 @@ class MetaflowCodeContentV1(MetaflowCodeContentV1Base):
|
|
|
61
61
|
else:
|
|
62
62
|
new_modules = []
|
|
63
63
|
|
|
64
|
-
self._modules = {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
continue
|
|
82
|
-
self._modules[name] = minfo
|
|
64
|
+
self._modules = {
|
|
65
|
+
name: _ModuleInfo(
|
|
66
|
+
name,
|
|
67
|
+
set(
|
|
68
|
+
Path(p).resolve().as_posix()
|
|
69
|
+
for p in getattr(mod, "__path__", [mod.__file__])
|
|
70
|
+
),
|
|
71
|
+
mod,
|
|
72
|
+
True, # This is a Metaflow module (see filter below)
|
|
73
|
+
)
|
|
74
|
+
for (name, mod) in new_modules
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
# Filter the modules
|
|
78
|
+
self._modules = {
|
|
79
|
+
name: info for name, info in self._modules.items() if criteria(info.module)
|
|
80
|
+
}
|
|
83
81
|
|
|
84
82
|
# Contain metadata information regarding the distributions packaged.
|
|
85
83
|
# This allows Metaflow to "fake" distribution information when packaged
|
|
@@ -357,14 +355,16 @@ class MetaflowCodeContentV1(MetaflowCodeContentV1Base):
|
|
|
357
355
|
)
|
|
358
356
|
yield json.dumps(self.create_mfcontent_info()).encode(
|
|
359
357
|
"utf-8"
|
|
360
|
-
), MFCONTENT_MARKER
|
|
358
|
+
), os.path.join(self._code_dir, MFCONTENT_MARKER)
|
|
361
359
|
else:
|
|
362
360
|
for k in self._other_content.keys():
|
|
363
361
|
yield "<generated %s content>" % (os.path.basename(k)), k
|
|
364
362
|
yield "<generated %s content>" % (
|
|
365
363
|
os.path.basename(self._dist_info_file)
|
|
366
364
|
), os.path.join(self._other_dir, self._dist_info_file)
|
|
367
|
-
yield "<generated %s content>" % MFCONTENT_MARKER,
|
|
365
|
+
yield "<generated %s content>" % MFCONTENT_MARKER, os.path.join(
|
|
366
|
+
self._code_dir, MFCONTENT_MARKER
|
|
367
|
+
)
|
|
368
368
|
|
|
369
369
|
def _metaflow_distribution_files(self) -> Generator[Tuple[str, str], None, None]:
|
|
370
370
|
debug.package_exec("Including Metaflow from '%s'" % self._metaflow_root)
|