ob-metaflow-stubs 6.0.3.137__py2.py3-none-any.whl → 6.0.3.138__py2.py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (192) hide show
  1. metaflow-stubs/__init__.pyi +311 -311
  2. metaflow-stubs/cards.pyi +2 -2
  3. metaflow-stubs/cli.pyi +2 -2
  4. metaflow-stubs/cli_components/__init__.pyi +2 -2
  5. metaflow-stubs/cli_components/utils.pyi +2 -2
  6. metaflow-stubs/client/__init__.pyi +2 -2
  7. metaflow-stubs/client/core.pyi +6 -6
  8. metaflow-stubs/client/filecache.pyi +3 -3
  9. metaflow-stubs/events.pyi +2 -2
  10. metaflow-stubs/exception.pyi +2 -2
  11. metaflow-stubs/flowspec.pyi +5 -5
  12. metaflow-stubs/generated_for.txt +1 -1
  13. metaflow-stubs/includefile.pyi +3 -3
  14. metaflow-stubs/info_file.pyi +2 -2
  15. metaflow-stubs/metadata_provider/__init__.pyi +2 -2
  16. metaflow-stubs/metadata_provider/heartbeat.pyi +2 -2
  17. metaflow-stubs/metadata_provider/metadata.pyi +2 -2
  18. metaflow-stubs/metadata_provider/util.pyi +2 -2
  19. metaflow-stubs/metaflow_config.pyi +2 -2
  20. metaflow-stubs/metaflow_current.pyi +86 -86
  21. metaflow-stubs/mf_extensions/__init__.pyi +2 -2
  22. metaflow-stubs/mf_extensions/obcheckpoint/__init__.pyi +2 -2
  23. metaflow-stubs/mf_extensions/obcheckpoint/plugins/__init__.pyi +2 -2
  24. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/__init__.pyi +2 -2
  25. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/card_utils/__init__.pyi +2 -2
  26. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/card_utils/async_cards.pyi +3 -3
  27. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/card_utils/deco_injection_mixin.pyi +2 -2
  28. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/card_utils/extra_components.pyi +3 -3
  29. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/__init__.pyi +2 -2
  30. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/cards/__init__.pyi +2 -2
  31. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/cards/checkpoint_lister.pyi +4 -4
  32. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/cards/lineage_card.pyi +2 -2
  33. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/checkpoint_storage.pyi +4 -4
  34. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/constructors.pyi +2 -2
  35. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/core.pyi +4 -4
  36. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/decorator.pyi +5 -5
  37. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/exceptions.pyi +2 -2
  38. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/final_api.pyi +3 -3
  39. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/checkpoints/lineage.pyi +2 -2
  40. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/datastore/__init__.pyi +2 -2
  41. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/datastore/core.pyi +2 -2
  42. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/datastore/exceptions.pyi +2 -2
  43. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/datastore/task_utils.pyi +4 -4
  44. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/datastore/utils.pyi +2 -2
  45. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/datastructures.pyi +3 -3
  46. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/exceptions.pyi +2 -2
  47. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/hf_hub/__init__.pyi +2 -2
  48. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/hf_hub/decorator.pyi +2 -2
  49. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/modeling_utils/__init__.pyi +2 -2
  50. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/modeling_utils/core.pyi +3 -3
  51. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/modeling_utils/exceptions.pyi +2 -2
  52. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/modeling_utils/model_storage.pyi +4 -4
  53. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/__init__.pyi +2 -2
  54. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/flowspec_utils.pyi +2 -2
  55. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/general.pyi +2 -2
  56. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/identity_utils.pyi +3 -3
  57. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/serialization_handler/__init__.pyi +2 -2
  58. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/serialization_handler/base.pyi +2 -2
  59. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/serialization_handler/tar.pyi +3 -3
  60. metaflow-stubs/mf_extensions/obcheckpoint/plugins/machine_learning_utilities/utils/tar_utils.pyi +3 -3
  61. metaflow-stubs/mf_extensions/outerbounds/__init__.pyi +2 -2
  62. metaflow-stubs/mf_extensions/outerbounds/plugins/__init__.pyi +2 -2
  63. metaflow-stubs/mf_extensions/outerbounds/plugins/snowflake/__init__.pyi +2 -2
  64. metaflow-stubs/mf_extensions/outerbounds/plugins/snowflake/snowflake.pyi +2 -2
  65. metaflow-stubs/mf_extensions/outerbounds/profilers/__init__.pyi +2 -2
  66. metaflow-stubs/mf_extensions/outerbounds/profilers/gpu.pyi +2 -2
  67. metaflow-stubs/mf_extensions/outerbounds/remote_config.pyi +2 -2
  68. metaflow-stubs/mf_extensions/outerbounds/toplevel/__init__.pyi +2 -2
  69. metaflow-stubs/mf_extensions/outerbounds/toplevel/global_aliases_for_metaflow_package.pyi +2 -2
  70. metaflow-stubs/multicore_utils.pyi +2 -2
  71. metaflow-stubs/parameters.pyi +3 -3
  72. metaflow-stubs/plugins/__init__.pyi +12 -12
  73. metaflow-stubs/plugins/airflow/__init__.pyi +2 -2
  74. metaflow-stubs/plugins/airflow/airflow_utils.pyi +2 -2
  75. metaflow-stubs/plugins/airflow/exception.pyi +2 -2
  76. metaflow-stubs/plugins/airflow/sensors/__init__.pyi +2 -2
  77. metaflow-stubs/plugins/airflow/sensors/base_sensor.pyi +2 -2
  78. metaflow-stubs/plugins/airflow/sensors/external_task_sensor.pyi +2 -2
  79. metaflow-stubs/plugins/airflow/sensors/s3_sensor.pyi +2 -2
  80. metaflow-stubs/plugins/argo/__init__.pyi +2 -2
  81. metaflow-stubs/plugins/argo/argo_client.pyi +2 -2
  82. metaflow-stubs/plugins/argo/argo_events.pyi +2 -2
  83. metaflow-stubs/plugins/argo/argo_workflows.pyi +2 -2
  84. metaflow-stubs/plugins/argo/argo_workflows_decorator.pyi +2 -2
  85. metaflow-stubs/plugins/argo/argo_workflows_deployer.pyi +4 -4
  86. metaflow-stubs/plugins/argo/argo_workflows_deployer_objects.pyi +4 -4
  87. metaflow-stubs/plugins/aws/__init__.pyi +2 -2
  88. metaflow-stubs/plugins/aws/aws_client.pyi +2 -2
  89. metaflow-stubs/plugins/aws/aws_utils.pyi +2 -2
  90. metaflow-stubs/plugins/aws/batch/__init__.pyi +2 -2
  91. metaflow-stubs/plugins/aws/batch/batch.pyi +2 -2
  92. metaflow-stubs/plugins/aws/batch/batch_client.pyi +2 -2
  93. metaflow-stubs/plugins/aws/batch/batch_decorator.pyi +2 -2
  94. metaflow-stubs/plugins/aws/secrets_manager/__init__.pyi +2 -2
  95. metaflow-stubs/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.pyi +3 -3
  96. metaflow-stubs/plugins/aws/step_functions/__init__.pyi +2 -2
  97. metaflow-stubs/plugins/aws/step_functions/event_bridge_client.pyi +2 -2
  98. metaflow-stubs/plugins/aws/step_functions/schedule_decorator.pyi +2 -2
  99. metaflow-stubs/plugins/aws/step_functions/step_functions.pyi +2 -2
  100. metaflow-stubs/plugins/aws/step_functions/step_functions_client.pyi +2 -2
  101. metaflow-stubs/plugins/aws/step_functions/step_functions_deployer.pyi +4 -4
  102. metaflow-stubs/plugins/aws/step_functions/step_functions_deployer_objects.pyi +4 -4
  103. metaflow-stubs/plugins/azure/__init__.pyi +2 -2
  104. metaflow-stubs/plugins/azure/azure_credential.pyi +2 -2
  105. metaflow-stubs/plugins/azure/azure_exceptions.pyi +2 -2
  106. metaflow-stubs/plugins/azure/azure_secret_manager_secrets_provider.pyi +3 -3
  107. metaflow-stubs/plugins/azure/azure_utils.pyi +2 -2
  108. metaflow-stubs/plugins/azure/blob_service_client_factory.pyi +2 -2
  109. metaflow-stubs/plugins/azure/includefile_support.pyi +2 -2
  110. metaflow-stubs/plugins/cards/__init__.pyi +2 -2
  111. metaflow-stubs/plugins/cards/card_client.pyi +2 -2
  112. metaflow-stubs/plugins/cards/card_creator.pyi +2 -2
  113. metaflow-stubs/plugins/cards/card_datastore.pyi +2 -2
  114. metaflow-stubs/plugins/cards/card_decorator.pyi +2 -2
  115. metaflow-stubs/plugins/cards/card_modules/__init__.pyi +2 -2
  116. metaflow-stubs/plugins/cards/card_modules/basic.pyi +3 -3
  117. metaflow-stubs/plugins/cards/card_modules/card.pyi +2 -2
  118. metaflow-stubs/plugins/cards/card_modules/components.pyi +4 -4
  119. metaflow-stubs/plugins/cards/card_modules/convert_to_native_type.pyi +2 -2
  120. metaflow-stubs/plugins/cards/card_modules/renderer_tools.pyi +2 -2
  121. metaflow-stubs/plugins/cards/card_modules/test_cards.pyi +2 -2
  122. metaflow-stubs/plugins/cards/card_resolver.pyi +2 -2
  123. metaflow-stubs/plugins/cards/component_serializer.pyi +2 -2
  124. metaflow-stubs/plugins/cards/exception.pyi +2 -2
  125. metaflow-stubs/plugins/catch_decorator.pyi +2 -2
  126. metaflow-stubs/plugins/datatools/__init__.pyi +2 -2
  127. metaflow-stubs/plugins/datatools/local.pyi +2 -2
  128. metaflow-stubs/plugins/datatools/s3/__init__.pyi +2 -2
  129. metaflow-stubs/plugins/datatools/s3/s3.pyi +5 -5
  130. metaflow-stubs/plugins/datatools/s3/s3tail.pyi +2 -2
  131. metaflow-stubs/plugins/datatools/s3/s3util.pyi +2 -2
  132. metaflow-stubs/plugins/debug_logger.pyi +2 -2
  133. metaflow-stubs/plugins/debug_monitor.pyi +2 -2
  134. metaflow-stubs/plugins/environment_decorator.pyi +2 -2
  135. metaflow-stubs/plugins/events_decorator.pyi +2 -2
  136. metaflow-stubs/plugins/frameworks/__init__.pyi +2 -2
  137. metaflow-stubs/plugins/frameworks/pytorch.pyi +2 -2
  138. metaflow-stubs/plugins/gcp/__init__.pyi +2 -2
  139. metaflow-stubs/plugins/gcp/gcp_secret_manager_secrets_provider.pyi +3 -3
  140. metaflow-stubs/plugins/gcp/gs_exceptions.pyi +2 -2
  141. metaflow-stubs/plugins/gcp/gs_storage_client_factory.pyi +2 -2
  142. metaflow-stubs/plugins/gcp/gs_utils.pyi +2 -2
  143. metaflow-stubs/plugins/gcp/includefile_support.pyi +2 -2
  144. metaflow-stubs/plugins/kubernetes/__init__.pyi +2 -2
  145. metaflow-stubs/plugins/kubernetes/kube_utils.pyi +3 -3
  146. metaflow-stubs/plugins/kubernetes/kubernetes.pyi +2 -2
  147. metaflow-stubs/plugins/kubernetes/kubernetes_client.pyi +2 -2
  148. metaflow-stubs/plugins/kubernetes/kubernetes_decorator.pyi +2 -2
  149. metaflow-stubs/plugins/kubernetes/kubernetes_jobsets.pyi +2 -2
  150. metaflow-stubs/plugins/kubernetes/spot_monitor_sidecar.pyi +2 -2
  151. metaflow-stubs/plugins/parallel_decorator.pyi +2 -2
  152. metaflow-stubs/plugins/perimeters.pyi +2 -2
  153. metaflow-stubs/plugins/project_decorator.pyi +2 -2
  154. metaflow-stubs/plugins/pypi/__init__.pyi +3 -3
  155. metaflow-stubs/plugins/pypi/conda_decorator.pyi +2 -2
  156. metaflow-stubs/plugins/pypi/conda_environment.pyi +6 -6
  157. metaflow-stubs/plugins/pypi/pypi_decorator.pyi +2 -2
  158. metaflow-stubs/plugins/pypi/pypi_environment.pyi +2 -2
  159. metaflow-stubs/plugins/pypi/utils.pyi +2 -2
  160. metaflow-stubs/plugins/resources_decorator.pyi +2 -2
  161. metaflow-stubs/plugins/retry_decorator.pyi +2 -2
  162. metaflow-stubs/plugins/secrets/__init__.pyi +3 -3
  163. metaflow-stubs/plugins/secrets/inline_secrets_provider.pyi +3 -3
  164. metaflow-stubs/plugins/secrets/secrets_decorator.pyi +2 -2
  165. metaflow-stubs/plugins/snowflake/__init__.pyi +2 -2
  166. metaflow-stubs/plugins/storage_executor.pyi +2 -2
  167. metaflow-stubs/plugins/test_unbounded_foreach_decorator.pyi +3 -3
  168. metaflow-stubs/plugins/timeout_decorator.pyi +2 -2
  169. metaflow-stubs/profilers/__init__.pyi +2 -2
  170. metaflow-stubs/pylint_wrapper.pyi +2 -2
  171. metaflow-stubs/runner/__init__.pyi +2 -2
  172. metaflow-stubs/runner/deployer.pyi +6 -6
  173. metaflow-stubs/runner/deployer_impl.pyi +2 -2
  174. metaflow-stubs/runner/metaflow_runner.pyi +4 -4
  175. metaflow-stubs/runner/nbdeploy.pyi +2 -2
  176. metaflow-stubs/runner/nbrun.pyi +2 -2
  177. metaflow-stubs/runner/subprocess_manager.pyi +2 -2
  178. metaflow-stubs/runner/utils.pyi +3 -3
  179. metaflow-stubs/system/__init__.pyi +2 -2
  180. metaflow-stubs/system/system_logger.pyi +2 -2
  181. metaflow-stubs/system/system_monitor.pyi +2 -2
  182. metaflow-stubs/tagging_util.pyi +2 -2
  183. metaflow-stubs/tuple_util.pyi +2 -2
  184. metaflow-stubs/user_configs/__init__.pyi +2 -2
  185. metaflow-stubs/user_configs/config_decorators.pyi +7 -7
  186. metaflow-stubs/user_configs/config_options.pyi +3 -3
  187. metaflow-stubs/user_configs/config_parameters.pyi +6 -6
  188. {ob_metaflow_stubs-6.0.3.137.dist-info → ob_metaflow_stubs-6.0.3.138.dist-info}/METADATA +1 -1
  189. ob_metaflow_stubs-6.0.3.138.dist-info/RECORD +192 -0
  190. ob_metaflow_stubs-6.0.3.137.dist-info/RECORD +0 -192
  191. {ob_metaflow_stubs-6.0.3.137.dist-info → ob_metaflow_stubs-6.0.3.138.dist-info}/WHEEL +0 -0
  192. {ob_metaflow_stubs-6.0.3.137.dist-info → ob_metaflow_stubs-6.0.3.138.dist-info}/top_level.txt +0 -0
