metaflow-stubs 2.12.30__py2.py3-none-any.whl → 2.12.31__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 +253 -253
- metaflow-stubs/cards.pyi +2 -2
- metaflow-stubs/cli.pyi +2 -2
- metaflow-stubs/client/__init__.pyi +2 -2
- metaflow-stubs/client/core.pyi +4 -4
- metaflow-stubs/client/filecache.pyi +3 -3
- metaflow-stubs/clone_util.pyi +2 -2
- metaflow-stubs/events.pyi +2 -2
- metaflow-stubs/exception.pyi +2 -2
- metaflow-stubs/flowspec.pyi +5 -5
- metaflow-stubs/generated_for.txt +1 -1
- metaflow-stubs/includefile.pyi +2 -2
- metaflow-stubs/info_file.pyi +2 -2
- metaflow-stubs/metadata_provider/__init__.pyi +2 -2
- metaflow-stubs/metadata_provider/heartbeat.pyi +2 -2
- metaflow-stubs/metadata_provider/metadata.pyi +2 -2
- metaflow-stubs/metadata_provider/util.pyi +2 -2
- metaflow-stubs/metaflow_config.pyi +2 -2
- metaflow-stubs/metaflow_current.pyi +6 -6
- metaflow-stubs/mflog/__init__.pyi +2 -2
- metaflow-stubs/mflog/mflog.pyi +2 -2
- metaflow-stubs/multicore_utils.pyi +2 -2
- metaflow-stubs/parameters.pyi +2 -2
- metaflow-stubs/plugins/__init__.pyi +14 -14
- metaflow-stubs/plugins/airflow/__init__.pyi +2 -2
- metaflow-stubs/plugins/airflow/airflow.pyi +2 -2
- metaflow-stubs/plugins/airflow/airflow_cli.pyi +2 -2
- metaflow-stubs/plugins/airflow/airflow_decorator.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 +3 -3
- metaflow-stubs/plugins/argo/argo_workflows_cli.pyi +2 -2
- metaflow-stubs/plugins/argo/argo_workflows_decorator.pyi +4 -4
- metaflow-stubs/plugins/argo/argo_workflows_deployer.pyi +3 -3
- metaflow-stubs/plugins/argo/argo_workflows_deployer_objects.pyi +3 -3
- metaflow-stubs/plugins/aws/__init__.pyi +4 -4
- 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 +2 -2
- metaflow-stubs/plugins/aws/batch/batch_cli.pyi +2 -2
- metaflow-stubs/plugins/aws/batch/batch_client.pyi +2 -2
- metaflow-stubs/plugins/aws/batch/batch_decorator.pyi +2 -2
- metaflow-stubs/plugins/aws/secrets_manager/__init__.pyi +2 -2
- metaflow-stubs/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.pyi +4 -4
- metaflow-stubs/plugins/aws/step_functions/__init__.pyi +2 -2
- metaflow-stubs/plugins/aws/step_functions/dynamo_db_client.pyi +2 -2
- metaflow-stubs/plugins/aws/step_functions/event_bridge_client.pyi +2 -2
- metaflow-stubs/plugins/aws/step_functions/production_token.pyi +2 -2
- metaflow-stubs/plugins/aws/step_functions/schedule_decorator.pyi +2 -2
- metaflow-stubs/plugins/aws/step_functions/step_functions.pyi +2 -2
- metaflow-stubs/plugins/aws/step_functions/step_functions_cli.pyi +2 -2
- metaflow-stubs/plugins/aws/step_functions/step_functions_client.pyi +2 -2
- metaflow-stubs/plugins/aws/step_functions/step_functions_decorator.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 +2 -2
- 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 +4 -4
- 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_cli.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 +2 -2
- metaflow-stubs/plugins/cards/card_modules/__init__.pyi +2 -2
- metaflow-stubs/plugins/cards/card_modules/basic.pyi +2 -2
- metaflow-stubs/plugins/cards/card_modules/card.pyi +2 -2
- metaflow-stubs/plugins/cards/card_modules/chevron/__init__.pyi +2 -2
- metaflow-stubs/plugins/cards/card_modules/chevron/main.pyi +2 -2
- metaflow-stubs/plugins/cards/card_modules/chevron/metadata.pyi +2 -2
- metaflow-stubs/plugins/cards/card_modules/chevron/renderer.pyi +2 -2
- metaflow-stubs/plugins/cards/card_modules/chevron/tokenizer.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 +3 -3
- 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 +3 -3
- 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 +12 -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 +4 -4
- 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 +2 -2
- metaflow-stubs/plugins/kubernetes/kubernetes.pyi +2 -2
- metaflow-stubs/plugins/kubernetes/kubernetes_cli.pyi +2 -2
- metaflow-stubs/plugins/kubernetes/kubernetes_client.pyi +2 -2
- metaflow-stubs/plugins/kubernetes/kubernetes_decorator.pyi +2 -2
- metaflow-stubs/plugins/kubernetes/kubernetes_job.pyi +2 -2
- metaflow-stubs/plugins/kubernetes/kubernetes_jobsets.pyi +2 -2
- metaflow-stubs/plugins/logs_cli.pyi +3 -3
- metaflow-stubs/plugins/package_cli.pyi +2 -2
- metaflow-stubs/plugins/parallel_decorator.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 +2 -2
- metaflow-stubs/plugins/pypi/conda_environment.pyi +6 -6
- metaflow-stubs/plugins/pypi/pypi_decorator.pyi +2 -2
- 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/storage_executor.pyi +2 -2
- metaflow-stubs/plugins/tag_cli.pyi +2 -2
- metaflow-stubs/plugins/test_unbounded_foreach_decorator.pyi +2 -2
- metaflow-stubs/plugins/timeout_decorator.pyi +3 -3
- metaflow-stubs/procpoll.pyi +2 -2
- metaflow-stubs/pylint_wrapper.pyi +2 -2
- metaflow-stubs/runner/__init__.pyi +2 -2
- metaflow-stubs/runner/deployer.pyi +28 -28
- metaflow-stubs/runner/deployer_impl.pyi +2 -2
- metaflow-stubs/runner/metaflow_runner.pyi +3 -3
- metaflow-stubs/runner/nbdeploy.pyi +2 -2
- metaflow-stubs/runner/nbrun.pyi +2 -2
- metaflow-stubs/runner/subprocess_manager.pyi +2 -2
- metaflow-stubs/runner/utils.pyi +3 -3
- metaflow-stubs/system/__init__.pyi +2 -2
- metaflow-stubs/system/system_logger.pyi +2 -2
- metaflow-stubs/system/system_monitor.pyi +2 -2
- metaflow-stubs/tagging_util.pyi +2 -2
- metaflow-stubs/tuple_util.pyi +2 -2
- metaflow-stubs/version.pyi +2 -2
- {metaflow_stubs-2.12.30.dist-info → metaflow_stubs-2.12.31.dist-info}/METADATA +2 -2
- metaflow_stubs-2.12.31.dist-info/RECORD +158 -0
- {metaflow_stubs-2.12.30.dist-info → metaflow_stubs-2.12.31.dist-info}/WHEEL +1 -1
- metaflow_stubs-2.12.30.dist-info/RECORD +0 -158
- {metaflow_stubs-2.12.30.dist-info → metaflow_stubs-2.12.31.dist-info}/top_level.txt +0 -0
metaflow-stubs/__init__.pyi
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
######################################################################################################
|
2
2
|
# Auto-generated Metaflow stub file #
|
3
|
-
# MF version: 2.12.
|
4
|
-
# Generated on 2024-11-
|
3
|
+
# MF version: 2.12.31 #
|
4
|
+
# Generated on 2024-11-22T20:12:01.558412 #
|
5
5
|
######################################################################################################
|
6
6
|
|
7
7
|
from __future__ import annotations
|
8
8
|
|
9
9
|
import typing
|
10
10
|
if typing.TYPE_CHECKING:
|
11
|
-
import typing
|
12
11
|
import datetime
|
12
|
+
import typing
|
13
13
|
FlowSpecDerived = typing.TypeVar("FlowSpecDerived", bound="FlowSpec", contravariant=False, covariant=False)
|
14
14
|
StepFlag = typing.NewType("StepFlag", bool)
|
15
15
|
|
@@ -29,8 +29,8 @@ from .flowspec import FlowSpec as FlowSpec
|
|
29
29
|
from .parameters import Parameter as Parameter
|
30
30
|
from .parameters import JSONTypeClass as JSONTypeClass
|
31
31
|
from .parameters import JSONType as JSONType
|
32
|
-
from . import tuple_util as tuple_util
|
33
32
|
from . import events as events
|
33
|
+
from . import tuple_util as tuple_util
|
34
34
|
from . import runner as runner
|
35
35
|
from . import plugins as plugins
|
36
36
|
from .plugins.datatools.s3.s3 import S3 as S3
|
@@ -138,206 +138,169 @@ def step(f: typing.Union[typing.Callable[[FlowSpecDerived], None], typing.Callab
|
|
138
138
|
...
|
139
139
|
|
140
140
|
@typing.overload
|
141
|
-
def
|
141
|
+
def conda(*, packages: typing.Dict[str, str] = {}, libraries: typing.Dict[str, str] = {}, python: typing.Optional[str] = None, disabled: bool = False) -> typing.Callable[[typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]], typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]]:
|
142
142
|
"""
|
143
|
-
Specifies
|
143
|
+
Specifies the Conda environment for the step.
|
144
144
|
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
145
|
+
Information in this decorator will augment any
|
146
|
+
attributes set in the `@conda_base` flow-level decorator. Hence,
|
147
|
+
you can use `@conda_base` to set packages required by all
|
148
|
+
steps and use `@conda` to specify step-specific overrides.
|
149
149
|
"""
|
150
150
|
...
|
151
151
|
|
152
152
|
@typing.overload
|
153
|
-
def
|
153
|
+
def conda(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
154
154
|
...
|
155
155
|
|
156
156
|
@typing.overload
|
157
|
-
def
|
157
|
+
def conda(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
158
158
|
...
|
159
159
|
|
160
|
-
def
|
160
|
+
def conda(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, packages: typing.Dict[str, str] = {}, libraries: typing.Dict[str, str] = {}, python: typing.Optional[str] = None, disabled: bool = False):
|
161
161
|
"""
|
162
|
-
Specifies
|
162
|
+
Specifies the Conda environment for the step.
|
163
163
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
164
|
+
Information in this decorator will augment any
|
165
|
+
attributes set in the `@conda_base` flow-level decorator. Hence,
|
166
|
+
you can use `@conda_base` to set packages required by all
|
167
|
+
steps and use `@conda` to specify step-specific overrides.
|
168
168
|
"""
|
169
169
|
...
|
170
170
|
|
171
171
|
@typing.overload
|
172
|
-
def
|
172
|
+
def batch(*, cpu: int = 1, gpu: int = 0, memory: int = 4096, image: typing.Optional[str] = None, queue: str = 'METAFLOW_BATCH_JOB_QUEUE', iam_role: str = 'METAFLOW_ECS_S3_ACCESS_IAM_ROLE', execution_role: str = 'METAFLOW_ECS_FARGATE_EXECUTION_ROLE', shared_memory: typing.Optional[int] = None, max_swap: typing.Optional[int] = None, swappiness: typing.Optional[int] = None, use_tmpfs: bool = False, tmpfs_tempdir: bool = True, tmpfs_size: typing.Optional[int] = None, tmpfs_path: typing.Optional[str] = None, inferentia: int = 0, trainium: int = None, efa: int = 0, ephemeral_storage: int = None, log_driver: typing.Optional[str] = None, log_options: typing.Optional[typing.List[str]] = None) -> typing.Callable[[typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]], typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]]:
|
173
173
|
"""
|
174
|
-
Specifies
|
175
|
-
to a step needs to be retried.
|
176
|
-
|
177
|
-
This decorator is useful for handling transient errors, such as networking issues.
|
178
|
-
If your task contains operations that can't be retried safely, e.g. database updates,
|
179
|
-
it is advisable to annotate it with `@retry(times=0)`.
|
180
|
-
|
181
|
-
This can be used in conjunction with the `@catch` decorator. The `@catch`
|
182
|
-
decorator will execute a no-op task after all retries have been exhausted,
|
183
|
-
ensuring that the flow execution can continue.
|
174
|
+
Specifies that this step should execute on [AWS Batch](https://aws.amazon.com/batch/).
|
184
175
|
"""
|
185
176
|
...
|
186
177
|
|
187
178
|
@typing.overload
|
188
|
-
def
|
179
|
+
def batch(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
189
180
|
...
|
190
181
|
|
191
182
|
@typing.overload
|
192
|
-
def
|
183
|
+
def batch(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
193
184
|
...
|
194
185
|
|
195
|
-
def
|
186
|
+
def batch(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, cpu: int = 1, gpu: int = 0, memory: int = 4096, image: typing.Optional[str] = None, queue: str = 'METAFLOW_BATCH_JOB_QUEUE', iam_role: str = 'METAFLOW_ECS_S3_ACCESS_IAM_ROLE', execution_role: str = 'METAFLOW_ECS_FARGATE_EXECUTION_ROLE', shared_memory: typing.Optional[int] = None, max_swap: typing.Optional[int] = None, swappiness: typing.Optional[int] = None, use_tmpfs: bool = False, tmpfs_tempdir: bool = True, tmpfs_size: typing.Optional[int] = None, tmpfs_path: typing.Optional[str] = None, inferentia: int = 0, trainium: int = None, efa: int = 0, ephemeral_storage: int = None, log_driver: typing.Optional[str] = None, log_options: typing.Optional[typing.List[str]] = None):
|
196
187
|
"""
|
197
|
-
Specifies
|
198
|
-
to a step needs to be retried.
|
199
|
-
|
200
|
-
This decorator is useful for handling transient errors, such as networking issues.
|
201
|
-
If your task contains operations that can't be retried safely, e.g. database updates,
|
202
|
-
it is advisable to annotate it with `@retry(times=0)`.
|
203
|
-
|
204
|
-
This can be used in conjunction with the `@catch` decorator. The `@catch`
|
205
|
-
decorator will execute a no-op task after all retries have been exhausted,
|
206
|
-
ensuring that the flow execution can continue.
|
188
|
+
Specifies that this step should execute on [AWS Batch](https://aws.amazon.com/batch/).
|
207
189
|
"""
|
208
190
|
...
|
209
191
|
|
210
|
-
|
211
|
-
def card(*, type: str = 'default', id: typing.Optional[str] = None, options: typing.Dict[str, typing.Any] = {}, timeout: int = 45) -> typing.Callable[[typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]], typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]]:
|
192
|
+
def kubernetes(*, cpu: int = 1, memory: int = 4096, disk: int = 10240, image: typing.Optional[str] = None, image_pull_policy: str = 'KUBERNETES_IMAGE_PULL_POLICY', service_account: str = 'METAFLOW_KUBERNETES_SERVICE_ACCOUNT', secrets: typing.Optional[typing.List[str]] = None, node_selector: typing.Union[typing.Dict[str, str], str, None] = None, namespace: str = 'METAFLOW_KUBERNETES_NAMESPACE', gpu: typing.Optional[int] = None, gpu_vendor: str = 'KUBERNETES_GPU_VENDOR', tolerations: typing.List[str] = [], use_tmpfs: bool = False, tmpfs_tempdir: bool = True, tmpfs_size: typing.Optional[int] = None, tmpfs_path: typing.Optional[str] = '/metaflow_temp', persistent_volume_claims: typing.Optional[typing.Dict[str, str]] = None, shared_memory: typing.Optional[int] = None, port: typing.Optional[int] = None, compute_pool: typing.Optional[str] = None, hostname_resolution_timeout: int = 600) -> typing.Callable[[typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]], typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]]:
|
212
193
|
"""
|
213
|
-
|
214
|
-
|
215
|
-
Note that you may add multiple `@card` decorators in a step with different parameters.
|
194
|
+
Specifies that this step should execute on Kubernetes.
|
216
195
|
"""
|
217
196
|
...
|
218
197
|
|
219
198
|
@typing.overload
|
220
|
-
def
|
221
|
-
...
|
222
|
-
|
223
|
-
@typing.overload
|
224
|
-
def card(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
225
|
-
...
|
226
|
-
|
227
|
-
def card(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, type: str = 'default', id: typing.Optional[str] = None, options: typing.Dict[str, typing.Any] = {}, timeout: int = 45):
|
199
|
+
def catch(*, var: typing.Optional[str] = None, print_exception: bool = True) -> typing.Callable[[typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]], typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]]:
|
228
200
|
"""
|
229
|
-
|
201
|
+
Specifies that the step will success under all circumstances.
|
230
202
|
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
@typing.overload
|
236
|
-
def secrets(*, sources: typing.List[typing.Union[str, typing.Dict[str, typing.Any]]] = []) -> typing.Callable[[typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]], typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]]:
|
237
|
-
"""
|
238
|
-
Specifies secrets to be retrieved and injected as environment variables prior to
|
239
|
-
the execution of a step.
|
203
|
+
The decorator will create an optional artifact, specified by `var`, which
|
204
|
+
contains the exception raised. You can use it to detect the presence
|
205
|
+
of errors, indicating that all happy-path artifacts produced by the step
|
206
|
+
are missing.
|
240
207
|
"""
|
241
208
|
...
|
242
209
|
|
243
210
|
@typing.overload
|
244
|
-
def
|
211
|
+
def catch(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
245
212
|
...
|
246
213
|
|
247
214
|
@typing.overload
|
248
|
-
def
|
249
|
-
...
|
250
|
-
|
251
|
-
def secrets(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, sources: typing.List[typing.Union[str, typing.Dict[str, typing.Any]]] = []):
|
252
|
-
"""
|
253
|
-
Specifies secrets to be retrieved and injected as environment variables prior to
|
254
|
-
the execution of a step.
|
255
|
-
"""
|
215
|
+
def catch(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
256
216
|
...
|
257
217
|
|
258
|
-
def
|
218
|
+
def catch(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, var: typing.Optional[str] = None, print_exception: bool = True):
|
259
219
|
"""
|
260
|
-
Specifies that
|
220
|
+
Specifies that the step will success under all circumstances.
|
221
|
+
|
222
|
+
The decorator will create an optional artifact, specified by `var`, which
|
223
|
+
contains the exception raised. You can use it to detect the presence
|
224
|
+
of errors, indicating that all happy-path artifacts produced by the step
|
225
|
+
are missing.
|
261
226
|
"""
|
262
227
|
...
|
263
228
|
|
264
229
|
@typing.overload
|
265
|
-
def
|
230
|
+
def timeout(*, seconds: int = 0, minutes: int = 0, hours: int = 0) -> typing.Callable[[typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]], typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]]:
|
266
231
|
"""
|
267
|
-
Specifies
|
232
|
+
Specifies a timeout for your step.
|
268
233
|
|
269
|
-
|
270
|
-
independently of the specific compute layer (`@batch`, `@kubernetes`).
|
234
|
+
This decorator is useful if this step may hang indefinitely.
|
271
235
|
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
python myflow.py run --with kubernetes
|
279
|
-
```
|
280
|
-
which executes the flow on the desired system using the
|
281
|
-
requirements specified in `@resources`.
|
236
|
+
This can be used in conjunction with the `@retry` decorator as well as the `@catch` decorator.
|
237
|
+
A timeout is considered to be an exception thrown by the step. It will cause the step to be
|
238
|
+
retried if needed and the exception will be caught by the `@catch` decorator, if present.
|
239
|
+
|
240
|
+
Note that all the values specified in parameters are added together so if you specify
|
241
|
+
60 seconds and 1 hour, the decorator will have an effective timeout of 1 hour and 1 minute.
|
282
242
|
"""
|
283
243
|
...
|
284
244
|
|
285
245
|
@typing.overload
|
286
|
-
def
|
246
|
+
def timeout(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
287
247
|
...
|
288
248
|
|
289
249
|
@typing.overload
|
290
|
-
def
|
250
|
+
def timeout(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
291
251
|
...
|
292
252
|
|
293
|
-
def
|
253
|
+
def timeout(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, seconds: int = 0, minutes: int = 0, hours: int = 0):
|
294
254
|
"""
|
295
|
-
Specifies
|
255
|
+
Specifies a timeout for your step.
|
296
256
|
|
297
|
-
|
298
|
-
independently of the specific compute layer (`@batch`, `@kubernetes`).
|
257
|
+
This decorator is useful if this step may hang indefinitely.
|
299
258
|
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
python myflow.py run --with kubernetes
|
307
|
-
```
|
308
|
-
which executes the flow on the desired system using the
|
309
|
-
requirements specified in `@resources`.
|
259
|
+
This can be used in conjunction with the `@retry` decorator as well as the `@catch` decorator.
|
260
|
+
A timeout is considered to be an exception thrown by the step. It will cause the step to be
|
261
|
+
retried if needed and the exception will be caught by the `@catch` decorator, if present.
|
262
|
+
|
263
|
+
Note that all the values specified in parameters are added together so if you specify
|
264
|
+
60 seconds and 1 hour, the decorator will have an effective timeout of 1 hour and 1 minute.
|
310
265
|
"""
|
311
266
|
...
|
312
267
|
|
313
268
|
@typing.overload
|
314
|
-
def
|
269
|
+
def retry(*, times: int = 3, minutes_between_retries: int = 2) -> typing.Callable[[typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]], typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]]:
|
315
270
|
"""
|
316
|
-
Specifies the
|
271
|
+
Specifies the number of times the task corresponding
|
272
|
+
to a step needs to be retried.
|
317
273
|
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
274
|
+
This decorator is useful for handling transient errors, such as networking issues.
|
275
|
+
If your task contains operations that can't be retried safely, e.g. database updates,
|
276
|
+
it is advisable to annotate it with `@retry(times=0)`.
|
277
|
+
|
278
|
+
This can be used in conjunction with the `@catch` decorator. The `@catch`
|
279
|
+
decorator will execute a no-op task after all retries have been exhausted,
|
280
|
+
ensuring that the flow execution can continue.
|
322
281
|
"""
|
323
282
|
...
|
324
283
|
|
325
284
|
@typing.overload
|
326
|
-
def
|
285
|
+
def retry(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
327
286
|
...
|
328
287
|
|
329
288
|
@typing.overload
|
330
|
-
def
|
289
|
+
def retry(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
331
290
|
...
|
332
291
|
|
333
|
-
def
|
292
|
+
def retry(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, times: int = 3, minutes_between_retries: int = 2):
|
334
293
|
"""
|
335
|
-
Specifies the
|
294
|
+
Specifies the number of times the task corresponding
|
295
|
+
to a step needs to be retried.
|
336
296
|
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
297
|
+
This decorator is useful for handling transient errors, such as networking issues.
|
298
|
+
If your task contains operations that can't be retried safely, e.g. database updates,
|
299
|
+
it is advisable to annotate it with `@retry(times=0)`.
|
300
|
+
|
301
|
+
This can be used in conjunction with the `@catch` decorator. The `@catch`
|
302
|
+
decorator will execute a no-op task after all retries have been exhausted,
|
303
|
+
ensuring that the flow execution can continue.
|
341
304
|
"""
|
342
305
|
...
|
343
306
|
|
@@ -363,54 +326,50 @@ def environment(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], Non
|
|
363
326
|
...
|
364
327
|
|
365
328
|
@typing.overload
|
366
|
-
def
|
329
|
+
def secrets(*, sources: typing.List[typing.Union[str, typing.Dict[str, typing.Any]]] = []) -> typing.Callable[[typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]], typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]]:
|
367
330
|
"""
|
368
|
-
Specifies
|
331
|
+
Specifies secrets to be retrieved and injected as environment variables prior to
|
332
|
+
the execution of a step.
|
369
333
|
"""
|
370
334
|
...
|
371
335
|
|
372
336
|
@typing.overload
|
373
|
-
def
|
337
|
+
def secrets(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
374
338
|
...
|
375
339
|
|
376
340
|
@typing.overload
|
377
|
-
def
|
341
|
+
def secrets(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
378
342
|
...
|
379
343
|
|
380
|
-
def
|
344
|
+
def secrets(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, sources: typing.List[typing.Union[str, typing.Dict[str, typing.Any]]] = []):
|
381
345
|
"""
|
382
|
-
Specifies
|
346
|
+
Specifies secrets to be retrieved and injected as environment variables prior to
|
347
|
+
the execution of a step.
|
383
348
|
"""
|
384
349
|
...
|
385
350
|
|
386
351
|
@typing.overload
|
387
|
-
def
|
352
|
+
def card(*, type: str = 'default', id: typing.Optional[str] = None, options: typing.Dict[str, typing.Any] = {}, timeout: int = 45) -> typing.Callable[[typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]], typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]]:
|
388
353
|
"""
|
389
|
-
|
354
|
+
Creates a human-readable report, a Metaflow Card, after this step completes.
|
390
355
|
|
391
|
-
|
392
|
-
attributes set in the `@pyi_base` flow-level decorator. Hence,
|
393
|
-
you can use `@pypi_base` to set packages required by all
|
394
|
-
steps and use `@pypi` to specify step-specific overrides.
|
356
|
+
Note that you may add multiple `@card` decorators in a step with different parameters.
|
395
357
|
"""
|
396
358
|
...
|
397
359
|
|
398
360
|
@typing.overload
|
399
|
-
def
|
361
|
+
def card(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
400
362
|
...
|
401
363
|
|
402
364
|
@typing.overload
|
403
|
-
def
|
365
|
+
def card(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
404
366
|
...
|
405
367
|
|
406
|
-
def
|
368
|
+
def card(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, type: str = 'default', id: typing.Optional[str] = None, options: typing.Dict[str, typing.Any] = {}, timeout: int = 45):
|
407
369
|
"""
|
408
|
-
|
370
|
+
Creates a human-readable report, a Metaflow Card, after this step completes.
|
409
371
|
|
410
|
-
|
411
|
-
attributes set in the `@pyi_base` flow-level decorator. Hence,
|
412
|
-
you can use `@pypi_base` to set packages required by all
|
413
|
-
steps and use `@pypi` to specify step-specific overrides.
|
372
|
+
Note that you may add multiple `@card` decorators in a step with different parameters.
|
414
373
|
"""
|
415
374
|
...
|
416
375
|
|
@@ -434,70 +393,82 @@ def parallel(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None],
|
|
434
393
|
...
|
435
394
|
|
436
395
|
@typing.overload
|
437
|
-
def
|
396
|
+
def resources(*, cpu: int = 1, gpu: typing.Optional[int] = None, disk: typing.Optional[int] = None, memory: int = 4096, shared_memory: typing.Optional[int] = None) -> typing.Callable[[typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]], typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]]:
|
438
397
|
"""
|
439
|
-
Specifies
|
440
|
-
|
441
|
-
This decorator is useful if this step may hang indefinitely.
|
398
|
+
Specifies the resources needed when executing this step.
|
442
399
|
|
443
|
-
|
444
|
-
|
445
|
-
retried if needed and the exception will be caught by the `@catch` decorator, if present.
|
400
|
+
Use `@resources` to specify the resource requirements
|
401
|
+
independently of the specific compute layer (`@batch`, `@kubernetes`).
|
446
402
|
|
447
|
-
|
448
|
-
|
403
|
+
You can choose the compute layer on the command line by executing e.g.
|
404
|
+
```
|
405
|
+
python myflow.py run --with batch
|
406
|
+
```
|
407
|
+
or
|
408
|
+
```
|
409
|
+
python myflow.py run --with kubernetes
|
410
|
+
```
|
411
|
+
which executes the flow on the desired system using the
|
412
|
+
requirements specified in `@resources`.
|
449
413
|
"""
|
450
414
|
...
|
451
415
|
|
452
416
|
@typing.overload
|
453
|
-
def
|
417
|
+
def resources(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
454
418
|
...
|
455
419
|
|
456
420
|
@typing.overload
|
457
|
-
def
|
421
|
+
def resources(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
458
422
|
...
|
459
423
|
|
460
|
-
def
|
424
|
+
def resources(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, cpu: int = 1, gpu: typing.Optional[int] = None, disk: typing.Optional[int] = None, memory: int = 4096, shared_memory: typing.Optional[int] = None):
|
461
425
|
"""
|
462
|
-
Specifies
|
463
|
-
|
464
|
-
This decorator is useful if this step may hang indefinitely.
|
426
|
+
Specifies the resources needed when executing this step.
|
465
427
|
|
466
|
-
|
467
|
-
|
468
|
-
retried if needed and the exception will be caught by the `@catch` decorator, if present.
|
428
|
+
Use `@resources` to specify the resource requirements
|
429
|
+
independently of the specific compute layer (`@batch`, `@kubernetes`).
|
469
430
|
|
470
|
-
|
471
|
-
|
431
|
+
You can choose the compute layer on the command line by executing e.g.
|
432
|
+
```
|
433
|
+
python myflow.py run --with batch
|
434
|
+
```
|
435
|
+
or
|
436
|
+
```
|
437
|
+
python myflow.py run --with kubernetes
|
438
|
+
```
|
439
|
+
which executes the flow on the desired system using the
|
440
|
+
requirements specified in `@resources`.
|
472
441
|
"""
|
473
442
|
...
|
474
443
|
|
475
|
-
|
444
|
+
@typing.overload
|
445
|
+
def pypi(*, packages: typing.Dict[str, str] = {}, python: typing.Optional[str] = None) -> typing.Callable[[typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]], typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]]]:
|
476
446
|
"""
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
447
|
+
Specifies the PyPI packages for the step.
|
448
|
+
|
449
|
+
Information in this decorator will augment any
|
450
|
+
attributes set in the `@pyi_base` flow-level decorator. Hence,
|
451
|
+
you can use `@pypi_base` to set packages required by all
|
452
|
+
steps and use `@pypi` to specify step-specific overrides.
|
482
453
|
"""
|
483
454
|
...
|
484
455
|
|
485
456
|
@typing.overload
|
486
|
-
def
|
487
|
-
"""
|
488
|
-
Specifies the times when the flow should be run when running on a
|
489
|
-
production scheduler.
|
490
|
-
"""
|
457
|
+
def pypi(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
491
458
|
...
|
492
459
|
|
493
460
|
@typing.overload
|
494
|
-
def
|
461
|
+
def pypi(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
495
462
|
...
|
496
463
|
|
497
|
-
def
|
464
|
+
def pypi(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, packages: typing.Dict[str, str] = {}, python: typing.Optional[str] = None):
|
498
465
|
"""
|
499
|
-
Specifies the
|
500
|
-
|
466
|
+
Specifies the PyPI packages for the step.
|
467
|
+
|
468
|
+
Information in this decorator will augment any
|
469
|
+
attributes set in the `@pyi_base` flow-level decorator. Hence,
|
470
|
+
you can use `@pypi_base` to set packages required by all
|
471
|
+
steps and use `@pypi` to specify step-specific overrides.
|
501
472
|
"""
|
502
473
|
...
|
503
474
|
|
@@ -524,76 +495,13 @@ def conda_base(f: typing.Optional[typing.Type[FlowSpecDerived]] = None, *, packa
|
|
524
495
|
"""
|
525
496
|
...
|
526
497
|
|
527
|
-
|
528
|
-
def trigger(*, event: typing.Union[str, typing.Dict[str, typing.Any], None] = None, events: typing.List[typing.Union[str, typing.Dict[str, typing.Any]]] = [], options: typing.Dict[str, typing.Any] = {}) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
|
529
|
-
"""
|
530
|
-
Specifies the event(s) that this flow depends on.
|
531
|
-
|
532
|
-
```
|
533
|
-
@trigger(event='foo')
|
534
|
-
```
|
535
|
-
or
|
536
|
-
```
|
537
|
-
@trigger(events=['foo', 'bar'])
|
538
|
-
```
|
539
|
-
|
540
|
-
Additionally, you can specify the parameter mappings
|
541
|
-
to map event payload to Metaflow parameters for the flow.
|
542
|
-
```
|
543
|
-
@trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
|
544
|
-
```
|
545
|
-
or
|
546
|
-
```
|
547
|
-
@trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
|
548
|
-
{'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
|
549
|
-
```
|
550
|
-
|
551
|
-
'parameters' can also be a list of strings and tuples like so:
|
552
|
-
```
|
553
|
-
@trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
|
554
|
-
```
|
555
|
-
This is equivalent to:
|
556
|
-
```
|
557
|
-
@trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
|
558
|
-
```
|
559
|
-
"""
|
560
|
-
...
|
561
|
-
|
562
|
-
@typing.overload
|
563
|
-
def trigger(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
|
564
|
-
...
|
565
|
-
|
566
|
-
def trigger(f: typing.Optional[typing.Type[FlowSpecDerived]] = None, *, event: typing.Union[str, typing.Dict[str, typing.Any], None] = None, events: typing.List[typing.Union[str, typing.Dict[str, typing.Any]]] = [], options: typing.Dict[str, typing.Any] = {}):
|
498
|
+
def airflow_s3_key_sensor(*, timeout: int, poke_interval: int, mode: str, exponential_backoff: bool, pool: str, soft_fail: bool, name: str, description: str, bucket_key: typing.Union[str, typing.List[str]], bucket_name: str, wildcard_match: bool, aws_conn_id: str, verify: bool) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
|
567
499
|
"""
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
or
|
574
|
-
```
|
575
|
-
@trigger(events=['foo', 'bar'])
|
576
|
-
```
|
577
|
-
|
578
|
-
Additionally, you can specify the parameter mappings
|
579
|
-
to map event payload to Metaflow parameters for the flow.
|
580
|
-
```
|
581
|
-
@trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
|
582
|
-
```
|
583
|
-
or
|
584
|
-
```
|
585
|
-
@trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
|
586
|
-
{'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
|
587
|
-
```
|
588
|
-
|
589
|
-
'parameters' can also be a list of strings and tuples like so:
|
590
|
-
```
|
591
|
-
@trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
|
592
|
-
```
|
593
|
-
This is equivalent to:
|
594
|
-
```
|
595
|
-
@trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
|
596
|
-
```
|
500
|
+
The `@airflow_s3_key_sensor` decorator attaches a Airflow [S3KeySensor](https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/_api/airflow/providers/amazon/aws/sensors/s3/index.html#airflow.providers.amazon.aws.sensors.s3.S3KeySensor)
|
501
|
+
before the start step of the flow. This decorator only works when a flow is scheduled on Airflow
|
502
|
+
and is compiled using `airflow create`. More than one `@airflow_s3_key_sensor` can be
|
503
|
+
added as a flow decorators. Adding more than one decorator will ensure that `start` step
|
504
|
+
starts only after all sensors finish.
|
597
505
|
"""
|
598
506
|
...
|
599
507
|
|
@@ -620,15 +528,6 @@ def pypi_base(f: typing.Optional[typing.Type[FlowSpecDerived]] = None, *, packag
|
|
620
528
|
"""
|
621
529
|
...
|
622
530
|
|
623
|
-
def project(*, name: str) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
|
624
|
-
"""
|
625
|
-
Specifies what flows belong to the same project.
|
626
|
-
|
627
|
-
A project-specific namespace is created for all flows that
|
628
|
-
use the same `@project(name)`.
|
629
|
-
"""
|
630
|
-
...
|
631
|
-
|
632
531
|
@typing.overload
|
633
532
|
def trigger_on_finish(*, flow: typing.Union[typing.Dict[str, str], str, None] = None, flows: typing.List[typing.Union[str, typing.Dict[str, str]]] = [], options: typing.Dict[str, typing.Any] = {}) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
|
634
533
|
"""
|
@@ -717,3 +616,104 @@ def airflow_external_task_sensor(*, timeout: int, poke_interval: int, mode: str,
|
|
717
616
|
"""
|
718
617
|
...
|
719
618
|
|
619
|
+
def project(*, name: str) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
|
620
|
+
"""
|
621
|
+
Specifies what flows belong to the same project.
|
622
|
+
|
623
|
+
A project-specific namespace is created for all flows that
|
624
|
+
use the same `@project(name)`.
|
625
|
+
"""
|
626
|
+
...
|
627
|
+
|
628
|
+
@typing.overload
|
629
|
+
def schedule(*, hourly: bool = False, daily: bool = True, weekly: bool = False, cron: typing.Optional[str] = None, timezone: typing.Optional[str] = None) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
|
630
|
+
"""
|
631
|
+
Specifies the times when the flow should be run when running on a
|
632
|
+
production scheduler.
|
633
|
+
"""
|
634
|
+
...
|
635
|
+
|
636
|
+
@typing.overload
|
637
|
+
def schedule(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
|
638
|
+
...
|
639
|
+
|
640
|
+
def schedule(f: typing.Optional[typing.Type[FlowSpecDerived]] = None, *, hourly: bool = False, daily: bool = True, weekly: bool = False, cron: typing.Optional[str] = None, timezone: typing.Optional[str] = None):
|
641
|
+
"""
|
642
|
+
Specifies the times when the flow should be run when running on a
|
643
|
+
production scheduler.
|
644
|
+
"""
|
645
|
+
...
|
646
|
+
|
647
|
+
@typing.overload
|
648
|
+
def trigger(*, event: typing.Union[str, typing.Dict[str, typing.Any], None] = None, events: typing.List[typing.Union[str, typing.Dict[str, typing.Any]]] = [], options: typing.Dict[str, typing.Any] = {}) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
|
649
|
+
"""
|
650
|
+
Specifies the event(s) that this flow depends on.
|
651
|
+
|
652
|
+
```
|
653
|
+
@trigger(event='foo')
|
654
|
+
```
|
655
|
+
or
|
656
|
+
```
|
657
|
+
@trigger(events=['foo', 'bar'])
|
658
|
+
```
|
659
|
+
|
660
|
+
Additionally, you can specify the parameter mappings
|
661
|
+
to map event payload to Metaflow parameters for the flow.
|
662
|
+
```
|
663
|
+
@trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
|
664
|
+
```
|
665
|
+
or
|
666
|
+
```
|
667
|
+
@trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
|
668
|
+
{'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
|
669
|
+
```
|
670
|
+
|
671
|
+
'parameters' can also be a list of strings and tuples like so:
|
672
|
+
```
|
673
|
+
@trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
|
674
|
+
```
|
675
|
+
This is equivalent to:
|
676
|
+
```
|
677
|
+
@trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
|
678
|
+
```
|
679
|
+
"""
|
680
|
+
...
|
681
|
+
|
682
|
+
@typing.overload
|
683
|
+
def trigger(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
|
684
|
+
...
|
685
|
+
|
686
|
+
def trigger(f: typing.Optional[typing.Type[FlowSpecDerived]] = None, *, event: typing.Union[str, typing.Dict[str, typing.Any], None] = None, events: typing.List[typing.Union[str, typing.Dict[str, typing.Any]]] = [], options: typing.Dict[str, typing.Any] = {}):
|
687
|
+
"""
|
688
|
+
Specifies the event(s) that this flow depends on.
|
689
|
+
|
690
|
+
```
|
691
|
+
@trigger(event='foo')
|
692
|
+
```
|
693
|
+
or
|
694
|
+
```
|
695
|
+
@trigger(events=['foo', 'bar'])
|
696
|
+
```
|
697
|
+
|
698
|
+
Additionally, you can specify the parameter mappings
|
699
|
+
to map event payload to Metaflow parameters for the flow.
|
700
|
+
```
|
701
|
+
@trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
|
702
|
+
```
|
703
|
+
or
|
704
|
+
```
|
705
|
+
@trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
|
706
|
+
{'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
|
707
|
+
```
|
708
|
+
|
709
|
+
'parameters' can also be a list of strings and tuples like so:
|
710
|
+
```
|
711
|
+
@trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
|
712
|
+
```
|
713
|
+
This is equivalent to:
|
714
|
+
```
|
715
|
+
@trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
|
716
|
+
```
|
717
|
+
"""
|
718
|
+
...
|
719
|
+
|