ob-metaflow 2.18.5.1__tar.gz → 2.18.7.2__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.5.1/ob_metaflow.egg-info → ob_metaflow-2.18.7.2}/PKG-INFO +2 -2
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/events_decorator.py +127 -121
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/pypi/pip.py +29 -3
- ob_metaflow-2.18.7.2/metaflow/version.py +1 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2/ob_metaflow.egg-info}/PKG-INFO +2 -2
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/ob_metaflow.egg-info/requires.txt +1 -1
- ob_metaflow-2.18.5.1/metaflow/version.py +0 -1
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/LICENSE +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/MANIFEST.in +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/README.md +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/devtools/Makefile +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/devtools/Tiltfile +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/devtools/pick_services.sh +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/R.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/_bashcomplete.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/_compat.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/_termui_impl.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/_textwrap.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/_unicodefun.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/_winconsole.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/core.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/decorators.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/exceptions.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/formatting.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/globals.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/parser.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/termui.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/testing.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/types.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/click/utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/imghdr/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/importlib_metadata/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/importlib_metadata/_adapters.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/importlib_metadata/_collections.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/importlib_metadata/_compat.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/importlib_metadata/_functools.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/importlib_metadata/_itertools.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/importlib_metadata/_meta.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/importlib_metadata/_text.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/importlib_metadata/py.typed +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/packaging/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/packaging/_elffile.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/packaging/_manylinux.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/packaging/_musllinux.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/packaging/_parser.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/packaging/_structures.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/packaging/_tokenizer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/packaging/markers.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/packaging/py.typed +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/packaging/requirements.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/packaging/specifiers.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/packaging/tags.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/packaging/utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/packaging/version.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/typeguard/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/typeguard/_checkers.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/typeguard/_config.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/typeguard/_decorators.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/typeguard/_exceptions.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/typeguard/_functions.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/typeguard/_importhook.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/typeguard/_memo.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/typeguard/_pytest_plugin.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/typeguard/_suppression.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/typeguard/_transformer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/typeguard/_union_transformer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/typeguard/_utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/typeguard/py.typed +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/typing_extensions.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/importlib_metadata/_meta.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/importlib_metadata/_text.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/importlib_metadata/py.typed +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/typing_extensions.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/zipp.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/importlib_metadata/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/importlib_metadata/_adapters.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/importlib_metadata/_collections.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/importlib_metadata/_compat.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/importlib_metadata/_functools.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/importlib_metadata/_itertools.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/importlib_metadata/_meta.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/importlib_metadata/_text.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/importlib_metadata/py.typed +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/typeguard/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/typeguard/_checkers.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/typeguard/_config.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/typeguard/_decorators.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/typeguard/_exceptions.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/typeguard/_functions.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/typeguard/_importhook.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/typeguard/_memo.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/typeguard/_pytest_plugin.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/typeguard/_suppression.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/typeguard/_transformer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/typeguard/_union_transformer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/typeguard/_utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/typeguard/py.typed +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/typing_extensions.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_7/zipp.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/composer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/constructor.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/cyaml.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/dumper.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/emitter.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/error.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/events.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/loader.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/nodes.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/parser.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/reader.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/representer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/resolver.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/scanner.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/serializer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/yaml/tokens.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/zipp.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cards.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cli.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cli_args.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cli_components/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cli_components/dump_cmd.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cli_components/init_cmd.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cli_components/run_cmds.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cli_components/step_cmd.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cli_components/utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/client/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/client/core.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/client/filecache.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/clone_util.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cmd/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cmd/code/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cmd/configure_cmd.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cmd/develop/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cmd/develop/stub_generator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cmd/develop/stubs.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cmd/main_cli.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cmd/make_wrapper.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cmd/tutorials_cmd.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cmd/util.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/cmd_with_io.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/datastore/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/datastore/content_addressed_store.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/datastore/datastore_set.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/datastore/datastore_storage.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/datastore/exceptions.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/datastore/flow_datastore.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/datastore/inputs.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/datastore/task_datastore.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/debug.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/decorators.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/event_logger.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/events.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/exception.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/extension_support/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/extension_support/_empty_file.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/extension_support/cmd.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/extension_support/integrations.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/extension_support/plugins.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/flowspec.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/graph.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/includefile.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/integrations.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/lint.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/meta_files.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/metadata_provider/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/metadata_provider/heartbeat.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/metadata_provider/metadata.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/metadata_provider/util.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/metaflow_config.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/metaflow_config_funcs.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/metaflow_current.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/metaflow_environment.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/metaflow_git.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/metaflow_profile.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/metaflow_version.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/mflog/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/mflog/mflog.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/mflog/save_logs.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/mflog/save_logs_periodically.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/mflog/tee.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/monitor.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/multicore_utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/package/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/packaging_sys/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/packaging_sys/backend.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/packaging_sys/distribution_support.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/packaging_sys/tar_backend.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/packaging_sys/utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/packaging_sys/v1.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/parameters.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/airflow/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/airflow/airflow.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/airflow/airflow_cli.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/airflow/airflow_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/airflow/airflow_utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/airflow/dag.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/airflow/exception.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/airflow/plumbing/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/airflow/plumbing/set_parameters.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/airflow/sensors/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/airflow/sensors/base_sensor.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/airflow/sensors/external_task_sensor.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/airflow/sensors/s3_sensor.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/argo/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/argo/argo_client.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/argo/argo_events.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/argo/argo_workflows.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/argo/argo_workflows_cli.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/argo/argo_workflows_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/argo/argo_workflows_deployer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/argo/argo_workflows_deployer_objects.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/argo/capture_error.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/argo/conditional_input_paths.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/argo/exit_hooks.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/argo/generate_input_paths.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/argo/jobset_input_paths.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/aws_client.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/aws_utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/batch/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/batch/batch.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/batch/batch_cli.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/batch/batch_client.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/batch/batch_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/secrets_manager/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/step_functions/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/step_functions/dynamo_db_client.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/step_functions/event_bridge_client.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/step_functions/production_token.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/step_functions/schedule_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/step_functions/set_batch_environment.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/step_functions/step_functions.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/step_functions/step_functions_cli.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/step_functions/step_functions_client.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/step_functions/step_functions_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/step_functions/step_functions_deployer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/azure/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/azure/azure_credential.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/azure/azure_exceptions.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/azure/azure_secret_manager_secrets_provider.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/azure/azure_tail.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/azure/azure_utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/azure/blob_service_client_factory.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/azure/includefile_support.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_cli.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_client.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_creator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_datastore.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/base.html +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/basic.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/bundle.css +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/card.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/chevron/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/chevron/main.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/chevron/metadata.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/chevron/renderer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/chevron/tokenizer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/components.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/convert_to_native_type.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/main.css +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/main.js +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/renderer_tools.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_modules/test_cards.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_resolver.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_server.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/card_viewer/viewer.html +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/component_serializer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/exception.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/cards/metadata.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/catch_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/datastores/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/datastores/azure_storage.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/datastores/gs_storage.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/datastores/local_storage.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/datastores/s3_storage.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/datatools/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/datatools/local.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/datatools/s3/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/datatools/s3/s3.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/datatools/s3/s3op.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/datatools/s3/s3tail.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/datatools/s3/s3util.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/debug_logger.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/debug_monitor.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/client.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/client_modules.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/communication/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/communication/bytestream.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/communication/channel.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/communication/socket_bytestream.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/communication/utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/consts.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/data_transferer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/exception_transferer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/override_decorators.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/server.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/stub.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/env_escape/utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/environment_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/exit_hook/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/exit_hook/exit_hook_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/exit_hook/exit_hook_script.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/frameworks/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/frameworks/pytorch.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/gcp/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/gcp/gs_exceptions.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/gcp/gs_storage_client_factory.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/gcp/gs_tail.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/gcp/gs_utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/gcp/includefile_support.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/kubernetes/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/kubernetes/kube_utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/kubernetes/kubernetes.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/kubernetes/kubernetes_cli.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/kubernetes/kubernetes_client.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/kubernetes/kubernetes_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/kubernetes/kubernetes_job.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/kubernetes/kubernetes_jobsets.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/kubernetes/spot_metadata_cli.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/kubernetes/spot_monitor_sidecar.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/logs_cli.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/metadata_providers/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/metadata_providers/local.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/metadata_providers/service.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/package_cli.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/parallel_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/project_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/pypi/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/pypi/bootstrap.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/pypi/conda_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/pypi/conda_environment.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/pypi/micromamba.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/pypi/parsers.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/pypi/pypi_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/pypi/pypi_environment.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/pypi/utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/resources_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/retry_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/secrets/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/secrets/inline_secrets_provider.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/secrets/secrets_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/secrets/secrets_func.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/secrets/secrets_spec.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/secrets/utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/storage_executor.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/tag_cli.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/test_unbounded_foreach_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/timeout_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/uv/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/uv/bootstrap.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/plugins/uv/uv_environment.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/procpoll.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/py.typed +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/pylint_wrapper.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/runner/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/runner/click_api.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/runner/deployer.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/runner/deployer_impl.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/runner/metaflow_runner.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/runner/nbdeploy.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/runner/nbrun.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/runner/subprocess_manager.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/runner/utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/runtime.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/sidecar/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/sidecar/sidecar.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/sidecar/sidecar_messages.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/sidecar/sidecar_subprocess.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/sidecar/sidecar_worker.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/system/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/system/system_logger.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/system/system_monitor.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/system/system_utils.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tagging_util.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/task.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tracing/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tracing/propagator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tracing/span_exporter.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tracing/tracing_modules.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tuple_util.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/00-helloworld/README.md +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/00-helloworld/helloworld.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/01-playlist/README.md +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/01-playlist/movies.csv +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/01-playlist/playlist.ipynb +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/01-playlist/playlist.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/02-statistics/README.md +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/02-statistics/movies.csv +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/02-statistics/stats.ipynb +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/02-statistics/stats.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/03-playlist-redux/README.md +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/03-playlist-redux/playlist.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/04-playlist-plus/README.md +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/04-playlist-plus/playlist.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/05-hello-cloud/README.md +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/05-hello-cloud/hello-cloud.ipynb +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/05-hello-cloud/hello-cloud.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/06-statistics-redux/README.md +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/06-statistics-redux/stats.ipynb +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/07-worldview/README.md +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/07-worldview/worldview.ipynb +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/08-autopilot/README.md +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/tutorials/08-autopilot/autopilot.ipynb +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/unbounded_foreach.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/user_configs/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/user_configs/config_options.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/user_configs/config_parameters.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/user_decorators/__init__.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/user_decorators/common.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/user_decorators/mutable_flow.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/user_decorators/mutable_step.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/user_decorators/user_flow_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/user_decorators/user_step_decorator.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/util.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/vendor.py +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/ob_metaflow.egg-info/SOURCES.txt +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/ob_metaflow.egg-info/dependency_links.txt +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/ob_metaflow.egg-info/entry_points.txt +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/ob_metaflow.egg-info/top_level.txt +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/setup.cfg +0 -0
- {ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/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.7.2
|
|
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.7.2; extra == "stubs"
|
|
16
16
|
Dynamic: author
|
|
17
17
|
Dynamic: author-email
|
|
18
18
|
Dynamic: description
|
|
@@ -70,7 +70,26 @@ class TriggerDecorator(FlowDecorator):
|
|
|
70
70
|
"options": {},
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
def
|
|
73
|
+
def process_event(self, event):
|
|
74
|
+
"""
|
|
75
|
+
Process a single event and return a dictionary if static trigger and a function
|
|
76
|
+
if deploy-time trigger.
|
|
77
|
+
|
|
78
|
+
Parameters
|
|
79
|
+
----------
|
|
80
|
+
event : Union[str, Dict[str, Any], Callable]
|
|
81
|
+
Event to process
|
|
82
|
+
|
|
83
|
+
Returns
|
|
84
|
+
-------
|
|
85
|
+
Union[Dict[str, Union[str, Callable]], Callable]
|
|
86
|
+
Processed event
|
|
87
|
+
|
|
88
|
+
Raises
|
|
89
|
+
------
|
|
90
|
+
MetaflowException
|
|
91
|
+
If the event is not in the correct format
|
|
92
|
+
"""
|
|
74
93
|
if is_stringish(event):
|
|
75
94
|
return {"name": str(event)}
|
|
76
95
|
elif isinstance(event, dict):
|
|
@@ -82,12 +101,26 @@ class TriggerDecorator(FlowDecorator):
|
|
|
82
101
|
event["name"], DeployTimeField
|
|
83
102
|
):
|
|
84
103
|
event["name"] = DeployTimeField(
|
|
85
|
-
"event_name",
|
|
104
|
+
"event_name",
|
|
105
|
+
str,
|
|
106
|
+
None,
|
|
107
|
+
event["name"],
|
|
108
|
+
False,
|
|
109
|
+
print_representation=str(event["name"]),
|
|
86
110
|
)
|
|
87
|
-
event["parameters"] = self.process_parameters(
|
|
111
|
+
event["parameters"] = self.process_parameters(
|
|
112
|
+
event.get("parameters", {}), event["name"]
|
|
113
|
+
)
|
|
88
114
|
return event
|
|
89
115
|
elif callable(event) and not isinstance(event, DeployTimeField):
|
|
90
|
-
return DeployTimeField(
|
|
116
|
+
return DeployTimeField(
|
|
117
|
+
"event",
|
|
118
|
+
[str, dict],
|
|
119
|
+
None,
|
|
120
|
+
event,
|
|
121
|
+
False,
|
|
122
|
+
print_representation=str(event),
|
|
123
|
+
)
|
|
91
124
|
else:
|
|
92
125
|
raise MetaflowException(
|
|
93
126
|
"Incorrect format for *event* attribute in *@trigger* decorator. "
|
|
@@ -96,47 +129,67 @@ class TriggerDecorator(FlowDecorator):
|
|
|
96
129
|
"'parameters': {'alpha': 'beta'}})"
|
|
97
130
|
)
|
|
98
131
|
|
|
99
|
-
def process_parameters(self, parameters):
|
|
132
|
+
def process_parameters(self, parameters, event_name):
|
|
133
|
+
"""
|
|
134
|
+
Process the parameters for an event and return a dictionary of parameter mappings if
|
|
135
|
+
parameters was statically defined or a function if deploy-time trigger.
|
|
136
|
+
|
|
137
|
+
Parameters
|
|
138
|
+
----------
|
|
139
|
+
Parameters : Union[Dict[str, str], List[Union[str, Tuple[str, str]]], Callable]
|
|
140
|
+
Parameters to process
|
|
141
|
+
|
|
142
|
+
event_name : Union[str, callable]
|
|
143
|
+
Name of the event
|
|
144
|
+
|
|
145
|
+
Returns
|
|
146
|
+
-------
|
|
147
|
+
Union[Dict[str, str], Callable]
|
|
148
|
+
Processed parameters
|
|
149
|
+
|
|
150
|
+
Raises
|
|
151
|
+
------
|
|
152
|
+
MetaflowException
|
|
153
|
+
If the parameters are not in the correct format
|
|
154
|
+
"""
|
|
100
155
|
new_param_values = {}
|
|
101
|
-
if isinstance(parameters,
|
|
156
|
+
if isinstance(parameters, list):
|
|
102
157
|
for mapping in parameters:
|
|
103
158
|
if is_stringish(mapping):
|
|
159
|
+
# param_name
|
|
104
160
|
new_param_values[mapping] = mapping
|
|
105
|
-
elif
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
)
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
mapping[0], DeployTimeField
|
|
113
|
-
):
|
|
114
|
-
mapping[0] = DeployTimeField(
|
|
115
|
-
"parameter_val", str, None, mapping[0], False
|
|
116
|
-
)
|
|
117
|
-
if callable(mapping[1]) and not isinstance(
|
|
118
|
-
mapping[1], DeployTimeField
|
|
119
|
-
):
|
|
120
|
-
mapping[1] = DeployTimeField(
|
|
121
|
-
"parameter_val", str, None, mapping[1], False
|
|
161
|
+
elif isinstance(mapping, tuple) and len(mapping) == 2:
|
|
162
|
+
# (param_name, field_name)
|
|
163
|
+
param_name, field_name = mapping
|
|
164
|
+
if not is_stringish(param_name) or not is_stringish(field_name):
|
|
165
|
+
raise MetaflowException(
|
|
166
|
+
f"The *parameters* attribute for event {event_name} is invalid. "
|
|
167
|
+
"It should be a list/tuple of strings and lists/tuples of size 2."
|
|
122
168
|
)
|
|
123
|
-
new_param_values[
|
|
169
|
+
new_param_values[param_name] = field_name
|
|
124
170
|
else:
|
|
125
171
|
raise MetaflowException(
|
|
126
172
|
"The *parameters* attribute for event is invalid. "
|
|
127
173
|
"It should be a list/tuple of strings and lists/tuples of size 2"
|
|
128
174
|
)
|
|
129
|
-
elif callable(parameters) and not isinstance(parameters, DeployTimeField):
|
|
130
|
-
return DeployTimeField(
|
|
131
|
-
"parameters", [list, dict, tuple], None, parameters, False
|
|
132
|
-
)
|
|
133
175
|
elif isinstance(parameters, dict):
|
|
134
176
|
for key, value in parameters.items():
|
|
135
|
-
if
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
177
|
+
if not is_stringish(key) or not is_stringish(value):
|
|
178
|
+
raise MetaflowException(
|
|
179
|
+
f"The *parameters* attribute for event {event_name} is invalid. "
|
|
180
|
+
"It should be a dictionary of string keys and string values."
|
|
181
|
+
)
|
|
139
182
|
new_param_values[key] = value
|
|
183
|
+
elif callable(parameters) and not isinstance(parameters, DeployTimeField):
|
|
184
|
+
# func
|
|
185
|
+
return DeployTimeField(
|
|
186
|
+
"parameters",
|
|
187
|
+
[list, dict, tuple],
|
|
188
|
+
None,
|
|
189
|
+
parameters,
|
|
190
|
+
False,
|
|
191
|
+
print_representation=str(parameters),
|
|
192
|
+
)
|
|
140
193
|
return new_param_values
|
|
141
194
|
|
|
142
195
|
def flow_init(
|
|
@@ -158,7 +211,7 @@ class TriggerDecorator(FlowDecorator):
|
|
|
158
211
|
)
|
|
159
212
|
elif self.attributes["event"]:
|
|
160
213
|
event = self.attributes["event"]
|
|
161
|
-
processed_event = self.
|
|
214
|
+
processed_event = self.process_event(event)
|
|
162
215
|
self.triggers.append(processed_event)
|
|
163
216
|
elif self.attributes["events"]:
|
|
164
217
|
# events attribute supports the following formats -
|
|
@@ -169,13 +222,18 @@ class TriggerDecorator(FlowDecorator):
|
|
|
169
222
|
if isinstance(self.attributes["events"], list):
|
|
170
223
|
# process every event in events
|
|
171
224
|
for event in self.attributes["events"]:
|
|
172
|
-
processed_event = self.
|
|
225
|
+
processed_event = self.process_event(event)
|
|
173
226
|
self.triggers.append(processed_event)
|
|
174
227
|
elif callable(self.attributes["events"]) and not isinstance(
|
|
175
228
|
self.attributes["events"], DeployTimeField
|
|
176
229
|
):
|
|
177
230
|
trig = DeployTimeField(
|
|
178
|
-
"events",
|
|
231
|
+
"events",
|
|
232
|
+
list,
|
|
233
|
+
None,
|
|
234
|
+
self.attributes["events"],
|
|
235
|
+
False,
|
|
236
|
+
print_representation=str(self.attributes["events"]),
|
|
179
237
|
)
|
|
180
238
|
self.triggers.append(trig)
|
|
181
239
|
else:
|
|
@@ -208,101 +266,40 @@ class TriggerDecorator(FlowDecorator):
|
|
|
208
266
|
|
|
209
267
|
def format_deploytime_value(self):
|
|
210
268
|
new_triggers = []
|
|
269
|
+
|
|
270
|
+
# First pass to evaluate DeployTimeFields
|
|
211
271
|
for trigger in self.triggers:
|
|
212
272
|
# Case where trigger is a function that returns a list of events
|
|
213
273
|
# Need to do this bc we need to iterate over list later
|
|
214
274
|
if isinstance(trigger, DeployTimeField):
|
|
215
275
|
evaluated_trigger = deploy_time_eval(trigger)
|
|
216
|
-
if isinstance(evaluated_trigger, dict):
|
|
217
|
-
trigger = evaluated_trigger
|
|
218
|
-
elif isinstance(evaluated_trigger, str):
|
|
219
|
-
trigger = {"name": evaluated_trigger}
|
|
220
276
|
if isinstance(evaluated_trigger, list):
|
|
221
|
-
for
|
|
222
|
-
|
|
223
|
-
new_triggers.append({"name": trig})
|
|
224
|
-
else: # dict or another deploytimefield
|
|
225
|
-
new_triggers.append(trig)
|
|
277
|
+
for event in evaluated_trigger:
|
|
278
|
+
new_triggers.append(self.process_event(event))
|
|
226
279
|
else:
|
|
227
|
-
new_triggers.append(
|
|
280
|
+
new_triggers.append(self.process_event(evaluated_trigger))
|
|
228
281
|
else:
|
|
229
282
|
new_triggers.append(trigger)
|
|
230
283
|
|
|
284
|
+
# Second pass to evaluate names
|
|
285
|
+
for trigger in new_triggers:
|
|
286
|
+
name = trigger.get("name")
|
|
287
|
+
if isinstance(name, DeployTimeField):
|
|
288
|
+
trigger["name"] = deploy_time_eval(name)
|
|
289
|
+
if not is_stringish(trigger["name"]):
|
|
290
|
+
raise MetaflowException(
|
|
291
|
+
f"The *name* attribute for event {trigger} is not a valid string"
|
|
292
|
+
)
|
|
293
|
+
|
|
294
|
+
# third pass to evaluate parameters
|
|
295
|
+
for trigger in new_triggers:
|
|
296
|
+
parameters = trigger.get("parameters", {})
|
|
297
|
+
if isinstance(parameters, DeployTimeField):
|
|
298
|
+
parameters_eval = deploy_time_eval(parameters)
|
|
299
|
+
parameters = self.process_parameters(parameters_eval, trigger["name"])
|
|
300
|
+
trigger["parameters"] = parameters
|
|
301
|
+
|
|
231
302
|
self.triggers = new_triggers
|
|
232
|
-
for trigger in self.triggers:
|
|
233
|
-
old_trigger = trigger
|
|
234
|
-
trigger_params = trigger.get("parameters", {})
|
|
235
|
-
# Case where param is a function (can return list or dict)
|
|
236
|
-
if isinstance(trigger_params, DeployTimeField):
|
|
237
|
-
trigger_params = deploy_time_eval(trigger_params)
|
|
238
|
-
# If params is a list of strings, convert to dict with same key and value
|
|
239
|
-
if isinstance(trigger_params, (list, tuple)):
|
|
240
|
-
new_trigger_params = {}
|
|
241
|
-
for mapping in trigger_params:
|
|
242
|
-
if is_stringish(mapping) or callable(mapping):
|
|
243
|
-
new_trigger_params[mapping] = mapping
|
|
244
|
-
elif callable(mapping) and not isinstance(mapping, DeployTimeField):
|
|
245
|
-
mapping = DeployTimeField(
|
|
246
|
-
"parameter_val", str, None, mapping, False
|
|
247
|
-
)
|
|
248
|
-
new_trigger_params[mapping] = mapping
|
|
249
|
-
elif isinstance(mapping, (list, tuple)) and len(mapping) == 2:
|
|
250
|
-
if callable(mapping[0]) and not isinstance(
|
|
251
|
-
mapping[0], DeployTimeField
|
|
252
|
-
):
|
|
253
|
-
mapping[0] = DeployTimeField(
|
|
254
|
-
"parameter_val",
|
|
255
|
-
str,
|
|
256
|
-
None,
|
|
257
|
-
mapping[1],
|
|
258
|
-
False,
|
|
259
|
-
)
|
|
260
|
-
if callable(mapping[1]) and not isinstance(
|
|
261
|
-
mapping[1], DeployTimeField
|
|
262
|
-
):
|
|
263
|
-
mapping[1] = DeployTimeField(
|
|
264
|
-
"parameter_val",
|
|
265
|
-
str,
|
|
266
|
-
None,
|
|
267
|
-
mapping[1],
|
|
268
|
-
False,
|
|
269
|
-
)
|
|
270
|
-
|
|
271
|
-
new_trigger_params[mapping[0]] = mapping[1]
|
|
272
|
-
else:
|
|
273
|
-
raise MetaflowException(
|
|
274
|
-
"The *parameters* attribute for event '%s' is invalid. "
|
|
275
|
-
"It should be a list/tuple of strings and lists/tuples "
|
|
276
|
-
"of size 2" % self.attributes["event"]["name"]
|
|
277
|
-
)
|
|
278
|
-
trigger_params = new_trigger_params
|
|
279
|
-
trigger["parameters"] = trigger_params
|
|
280
|
-
|
|
281
|
-
trigger_name = trigger.get("name")
|
|
282
|
-
# Case where just the name is a function (always a str)
|
|
283
|
-
if isinstance(trigger_name, DeployTimeField):
|
|
284
|
-
trigger_name = deploy_time_eval(trigger_name)
|
|
285
|
-
trigger["name"] = trigger_name
|
|
286
|
-
|
|
287
|
-
# Third layer
|
|
288
|
-
# {name:, parameters:[func, ..., ...]}
|
|
289
|
-
# {name:, parameters:{func : func2}}
|
|
290
|
-
for trigger in self.triggers:
|
|
291
|
-
old_trigger = trigger
|
|
292
|
-
trigger_params = trigger.get("parameters", {})
|
|
293
|
-
new_trigger_params = {}
|
|
294
|
-
for key, value in trigger_params.items():
|
|
295
|
-
if isinstance(value, DeployTimeField) and key is value:
|
|
296
|
-
evaluated_param = deploy_time_eval(value)
|
|
297
|
-
new_trigger_params[evaluated_param] = evaluated_param
|
|
298
|
-
elif isinstance(value, DeployTimeField):
|
|
299
|
-
new_trigger_params[key] = deploy_time_eval(value)
|
|
300
|
-
elif isinstance(key, DeployTimeField):
|
|
301
|
-
new_trigger_params[deploy_time_eval(key)] = value
|
|
302
|
-
else:
|
|
303
|
-
new_trigger_params[key] = value
|
|
304
|
-
trigger["parameters"] = new_trigger_params
|
|
305
|
-
self.triggers[self.triggers.index(old_trigger)] = trigger
|
|
306
303
|
|
|
307
304
|
|
|
308
305
|
class TriggerOnFinishDecorator(FlowDecorator):
|
|
@@ -402,7 +399,14 @@ class TriggerOnFinishDecorator(FlowDecorator):
|
|
|
402
399
|
if callable(flow) and not isinstance(
|
|
403
400
|
self.attributes["flow"], DeployTimeField
|
|
404
401
|
):
|
|
405
|
-
trig = DeployTimeField(
|
|
402
|
+
trig = DeployTimeField(
|
|
403
|
+
"fq_name",
|
|
404
|
+
[str, dict],
|
|
405
|
+
None,
|
|
406
|
+
flow,
|
|
407
|
+
False,
|
|
408
|
+
print_representation=str(flow),
|
|
409
|
+
)
|
|
406
410
|
self.triggers.append(trig)
|
|
407
411
|
else:
|
|
408
412
|
self.triggers.extend(self._parse_static_triggers([flow]))
|
|
@@ -411,7 +415,9 @@ class TriggerOnFinishDecorator(FlowDecorator):
|
|
|
411
415
|
# 1. flows=['FooFlow', 'BarFlow']
|
|
412
416
|
flows = self.attributes["flows"]
|
|
413
417
|
if callable(flows) and not isinstance(flows, DeployTimeField):
|
|
414
|
-
trig = DeployTimeField(
|
|
418
|
+
trig = DeployTimeField(
|
|
419
|
+
"flows", list, None, flows, False, print_representation=str(flows)
|
|
420
|
+
)
|
|
415
421
|
self.triggers.append(trig)
|
|
416
422
|
elif isinstance(flows, list):
|
|
417
423
|
self.triggers.extend(self._parse_static_triggers(flows))
|
|
@@ -60,6 +60,15 @@ class Pip(object):
|
|
|
60
60
|
else:
|
|
61
61
|
self.logger = lambda *args, **kwargs: None # No-op logger if not provided
|
|
62
62
|
|
|
63
|
+
def _get_resolved_python_version(self, prefix):
|
|
64
|
+
try:
|
|
65
|
+
result = self.micromamba._call(["list", "--prefix", prefix, "--json"])
|
|
66
|
+
for package in result:
|
|
67
|
+
if package.get("name") == "python":
|
|
68
|
+
return package["version"]
|
|
69
|
+
except Exception:
|
|
70
|
+
return None
|
|
71
|
+
|
|
63
72
|
def solve(self, id_, packages, python, platform):
|
|
64
73
|
prefix = self.micromamba.path_to_environment(id_)
|
|
65
74
|
if prefix is None:
|
|
@@ -67,13 +76,19 @@ class Pip(object):
|
|
|
67
76
|
msg += "for id {id}".format(id=id_)
|
|
68
77
|
raise PipException(msg)
|
|
69
78
|
|
|
79
|
+
resolved_python = self._get_resolved_python_version(prefix)
|
|
80
|
+
if not resolved_python:
|
|
81
|
+
raise PipException(
|
|
82
|
+
"Could not determine Python version from conda environment"
|
|
83
|
+
)
|
|
84
|
+
|
|
70
85
|
debug.conda_exec("Solving packages for PyPI environment %s" % id_)
|
|
71
86
|
with tempfile.TemporaryDirectory() as tmp_dir:
|
|
72
87
|
report = "{tmp_dir}/report.json".format(tmp_dir=tmp_dir)
|
|
73
88
|
implementations, platforms, abis = zip(
|
|
74
89
|
*[
|
|
75
90
|
(tag.interpreter, tag.platform, tag.abi)
|
|
76
|
-
for tag in pip_tags(
|
|
91
|
+
for tag in pip_tags(resolved_python, platform)
|
|
77
92
|
]
|
|
78
93
|
)
|
|
79
94
|
custom_index_url, extra_index_urls = self.indices(prefix)
|
|
@@ -142,6 +157,13 @@ class Pip(object):
|
|
|
142
157
|
|
|
143
158
|
def download(self, id_, packages, python, platform):
|
|
144
159
|
prefix = self.micromamba.path_to_environment(id_)
|
|
160
|
+
|
|
161
|
+
resolved_python = self._get_resolved_python_version(prefix)
|
|
162
|
+
if not resolved_python:
|
|
163
|
+
raise PipException(
|
|
164
|
+
"Could not determine Python version from conda environment"
|
|
165
|
+
)
|
|
166
|
+
|
|
145
167
|
metadata_file = METADATA_FILE.format(prefix=prefix)
|
|
146
168
|
# download packages only if they haven't ever been downloaded before
|
|
147
169
|
if os.path.isfile(metadata_file):
|
|
@@ -192,7 +214,11 @@ class Pip(object):
|
|
|
192
214
|
if os.path.isfile(os.path.join(path, f)) and f.endswith(".whl")
|
|
193
215
|
]
|
|
194
216
|
if (
|
|
195
|
-
len(
|
|
217
|
+
len(
|
|
218
|
+
set(pip_tags(resolved_python, platform)).intersection(
|
|
219
|
+
wheel_tags(wheel)
|
|
220
|
+
)
|
|
221
|
+
)
|
|
196
222
|
== 0
|
|
197
223
|
):
|
|
198
224
|
raise PipException(
|
|
@@ -211,7 +237,7 @@ class Pip(object):
|
|
|
211
237
|
implementations, platforms, abis = zip(
|
|
212
238
|
*[
|
|
213
239
|
(tag.interpreter, tag.platform, tag.abi)
|
|
214
|
-
for tag in pip_tags(
|
|
240
|
+
for tag in pip_tags(resolved_python, platform)
|
|
215
241
|
]
|
|
216
242
|
)
|
|
217
243
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
metaflow_version = "2.18.7.2"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ob-metaflow
|
|
3
|
-
Version: 2.18.
|
|
3
|
+
Version: 2.18.7.2
|
|
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.7.2; extra == "stubs"
|
|
16
16
|
Dynamic: author
|
|
17
17
|
Dynamic: author-email
|
|
18
18
|
Dynamic: description
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
metaflow_version = "2.18.5.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.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/importlib_metadata/__init__.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/importlib_metadata/_adapters.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/importlib_metadata/_collections.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/importlib_metadata/_compat.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/importlib_metadata/_functools.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/importlib_metadata/_itertools.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.5.1 → ob_metaflow-2.18.7.2}/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.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py
RENAMED
|
File without changes
|
|
File without changes
|
{ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py
RENAMED
|
File without changes
|
{ob_metaflow-2.18.5.1 → ob_metaflow-2.18.7.2}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py
RENAMED
|
File without changes
|