@@ -1,15 +1,15 @@
1
1
  ######################################################################################################
2
2
  # Auto-generated Metaflow stub file #
3
- # MF version: 2.13.9.1+obcheckpoint(0.1.7);ob(v1) #
4
- # Generated on 2025-02-03T17:09:26.636126 #
3
+ # MF version: 2.13.9.2+obcheckpoint(0.1.7);ob(v1) #
4
+ # Generated on 2025-02-03T21:17:39.682936 #
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
 
@@ -35,9 +35,9 @@ from .user_configs.config_parameters import ConfigValue as ConfigValue
35
35
  from .user_configs.config_parameters import config_expr as config_expr
36
36
  from .user_configs.config_decorators import CustomFlowDecorator as CustomFlowDecorator
37
37
  from .user_configs.config_decorators import CustomStepDecorator as CustomStepDecorator
38
+ from . import tuple_util as tuple_util
38
39
  from . import cards as cards
39
40
  from . import events as events
40
- from . import tuple_util as tuple_util
41
41
  from . import runner as runner
42
42
  from . import plugins as plugins
43
43
  from .mf_extensions.outerbounds.toplevel.global_aliases_for_metaflow_package import S3 as S3
@@ -146,58 +146,6 @@ def step(f: typing.Union[typing.Callable[[FlowSpecDerived], None], typing.Callab
146
146
  """
147
147
  ...
148
148
 
149
- @typing.overload
150
- 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]]]:
151
- """
152
- Specifies environment variables to be set prior to the execution of a step.
153
- """
154
- ...
155
-
156
- @typing.overload
157
- def environment(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
158
- ...
159
-
160
- @typing.overload
161
- def environment(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
162
- ...
163
-
164
- def environment(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, vars: typing.Dict[str, str] = {}):
165
- """
166
- Specifies environment variables to be set prior to the execution of a step.
167
- """
168
- ...
169
-
170
- @typing.overload
171
- 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]]]:
172
- """
173
- Specifies the Conda environment for the step.
174
-
175
- Information in this decorator will augment any
176
- attributes set in the `@conda_base` flow-level decorator. Hence,
177
- you can use `@conda_base` to set packages required by all
178
- steps and use `@conda` to specify step-specific overrides.
179
- """
180
- ...
181
-
182
- @typing.overload
183
- def conda(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
184
- ...
185
-
186
- @typing.overload
187
- def conda(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
188
- ...
189
-
190
- 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):
191
- """
192
- Specifies the Conda environment for the step.
193
-
194
- Information in this decorator will augment any
195
- attributes set in the `@conda_base` flow-level decorator. Hence,
196
- you can use `@conda_base` to set packages required by all
197
- steps and use `@conda` to specify step-specific overrides.
198
- """
199
- ...
200
-
201
149
  @typing.overload
202
150
  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]]]:
203
151
  """
@@ -247,76 +195,6 @@ def resources(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None]
247
195
  """
248
196
  ...
249
197
 
250
- 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] = [], labels: typing.Dict[str, str] = 'METAFLOW_KUBERNETES_LABELS', annotations: typing.Dict[str, str] = 'METAFLOW_KUBERNETES_ANNOTATIONS', 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]]]:
251
- """
252
- Specifies that this step should execute on Kubernetes.
253
- """
254
- ...
255
-
256
- @typing.overload
257
- 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]]]:
258
- """
259
- Creates a human-readable report, a Metaflow Card, after this step completes.
260
-
261
- Note that you may add multiple `@card` decorators in a step with different parameters.
262
- """
263
- ...
264
-
265
- @typing.overload
266
- def card(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
267
- ...
268
-
269
- @typing.overload
270
- def card(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
271
- ...
272
-
273
- 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):
274
- """
275
- Creates a human-readable report, a Metaflow Card, after this step completes.
276
-
277
- Note that you may add multiple `@card` decorators in a step with different parameters.
278
- """
279
- ...
280
-
281
- @typing.overload
282
- 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]]]:
283
- """
284
- Specifies a timeout for your step.
285
-
286
- This decorator is useful if this step may hang indefinitely.
287
-
288
- This can be used in conjunction with the `@retry` decorator as well as the `@catch` decorator.
289
- A timeout is considered to be an exception thrown by the step. It will cause the step to be
290
- retried if needed and the exception will be caught by the `@catch` decorator, if present.
291
-
292
- Note that all the values specified in parameters are added together so if you specify
293
- 60 seconds and 1 hour, the decorator will have an effective timeout of 1 hour and 1 minute.
294
- """
295
- ...
296
-
297
- @typing.overload
298
- def timeout(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
299
- ...
300
-
301
- @typing.overload
302
- def timeout(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
303
- ...
304
-
305
- 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):
306
- """
307
- Specifies a timeout for your step.
308
-
309
- This decorator is useful if this step may hang indefinitely.
310
-
311
- This can be used in conjunction with the `@retry` decorator as well as the `@catch` decorator.
312
- A timeout is considered to be an exception thrown by the step. It will cause the step to be
313
- retried if needed and the exception will be caught by the `@catch` decorator, if present.
314
-
315
- Note that all the values specified in parameters are added together so if you specify
316
- 60 seconds and 1 hour, the decorator will have an effective timeout of 1 hour and 1 minute.
317
- """
318
- ...
319
-
320
198
  @typing.overload
321
199
  def checkpoint(*, load_policy: str = 'fresh', temp_dir_root: 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]]]:
322
200
  """
@@ -339,50 +217,27 @@ def checkpoint(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None
339
217
  ...
340
218
 
341
219
  @typing.overload
342
- 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]]]:
220
+ 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]]]:
343
221
  """
344
- Specifies the PyPI packages for the step.
222
+ Creates a human-readable report, a Metaflow Card, after this step completes.
345
223
 
346
- Information in this decorator will augment any
347
- attributes set in the `@pyi_base` flow-level decorator. Hence,
348
- you can use `@pypi_base` to set packages required by all
349
- steps and use `@pypi` to specify step-specific overrides.
224
+ Note that you may add multiple `@card` decorators in a step with different parameters.
350
225
  """
