ob-metaflow 2.18.11.1__tar.gz → 2.18.13.1__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.18.11.1/ob_metaflow.egg-info → ob_metaflow-2.18.13.1}/PKG-INFO +2 -2
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/graph.py +2 -2
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/argo/argo_workflows.py +53 -26
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/argo/argo_workflows_cli.py +20 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/argo/capture_error.py +5 -2
- ob_metaflow-2.18.13.1/metaflow/plugins/argo/param_val.py +19 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_datastore.py +6 -12
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/components.py +23 -3
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/runner/click_api.py +4 -2
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/runner/utils.py +10 -10
- ob_metaflow-2.18.13.1/metaflow/version.py +1 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1/ob_metaflow.egg-info}/PKG-INFO +2 -2
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/ob_metaflow.egg-info/SOURCES.txt +1 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/ob_metaflow.egg-info/requires.txt +1 -1
- ob_metaflow-2.18.11.1/metaflow/version.py +0 -1
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/LICENSE +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/MANIFEST.in +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/README.md +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/devtools/Makefile +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/devtools/Tiltfile +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/devtools/pick_services.sh +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/R.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/_bashcomplete.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/_compat.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/_termui_impl.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/_textwrap.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/_unicodefun.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/_winconsole.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/core.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/decorators.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/exceptions.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/formatting.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/globals.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/parser.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/termui.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/testing.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/types.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/click/utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/imghdr/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/_adapters.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/_collections.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/_compat.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/_functools.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/_itertools.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/_meta.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/_text.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/py.typed +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/packaging/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/packaging/_elffile.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/packaging/_manylinux.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/packaging/_musllinux.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/packaging/_parser.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/packaging/_structures.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/packaging/_tokenizer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/packaging/markers.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/packaging/py.typed +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/packaging/requirements.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/packaging/specifiers.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/packaging/tags.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/packaging/utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/packaging/version.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/_checkers.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/_config.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/_decorators.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/_exceptions.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/_functions.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/_importhook.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/_memo.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/_pytest_plugin.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/_suppression.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/_transformer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/_union_transformer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/_utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/py.typed +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typing_extensions.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_6/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_6/importlib_metadata/_meta.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_6/importlib_metadata/_text.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_6/importlib_metadata/py.typed +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_6/typing_extensions.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_6/zipp.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/importlib_metadata/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/importlib_metadata/_adapters.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/importlib_metadata/_collections.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/importlib_metadata/_compat.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/importlib_metadata/_functools.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/importlib_metadata/_itertools.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/importlib_metadata/_meta.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/importlib_metadata/_text.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/importlib_metadata/py.typed +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/typeguard/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/typeguard/_checkers.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/typeguard/_config.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/typeguard/_decorators.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/typeguard/_exceptions.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/typeguard/_functions.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/typeguard/_importhook.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/typeguard/_memo.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/typeguard/_pytest_plugin.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/typeguard/_suppression.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/typeguard/_transformer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/typeguard/_union_transformer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/typeguard/_utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/typeguard/py.typed +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/typing_extensions.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_7/zipp.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/composer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/constructor.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/cyaml.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/dumper.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/emitter.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/error.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/events.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/loader.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/nodes.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/parser.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/reader.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/representer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/resolver.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/scanner.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/serializer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/yaml/tokens.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/zipp.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cards.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cli.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cli_args.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cli_components/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cli_components/dump_cmd.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cli_components/init_cmd.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cli_components/run_cmds.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cli_components/step_cmd.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cli_components/utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/client/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/client/core.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/client/filecache.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/clone_util.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cmd/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cmd/code/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cmd/configure_cmd.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cmd/develop/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cmd/develop/stub_generator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cmd/develop/stubs.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cmd/main_cli.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cmd/make_wrapper.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cmd/tutorials_cmd.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cmd/util.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/cmd_with_io.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/datastore/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/datastore/content_addressed_store.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/datastore/datastore_set.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/datastore/datastore_storage.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/datastore/exceptions.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/datastore/flow_datastore.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/datastore/inputs.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/datastore/task_datastore.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/debug.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/decorators.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/event_logger.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/events.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/exception.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/extension_support/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/extension_support/_empty_file.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/extension_support/cmd.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/extension_support/integrations.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/extension_support/plugins.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/flowspec.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/includefile.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/integrations.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/lint.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/meta_files.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/metadata_provider/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/metadata_provider/heartbeat.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/metadata_provider/metadata.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/metadata_provider/util.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/metaflow_config.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/metaflow_config_funcs.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/metaflow_current.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/metaflow_environment.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/metaflow_git.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/metaflow_profile.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/metaflow_version.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/mflog/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/mflog/mflog.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/mflog/save_logs.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/mflog/save_logs_periodically.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/mflog/tee.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/monitor.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/multicore_utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/package/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/packaging_sys/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/packaging_sys/backend.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/packaging_sys/distribution_support.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/packaging_sys/tar_backend.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/packaging_sys/utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/packaging_sys/v1.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/parameters.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/airflow/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/airflow/airflow.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/airflow/airflow_cli.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/airflow/airflow_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/airflow/airflow_utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/airflow/dag.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/airflow/exception.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/airflow/plumbing/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/airflow/plumbing/set_parameters.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/airflow/sensors/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/airflow/sensors/base_sensor.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/airflow/sensors/external_task_sensor.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/airflow/sensors/s3_sensor.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/argo/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/argo/argo_client.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/argo/argo_events.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/argo/argo_workflows_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/argo/argo_workflows_deployer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/argo/argo_workflows_deployer_objects.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/argo/conditional_input_paths.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/argo/exit_hooks.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/argo/generate_input_paths.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/argo/jobset_input_paths.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/aws_client.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/aws_utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/batch/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/batch/batch.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/batch/batch_cli.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/batch/batch_client.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/batch/batch_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/secrets_manager/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/step_functions/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/step_functions/dynamo_db_client.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/step_functions/event_bridge_client.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/step_functions/production_token.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/step_functions/schedule_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/step_functions/set_batch_environment.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/step_functions/step_functions.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/step_functions/step_functions_cli.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/step_functions/step_functions_client.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/step_functions/step_functions_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/step_functions/step_functions_deployer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/azure/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/azure/azure_credential.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/azure/azure_exceptions.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/azure/azure_secret_manager_secrets_provider.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/azure/azure_tail.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/azure/azure_utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/azure/blob_service_client_factory.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/azure/includefile_support.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_cli.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_client.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_creator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/base.html +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/basic.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/bundle.css +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/card.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/chevron/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/chevron/main.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/chevron/metadata.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/chevron/renderer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/chevron/tokenizer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/convert_to_native_type.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/json_viewer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/main.css +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/main.js +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/renderer_tools.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/test_cards.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_resolver.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_server.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_viewer/viewer.html +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/component_serializer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/exception.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/metadata.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/catch_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/datastores/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/datastores/azure_storage.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/datastores/gs_storage.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/datastores/local_storage.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/datastores/s3_storage.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/datatools/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/datatools/local.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/datatools/s3/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/datatools/s3/s3.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/datatools/s3/s3op.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/datatools/s3/s3tail.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/datatools/s3/s3util.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/debug_logger.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/debug_monitor.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/client.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/client_modules.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/communication/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/communication/bytestream.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/communication/channel.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/communication/socket_bytestream.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/communication/utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/consts.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/data_transferer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/exception_transferer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/override_decorators.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/server.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/stub.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/env_escape/utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/environment_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/events_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/exit_hook/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/exit_hook/exit_hook_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/exit_hook/exit_hook_script.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/frameworks/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/frameworks/pytorch.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/gcp/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/gcp/gs_exceptions.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/gcp/gs_storage_client_factory.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/gcp/gs_tail.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/gcp/gs_utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/gcp/includefile_support.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/kubernetes/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/kubernetes/kube_utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/kubernetes/kubernetes.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/kubernetes/kubernetes_cli.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/kubernetes/kubernetes_client.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/kubernetes/kubernetes_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/kubernetes/kubernetes_job.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/kubernetes/kubernetes_jobsets.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/kubernetes/spot_metadata_cli.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/kubernetes/spot_monitor_sidecar.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/logs_cli.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/metadata_providers/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/metadata_providers/local.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/metadata_providers/service.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/package_cli.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/parallel_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/parsers.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/project_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/pypi/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/pypi/bootstrap.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/pypi/conda_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/pypi/conda_environment.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/pypi/micromamba.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/pypi/parsers.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/pypi/pip.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/pypi/pypi_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/pypi/pypi_environment.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/pypi/utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/resources_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/retry_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/secrets/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/secrets/inline_secrets_provider.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/secrets/secrets_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/secrets/secrets_func.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/secrets/secrets_spec.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/secrets/utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/storage_executor.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/tag_cli.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/test_unbounded_foreach_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/timeout_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/uv/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/uv/bootstrap.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/uv/uv_environment.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/procpoll.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/py.typed +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/pylint_wrapper.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/runner/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/runner/deployer.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/runner/deployer_impl.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/runner/metaflow_runner.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/runner/nbdeploy.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/runner/nbrun.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/runner/subprocess_manager.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/runtime.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/sidecar/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/sidecar/sidecar.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/sidecar/sidecar_messages.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/sidecar/sidecar_subprocess.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/sidecar/sidecar_worker.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/system/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/system/system_logger.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/system/system_monitor.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/system/system_utils.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tagging_util.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/task.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tracing/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tracing/propagator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tracing/span_exporter.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tracing/tracing_modules.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tuple_util.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/00-helloworld/README.md +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/00-helloworld/helloworld.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/01-playlist/README.md +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/01-playlist/movies.csv +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/01-playlist/playlist.ipynb +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/01-playlist/playlist.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/02-statistics/README.md +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/02-statistics/movies.csv +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/02-statistics/stats.ipynb +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/02-statistics/stats.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/03-playlist-redux/README.md +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/03-playlist-redux/playlist.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/04-playlist-plus/README.md +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/04-playlist-plus/playlist.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/05-hello-cloud/README.md +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/05-hello-cloud/hello-cloud.ipynb +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/05-hello-cloud/hello-cloud.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/06-statistics-redux/README.md +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/06-statistics-redux/stats.ipynb +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/07-worldview/README.md +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/07-worldview/worldview.ipynb +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/08-autopilot/README.md +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/tutorials/08-autopilot/autopilot.ipynb +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/unbounded_foreach.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/user_configs/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/user_configs/config_options.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/user_configs/config_parameters.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/user_decorators/__init__.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/user_decorators/common.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/user_decorators/mutable_flow.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/user_decorators/mutable_step.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/user_decorators/user_flow_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/user_decorators/user_step_decorator.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/util.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/vendor.py +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/ob_metaflow.egg-info/dependency_links.txt +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/ob_metaflow.egg-info/entry_points.txt +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/ob_metaflow.egg-info/top_level.txt +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/setup.cfg +0 -0
- {ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ob-metaflow
|
|
3
|
-
Version: 2.18.
|
|
3
|
+
Version: 2.18.13.1
|
|
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.18.
|
|
15
|
+
Requires-Dist: metaflow-stubs==2.18.13.1; extra == "stubs"
|
|
16
16
|
Dynamic: author
|
|
17
17
|
Dynamic: author-email
|
|
18
18
|
Dynamic: description
|
|
@@ -94,7 +94,7 @@ class DAGNode(object):
|
|
|
94
94
|
case_key = None
|
|
95
95
|
|
|
96
96
|
# handle string literals
|
|
97
|
-
if isinstance(key, ast.Str):
|
|
97
|
+
if hasattr(ast, "Str") and isinstance(key, ast.Str):
|
|
98
98
|
case_key = key.s
|
|
99
99
|
elif isinstance(key, ast.Constant):
|
|
100
100
|
case_key = key.value
|
|
@@ -171,7 +171,7 @@ class DAGNode(object):
|
|
|
171
171
|
# Get condition parameter
|
|
172
172
|
for keyword in tail.value.keywords:
|
|
173
173
|
if keyword.arg == "condition":
|
|
174
|
-
if isinstance(keyword.value, ast.Str):
|
|
174
|
+
if hasattr(ast, "Str") and isinstance(keyword.value, ast.Str):
|
|
175
175
|
condition_name = keyword.value.s
|
|
176
176
|
elif isinstance(keyword.value, ast.Constant) and isinstance(
|
|
177
177
|
keyword.value.value, str
|
|
@@ -122,6 +122,8 @@ class ArgoWorkflows(object):
|
|
|
122
122
|
incident_io_metadata: List[str] = None,
|
|
123
123
|
enable_heartbeat_daemon=True,
|
|
124
124
|
enable_error_msg_capture=False,
|
|
125
|
+
workflow_title=None,
|
|
126
|
+
workflow_description=None,
|
|
125
127
|
):
|
|
126
128
|
# Some high-level notes -
|
|
127
129
|
#
|
|
@@ -186,6 +188,8 @@ class ArgoWorkflows(object):
|
|
|
186
188
|
)
|
|
187
189
|
self.enable_heartbeat_daemon = enable_heartbeat_daemon
|
|
188
190
|
self.enable_error_msg_capture = enable_error_msg_capture
|
|
191
|
+
self.workflow_title = workflow_title
|
|
192
|
+
self.workflow_description = workflow_description
|
|
189
193
|
self.parameters = self._process_parameters()
|
|
190
194
|
self.config_parameters = self._process_config_parameters()
|
|
191
195
|
self.triggers, self.trigger_options = self._process_triggers()
|
|
@@ -439,6 +443,25 @@ class ArgoWorkflows(object):
|
|
|
439
443
|
"metaflow/project_flow_name": current.project_flow_name,
|
|
440
444
|
}
|
|
441
445
|
)
|
|
446
|
+
|
|
447
|
+
# Add Argo Workflows title and description annotations
|
|
448
|
+
# https://argo-workflows.readthedocs.io/en/latest/title-and-description/
|
|
449
|
+
# Use CLI-provided values or auto-populate from metadata
|
|
450
|
+
title = (
|
|
451
|
+
(self.workflow_title.strip() if self.workflow_title else None)
|
|
452
|
+
or current.get("project_flow_name")
|
|
453
|
+
or self.flow.name
|
|
454
|
+
)
|
|
455
|
+
|
|
456
|
+
description = (
|
|
457
|
+
self.workflow_description.strip() if self.workflow_description else None
|
|
458
|
+
) or (self.flow.__doc__.strip() if self.flow.__doc__ else None)
|
|
459
|
+
|
|
460
|
+
if title:
|
|
461
|
+
annotations["workflows.argoproj.io/title"] = title
|
|
462
|
+
if description:
|
|
463
|
+
annotations["workflows.argoproj.io/description"] = description
|
|
464
|
+
|
|
442
465
|
return annotations
|
|
443
466
|
|
|
444
467
|
def _get_schedule(self):
|
|
@@ -595,7 +618,16 @@ class ArgoWorkflows(object):
|
|
|
595
618
|
# the JSON equivalent of None to please argo-workflows. Unfortunately it
|
|
596
619
|
# has the side effect of casting the parameter value to string null during
|
|
597
620
|
# execution - which needs to be fixed imminently.
|
|
598
|
-
if
|
|
621
|
+
if default_value is None:
|
|
622
|
+
default_value = json.dumps(None)
|
|
623
|
+
elif param_type == "JSON":
|
|
624
|
+
if not isinstance(default_value, str):
|
|
625
|
+
# once to serialize the default value if needed.
|
|
626
|
+
default_value = json.dumps(default_value)
|
|
627
|
+
# adds outer quotes to param
|
|
628
|
+
default_value = json.dumps(default_value)
|
|
629
|
+
else:
|
|
630
|
+
# Make argo sensors happy
|
|
599
631
|
default_value = json.dumps(default_value)
|
|
600
632
|
|
|
601
633
|
parameters[param.name] = dict(
|
|
@@ -903,7 +935,16 @@ class ArgoWorkflows(object):
|
|
|
903
935
|
.annotations(
|
|
904
936
|
{
|
|
905
937
|
**annotations,
|
|
906
|
-
**
|
|
938
|
+
**{
|
|
939
|
+
k: v
|
|
940
|
+
for k, v in self._base_annotations.items()
|
|
941
|
+
if k
|
|
942
|
+
# Skip custom title/description for workflows as this makes it harder to find specific runs.
|
|
943
|
+
not in [
|
|
944
|
+
"workflows.argoproj.io/title",
|
|
945
|
+
"workflows.argoproj.io/description",
|
|
946
|
+
]
|
|
947
|
+
},
|
|
907
948
|
**{"metaflow/run_id": "argo-{{workflow.name}}"},
|
|
908
949
|
}
|
|
909
950
|
)
|
|
@@ -918,11 +959,7 @@ class ArgoWorkflows(object):
|
|
|
918
959
|
Arguments().parameters(
|
|
919
960
|
[
|
|
920
961
|
Parameter(parameter["name"])
|
|
921
|
-
.value(
|
|
922
|
-
"'%s'" % parameter["value"]
|
|
923
|
-
if parameter["type"] == "JSON"
|
|
924
|
-
else parameter["value"]
|
|
925
|
-
)
|
|
962
|
+
.value(parameter["value"])
|
|
926
963
|
.description(parameter.get("description"))
|
|
927
964
|
# TODO: Better handle IncludeFile in Argo Workflows UI.
|
|
928
965
|
for parameter in self.parameters.values()
|
|
@@ -2031,7 +2068,7 @@ class ArgoWorkflows(object):
|
|
|
2031
2068
|
# {{foo.bar['param_name']}}.
|
|
2032
2069
|
# https://argoproj.github.io/argo-events/tutorials/02-parameterization/
|
|
2033
2070
|
# http://masterminds.github.io/sprig/strings.html
|
|
2034
|
-
"--%s
|
|
2071
|
+
"--%s=\\\"$(python -m metaflow.plugins.argo.param_val {{=toBase64(workflow.parameters['%s'])}})\\\""
|
|
2035
2072
|
% (parameter["name"], parameter["name"])
|
|
2036
2073
|
for parameter in self.parameters.values()
|
|
2037
2074
|
]
|
|
@@ -3861,37 +3898,27 @@ class ArgoWorkflows(object):
|
|
|
3861
3898
|
# NOTE: We need the conditional logic in order to successfully fall back to the default value
|
|
3862
3899
|
# when the event payload does not contain a key for a parameter.
|
|
3863
3900
|
# NOTE: Keys might contain dashes, so use the safer 'get' for fetching the value
|
|
3864
|
-
data_template='{{ if (hasKey $.Input.body.payload "%s") }}
|
|
3901
|
+
data_template='{{ if (hasKey $.Input.body.payload "%s") }}%s{{- else -}}{{ (fail "use-default-instead") }}{{- end -}}'
|
|
3865
3902
|
% (
|
|
3866
|
-
v,
|
|
3867
3903
|
v,
|
|
3868
3904
|
(
|
|
3869
|
-
"| toRawJson |
|
|
3905
|
+
'{{- $pv:=(get $.Input.body.payload "%s") -}}{{ if kindIs "string" $pv }}{{- $pv | toRawJson -}}{{- else -}}{{ $pv | toRawJson | toRawJson }}{{- end -}}'
|
|
3906
|
+
% v
|
|
3870
3907
|
if self.parameters[
|
|
3871
3908
|
parameter_name
|
|
3872
3909
|
]["type"]
|
|
3873
3910
|
== "JSON"
|
|
3874
|
-
else "| toRawJson
|
|
3911
|
+
else '{{- (get $.Input.body.payload "%s" | toRawJson) -}}'
|
|
3912
|
+
% v
|
|
3875
3913
|
),
|
|
3876
3914
|
),
|
|
3877
3915
|
# Unfortunately the sensor needs to
|
|
3878
3916
|
# record the default values for
|
|
3879
3917
|
# the parameters - there doesn't seem
|
|
3880
3918
|
# to be any way for us to skip
|
|
3881
|
-
value=
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
"value"
|
|
3885
|
-
]
|
|
3886
|
-
)
|
|
3887
|
-
if self.parameters[parameter_name][
|
|
3888
|
-
"type"
|
|
3889
|
-
]
|
|
3890
|
-
== "JSON"
|
|
3891
|
-
else self.parameters[
|
|
3892
|
-
parameter_name
|
|
3893
|
-
]["value"]
|
|
3894
|
-
),
|
|
3919
|
+
value=self.parameters[parameter_name][
|
|
3920
|
+
"value"
|
|
3921
|
+
],
|
|
3895
3922
|
)
|
|
3896
3923
|
.dest(
|
|
3897
3924
|
# this undocumented (mis?)feature in
|
|
@@ -227,6 +227,18 @@ def argo_workflows(obj, name=None):
|
|
|
227
227
|
show_default=True,
|
|
228
228
|
help="Capture stack trace of first failed task in exit hook.",
|
|
229
229
|
)
|
|
230
|
+
@click.option(
|
|
231
|
+
"--workflow-title",
|
|
232
|
+
default=None,
|
|
233
|
+
type=str,
|
|
234
|
+
help="Custom title for the workflow displayed in Argo Workflows UI. Defaults to `project_flow_name`. Supports markdown formatting.",
|
|
235
|
+
)
|
|
236
|
+
@click.option(
|
|
237
|
+
"--workflow-description",
|
|
238
|
+
default=None,
|
|
239
|
+
type=str,
|
|
240
|
+
help="Custom description for the workflow displayed in Argo Workflows UI. Defaults to the flow's docstring if available. Supports markdown formatting and multi-line text.",
|
|
241
|
+
)
|
|
230
242
|
@click.pass_obj
|
|
231
243
|
def create(
|
|
232
244
|
obj,
|
|
@@ -248,6 +260,8 @@ def create(
|
|
|
248
260
|
incident_io_alert_source_config_id=None,
|
|
249
261
|
incident_io_metadata=None,
|
|
250
262
|
enable_heartbeat_daemon=True,
|
|
263
|
+
workflow_title=None,
|
|
264
|
+
workflow_description=None,
|
|
251
265
|
deployer_attribute_file=None,
|
|
252
266
|
enable_error_msg_capture=False,
|
|
253
267
|
):
|
|
@@ -312,6 +326,8 @@ def create(
|
|
|
312
326
|
incident_io_metadata,
|
|
313
327
|
enable_heartbeat_daemon,
|
|
314
328
|
enable_error_msg_capture,
|
|
329
|
+
workflow_title,
|
|
330
|
+
workflow_description,
|
|
315
331
|
)
|
|
316
332
|
|
|
317
333
|
if only_json:
|
|
@@ -658,6 +674,8 @@ def make_flow(
|
|
|
658
674
|
incident_io_metadata,
|
|
659
675
|
enable_heartbeat_daemon,
|
|
660
676
|
enable_error_msg_capture,
|
|
677
|
+
workflow_title,
|
|
678
|
+
workflow_description,
|
|
661
679
|
):
|
|
662
680
|
# TODO: Make this check less specific to Amazon S3 as we introduce
|
|
663
681
|
# support for more cloud object stores.
|
|
@@ -750,6 +768,8 @@ def make_flow(
|
|
|
750
768
|
incident_io_metadata=incident_io_metadata,
|
|
751
769
|
enable_heartbeat_daemon=enable_heartbeat_daemon,
|
|
752
770
|
enable_error_msg_capture=enable_error_msg_capture,
|
|
771
|
+
workflow_title=workflow_title,
|
|
772
|
+
workflow_description=workflow_description,
|
|
753
773
|
)
|
|
754
774
|
|
|
755
775
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import os
|
|
3
|
-
from datetime import datetime
|
|
3
|
+
from datetime import datetime, timezone
|
|
4
4
|
|
|
5
5
|
###
|
|
6
6
|
# Algorithm to determine 1st error:
|
|
@@ -26,6 +26,9 @@ def parse_workflow_failures():
|
|
|
26
26
|
def group_failures_by_template(failures):
|
|
27
27
|
groups = {}
|
|
28
28
|
for failure in failures:
|
|
29
|
+
if failure.get("finishedAt", None) is None:
|
|
30
|
+
timestamp = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
|
31
|
+
failure["finishedAt"] = timestamp
|
|
29
32
|
groups.setdefault(failure["templateName"], []).append(failure)
|
|
30
33
|
return groups
|
|
31
34
|
|
|
@@ -53,7 +56,7 @@ def determine_first_error():
|
|
|
53
56
|
grouped_failures = group_failures_by_template(failures)
|
|
54
57
|
for group in grouped_failures.values():
|
|
55
58
|
group.sort(
|
|
56
|
-
key=lambda
|
|
59
|
+
key=lambda g: datetime.strptime(g["finishedAt"], "%Y-%m-%dT%H:%M:%SZ")
|
|
57
60
|
)
|
|
58
61
|
|
|
59
62
|
earliest_group = grouped_failures[
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
import base64
|
|
3
|
+
import json
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def parse_parameter_value(base64_value):
|
|
7
|
+
val = base64.b64decode(base64_value).decode("utf-8")
|
|
8
|
+
|
|
9
|
+
try:
|
|
10
|
+
return json.loads(val)
|
|
11
|
+
except json.decoder.JSONDecodeError:
|
|
12
|
+
# fallback to using the original value.
|
|
13
|
+
return val
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
if __name__ == "__main__":
|
|
17
|
+
base64_val = sys.argv[1]
|
|
18
|
+
|
|
19
|
+
print(parse_parameter_value(base64_val))
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
"""
|
|
2
|
-
|
|
3
|
-
"""
|
|
4
|
-
|
|
5
1
|
from collections import namedtuple
|
|
6
2
|
from io import BytesIO
|
|
7
3
|
import os
|
|
@@ -67,20 +63,18 @@ class CardDatastore(object):
|
|
|
67
63
|
result = CARD_LOCALROOT
|
|
68
64
|
if result is None:
|
|
69
65
|
current_path = os.getcwd()
|
|
70
|
-
check_dir = os.path.join(current_path, DATASTORE_LOCAL_DIR
|
|
66
|
+
check_dir = os.path.join(current_path, DATASTORE_LOCAL_DIR)
|
|
71
67
|
check_dir = os.path.realpath(check_dir)
|
|
72
68
|
orig_path = check_dir
|
|
73
69
|
while not os.path.isdir(check_dir):
|
|
74
70
|
new_path = os.path.dirname(current_path)
|
|
75
71
|
if new_path == current_path:
|
|
76
|
-
|
|
72
|
+
# No longer making upward progress so we
|
|
73
|
+
# return the top level path
|
|
74
|
+
return os.path.join(orig_path, CARD_SUFFIX)
|
|
77
75
|
current_path = new_path
|
|
78
|
-
check_dir = os.path.join(
|
|
79
|
-
|
|
80
|
-
)
|
|
81
|
-
result = orig_path
|
|
82
|
-
|
|
83
|
-
return result
|
|
76
|
+
check_dir = os.path.join(current_path, DATASTORE_LOCAL_DIR)
|
|
77
|
+
return os.path.join(check_dir, CARD_SUFFIX)
|
|
84
78
|
else:
|
|
85
79
|
# Let's make it obvious we need to update this block for each new datastore backend...
|
|
86
80
|
raise NotImplementedError(
|
{ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/plugins/cards/card_modules/components.py
RENAMED
|
@@ -15,6 +15,7 @@ from .renderer_tools import render_safely
|
|
|
15
15
|
from .json_viewer import JSONViewer as _JSONViewer, YAMLViewer as _YAMLViewer
|
|
16
16
|
import uuid
|
|
17
17
|
import inspect
|
|
18
|
+
import textwrap
|
|
18
19
|
|
|
19
20
|
|
|
20
21
|
def _warning_with_component(component, msg):
|
|
@@ -656,19 +657,38 @@ class Markdown(UserComponent):
|
|
|
656
657
|
)
|
|
657
658
|
```
|
|
658
659
|
|
|
660
|
+
Multi-line strings with indentation are automatically dedented:
|
|
661
|
+
```
|
|
662
|
+
current.card.append(
|
|
663
|
+
Markdown(f'''
|
|
664
|
+
# Header
|
|
665
|
+
- Item 1
|
|
666
|
+
- Item 2
|
|
667
|
+
''')
|
|
668
|
+
)
|
|
669
|
+
```
|
|
670
|
+
|
|
659
671
|
Parameters
|
|
660
672
|
----------
|
|
661
673
|
text : str
|
|
662
|
-
Text formatted in Markdown.
|
|
674
|
+
Text formatted in Markdown. Leading whitespace common to all lines
|
|
675
|
+
is automatically removed to support indented multi-line strings.
|
|
663
676
|
"""
|
|
664
677
|
|
|
665
678
|
REALTIME_UPDATABLE = True
|
|
666
679
|
|
|
680
|
+
@staticmethod
|
|
681
|
+
def _dedent_text(text):
|
|
682
|
+
"""Remove common leading whitespace from all lines."""
|
|
683
|
+
if text is None:
|
|
684
|
+
return None
|
|
685
|
+
return textwrap.dedent(text)
|
|
686
|
+
|
|
667
687
|
def update(self, text=None):
|
|
668
|
-
self._text = text
|
|
688
|
+
self._text = self._dedent_text(text)
|
|
669
689
|
|
|
670
690
|
def __init__(self, text=None):
|
|
671
|
-
self._text = text
|
|
691
|
+
self._text = self._dedent_text(text)
|
|
672
692
|
|
|
673
693
|
@with_default_component_id
|
|
674
694
|
@render_safely
|
|
@@ -351,8 +351,10 @@ class MetaflowAPI(object):
|
|
|
351
351
|
class_dict = {
|
|
352
352
|
"__module__": "metaflow",
|
|
353
353
|
"_API_NAME": flow_file,
|
|
354
|
-
"_internal_getattr":
|
|
355
|
-
|
|
354
|
+
"_internal_getattr": staticmethod(
|
|
355
|
+
functools.partial(
|
|
356
|
+
_lazy_load_command, cli_collection, "_compute_flow_parameters"
|
|
357
|
+
)
|
|
356
358
|
),
|
|
357
359
|
"__getattr__": getattr_wrapper,
|
|
358
360
|
}
|
|
@@ -109,7 +109,6 @@ def read_from_fifo_when_ready(
|
|
|
109
109
|
content = bytearray()
|
|
110
110
|
poll = select.poll()
|
|
111
111
|
poll.register(fifo_fd, select.POLLIN)
|
|
112
|
-
max_timeout = 3 # Wait for 10 * 3 = 30 ms after last write
|
|
113
112
|
while True:
|
|
114
113
|
if check_process_exited(command_obj) and command_obj.process.returncode != 0:
|
|
115
114
|
raise CalledProcessError(
|
|
@@ -137,15 +136,16 @@ def read_from_fifo_when_ready(
|
|
|
137
136
|
else:
|
|
138
137
|
# We had no events (just a timeout) and the read didn't return
|
|
139
138
|
# an exception so the file is still open; we continue waiting for data
|
|
140
|
-
#
|
|
141
|
-
#
|
|
142
|
-
#
|
|
143
|
-
#
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
139
|
+
# On some systems (notably MacOS), even after the file is closed on the
|
|
140
|
+
# other end, we may not get a BlockingIOError or proper EOF signal.
|
|
141
|
+
# Instead of using an arbitrary timeout, check if the writer process
|
|
142
|
+
# has actually exited. If it has and we have content, we can safely
|
|
143
|
+
# assume EOF. If the process is still running, continue waiting.
|
|
144
|
+
if content and check_process_exited(command_obj):
|
|
145
|
+
# Process has exited and we got an empty read with no poll events.
|
|
146
|
+
# This is EOF - break out to return the content we've collected.
|
|
147
|
+
break
|
|
148
|
+
# else: process is still running, continue waiting for more data
|
|
149
149
|
except BlockingIOError:
|
|
150
150
|
has_blocking_error = True
|
|
151
151
|
if content:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
metaflow_version = "2.18.13.1"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ob-metaflow
|
|
3
|
-
Version: 2.18.
|
|
3
|
+
Version: 2.18.13.1
|
|
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.18.
|
|
15
|
+
Requires-Dist: metaflow-stubs==2.18.13.1; extra == "stubs"
|
|
16
16
|
Dynamic: author
|
|
17
17
|
Dynamic: author-email
|
|
18
18
|
Dynamic: description
|
|
@@ -249,6 +249,7 @@ metaflow/plugins/argo/conditional_input_paths.py
|
|
|
249
249
|
metaflow/plugins/argo/exit_hooks.py
|
|
250
250
|
metaflow/plugins/argo/generate_input_paths.py
|
|
251
251
|
metaflow/plugins/argo/jobset_input_paths.py
|
|
252
|
+
metaflow/plugins/argo/param_val.py
|
|
252
253
|
metaflow/plugins/aws/__init__.py
|
|
253
254
|
metaflow/plugins/aws/aws_client.py
|
|
254
255
|
metaflow/plugins/aws/aws_utils.py
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
metaflow_version = "2.18.11.1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/__init__.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/_adapters.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/_collections.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/_compat.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/_functools.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/_itertools.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/_meta.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/_text.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/importlib_metadata/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/_pytest_plugin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/typeguard/_union_transformer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ob_metaflow-2.18.11.1 → ob_metaflow-2.18.13.1}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py
RENAMED
|
File without changes
|