metaflow-stubs 2.12.35__py2.py3-none-any.whl → 2.12.36__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 +243 -243
- metaflow-stubs/cards.pyi +2 -2
- metaflow-stubs/cli.pyi +2 -2
- metaflow-stubs/client/__init__.pyi +2 -2
- metaflow-stubs/client/core.pyi +6 -6
- 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 +6 -6
- metaflow-stubs/generated_for.txt +1 -1
- metaflow-stubs/includefile.pyi +5 -5
- 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 +5 -5
- 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 +5 -5
- metaflow-stubs/plugins/__init__.pyi +12 -12
- 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 +2 -2
- metaflow-stubs/plugins/argo/argo_workflows_cli.pyi +2 -2
- metaflow-stubs/plugins/argo/argo_workflows_decorator.pyi +3 -3
- metaflow-stubs/plugins/argo/argo_workflows_deployer.pyi +3 -3
- metaflow-stubs/plugins/argo/argo_workflows_deployer_objects.pyi +4 -4
- metaflow-stubs/plugins/aws/__init__.pyi +3 -3
- 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 +4 -4
- 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 +3 -3
- 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 +3 -3
- 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 +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/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 +3 -3
- 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 +3 -3
- metaflow-stubs/plugins/pypi/conda_decorator.pyi +2 -2
- metaflow-stubs/plugins/pypi/conda_environment.pyi +4 -4
- 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 +3 -3
- metaflow-stubs/plugins/secrets/inline_secrets_provider.pyi +4 -4
- 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 +3 -3
- metaflow-stubs/plugins/timeout_decorator.pyi +2 -2
- 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 +30 -30
- metaflow-stubs/runner/deployer_impl.pyi +3 -3
- 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.35.dist-info → metaflow_stubs-2.12.36.dist-info}/METADATA +2 -2
- metaflow_stubs-2.12.36.dist-info/RECORD +158 -0
- metaflow_stubs-2.12.35.dist-info/RECORD +0 -158
- {metaflow_stubs-2.12.35.dist-info → metaflow_stubs-2.12.36.dist-info}/WHEEL +0 -0
- {metaflow_stubs-2.12.35.dist-info → metaflow_stubs-2.12.36.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-12-
|
3
|
+
# MF version: 2.12.36 #
|
4
|
+
# Generated on 2024-12-07T00:02:15.920105 #
|
5
5
|
######################################################################################################
|
6
6
|
|
7
7
|
from __future__ import annotations
|
8
8
|
|
9
9
|
import typing
|
10
10
|
if typing.TYPE_CHECKING:
|
11
|
-
import datetime
|
12
11
|
import typing
|
12
|
+
import datetime
|
13
13
|
FlowSpecDerived = typing.TypeVar("FlowSpecDerived", bound="FlowSpec", contravariant=False, covariant=False)
|
14
14
|
StepFlag = typing.NewType("StepFlag", bool)
|
15
15
|
|
@@ -137,84 +137,9 @@ def step(f: typing.Union[typing.Callable[[FlowSpecDerived], None], typing.Callab
|
|
137
137
|
"""
|
138
138
|
...
|
139
139
|
|
140
|
-
|
141
|
-
def parallel(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
142
|
-
"""
|
143
|
-
Decorator prototype for all step decorators. This function gets specialized
|
144
|
-
and imported for all decorators types by _import_plugin_decorators().
|
145
|
-
"""
|
146
|
-
...
|
147
|
-
|
148
|
-
@typing.overload
|
149
|
-
def parallel(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
150
|
-
...
|
151
|
-
|
152
|
-
def parallel(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None):
|
153
|
-
"""
|
154
|
-
Decorator prototype for all step decorators. This function gets specialized
|
155
|
-
and imported for all decorators types by _import_plugin_decorators().
|
156
|
-
"""
|
157
|
-
...
|
158
|
-
|
159
|
-
@typing.overload
|
160
|
-
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]]]:
|
161
|
-
"""
|
162
|
-
Specifies the number of times the task corresponding
|
163
|
-
to a step needs to be retried.
|
164
|
-
|
165
|
-
This decorator is useful for handling transient errors, such as networking issues.
|
166
|
-
If your task contains operations that can't be retried safely, e.g. database updates,
|
167
|
-
it is advisable to annotate it with `@retry(times=0)`.
|
168
|
-
|
169
|
-
This can be used in conjunction with the `@catch` decorator. The `@catch`
|
170
|
-
decorator will execute a no-op task after all retries have been exhausted,
|
171
|
-
ensuring that the flow execution can continue.
|
172
|
-
"""
|
173
|
-
...
|
174
|
-
|
175
|
-
@typing.overload
|
176
|
-
def retry(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
177
|
-
...
|
178
|
-
|
179
|
-
@typing.overload
|
180
|
-
def retry(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
181
|
-
...
|
182
|
-
|
183
|
-
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):
|
184
|
-
"""
|
185
|
-
Specifies the number of times the task corresponding
|
186
|
-
to a step needs to be retried.
|
187
|
-
|
188
|
-
This decorator is useful for handling transient errors, such as networking issues.
|
189
|
-
If your task contains operations that can't be retried safely, e.g. database updates,
|
190
|
-
it is advisable to annotate it with `@retry(times=0)`.
|
191
|
-
|
192
|
-
This can be used in conjunction with the `@catch` decorator. The `@catch`
|
193
|
-
decorator will execute a no-op task after all retries have been exhausted,
|
194
|
-
ensuring that the flow execution can continue.
|
195
|
-
"""
|
196
|
-
...
|
197
|
-
|
198
|
-
@typing.overload
|
199
|
-
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]]]:
|
200
|
-
"""
|
201
|
-
Specifies secrets to be retrieved and injected as environment variables prior to
|
202
|
-
the execution of a step.
|
203
|
-
"""
|
204
|
-
...
|
205
|
-
|
206
|
-
@typing.overload
|
207
|
-
def secrets(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
208
|
-
...
|
209
|
-
|
210
|
-
@typing.overload
|
211
|
-
def secrets(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
212
|
-
...
|
213
|
-
|
214
|
-
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]]] = []):
|
140
|
+
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, qos: str = 'Burstable') -> 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]]]:
|
215
141
|
"""
|
216
|
-
Specifies
|
217
|
-
the execution of a step.
|
142
|
+
Specifies that this step should execute on Kubernetes.
|
218
143
|
"""
|
219
144
|
...
|
220
145
|
|
@@ -268,59 +193,26 @@ def resources(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None]
|
|
268
193
|
...
|
269
194
|
|
270
195
|
@typing.overload
|
271
|
-
def
|
272
|
-
"""
|
273
|
-
Specifies the PyPI packages for the step.
|
274
|
-
|
275
|
-
Information in this decorator will augment any
|
276
|
-
attributes set in the `@pyi_base` flow-level decorator. Hence,
|
277
|
-
you can use `@pypi_base` to set packages required by all
|
278
|
-
steps and use `@pypi` to specify step-specific overrides.
|
279
|
-
"""
|
280
|
-
...
|
281
|
-
|
282
|
-
@typing.overload
|
283
|
-
def pypi(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
284
|
-
...
|
285
|
-
|
286
|
-
@typing.overload
|
287
|
-
def pypi(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
288
|
-
...
|
289
|
-
|
290
|
-
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):
|
196
|
+
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]]]:
|
291
197
|
"""
|
292
|
-
Specifies the
|
198
|
+
Specifies that the step will success under all circumstances.
|
293
199
|
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
"""
|
299
|
-
...
|
300
|
-
|
301
|
-
@typing.overload
|
302
|
-
def environment(*, vars: typing.Dict[str, str] = {}) -> 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]]]:
|
303
|
-
"""
|
304
|
-
Specifies environment variables to be set prior to the execution of a step.
|
200
|
+
The decorator will create an optional artifact, specified by `var`, which
|
201
|
+
contains the exception raised. You can use it to detect the presence
|
202
|
+
of errors, indicating that all happy-path artifacts produced by the step
|
203
|
+
are missing.
|
305
204
|
"""
|
306
205
|
...
|
307
206
|
|
308
207
|
@typing.overload
|
309
|
-
def
|
208
|
+
def catch(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
310
209
|
...
|
311
210
|
|
312
211
|
@typing.overload
|
313
|
-
def
|
314
|
-
...
|
315
|
-
|
316
|
-
def environment(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, vars: typing.Dict[str, str] = {}):
|
317
|
-
"""
|
318
|
-
Specifies environment variables to be set prior to the execution of a step.
|
319
|
-
"""
|
212
|
+
def catch(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
320
213
|
...
|
321
214
|
|
322
|
-
|
323
|
-
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]]]:
|
215
|
+
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):
|
324
216
|
"""
|
325
217
|
Specifies that the step will success under all circumstances.
|
326
218
|
|
@@ -332,21 +224,25 @@ def catch(*, var: typing.Optional[str] = None, print_exception: bool = True) ->
|
|
332
224
|
...
|
333
225
|
|
334
226
|
@typing.overload
|
335
|
-
def
|
227
|
+
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]]]:
|
228
|
+
"""
|
229
|
+
Specifies secrets to be retrieved and injected as environment variables prior to
|
230
|
+
the execution of a step.
|
231
|
+
"""
|
336
232
|
...
|
337
233
|
|
338
234
|
@typing.overload
|
339
|
-
def
|
235
|
+
def secrets(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
340
236
|
...
|
341
237
|
|
342
|
-
|
238
|
+
@typing.overload
|
239
|
+
def secrets(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
240
|
+
...
|
241
|
+
|
242
|
+
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]]] = []):
|
343
243
|
"""
|
344
|
-
Specifies
|
345
|
-
|
346
|
-
The decorator will create an optional artifact, specified by `var`, which
|
347
|
-
contains the exception raised. You can use it to detect the presence
|
348
|
-
of errors, indicating that all happy-path artifacts produced by the step
|
349
|
-
are missing.
|
244
|
+
Specifies secrets to be retrieved and injected as environment variables prior to
|
245
|
+
the execution of a step.
|
350
246
|
"""
|
351
247
|
...
|
352
248
|
|
@@ -390,54 +286,85 @@ def timeout(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None],
|
|
390
286
|
...
|
391
287
|
|
392
288
|
@typing.overload
|
393
|
-
def
|
289
|
+
def parallel(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
394
290
|
"""
|
395
|
-
|
396
|
-
|
397
|
-
Note that you may add multiple `@card` decorators in a step with different parameters.
|
291
|
+
Decorator prototype for all step decorators. This function gets specialized
|
292
|
+
and imported for all decorators types by _import_plugin_decorators().
|
398
293
|
"""
|
399
294
|
...
|
400
295
|
|
401
296
|
@typing.overload
|
402
|
-
def
|
297
|
+
def parallel(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
403
298
|
...
|
404
299
|
|
405
|
-
|
406
|
-
|
300
|
+
def parallel(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None):
|
301
|
+
"""
|
302
|
+
Decorator prototype for all step decorators. This function gets specialized
|
303
|
+
and imported for all decorators types by _import_plugin_decorators().
|
304
|
+
"""
|
407
305
|
...
|
408
306
|
|
409
|
-
|
307
|
+
@typing.overload
|
308
|
+
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]]]:
|
410
309
|
"""
|
411
|
-
|
310
|
+
Specifies the number of times the task corresponding
|
311
|
+
to a step needs to be retried.
|
412
312
|
|
413
|
-
|
313
|
+
This decorator is useful for handling transient errors, such as networking issues.
|
314
|
+
If your task contains operations that can't be retried safely, e.g. database updates,
|
315
|
+
it is advisable to annotate it with `@retry(times=0)`.
|
316
|
+
|
317
|
+
This can be used in conjunction with the `@catch` decorator. The `@catch`
|
318
|
+
decorator will execute a no-op task after all retries have been exhausted,
|
319
|
+
ensuring that the flow execution can continue.
|
414
320
|
"""
|
415
321
|
...
|
416
322
|
|
417
|
-
|
323
|
+
@typing.overload
|
324
|
+
def retry(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
325
|
+
...
|
326
|
+
|
327
|
+
@typing.overload
|
328
|
+
def retry(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
329
|
+
...
|
330
|
+
|
331
|
+
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):
|
418
332
|
"""
|
419
|
-
Specifies
|
333
|
+
Specifies the number of times the task corresponding
|
334
|
+
to a step needs to be retried.
|
335
|
+
|
336
|
+
This decorator is useful for handling transient errors, such as networking issues.
|
337
|
+
If your task contains operations that can't be retried safely, e.g. database updates,
|
338
|
+
it is advisable to annotate it with `@retry(times=0)`.
|
339
|
+
|
340
|
+
This can be used in conjunction with the `@catch` decorator. The `@catch`
|
341
|
+
decorator will execute a no-op task after all retries have been exhausted,
|
342
|
+
ensuring that the flow execution can continue.
|
420
343
|
"""
|
421
344
|
...
|
422
345
|
|
423
346
|
@typing.overload
|
424
|
-
def
|
347
|
+
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]]]:
|
425
348
|
"""
|
426
|
-
|
349
|
+
Creates a human-readable report, a Metaflow Card, after this step completes.
|
350
|
+
|
351
|
+
Note that you may add multiple `@card` decorators in a step with different parameters.
|
427
352
|
"""
|
428
353
|
...
|
429
354
|
|
430
355
|
@typing.overload
|
431
|
-
def
|
356
|
+
def card(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
432
357
|
...
|
433
358
|
|
434
359
|
@typing.overload
|
435
|
-
def
|
360
|
+
def card(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
436
361
|
...
|
437
362
|
|
438
|
-
def
|
363
|
+
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):
|
439
364
|
"""
|
440
|
-
|
365
|
+
Creates a human-readable report, a Metaflow Card, after this step completes.
|
366
|
+
|
367
|
+
Note that you may add multiple `@card` decorators in a step with different parameters.
|
441
368
|
"""
|
442
369
|
...
|
443
370
|
|
@@ -473,127 +400,75 @@ def conda(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], ty
|
|
473
400
|
...
|
474
401
|
|
475
402
|
@typing.overload
|
476
|
-
def
|
403
|
+
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]]]:
|
477
404
|
"""
|
478
|
-
Specifies the
|
479
|
-
|
405
|
+
Specifies the PyPI packages for the step.
|
406
|
+
|
407
|
+
Information in this decorator will augment any
|
408
|
+
attributes set in the `@pyi_base` flow-level decorator. Hence,
|
409
|
+
you can use `@pypi_base` to set packages required by all
|
410
|
+
steps and use `@pypi` to specify step-specific overrides.
|
480
411
|
"""
|
481
412
|
...
|
482
413
|
|
483
414
|
@typing.overload
|
484
|
-
def
|
415
|
+
def pypi(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
485
416
|
...
|
486
417
|
|
487
|
-
|
418
|
+
@typing.overload
|
419
|
+
def pypi(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
420
|
+
...
|
421
|
+
|
422
|
+
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):
|
488
423
|
"""
|
489
|
-
Specifies the
|
490
|
-
|
424
|
+
Specifies the PyPI packages for the step.
|
425
|
+
|
426
|
+
Information in this decorator will augment any
|
427
|
+
attributes set in the `@pyi_base` flow-level decorator. Hence,
|
428
|
+
you can use `@pypi_base` to set packages required by all
|
429
|
+
steps and use `@pypi` to specify step-specific overrides.
|
491
430
|
"""
|
492
431
|
...
|
493
432
|
|
494
433
|
@typing.overload
|
495
|
-
def
|
434
|
+
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]]]:
|
496
435
|
"""
|
497
|
-
Specifies
|
498
|
-
|
499
|
-
```
|
500
|
-
@trigger(event='foo')
|
501
|
-
```
|
502
|
-
or
|
503
|
-
```
|
504
|
-
@trigger(events=['foo', 'bar'])
|
505
|
-
```
|
506
|
-
|
507
|
-
Additionally, you can specify the parameter mappings
|
508
|
-
to map event payload to Metaflow parameters for the flow.
|
509
|
-
```
|
510
|
-
@trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
|
511
|
-
```
|
512
|
-
or
|
513
|
-
```
|
514
|
-
@trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
|
515
|
-
{'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
|
516
|
-
```
|
517
|
-
|
518
|
-
'parameters' can also be a list of strings and tuples like so:
|
519
|
-
```
|
520
|
-
@trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
|
521
|
-
```
|
522
|
-
This is equivalent to:
|
523
|
-
```
|
524
|
-
@trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
|
525
|
-
```
|
436
|
+
Specifies that this step should execute on [AWS Batch](https://aws.amazon.com/batch/).
|
526
437
|
"""
|
527
438
|
...
|
528
439
|
|
529
440
|
@typing.overload
|
530
|
-
def
|
441
|
+
def batch(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
531
442
|
...
|
532
443
|
|
533
|
-
|
534
|
-
|
535
|
-
Specifies the event(s) that this flow depends on.
|
536
|
-
|
537
|
-
```
|
538
|
-
@trigger(event='foo')
|
539
|
-
```
|
540
|
-
or
|
541
|
-
```
|
542
|
-
@trigger(events=['foo', 'bar'])
|
543
|
-
```
|
544
|
-
|
545
|
-
Additionally, you can specify the parameter mappings
|
546
|
-
to map event payload to Metaflow parameters for the flow.
|
547
|
-
```
|
548
|
-
@trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
|
549
|
-
```
|
550
|
-
or
|
551
|
-
```
|
552
|
-
@trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
|
553
|
-
{'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
|
554
|
-
```
|
555
|
-
|
556
|
-
'parameters' can also be a list of strings and tuples like so:
|
557
|
-
```
|
558
|
-
@trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
|
559
|
-
```
|
560
|
-
This is equivalent to:
|
561
|
-
```
|
562
|
-
@trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
|
563
|
-
```
|
564
|
-
"""
|
444
|
+
@typing.overload
|
445
|
+
def batch(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
565
446
|
...
|
566
447
|
|
567
|
-
def
|
448
|
+
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):
|
568
449
|
"""
|
569
|
-
|
570
|
-
before the start step of the flow. This decorator only works when a flow is scheduled on Airflow
|
571
|
-
and is compiled using `airflow create`. More than one `@airflow_s3_key_sensor` can be
|
572
|
-
added as a flow decorators. Adding more than one decorator will ensure that `start` step
|
573
|
-
starts only after all sensors finish.
|
450
|
+
Specifies that this step should execute on [AWS Batch](https://aws.amazon.com/batch/).
|
574
451
|
"""
|
575
452
|
...
|
576
453
|
|
577
454
|
@typing.overload
|
578
|
-
def
|
455
|
+
def environment(*, vars: typing.Dict[str, str] = {}) -> 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]]]:
|
579
456
|
"""
|
580
|
-
Specifies
|
581
|
-
|
582
|
-
Use `@pypi_base` to set common packages required by all
|
583
|
-
steps and use `@pypi` to specify step-specific overrides.
|
457
|
+
Specifies environment variables to be set prior to the execution of a step.
|
584
458
|
"""
|
585
459
|
...
|
586
460
|
|
587
461
|
@typing.overload
|
588
|
-
def
|
462
|
+
def environment(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
|
589
463
|
...
|
590
464
|
|
591
|
-
|
465
|
+
@typing.overload
|
466
|
+
def environment(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
|
467
|
+
...
|
468
|
+
|
469
|
+
def environment(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, vars: typing.Dict[str, str] = {}):
|
592
470
|
"""
|
593
|
-
Specifies
|
594
|
-
|
595
|
-
Use `@pypi_base` to set common packages required by all
|
596
|
-
steps and use `@pypi` to specify step-specific overrides.
|
471
|
+
Specifies environment variables to be set prior to the execution of a step.
|
597
472
|
"""
|
598
473
|
...
|
599
474
|
|
@@ -678,13 +553,6 @@ def trigger_on_finish(f: typing.Optional[typing.Type[FlowSpecDerived]] = None, *
|
|
678
553
|
"""
|
679
554
|
...
|
680
555
|
|
681
|
-
def airflow_external_task_sensor(*, timeout: int, poke_interval: int, mode: str, exponential_backoff: bool, pool: str, soft_fail: bool, name: str, description: str, external_dag_id: str, external_task_ids: typing.List[str], allowed_states: typing.List[str], failed_states: typing.List[str], execution_delta: "datetime.timedelta", check_existence: bool) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
|
682
|
-
"""
|
683
|
-
The `@airflow_external_task_sensor` decorator attaches a Airflow [ExternalTaskSensor](https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/sensors/external_task/index.html#airflow.sensors.external_task.ExternalTaskSensor) before the start step of the flow.
|
684
|
-
This decorator only works when a flow is scheduled on Airflow and is compiled using `airflow create`. More than one `@airflow_external_task_sensor` can be added as a flow decorators. Adding more than one decorator will ensure that `start` step starts only after all sensors finish.
|
685
|
-
"""
|
686
|
-
...
|
687
|
-
|
688
556
|
@typing.overload
|
689
557
|
def conda_base(*, packages: typing.Dict[str, str] = {}, libraries: typing.Dict[str, str] = {}, python: typing.Optional[str] = None, disabled: bool = False) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
|
690
558
|
"""
|
@@ -708,6 +576,138 @@ def conda_base(f: typing.Optional[typing.Type[FlowSpecDerived]] = None, *, packa
|
|
708
576
|
"""
|
709
577
|
...
|
710
578
|
|
579
|
+
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]]:
|
580
|
+
"""
|
581
|
+
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)
|
582
|
+
before the start step of the flow. This decorator only works when a flow is scheduled on Airflow
|
583
|
+
and is compiled using `airflow create`. More than one `@airflow_s3_key_sensor` can be
|
584
|
+
added as a flow decorators. Adding more than one decorator will ensure that `start` step
|
585
|
+
starts only after all sensors finish.
|
586
|
+
"""
|
587
|
+
...
|
588
|
+
|
589
|
+
@typing.overload
|
590
|
+
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]]:
|
591
|
+
"""
|
592
|
+
Specifies the times when the flow should be run when running on a
|
593
|
+
production scheduler.
|
594
|
+
"""
|
595
|
+
...
|
596
|
+
|
597
|
+
@typing.overload
|
598
|
+
def schedule(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
|
599
|
+
...
|
600
|
+
|
601
|
+
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):
|
602
|
+
"""
|
603
|
+
Specifies the times when the flow should be run when running on a
|
604
|
+
production scheduler.
|
605
|
+
"""
|
606
|
+
...
|
607
|
+
|
608
|
+
@typing.overload
|
609
|
+
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]]:
|
610
|
+
"""
|
611
|
+
Specifies the event(s) that this flow depends on.
|
612
|
+
|
613
|
+
```
|
614
|
+
@trigger(event='foo')
|
615
|
+
```
|
616
|
+
or
|
617
|
+
```
|
618
|
+
@trigger(events=['foo', 'bar'])
|
619
|
+
```
|
620
|
+
|
621
|
+
Additionally, you can specify the parameter mappings
|
622
|
+
to map event payload to Metaflow parameters for the flow.
|
623
|
+
```
|
624
|
+
@trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
|
625
|
+
```
|
626
|
+
or
|
627
|
+
```
|
628
|
+
@trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
|
629
|
+
{'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
|
630
|
+
```
|
631
|
+
|
632
|
+
'parameters' can also be a list of strings and tuples like so:
|
633
|
+
```
|
634
|
+
@trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
|
635
|
+
```
|
636
|
+
This is equivalent to:
|
637
|
+
```
|
638
|
+
@trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
|
639
|
+
```
|
640
|
+
"""
|
641
|
+
...
|
642
|
+
|
643
|
+
@typing.overload
|
644
|
+
def trigger(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
|
645
|
+
...
|
646
|
+
|
647
|
+
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] = {}):
|
648
|
+
"""
|
649
|
+
Specifies the event(s) that this flow depends on.
|
650
|
+
|
651
|
+
```
|
652
|
+
@trigger(event='foo')
|
653
|
+
```
|
654
|
+
or
|
655
|
+
```
|
656
|
+
@trigger(events=['foo', 'bar'])
|
657
|
+
```
|
658
|
+
|
659
|
+
Additionally, you can specify the parameter mappings
|
660
|
+
to map event payload to Metaflow parameters for the flow.
|
661
|
+
```
|
662
|
+
@trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
|
663
|
+
```
|
664
|
+
or
|
665
|
+
```
|
666
|
+
@trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
|
667
|
+
{'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
|
668
|
+
```
|
669
|
+
|
670
|
+
'parameters' can also be a list of strings and tuples like so:
|
671
|
+
```
|
672
|
+
@trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
|
673
|
+
```
|
674
|
+
This is equivalent to:
|
675
|
+
```
|
676
|
+
@trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
|
677
|
+
```
|
678
|
+
"""
|
679
|
+
...
|
680
|
+
|
681
|
+
def airflow_external_task_sensor(*, timeout: int, poke_interval: int, mode: str, exponential_backoff: bool, pool: str, soft_fail: bool, name: str, description: str, external_dag_id: str, external_task_ids: typing.List[str], allowed_states: typing.List[str], failed_states: typing.List[str], execution_delta: "datetime.timedelta", check_existence: bool) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
|
682
|
+
"""
|
683
|
+
The `@airflow_external_task_sensor` decorator attaches a Airflow [ExternalTaskSensor](https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/sensors/external_task/index.html#airflow.sensors.external_task.ExternalTaskSensor) before the start step of the flow.
|
684
|
+
This decorator only works when a flow is scheduled on Airflow and is compiled using `airflow create`. More than one `@airflow_external_task_sensor` can be added as a flow decorators. Adding more than one decorator will ensure that `start` step starts only after all sensors finish.
|
685
|
+
"""
|
686
|
+
...
|
687
|
+
|
688
|
+
@typing.overload
|
689
|
+
def pypi_base(*, packages: typing.Dict[str, str] = {}, python: typing.Optional[str] = None) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
|
690
|
+
"""
|
691
|
+
Specifies the PyPI packages for all steps of the flow.
|
692
|
+
|
693
|
+
Use `@pypi_base` to set common packages required by all
|
694
|
+
steps and use `@pypi` to specify step-specific overrides.
|
695
|
+
"""
|
696
|
+
...
|
697
|
+
|
698
|
+
@typing.overload
|
699
|
+
def pypi_base(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
|
700
|
+
...
|
701
|
+
|
702
|
+
def pypi_base(f: typing.Optional[typing.Type[FlowSpecDerived]] = None, *, packages: typing.Dict[str, str] = {}, python: typing.Optional[str] = None):
|
703
|
+
"""
|
704
|
+
Specifies the PyPI packages for all steps of the flow.
|
705
|
+
|
706
|
+
Use `@pypi_base` to set common packages required by all
|
707
|
+
steps and use `@pypi` to specify step-specific overrides.
|
708
|
+
"""
|
709
|
+
...
|
710
|
+
|
711
711
|
def project(*, name: str) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
|
712
712
|
"""
|
713
713
|
Specifies what flows belong to the same project.
|