351
226
  ...
352
227
 
353
228
  @typing.overload
354
- def pypi(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
229
+ def card(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
355
230
  ...
356
231
 
357
232
  @typing.overload
358
- def pypi(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
233
+ def card(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
359
234
  ...
360
235
 
361
- 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):
236
+ 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):
362
237
  """
363
- Specifies the PyPI packages for the step.
238
+ Creates a human-readable report, a Metaflow Card, after this step completes.
364
239
 
365
- Information in this decorator will augment any
366
- attributes set in the `@pyi_base` flow-level decorator. Hence,
367
- you can use `@pypi_base` to set packages required by all
368
- steps and use `@pypi` to specify step-specific overrides.
369
- """
370
- ...
371
-
372
- @typing.overload
373
- def fast_bakery_internal(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
374
- """
375
- Internal decorator to support Fast bakery
376
- """
377
- ...
378
-
379
- @typing.overload
380
- def fast_bakery_internal(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
381
- ...
382
-
383
- def fast_bakery_internal(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None):
384
- """
385
- Internal decorator to support Fast bakery
240
+ Note that you may add multiple `@card` decorators in a step with different parameters.
386
241
  """
387
242
  ...
388
243
 
@@ -426,31 +281,50 @@ def retry(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], ty
426
281
  ...
427
282
 
428
283
  @typing.overload
429
- 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]]]:
284
+ 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]]]:
430
285
  """
431
- Specifies secrets to be retrieved and injected as environment variables prior to
432
- the execution of a step.
286
+ Specifies that the step will success under all circumstances.
287
+
288
+ The decorator will create an optional artifact, specified by `var`, which
289
+ contains the exception raised. You can use it to detect the presence
290
+ of errors, indicating that all happy-path artifacts produced by the step
291
+ are missing.
433
292
  """
