metaflow 2.13.1__tar.gz → 2.13.3__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.13.1/metaflow.egg-info → metaflow-2.13.3}/PKG-INFO +13 -3
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cards.py +1 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/extension_support/plugins.py +1 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/parameters.py +1 -1
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/__init__.py +13 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/argo/argo_workflows.py +12 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_cli.py +7 -2
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_modules/basic.py +56 -5
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_modules/card.py +16 -1
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_modules/components.py +64 -16
- metaflow-2.13.3/metaflow/plugins/cards/card_modules/main.js +252 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_modules/test_cards.py +4 -4
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/component_serializer.py +1 -1
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/pypi/micromamba.py +5 -1
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/runner/metaflow_runner.py +25 -3
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/runtime.py +18 -8
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/user_configs/config_parameters.py +23 -6
- metaflow-2.13.3/metaflow/version.py +1 -0
- {metaflow-2.13.1 → metaflow-2.13.3/metaflow.egg-info}/PKG-INFO +13 -3
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow.egg-info/requires.txt +1 -1
- metaflow-2.13.1/metaflow/plugins/cards/card_modules/main.js +0 -250
- metaflow-2.13.1/metaflow/version.py +0 -1
- {metaflow-2.13.1 → metaflow-2.13.3}/LICENSE +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/MANIFEST.in +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/README.md +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/R.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/_bashcomplete.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/_compat.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/_termui_impl.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/_textwrap.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/_unicodefun.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/_winconsole.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/core.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/decorators.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/exceptions.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/formatting.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/globals.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/parser.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/termui.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/testing.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/types.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/click/utils.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/importlib_metadata/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/importlib_metadata/_adapters.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/importlib_metadata/_collections.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/importlib_metadata/_compat.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/importlib_metadata/_functools.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/importlib_metadata/_itertools.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/importlib_metadata/_meta.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/importlib_metadata/_text.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/importlib_metadata/py.typed +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/packaging/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/packaging/_elffile.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/packaging/_manylinux.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/packaging/_musllinux.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/packaging/_parser.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/packaging/_structures.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/packaging/_tokenizer.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/packaging/markers.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/packaging/py.typed +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/packaging/requirements.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/packaging/specifiers.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/packaging/tags.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/packaging/utils.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/packaging/version.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/typeguard/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/typeguard/_checkers.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/typeguard/_config.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/typeguard/_decorators.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/typeguard/_exceptions.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/typeguard/_functions.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/typeguard/_importhook.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/typeguard/_memo.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/typeguard/_pytest_plugin.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/typeguard/_suppression.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/typeguard/_transformer.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/typeguard/_union_transformer.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/typeguard/_utils.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/typeguard/py.typed +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/typing_extensions.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_5/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_5/importlib_metadata/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_5/importlib_metadata/_compat.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_5/zipp.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_6/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_6/importlib_metadata/_meta.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_6/importlib_metadata/_text.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_6/importlib_metadata/py.typed +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_6/typing_extensions.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/v3_6/zipp.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/_vendor/zipp.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cli.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cli_args.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cli_components/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cli_components/dump_cmd.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cli_components/init_cmd.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cli_components/run_cmds.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cli_components/step_cmd.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cli_components/utils.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/client/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/client/core.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/client/filecache.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/clone_util.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cmd/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cmd/configure_cmd.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cmd/develop/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cmd/develop/stub_generator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cmd/develop/stubs.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cmd/main_cli.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cmd/tutorials_cmd.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cmd/util.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/cmd_with_io.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/datastore/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/datastore/content_addressed_store.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/datastore/datastore_set.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/datastore/datastore_storage.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/datastore/exceptions.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/datastore/flow_datastore.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/datastore/inputs.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/datastore/task_datastore.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/debug.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/decorators.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/event_logger.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/events.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/exception.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/extension_support/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/extension_support/_empty_file.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/extension_support/cmd.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/extension_support/integrations.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/flowspec.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/graph.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/includefile.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/info_file.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/integrations.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/lint.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/metadata_provider/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/metadata_provider/heartbeat.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/metadata_provider/metadata.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/metadata_provider/util.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/metaflow_config.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/metaflow_config_funcs.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/metaflow_current.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/metaflow_environment.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/metaflow_profile.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/metaflow_version.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/mflog/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/mflog/mflog.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/mflog/save_logs.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/mflog/save_logs_periodically.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/mflog/tee.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/monitor.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/multicore_utils.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/package.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/airflow/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/airflow/airflow.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/airflow/airflow_cli.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/airflow/airflow_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/airflow/airflow_utils.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/airflow/dag.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/airflow/exception.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/airflow/plumbing/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/airflow/plumbing/set_parameters.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/airflow/sensors/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/airflow/sensors/base_sensor.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/airflow/sensors/external_task_sensor.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/airflow/sensors/s3_sensor.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/argo/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/argo/argo_client.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/argo/argo_events.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/argo/argo_workflows_cli.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/argo/argo_workflows_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/argo/argo_workflows_deployer.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/argo/argo_workflows_deployer_objects.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/argo/capture_error.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/argo/generate_input_paths.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/argo/jobset_input_paths.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/aws_client.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/aws_utils.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/batch/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/batch/batch.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/batch/batch_cli.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/batch/batch_client.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/batch/batch_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/secrets_manager/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/step_functions/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/step_functions/dynamo_db_client.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/step_functions/event_bridge_client.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/step_functions/production_token.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/step_functions/schedule_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/step_functions/set_batch_environment.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/step_functions/step_functions.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/step_functions/step_functions_cli.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/step_functions/step_functions_client.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/step_functions/step_functions_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/step_functions/step_functions_deployer.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/azure/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/azure/azure_credential.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/azure/azure_exceptions.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/azure/azure_secret_manager_secrets_provider.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/azure/azure_tail.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/azure/azure_utils.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/azure/blob_service_client_factory.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/azure/includefile_support.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_client.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_creator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_datastore.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_modules/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_modules/base.html +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_modules/bundle.css +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_modules/chevron/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_modules/chevron/main.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_modules/chevron/metadata.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_modules/chevron/renderer.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_modules/chevron/tokenizer.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_modules/convert_to_native_type.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_modules/renderer_tools.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_resolver.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_server.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/card_viewer/viewer.html +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/cards/exception.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/catch_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/datastores/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/datastores/azure_storage.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/datastores/gs_storage.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/datastores/local_storage.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/datastores/s3_storage.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/datatools/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/datatools/local.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/datatools/s3/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/datatools/s3/s3.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/datatools/s3/s3op.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/datatools/s3/s3tail.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/datatools/s3/s3util.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/debug_logger.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/debug_monitor.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/client.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/client_modules.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/communication/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/communication/bytestream.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/communication/channel.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/communication/socket_bytestream.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/communication/utils.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/consts.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/data_transferer.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/exception_transferer.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/override_decorators.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/server.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/stub.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/env_escape/utils.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/environment_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/events_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/frameworks/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/frameworks/pytorch.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/gcp/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/gcp/gs_exceptions.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/gcp/gs_storage_client_factory.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/gcp/gs_tail.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/gcp/gs_utils.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/gcp/includefile_support.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/kubernetes/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/kubernetes/kube_utils.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/kubernetes/kubernetes.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/kubernetes/kubernetes_cli.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/kubernetes/kubernetes_client.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/kubernetes/kubernetes_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/kubernetes/kubernetes_job.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/kubernetes/kubernetes_jobsets.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/logs_cli.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/metadata_providers/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/metadata_providers/local.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/metadata_providers/service.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/package_cli.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/parallel_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/project_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/pypi/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/pypi/bootstrap.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/pypi/conda_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/pypi/conda_environment.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/pypi/pip.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/pypi/pypi_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/pypi/pypi_environment.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/pypi/utils.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/resources_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/retry_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/secrets/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/secrets/inline_secrets_provider.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/secrets/secrets_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/storage_executor.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/tag_cli.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/test_unbounded_foreach_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/plugins/timeout_decorator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/procpoll.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/py.typed +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/pylint_wrapper.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/runner/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/runner/click_api.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/runner/deployer.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/runner/deployer_impl.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/runner/nbdeploy.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/runner/nbrun.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/runner/subprocess_manager.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/runner/utils.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/sidecar/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/sidecar/sidecar.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/sidecar/sidecar_messages.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/sidecar/sidecar_subprocess.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/sidecar/sidecar_worker.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/system/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/system/system_logger.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/system/system_monitor.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/system/system_utils.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tagging_util.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/task.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tracing/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tracing/propagator.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tracing/span_exporter.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tracing/tracing_modules.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tuple_util.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/00-helloworld/README.md +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/00-helloworld/helloworld.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/01-playlist/README.md +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/01-playlist/movies.csv +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/01-playlist/playlist.ipynb +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/01-playlist/playlist.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/02-statistics/README.md +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/02-statistics/movies.csv +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/02-statistics/stats.ipynb +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/02-statistics/stats.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/03-playlist-redux/README.md +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/03-playlist-redux/playlist.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/04-playlist-plus/README.md +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/04-playlist-plus/playlist.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/05-hello-cloud/README.md +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/05-hello-cloud/hello-cloud.ipynb +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/05-hello-cloud/hello-cloud.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/06-statistics-redux/README.md +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/06-statistics-redux/stats.ipynb +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/07-worldview/README.md +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/07-worldview/worldview.ipynb +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/08-autopilot/README.md +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/tutorials/08-autopilot/autopilot.ipynb +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/unbounded_foreach.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/user_configs/__init__.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/user_configs/config_decorators.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/user_configs/config_options.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/util.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow/vendor.py +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow.egg-info/SOURCES.txt +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow.egg-info/dependency_links.txt +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow.egg-info/entry_points.txt +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/metaflow.egg-info/top_level.txt +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/setup.cfg +0 -0
- {metaflow-2.13.1 → metaflow-2.13.3}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: metaflow
|
3
|
-
Version: 2.13.
|
3
|
+
Version: 2.13.3
|
4
4
|
Summary: Metaflow: More Data Science, Less Engineering
|
5
5
|
Author: Metaflow Developers
|
6
6
|
Author-email: help@metaflow.org
|
@@ -26,7 +26,17 @@ License-File: LICENSE
|
|
26
26
|
Requires-Dist: requests
|
27
27
|
Requires-Dist: boto3
|
28
28
|
Provides-Extra: stubs
|
29
|
-
Requires-Dist: metaflow-stubs==2.13.
|
29
|
+
Requires-Dist: metaflow-stubs==2.13.3; extra == "stubs"
|
30
|
+
Dynamic: author
|
31
|
+
Dynamic: author-email
|
32
|
+
Dynamic: classifier
|
33
|
+
Dynamic: description
|
34
|
+
Dynamic: description-content-type
|
35
|
+
Dynamic: license
|
36
|
+
Dynamic: project-url
|
37
|
+
Dynamic: provides-extra
|
38
|
+
Dynamic: requires-dist
|
39
|
+
Dynamic: summary
|
30
40
|
|
31
41
|

