metaflow 2.15.18__tar.gz → 2.15.19__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {metaflow-2.15.18/metaflow.egg-info → metaflow-2.15.19}/PKG-INFO +2 -2
- {metaflow-2.15.18 → metaflow-2.15.19}/devtools/Tiltfile +27 -2
- metaflow-2.15.19/metaflow/_vendor/imghdr/__init__.py +180 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/develop/stub_generator.py +19 -2
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/__init__.py +3 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/airflow.py +6 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/argo_workflows.py +316 -287
- metaflow-2.15.19/metaflow/plugins/argo/exit_hooks.py +209 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/aws_utils.py +1 -1
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/step_functions.py +6 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_cli.py +20 -1
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_creator.py +24 -1
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_decorator.py +57 -1
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/convert_to_native_type.py +5 -2
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/test_cards.py +16 -0
- metaflow-2.15.19/metaflow/plugins/cards/metadata.py +22 -0
- metaflow-2.15.19/metaflow/plugins/exit_hook/exit_hook_decorator.py +46 -0
- metaflow-2.15.19/metaflow/plugins/exit_hook/exit_hook_script.py +52 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/secrets/__init__.py +3 -0
- metaflow-2.15.19/metaflow/plugins/secrets/secrets_decorator.py +123 -0
- metaflow-2.15.19/metaflow/plugins/secrets/secrets_func.py +60 -0
- metaflow-2.15.19/metaflow/plugins/secrets/secrets_spec.py +101 -0
- metaflow-2.15.19/metaflow/plugins/secrets/utils.py +74 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/metaflow_runner.py +16 -1
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runtime.py +45 -0
- metaflow-2.15.19/metaflow/user_configs/__init__.py +0 -0
- metaflow-2.15.19/metaflow/version.py +1 -0
- {metaflow-2.15.18 → metaflow-2.15.19/metaflow.egg-info}/PKG-INFO +2 -2
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow.egg-info/SOURCES.txt +9 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow.egg-info/requires.txt +1 -1
- metaflow-2.15.18/metaflow/plugins/secrets/secrets_decorator.py +0 -287
- metaflow-2.15.18/metaflow/version.py +0 -1
- {metaflow-2.15.18 → metaflow-2.15.19}/LICENSE +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/MANIFEST.in +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/README.md +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/devtools/Makefile +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/devtools/pick_services.sh +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/R.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/_bashcomplete.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/_compat.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/_termui_impl.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/_textwrap.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/_unicodefun.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/_winconsole.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/core.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/decorators.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/exceptions.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/formatting.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/globals.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/parser.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/termui.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/testing.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/types.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/click/utils.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/_adapters.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/_collections.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/_compat.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/_functools.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/_itertools.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/_meta.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/_text.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/importlib_metadata/py.typed +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/_elffile.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/_manylinux.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/_musllinux.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/_parser.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/_structures.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/_tokenizer.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/markers.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/py.typed +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/requirements.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/specifiers.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/tags.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/utils.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/packaging/version.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_checkers.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_config.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_decorators.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_exceptions.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_functions.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_importhook.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_memo.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_pytest_plugin.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_suppression.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_transformer.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_union_transformer.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/_utils.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typeguard/py.typed +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/typing_extensions.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/_meta.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/_text.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/importlib_metadata/py.typed +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/typing_extensions.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_6/zipp.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/_adapters.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/_collections.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/_compat.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/_functools.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/_itertools.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/_meta.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/_text.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/importlib_metadata/py.typed +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_checkers.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_config.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_decorators.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_exceptions.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_functions.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_importhook.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_memo.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_pytest_plugin.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_suppression.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_transformer.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_union_transformer.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/_utils.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typeguard/py.typed +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/typing_extensions.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/v3_7/zipp.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/_vendor/zipp.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cards.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli_args.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli_components/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli_components/dump_cmd.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli_components/init_cmd.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli_components/run_cmds.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli_components/step_cmd.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cli_components/utils.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/client/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/client/core.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/client/filecache.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/clone_util.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/code/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/configure_cmd.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/develop/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/develop/stubs.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/main_cli.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/make_wrapper.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/tutorials_cmd.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd/util.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/cmd_with_io.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/content_addressed_store.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/datastore_set.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/datastore_storage.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/exceptions.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/flow_datastore.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/inputs.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/datastore/task_datastore.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/debug.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/decorators.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/event_logger.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/events.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/exception.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/extension_support/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/extension_support/_empty_file.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/extension_support/cmd.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/extension_support/integrations.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/extension_support/plugins.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/flowspec.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/graph.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/includefile.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/info_file.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/integrations.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/lint.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metadata_provider/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metadata_provider/heartbeat.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metadata_provider/metadata.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metadata_provider/util.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metaflow_config.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metaflow_config_funcs.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metaflow_current.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metaflow_environment.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metaflow_git.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metaflow_profile.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/metaflow_version.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/mflog/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/mflog/mflog.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/mflog/save_logs.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/mflog/save_logs_periodically.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/mflog/tee.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/monitor.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/multicore_utils.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/package.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/parameters.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/airflow_cli.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/airflow_decorator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/airflow_utils.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/dag.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/exception.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/plumbing/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/plumbing/set_parameters.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/sensors/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/sensors/base_sensor.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/sensors/external_task_sensor.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/airflow/sensors/s3_sensor.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/argo_client.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/argo_events.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/argo_workflows_cli.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/argo_workflows_decorator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/argo_workflows_deployer.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/argo_workflows_deployer_objects.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/capture_error.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/generate_input_paths.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/argo/jobset_input_paths.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/aws_client.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/batch/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/batch/batch.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/batch/batch_cli.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/batch/batch_client.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/batch/batch_decorator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/secrets_manager/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/dynamo_db_client.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/event_bridge_client.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/production_token.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/schedule_decorator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/set_batch_environment.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/step_functions_cli.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/step_functions_client.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/step_functions_decorator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/step_functions_deployer.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/azure_credential.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/azure_exceptions.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/azure_secret_manager_secrets_provider.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/azure_tail.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/azure_utils.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/blob_service_client_factory.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/azure/includefile_support.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_client.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_datastore.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/base.html +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/basic.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/bundle.css +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/card.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/chevron/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/chevron/main.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/chevron/metadata.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/chevron/renderer.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/chevron/tokenizer.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/components.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/main.js +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_modules/renderer_tools.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_resolver.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_server.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/card_viewer/viewer.html +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/component_serializer.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/cards/exception.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/catch_decorator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datastores/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datastores/azure_storage.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datastores/gs_storage.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datastores/local_storage.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datastores/s3_storage.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datatools/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datatools/local.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datatools/s3/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datatools/s3/s3.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datatools/s3/s3op.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datatools/s3/s3tail.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/datatools/s3/s3util.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/debug_logger.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/debug_monitor.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/client.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/client_modules.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/communication/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/communication/bytestream.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/communication/channel.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/communication/socket_bytestream.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/communication/utils.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/consts.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/data_transferer.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/exception_transferer.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/override_decorators.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/server.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/stub.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/env_escape/utils.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/environment_decorator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/events_decorator.py +0 -0
- {metaflow-2.15.18/metaflow/plugins/frameworks → metaflow-2.15.19/metaflow/plugins/exit_hook}/__init__.py +0 -0
- {metaflow-2.15.18/metaflow/plugins/kubernetes → metaflow-2.15.19/metaflow/plugins/frameworks}/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/frameworks/pytorch.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/gcp/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/gcp/gs_exceptions.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/gcp/gs_storage_client_factory.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/gcp/gs_tail.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/gcp/gs_utils.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/gcp/includefile_support.py +0 -0
- {metaflow-2.15.18/metaflow/plugins/uv → metaflow-2.15.19/metaflow/plugins/kubernetes}/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/kube_utils.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/kubernetes.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/kubernetes_cli.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/kubernetes_client.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/kubernetes_decorator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/kubernetes_job.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/kubernetes_jobsets.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/spot_metadata_cli.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/kubernetes/spot_monitor_sidecar.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/logs_cli.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/metadata_providers/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/metadata_providers/local.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/metadata_providers/service.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/package_cli.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/parallel_decorator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/project_decorator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/bootstrap.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/conda_decorator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/conda_environment.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/micromamba.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/parsers.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/pip.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/pypi_decorator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/pypi_environment.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/pypi/utils.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/resources_decorator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/retry_decorator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/secrets/inline_secrets_provider.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/storage_executor.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/tag_cli.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/test_unbounded_foreach_decorator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/timeout_decorator.py +0 -0
- {metaflow-2.15.18/metaflow/runner → metaflow-2.15.19/metaflow/plugins/uv}/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/uv/bootstrap.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/plugins/uv/uv_environment.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/procpoll.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/py.typed +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/pylint_wrapper.py +0 -0
- {metaflow-2.15.18/metaflow/user_configs → metaflow-2.15.19/metaflow/runner}/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/click_api.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/deployer.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/deployer_impl.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/nbdeploy.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/nbrun.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/subprocess_manager.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/runner/utils.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/sidecar/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/sidecar/sidecar.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/sidecar/sidecar_messages.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/sidecar/sidecar_subprocess.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/sidecar/sidecar_worker.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/system/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/system/system_logger.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/system/system_monitor.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/system/system_utils.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tagging_util.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/task.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tracing/__init__.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tracing/propagator.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tracing/span_exporter.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tracing/tracing_modules.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tuple_util.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/00-helloworld/README.md +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/00-helloworld/helloworld.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/01-playlist/README.md +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/01-playlist/movies.csv +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/01-playlist/playlist.ipynb +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/01-playlist/playlist.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/02-statistics/README.md +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/02-statistics/movies.csv +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/02-statistics/stats.ipynb +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/02-statistics/stats.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/03-playlist-redux/README.md +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/03-playlist-redux/playlist.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/04-playlist-plus/README.md +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/04-playlist-plus/playlist.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/05-hello-cloud/README.md +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/05-hello-cloud/hello-cloud.ipynb +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/05-hello-cloud/hello-cloud.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/06-statistics-redux/README.md +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/06-statistics-redux/stats.ipynb +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/07-worldview/README.md +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/07-worldview/worldview.ipynb +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/08-autopilot/README.md +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/tutorials/08-autopilot/autopilot.ipynb +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/unbounded_foreach.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/user_configs/config_decorators.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/user_configs/config_options.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/user_configs/config_parameters.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/util.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow/vendor.py +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow.egg-info/dependency_links.txt +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow.egg-info/entry_points.txt +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/metaflow.egg-info/top_level.txt +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/setup.cfg +0 -0
- {metaflow-2.15.18 → metaflow-2.15.19}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: metaflow
|
3
|
-
Version: 2.15.
|
3
|
+
Version: 2.15.19
|
4
4
|
Summary: Metaflow: More AI and ML, Less Engineering
|
5
5
|
Author: Metaflow Developers
|
6
6
|
Author-email: help@metaflow.org
|
@@ -26,7 +26,7 @@ License-File: LICENSE
|
|
26
26
|
Requires-Dist: requests
|
27
27
|
Requires-Dist: boto3
|
28
28
|
Provides-Extra: stubs
|
29
|
-
Requires-Dist: metaflow-stubs==2.15.
|
29
|
+
Requires-Dist: metaflow-stubs==2.15.19; extra == "stubs"
|
30
30
|
Dynamic: author
|
31
31
|
Dynamic: author-email
|
32
32
|
Dynamic: classifier
|
@@ -224,6 +224,19 @@ if "argo-workflows" in enabled_components:
|
|
224
224
|
]
|
225
225
|
)
|
226
226
|
|
227
|
+
# This fixes issue described in: https://github.com/argoproj/argo-workflows/issues/10340
|
228
|
+
k8s_yaml(encode_yaml({
|
229
|
+
'apiVersion': 'v1',
|
230
|
+
'kind': 'Secret',
|
231
|
+
'metadata': {
|
232
|
+
'name': 'default.service-account-token',
|
233
|
+
'annotations': {
|
234
|
+
'kubernetes.io/service-account.name': 'default'
|
235
|
+
}
|
236
|
+
},
|
237
|
+
'type': 'kubernetes.io/service-account-token'
|
238
|
+
}))
|
239
|
+
|
227
240
|
k8s_yaml(encode_yaml({
|
228
241
|
'apiVersion': 'rbac.authorization.k8s.io/v1',
|
229
242
|
'kind': 'Role',
|
@@ -231,11 +244,23 @@ if "argo-workflows" in enabled_components:
|
|
231
244
|
'name': 'argo-workflowtaskresults-role',
|
232
245
|
'namespace': 'default'
|
233
246
|
},
|
234
|
-
'rules': [
|
247
|
+
'rules': [
|
248
|
+
{
|
235
249
|
'apiGroups': ['argoproj.io'],
|
236
250
|
'resources': ['workflowtaskresults'],
|
237
251
|
'verbs': ['create', 'patch', 'get', 'list']
|
238
|
-
|
252
|
+
},
|
253
|
+
{
|
254
|
+
'apiGroups': ['argoproj.io'],
|
255
|
+
'resources': ['workflowtasksets'],
|
256
|
+
'verbs': ['watch', 'list']
|
257
|
+
},
|
258
|
+
{
|
259
|
+
'apiGroups': ['argoproj.io'],
|
260
|
+
'resources': ['workflowtasksets/status'],
|
261
|
+
'verbs': ['patch']
|
262
|
+
},
|
263
|
+
]
|
239
264
|
}))
|
240
265
|
|
241
266
|
k8s_yaml(encode_yaml({
|
@@ -0,0 +1,180 @@
|
|
1
|
+
"""Recognize image file formats based on their first few bytes."""
|
2
|
+
|
3
|
+
from os import PathLike
|
4
|
+
import warnings
|
5
|
+
|
6
|
+
__all__ = ["what"]
|
7
|
+
|
8
|
+
|
9
|
+
warnings._deprecated(__name__, remove=(3, 13))
|
10
|
+
|
11
|
+
|
12
|
+
#-------------------------#
|
13
|
+
# Recognize image headers #
|
14
|
+
#-------------------------#
|
15
|
+
|
16
|
+
def what(file, h=None):
|
17
|
+
"""Return the type of image contained in a file or byte stream."""
|
18
|
+
f = None
|
19
|
+
try:
|
20
|
+
if h is None:
|
21
|
+
if isinstance(file, (str, PathLike)):
|
22
|
+
f = open(file, 'rb')
|
23
|
+
h = f.read(32)
|
24
|
+
else:
|
25
|
+
location = file.tell()
|
26
|
+
h = file.read(32)
|
27
|
+
file.seek(location)
|
28
|
+
for tf in tests:
|
29
|
+
res = tf(h, f)
|
30
|
+
if res:
|
31
|
+
return res
|
32
|
+
finally:
|
33
|
+
if f: f.close()
|
34
|
+
return None
|
35
|
+
|
36
|
+
|
37
|
+
#---------------------------------#
|
38
|
+
# Subroutines per image file type #
|
39
|
+
#---------------------------------#
|
40
|
+
|
41
|
+
tests = []
|
42
|
+
|
43
|
+
def test_jpeg(h, f):
|
44
|
+
"""Test for JPEG data with JFIF or Exif markers; and raw JPEG."""
|
45
|
+
if h[6:10] in (b'JFIF', b'Exif'):
|
46
|
+
return 'jpeg'
|
47
|
+
elif h[:4] == b'\xff\xd8\xff\xdb':
|
48
|
+
return 'jpeg'
|
49
|
+
|
50
|
+
tests.append(test_jpeg)
|
51
|
+
|
52
|
+
def test_png(h, f):
|
53
|
+
"""Verify if the image is a PNG."""
|
54
|
+
if h.startswith(b'\211PNG\r\n\032\n'):
|
55
|
+
return 'png'
|
56
|
+
|
57
|
+
tests.append(test_png)
|
58
|
+
|
59
|
+
def test_gif(h, f):
|
60
|
+
"""Verify if the image is a GIF ('87 or '89 variants)."""
|
61
|
+
if h[:6] in (b'GIF87a', b'GIF89a'):
|
62
|
+
return 'gif'
|
63
|
+
|
64
|
+
tests.append(test_gif)
|
65
|
+
|
66
|
+
def test_tiff(h, f):
|
67
|
+
"""Verify if the image is a TIFF (can be in Motorola or Intel byte order)."""
|
68
|
+
if h[:2] in (b'MM', b'II'):
|
69
|
+
return 'tiff'
|
70
|
+
|
71
|
+
tests.append(test_tiff)
|
72
|
+
|
73
|
+
def test_rgb(h, f):
|
74
|
+
"""test for the SGI image library."""
|
75
|
+
if h.startswith(b'\001\332'):
|
76
|
+
return 'rgb'
|
77
|
+
|
78
|
+
tests.append(test_rgb)
|
79
|
+
|
80
|
+
def test_pbm(h, f):
|
81
|
+
"""Verify if the image is a PBM (portable bitmap)."""
|
82
|
+
if len(h) >= 3 and \
|
83
|
+
h[0] == ord(b'P') and h[1] in b'14' and h[2] in b' \t\n\r':
|
84
|
+
return 'pbm'
|
85
|
+
|
86
|
+
tests.append(test_pbm)
|
87
|
+
|
88
|
+
def test_pgm(h, f):
|
89
|
+
"""Verify if the image is a PGM (portable graymap)."""
|
90
|
+
if len(h) >= 3 and \
|
91
|
+
h[0] == ord(b'P') and h[1] in b'25' and h[2] in b' \t\n\r':
|
92
|
+
return 'pgm'
|
93
|
+
|
94
|
+
tests.append(test_pgm)
|
95
|
+
|
96
|
+
def test_ppm(h, f):
|
97
|
+
"""Verify if the image is a PPM (portable pixmap)."""
|
98
|
+
if len(h) >= 3 and \
|
99
|
+
h[0] == ord(b'P') and h[1] in b'36' and h[2] in b' \t\n\r':
|
100
|
+
return 'ppm'
|
101
|
+
|
102
|
+
tests.append(test_ppm)
|
103
|
+
|
104
|
+
def test_rast(h, f):
|
105
|
+
"""test for the Sun raster file."""
|
106
|
+
if h.startswith(b'\x59\xA6\x6A\x95'):
|
107
|
+
return 'rast'
|
108
|
+
|
109
|
+
tests.append(test_rast)
|
110
|
+
|
111
|
+
def test_xbm(h, f):
|
112
|
+
"""Verify if the image is a X bitmap (X10 or X11)."""
|
113
|
+
if h.startswith(b'#define '):
|
114
|
+
return 'xbm'
|
115
|
+
|
116
|
+
tests.append(test_xbm)
|
117
|
+
|
118
|
+
def test_bmp(h, f):
|
119
|
+
"""Verify if the image is a BMP file."""
|
120
|
+
if h.startswith(b'BM'):
|
121
|
+
return 'bmp'
|
122
|
+
|
123
|
+
tests.append(test_bmp)
|
124
|
+
|
125
|
+
def test_webp(h, f):
|
126
|
+
"""Verify if the image is a WebP."""
|
127
|
+
if h.startswith(b'RIFF') and h[8:12] == b'WEBP':
|
128
|
+
return 'webp'
|
129
|
+
|
130
|
+
tests.append(test_webp)
|
131
|
+
|
132
|
+
def test_exr(h, f):
|
133
|
+
"""verify is the image ia a OpenEXR fileOpenEXR."""
|
134
|
+
if h.startswith(b'\x76\x2f\x31\x01'):
|
135
|
+
return 'exr'
|
136
|
+
|
137
|
+
tests.append(test_exr)
|
138
|
+
|
139
|
+
#--------------------#
|
140
|
+
# Small test program #
|
141
|
+
#--------------------#
|
142
|
+
|
143
|
+
def test():
|
144
|
+
import sys
|
145
|
+
recursive = 0
|
146
|
+
if sys.argv[1:] and sys.argv[1] == '-r':
|
147
|
+
del sys.argv[1:2]
|
148
|
+
recursive = 1
|
149
|
+
try:
|
150
|
+
if sys.argv[1:]:
|
151
|
+
testall(sys.argv[1:], recursive, 1)
|
152
|
+
else:
|
153
|
+
testall(['.'], recursive, 1)
|
154
|
+
except KeyboardInterrupt:
|
155
|
+
sys.stderr.write('\n[Interrupted]\n')
|
156
|
+
sys.exit(1)
|
157
|
+
|
158
|
+
def testall(list, recursive, toplevel):
|
159
|
+
import sys
|
160
|
+
import os
|
161
|
+
for filename in list:
|
162
|
+
if os.path.isdir(filename):
|
163
|
+
print(filename + '/:', end=' ')
|
164
|
+
if recursive or toplevel:
|
165
|
+
print('recursing down:')
|
166
|
+
import glob
|
167
|
+
names = glob.glob(os.path.join(glob.escape(filename), '*'))
|
168
|
+
testall(names, recursive, 0)
|
169
|
+
else:
|
170
|
+
print('*** directory (use -r) ***')
|
171
|
+
else:
|
172
|
+
print(filename + ':', end=' ')
|
173
|
+
sys.stdout.flush()
|
174
|
+
try:
|
175
|
+
print(what(filename))
|
176
|
+
except OSError:
|
177
|
+
print('*** not found ***')
|
178
|
+
|
179
|
+
if __name__ == '__main__':
|
180
|
+
test()
|
@@ -7,7 +7,6 @@ import pathlib
|
|
7
7
|
import re
|
8
8
|
import time
|
9
9
|
import typing
|
10
|
-
|
11
10
|
from datetime import datetime
|
12
11
|
from io import StringIO
|
13
12
|
from types import ModuleType
|
@@ -335,6 +334,8 @@ class StubGenerator:
|
|
335
334
|
|
336
335
|
# Imports that are needed at the top of the file
|
337
336
|
self._imports = set() # type: Set[str]
|
337
|
+
|
338
|
+
self._sub_module_imports = set() # type: Set[Tuple[str, str]]``
|
338
339
|
# Typing imports (behind if TYPE_CHECKING) that are needed at the top of the file
|
339
340
|
self._typing_imports = set() # type: Set[str]
|
340
341
|
# Typevars that are defined
|
@@ -643,6 +644,21 @@ class StubGenerator:
|
|
643
644
|
"deployer"
|
644
645
|
] = (self._current_module_name + "." + name)
|
645
646
|
|
647
|
+
# Handle TypedDict gracefully for Python 3.7 compatibility
|
648
|
+
# _TypedDictMeta is not available in Python 3.7
|
649
|
+
typed_dict_meta = getattr(typing, "_TypedDictMeta", None)
|
650
|
+
if typed_dict_meta is not None and isinstance(clazz, typed_dict_meta):
|
651
|
+
self._sub_module_imports.add(("typing", "TypedDict"))
|
652
|
+
total_flag = getattr(clazz, "__total__", False)
|
653
|
+
buff = StringIO()
|
654
|
+
# Emit the TypedDict base and total flag
|
655
|
+
buff.write(f"class {name}(TypedDict, total={total_flag}):\n")
|
656
|
+
# Write out each field from __annotations__
|
657
|
+
for field_name, field_type in clazz.__annotations__.items():
|
658
|
+
ann = self._get_element_name_with_module(field_type)
|
659
|
+
buff.write(f"{TAB}{field_name}: {ann}\n")
|
660
|
+
return buff.getvalue()
|
661
|
+
|
646
662
|
buff = StringIO()
|
647
663
|
# Class prototype
|
648
664
|
buff.write("class " + name.split(".")[-1] + "(")
|
@@ -987,7 +1003,6 @@ class StubGenerator:
|
|
987
1003
|
]
|
988
1004
|
|
989
1005
|
docs = split_docs(raw_doc, section_boundaries)
|
990
|
-
|
991
1006
|
parameters, no_arg_version = parse_params_from_doc(docs["param_doc"])
|
992
1007
|
|
993
1008
|
if docs["add_to_current_doc"]:
|
@@ -1515,6 +1530,8 @@ class StubGenerator:
|
|
1515
1530
|
f.write("import " + module + "\n")
|
1516
1531
|
if module == "typing":
|
1517
1532
|
imported_typing = True
|
1533
|
+
for module, sub_module in self._sub_module_imports:
|
1534
|
+
f.write(f"from {module} import {sub_module}\n")
|
1518
1535
|
if self._typing_imports:
|
1519
1536
|
if not imported_typing:
|
1520
1537
|
f.write("import typing\n")
|
@@ -69,6 +69,7 @@ FLOW_DECORATORS_DESC = [
|
|
69
69
|
("trigger_on_finish", ".events_decorator.TriggerOnFinishDecorator"),
|
70
70
|
("pypi_base", ".pypi.pypi_decorator.PyPIFlowDecorator"),
|
71
71
|
("conda_base", ".pypi.conda_decorator.CondaFlowDecorator"),
|
72
|
+
("exit_hook", ".exit_hook.exit_hook_decorator.ExitHookDecorator"),
|
72
73
|
]
|
73
74
|
|
74
75
|
# Add environments here
|
@@ -240,6 +241,7 @@ from .cards.card_modules.test_cards import (
|
|
240
241
|
TestTimeoutCard,
|
241
242
|
TestRefreshCard,
|
242
243
|
TestRefreshComponentCard,
|
244
|
+
TestImageCard,
|
243
245
|
)
|
244
246
|
|
245
247
|
CARDS = [
|
@@ -258,6 +260,7 @@ CARDS = [
|
|
258
260
|
DefaultCardJSON,
|
259
261
|
TestRefreshCard,
|
260
262
|
TestRefreshComponentCard,
|
263
|
+
TestImageCard,
|
261
264
|
]
|
262
265
|
merge_lists(CARDS, MF_EXTERNAL_CARDS, "type")
|
263
266
|
|
@@ -654,6 +654,12 @@ class Airflow(object):
|
|
654
654
|
"to Airflow is not supported currently."
|
655
655
|
)
|
656
656
|
|
657
|
+
if self.flow._flow_decorators.get("exit_hook"):
|
658
|
+
raise AirflowException(
|
659
|
+
"Deploying flows with the @exit_hook decorator "
|
660
|
+
"to Airflow is not currently supported."
|
661
|
+
)
|
662
|
+
|
657
663
|
# Visit every node of the flow and recursively build the state machine.
|
658
664
|
def _visit(node, workflow, exit_node=None):
|
659
665
|
kube_deco = dict(
|