434
293
  ...
435
294
 
436
295
  @typing.overload
437
- def secrets(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
296
+ def catch(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
438
297
  ...
439
298
 
440
299
  @typing.overload
441
- def secrets(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
300
+ def catch(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
442
301
  ...
443
302
 
444
- 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]]] = []):
303
+ 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):
445
304
  """
446
- Specifies secrets to be retrieved and injected as environment variables prior to
447
- the execution of a step.
305
+ Specifies that the step will success under all circumstances.
306
+
307
+ The decorator will create an optional artifact, specified by `var`, which
308
+ contains the exception raised. You can use it to detect the presence
309
+ of errors, indicating that all happy-path artifacts produced by the step
310
+ are missing.
448
311
  """
449
312
  ...
450
313
 
451
- def huggingface_hub(*, temp_dir_root: typing.Optional[str] = None, load: typing.Union[typing.List[str], typing.List[typing.Tuple[typing.Dict, str]], typing.List[typing.Tuple[str, str]], typing.List[typing.Dict], 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]]]:
314
+ @typing.overload
315
+ def fast_bakery_internal(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
452
316
  """
453
- Decorator that helps cache, version and store models/datasets from huggingface hub.
317
+ Internal decorator to support Fast bakery
318
+ """
319
+ ...
320
+
321
+ @typing.overload
322
+ def fast_bakery_internal(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
323
+ ...
324
+
325
+ def fast_bakery_internal(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None):
326
+ """
327
+ Internal decorator to support Fast bakery
454
328
  """
455
329
  ...
456
330
 
@@ -476,33 +350,27 @@ def model(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], ty
476
350
  ...
477
351
 
478
352
  @typing.overload
479
- 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]]]:
353
+ def parallel(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
480
354
  """
481
- Specifies that the step will success under all circumstances.
482
-
483
- The decorator will create an optional artifact, specified by `var`, which
484
- contains the exception raised. You can use it to detect the presence
485
- of errors, indicating that all happy-path artifacts produced by the step
486
- are missing.
355
+ Decorator prototype for all step decorators. This function gets specialized
356
+ and imported for all decorators types by _import_plugin_decorators().
487
357
  """
488
358
  ...
489
359
 
490
360
  @typing.overload
491
- def catch(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
361
+ def parallel(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
492
362
  ...
493
363
 
494
- @typing.overload
495
- def catch(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
364
+ def parallel(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None):
365
+ """
366
+ Decorator prototype for all step decorators. This function gets specialized
367
+ and imported for all decorators types by _import_plugin_decorators().
368
+ """
496
369
  ...
497
370
 
498
- 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):
371
+ 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] = [], labels: typing.Dict[str, str] = 'METAFLOW_KUBERNETES_LABELS', annotations: typing.Dict[str, str] = 'METAFLOW_KUBERNETES_ANNOTATIONS', 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]]]:
499
372
  """
500
- Specifies that the step will success under all circumstances.
501
-
502
- The decorator will create an optional artifact, specified by `var`, which
503
- contains the exception raised. You can use it to detect the presence
504
- of errors, indicating that all happy-path artifacts produced by the step
505
- are missing.
373
+ Specifies that this step should execute on Kubernetes.
506
374
  """
