gitextract_vcdtgcz5/ ├── .github/ │ ├── pull_request_template.md │ └── workflows/ │ ├── codeql.yml │ ├── full-stack-test.yml │ ├── metaflow.s3_tests.minio.yml │ ├── publish.yml │ ├── test-card-build.yml │ ├── test-stubs.yml │ └── test.yml ├── .gitignore ├── .pre-commit-config.yaml ├── ADOPTERS.md ├── AGENTS.md ├── AGENTS_EXTERNAL.md ├── CLAUDE.md ├── CONTRIBUTING.md ├── GSOC_2026_PROPOSALS.md ├── GSOC_CONTRIBUTOR_GUIDANCE.md ├── LICENSE ├── MANIFEST.in ├── R/ │ ├── DESCRIPTION │ ├── LICENSE │ ├── NAMESPACE │ ├── R/ │ │ ├── decorators-aws.R │ │ ├── decorators-environment.R │ │ ├── decorators-errors.R │ │ ├── decorators.R │ │ ├── flags.R │ │ ├── flow.R │ │ ├── flow_client.R │ │ ├── imports.R │ │ ├── install.R │ │ ├── metadata.R │ │ ├── metaflow_client.R │ │ ├── namespace.R │ │ ├── package.R │ │ ├── parameter.R │ │ ├── run.R │ │ ├── run_client.R │ │ ├── step.R │ │ ├── step_client.R │ │ ├── task_client.R │ │ ├── utils.R │ │ └── zzz.R │ ├── README.md │ ├── check_as_cran.sh │ ├── doc/ │ │ ├── metaflow.R │ │ ├── metaflow.Rmd │ │ └── metaflow.html │ ├── inst/ │ │ ├── run.R │ │ ├── run_batch.R │ │ └── tutorials/ │ │ ├── 00-helloworld/ │ │ │ ├── README.md │ │ │ └── helloworld.R │ │ ├── 01-playlist/ │ │ │ ├── README.md │ │ │ ├── movies.csv │ │ │ ├── playlist.R │ │ │ └── playlist.Rmd │ │ ├── 02-statistics/ │ │ │ ├── README.md │ │ │ ├── movies.csv │ │ │ ├── stats.R │ │ │ └── stats.Rmd │ │ ├── 03-playlist-redux/ │ │ │ ├── README.md │ │ │ ├── movies.csv │ │ │ └── playlist.R │ │ ├── 04-helloaws/ │ │ │ ├── README.md │ │ │ ├── helloaws.R │ │ │ └── helloaws.Rmd │ │ ├── 05-statistics-redux/ │ │ │ └── README.md │ │ ├── 06-worldview/ │ │ │ ├── README.md │ │ │ └── worldview.Rmd │ │ ├── 07-autopilot/ │ │ │ ├── README.md │ │ │ └── autopilot.Rmd │ │ └── README.md │ ├── man/ │ │ ├── add_decorators.Rd │ │ ├── batch.Rd │ │ ├── cash-.metaflow.flowspec.FlowSpec.Rd │ │ ├── cash-set-.metaflow.flowspec.FlowSpec.Rd │ │ ├── catch.Rd │ │ ├── container_image.Rd │ │ ├── current.Rd │ │ ├── decorator.Rd │ │ ├── decorator_arguments.Rd │ │ ├── environment_variables.Rd │ │ ├── flow_client.Rd │ │ ├── fmt_decorator.Rd │ │ ├── gather_inputs.Rd │ │ ├── get_metadata.Rd │ │ ├── get_namespace.Rd │ │ ├── install_metaflow.Rd │ │ ├── is_valid_python_identifier.Rd │ │ ├── list_flows.Rd │ │ ├── merge_artifacts.Rd │ │ ├── metaflow-package.Rd │ │ ├── metaflow.Rd │ │ ├── metaflow_location.Rd │ │ ├── metaflow_object.Rd │ │ ├── mf_client.Rd │ │ ├── mf_deserialize.Rd │ │ ├── mf_serialize.Rd │ │ ├── new_flow.Rd │ │ ├── new_run.Rd │ │ ├── new_step.Rd │ │ ├── new_task.Rd │ │ ├── parameter.Rd │ │ ├── pipe.Rd │ │ ├── pull_tutorials.Rd │ │ ├── py_version.Rd │ │ ├── r_version.Rd │ │ ├── remove_metaflow_env.Rd │ │ ├── reset_default_metadata.Rd │ │ ├── retry.Rd │ │ ├── run.Rd │ │ ├── run_client.Rd │ │ ├── set_default_namespace.Rd │ │ ├── set_metadata.Rd │ │ ├── set_namespace.Rd │ │ ├── step.Rd │ │ ├── step_client.Rd │ │ ├── sub-sub-.metaflow.flowspec.FlowSpec.Rd │ │ ├── sub-subset-.metaflow.flowspec.FlowSpec.Rd │ │ ├── task_client.Rd │ │ ├── test.Rd │ │ └── version_info.Rd │ ├── tests/ │ │ ├── contexts.json │ │ ├── formatter.R │ │ ├── graphs/ │ │ │ ├── branch.json │ │ │ ├── foreach.json │ │ │ ├── linear.json │ │ │ ├── nested_branches.json │ │ │ ├── nested_foreach.json │ │ │ └── small_foreach.json │ │ ├── run_integration_tests.R │ │ ├── run_tests.R │ │ ├── tests/ │ │ │ ├── basic_artifacts.R │ │ │ ├── basic_foreach.R │ │ │ ├── basic_parameter.R │ │ │ ├── complex_artifacts.R │ │ │ ├── merge_artifacts.R │ │ │ ├── merge_artifacts_propagation.R │ │ │ └── nested_foreach.R │ │ ├── testthat/ │ │ │ ├── helper.R │ │ │ ├── test-command-args.R │ │ │ ├── test-decorators-aws.R │ │ │ ├── test-decorators-environment.R │ │ │ ├── test-decorators-error.R │ │ │ ├── test-decorators.R │ │ │ ├── test-flags.R │ │ │ ├── test-flow.R │ │ │ ├── test-metaflow.R │ │ │ ├── test-parameter.R │ │ │ ├── test-run-cmd.R │ │ │ ├── test-run.R │ │ │ ├── test-sfn-cli-parsing.R │ │ │ ├── test-step.R │ │ │ ├── test-utils-format.R │ │ │ └── test-utils.R │ │ ├── testthat.R │ │ └── utils.R │ └── vignettes/ │ └── metaflow.Rmd ├── README.md ├── SECURITY.md ├── devtools/ │ ├── Makefile │ ├── Tiltfile │ └── pick_services.sh ├── docs/ │ ├── Environment escape.md │ ├── cards.md │ ├── concurrency.md │ ├── datastore.md │ ├── lifecycle.dot │ ├── sidecars.md │ └── update_lifecycle_png ├── metaflow/ │ ├── R.py │ ├── __init__.py │ ├── _vendor/ │ │ ├── PyYAML.LICENSE │ │ ├── __init__.py │ │ ├── click/ │ │ │ ├── __init__.py │ │ │ ├── _bashcomplete.py │ │ │ ├── _compat.py │ │ │ ├── _termui_impl.py │ │ │ ├── _textwrap.py │ │ │ ├── _unicodefun.py │ │ │ ├── _winconsole.py │ │ │ ├── core.py │ │ │ ├── decorators.py │ │ │ ├── exceptions.py │ │ │ ├── formatting.py │ │ │ ├── globals.py │ │ │ ├── parser.py │ │ │ ├── termui.py │ │ │ ├── testing.py │ │ │ ├── types.py │ │ │ └── utils.py │ │ ├── click.LICENSE │ │ ├── imghdr/ │ │ │ └── __init__.py │ │ ├── importlib_metadata/ │ │ │ ├── __init__.py │ │ │ ├── _adapters.py │ │ │ ├── _collections.py │ │ │ ├── _compat.py │ │ │ ├── _functools.py │ │ │ ├── _itertools.py │ │ │ ├── _meta.py │ │ │ ├── _text.py │ │ │ └── py.typed │ │ ├── importlib_metadata.LICENSE │ │ ├── packaging/ │ │ │ ├── __init__.py │ │ │ ├── _elffile.py │ │ │ ├── _manylinux.py │ │ │ ├── _musllinux.py │ │ │ ├── _parser.py │ │ │ ├── _structures.py │ │ │ ├── _tokenizer.py │ │ │ ├── markers.py │ │ │ ├── py.typed │ │ │ ├── requirements.py │ │ │ ├── specifiers.py │ │ │ ├── tags.py │ │ │ ├── utils.py │ │ │ └── version.py │ │ ├── packaging.LICENSE │ │ ├── packaging.LICENSE.APACHE │ │ ├── packaging.LICENSE.BSD │ │ ├── pip.LICENSE │ │ ├── standard-imghdr.LICENSE │ │ ├── typeguard/ │ │ │ ├── __init__.py │ │ │ ├── _checkers.py │ │ │ ├── _config.py │ │ │ ├── _decorators.py │ │ │ ├── _exceptions.py │ │ │ ├── _functions.py │ │ │ ├── _importhook.py │ │ │ ├── _memo.py │ │ │ ├── _pytest_plugin.py │ │ │ ├── _suppression.py │ │ │ ├── _transformer.py │ │ │ ├── _union_transformer.py │ │ │ ├── _utils.py │ │ │ └── py.typed │ │ ├── typeguard.LICENSE │ │ ├── typing_extensions.LICENSE │ │ ├── typing_extensions.py │ │ ├── v3_6/ │ │ │ ├── __init__.py │ │ │ ├── importlib_metadata/ │ │ │ │ ├── __init__.py │ │ │ │ ├── _adapters.py │ │ │ │ ├── _collections.py │ │ │ │ ├── _compat.py │ │ │ │ ├── _functools.py │ │ │ │ ├── _itertools.py │ │ │ │ ├── _meta.py │ │ │ │ ├── _text.py │ │ │ │ └── py.typed │ │ │ ├── importlib_metadata.LICENSE │ │ │ ├── typing_extensions.LICENSE │ │ │ ├── typing_extensions.py │ │ │ ├── zipp.LICENSE │ │ │ └── zipp.py │ │ ├── v3_7/ │ │ │ ├── __init__.py │ │ │ ├── importlib_metadata/ │ │ │ │ ├── __init__.py │ │ │ │ ├── _adapters.py │ │ │ │ ├── _collections.py │ │ │ │ ├── _compat.py │ │ │ │ ├── _functools.py │ │ │ │ ├── _itertools.py │ │ │ │ ├── _meta.py │ │ │ │ ├── _text.py │ │ │ │ └── py.typed │ │ │ ├── importlib_metadata.LICENSE │ │ │ ├── typeguard/ │ │ │ │ ├── __init__.py │ │ │ │ ├── _checkers.py │ │ │ │ ├── _config.py │ │ │ │ ├── _decorators.py │ │ │ │ ├── _exceptions.py │ │ │ │ ├── _functions.py │ │ │ │ ├── _importhook.py │ │ │ │ ├── _memo.py │ │ │ │ ├── _pytest_plugin.py │ │ │ │ ├── _suppression.py │ │ │ │ ├── _transformer.py │ │ │ │ ├── _union_transformer.py │ │ │ │ ├── _utils.py │ │ │ │ └── py.typed │ │ │ ├── typeguard.LICENSE │ │ │ ├── typing_extensions.LICENSE │ │ │ ├── typing_extensions.py │ │ │ ├── zipp.LICENSE │ │ │ └── zipp.py │ │ ├── vendor_any.txt │ │ ├── vendor_v3_6.txt │ │ ├── vendor_v3_7.txt │ │ ├── yaml/ │ │ │ ├── __init__.py │ │ │ ├── composer.py │ │ │ ├── constructor.py │ │ │ ├── cyaml.py │ │ │ ├── dumper.py │ │ │ ├── emitter.py │ │ │ ├── error.py │ │ │ ├── events.py │ │ │ ├── loader.py │ │ │ ├── nodes.py │ │ │ ├── parser.py │ │ │ ├── reader.py │ │ │ ├── representer.py │ │ │ ├── resolver.py │ │ │ ├── scanner.py │ │ │ ├── serializer.py │ │ │ └── tokens.py │ │ ├── zipp.LICENSE │ │ └── zipp.py │ ├── cards.py │ ├── cli.py │ ├── cli_args.py │ ├── cli_components/ │ │ ├── __init__.py │ │ ├── dump_cmd.py │ │ ├── init_cmd.py │ │ ├── run_cmds.py │ │ ├── step_cmd.py │ │ └── utils.py │ ├── client/ │ │ ├── __init__.py │ │ ├── core.py │ │ └── filecache.py │ ├── clone_util.py │ ├── cmd/ │ │ ├── __init__.py │ │ ├── code/ │ │ │ └── __init__.py │ │ ├── configure_cmd.py │ │ ├── develop/ │ │ │ ├── __init__.py │ │ │ ├── stub_generator.py │ │ │ └── stubs.py │ │ ├── main_cli.py │ │ ├── make_wrapper.py │ │ ├── tutorials_cmd.py │ │ └── util.py │ ├── cmd_with_io.py │ ├── datastore/ │ │ ├── __init__.py │ │ ├── content_addressed_store.py │ │ ├── datastore_set.py │ │ ├── datastore_storage.py │ │ ├── exceptions.py │ │ ├── flow_datastore.py │ │ ├── inputs.py │ │ ├── spin_datastore.py │ │ └── task_datastore.py │ ├── debug.py │ ├── decorators.py │ ├── event_logger.py │ ├── events.py │ ├── exception.py │ ├── extension_support/ │ │ ├── __init__.py │ │ ├── _empty_file.py │ │ ├── cmd.py │ │ ├── integrations.py │ │ └── plugins.py │ ├── flowspec.py │ ├── graph.py │ ├── includefile.py │ ├── integrations.py │ ├── lint.py │ ├── meta_files.py │ ├── metadata_provider/ │ │ ├── __init__.py │ │ ├── heartbeat.py │ │ ├── metadata.py │ │ └── util.py │ ├── metaflow_config.py │ ├── metaflow_config_funcs.py │ ├── metaflow_current.py │ ├── metaflow_environment.py │ ├── metaflow_git.py │ ├── metaflow_profile.py │ ├── metaflow_version.py │ ├── mflog/ │ │ ├── __init__.py │ │ ├── mflog.py │ │ ├── save_logs.py │ │ ├── save_logs_periodically.py │ │ └── tee.py │ ├── monitor.py │ ├── multicore_utils.py │ ├── package/ │ │ └── __init__.py │ ├── packaging_sys/ │ │ ├── __init__.py │ │ ├── backend.py │ │ ├── distribution_support.py │ │ ├── tar_backend.py │ │ ├── utils.py │ │ └── v1.py │ ├── parameters.py │ ├── plugins/ │ │ ├── __init__.py │ │ ├── airflow/ │ │ │ ├── __init__.py │ │ │ ├── airflow.py │ │ │ ├── airflow_cli.py │ │ │ ├── airflow_decorator.py │ │ │ ├── airflow_utils.py │ │ │ ├── dag.py │ │ │ ├── exception.py │ │ │ ├── plumbing/ │ │ │ │ ├── __init__.py │ │ │ │ └── set_parameters.py │ │ │ └── sensors/ │ │ │ ├── __init__.py │ │ │ ├── base_sensor.py │ │ │ ├── external_task_sensor.py │ │ │ └── s3_sensor.py │ │ ├── argo/ │ │ │ ├── __init__.py │ │ │ ├── argo_client.py │ │ │ ├── argo_events.py │ │ │ ├── argo_workflows.py │ │ │ ├── argo_workflows_cli.py │ │ │ ├── argo_workflows_decorator.py │ │ │ ├── argo_workflows_deployer.py │ │ │ ├── argo_workflows_deployer_objects.py │ │ │ ├── capture_error.py │ │ │ ├── conditional_input_paths.py │ │ │ ├── exit_hooks.py │ │ │ ├── generate_input_paths.py │ │ │ ├── jobset_input_paths.py │ │ │ └── param_val.py │ │ ├── aws/ │ │ │ ├── __init__.py │ │ │ ├── aws_client.py │ │ │ ├── aws_utils.py │ │ │ ├── batch/ │ │ │ │ ├── __init__.py │ │ │ │ ├── batch.py │ │ │ │ ├── batch_cli.py │ │ │ │ ├── batch_client.py │ │ │ │ └── batch_decorator.py │ │ │ ├── secrets_manager/ │ │ │ │ ├── __init__.py │ │ │ │ └── aws_secrets_manager_secrets_provider.py │ │ │ └── step_functions/ │ │ │ ├── __init__.py │ │ │ ├── dynamo_db_client.py │ │ │ ├── event_bridge_client.py │ │ │ ├── production_token.py │ │ │ ├── schedule_decorator.py │ │ │ ├── set_batch_environment.py │ │ │ ├── step_functions.py │ │ │ ├── step_functions_cli.py │ │ │ ├── step_functions_client.py │ │ │ ├── step_functions_decorator.py │ │ │ ├── step_functions_deployer.py │ │ │ └── step_functions_deployer_objects.py │ │ ├── azure/ │ │ │ ├── __init__.py │ │ │ ├── azure_credential.py │ │ │ ├── azure_exceptions.py │ │ │ ├── azure_secret_manager_secrets_provider.py │ │ │ ├── azure_tail.py │ │ │ ├── azure_utils.py │ │ │ ├── blob_service_client_factory.py │ │ │ └── includefile_support.py │ │ ├── cards/ │ │ │ ├── __init__.py │ │ │ ├── card_cli.py │ │ │ ├── card_client.py │ │ │ ├── card_creator.py │ │ │ ├── card_datastore.py │ │ │ ├── card_decorator.py │ │ │ ├── card_modules/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.html │ │ │ │ ├── basic.py │ │ │ │ ├── bundle.css │ │ │ │ ├── card.py │ │ │ │ ├── chevron/ │ │ │ │ │ ├── LICENCE.txt │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── main.py │ │ │ │ │ ├── metadata.py │ │ │ │ │ ├── renderer.py │ │ │ │ │ └── tokenizer.py │ │ │ │ ├── components.py │ │ │ │ ├── convert_to_native_type.py │ │ │ │ ├── json_viewer.py │ │ │ │ ├── main.css │ │ │ │ ├── main.js │ │ │ │ ├── renderer_tools.py │ │ │ │ └── test_cards.py │ │ │ ├── card_resolver.py │ │ │ ├── card_server.py │ │ │ ├── card_viewer/ │ │ │ │ └── viewer.html │ │ │ ├── component_serializer.py │ │ │ ├── exception.py │ │ │ ├── metadata.py │ │ │ └── ui/ │ │ │ ├── .eslintignore │ │ │ ├── .eslintrc.cjs │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── cypress/ │ │ │ │ ├── fixtures/ │ │ │ │ │ └── example.json │ │ │ │ ├── integration/ │ │ │ │ │ ├── demo_spec.ts │ │ │ │ │ └── utils_spec.ts │ │ │ │ ├── plugins/ │ │ │ │ │ └── index.js │ │ │ │ └── support/ │ │ │ │ ├── commands.js │ │ │ │ └── index.js │ │ │ ├── cypress.json │ │ │ ├── demo/ │ │ │ │ ├── card-example.json │ │ │ │ └── index.html │ │ │ ├── package.json │ │ │ ├── prism.css │ │ │ ├── prism.js │ │ │ ├── rollup.config.jsBACKUP │ │ │ ├── src/ │ │ │ │ ├── App.svelte │ │ │ │ ├── app.css │ │ │ │ ├── aws-exports.cjs │ │ │ │ ├── components/ │ │ │ │ │ ├── artifact-row.svelte │ │ │ │ │ ├── artifacts.svelte │ │ │ │ │ ├── aside-nav.svelte │ │ │ │ │ ├── aside.svelte │ │ │ │ │ ├── card-component-renderer.svelte │ │ │ │ │ ├── dag/ │ │ │ │ │ │ ├── connector.svelte │ │ │ │ │ │ ├── connectors.svelte │ │ │ │ │ │ ├── constants.svelte │ │ │ │ │ │ ├── dag.css │ │ │ │ │ │ ├── dag.svelte │ │ │ │ │ │ ├── step-wrapper.svelte │ │ │ │ │ │ └── step.svelte │ │ │ │ │ ├── events-timeline.svelte │ │ │ │ │ ├── heading.svelte │ │ │ │ │ ├── image.svelte │ │ │ │ │ ├── json-viewer.svelte │ │ │ │ │ ├── log.svelte │ │ │ │ │ ├── logo.svelte │ │ │ │ │ ├── main.svelte │ │ │ │ │ ├── markdown.svelte │ │ │ │ │ ├── modal.svelte │ │ │ │ │ ├── page.svelte │ │ │ │ │ ├── progress-bar.svelte │ │ │ │ │ ├── python-code.svelte │ │ │ │ │ ├── section.svelte │ │ │ │ │ ├── subtitle.svelte │ │ │ │ │ ├── table-data-renderer.svelte │ │ │ │ │ ├── table-horizontal.svelte │ │ │ │ │ ├── table-vertical.svelte │ │ │ │ │ ├── table.svelte │ │ │ │ │ ├── text.svelte │ │ │ │ │ ├── title.svelte │ │ │ │ │ ├── value-box.svelte │ │ │ │ │ ├── vega-chart.svelte │ │ │ │ │ └── yaml-viewer.svelte │ │ │ │ ├── constants.ts │ │ │ │ ├── global.css │ │ │ │ ├── global.d.ts │ │ │ │ ├── main.ts │ │ │ │ ├── store.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── svelte.config.js │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.node.json │ │ │ └── vite.config.ts │ │ ├── catch_decorator.py │ │ ├── datastores/ │ │ │ ├── __init__.py │ │ │ ├── azure_storage.py │ │ │ ├── gs_storage.py │ │ │ ├── local_storage.py │ │ │ ├── s3_storage.py │ │ │ └── spin_storage.py │ │ ├── datatools/ │ │ │ ├── __init__.py │ │ │ ├── local.py │ │ │ └── s3/ │ │ │ ├── __init__.py │ │ │ ├── s3.py │ │ │ ├── s3op.py │ │ │ ├── s3tail.py │ │ │ └── s3util.py │ │ ├── debug_logger.py │ │ ├── debug_monitor.py │ │ ├── env_escape/ │ │ │ ├── __init__.py │ │ │ ├── client.py │ │ │ ├── client_modules.py │ │ │ ├── communication/ │ │ │ │ ├── __init__.py │ │ │ │ ├── bytestream.py │ │ │ │ ├── channel.py │ │ │ │ ├── socket_bytestream.py │ │ │ │ └── utils.py │ │ │ ├── configurations/ │ │ │ │ ├── emulate_test_lib/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── overrides.py │ │ │ │ │ └── server_mappings.py │ │ │ │ └── test_lib_impl/ │ │ │ │ ├── __init__.py │ │ │ │ └── test_lib.py │ │ │ ├── consts.py │ │ │ ├── data_transferer.py │ │ │ ├── exception_transferer.py │ │ │ ├── override_decorators.py │ │ │ ├── server.py │ │ │ ├── stub.py │ │ │ └── utils.py │ │ ├── environment_decorator.py │ │ ├── events_decorator.py │ │ ├── exit_hook/ │ │ │ ├── __init__.py │ │ │ ├── exit_hook_decorator.py │ │ │ └── exit_hook_script.py │ │ ├── frameworks/ │ │ │ ├── __init__.py │ │ │ └── pytorch.py │ │ ├── gcp/ │ │ │ ├── __init__.py │ │ │ ├── gcp_secret_manager_secrets_provider.py │ │ │ ├── gs_exceptions.py │ │ │ ├── gs_storage_client_factory.py │ │ │ ├── gs_tail.py │ │ │ ├── gs_utils.py │ │ │ └── includefile_support.py │ │ ├── kubernetes/ │ │ │ ├── __init__.py │ │ │ ├── kube_utils.py │ │ │ ├── kubernetes.py │ │ │ ├── kubernetes_cli.py │ │ │ ├── kubernetes_client.py │ │ │ ├── kubernetes_decorator.py │ │ │ ├── kubernetes_job.py │ │ │ ├── kubernetes_jobsets.py │ │ │ ├── spot_metadata_cli.py │ │ │ └── spot_monitor_sidecar.py │ │ ├── logs_cli.py │ │ ├── metadata_providers/ │ │ │ ├── __init__.py │ │ │ ├── local.py │ │ │ ├── service.py │ │ │ └── spin.py │ │ ├── namespaced_events.py │ │ ├── package_cli.py │ │ ├── parallel_decorator.py │ │ ├── parsers.py │ │ ├── project_decorator.py │ │ ├── pypi/ │ │ │ ├── __init__.py │ │ │ ├── bootstrap.py │ │ │ ├── conda_decorator.py │ │ │ ├── conda_environment.py │ │ │ ├── micromamba.py │ │ │ ├── parsers.py │ │ │ ├── pip.py │ │ │ ├── pip_patcher/ │ │ │ │ ├── __init__.py │ │ │ │ └── sitecustomize.py │ │ │ ├── pypi_decorator.py │ │ │ ├── pypi_environment.py │ │ │ └── utils.py │ │ ├── resources_decorator.py │ │ ├── retry_decorator.py │ │ ├── secrets/ │ │ │ ├── __init__.py │ │ │ ├── inline_secrets_provider.py │ │ │ ├── secrets_decorator.py │ │ │ ├── secrets_func.py │ │ │ ├── secrets_spec.py │ │ │ └── utils.py │ │ ├── storage_executor.py │ │ ├── tag_cli.py │ │ ├── test_unbounded_foreach_decorator.py │ │ ├── timeout_decorator.py │ │ └── uv/ │ │ ├── __init__.py │ │ ├── bootstrap.py │ │ └── uv_environment.py │ ├── procpoll.py │ ├── py.typed │ ├── pylint_wrapper.py │ ├── runner/ │ │ ├── __init__.py │ │ ├── click_api.py │ │ ├── deployer.py │ │ ├── deployer_impl.py │ │ ├── metaflow_runner.py │ │ ├── nbdeploy.py │ │ ├── nbrun.py │ │ ├── subprocess_manager.py │ │ └── utils.py │ ├── runtime.py │ ├── sidecar/ │ │ ├── __init__.py │ │ ├── sidecar.py │ │ ├── sidecar_messages.py │ │ ├── sidecar_subprocess.py │ │ └── sidecar_worker.py │ ├── system/ │ │ ├── __init__.py │ │ ├── system_logger.py │ │ ├── system_monitor.py │ │ └── system_utils.py │ ├── tagging_util.py │ ├── task.py │ ├── tracing/ │ │ ├── __init__.py │ │ ├── propagator.py │ │ ├── span_exporter.py │ │ └── tracing_modules.py │ ├── tuple_util.py │ ├── tutorials/ │ │ ├── 00-helloworld/ │ │ │ ├── README.md │ │ │ └── helloworld.py │ │ ├── 01-playlist/ │ │ │ ├── README.md │ │ │ ├── movies.csv │ │ │ ├── playlist.ipynb │ │ │ └── playlist.py │ │ ├── 02-statistics/ │ │ │ ├── README.md │ │ │ ├── movies.csv │ │ │ ├── stats.ipynb │ │ │ └── stats.py │ │ ├── 03-playlist-redux/ │ │ │ ├── README.md │ │ │ └── playlist.py │ │ ├── 04-playlist-plus/ │ │ │ ├── README.md │ │ │ └── playlist.py │ │ ├── 05-hello-cloud/ │ │ │ ├── README.md │ │ │ ├── hello-cloud.ipynb │ │ │ └── hello-cloud.py │ │ ├── 06-statistics-redux/ │ │ │ ├── README.md │ │ │ └── stats.ipynb │ │ ├── 07-worldview/ │ │ │ ├── README.md │ │ │ └── worldview.ipynb │ │ └── 08-autopilot/ │ │ ├── README.md │ │ └── autopilot.ipynb │ ├── unbounded_foreach.py │ ├── user_configs/ │ │ ├── __init__.py │ │ ├── config_options.py │ │ └── config_parameters.py │ ├── user_decorators/ │ │ ├── __init__.py │ │ ├── common.py │ │ ├── mutable_flow.py │ │ ├── mutable_step.py │ │ ├── user_flow_decorator.py │ │ └── user_step_decorator.py │ ├── util.py │ ├── vendor.py │ └── version.py ├── metaflow-complete.sh ├── setup.cfg ├── setup.py ├── stubs/ │ ├── MANIFEST.in │ ├── README.md │ ├── setup.py │ └── test/ │ ├── setup.cfg │ └── test_stubs.yml ├── test/ │ ├── README.md │ ├── cmd/ │ │ ├── develop/ │ │ │ └── test_stub_generator.py │ │ └── diff/ │ │ └── test_metaflow_diff.py │ ├── core/ │ │ ├── contexts.json │ │ ├── graphs/ │ │ │ ├── branch.json │ │ │ ├── branch_in_switch.json │ │ │ ├── foreach.json │ │ │ ├── foreach_in_switch.json │ │ │ ├── linear.json │ │ │ ├── nested_branches.json │ │ │ ├── nested_foreach.json │ │ │ ├── parallel.json │ │ │ ├── recursive_switch.json │ │ │ ├── recursive_switch_inside_foreach.json │ │ │ ├── small_foreach.json │ │ │ ├── switch_basic.json │ │ │ ├── switch_in_branch.json │ │ │ ├── switch_in_foreach.json │ │ │ └── switch_nested.json │ │ ├── metaflow_extensions/ │ │ │ └── test_org/ │ │ │ ├── config/ │ │ │ │ └── mfextinit_test_org.py │ │ │ ├── exceptions/ │ │ │ │ └── mfextinit_test_org.py │ │ │ ├── plugins/ │ │ │ │ ├── cards/ │ │ │ │ │ ├── brokencard/ │ │ │ │ │ │ └── __init__.py │ │ │ │ │ └── simplecard/ │ │ │ │ │ └── __init__.py │ │ │ │ ├── flow_options.py │ │ │ │ ├── frameworks/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── pytorch.py │ │ │ │ ├── mfextinit_test_org.py │ │ │ │ ├── nondecoplugin/ │ │ │ │ │ └── __init__.py │ │ │ │ └── test_step_decorator.py │ │ │ └── toplevel/ │ │ │ ├── mfextinit_test_org.py │ │ │ └── test_org_toplevel.py │ │ ├── metaflow_test/ │ │ │ ├── __init__.py │ │ │ ├── cli_check.py │ │ │ ├── formatter.py │ │ │ └── metadata_check.py │ │ ├── run_tests.py │ │ └── tests/ │ │ ├── basic_artifact.py │ │ ├── basic_config_parameters.py │ │ ├── basic_config_silly.txt │ │ ├── basic_foreach.py │ │ ├── basic_include.py │ │ ├── basic_log.py │ │ ├── basic_parallel.py │ │ ├── basic_parameters.py │ │ ├── basic_tags.py │ │ ├── basic_unbounded_foreach.py │ │ ├── branch_in_switch.py │ │ ├── card_component_refresh_test.py │ │ ├── card_default_editable.py │ │ ├── card_default_editable_customize.py │ │ ├── card_default_editable_with_id.py │ │ ├── card_error.py │ │ ├── card_extension_test.py │ │ ├── card_id_append.py │ │ ├── card_import.py │ │ ├── card_multiple.py │ │ ├── card_refresh_test.py │ │ ├── card_resume.py │ │ ├── card_simple.py │ │ ├── card_timeout.py │ │ ├── catch_retry.py │ │ ├── constants.py │ │ ├── current_singleton.py │ │ ├── custom_decorators.py │ │ ├── detect_segfault.py │ │ ├── dynamic_parameters.py │ │ ├── extensions.py │ │ ├── flow_options.py │ │ ├── foreach_in_switch.py │ │ ├── large_artifact.py │ │ ├── large_mflog.py │ │ ├── lineage.py │ │ ├── merge_artifacts.py │ │ ├── merge_artifacts_include.py │ │ ├── merge_artifacts_propagation.py │ │ ├── nested_foreach.py │ │ ├── nested_unbounded_foreach.py │ │ ├── param_names.py │ │ ├── project_branch.py │ │ ├── project_production.py │ │ ├── recursive_switch.py │ │ ├── recursive_switch_inside_foreach.py │ │ ├── resume_end_step.py │ │ ├── resume_foreach_inner.py │ │ ├── resume_foreach_join.py │ │ ├── resume_foreach_split.py │ │ ├── resume_originpath.py │ │ ├── resume_recursive_switch.py │ │ ├── resume_recursive_switch_inside_foreach.py │ │ ├── resume_start_step.py │ │ ├── resume_succeeded_step.py │ │ ├── resume_ubf_basic_foreach.py │ │ ├── resume_ubf_foreach_join.py │ │ ├── run_id_file.py │ │ ├── runtime_dag.py │ │ ├── s3_failure.py │ │ ├── secrets_decorator.py │ │ ├── switch_basic.py │ │ ├── switch_in_branch.py │ │ ├── switch_in_foreach.py │ │ ├── switch_nested.py │ │ ├── tag_catch.py │ │ ├── tag_mutation.py │ │ ├── task_exception.py │ │ ├── timeout_decorator.py │ │ └── wide_foreach.py │ ├── data/ │ │ ├── __init__.py │ │ └── s3/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── s3_data.py │ │ ├── test_s3.py │ │ └── test_s3op.py │ ├── env_escape/ │ │ └── example.py │ ├── extensions/ │ │ ├── README.md │ │ ├── install_packages.sh │ │ └── packages/ │ │ ├── card_via_extinit/ │ │ │ ├── README.md │ │ │ ├── metaflow_extensions/ │ │ │ │ └── card_via_extinit/ │ │ │ │ └── plugins/ │ │ │ │ └── cards/ │ │ │ │ ├── card_a/ │ │ │ │ │ └── __init__.py │ │ │ │ ├── card_b/ │ │ │ │ │ └── __init__.py │ │ │ │ └── mfextinit_X.py │ │ │ └── setup.py │ │ ├── card_via_init/ │ │ │ ├── README.md │ │ │ ├── metaflow_extensions/ │ │ │ │ └── card_via_init/ │ │ │ │ └── plugins/ │ │ │ │ └── cards/ │ │ │ │ └── __init__.py │ │ │ └── setup.py │ │ └── card_via_ns_subpackage/ │ │ ├── README.md │ │ ├── metaflow_extensions/ │ │ │ └── card_via_ns_subpackage/ │ │ │ └── plugins/ │ │ │ └── cards/ │ │ │ └── nssubpackage/ │ │ │ └── __init__.py │ │ └── setup.py │ ├── parallel/ │ │ ├── parallel_test_flow.py │ │ └── pytorch_parallel_test_flow.py │ ├── test_config/ │ │ ├── basic_config_silly.txt │ │ ├── card_config.py │ │ ├── config2.json │ │ ├── config_card.py │ │ ├── config_corner_cases.py │ │ ├── config_parser.py │ │ ├── config_parser_requirements.txt │ │ ├── config_simple.json │ │ ├── config_simple.py │ │ ├── config_simple2.py │ │ ├── helloconfig.py │ │ ├── hellodecos.py │ │ ├── hellodecos_base.py │ │ ├── mutable_flow.py │ │ ├── no_default.py │ │ ├── photo_config.json │ │ ├── runner_flow.py │ │ └── test.py │ ├── test_included_modules/ │ │ ├── __init__.py │ │ └── my_decorators.py │ └── unit/ │ ├── configs/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── flows/ │ │ │ ├── __init__.py │ │ │ ├── config_naming_flow.py │ │ │ └── config_plain_flow.py │ │ ├── test_config_naming.py │ │ └── test_config_plain.py │ ├── inheritance/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── flows/ │ │ │ ├── __init__.py │ │ │ ├── comprehensive_diamond_base.py │ │ │ ├── comprehensive_diamond_flow.py │ │ │ ├── comprehensive_linear_base.py │ │ │ ├── comprehensive_linear_flow.py │ │ │ ├── comprehensive_multi_hierarchy_base.py │ │ │ ├── comprehensive_multi_hierarchy_flow.py │ │ │ ├── mutator_with_base_config_base.py │ │ │ ├── mutator_with_base_config_flow.py │ │ │ ├── mutator_with_derived_config_base.py │ │ │ └── mutator_with_derived_config_flow.py │ │ └── test_inheritance.py │ ├── spin/ │ │ ├── artifacts/ │ │ │ ├── complex_dag_step_a.py │ │ │ └── complex_dag_step_d.py │ │ ├── conftest.py │ │ ├── flows/ │ │ │ ├── complex_dag_flow.py │ │ │ ├── hello_spin_flow.py │ │ │ ├── merge_artifacts_flow.py │ │ │ ├── myconfig.json │ │ │ ├── simple_card_flow.py │ │ │ ├── simple_config_flow.py │ │ │ └── simple_parameter_flow.py │ │ ├── spin_test_helpers.py │ │ └── test_spin.py │ ├── test_argo_workflows_cli.py │ ├── test_aws_util.py │ ├── test_compute_resource_attributes.py │ ├── test_conda_decorator.py │ ├── test_config_value.py │ ├── test_kubernetes.py │ ├── test_local_metadata_provider.py │ ├── test_multicore_utils.py │ ├── test_packaging_utils.py │ ├── test_pypi_decorator.py │ ├── test_pypi_parsers.py │ ├── test_s3_storage.py │ ├── test_secrets_decorator.py │ └── test_tutorial_01_02_csv_parsing.py ├── test_runner └── tox.ini