ob-metaflow-stubs 6.0.4.7__py2.py3-none-any.whl → 6.0.4.8rc1__py2.py3-none-any.whl
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-stubs/__init__.pyi +984 -978
- metaflow-stubs/cards.pyi +2 -2
- metaflow-stubs/cli.pyi +3 -2
- metaflow-stubs/cli_components/__init__.pyi +2 -2
- metaflow-stubs/cli_components/utils.pyi +2 -2
- metaflow-stubs/client/__init__.pyi +2 -2
- metaflow-stubs/client/core.pyi +7 -8
- metaflow-stubs/client/filecache.pyi +2 -2
- metaflow-stubs/events.pyi +2 -2
- metaflow-stubs/exception.pyi +2 -2
- metaflow-stubs/flowspec.pyi +10 -10
- metaflow-stubs/generated_for.txt +1 -1
- metaflow-stubs/includefile.pyi +4 -4
- metaflow-stubs/{info_file.pyi → meta_files.pyi} +2 -6
- metaflow-stubs/metadata_provider/__init__.pyi +2 -2
- metaflow-stubs/metadata_provider/heartbeat.pyi +2 -2
- metaflow-stubs/metadata_provider/metadata.pyi +3 -3
- metaflow-stubs/metadata_provider/util.pyi +2 -2
- metaflow-stubs/metaflow_config.pyi +6 -2
- metaflow-stubs/metaflow_current.pyi +46 -46
- metaflow-stubs/metaflow_git.pyi +2 -2
- metaflow-stubs/mf_extensions/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/card_utils/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/card_utils/async_cards.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/card_utils/deco_injection_mixin.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/card_utils/extra_components.pyi +4 -4
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/cards/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/cards/checkpoint_lister.pyi +3 -3
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/cards/lineage_card.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/checkpoint_storage.pyi +4 -4
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/constructors.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/core.pyi +4 -4
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/decorator.pyi +5 -5
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/exceptions.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/final_api.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/lineage.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/datastore/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/datastore/context.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/datastore/core.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/datastore/decorator.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/datastore/exceptions.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/datastore/task_utils.pyi +3 -3
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/datastore/utils.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/datastructures.pyi +3 -3
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/exceptions.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/hf_hub/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/hf_hub/decorator.pyi +3 -3
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/modeling_utils/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/modeling_utils/core.pyi +4 -4
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/modeling_utils/exceptions.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/modeling_utils/model_storage.pyi +4 -4
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/flowspec_utils.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/general.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/identity_utils.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/serialization_handler/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/serialization_handler/base.pyi +2 -2
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/serialization_handler/tar.pyi +3 -3
- metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/tar_utils.pyi +3 -3
- metaflow-stubs/mf_extensions/outerbounds/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/_state_machine.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/_vendor/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/_vendor/spinner/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/_vendor/spinner/spinners.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/app_cli.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/app_config.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/capsule.pyi +4 -4
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/click_importer.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/code_package/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/code_package/code_packager.pyi +3 -3
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/config/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/config/cli_generator.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/config/config_utils.pyi +4 -4
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/config/schema_export.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/config/typed_configs.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/config/unified_config.pyi +3 -3
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/dependencies.pyi +3 -3
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/deployer.pyi +5 -5
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/experimental/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/perimeters.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/apps/core/utils.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/aws/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/aws/assume_role_decorator.pyi +12 -8
- metaflow-stubs/mf_extensions/outerbounds/plugins/card_utilities/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/card_utilities/async_cards.pyi +3 -3
- metaflow-stubs/mf_extensions/outerbounds/plugins/card_utilities/injector.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/checkpoint_datastores/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/checkpoint_datastores/coreweave.pyi +13 -8
- metaflow-stubs/mf_extensions/outerbounds/plugins/checkpoint_datastores/nebius.pyi +11 -8
- metaflow-stubs/mf_extensions/outerbounds/plugins/fast_bakery/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/fast_bakery/baker.pyi +3 -3
- metaflow-stubs/mf_extensions/outerbounds/plugins/fast_bakery/docker_environment.pyi +3 -3
- metaflow-stubs/mf_extensions/outerbounds/plugins/fast_bakery/fast_bakery.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/kubernetes/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/kubernetes/pod_killer.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/ollama/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/ollama/constants.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/ollama/exceptions.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/ollama/ollama.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/ollama/status_card.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/snowflake/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/plugins/snowflake/snowflake.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/profilers/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/profilers/gpu.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/remote_config.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/toplevel/__init__.pyi +2 -2
- metaflow-stubs/mf_extensions/outerbounds/toplevel/global_aliases_for_metaflow_package.pyi +2 -2
- metaflow-stubs/multicore_utils.pyi +2 -2
- metaflow-stubs/ob_internal.pyi +2 -2
- metaflow-stubs/packaging_sys/__init__.pyi +430 -0
- metaflow-stubs/packaging_sys/backend.pyi +73 -0
- metaflow-stubs/packaging_sys/distribution_support.pyi +57 -0
- metaflow-stubs/packaging_sys/tar_backend.pyi +53 -0
- metaflow-stubs/packaging_sys/utils.pyi +26 -0
- metaflow-stubs/packaging_sys/v1.pyi +145 -0
- metaflow-stubs/parameters.pyi +4 -4
- metaflow-stubs/plugins/__init__.pyi +11 -11
- metaflow-stubs/plugins/airflow/__init__.pyi +2 -2
- metaflow-stubs/plugins/airflow/airflow_utils.pyi +2 -2
- metaflow-stubs/plugins/airflow/exception.pyi +2 -2
- metaflow-stubs/plugins/airflow/sensors/__init__.pyi +2 -2
- metaflow-stubs/plugins/airflow/sensors/base_sensor.pyi +2 -2
- metaflow-stubs/plugins/airflow/sensors/external_task_sensor.pyi +2 -2
- metaflow-stubs/plugins/airflow/sensors/s3_sensor.pyi +2 -2
- metaflow-stubs/plugins/argo/__init__.pyi +2 -2
- metaflow-stubs/plugins/argo/argo_client.pyi +2 -2
- metaflow-stubs/plugins/argo/argo_events.pyi +2 -2
- metaflow-stubs/plugins/argo/argo_workflows.pyi +4 -4
- metaflow-stubs/plugins/argo/argo_workflows_decorator.pyi +2 -2
- metaflow-stubs/plugins/argo/argo_workflows_deployer.pyi +3 -3
- metaflow-stubs/plugins/argo/argo_workflows_deployer_objects.pyi +3 -3
- metaflow-stubs/plugins/argo/exit_hooks.pyi +3 -3
- metaflow-stubs/plugins/aws/__init__.pyi +2 -2
- metaflow-stubs/plugins/aws/aws_client.pyi +2 -2
- metaflow-stubs/plugins/aws/aws_utils.pyi +2 -2
- metaflow-stubs/plugins/aws/batch/__init__.pyi +2 -2
- metaflow-stubs/plugins/aws/batch/batch.pyi +4 -4
- metaflow-stubs/plugins/aws/batch/batch_client.pyi +2 -2
- metaflow-stubs/plugins/aws/batch/batch_decorator.pyi +4 -2
- metaflow-stubs/plugins/aws/secrets_manager/__init__.pyi +2 -2
- metaflow-stubs/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.pyi +3 -3
- metaflow-stubs/plugins/aws/step_functions/__init__.pyi +2 -2
- metaflow-stubs/plugins/aws/step_functions/event_bridge_client.pyi +2 -2
- metaflow-stubs/plugins/aws/step_functions/schedule_decorator.pyi +2 -2
- metaflow-stubs/plugins/aws/step_functions/step_functions.pyi +3 -3
- metaflow-stubs/plugins/aws/step_functions/step_functions_client.pyi +2 -2
- metaflow-stubs/plugins/aws/step_functions/step_functions_deployer.pyi +4 -4
- metaflow-stubs/plugins/aws/step_functions/step_functions_deployer_objects.pyi +3 -3
- metaflow-stubs/plugins/azure/__init__.pyi +2 -2
- metaflow-stubs/plugins/azure/azure_credential.pyi +2 -2
- metaflow-stubs/plugins/azure/azure_exceptions.pyi +2 -2
- metaflow-stubs/plugins/azure/azure_secret_manager_secrets_provider.pyi +3 -3
- metaflow-stubs/plugins/azure/azure_utils.pyi +2 -2
- metaflow-stubs/plugins/azure/blob_service_client_factory.pyi +2 -2
- metaflow-stubs/plugins/azure/includefile_support.pyi +2 -2
- metaflow-stubs/plugins/cards/__init__.pyi +2 -2
- metaflow-stubs/plugins/cards/card_client.pyi +2 -2
- metaflow-stubs/plugins/cards/card_creator.pyi +2 -2
- metaflow-stubs/plugins/cards/card_datastore.pyi +2 -2
- metaflow-stubs/plugins/cards/card_decorator.pyi +3 -5
- metaflow-stubs/plugins/cards/card_modules/__init__.pyi +2 -2
- metaflow-stubs/plugins/cards/card_modules/basic.pyi +3 -3
- metaflow-stubs/plugins/cards/card_modules/card.pyi +2 -2
- metaflow-stubs/plugins/cards/card_modules/components.pyi +4 -4
- metaflow-stubs/plugins/cards/card_modules/convert_to_native_type.pyi +2 -2
- metaflow-stubs/plugins/cards/card_modules/renderer_tools.pyi +2 -2
- metaflow-stubs/plugins/cards/card_modules/test_cards.pyi +2 -2
- metaflow-stubs/plugins/cards/card_resolver.pyi +2 -2
- metaflow-stubs/plugins/cards/component_serializer.pyi +2 -2
- metaflow-stubs/plugins/cards/exception.pyi +2 -2
- metaflow-stubs/plugins/catch_decorator.pyi +2 -2
- metaflow-stubs/plugins/datatools/__init__.pyi +2 -2
- metaflow-stubs/plugins/datatools/local.pyi +2 -2
- metaflow-stubs/plugins/datatools/s3/__init__.pyi +2 -2
- metaflow-stubs/plugins/datatools/s3/s3.pyi +4 -4
- metaflow-stubs/plugins/datatools/s3/s3tail.pyi +2 -2
- metaflow-stubs/plugins/datatools/s3/s3util.pyi +2 -2
- metaflow-stubs/plugins/debug_logger.pyi +2 -2
- metaflow-stubs/plugins/debug_monitor.pyi +2 -2
- metaflow-stubs/plugins/environment_decorator.pyi +2 -2
- metaflow-stubs/plugins/events_decorator.pyi +2 -2
- metaflow-stubs/plugins/exit_hook/__init__.pyi +2 -2
- metaflow-stubs/plugins/exit_hook/exit_hook_decorator.pyi +2 -2
- metaflow-stubs/plugins/frameworks/__init__.pyi +2 -2
- metaflow-stubs/plugins/frameworks/pytorch.pyi +2 -2
- metaflow-stubs/plugins/gcp/__init__.pyi +2 -2
- metaflow-stubs/plugins/gcp/gcp_secret_manager_secrets_provider.pyi +3 -3
- metaflow-stubs/plugins/gcp/gs_exceptions.pyi +2 -2
- metaflow-stubs/plugins/gcp/gs_storage_client_factory.pyi +2 -2
- metaflow-stubs/plugins/gcp/gs_utils.pyi +2 -2
- metaflow-stubs/plugins/gcp/includefile_support.pyi +2 -2
- metaflow-stubs/plugins/kubernetes/__init__.pyi +2 -2
- metaflow-stubs/plugins/kubernetes/kube_utils.pyi +3 -3
- metaflow-stubs/plugins/kubernetes/kubernetes.pyi +4 -4
- metaflow-stubs/plugins/kubernetes/kubernetes_client.pyi +2 -2
- metaflow-stubs/plugins/kubernetes/kubernetes_decorator.pyi +5 -3
- metaflow-stubs/plugins/kubernetes/kubernetes_jobsets.pyi +2 -2
- metaflow-stubs/plugins/kubernetes/spot_monitor_sidecar.pyi +2 -2
- metaflow-stubs/plugins/ollama/__init__.pyi +2 -2
- metaflow-stubs/plugins/parallel_decorator.pyi +3 -3
- metaflow-stubs/plugins/perimeters.pyi +2 -2
- metaflow-stubs/plugins/project_decorator.pyi +2 -2
- metaflow-stubs/plugins/pypi/__init__.pyi +2 -2
- metaflow-stubs/plugins/pypi/conda_decorator.pyi +5 -8
- metaflow-stubs/plugins/pypi/conda_environment.pyi +4 -3
- metaflow-stubs/plugins/pypi/parsers.pyi +2 -2
- metaflow-stubs/plugins/pypi/pypi_decorator.pyi +4 -4
- metaflow-stubs/plugins/pypi/pypi_environment.pyi +2 -2
- metaflow-stubs/plugins/pypi/utils.pyi +2 -2
- metaflow-stubs/plugins/resources_decorator.pyi +2 -2
- metaflow-stubs/plugins/retry_decorator.pyi +2 -2
- metaflow-stubs/plugins/secrets/__init__.pyi +2 -2
- metaflow-stubs/plugins/secrets/inline_secrets_provider.pyi +3 -3
- metaflow-stubs/plugins/secrets/secrets_decorator.pyi +2 -2
- metaflow-stubs/plugins/secrets/secrets_func.pyi +2 -2
- metaflow-stubs/plugins/secrets/secrets_spec.pyi +2 -2
- metaflow-stubs/plugins/secrets/utils.pyi +2 -2
- metaflow-stubs/plugins/snowflake/__init__.pyi +2 -2
- metaflow-stubs/plugins/storage_executor.pyi +2 -2
- metaflow-stubs/plugins/test_unbounded_foreach_decorator.pyi +4 -4
- metaflow-stubs/plugins/timeout_decorator.pyi +2 -2
- metaflow-stubs/plugins/torchtune/__init__.pyi +2 -2
- metaflow-stubs/plugins/uv/__init__.pyi +2 -2
- metaflow-stubs/plugins/uv/uv_environment.pyi +3 -2
- metaflow-stubs/profilers/__init__.pyi +2 -2
- metaflow-stubs/pylint_wrapper.pyi +2 -2
- metaflow-stubs/runner/__init__.pyi +2 -2
- metaflow-stubs/runner/deployer.pyi +7 -7
- metaflow-stubs/runner/deployer_impl.pyi +3 -3
- metaflow-stubs/runner/metaflow_runner.pyi +4 -4
- metaflow-stubs/runner/nbdeploy.pyi +2 -2
- metaflow-stubs/runner/nbrun.pyi +2 -2
- metaflow-stubs/runner/subprocess_manager.pyi +3 -2
- metaflow-stubs/runner/utils.pyi +3 -3
- metaflow-stubs/system/__init__.pyi +2 -2
- metaflow-stubs/system/system_logger.pyi +3 -3
- metaflow-stubs/system/system_monitor.pyi +2 -2
- metaflow-stubs/tagging_util.pyi +2 -2
- metaflow-stubs/tuple_util.pyi +2 -2
- metaflow-stubs/user_configs/__init__.pyi +2 -3
- metaflow-stubs/user_configs/config_options.pyi +4 -5
- metaflow-stubs/user_configs/config_parameters.pyi +6 -8
- metaflow-stubs/user_decorators/__init__.pyi +15 -0
- metaflow-stubs/user_decorators/common.pyi +38 -0
- metaflow-stubs/user_decorators/mutable_flow.pyi +223 -0
- metaflow-stubs/user_decorators/mutable_step.pyi +152 -0
- metaflow-stubs/user_decorators/user_flow_decorator.pyi +137 -0
- metaflow-stubs/user_decorators/user_step_decorator.pyi +323 -0
- {ob_metaflow_stubs-6.0.4.7.dist-info → ob_metaflow_stubs-6.0.4.8rc1.dist-info}/METADATA +1 -1
- ob_metaflow_stubs-6.0.4.8rc1.dist-info/RECORD +260 -0
- metaflow-stubs/user_configs/config_decorators.pyi +0 -251
- ob_metaflow_stubs-6.0.4.7.dist-info/RECORD +0 -249
- {ob_metaflow_stubs-6.0.4.7.dist-info → ob_metaflow_stubs-6.0.4.8rc1.dist-info}/WHEEL +0 -0
- {ob_metaflow_stubs-6.0.4.7.dist-info → ob_metaflow_stubs-6.0.4.8rc1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,152 @@
|
|
1
|
+
######################################################################################################
|
2
|
+
# Auto-generated Metaflow stub file #
|
3
|
+
# MF version: 2.16.5.1+obcheckpoint(0.2.4);ob(v1) #
|
4
|
+
# Generated on 2025-07-28T18:04:46.419621 #
|
5
|
+
######################################################################################################
|
6
|
+
|
7
|
+
from __future__ import annotations
|
8
|
+
|
9
|
+
import typing
|
10
|
+
if typing.TYPE_CHECKING:
|
11
|
+
import functools
|
12
|
+
import typing
|
13
|
+
import metaflow.flowspec
|
14
|
+
import metaflow.user_decorators.user_step_decorator
|
15
|
+
import metaflow.decorators
|
16
|
+
import metaflow.user_decorator.mutable_flow
|
17
|
+
|
18
|
+
from ..exception import MetaflowException as MetaflowException
|
19
|
+
from .user_step_decorator import StepMutator as StepMutator
|
20
|
+
from .user_step_decorator import UserStepDecoratorBase as UserStepDecoratorBase
|
21
|
+
|
22
|
+
TYPE_CHECKING: bool
|
23
|
+
|
24
|
+
class MutableStep(object, metaclass=type):
|
25
|
+
def __init__(self, flow_spec: "metaflow.flowspec.FlowSpec", step: typing.Union[typing.Callable[["metaflow.decorators.FlowSpecDerived"], None], typing.Callable[["metaflow.decorators.FlowSpecDerived", typing.Any], None]], pre_mutate: bool = False, statically_defined: bool = False, inserted_by: typing.Optional[str] = None):
|
26
|
+
...
|
27
|
+
@property
|
28
|
+
def flow(self) -> "metaflow.user_decorator.mutable_flow.MutableFlow":
|
29
|
+
"""
|
30
|
+
The flow that contains this step
|
31
|
+
|
32
|
+
Returns
|
33
|
+
-------
|
34
|
+
MutableFlow
|
35
|
+
The flow that contains this step
|
36
|
+
"""
|
37
|
+
...
|
38
|
+
@property
|
39
|
+
def decorator_specs(self) -> typing.Generator[typing.Tuple[str, str, typing.List[typing.Any], typing.Dict[str, typing.Any]], None, None]:
|
40
|
+
"""
|
41
|
+
Iterate over all the decorator specifications of this step. Note that the same
|
42
|
+
type of decorator may be present multiple times and no order is guaranteed.
|
43
|
+
|
44
|
+
The returned tuple contains:
|
45
|
+
- The decorator's name (shortest possible)
|
46
|
+
- The decorator's fully qualified name (in the case of Metaflow decorators, this
|
47
|
+
will indicate which extension the decorator comes from)
|
48
|
+
- A list of positional arguments
|
49
|
+
- A dictionary of keyword arguments
|
50
|
+
|
51
|
+
You can use the resulting tuple to remove a decorator for example
|
52
|
+
|
53
|
+
Yields
|
54
|
+
------
|
55
|
+
str, str, List[Any], Dict[str, Any]
|
56
|
+
A tuple containing the decorator name, it's fully qualified name,
|
57
|
+
a list of positional arguments, and a dictionary of keyword arguments.
|
58
|
+
"""
|
59
|
+
...
|
60
|
+
def add_decorator(self, deco_type: typing.Union[functools.partial, metaflow.user_decorators.user_step_decorator.UserStepDecoratorBase, str], deco_args: typing.Optional[typing.List[typing.Any]] = None, deco_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = None, duplicates: int = 1):
|
61
|
+
"""
|
62
|
+
Add a Metaflow step-decorator or a user step-decorator to a step.
|
63
|
+
|
64
|
+
You can either add the decorator itself or its decorator specification for it
|
65
|
+
(the same you would get back from decorator_specs). You can also mix and match
|
66
|
+
but you cannot provide arguments both through the string and the
|
67
|
+
deco_args/deco_kwargs.
|
68
|
+
|
69
|
+
As an example:
|
70
|
+
```
|
71
|
+
from metaflow import environment
|
72
|
+
...
|
73
|
+
my_step.add_decorator(environment, deco_kwargs={"vars": {"foo": 42})}
|
74
|
+
```
|
75
|
+
|
76
|
+
is equivalent to:
|
77
|
+
```
|
78
|
+
my_step.add_decorator('environment:vars={"foo": 42}')
|
79
|
+
```
|
80
|
+
|
81
|
+
is equivalent to:
|
82
|
+
```
|
83
|
+
my_step.add_decorator('environment', deco_kwargs={"vars":{"foo": 42}})
|
84
|
+
```
|
85
|
+
|
86
|
+
but this is not allowed:
|
87
|
+
```
|
88
|
+
my_step.add_decorator('environment:vars={"bar" 43}', deco_kwargs={"vars":{"foo": 42}})
|
89
|
+
```
|
90
|
+
|
91
|
+
Note in the case where you specify a
|
92
|
+
string for the decorator, there is no need to import the decorator.
|
93
|
+
|
94
|
+
The string syntax is useful to, for example, allow decorators to be stored as
|
95
|
+
strings in a configuration file.
|
96
|
+
|
97
|
+
You can only add StepMutators in the pre_mutate stage.
|
98
|
+
|
99
|
+
In terms of precedence for decorators:
|
100
|
+
- if a decorator can be applied multiple times (like `@card`) all decorators
|
101
|
+
added are kept.
|
102
|
+
- if `duplicates` is set to `MutableStep.IGNORE`, then the decorator
|
103
|
+
being added is ignored (in other words, the existing decorator has precedence).
|
104
|
+
- if `duplicates` is set to `MutableStep.OVERRIDE`, then the *existing*
|
105
|
+
decorator is removed and this newly added one replaces it (in other
|
106
|
+
words, the newly added decorator has precedence).
|
107
|
+
- if `duplicates` is set to `MutableStep.ERROR`, then an error is raised but only
|
108
|
+
if the newly added decorator is *static* (ie: defined directly in the code).
|
109
|
+
If not, it is ignored.
|
110
|
+
|
111
|
+
Parameters
|
112
|
+
----------
|
113
|
+
deco_type : Union[partial, UserStepDecoratorBase, str]
|
114
|
+
The decorator class to add to this step.
|
115
|
+
deco_args : List[Any], optional, default None
|
116
|
+
Positional arguments to pass to the decorator.
|
117
|
+
deco_kwargs : Dict[str, Any], optional, default None
|
118
|
+
Keyword arguments to pass to the decorator.
|
119
|
+
duplicates : int, default MutableStep.IGNORE
|
120
|
+
Instruction on how to handle duplicates. It can be one of:
|
121
|
+
- `MutableStep.IGNORE`: Ignore the decorator if it already exists.
|
122
|
+
- `MutableStep.ERROR`: Raise an error if the decorator already exists.
|
123
|
+
- `MutableStep.OVERRIDE`: Remove the existing decorator and add this one.
|
124
|
+
"""
|
125
|
+
...
|
126
|
+
def remove_decorator(self, deco_name: str, deco_args: typing.Optional[typing.List[typing.Any]] = None, deco_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = None) -> bool:
|
127
|
+
"""
|
128
|
+
Remove a step-level decorator. To remove a decorator, you can pass the decorator
|
129
|
+
specification (obtained from `decorator_specs` for example).
|
130
|
+
Note that if multiple decorators share the same decorator specification
|
131
|
+
(very rare), they will all be removed.
|
132
|
+
|
133
|
+
You can only remove StepMutators in the `pre_mutate` method.
|
134
|
+
|
135
|
+
Parameters
|
136
|
+
----------
|
137
|
+
deco_name : str
|
138
|
+
Decorator specification of the decorator to remove. If nothing else is
|
139
|
+
specified, all decorators matching that name will be removed.
|
140
|
+
deco_args : List[Any], optional, default None
|
141
|
+
Positional arguments to match the decorator specification.
|
142
|
+
deco_kwargs : Dict[str, Any], optional, default None
|
143
|
+
Keyword arguments to match the decorator specification.
|
144
|
+
|
145
|
+
Returns
|
146
|
+
-------
|
147
|
+
bool
|
148
|
+
Returns True if a decorator was removed.
|
149
|
+
"""
|
150
|
+
...
|
151
|
+
...
|
152
|
+
|
@@ -0,0 +1,137 @@
|
|
1
|
+
######################################################################################################
|
2
|
+
# Auto-generated Metaflow stub file #
|
3
|
+
# MF version: 2.16.5.1+obcheckpoint(0.2.4);ob(v1) #
|
4
|
+
# Generated on 2025-07-28T18:04:46.391409 #
|
5
|
+
######################################################################################################
|
6
|
+
|
7
|
+
from __future__ import annotations
|
8
|
+
|
9
|
+
import metaflow
|
10
|
+
import typing
|
11
|
+
if typing.TYPE_CHECKING:
|
12
|
+
import metaflow.flowspec
|
13
|
+
import metaflow.user_decorators.mutable_flow
|
14
|
+
import metaflow.user_decorators.user_flow_decorator
|
15
|
+
import metaflow.decorators
|
16
|
+
|
17
|
+
from ..exception import MetaflowException as MetaflowException
|
18
|
+
from ..user_configs.config_parameters import resolve_delayed_evaluator as resolve_delayed_evaluator
|
19
|
+
from ..user_configs.config_parameters import unpack_delayed_evaluator as unpack_delayed_evaluator
|
20
|
+
from .common import ClassPath_Trie as ClassPath_Trie
|
21
|
+
|
22
|
+
TYPE_CHECKING: bool
|
23
|
+
|
24
|
+
class FlowMutatorMeta(type, metaclass=type):
|
25
|
+
@staticmethod
|
26
|
+
def __new__(mcs, name, bases, namespace):
|
27
|
+
...
|
28
|
+
@classmethod
|
29
|
+
def all_decorators(mcs) -> typing.Dict[str, "FlowMutatorMeta"]:
|
30
|
+
...
|
31
|
+
def __str__(cls):
|
32
|
+
...
|
33
|
+
@classmethod
|
34
|
+
def get_decorator_by_name(mcs, decorator_name: str) -> typing.Union["FlowDecoratorMeta", "metaflow.decorators.Decorator", None]:
|
35
|
+
"""
|
36
|
+
Get a decorator by its name.
|
37
|
+
|
38
|
+
Parameters
|
39
|
+
----------
|
40
|
+
decorator_name: str
|
41
|
+
The name of the decorator to retrieve.
|
42
|
+
|
43
|
+
Returns
|
44
|
+
-------
|
45
|
+
Optional[FlowDecoratorMeta]
|
46
|
+
The decorator class if found, None otherwise.
|
47
|
+
"""
|
48
|
+
...
|
49
|
+
@classmethod
|
50
|
+
def get_decorator_name(mcs, decorator_type: type) -> typing.Optional[str]:
|
51
|
+
"""
|
52
|
+
Get the minimally unique classpath name for a decorator type.
|
53
|
+
|
54
|
+
Parameters
|
55
|
+
----------
|
56
|
+
decorator_type: type
|
57
|
+
The type of the decorator to retrieve the name for.
|
58
|
+
|
59
|
+
Returns
|
60
|
+
-------
|
61
|
+
Optional[str]
|
62
|
+
The minimally unique classpath name if found, None otherwise.
|
63
|
+
"""
|
64
|
+
...
|
65
|
+
...
|
66
|
+
|
67
|
+
class FlowMutator(object, metaclass=FlowMutatorMeta):
|
68
|
+
"""
|
69
|
+
Derive from this class to implement a flow mutator.
|
70
|
+
|
71
|
+
A flow mutator allows you to introspect a flow and its included steps. You can
|
72
|
+
then add parameters, configurations and decorators to the flow as well as modify
|
73
|
+
any of its steps.
|
74
|
+
use values available through configurations to determine how to mutate the flow.
|
75
|
+
|
76
|
+
There are two main methods provided:
|
77
|
+
- pre_mutate: called as early as possible right after configuration values are read.
|
78
|
+
- mutate: called right after all the command line is parsed but before any
|
79
|
+
Metaflow decorators are applied.
|
80
|
+
|
81
|
+
The `mutate` method does not allow you to modify the flow itself but you can still
|
82
|
+
modify the steps.
|
83
|
+
"""
|
84
|
+
def __init__(self, *args, **kwargs):
|
85
|
+
...
|
86
|
+
def __mro_entries__(self, bases):
|
87
|
+
...
|
88
|
+
def __call__(self, flow_spec: typing.Optional["metaflow.flowspec.FlowSpecMeta"] = None) -> "metaflow.flowspec.FlowSpecMeta":
|
89
|
+
...
|
90
|
+
def __str__(self):
|
91
|
+
...
|
92
|
+
def init(self, *args, **kwargs):
|
93
|
+
"""
|
94
|
+
Implement this method if you wish for your FlowMutator to take in arguments.
|
95
|
+
|
96
|
+
Your flow-mutator can then look like:
|
97
|
+
|
98
|
+
@MyMutator(arg1, arg2)
|
99
|
+
class MyFlow(FlowSpec):
|
100
|
+
pass
|
101
|
+
|
102
|
+
It is an error to use your mutator with arguments but not implement this method.
|
103
|
+
"""
|
104
|
+
...
|
105
|
+
def external_init(self):
|
106
|
+
...
|
107
|
+
def pre_mutate(self, mutable_flow: "metaflow.user_decorators.mutable_flow.MutableFlow"):
|
108
|
+
"""
|
109
|
+
Method called right after all configuration values are read.
|
110
|
+
|
111
|
+
Parameters
|
112
|
+
----------
|
113
|
+
mutable_flow : metaflow.user_decorators.mutable_flow.MutableFlow
|
114
|
+
A representation of this flow
|
115
|
+
"""
|
116
|
+
...
|
117
|
+
def mutate(self, mutable_flow: "metaflow.user_decorators.mutable_flow.MutableFlow"):
|
118
|
+
"""
|
119
|
+
Method called right before the first Metaflow step decorator is applied. This
|
120
|
+
means that the command line, including all `--with` options has been parsed.
|
121
|
+
|
122
|
+
Given how late this function is called, there are a few restrictions on what
|
123
|
+
you can do; the following methods on MutableFlow are not allowed and calling
|
124
|
+
them will result in an error:
|
125
|
+
- add_parameter/remove_parameter
|
126
|
+
- add_decorator/remove_decorator
|
127
|
+
|
128
|
+
To call these methods, use the `pre_mutate` method instead.
|
129
|
+
|
130
|
+
Parameters
|
131
|
+
----------
|
132
|
+
mutable_flow : metaflow.user_decorators.mutable_flow.MutableFlow
|
133
|
+
A representation of this flow
|
134
|
+
"""
|
135
|
+
...
|
136
|
+
...
|
137
|
+
|
@@ -0,0 +1,323 @@
|
|
1
|
+
######################################################################################################
|
2
|
+
# Auto-generated Metaflow stub file #
|
3
|
+
# MF version: 2.16.5.1+obcheckpoint(0.2.4);ob(v1) #
|
4
|
+
# Generated on 2025-07-28T18:04:46.390684 #
|
5
|
+
######################################################################################################
|
6
|
+
|
7
|
+
from __future__ import annotations
|
8
|
+
|
9
|
+
import metaflow
|
10
|
+
import typing
|
11
|
+
if typing.TYPE_CHECKING:
|
12
|
+
import metaflow.datastore.inputs
|
13
|
+
import metaflow.user_decorators.mutable_step
|
14
|
+
import typing
|
15
|
+
import metaflow.flowspec
|
16
|
+
import metaflow.user_decorators.user_step_decorator
|
17
|
+
import metaflow.decorators
|
18
|
+
|
19
|
+
from ..exception import MetaflowException as MetaflowException
|
20
|
+
from ..user_configs.config_parameters import resolve_delayed_evaluator as resolve_delayed_evaluator
|
21
|
+
from ..user_configs.config_parameters import unpack_delayed_evaluator as unpack_delayed_evaluator
|
22
|
+
from .common import ClassPath_Trie as ClassPath_Trie
|
23
|
+
|
24
|
+
TYPE_CHECKING: bool
|
25
|
+
|
26
|
+
USER_SKIP_STEP: dict
|
27
|
+
|
28
|
+
class UserStepDecoratorMeta(type, metaclass=type):
|
29
|
+
@staticmethod
|
30
|
+
def __new__(mcs, name, bases, namespace, **_kwargs):
|
31
|
+
...
|
32
|
+
def __str__(cls):
|
33
|
+
...
|
34
|
+
@classmethod
|
35
|
+
def all_decorators(mcs) -> typing.Dict[str, "UserStepDecoratorMeta"]:
|
36
|
+
"""
|
37
|
+
Get all registered decorators using the minimally unique classpath name
|
38
|
+
|
39
|
+
Returns
|
40
|
+
-------
|
41
|
+
Dict[str, UserStepDecoratorBase]
|
42
|
+
A dictionary mapping decorator names to their classes.
|
43
|
+
"""
|
44
|
+
...
|
45
|
+
@classmethod
|
46
|
+
def get_decorator_by_name(mcs, decorator_name: str) -> typing.Union["UserStepDecoratorBase", "metaflow.decorators.Decorator", None]:
|
47
|
+
"""
|
48
|
+
Get a decorator by its name.
|
49
|
+
|
50
|
+
Parameters
|
51
|
+
----------
|
52
|
+
decorator_name: str
|
53
|
+
The name of the decorator to retrieve.
|
54
|
+
|
55
|
+
Returns
|
56
|
+
-------
|
57
|
+
Optional[UserStepDecoratorBase]
|
58
|
+
The decorator class if found, None otherwise.
|
59
|
+
"""
|
60
|
+
...
|
61
|
+
@classmethod
|
62
|
+
def get_decorator_name(mcs, decorator_type: type) -> typing.Optional[str]:
|
63
|
+
"""
|
64
|
+
Get the minimally unique classpath name for a decorator type.
|
65
|
+
|
66
|
+
Parameters
|
67
|
+
----------
|
68
|
+
decorator_type: type
|
69
|
+
The type of the decorator to retrieve the name for.
|
70
|
+
|
71
|
+
Returns
|
72
|
+
-------
|
73
|
+
Optional[str]
|
74
|
+
The minimally unique classpath name if found, None otherwise.
|
75
|
+
"""
|
76
|
+
...
|
77
|
+
...
|
78
|
+
|
79
|
+
class UserStepDecoratorBase(object, metaclass=UserStepDecoratorMeta):
|
80
|
+
def __init__(self, *args, **kwargs):
|
81
|
+
...
|
82
|
+
def __get__(self, instance, owner):
|
83
|
+
...
|
84
|
+
def __call__(self, step: typing.Union[typing.Callable[["metaflow.decorators.FlowSpecDerived"], None], typing.Callable[["metaflow.decorators.FlowSpecDerived", typing.Any], None], None] = None, **kwargs) -> typing.Union[typing.Callable[["metaflow.decorators.FlowSpecDerived"], None], typing.Callable[["metaflow.decorators.FlowSpecDerived", typing.Any], None]]:
|
85
|
+
...
|
86
|
+
def add_or_raise(self, step: typing.Union[typing.Callable[["metaflow.decorators.FlowSpecDerived"], None], typing.Callable[["metaflow.decorators.FlowSpecDerived", typing.Any], None]], statically_defined: bool, duplicates: int, inserted_by: typing.Optional[str] = None):
|
87
|
+
...
|
88
|
+
def __str__(self):
|
89
|
+
...
|
90
|
+
@classmethod
|
91
|
+
def extract_args_kwargs_from_decorator_spec(cls, deco_spec: str) -> typing.Tuple[typing.List[typing.Any], typing.Dict[str, typing.Any]]:
|
92
|
+
...
|
93
|
+
@classmethod
|
94
|
+
def parse_decorator_spec(cls, deco_spec: str) -> typing.Optional["UserStepDecoratorBase"]:
|
95
|
+
...
|
96
|
+
def make_decorator_spec(self):
|
97
|
+
...
|
98
|
+
def get_args_kwargs(self) -> typing.Tuple[typing.List[typing.Any], typing.Dict[str, typing.Any]]:
|
99
|
+
"""
|
100
|
+
Get the arguments and keyword arguments of the decorator.
|
101
|
+
|
102
|
+
Returns
|
103
|
+
-------
|
104
|
+
Tuple[List[Any], Dict[str, Any]]
|
105
|
+
A tuple containing a list of arguments and a dictionary of keyword arguments.
|
106
|
+
"""
|
107
|
+
...
|
108
|
+
def init(self, *args, **kwargs):
|
109
|
+
...
|
110
|
+
def external_init(self):
|
111
|
+
...
|
112
|
+
@classmethod
|
113
|
+
def __init_subclass__(cls_, **_kwargs):
|
114
|
+
...
|
115
|
+
...
|
116
|
+
|
117
|
+
class UserStepDecorator(UserStepDecoratorBase, metaclass=UserStepDecoratorMeta):
|
118
|
+
def init(self, *args, **kwargs):
|
119
|
+
"""
|
120
|
+
Implement this method if your UserStepDecorator takes arguments. It replaces the
|
121
|
+
__init__ method in traditional Python classes.
|
122
|
+
|
123
|
+
|
124
|
+
As an example:
|
125
|
+
```
|
126
|
+
class MyDecorator(UserStepDecorator):
|
127
|
+
def init(self, *args, **kwargs):
|
128
|
+
self.arg1 = kwargs.get("arg1", None)
|
129
|
+
self.arg2 = kwargs.get("arg2", None)
|
130
|
+
# Do something with the arguments
|
131
|
+
```
|
132
|
+
|
133
|
+
can then be used as
|
134
|
+
```
|
135
|
+
@MyDecorator(arg1=42, arg2=conf_expr("config.my_arg2"))
|
136
|
+
@step
|
137
|
+
def start(self):
|
138
|
+
pass
|
139
|
+
```
|
140
|
+
"""
|
141
|
+
...
|
142
|
+
def pre_step(self, step_name: str, flow: "metaflow.flowspec.FlowSpec", inputs: typing.Optional["metaflow.datastore.inputs.Inputs"] = None) -> typing.Optional[typing.Callable[["metaflow.flowspec.FlowSpec", typing.Optional[typing.Any]], typing.Any]]:
|
143
|
+
"""
|
144
|
+
Implement this method to perform any action prior to the execution of a step.
|
145
|
+
|
146
|
+
It should return either None to execute anything wrapped by this step decorator
|
147
|
+
as usual or a callable that will be called instead.
|
148
|
+
|
149
|
+
Parameters
|
150
|
+
----------
|
151
|
+
step_name: str
|
152
|
+
The name of the step being decorated.
|
153
|
+
flow: FlowSpec
|
154
|
+
The flow object to which the step belongs.
|
155
|
+
inputs: Optional[List[FlowSpec]]
|
156
|
+
The inputs to the step being decorated. This is only provided for join steps
|
157
|
+
and is None for all other steps.
|
158
|
+
|
159
|
+
Returns
|
160
|
+
-------
|
161
|
+
Optional[Callable[FlowSpec, Optional[Any]]]
|
162
|
+
An optional function to use instead of the wrapped step. Note that the function
|
163
|
+
returned should match the signature of the step being wrapped (join steps
|
164
|
+
take an additional "inputs" argument).
|
165
|
+
"""
|
166
|
+
...
|
167
|
+
def post_step(self, step_name: str, flow: "metaflow.flowspec.FlowSpec", exception: typing.Optional[Exception] = None):
|
168
|
+
"""
|
169
|
+
Implement this method to perform any action after the execution of a step.
|
170
|
+
|
171
|
+
If the step (or any code being wrapped by this decorator) raises an exception,
|
172
|
+
it will be passed here and can either be caught (in which case the step will
|
173
|
+
be considered as successful) or re-raised (in which case the entire step
|
174
|
+
will be considered a failure unless another decorator catches the execption).
|
175
|
+
|
176
|
+
Note that this method executes *before* artifacts are stored in the datastore
|
177
|
+
so it is able to modify, add or remove artifacts from `flow`.
|
178
|
+
|
179
|
+
Parameters
|
180
|
+
----------
|
181
|
+
step_name: str
|
182
|
+
The name of the step being decorated.
|
183
|
+
flow: FlowSpec
|
184
|
+
The flow object to which the step belongs.
|
185
|
+
exception: Optional[Exception]
|
186
|
+
The exception raised during the step execution, if any.
|
187
|
+
"""
|
188
|
+
...
|
189
|
+
@property
|
190
|
+
def skip_step(self) -> typing.Union[bool, typing.Dict[str, typing.Any]]:
|
191
|
+
"""
|
192
|
+
Returns whether or not the step (or rather anything wrapped by this decorator)
|
193
|
+
should be skipped
|
194
|
+
|
195
|
+
Returns
|
196
|
+
-------
|
197
|
+
Union[bool, Dict[str, Any]]
|
198
|
+
False if the step should not be skipped. True if it should be skipped and
|
199
|
+
a dictionary if it should be skipped and the values passed in used as
|
200
|
+
the arguments to the self.next call.
|
201
|
+
"""
|
202
|
+
...
|
203
|
+
@skip_step.setter
|
204
|
+
def skip_step(self, value: typing.Union[bool, typing.Dict[str, typing.Any]]):
|
205
|
+
"""
|
206
|
+
Set the skip_step property. You can set it to:
|
207
|
+
- True to skip the step
|
208
|
+
- False to not skip the step (default)
|
209
|
+
- A dictionary with the keys valid in the `self.next` call.
|
210
|
+
|
211
|
+
Parameters
|
212
|
+
----------
|
213
|
+
value: Union[bool, Dict[str, Any]]
|
214
|
+
True/False or a dictionary with the keys valid in the `self.next` call.
|
215
|
+
"""
|
216
|
+
...
|
217
|
+
...
|
218
|
+
|
219
|
+
def user_step_decorator(*args, **kwargs):
|
220
|
+
"""
|
221
|
+
Use this decorator to transform a generator function into a user step decorator.
|
222
|
+
|
223
|
+
As an example:
|
224
|
+
|
225
|
+
```
|
226
|
+
@user_step_decorator
|
227
|
+
def timing(step_name, flow, inputs):
|
228
|
+
start_time = time.time()
|
229
|
+
yield
|
230
|
+
end_time = time.time()
|
231
|
+
flow.artifact_total_time = end_time - start_time
|
232
|
+
print(f"Step {step_name} took {flow.artifact_total_time} seconds")
|
233
|
+
```
|
234
|
+
which can then be used as:
|
235
|
+
|
236
|
+
```
|
237
|
+
@timing
|
238
|
+
@step
|
239
|
+
def start(self):
|
240
|
+
print("Hello, world!")
|
241
|
+
```
|
242
|
+
|
243
|
+
Your generator should:
|
244
|
+
- yield at most once -- if you do not yield, the step will not execute.
|
245
|
+
- yield:
|
246
|
+
- None
|
247
|
+
- a callable that will replace whatever is being wrapped (it
|
248
|
+
should have the same parameters as the wrapped function, namely, it should
|
249
|
+
be a
|
250
|
+
Callable[[FlowSpec, Inputs], Optional[Union[Dict[str, Any]]]]).
|
251
|
+
Note that the return type is a bit different -- you can return:
|
252
|
+
- None: no special behavior;
|
253
|
+
- A dictionary containing parameters for `self.next()`.
|
254
|
+
- a dictionary to skip the step. An empty dictionary is equivalent
|
255
|
+
to just skipping the step. A full dictionary will pass the arguments
|
256
|
+
to the `self.next()` call -- this allows you to modify the behavior
|
257
|
+
of `self.next` (for example, changing the `foreach` values. We provide
|
258
|
+
USER_SKIP_STEP as a special value that is equivalent to {}.
|
259
|
+
|
260
|
+
|
261
|
+
You are able to catch exceptions thrown by the yield statement (ie: coming from the
|
262
|
+
wrapped code). Catching and not re-raising the exception will make the step
|
263
|
+
successful.
|
264
|
+
|
265
|
+
Note that you are able to modify the step's artifact after the yield.
|
266
|
+
|
267
|
+
For more complex use cases, you can use the `UserStepDecorator` class directly which
|
268
|
+
allows more control.
|
269
|
+
"""
|
270
|
+
...
|
271
|
+
|
272
|
+
class StepMutator(UserStepDecoratorBase, metaclass=UserStepDecoratorMeta):
|
273
|
+
"""
|
274
|
+
Derive from this class to implement a step mutator.
|
275
|
+
|
276
|
+
A step mutator allows you to introspect a step and add decorators to it. You can
|
277
|
+
use values available through configurations to determine how to mutate the step.
|
278
|
+
|
279
|
+
There are two main methods provided:
|
280
|
+
- pre_mutate: called as early as possible right after configuration values are read.
|
281
|
+
- mutate: called right after all the command line is parsed but before any
|
282
|
+
Metaflow decorators are applied.
|
283
|
+
"""
|
284
|
+
def init(self, *args, **kwargs):
|
285
|
+
"""
|
286
|
+
Implement this method if you wish for your StepMutator to take in arguments.
|
287
|
+
|
288
|
+
Your step-mutator can then look like:
|
289
|
+
|
290
|
+
@MyMutator(arg1, arg2)
|
291
|
+
@step
|
292
|
+
def my_step(self):
|
293
|
+
pass
|
294
|
+
|
295
|
+
It is an error to use your mutator with arguments but not implement this method.
|
296
|
+
"""
|
297
|
+
...
|
298
|
+
def pre_mutate(self, mutable_step: "metaflow.user_decorators.mutable_step.MutableStep"):
|
299
|
+
"""
|
300
|
+
Method called right after all configuration values are read.
|
301
|
+
|
302
|
+
Parameters
|
303
|
+
----------
|
304
|
+
mutable_step : metaflow.user_decorators.mutable_step.MutableStep
|
305
|
+
A representation of this step
|
306
|
+
"""
|
307
|
+
...
|
308
|
+
def mutate(self, mutable_step: "metaflow.user_decorators.mutable_step.MutableStep"):
|
309
|
+
"""
|
310
|
+
Method called right before the first Metaflow decorator is applied. This
|
311
|
+
means that the command line, including all `--with` options has been parsed.
|
312
|
+
|
313
|
+
Parameters
|
314
|
+
----------
|
315
|
+
mutable_step : metaflow.user_decorators.mutable_step.MutableStep
|
316
|
+
A representation of this step
|
317
|
+
"""
|
318
|
+
...
|
319
|
+
@classmethod
|
320
|
+
def __init_subclass__(cls_, **_kwargs):
|
321
|
+
...
|
322
|
+
...
|
323
|
+
|