507
375
  ...
508
376
 
@@ -513,44 +381,163 @@ def nvidia(*, gpu: int, gpu_type: str, queue_timeout: int) -> typing.Callable[[t
513
381
  ...
514
382
 
515
383
  @typing.overload
516
- def parallel(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
384
+ 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]]]:
517
385
  """
518
- Decorator prototype for all step decorators. This function gets specialized
519
- and imported for all decorators types by _import_plugin_decorators().
386
+ Specifies the PyPI packages for the step.
387
+
388
+ Information in this decorator will augment any
389
+ attributes set in the `@pyi_base` flow-level decorator. Hence,
390
+ you can use `@pypi_base` to set packages required by all
391
+ steps and use `@pypi` to specify step-specific overrides.
520
392
  """
521
393
  ...
522
394
 
523
395
  @typing.overload
524
- def parallel(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
396
+ def pypi(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
525
397
  ...
526
398
 
527
- def parallel(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None):
528
- """
529
- Decorator prototype for all step decorators. This function gets specialized
530
- and imported for all decorators types by _import_plugin_decorators().
531
- """
399
+ @typing.overload
400
+ def pypi(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
532
401
  ...
533
402
 
534
- @typing.overload
535
- def pypi_base(*, packages: typing.Dict[str, str] = {}, python: typing.Optional[str] = None) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
403
+ 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):
536
404
  """
537
- Specifies the PyPI packages for all steps of the flow.
405
+ Specifies the PyPI packages for the step.
538
406
 
539
- Use `@pypi_base` to set common packages required by all
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
540
410
  steps and use `@pypi` to specify step-specific overrides.
541
411
  """
542
412
  ...
543
413
 
414
+ def huggingface_hub(*, temp_dir_root: typing.Optional[str] = None, load: typing.Union[typing.List[str], typing.List[typing.Tuple[typing.Dict, str]], typing.List[typing.Tuple[str, str]], typing.List[typing.Dict], 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]]]:
415
+ """
416
+ Decorator that helps cache, version and store models/datasets from huggingface hub.
417
+ """
418
+ ...
419
+
544
420
  @typing.overload
545
- def pypi_base(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
421
+ 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]]]:
422
+ """
423
+ Specifies a timeout for your step.
424
+
425
+ This decorator is useful if this step may hang indefinitely.
426
+
427
+ This can be used in conjunction with the `@retry` decorator as well as the `@catch` decorator.
428
+ A timeout is considered to be an exception thrown by the step. It will cause the step to be
429
+ retried if needed and the exception will be caught by the `@catch` decorator, if present.
430
+
431
+ Note that all the values specified in parameters are added together so if you specify
432
+ 60 seconds and 1 hour, the decorator will have an effective timeout of 1 hour and 1 minute.
433
+ """
546
434
  ...