|
32
42
|
|
@@ -369,7 +369,7 @@ class Parameter(object):
|
|
369
369
|
# Resolve any value from configurations
|
370
370
|
self.kwargs = unpack_delayed_evaluator(self.kwargs, ignore_errors=ignore_errors)
|
371
371
|
# Do it one item at a time so errors are ignored at that level (as opposed to
|
372
|
-
# at the entire kwargs
|
372
|
+
# at the entire kwargs level)
|
373
373
|
self.kwargs = {
|
374
374
|
k: resolve_delayed_evaluator(v, ignore_errors=ignore_errors)
|
375
375
|
for k, v in self.kwargs.items()
|
@@ -19,6 +19,11 @@ CLIS_DESC = [
|
|
19
19
|
("logs", ".logs_cli.cli"),
|
20
20
|
]
|
21
21
|
|
22
|
+
# Add additional commands to the runner here
|
23
|
+
# These will be accessed using Runner().<command>()
|
24
|
+
RUNNER_CLIS_DESC = []
|
25
|
+
|
26
|
+
|
22
27
|
from .test_unbounded_foreach_decorator import InternalTestUnboundedForeachInput
|
23
28
|
|
24
29
|
# Add new step decorators here
|
@@ -168,6 +173,14 @@ def get_plugin_cli_path():
|
|
168
173
|
return resolve_plugins("cli", path_only=True)
|
169
174
|
|
170
175
|
|
176
|
+
def get_runner_cli():
|
177
|
+
return resolve_plugins("runner_cli")
|
178
|
+
|
179
|
+
|
180
|
+
def get_runner_cli_path():
|
181
|
+
return resolve_plugins("runner_cli", path_only=True)
|
182
|
+
|
183
|
+
|
171
184
|
STEP_DECORATORS = resolve_plugins("step_decorator")
|
172
185
|
FLOW_DECORATORS = resolve_plugins("flow_decorator")
|
173
186
|
ENVIRONMENTS = resolve_plugins("environment")
|
@@ -743,6 +743,17 @@ class ArgoWorkflows(object):
|
|
743
743
|
)
|
744
744
|
}
|
745
745
|
)
|
746
|
+
try:
|
747
|
+
# Build the DAG based on the DAGNodes given by the FlowGraph for the found FlowSpec class.
|
748
|
+
_steps_info, graph_structure = self.graph.output_steps()
|
749
|
+
graph_info = {
|
750
|
+
# for the time being, we only need the graph_structure. Being mindful of annotation size limits we do not include anything extra.
|
751
|
+
"graph_structure": graph_structure
|
752
|
+
}
|
753
|
+
except Exception:
|
754
|
+
graph_info = None
|
755
|
+
|
756
|
+
dag_annotation = {"metaflow/dag": json.dumps(graph_info)}
|
746
757
|
|
747
758
|
return (
|
748
759
|
WorkflowTemplate()
|
@@ -758,6 +769,7 @@ class ArgoWorkflows(object):
|
|
758
769
|
.annotations(self._base_annotations)
|
759
770
|
.labels(self._base_labels)
|
760
771
|
.label("app.kubernetes.io/name", "metaflow-flow")
|
772
|
+
.annotations(dag_annotation)
|
761
773
|
)
|
762
774
|
.spec(
|
763
775
|
WorkflowSpec()
|
@@ -691,10 +691,15 @@ def create(
|
|
691
691
|
try:
|
692
692
|
if options is not None:
|
693
693
|
mf_card = filtered_card(
|
694
|
-
options=options,
|
694
|
+
options=options,
|
695
|
+
components=component_arr,
|
696
|
+
graph=graph_dict,
|
697
|
+
flow=ctx.obj.flow,
|
695
698
|
)
|
696
699
|
else:
|
697
|
-
mf_card = filtered_card(
|
700
|
+
mf_card = filtered_card(
|
701
|
+
components=component_arr, graph=graph_dict, flow=ctx.obj.flow
|
702
|
+
)
|
698
703
|
except TypeError as e:
|
699
704
|
if render_error_card:
|
700
705
|
mf_card = None
|
@@ -1,9 +1,10 @@
|
|
1
1
|
import base64
|
2
2
|
import json
|
3
3
|
import os
|
4
|
-
from .card import MetaflowCard, MetaflowCardComponent
|
4
|
+
from .card import MetaflowCard, MetaflowCardComponent, with_default_component_id
|
5
5
|
from .convert_to_native_type import TaskToDict
|
6
6
|
import uuid
|
7
|
+
import inspect
|
7
8
|
|
8
9
|
ABS_DIR_PATH = os.path.dirname(os.path.abspath(__file__))
|
9
10
|
RENDER_TEMPLATE_PATH = os.path.join(ABS_DIR_PATH, "base.html")
|
@@ -236,9 +237,28 @@ class LogComponent(DefaultComponent):
|
|
236
237
|
super().__init__(title=None, subtitle=None)
|
237
238
|
self._data = data
|
238
239
|
|
240
|
+
@with_default_component_id
|
239
241
|
def render(self):
|
240
242
|
datadict = super().render()
|
241
243
|
datadict["data"] = self._data
|
244
|
+
if self.component_id is not None:
|
245
|
+
datadict["id"] = self.component_id
|
246
|
+
return datadict
|
247
|
+
|
248
|
+
|
249
|
+
class PythonCodeComponent(DefaultComponent):
|
250
|
+
|
251
|
+
type = "pythonCode"
|
252
|
+
|
253
|
+
def __init__(self, data=None):
|
254
|
+
super().__init__(title=None, subtitle=None)
|
255
|
+
self._data = data
|
256
|
+
|
257
|
+
def render(self):
|
258
|
+
datadict = super().render()
|
259
|
+
datadict["data"] = self._data
|
260
|
+
if self.component_id is not None:
|
261
|
+
datadict["id"] = self.component_id
|
242
262
|
return datadict
|
243
263
|
|
244
264
|
|
@@ -343,6 +363,7 @@ class TaskInfoComponent(MetaflowCardComponent):
|
|
343
363
|
graph=None,
|
344
364
|
components=[],
|
345
365
|
runtime=False,
|
366
|
+
flow=None,
|
346
367
|
):
|
347
368
|
self._task = task
|
348
369
|
self._only_repr = only_repr
|
@@ -352,6 +373,7 @@ class TaskInfoComponent(MetaflowCardComponent):
|
|
352
373
|
self.final_component = None
|
353
374
|
self.page_component = None
|
354
375
|
self.runtime = runtime
|
376
|
+
self.flow = flow
|
355
377
|
|
356
378
|
def render(self):
|
357
379
|
"""
|
@@ -475,6 +497,16 @@ class TaskInfoComponent(MetaflowCardComponent):
|
|
475
497
|
contents=[param_component],
|
476
498
|
).render()
|
477
499
|
|
500
|
+
step_func = getattr(self.flow, self._task.parent.id)
|
501
|
+
code_table = SectionComponent(
|
502
|
+
title="Task Code",
|
503
|
+
contents=[
|
504
|
+
TableComponent(
|
505
|
+
data=[[PythonCodeComponent(inspect.getsource(step_func)).render()]]
|
506
|
+
)
|
507
|
+
],
|
508
|
+
).render()
|
509
|
+
|
478
510
|
# Don't include parameter ids + "name" in the task artifacts
|
479
511
|
artifactlist = [
|
480
512
|
task_data_dict["data"][k]
|
@@ -500,6 +532,7 @@ class TaskInfoComponent(MetaflowCardComponent):
|
|
500
532
|
page_contents.extend(
|
501
533
|
[
|
502
534
|
metadata_table,
|
535
|
+
code_table,
|
503
536
|
parameter_table,
|
504
537
|
artifact_section,
|
505
538
|
]
|
@@ -546,7 +579,7 @@ class ErrorCard(MetaflowCard):
|
|
546
579
|
|
547
580
|
RELOAD_POLICY = MetaflowCard.RELOAD_POLICY_ONCHANGE
|
548
581
|
|
549
|
-
def __init__(self, options={}, components=[], graph=None):
|
582
|
+
def __init__(self, options={}, components=[], graph=None, **kwargs):
|
550
583
|
self._only_repr = True
|
551
584
|
self._graph = None if graph is None else transform_flow_graph(graph)
|
552
585
|
self._components = components
|
@@ -602,9 +635,17 @@ class DefaultCardJSON(MetaflowCard):
|
|
602
635
|
|
603
636
|
type = "default_json"
|
604
637
|
|
605
|
-
def __init__(
|
638
|
+
def __init__(
|
639
|
+
self,
|
640
|
+
options=dict(only_repr=True),
|
641
|
+
components=[],
|
642
|
+
graph=None,
|
643
|
+
flow=None,
|
644
|
+
**kwargs
|
645
|
+
):
|
606
646
|
self._only_repr = True
|
607
647
|
self._graph = None if graph is None else transform_flow_graph(graph)
|
648
|
+
self._flow = flow
|
608
649
|
if "only_repr" in options:
|
609
650
|
self._only_repr = options["only_repr"]
|
610
651
|
self._components = components
|
@@ -615,6 +656,7 @@ class DefaultCardJSON(MetaflowCard):
|
|
615
656
|
only_repr=self._only_repr,
|
616
657
|
graph=self._graph,
|
617
658
|
components=self._components,
|
659
|
+
flow=self._flow,
|
618
660
|
).render()
|
619
661
|
return json.dumps(final_component_dict)
|
620
662
|
|
@@ -629,9 +671,17 @@ class DefaultCard(MetaflowCard):
|
|
629
671
|
|
630
672
|
type = "default"
|
631
673
|
|
632
|
-
def __init__(
|
674
|
+
def __init__(
|
675
|
+
self,
|
676
|
+
options=dict(only_repr=True),
|
677
|
+
components=[],
|
678
|
+
graph=None,
|
679
|
+
flow=None,
|
680
|
+
**kwargs
|
681
|
+
):
|
633
682
|
self._only_repr = True
|
634
683
|
self._graph = None if graph is None else transform_flow_graph(graph)
|
684
|
+
self._flow = flow
|
635
685
|
if "only_repr" in options:
|
636
686
|
self._only_repr = options["only_repr"]
|
637
687
|
self._components = components
|
@@ -646,6 +696,7 @@ class DefaultCard(MetaflowCard):
|
|
646
696
|
graph=self._graph,
|
647
697
|
components=self._components,
|
648
698
|
runtime=runtime,
|
699
|
+
flow=self._flow,
|
649
700
|
).render()
|
650
701
|
pt = self._get_mustache()
|
651
702
|
data_dict = dict(
|
@@ -688,7 +739,7 @@ class BlankCard(MetaflowCard):
|
|
688
739
|
|
689
740
|
type = "blank"
|
690
741
|
|
691
|
-
def __init__(self, options=dict(title=""), components=[], graph=None):
|
742
|
+
def __init__(self, options=dict(title=""), components=[], graph=None, **kwargs):
|
692
743
|
self._graph = None if graph is None else transform_flow_graph(graph)
|
693
744
|
self._title = ""
|
694
745
|
if "title" in options:
|
@@ -1,4 +1,5 @@
|
|
1
1
|
from typing import TYPE_CHECKING
|
2
|
+
import uuid
|
2
3
|
|
3
4
|
if TYPE_CHECKING:
|
4
5
|
import metaflow
|
@@ -66,7 +67,7 @@ class MetaflowCard(object):
|
|
66
67
|
# FIXME document runtime_data
|
67
68
|
runtime_data = None
|
68
69
|
|
69
|
-
def __init__(self, options={}, components=[], graph=None):
|
70
|
+
def __init__(self, options={}, components=[], graph=None, flow=None):
|
70
71
|
pass
|
71
72
|
|
72
73
|
def _get_mustache(self):
|
@@ -140,3 +141,17 @@ class MetaflowCardComponent(object):
|
|
140
141
|
`render` returns a string or dictionary. This class can be called on the client side to dynamically add components to the `MetaflowCard`
|
141
142
|
"""
|
142
143
|
raise NotImplementedError()
|
144
|
+
|
145
|
+
|
146
|
+
def create_component_id(component):
|
147
|
+
uuid_bit = "".join(uuid.uuid4().hex.split("-"))[:6]
|
148
|
+
return type(component).__name__.lower() + "_" + uuid_bit
|
149
|
+
|
150
|
+
|
151
|
+
def with_default_component_id(func):
|
152
|
+
def ret_func(self, *args, **kwargs):
|
153
|
+
if self.component_id is None:
|
154
|
+
self.component_id = create_component_id(self)
|
155
|
+
return func(self, *args, **kwargs)
|
156
|
+
|
157
|
+
return ret_func
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import Any, List, Optional, Union
|
1
|
+
from typing import Any, List, Optional, Union, Callable
|
2
2
|
from .basic import (
|
3
3
|
LogComponent,
|
4
4
|
ErrorComponent,
|
@@ -7,25 +7,13 @@ from .basic import (
|
|
7
7
|
ImageComponent,
|
8
8
|
SectionComponent,
|
9
9
|
MarkdownComponent,
|
10
|
+
PythonCodeComponent,
|
10
11
|
)
|
11
|
-
from .card import MetaflowCardComponent
|
12
|
+
from .card import MetaflowCardComponent, with_default_component_id
|
12
13
|
from .convert_to_native_type import TaskToDict, _full_classname
|
13
14
|
from .renderer_tools import render_safely
|
14
15
|
import uuid
|
15
|
-
|
16
|
-
|
17
|
-
def create_component_id(component):
|
18
|
-
uuid_bit = "".join(uuid.uuid4().hex.split("-"))[:6]
|
19
|
-
return type(component).__name__.lower() + "_" + uuid_bit
|
20
|
-
|
21
|
-
|
22
|
-
def with_default_component_id(func):
|
23
|
-
def ret_func(self, *args, **kwargs):
|
24
|
-
if self.component_id is None:
|
25
|
-
self.component_id = create_component_id(self)
|
26
|
-
return func(self, *args, **kwargs)
|
27
|
-
|
28
|
-
return ret_func
|
16
|
+
import inspect
|
29
17
|
|
30
18
|
|
31
19
|
def _warning_with_component(component, msg):
|
@@ -823,3 +811,63 @@ class VegaChart(UserComponent):
|
|
823
811
|
if self._chart_inside_table and "autosize" not in self._spec:
|
824
812
|
data["spec"]["autosize"] = "fit-x"
|
825
813
|
return data
|
814
|
+
|
815
|
+
|
816
|
+
class PythonCode(UserComponent):
|
817
|
+
"""
|
818
|
+
A component to display Python code with syntax highlighting.
|
819
|
+
|
820
|
+
Example:
|
821
|
+
```python
|
822
|
+
@card
|
823
|
+
@step
|
824
|
+
def my_step(self):
|
825
|
+
# Using code_func
|
826
|
+
def my_function():
|
827
|
+
x = 1
|
828
|
+
y = 2
|
829
|
+
return x + y
|
830
|
+
current.card.append(
|
831
|
+
PythonCode(my_function)
|
832
|
+
)
|
833
|
+
|
834
|
+
# Using code_string
|
835
|
+
code = '''
|
836
|
+
def another_function():
|
837
|
+
return "Hello World"
|
838
|
+
'''
|
839
|
+
current.card.append(
|
840
|
+
PythonCode(code_string=code)
|
841
|
+
)
|
842
|
+
```
|
843
|
+
|
844
|
+
Parameters
|
845
|
+
----------
|
846
|
+
code_func : Callable[..., Any], optional, default None
|
847
|
+
The function whose source code should be displayed.
|
848
|
+
code_string : str, optional, default None
|
849
|
+
A string containing Python code to display.
|
850
|
+
Either code_func or code_string must be provided.
|
851
|
+
"""
|
852
|
+
|
853
|
+
def __init__(
|
854
|
+
self,
|
855
|
+
code_func: Optional[Callable[..., Any]] = None,
|
856
|
+
code_string: Optional[str] = None,
|
857
|
+
):
|
858
|
+
if code_func is not None:
|
859
|
+
self._code_string = inspect.getsource(code_func)
|
860
|
+
else:
|
861
|
+
self._code_string = code_string
|
862
|
+
|
863
|
+
@with_default_component_id
|
864
|
+
@render_safely
|
865
|
+
def render(self):
|
866
|
+
if self._code_string is None:
|
867
|
+
return ErrorComponent(
|
868
|
+
"`PythonCode` component requires a `code_func` or `code_string` argument. ",
|
869
|
+
"None provided for both",
|
870
|
+
).render()
|
871
|
+
_code_component = PythonCodeComponent(self._code_string)
|
872
|
+
_code_component.component_id = self.component_id
|
873
|
+
return _code_component.render()
|