ob-metaflow 2.11.4.9__tar.gz → 2.11.9.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ob-metaflow might be problematic. Click here for more details.
- {ob-metaflow-2.11.4.9/ob_metaflow.egg-info → ob-metaflow-2.11.9.1}/PKG-INFO +2 -2
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/cli.py +15 -10
- ob-metaflow-2.11.9.1/metaflow/clone_util.py +71 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/cmd/develop/stub_generator.py +2 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/cmd/develop/stubs.py +17 -8
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/metaflow_config.py +3 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/package.py +4 -3
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/parameters.py +2 -2
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/batch/batch.py +12 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/batch/batch_cli.py +25 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/batch/batch_client.py +40 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/batch/batch_decorator.py +32 -1
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/step_functions/step_functions.py +3 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/datatools/s3/s3op.py +4 -3
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/client.py +154 -27
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/client_modules.py +15 -47
- ob-metaflow-2.11.9.1/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +81 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +8 -3
- ob-metaflow-2.11.9.1/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +152 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/consts.py +1 -0
- ob-metaflow-2.11.9.1/metaflow/plugins/env_escape/exception_transferer.py +152 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/override_decorators.py +8 -8
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/server.py +42 -5
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/stub.py +168 -23
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/utils.py +3 -3
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +3 -2
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/pypi/conda_environment.py +9 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/pypi/pip.py +17 -2
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/runtime.py +252 -61
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/sidecar/sidecar.py +11 -1
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/sidecar/sidecar_subprocess.py +34 -18
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/task.py +28 -54
- ob-metaflow-2.11.9.1/metaflow/version.py +1 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1/ob_metaflow.egg-info}/PKG-INFO +2 -2
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/ob_metaflow.egg-info/SOURCES.txt +1 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/ob_metaflow.egg-info/requires.txt +1 -1
- ob-metaflow-2.11.4.9/metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +0 -92
- ob-metaflow-2.11.4.9/metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +0 -100
- ob-metaflow-2.11.4.9/metaflow/plugins/env_escape/exception_transferer.py +0 -218
- ob-metaflow-2.11.4.9/metaflow/version.py +0 -1
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/LICENSE +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/MANIFEST.in +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/README.md +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/R.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/_bashcomplete.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/_compat.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/_termui_impl.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/_textwrap.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/_unicodefun.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/_winconsole.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/core.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/decorators.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/exceptions.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/formatting.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/globals.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/parser.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/termui.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/testing.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/types.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/click/utils.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/packaging/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/packaging/_elffile.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/packaging/_manylinux.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/packaging/_musllinux.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/packaging/_parser.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/packaging/_structures.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/packaging/_tokenizer.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/packaging/markers.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/packaging/py.typed +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/packaging/requirements.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/packaging/specifiers.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/packaging/tags.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/packaging/utils.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/packaging/version.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_5/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_5/importlib_metadata/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_5/importlib_metadata/_compat.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_5/zipp.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_6/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_6/importlib_metadata/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_6/importlib_metadata/_adapters.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_6/importlib_metadata/_collections.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_6/importlib_metadata/_compat.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_6/importlib_metadata/_functools.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_6/importlib_metadata/_itertools.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_6/importlib_metadata/_meta.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_6/importlib_metadata/_text.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_6/importlib_metadata/py.typed +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_6/typing_extensions.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_6/zipp.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_7/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/_vendor/v3_7/zipp.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/cards.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/cli_args.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/client/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/client/core.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/client/filecache.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/cmd/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/cmd/configure_cmd.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/cmd/develop/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/cmd/main_cli.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/cmd/tutorials_cmd.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/cmd/util.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/cmd_with_io.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/datastore/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/datastore/content_addressed_store.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/datastore/datastore_set.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/datastore/datastore_storage.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/datastore/exceptions.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/datastore/flow_datastore.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/datastore/inputs.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/datastore/task_datastore.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/debug.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/decorators.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/event_logger.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/events.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/exception.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/extension_support/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/extension_support/_empty_file.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/extension_support/cmd.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/extension_support/integrations.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/extension_support/plugins.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/flowspec.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/graph.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/includefile.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/integrations.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/lint.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/metadata/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/metadata/heartbeat.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/metadata/metadata.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/metadata/util.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/metaflow_config_funcs.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/metaflow_current.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/metaflow_environment.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/metaflow_profile.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/metaflow_version.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/mflog/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/mflog/mflog.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/mflog/save_logs.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/mflog/save_logs_periodically.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/mflog/tee.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/monitor.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/multicore_utils.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/airflow/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/airflow/airflow.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/airflow/airflow_cli.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/airflow/airflow_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/airflow/airflow_utils.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/airflow/dag.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/airflow/exception.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/airflow/plumbing/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/airflow/plumbing/set_parameters.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/airflow/sensors/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/airflow/sensors/base_sensor.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/airflow/sensors/external_task_sensor.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/airflow/sensors/s3_sensor.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/argo/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/argo/argo_client.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/argo/argo_events.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/argo/argo_workflows.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/argo/argo_workflows_cli.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/argo/argo_workflows_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/argo/process_input_paths.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/aws_client.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/aws_utils.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/batch/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/secrets_manager/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/step_functions/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/step_functions/dynamo_db_client.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/step_functions/event_bridge_client.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/step_functions/production_token.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/step_functions/schedule_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/step_functions/set_batch_environment.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/step_functions/step_functions_cli.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/step_functions/step_functions_client.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/step_functions/step_functions_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/azure/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/azure/azure_credential.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/azure/azure_exceptions.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/azure/azure_tail.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/azure/azure_utils.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/azure/blob_service_client_factory.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/azure/includefile_support.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_cli.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_client.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_creator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_datastore.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_modules/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_modules/base.html +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_modules/basic.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_modules/bundle.css +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_modules/card.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_modules/chevron/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_modules/chevron/main.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_modules/chevron/metadata.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_modules/chevron/renderer.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_modules/chevron/tokenizer.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_modules/components.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_modules/convert_to_native_type.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_modules/main.js +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_modules/renderer_tools.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_modules/test_cards.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_resolver.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_server.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/card_viewer/viewer.html +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/component_serializer.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/cards/exception.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/catch_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/datastores/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/datastores/azure_storage.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/datastores/gs_storage.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/datastores/local_storage.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/datastores/s3_storage.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/datatools/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/datatools/local.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/datatools/s3/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/datatools/s3/s3.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/datatools/s3/s3tail.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/datatools/s3/s3util.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/debug_logger.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/debug_monitor.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/communication/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/communication/bytestream.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/communication/channel.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/communication/socket_bytestream.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/communication/utils.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/env_escape/data_transferer.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/environment_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/events_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/frameworks/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/frameworks/pytorch.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/gcp/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/gcp/gs_exceptions.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/gcp/gs_storage_client_factory.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/gcp/gs_tail.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/gcp/gs_utils.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/gcp/includefile_support.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/kubernetes/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/kubernetes/kubernetes.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/kubernetes/kubernetes_cli.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/kubernetes/kubernetes_client.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/kubernetes/kubernetes_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/kubernetes/kubernetes_job.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/metadata/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/metadata/local.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/metadata/service.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/package_cli.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/parallel_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/project_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/pypi/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/pypi/bootstrap.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/pypi/conda_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/pypi/micromamba.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/pypi/pypi_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/pypi/pypi_environment.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/pypi/utils.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/resources_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/retry_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/secrets/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/secrets/inline_secrets_provider.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/secrets/secrets_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/storage_executor.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/tag_cli.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/test_unbounded_foreach_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/timeout_decorator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/procpoll.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/py.typed +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/pylint_wrapper.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/sidecar/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/sidecar/sidecar_messages.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/sidecar/sidecar_worker.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tagging_util.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tracing/__init__.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tracing/propagator.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tracing/span_exporter.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tracing/tracing_modules.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/00-helloworld/README.md +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/00-helloworld/helloworld.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/01-playlist/README.md +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/01-playlist/movies.csv +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/01-playlist/playlist.ipynb +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/01-playlist/playlist.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/02-statistics/README.md +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/02-statistics/movies.csv +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/02-statistics/stats.ipynb +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/02-statistics/stats.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/03-playlist-redux/README.md +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/03-playlist-redux/playlist.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/04-playlist-plus/README.md +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/04-playlist-plus/playlist.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/05-hello-cloud/README.md +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/05-hello-cloud/hello-cloud.ipynb +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/05-hello-cloud/hello-cloud.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/06-statistics-redux/README.md +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/06-statistics-redux/stats.ipynb +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/07-worldview/README.md +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/07-worldview/worldview.ipynb +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/08-autopilot/README.md +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/tutorials/08-autopilot/autopilot.ipynb +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/unbounded_foreach.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/util.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/vendor.py +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/ob_metaflow.egg-info/dependency_links.txt +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/ob_metaflow.egg-info/entry_points.txt +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/ob_metaflow.egg-info/top_level.txt +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/setup.cfg +0 -0
- {ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ob-metaflow
|
|
3
|
-
Version: 2.11.
|
|
3
|
+
Version: 2.11.9.1
|
|
4
4
|
Summary: Metaflow: More Data Science, Less Engineering
|
|
5
5
|
Author: Netflix, Outerbounds & the Metaflow Community
|
|
6
6
|
Author-email: help@outerbounds.co
|
|
@@ -12,7 +12,7 @@ Requires-Dist: boto3
|
|
|
12
12
|
Requires-Dist: pylint
|
|
13
13
|
Requires-Dist: kubernetes
|
|
14
14
|
Provides-Extra: stubs
|
|
15
|
-
Requires-Dist: ob-metaflow-stubs==2.11.
|
|
15
|
+
Requires-Dist: ob-metaflow-stubs==2.11.9.1; extra == "stubs"
|
|
16
16
|
|
|
17
17
|

|
|
18
18
|
|
|
@@ -473,13 +473,6 @@ def logs(obj, input_path, stdout=None, stderr=None, both=None, timestamps=False)
|
|
|
473
473
|
help="Pathspec of the origin task for this task to clone. Do "
|
|
474
474
|
"not execute anything.",
|
|
475
475
|
)
|
|
476
|
-
@click.option(
|
|
477
|
-
"--clone-wait-only/--no-clone-wait-only",
|
|
478
|
-
default=False,
|
|
479
|
-
show_default=True,
|
|
480
|
-
help="If specified, waits for an external process to clone the task",
|
|
481
|
-
hidden=True,
|
|
482
|
-
)
|
|
483
476
|
@click.option(
|
|
484
477
|
"--clone-run-id",
|
|
485
478
|
default=None,
|
|
@@ -519,7 +512,6 @@ def step(
|
|
|
519
512
|
retry_count=None,
|
|
520
513
|
max_user_code_retries=None,
|
|
521
514
|
clone_only=None,
|
|
522
|
-
clone_wait_only=False,
|
|
523
515
|
clone_run_id=None,
|
|
524
516
|
decospecs=None,
|
|
525
517
|
ubf_context="none",
|
|
@@ -575,7 +567,6 @@ def step(
|
|
|
575
567
|
task_id,
|
|
576
568
|
clone_only,
|
|
577
569
|
retry_count,
|
|
578
|
-
wait_only=clone_wait_only,
|
|
579
570
|
)
|
|
580
571
|
else:
|
|
581
572
|
task.run_step(
|
|
@@ -719,6 +710,13 @@ def common_run_options(func):
|
|
|
719
710
|
hidden=True,
|
|
720
711
|
help="If specified, allows this call to be called in parallel",
|
|
721
712
|
)
|
|
713
|
+
@click.option(
|
|
714
|
+
"--resume-identifier",
|
|
715
|
+
default=None,
|
|
716
|
+
show_default=True,
|
|
717
|
+
hidden=True,
|
|
718
|
+
help="If specified, it identifies the task that started this resume call. It is in the form of {step_name}-{task_id}",
|
|
719
|
+
)
|
|
722
720
|
@click.argument("step-to-rerun", required=False)
|
|
723
721
|
@cli.command(help="Resume execution of a previous run of this flow.")
|
|
724
722
|
@common_run_options
|
|
@@ -736,6 +734,7 @@ def resume(
|
|
|
736
734
|
max_log_size=None,
|
|
737
735
|
decospecs=None,
|
|
738
736
|
run_id_file=None,
|
|
737
|
+
resume_identifier=None,
|
|
739
738
|
):
|
|
740
739
|
before_run(obj, tags, decospecs + obj.environment.decospecs())
|
|
741
740
|
|
|
@@ -789,10 +788,15 @@ def resume(
|
|
|
789
788
|
max_workers=max_workers,
|
|
790
789
|
max_num_splits=max_num_splits,
|
|
791
790
|
max_log_size=max_log_size * 1024 * 1024,
|
|
791
|
+
resume_identifier=resume_identifier,
|
|
792
792
|
)
|
|
793
793
|
write_run_id(run_id_file, runtime.run_id)
|
|
794
|
+
runtime.print_workflow_info()
|
|
794
795
|
runtime.persist_constants()
|
|
795
|
-
|
|
796
|
+
if clone_only:
|
|
797
|
+
runtime.clone_original_run()
|
|
798
|
+
else:
|
|
799
|
+
runtime.execute()
|
|
796
800
|
|
|
797
801
|
|
|
798
802
|
@tracing.cli_entrypoint("cli/run")
|
|
@@ -845,6 +849,7 @@ def run(
|
|
|
845
849
|
write_run_id(run_id_file, runtime.run_id)
|
|
846
850
|
|
|
847
851
|
obj.flow._set_constants(obj.graph, kwargs)
|
|
852
|
+
runtime.print_workflow_info()
|
|
848
853
|
runtime.persist_constants()
|
|
849
854
|
runtime.execute()
|
|
850
855
|
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import time
|
|
2
|
+
from .metadata import MetaDatum
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def clone_task_helper(
|
|
6
|
+
flow_name,
|
|
7
|
+
clone_run_id,
|
|
8
|
+
run_id,
|
|
9
|
+
step_name,
|
|
10
|
+
clone_task_id,
|
|
11
|
+
task_id,
|
|
12
|
+
flow_datastore,
|
|
13
|
+
metadata_service,
|
|
14
|
+
origin_ds_set=None,
|
|
15
|
+
attempt_id=0,
|
|
16
|
+
):
|
|
17
|
+
# 1. initialize output datastore
|
|
18
|
+
output = flow_datastore.get_task_datastore(
|
|
19
|
+
run_id, step_name, task_id, attempt=attempt_id, mode="w"
|
|
20
|
+
)
|
|
21
|
+
output.init_task()
|
|
22
|
+
|
|
23
|
+
origin_run_id, origin_step_name, origin_task_id = (
|
|
24
|
+
clone_run_id,
|
|
25
|
+
step_name,
|
|
26
|
+
clone_task_id,
|
|
27
|
+
)
|
|
28
|
+
# 2. initialize origin datastore
|
|
29
|
+
origin = None
|
|
30
|
+
if origin_ds_set:
|
|
31
|
+
origin = origin_ds_set.get_with_pathspec(
|
|
32
|
+
"{}/{}/{}".format(origin_run_id, origin_step_name, origin_task_id)
|
|
33
|
+
)
|
|
34
|
+
else:
|
|
35
|
+
origin = flow_datastore.get_task_datastore(
|
|
36
|
+
origin_run_id, origin_step_name, origin_task_id
|
|
37
|
+
)
|
|
38
|
+
metadata_tags = ["attempt_id:{0}".format(attempt_id)]
|
|
39
|
+
output.clone(origin)
|
|
40
|
+
_ = metadata_service.register_task_id(
|
|
41
|
+
run_id,
|
|
42
|
+
step_name,
|
|
43
|
+
task_id,
|
|
44
|
+
attempt_id,
|
|
45
|
+
)
|
|
46
|
+
metadata_service.register_metadata(
|
|
47
|
+
run_id,
|
|
48
|
+
step_name,
|
|
49
|
+
task_id,
|
|
50
|
+
[
|
|
51
|
+
MetaDatum(
|
|
52
|
+
field="origin-task-id",
|
|
53
|
+
value=str(origin_task_id),
|
|
54
|
+
type="origin-task-id",
|
|
55
|
+
tags=metadata_tags,
|
|
56
|
+
),
|
|
57
|
+
MetaDatum(
|
|
58
|
+
field="origin-run-id",
|
|
59
|
+
value=str(origin_run_id),
|
|
60
|
+
type="origin-run-id",
|
|
61
|
+
tags=metadata_tags,
|
|
62
|
+
),
|
|
63
|
+
MetaDatum(
|
|
64
|
+
field="attempt",
|
|
65
|
+
value=str(attempt_id),
|
|
66
|
+
type="attempt",
|
|
67
|
+
tags=metadata_tags,
|
|
68
|
+
),
|
|
69
|
+
],
|
|
70
|
+
)
|
|
71
|
+
output.done()
|
|
@@ -30,6 +30,7 @@ from typing import (
|
|
|
30
30
|
from metaflow import FlowSpec, step
|
|
31
31
|
from metaflow.debug import debug
|
|
32
32
|
from metaflow.decorators import Decorator, FlowDecorator
|
|
33
|
+
from metaflow.extension_support import get_aliased_modules
|
|
33
34
|
from metaflow.graph import deindent_docstring
|
|
34
35
|
from metaflow.metaflow_version import get_version
|
|
35
36
|
|
|
@@ -116,6 +117,7 @@ class StubGenerator:
|
|
|
116
117
|
|
|
117
118
|
self._write_generated_for = include_generated_for
|
|
118
119
|
self._pending_modules = ["metaflow"] # type: List[str]
|
|
120
|
+
self._pending_modules.extend(get_aliased_modules())
|
|
119
121
|
self._root_module = "metaflow."
|
|
120
122
|
self._safe_modules = ["metaflow.", "metaflow_extensions."]
|
|
121
123
|
|
|
@@ -323,17 +323,26 @@ def get_packages_for_stubs() -> Tuple[List[Tuple[str, str]], List[str]]:
|
|
|
323
323
|
return [], []
|
|
324
324
|
|
|
325
325
|
dist_list = []
|
|
326
|
-
|
|
326
|
+
|
|
327
|
+
# We check the type because if the user has multiple importlib metadata, for
|
|
328
|
+
# some reason it shows up multiple times.
|
|
329
|
+
interesting_dists = [
|
|
330
|
+
d
|
|
331
|
+
for d in _metadata_package.distributions()
|
|
327
332
|
if any(
|
|
328
333
|
[
|
|
329
|
-
|
|
330
|
-
for
|
|
334
|
+
p == "metaflow-stubs"
|
|
335
|
+
for p in (d.read_text("top_level.txt") or "").split()
|
|
331
336
|
]
|
|
332
|
-
)
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
+
)
|
|
338
|
+
and isinstance(d, _metadata_package.PathDistribution)
|
|
339
|
+
]
|
|
340
|
+
|
|
341
|
+
for dist in interesting_dists:
|
|
342
|
+
# This is a package we care about
|
|
343
|
+
root_path = dist.locate_file("metaflow-stubs").as_posix()
|
|
344
|
+
dist_list.append((dist.metadata["Name"], root_path))
|
|
345
|
+
all_paths.discard(root_path)
|
|
337
346
|
return dist_list, list(all_paths)
|
|
338
347
|
|
|
339
348
|
|
|
@@ -82,6 +82,9 @@ S3_SERVER_SIDE_ENCRYPTION = from_conf("S3_SERVER_SIDE_ENCRYPTION")
|
|
|
82
82
|
# so setting it to 0 means each operation will be tried once.
|
|
83
83
|
S3_RETRY_COUNT = from_conf("S3_RETRY_COUNT", 7)
|
|
84
84
|
|
|
85
|
+
# Number of concurrent S3 processes for parallel operations.
|
|
86
|
+
S3_WORKER_COUNT = from_conf("S3_WORKER_COUNT", 64)
|
|
87
|
+
|
|
85
88
|
# Number of retries on *transient* failures (such as SlowDown errors). Note
|
|
86
89
|
# that if after S3_TRANSIENT_RETRY_COUNT times, all operations haven't been done,
|
|
87
90
|
# it will try up to S3_RETRY_COUNT again so the total number of tries can be up to
|
|
@@ -88,9 +88,10 @@ class MetaflowPackage(object):
|
|
|
88
88
|
# if path and (path[0] == '.' or './' in path):
|
|
89
89
|
# continue
|
|
90
90
|
for fname in files:
|
|
91
|
-
if fname[0] == "."
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
if (fname[0] == "." and fname in suffixes) or (
|
|
92
|
+
fname[0] != "."
|
|
93
|
+
and any(fname.endswith(suffix) for suffix in suffixes)
|
|
94
|
+
):
|
|
94
95
|
p = os.path.join(path, fname)
|
|
95
96
|
yield p, p[prefixlen:]
|
|
96
97
|
|
|
@@ -342,10 +342,10 @@ class Parameter(object):
|
|
|
342
342
|
)
|
|
343
343
|
|
|
344
344
|
def __repr__(self):
|
|
345
|
-
return "metaflow.Parameter(name=%s, kwargs=%s)" % (name, kwargs)
|
|
345
|
+
return "metaflow.Parameter(name=%s, kwargs=%s)" % (self.name, self.kwargs)
|
|
346
346
|
|
|
347
347
|
def __str__(self):
|
|
348
|
-
return "metaflow.Parameter(name=%s, kwargs=%s)" % (name, kwargs)
|
|
348
|
+
return "metaflow.Parameter(name=%s, kwargs=%s)" % (self.name, self.kwargs)
|
|
349
349
|
|
|
350
350
|
def option_kwargs(self, deploy_mode):
|
|
351
351
|
kwargs = self.kwargs
|
|
@@ -192,6 +192,9 @@ class Batch(object):
|
|
|
192
192
|
tmpfs_size=None,
|
|
193
193
|
tmpfs_path=None,
|
|
194
194
|
num_parallel=0,
|
|
195
|
+
ephemeral_storage=None,
|
|
196
|
+
log_driver=None,
|
|
197
|
+
log_options=None,
|
|
195
198
|
):
|
|
196
199
|
job_name = self._job_name(
|
|
197
200
|
attrs.get("metaflow.user"),
|
|
@@ -240,6 +243,9 @@ class Batch(object):
|
|
|
240
243
|
tmpfs_size=tmpfs_size,
|
|
241
244
|
tmpfs_path=tmpfs_path,
|
|
242
245
|
num_parallel=num_parallel,
|
|
246
|
+
ephemeral_storage=ephemeral_storage,
|
|
247
|
+
log_driver=log_driver,
|
|
248
|
+
log_options=log_options,
|
|
243
249
|
)
|
|
244
250
|
.task_id(attrs.get("metaflow.task_id"))
|
|
245
251
|
.environment_variable("AWS_DEFAULT_REGION", self._client.region())
|
|
@@ -353,6 +359,9 @@ class Batch(object):
|
|
|
353
359
|
num_parallel=0,
|
|
354
360
|
env={},
|
|
355
361
|
attrs={},
|
|
362
|
+
ephemeral_storage=None,
|
|
363
|
+
log_driver=None,
|
|
364
|
+
log_options=None,
|
|
356
365
|
):
|
|
357
366
|
if queue is None:
|
|
358
367
|
queue = next(self._client.active_job_queues(), None)
|
|
@@ -390,6 +399,9 @@ class Batch(object):
|
|
|
390
399
|
tmpfs_size=tmpfs_size,
|
|
391
400
|
tmpfs_path=tmpfs_path,
|
|
392
401
|
num_parallel=num_parallel,
|
|
402
|
+
ephemeral_storage=ephemeral_storage,
|
|
403
|
+
log_driver=log_driver,
|
|
404
|
+
log_options=log_options,
|
|
393
405
|
)
|
|
394
406
|
self.num_parallel = num_parallel
|
|
395
407
|
self.job = job.execute()
|
|
@@ -154,6 +154,25 @@ def kill(ctx, run_id, user, my_runs):
|
|
|
154
154
|
@click.option("--ubf-context", default=None, type=click.Choice([None, "ubf_control"]))
|
|
155
155
|
@click.option("--host-volumes", multiple=True)
|
|
156
156
|
@click.option("--efs-volumes", multiple=True)
|
|
157
|
+
@click.option(
|
|
158
|
+
"--ephemeral-storage",
|
|
159
|
+
default=None,
|
|
160
|
+
type=int,
|
|
161
|
+
help="Ephemeral storage (for AWS Batch only)",
|
|
162
|
+
)
|
|
163
|
+
@click.option(
|
|
164
|
+
"--log-driver",
|
|
165
|
+
default=None,
|
|
166
|
+
type=str,
|
|
167
|
+
help="Log driver for AWS ECS container",
|
|
168
|
+
)
|
|
169
|
+
@click.option(
|
|
170
|
+
"--log-options",
|
|
171
|
+
default=None,
|
|
172
|
+
type=str,
|
|
173
|
+
multiple=True,
|
|
174
|
+
help="Log options for the chosen log driver",
|
|
175
|
+
)
|
|
157
176
|
@click.option(
|
|
158
177
|
"--num-parallel",
|
|
159
178
|
default=0,
|
|
@@ -186,6 +205,9 @@ def step(
|
|
|
186
205
|
tmpfs_path=None,
|
|
187
206
|
host_volumes=None,
|
|
188
207
|
efs_volumes=None,
|
|
208
|
+
ephemeral_storage=None,
|
|
209
|
+
log_driver=None,
|
|
210
|
+
log_options=None,
|
|
189
211
|
num_parallel=None,
|
|
190
212
|
**kwargs
|
|
191
213
|
):
|
|
@@ -317,6 +339,9 @@ def step(
|
|
|
317
339
|
tmpfs_tempdir=tmpfs_tempdir,
|
|
318
340
|
tmpfs_size=tmpfs_size,
|
|
319
341
|
tmpfs_path=tmpfs_path,
|
|
342
|
+
ephemeral_storage=ephemeral_storage,
|
|
343
|
+
log_driver=log_driver,
|
|
344
|
+
log_options=log_options,
|
|
320
345
|
num_parallel=num_parallel,
|
|
321
346
|
)
|
|
322
347
|
except Exception as e:
|
|
@@ -158,6 +158,9 @@ class BatchJob(object):
|
|
|
158
158
|
tmpfs_size,
|
|
159
159
|
tmpfs_path,
|
|
160
160
|
num_parallel,
|
|
161
|
+
ephemeral_storage,
|
|
162
|
+
log_driver,
|
|
163
|
+
log_options,
|
|
161
164
|
):
|
|
162
165
|
# identify platform from any compute environment associated with the
|
|
163
166
|
# queue
|
|
@@ -195,6 +198,25 @@ class BatchJob(object):
|
|
|
195
198
|
"propagateTags": True,
|
|
196
199
|
}
|
|
197
200
|
|
|
201
|
+
log_options_dict = {}
|
|
202
|
+
if log_options:
|
|
203
|
+
if isinstance(log_options, str):
|
|
204
|
+
log_options = [log_options]
|
|
205
|
+
for each_log_option in log_options:
|
|
206
|
+
k, v = each_log_option.split(":", 1)
|
|
207
|
+
log_options_dict[k] = v
|
|
208
|
+
|
|
209
|
+
if log_driver or log_options:
|
|
210
|
+
job_definition["containerProperties"]["logConfiguration"] = {}
|
|
211
|
+
if log_driver:
|
|
212
|
+
job_definition["containerProperties"]["logConfiguration"][
|
|
213
|
+
"logDriver"
|
|
214
|
+
] = log_driver
|
|
215
|
+
if log_options:
|
|
216
|
+
job_definition["containerProperties"]["logConfiguration"][
|
|
217
|
+
"options"
|
|
218
|
+
] = log_options_dict
|
|
219
|
+
|
|
198
220
|
if platform == "FARGATE" or platform == "FARGATE_SPOT":
|
|
199
221
|
if num_parallel > 1:
|
|
200
222
|
raise BatchJobException("Fargate does not support multinode jobs.")
|
|
@@ -210,6 +232,10 @@ class BatchJob(object):
|
|
|
210
232
|
job_definition["containerProperties"]["networkConfiguration"] = {
|
|
211
233
|
"assignPublicIp": "ENABLED"
|
|
212
234
|
}
|
|
235
|
+
if ephemeral_storage:
|
|
236
|
+
job_definition["containerProperties"]["ephemeralStorage"] = {
|
|
237
|
+
"sizeInGiB": ephemeral_storage
|
|
238
|
+
}
|
|
213
239
|
|
|
214
240
|
if platform == "EC2" or platform == "SPOT":
|
|
215
241
|
if "linuxParameters" not in job_definition["containerProperties"]:
|
|
@@ -254,6 +280,10 @@ class BatchJob(object):
|
|
|
254
280
|
job_definition["containerProperties"]["linuxParameters"][
|
|
255
281
|
"maxSwap"
|
|
256
282
|
] = int(max_swap)
|
|
283
|
+
if ephemeral_storage:
|
|
284
|
+
raise BatchJobException(
|
|
285
|
+
"The ephemeral_storage parameter is only available for FARGATE compute environments"
|
|
286
|
+
)
|
|
257
287
|
|
|
258
288
|
if inferentia:
|
|
259
289
|
if not (isinstance(inferentia, (int, unicode, basestring))):
|
|
@@ -315,6 +345,10 @@ class BatchJob(object):
|
|
|
315
345
|
{"sourceVolume": name, "containerPath": container_path}
|
|
316
346
|
)
|
|
317
347
|
|
|
348
|
+
if use_tmpfs and (platform == "FARGATE" or platform == "FARGATE_SPOT"):
|
|
349
|
+
raise BatchJobException(
|
|
350
|
+
"tmpfs is not available for Fargate compute resources"
|
|
351
|
+
)
|
|
318
352
|
if use_tmpfs or (tmpfs_size and not use_tmpfs):
|
|
319
353
|
if tmpfs_size:
|
|
320
354
|
if not (isinstance(tmpfs_size, (int, unicode, basestring))):
|
|
@@ -442,6 +476,9 @@ class BatchJob(object):
|
|
|
442
476
|
tmpfs_size,
|
|
443
477
|
tmpfs_path,
|
|
444
478
|
num_parallel,
|
|
479
|
+
ephemeral_storage,
|
|
480
|
+
log_driver,
|
|
481
|
+
log_options,
|
|
445
482
|
):
|
|
446
483
|
self.payload["jobDefinition"] = self._register_job_definition(
|
|
447
484
|
image,
|
|
@@ -461,6 +498,9 @@ class BatchJob(object):
|
|
|
461
498
|
tmpfs_size,
|
|
462
499
|
tmpfs_path,
|
|
463
500
|
num_parallel,
|
|
501
|
+
ephemeral_storage,
|
|
502
|
+
log_driver,
|
|
503
|
+
log_options,
|
|
464
504
|
)
|
|
465
505
|
return self
|
|
466
506
|
|
|
@@ -72,7 +72,8 @@ class BatchDecorator(StepDecorator):
|
|
|
72
72
|
necessary. A swappiness value of 100 causes pages to be swapped very
|
|
73
73
|
aggressively. Accepted values are whole numbers between 0 and 100.
|
|
74
74
|
use_tmpfs : bool, default False
|
|
75
|
-
This enables an explicit tmpfs mount for this step.
|
|
75
|
+
This enables an explicit tmpfs mount for this step. Note that tmpfs is
|
|
76
|
+
not available on Fargate compute environments
|
|
76
77
|
tmpfs_tempdir : bool, default True
|
|
77
78
|
sets METAFLOW_TEMPDIR to tmpfs_path if set for this step.
|
|
78
79
|
tmpfs_size : int, optional, default None
|
|
@@ -83,8 +84,19 @@ class BatchDecorator(StepDecorator):
|
|
|
83
84
|
Path to tmpfs mount for this step. Defaults to /metaflow_temp.
|
|
84
85
|
inferentia : int, default 0
|
|
85
86
|
Number of Inferentia chips required for this step.
|
|
87
|
+
trainium : int, default None
|
|
88
|
+
Alias for inferentia. Use only one of the two.
|
|
86
89
|
efa : int, default 0
|
|
87
90
|
Number of elastic fabric adapter network devices to attach to container
|
|
91
|
+
ephemeral_storage: int, default None
|
|
92
|
+
The total amount, in GiB, of ephemeral storage to set for the task (21-200)
|
|
93
|
+
This is only relevant for Fargate compute environments
|
|
94
|
+
log_driver: str, optional, default None
|
|
95
|
+
The log driver to use for the Amazon ECS container.
|
|
96
|
+
log_options: List[str], optional, default None
|
|
97
|
+
List of strings containing options for the chosen log driver. The configurable values
|
|
98
|
+
depend on the `log driver` chosen. Validation of these options is not supported yet.
|
|
99
|
+
Example usage: ["awslogs-group:aws/batch/job"]
|
|
88
100
|
"""
|
|
89
101
|
|
|
90
102
|
name = "batch"
|
|
@@ -100,6 +112,7 @@ class BatchDecorator(StepDecorator):
|
|
|
100
112
|
"max_swap": None,
|
|
101
113
|
"swappiness": None,
|
|
102
114
|
"inferentia": None,
|
|
115
|
+
"trainium": None, # alias for inferentia
|
|
103
116
|
"efa": None,
|
|
104
117
|
"host_volumes": None,
|
|
105
118
|
"efs_volumes": None,
|
|
@@ -107,6 +120,9 @@ class BatchDecorator(StepDecorator):
|
|
|
107
120
|
"tmpfs_tempdir": True,
|
|
108
121
|
"tmpfs_size": None,
|
|
109
122
|
"tmpfs_path": "/metaflow_temp",
|
|
123
|
+
"ephemeral_storage": None,
|
|
124
|
+
"log_driver": None,
|
|
125
|
+
"log_options": None,
|
|
110
126
|
}
|
|
111
127
|
resource_defaults = {
|
|
112
128
|
"cpu": "1",
|
|
@@ -146,6 +162,21 @@ class BatchDecorator(StepDecorator):
|
|
|
146
162
|
self.attributes["image"],
|
|
147
163
|
)
|
|
148
164
|
|
|
165
|
+
# Alias trainium to inferentia and check that both are not in use.
|
|
166
|
+
if (
|
|
167
|
+
self.attributes["inferentia"] is not None
|
|
168
|
+
and self.attributes["trainium"] is not None
|
|
169
|
+
):
|
|
170
|
+
raise BatchException(
|
|
171
|
+
"only specify a value for 'inferentia' or 'trainium', not both."
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
if self.attributes["trainium"] is not None:
|
|
175
|
+
self.attributes["inferentia"] = self.attributes["trainium"]
|
|
176
|
+
|
|
177
|
+
# clean up the alias attribute so it is not passed on.
|
|
178
|
+
self.attributes.pop("trainium", None)
|
|
179
|
+
|
|
149
180
|
# Refer https://github.com/Netflix/metaflow/blob/master/docs/lifecycle.png
|
|
150
181
|
# to understand where these functions are invoked in the lifecycle of a
|
|
151
182
|
# Metaflow flow.
|
{ob-metaflow-2.11.4.9 → ob-metaflow-2.11.9.1}/metaflow/plugins/aws/step_functions/step_functions.py
RENAMED
|
@@ -839,6 +839,9 @@ class StepFunctions(object):
|
|
|
839
839
|
attrs=attrs,
|
|
840
840
|
host_volumes=resources["host_volumes"],
|
|
841
841
|
efs_volumes=resources["efs_volumes"],
|
|
842
|
+
ephemeral_storage=resources["ephemeral_storage"],
|
|
843
|
+
log_driver=resources["log_driver"],
|
|
844
|
+
log_options=resources["log_options"],
|
|
842
845
|
)
|
|
843
846
|
.attempts(total_retries + 1)
|
|
844
847
|
)
|
|
@@ -44,8 +44,9 @@ from metaflow.plugins.datatools.s3.s3util import (
|
|
|
44
44
|
TRANSIENT_RETRY_START_LINE,
|
|
45
45
|
)
|
|
46
46
|
import metaflow.tracing as tracing
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
from metaflow.metaflow_config import (
|
|
48
|
+
S3_WORKER_COUNT,
|
|
49
|
+
)
|
|
49
50
|
|
|
50
51
|
DOWNLOAD_FILE_THRESHOLD = 2 * TransferConfig().multipart_threshold
|
|
51
52
|
DOWNLOAD_MAX_CHUNK = 2 * 1024 * 1024 * 1024 - 1
|
|
@@ -656,7 +657,7 @@ def common_options(func):
|
|
|
656
657
|
)
|
|
657
658
|
@click.option(
|
|
658
659
|
"--num-workers",
|
|
659
|
-
default=
|
|
660
|
+
default=S3_WORKER_COUNT,
|
|
660
661
|
show_default=True,
|
|
661
662
|
help="Number of concurrent connections.",
|
|
662
663
|
)
|