547
435
 
548
- def pypi_base(f: typing.Optional[typing.Type[FlowSpecDerived]] = None, *, packages: typing.Dict[str, str] = {}, python: typing.Optional[str] = None):
436
+ @typing.overload
437
+ def timeout(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
438
+ ...
439
+
440
+ @typing.overload
441
+ def timeout(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
442
+ ...
443
+
444
+ 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):
549
445
  """
550
- Specifies the PyPI packages for all steps of the flow.
446
+ Specifies a timeout for your step.
551
447
 
552
- Use `@pypi_base` to set common packages required by all
553
- steps and use `@pypi` to specify step-specific overrides.
448
+ This decorator is useful if this step may hang indefinitely.
449
+
450
+ This can be used in conjunction with the `@retry` decorator as well as the `@catch` decorator.
451
+ A timeout is considered to be an exception thrown by the step. It will cause the step to be
452
+ retried if needed and the exception will be caught by the `@catch` decorator, if present.
453
+
454
+ Note that all the values specified in parameters are added together so if you specify
455
+ 60 seconds and 1 hour, the decorator will have an effective timeout of 1 hour and 1 minute.
456
+ """
457
+ ...
458
+
459
+ @typing.overload
460
+ 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]]]:
461
+ """
462
+ Specifies secrets to be retrieved and injected as environment variables prior to
463
+ the execution of a step.
464
+ """
465
+ ...
466
+
467
+ @typing.overload
468
+ def secrets(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
469
+ ...
470
+
471
+ @typing.overload
472
+ def secrets(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
473
+ ...
474
+
475
+ 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]]] = []):
476
+ """
477
+ Specifies secrets to be retrieved and injected as environment variables prior to
478
+ the execution of a step.
479
+ """
480
+ ...
481
+
482
+ @typing.overload
483
+ 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]]]:
484
+ """
485
+ Specifies environment variables to be set prior to the execution of a step.
486
+ """
487
+ ...
488
+
489
+ @typing.overload
490
+ def environment(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
491
+ ...
492
+
493
+ @typing.overload
494
+ def environment(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
495
+ ...
496
+
497
+ def environment(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, vars: typing.Dict[str, str] = {}):
498
+ """
499
+ Specifies environment variables to be set prior to the execution of a step.
500
+ """
501
+ ...
502
+
503
+ @typing.overload
504
+ 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]]]:
505
+ """
506
+ Specifies the Conda environment for the step.
507
+
508
+ Information in this decorator will augment any
509
+ attributes set in the `@conda_base` flow-level decorator. Hence,
510
+ you can use `@conda_base` to set packages required by all
511
+ steps and use `@conda` to specify step-specific overrides.
512
+ """
513
+ ...
514
+
515
+ @typing.overload
516
+ def conda(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
517
+ ...
518
+
519
+ @typing.overload
520
+ def conda(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
521
+ ...
522
+
523
+ 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):
524
+ """
525
+ Specifies the Conda environment for the step.
526
+
527
+ Information in this decorator will augment any
528
+ attributes set in the `@conda_base` flow-level decorator. Hence,
529
+ you can use `@conda_base` to set packages required by all
530
+ steps and use `@conda` to specify step-specific overrides.
531
+ """
532
+ ...
533
+
534
+ 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]]:
535
+ """
536
+ 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)
537
+ before the start step of the flow. This decorator only works when a flow is scheduled on Airflow
538
+ and is compiled using `airflow create`. More than one `@airflow_s3_key_sensor` can be
539
+ added as a flow decorators. Adding more than one decorator will ensure that `start` step
540
+ starts only after all sensors finish.
554
541
  """
555
542
  ...
556
543
 
@@ -562,93 +549,94 @@ def airflow_external_task_sensor(*, timeout: int, poke_interval: int, mode: str,
562
549
  ...
563
550
 
564
551
  @typing.overload
565
- 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]]:
552
+ 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]]:
566
553
  """
567
- Specifies the flow(s) that this flow depends on.
554
+ Specifies the event(s) that this flow depends on.
568
555
 
569
556
  ```
570
- @trigger_on_finish(flow='FooFlow')
557
+ @trigger(event='foo')
571
558
  ```
572
559
  or
573
560
  ```
574
- @trigger_on_finish(flows=['FooFlow', 'BarFlow'])
561
+ @trigger(events=['foo', 'bar'])
575
562
  ```
576
- This decorator respects the @project decorator and triggers the flow
577
- when upstream runs within the same namespace complete successfully
578
563
 
579
- Additionally, you can specify project aware upstream flow dependencies
580
- by specifying the fully qualified project_flow_name.
564
+ Additionally, you can specify the parameter mappings
565
+ to map event payload to Metaflow parameters for the flow.
581
566
  ```
582
- @trigger_on_finish(flow='my_project.branch.my_branch.FooFlow')
567
+ @trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
583
568
  ```
584
569
  or
585
570
  ```
586
- @trigger_on_finish(flows=['my_project.branch.my_branch.FooFlow', 'BarFlow'])
571
+ @trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
572
+ {'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
587
573
  ```
588
574
 
589
- You can also specify just the project or project branch (other values will be
590
- inferred from the current project or project branch):
575
+ 'parameters' can also be a list of strings and tuples like so:
591
576
  ```
592
- @trigger_on_finish(flow={"name": "FooFlow", "project": "my_project", "project_branch": "branch"})
577
+ @trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
578
+ ```
579
+ This is equivalent to:
580
+ ```
581
+ @trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
593
582
  ```
594
-
595
- Note that `branch` is typically one of:
596
- - `prod`
597
- - `user.bob`
598
- - `test.my_experiment`
599
- - `prod.staging`
600
583
  """
601
584
  ...
602
585
 
603
586
  @typing.overload
604
- def trigger_on_finish(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
587
+ def trigger(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
605
588
  ...
606
589
 
607
- def trigger_on_finish(f: typing.Optional[typing.Type[FlowSpecDerived]] = None, *, 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] = {}):
590
+ 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] = {}):
608
591
  """
609
- Specifies the flow(s) that this flow depends on.
592
+ Specifies the event(s) that this flow depends on.
610
593
 
611
594
  ```
612
- @trigger_on_finish(flow='FooFlow')
595
+ @trigger(event='foo')
613
596
  ```
614
597
  or
615
598
  ```
616
- @trigger_on_finish(flows=['FooFlow', 'BarFlow'])
599
+ @trigger(events=['foo', 'bar'])
617
600
  ```
618
- This decorator respects the @project decorator and triggers the flow
619
- when upstream runs within the same namespace complete successfully
620
601
 
621
- Additionally, you can specify project aware upstream flow dependencies
622
- by specifying the fully qualified project_flow_name.
602
+ Additionally, you can specify the parameter mappings
603
+ to map event payload to Metaflow parameters for the flow.
623
604
  ```
624
- @trigger_on_finish(flow='my_project.branch.my_branch.FooFlow')
605
+ @trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
625
606
  ```
626
607
  or
627
608
  ```
628
- @trigger_on_finish(flows=['my_project.branch.my_branch.FooFlow', 'BarFlow'])
609
+ @trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
610
+ {'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
629
611
  ```
630
612
 
631
- You can also specify just the project or project branch (other values will be
632
- inferred from the current project or project branch):
613
+ 'parameters' can also be a list of strings and tuples like so:
633
614
  ```
634
- @trigger_on_finish(flow={"name": "FooFlow", "project": "my_project", "project_branch": "branch"})
615
+ @trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
616
+ ```
617
+ This is equivalent to:
618
+ ```
619
+ @trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
635
620
  ```
636
-
637
- Note that `branch` is typically one of:
638
- - `prod`
639
- - `user.bob`
640
- - `test.my_experiment`
641
- - `prod.staging`
642
621
  """
643
622
  ...
644
623
 
645
- 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]]:
624
+ @typing.overload
625
+ 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]]:
646
626
  """
647
- 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)
648
- before the start step of the flow. This decorator only works when a flow is scheduled on Airflow
649
- and is compiled using `airflow create`. More than one `@airflow_s3_key_sensor` can be
650
- added as a flow decorators. Adding more than one decorator will ensure that `start` step
651
- starts only after all sensors finish.
627
+ Specifies the times when the flow should be run when running on a
628
+ production scheduler.
629
+ """
630
+ ...
631
+
632
+ @typing.overload
633
+ def schedule(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
634
+ ...
635
+
636
+ 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):
637
+ """
638
+ Specifies the times when the flow should be run when running on a
639
+ production scheduler.
652
640
  """
653
641
  ...
654
642
 
@@ -676,127 +664,139 @@ def nim(*, models: "list[NIM]", backend: str) -> typing.Callable[[typing.Type[Fl
676
664
  """
677
665
  ...
678
666
 
667
+ def project(*, name: str) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
668
+ """
669
+ Specifies what flows belong to the same project.
670
+
671
+ A project-specific namespace is created for all flows that
672
+ use the same `@project(name)`.
673
+ """
674
+ ...
675
+
679
676
  @typing.overload
680
- 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]]:
677
+ 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]]:
681
678
  """
682
- Specifies the times when the flow should be run when running on a
683
- production scheduler.
679
+ Specifies the Conda environment for all steps of the flow.
680
+
681
+ Use `@conda_base` to set common libraries required by all
682
+ steps and use `@conda` to specify step-specific additions.
684
683
  """
685
684
  ...
686
685
 
687
686
  @typing.overload
688
- def schedule(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
687
+ def conda_base(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
689
688
  ...
690
689
 
691
- 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):
690
+ def conda_base(f: typing.Optional[typing.Type[FlowSpecDerived]] = None, *, packages: typing.Dict[str, str] = {}, libraries: typing.Dict[str, str] = {}, python: typing.Optional[str] = None, disabled: bool = False):
692
691
  """
693
- Specifies the times when the flow should be run when running on a
694
- production scheduler.
692
+ Specifies the Conda environment for all steps of the flow.
693
+
694
+ Use `@conda_base` to set common libraries required by all
695
+ steps and use `@conda` to specify step-specific additions.
695
696
  """
696
697
  ...
697
698
 
698
- def project(*, name: str) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
699
+ @typing.overload
700
+ def pypi_base(*, packages: typing.Dict[str, str] = {}, python: typing.Optional[str] = None) -> typing.Callable[[typing.Type[FlowSpecDerived]], typing.Type[FlowSpecDerived]]:
699
701
  """
700
- Specifies what flows belong to the same project.
702
+ Specifies the PyPI packages for all steps of the flow.
701
703
 
702
- A project-specific namespace is created for all flows that
703
- use the same `@project(name)`.
704
+ Use `@pypi_base` to set common packages required by all
705
+ steps and use `@pypi` to specify step-specific overrides.
704
706
  """
705
707
  ...
706
708
 
707
709
  @typing.overload
708
- 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]]:
710
+ def pypi_base(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
711
+ ...
712
+
713
+ def pypi_base(f: typing.Optional[typing.Type[FlowSpecDerived]] = None, *, packages: typing.Dict[str, str] = {}, python: typing.Optional[str] = None):
709
714
  """
710
- Specifies the event(s) that this flow depends on.
715
+ Specifies the PyPI packages for all steps of the flow.
716
+
717
+ Use `@pypi_base` to set common packages required by all
718
+ steps and use `@pypi` to specify step-specific overrides.
719
+ """
720
+ ...
721
+
722
+ @typing.overload
723
+ 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]]:
724
+ """
725
+ Specifies the flow(s) that this flow depends on.
711
726
 
712
727
  ```
713
- @trigger(event='foo')
728
+ @trigger_on_finish(flow='FooFlow')
714
729
  ```
715
730
  or
716
731
  ```
717
- @trigger(events=['foo', 'bar'])
732
+ @trigger_on_finish(flows=['FooFlow', 'BarFlow'])
718
733
  ```
734
+ This decorator respects the @project decorator and triggers the flow
735
+ when upstream runs within the same namespace complete successfully
719
736
 
720
- Additionally, you can specify the parameter mappings
721
- to map event payload to Metaflow parameters for the flow.
737
+ Additionally, you can specify project aware upstream flow dependencies
738
+ by specifying the fully qualified project_flow_name.
722
739
  ```
723
- @trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
740
+ @trigger_on_finish(flow='my_project.branch.my_branch.FooFlow')
724
741
  ```
725
742
  or
726
743
  ```
727
- @trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
728
- {'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
744
+ @trigger_on_finish(flows=['my_project.branch.my_branch.FooFlow', 'BarFlow'])
729
745
  ```
730
746
 
731
- 'parameters' can also be a list of strings and tuples like so:
732
- ```
733
- @trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
734
- ```
735
- This is equivalent to:
747
+ You can also specify just the project or project branch (other values will be
748
+ inferred from the current project or project branch):
736
749
  ```
737
- @trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
750
+ @trigger_on_finish(flow={"name": "FooFlow", "project": "my_project", "project_branch": "branch"})
738
751
  ```
752
+
753
+ Note that `branch` is typically one of:
754
+ - `prod`
755
+ - `user.bob`
756
+ - `test.my_experiment`
757
+ - `prod.staging`
739
758
  """
740
759
  ...
741
760
 
742
761
  @typing.overload
743
- def trigger(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
762
+ def trigger_on_finish(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
744
763
  ...
745
764
 
746
- 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] = {}):
765
+ def trigger_on_finish(f: typing.Optional[typing.Type[FlowSpecDerived]] = None, *, 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] = {}):
747
766
  """
748
- Specifies the event(s) that this flow depends on.
767
+ Specifies the flow(s) that this flow depends on.
749
768
 
750
769
  ```
751
- @trigger(event='foo')
770
+ @trigger_on_finish(flow='FooFlow')
752
771
  ```
753
772
  or
754
773
  ```
755
- @trigger(events=['foo', 'bar'])
774
+ @trigger_on_finish(flows=['FooFlow', 'BarFlow'])
756
775
  ```
776
+ This decorator respects the @project decorator and triggers the flow
777
+ when upstream runs within the same namespace complete successfully
757
778
 
758
- Additionally, you can specify the parameter mappings
759
- to map event payload to Metaflow parameters for the flow.
779
+ Additionally, you can specify project aware upstream flow dependencies
780
+ by specifying the fully qualified project_flow_name.
760
781
  ```
761
- @trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
782
+ @trigger_on_finish(flow='my_project.branch.my_branch.FooFlow')
762
783
  ```
763
784
  or
764
785
  ```
765
- @trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
766
- {'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
786
+ @trigger_on_finish(flows=['my_project.branch.my_branch.FooFlow', 'BarFlow'])
767
787
  ```
768
788
 
769
- 'parameters' can also be a list of strings and tuples like so:
770
- ```
771
- @trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
772
- ```
773
- This is equivalent to:
789
+ You can also specify just the project or project branch (other values will be
790
+ inferred from the current project or project branch):
774
791
  ```
775
- @trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
792
+ @trigger_on_finish(flow={"name": "FooFlow", "project": "my_project", "project_branch": "branch"})
776
793
  ```
777
- """
778
- ...
779
-
780
- @typing.overload
781
- 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]]:
782
- """
783
- Specifies the Conda environment for all steps of the flow.
784
-
785
- Use `@conda_base` to set common libraries required by all
786
- steps and use `@conda` to specify step-specific additions.
787
- """
788
- ...
789
-
790
- @typing.overload
791
- def conda_base(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
792
- ...
793
-
794
- def conda_base(f: typing.Optional[typing.Type[FlowSpecDerived]] = None, *, packages: typing.Dict[str, str] = {}, libraries: typing.Dict[str, str] = {}, python: typing.Optional[str] = None, disabled: bool = False):
795
- """
796
- Specifies the Conda environment for all steps of the flow.
797
794
 
798
- Use `@conda_base` to set common libraries required by all
799
- steps and use `@conda` to specify step-specific additions.
795
+ Note that `branch` is typically one of:
796
+ - `prod`
797
+ - `user.bob`
798
+ - `test.my_experiment`
799
+ - `prod.staging`
800
800
  """
801
801
  ...
802
802