ob-metaflow-stubs 6.0.3.133__py2.py3-none-any.whl → 6.0.3.134__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 +309 -309
  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 +2 -2
  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 +4 -4
  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 +77 -77
  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 +4 -4
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +2 -2
  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 +2 -2
  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 +5 -5
  72. metaflow-stubs/plugins/__init__.pyi +10 -10
  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 +3 -3
  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 +3 -3
  102. metaflow-stubs/plugins/aws/step_functions/step_functions_deployer_objects.pyi +3 -3
  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 +2 -2
  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 +3 -3
  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 +3 -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 +20 -0
  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 +2 -2
  155. metaflow-stubs/plugins/pypi/conda_decorator.pyi +2 -2
  156. metaflow-stubs/plugins/pypi/conda_environment.pyi +4 -4
  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 +2 -2
  163. metaflow-stubs/plugins/secrets/inline_secrets_provider.pyi +2 -2
  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 +7 -7
  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 +4 -4
  179. metaflow-stubs/system/__init__.pyi +2 -2
  180. metaflow-stubs/system/system_logger.pyi +3 -3
  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 +5 -5
  186. metaflow-stubs/user_configs/config_options.pyi +4 -4
  187. metaflow-stubs/user_configs/config_parameters.pyi +10 -10
  188. {ob_metaflow_stubs-6.0.3.133.dist-info → ob_metaflow_stubs-6.0.3.134.dist-info}/METADATA +1 -1
  189. ob_metaflow_stubs-6.0.3.134.dist-info/RECORD +192 -0
  190. ob_metaflow_stubs-6.0.3.133.dist-info/RECORD +0 -191
  191. {ob_metaflow_stubs-6.0.3.133.dist-info → ob_metaflow_stubs-6.0.3.134.dist-info}/WHEEL +0 -0
  192. {ob_metaflow_stubs-6.0.3.133.dist-info → ob_metaflow_stubs-6.0.3.134.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.4.1+obcheckpoint(0.1.6);ob(v1) #
4
- # Generated on 2025-01-15T20:56:03.760807 #
3
+ # MF version: 2.13.7.1+obcheckpoint(0.1.6);ob(v1) #
4
+ # Generated on 2025-01-23T20:10:29.134629 #
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
 
@@ -147,73 +147,174 @@ def step(f: typing.Union[typing.Callable[[FlowSpecDerived], None], typing.Callab
147
147
  ...
148
148
 
149
149
  @typing.overload
150
- 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]]]:
150
+ def parallel(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
151
151
  """
152
- Specifies the PyPI packages for the step.
152
+ Decorator prototype for all step decorators. This function gets specialized
153
+ and imported for all decorators types by _import_plugin_decorators().
154
+ """
155
+ ...
156
+
157
+ @typing.overload
158
+ def parallel(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
159
+ ...
160
+
161
+ def parallel(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None):
162
+ """
163
+ Decorator prototype for all step decorators. This function gets specialized
164
+ and imported for all decorators types by _import_plugin_decorators().
165
+ """
166
+ ...
167
+
168
+ @typing.overload
169
+ 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]]]:
170
+ """
171
+ Enables checkpointing for a step.
172
+ """
173
+ ...
174
+
175
+ @typing.overload
176
+ def checkpoint(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
177
+ ...
178
+
179
+ @typing.overload
180
+ def checkpoint(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
181
+ ...
182
+
183
+ def checkpoint(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, load_policy: str = 'fresh', temp_dir_root: str = None):
184
+ """
185
+ Enables checkpointing for a step.
186
+ """
187
+ ...
188
+
189
+ @typing.overload
190
+ 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]]]:
191
+ """
192
+ Specifies a timeout for your step.
153
193
 
154
- Information in this decorator will augment any
155
- attributes set in the `@pyi_base` flow-level decorator. Hence,
156
- you can use `@pypi_base` to set packages required by all
157
- steps and use `@pypi` to specify step-specific overrides.
194
+ This decorator is useful if this step may hang indefinitely.
195
+
196
+ This can be used in conjunction with the `@retry` decorator as well as the `@catch` decorator.
197
+ A timeout is considered to be an exception thrown by the step. It will cause the step to be
198
+ retried if needed and the exception will be caught by the `@catch` decorator, if present.
199
+
200
+ Note that all the values specified in parameters are added together so if you specify
201
+ 60 seconds and 1 hour, the decorator will have an effective timeout of 1 hour and 1 minute.
158
202
  """
159
203
  ...
160
204
 
161
205
  @typing.overload
162
- def pypi(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
206
+ def timeout(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
163
207
  ...
164
208
 
165
209
  @typing.overload
166
- def pypi(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
210
+ def timeout(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
167
211
  ...
168
212
 
169
- 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):
213
+ 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):
170
214
  """
171
- Specifies the PyPI packages for the step.
215
+ Specifies a timeout for your step.
172
216
 
173
- Information in this decorator will augment any
174
- attributes set in the `@pyi_base` flow-level decorator. Hence,
175
- you can use `@pypi_base` to set packages required by all
176
- steps and use `@pypi` to specify step-specific overrides.
217
+ This decorator is useful if this step may hang indefinitely.
218
+
219
+ This can be used in conjunction with the `@retry` decorator as well as the `@catch` decorator.
220
+ A timeout is considered to be an exception thrown by the step. It will cause the step to be
221
+ retried if needed and the exception will be caught by the `@catch` decorator, if present.
222
+
223
+ Note that all the values specified in parameters are added together so if you specify
224
+ 60 seconds and 1 hour, the decorator will have an effective timeout of 1 hour and 1 minute.
177
225
  """
178
226
  ...
179
227
 
180
228
  @typing.overload
181
- def model(*, load: typing.Union[typing.List[str], str, typing.List[typing.Tuple[str, typing.Optional[str]]]] = None, 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]]]:
229
+ 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]]]:
182
230
  """
183
- Enables loading / saving of models within a step.
231
+ Creates a human-readable report, a Metaflow Card, after this step completes.
232
+
233
+ Note that you may add multiple `@card` decorators in a step with different parameters.
184
234
  """
185
235
  ...
186
236
 
187
237
  @typing.overload
188
- def model(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
238
+ def card(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
189
239
  ...
190
240
 
191
241
  @typing.overload
192
- def model(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
242
+ def card(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
193
243
  ...
194
244
 
195
- def model(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, load: typing.Union[typing.List[str], str, typing.List[typing.Tuple[str, typing.Optional[str]]]] = None, temp_dir_root: str = None):
245
+ 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):
196
246
  """
197
- Enables loading / saving of models within a step.
247
+ Creates a human-readable report, a Metaflow Card, after this step completes.
248
+
249
+ Note that you may add multiple `@card` decorators in a step with different parameters.
250
+ """
251
+ ...
252
+
253
+ def nvidia(*, gpu: int, gpu_type: 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]]]:
254
+ """
255
+ Specifies that this step should execute on DGX cloud.
198
256
  """
199
257
  ...
200
258
 
201
259
  @typing.overload
202
- def parallel(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
260
+ 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]]]:
203
261
  """
204
- Decorator prototype for all step decorators. This function gets specialized
205
- and imported for all decorators types by _import_plugin_decorators().
262
+ Specifies that the step will success under all circumstances.
263
+
264
+ The decorator will create an optional artifact, specified by `var`, which
265
+ contains the exception raised. You can use it to detect the presence
266
+ of errors, indicating that all happy-path artifacts produced by the step
267
+ are missing.
206
268
  """
207
269
  ...
208
270
 
209
271
  @typing.overload
210
- def parallel(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
272
+ def catch(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
211
273
  ...
212
274
 
213
- def parallel(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None):
275
+ @typing.overload
276
+ def catch(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
277
+ ...
278
+
279
+ 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):
214
280
  """
215
- Decorator prototype for all step decorators. This function gets specialized
216
- and imported for all decorators types by _import_plugin_decorators().
281
+ Specifies that the step will success under all circumstances.
282
+
283
+ The decorator will create an optional artifact, specified by `var`, which
284
+ contains the exception raised. You can use it to detect the presence
285
+ of errors, indicating that all happy-path artifacts produced by the step
286
+ are missing.
287
+ """
288
+ ...
289
+
290
+ @typing.overload
291
+ 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]]]:
292
+ """
293
+ Specifies the PyPI packages for the step.
294
+
295
+ Information in this decorator will augment any
296
+ attributes set in the `@pyi_base` flow-level decorator. Hence,
297
+ you can use `@pypi_base` to set packages required by all
298
+ steps and use `@pypi` to specify step-specific overrides.
299
+ """
300
+ ...
301
+
302
+ @typing.overload
303
+ def pypi(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
304
+ ...
305
+
306
+ @typing.overload
307
+ def pypi(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
308
+ ...
309
+
310
+ 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):
311
+ """
312
+ Specifies the PyPI packages for the step.
313
+
314
+ Information in this decorator will augment any
315
+ attributes set in the `@pyi_base` flow-level decorator. Hence,
316
+ you can use `@pypi_base` to set packages required by all
317
+ steps and use `@pypi` to specify step-specific overrides.
217
318
  """
218
319
  ...
219
320
 
@@ -256,6 +357,43 @@ def retry(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], ty
256
357
  """
257
358
  ...
258
359
 
360
+ 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]]]:
361
+ """
362
+ Decorator that helps cache, version and store models/datasets from huggingface hub.
363
+ """
364
+ ...
365
+
366
+ @typing.overload
367
+ 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]]]:
368
+ """
369
+ Specifies the Conda environment for the step.
370
+
371
+ Information in this decorator will augment any
372
+ attributes set in the `@conda_base` flow-level decorator. Hence,
373
+ you can use `@conda_base` to set packages required by all
374
+ steps and use `@conda` to specify step-specific overrides.
375
+ """
376
+ ...
377
+
378
+ @typing.overload
379
+ def conda(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
380
+ ...
381
+
382
+ @typing.overload
383
+ def conda(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
384
+ ...
385
+
386
+ 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):
387
+ """
388
+ Specifies the Conda environment for the step.
389
+
390
+ Information in this decorator will augment any
391
+ attributes set in the `@conda_base` flow-level decorator. Hence,
392
+ you can use `@conda_base` to set packages required by all
393
+ steps and use `@conda` to specify step-specific overrides.
394
+ """
395
+ ...
396
+
259
397
  @typing.overload
260
398
  def fast_bakery_internal(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
261
399
  """
@@ -273,6 +411,27 @@ def fast_bakery_internal(f: typing.Union[typing.Callable[[FlowSpecDerived, StepF
273
411
  """
274
412
  ...
275
413
 
414
+ @typing.overload
415
+ def model(*, load: typing.Union[typing.List[str], str, typing.List[typing.Tuple[str, typing.Optional[str]]]] = None, 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]]]:
416
+ """
417
+ Enables loading / saving of models within a step.
418
+ """
419
+ ...
420
+
421
+ @typing.overload
422
+ def model(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
423
+ ...
424
+
425
+ @typing.overload
426
+ def model(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
427
+ ...
428
+
429
+ def model(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, load: typing.Union[typing.List[str], str, typing.List[typing.Tuple[str, typing.Optional[str]]]] = None, temp_dir_root: str = None):
430
+ """
431
+ Enables loading / saving of models within a step.
432
+ """
433
+ ...
434
+
276
435
  @typing.overload
277
436
  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]]]:
278
437
  """
@@ -295,33 +454,25 @@ def environment(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], Non
295
454
  ...
296
455
 
297
456
  @typing.overload
298
- 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]]]:
457
+ 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]]]:
299
458
  """
300
- Specifies that the step will success under all circumstances.
301
-
302
- The decorator will create an optional artifact, specified by `var`, which
303
- contains the exception raised. You can use it to detect the presence
304
- of errors, indicating that all happy-path artifacts produced by the step
305
- are missing.
459
+ Specifies secrets to be retrieved and injected as environment variables prior to
460
+ the execution of a step.
306
461
  """
307
462
  ...
308
463
 
309
464
  @typing.overload
310
- def catch(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
465
+ def secrets(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
311
466
  ...
312
467
 
313
468
  @typing.overload
314
- def catch(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
469
+ def secrets(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
315
470
  ...
316
471
 
317
- 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):
472
+ 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]]] = []):
318
473
  """
319
- Specifies that the step will success under all circumstances.
320
-
321
- The decorator will create an optional artifact, specified by `var`, which
322
- contains the exception raised. You can use it to detect the presence
323
- of errors, indicating that all happy-path artifacts produced by the step
324
- are missing.
474
+ Specifies secrets to be retrieved and injected as environment variables prior to
475
+ the execution of a step.
325
476
  """
326
477
  ...
327
478
 
@@ -374,160 +525,9 @@ def resources(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None]
374
525
  """
375
526
  ...
376
527
 
377
- @typing.overload
378
- 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]]]:
528
+ 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]]]:
379
529
  """
380
- Specifies a timeout for your step.
381
-
382
- This decorator is useful if this step may hang indefinitely.
383
-
384
- This can be used in conjunction with the `@retry` decorator as well as the `@catch` decorator.
385
- A timeout is considered to be an exception thrown by the step. It will cause the step to be
386
- retried if needed and the exception will be caught by the `@catch` decorator, if present.
387
-
388
- Note that all the values specified in parameters are added together so if you specify
389
- 60 seconds and 1 hour, the decorator will have an effective timeout of 1 hour and 1 minute.
390
- """
391
- ...
392
-
393
- @typing.overload
394
- def timeout(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
395
- ...
396
-
397
- @typing.overload
398
- def timeout(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
399
- ...
400
-
401
- 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):
402
- """
403
- Specifies a timeout for your step.
404
-
405
- This decorator is useful if this step may hang indefinitely.
406
-
407
- This can be used in conjunction with the `@retry` decorator as well as the `@catch` decorator.
408
- A timeout is considered to be an exception thrown by the step. It will cause the step to be
409
- retried if needed and the exception will be caught by the `@catch` decorator, if present.
410
-
411
- Note that all the values specified in parameters are added together so if you specify
412
- 60 seconds and 1 hour, the decorator will have an effective timeout of 1 hour and 1 minute.
413
- """
414
- ...
415
-
416
- @typing.overload
417
- 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]]]:
418
- """
419
- Specifies secrets to be retrieved and injected as environment variables prior to
420
- the execution of a step.
421
- """
422
- ...
423
-
424
- @typing.overload
425
- def secrets(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
426
- ...
427
-
428
- @typing.overload
429
- def secrets(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
430
- ...
431
-
432
- 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]]] = []):
433
- """
434
- Specifies secrets to be retrieved and injected as environment variables prior to
435
- the execution of a step.
436
- """
437
- ...
438
-
439
- 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]]]:
440
- """
441
- Specifies that this step should execute on Kubernetes.
442
- """
443
- ...
444
-
445
- @typing.overload
446
- 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]]]:
447
- """
448
- Enables checkpointing for a step.
449
- """
450
- ...
451
-
452
- @typing.overload
453
- def checkpoint(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
454
- ...
455
-
456
- @typing.overload
457
- def checkpoint(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
458
- ...
459
-
460
- def checkpoint(f: typing.Union[typing.Callable[[FlowSpecDerived, StepFlag], None], typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None], None] = None, *, load_policy: str = 'fresh', temp_dir_root: str = None):
461
- """
462
- Enables checkpointing for a step.
463
- """
464
- ...
465
-
466
- 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]]]:
467
- """
468
- Decorator that helps cache, version and store models/datasets from huggingface hub.
469
- """
470
- ...
471
-
472
- @typing.overload
473
- 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]]]:
474
- """
475
- Specifies the Conda environment for the step.
476
-
477
- Information in this decorator will augment any
478
- attributes set in the `@conda_base` flow-level decorator. Hence,
479
- you can use `@conda_base` to set packages required by all
480
- steps and use `@conda` to specify step-specific overrides.
481
- """
482
- ...
483
-
484
- @typing.overload
485
- def conda(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
486
- ...
487
-
488
- @typing.overload
489
- def conda(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
490
- ...
491
-
492
- 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):
493
- """
494
- Specifies the Conda environment for the step.
495
-
496
- Information in this decorator will augment any
497
- attributes set in the `@conda_base` flow-level decorator. Hence,
498
- you can use `@conda_base` to set packages required by all
499
- steps and use `@conda` to specify step-specific overrides.
500
- """
501
- ...
502
-
503
- @typing.overload
504
- 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]]]:
505
- """
506
- Creates a human-readable report, a Metaflow Card, after this step completes.
507
-
508
- Note that you may add multiple `@card` decorators in a step with different parameters.
509
- """
510
- ...
511
-
512
- @typing.overload
513
- def card(f: typing.Callable[[FlowSpecDerived, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, StepFlag], None]:
514
- ...
515
-
516
- @typing.overload
517
- def card(f: typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]) -> typing.Callable[[FlowSpecDerived, typing.Any, StepFlag], None]:
518
- ...
519
-
520
- 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):
521
- """
522
- Creates a human-readable report, a Metaflow Card, after this step completes.
523
-
524
- Note that you may add multiple `@card` decorators in a step with different parameters.
525
- """
526
- ...
527
-
528
- def nvidia(*, gpu: int, gpu_type: 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]]]:
529
- """
530
- Specifies that this step should execute on DGX cloud.
530
+ Specifies that this step should execute on Kubernetes.
531
531
  """
532
532
  ...
533
533
 
@@ -540,76 +540,101 @@ def project(*, name: str) -> typing.Callable[[typing.Type[FlowSpecDerived]], typ
540
540
  """
541
541
  ...
542
542
 
543
+ 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]]:
544
+ """
545
+ 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)
546
+ before the start step of the flow. This decorator only works when a flow is scheduled on Airflow
547
+ and is compiled using `airflow create`. More than one `@airflow_s3_key_sensor` can be
548
+ added as a flow decorators. Adding more than one decorator will ensure that `start` step
549
+ starts only after all sensors finish.
550
+ """
551
+ ...
552
+
543
553
  @typing.overload
544
- 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]]:
554
+ 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]]:
545
555
  """
546
- Specifies the event(s) that this flow depends on.
556
+ Specifies the flow(s) that this flow depends on.
547
557
 
548
558
  ```
549
- @trigger(event='foo')
559
+ @trigger_on_finish(flow='FooFlow')
550
560
  ```
551
561
  or
552
562
  ```
553
- @trigger(events=['foo', 'bar'])
563
+ @trigger_on_finish(flows=['FooFlow', 'BarFlow'])
554
564
  ```
565
+ This decorator respects the @project decorator and triggers the flow
566
+ when upstream runs within the same namespace complete successfully
555
567
 
556
- Additionally, you can specify the parameter mappings
557
- to map event payload to Metaflow parameters for the flow.
568
+ Additionally, you can specify project aware upstream flow dependencies
569
+ by specifying the fully qualified project_flow_name.
558
570
  ```
559
- @trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
571
+ @trigger_on_finish(flow='my_project.branch.my_branch.FooFlow')
560
572
  ```
561
573
  or
562
574
  ```
563
- @trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
564
- {'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
575
+ @trigger_on_finish(flows=['my_project.branch.my_branch.FooFlow', 'BarFlow'])
565
576
  ```
566
577
 
567
- 'parameters' can also be a list of strings and tuples like so:
568
- ```
569
- @trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
570
- ```
571
- This is equivalent to:
578
+ You can also specify just the project or project branch (other values will be
579
+ inferred from the current project or project branch):
572
580
  ```
573
- @trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
581
+ @trigger_on_finish(flow={"name": "FooFlow", "project": "my_project", "project_branch": "branch"})
574
582
  ```
583
+
584
+ Note that `branch` is typically one of:
585
+ - `prod`
586
+ - `user.bob`
587
+ - `test.my_experiment`
588
+ - `prod.staging`
575
589
  """
576
590
  ...
577
591
 
578
592
  @typing.overload
579
- def trigger(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
593
+ def trigger_on_finish(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
580
594
  ...
581
595
 
582
- 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] = {}):
596
+ 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] = {}):
583
597
  """
584
- Specifies the event(s) that this flow depends on.
598
+ Specifies the flow(s) that this flow depends on.
585
599
 
586
600
  ```
587
- @trigger(event='foo')
601
+ @trigger_on_finish(flow='FooFlow')
588
602
  ```
589
603
  or
590
604
  ```
591
- @trigger(events=['foo', 'bar'])
605
+ @trigger_on_finish(flows=['FooFlow', 'BarFlow'])
592
606
  ```
607
+ This decorator respects the @project decorator and triggers the flow
608
+ when upstream runs within the same namespace complete successfully
593
609
 
594
- Additionally, you can specify the parameter mappings
595
- to map event payload to Metaflow parameters for the flow.
610
+ Additionally, you can specify project aware upstream flow dependencies
611
+ by specifying the fully qualified project_flow_name.
596
612
  ```
597
- @trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
613
+ @trigger_on_finish(flow='my_project.branch.my_branch.FooFlow')
598
614
  ```
599
615
  or
600
616
  ```
601
- @trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
602
- {'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
617
+ @trigger_on_finish(flows=['my_project.branch.my_branch.FooFlow', 'BarFlow'])
603
618
  ```
604
619
 
605
- 'parameters' can also be a list of strings and tuples like so:
606
- ```
607
- @trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
608
- ```
609
- This is equivalent to:
620
+ You can also specify just the project or project branch (other values will be
621
+ inferred from the current project or project branch):
610
622
  ```
611
- @trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
623
+ @trigger_on_finish(flow={"name": "FooFlow", "project": "my_project", "project_branch": "branch"})
612
624
  ```
625
+
626
+ Note that `branch` is typically one of:
627
+ - `prod`
628
+ - `user.bob`
629
+ - `test.my_experiment`
630
+ - `prod.staging`
631
+ """
632
+ ...
633
+
634
+ 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]]:
635
+ """
636
+ 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.
637
+ 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.
613
638
  """
614
639
  ...
615
640
 
@@ -655,124 +680,76 @@ def pypi_base(f: typing.Optional[typing.Type[FlowSpecDerived]] = None, *, packag
655
680
  """
656
681
  ...
657
682
 
658
- 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]]:
659
- """
660
- 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)
661
- before the start step of the flow. This decorator only works when a flow is scheduled on Airflow
662
- and is compiled using `airflow create`. More than one `@airflow_s3_key_sensor` can be
663
- added as a flow decorators. Adding more than one decorator will ensure that `start` step
664
- starts only after all sensors finish.
665
- """
666
- ...
667
-
668
683
  @typing.overload
669
- 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]]:
684
+ 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]]:
670
685
  """
671
- Specifies the flow(s) that this flow depends on.
686
+ Specifies the event(s) that this flow depends on.
672
687
 
673
688
  ```
674
- @trigger_on_finish(flow='FooFlow')
689
+ @trigger(event='foo')
675
690
  ```
676
691
  or
677
692
  ```
678
- @trigger_on_finish(flows=['FooFlow', 'BarFlow'])
693
+ @trigger(events=['foo', 'bar'])
679
694
  ```
680
- This decorator respects the @project decorator and triggers the flow
681
- when upstream runs within the same namespace complete successfully
682
695
 
683
- Additionally, you can specify project aware upstream flow dependencies
684
- by specifying the fully qualified project_flow_name.
696
+ Additionally, you can specify the parameter mappings
697
+ to map event payload to Metaflow parameters for the flow.
685
698
  ```
686
- @trigger_on_finish(flow='my_project.branch.my_branch.FooFlow')
699
+ @trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
687
700
  ```
688
701
  or
689
702
  ```
690
- @trigger_on_finish(flows=['my_project.branch.my_branch.FooFlow', 'BarFlow'])
703
+ @trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
704
+ {'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
691
705
  ```
692
706
 
693
- You can also specify just the project or project branch (other values will be
694
- inferred from the current project or project branch):
707
+ 'parameters' can also be a list of strings and tuples like so:
695
708
  ```
696
- @trigger_on_finish(flow={"name": "FooFlow", "project": "my_project", "project_branch": "branch"})
709
+ @trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
710
+ ```
711
+ This is equivalent to:
712
+ ```
713
+ @trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
697
714
  ```
698
-
699
- Note that `branch` is typically one of:
700
- - `prod`
701
- - `user.bob`
702
- - `test.my_experiment`
703
- - `prod.staging`
704
715
  """
705
716
  ...
706
717
 
707
718
  @typing.overload
708
- def trigger_on_finish(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
719
+ def trigger(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
709
720
  ...
710
721
 
711
- 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] = {}):
722
+ 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] = {}):
712
723
  """
713
- Specifies the flow(s) that this flow depends on.
724
+ Specifies the event(s) that this flow depends on.
714
725
 
715
726
  ```
716
- @trigger_on_finish(flow='FooFlow')
727
+ @trigger(event='foo')
717
728
  ```
718
729
  or
719
730
  ```
720
- @trigger_on_finish(flows=['FooFlow', 'BarFlow'])
731
+ @trigger(events=['foo', 'bar'])
721
732
  ```
722
- This decorator respects the @project decorator and triggers the flow
723
- when upstream runs within the same namespace complete successfully
724
733
 
725
- Additionally, you can specify project aware upstream flow dependencies
726
- by specifying the fully qualified project_flow_name.
734
+ Additionally, you can specify the parameter mappings
735
+ to map event payload to Metaflow parameters for the flow.
727
736
  ```
728
- @trigger_on_finish(flow='my_project.branch.my_branch.FooFlow')
737
+ @trigger(event={'name':'foo', 'parameters':{'flow_param': 'event_field'}})
729
738
  ```
730
739
  or
731
740
  ```
732
- @trigger_on_finish(flows=['my_project.branch.my_branch.FooFlow', 'BarFlow'])
741
+ @trigger(events=[{'name':'foo', 'parameters':{'flow_param_1': 'event_field_1'},
742
+ {'name':'bar', 'parameters':{'flow_param_2': 'event_field_2'}])
733
743
  ```
734
744
 
735
- You can also specify just the project or project branch (other values will be
736
- inferred from the current project or project branch):
745
+ 'parameters' can also be a list of strings and tuples like so:
737
746
  ```
738
- @trigger_on_finish(flow={"name": "FooFlow", "project": "my_project", "project_branch": "branch"})
747
+ @trigger(event={'name':'foo', 'parameters':['common_name', ('flow_param', 'event_field')]})
748
+ ```
749
+ This is equivalent to:
750
+ ```
751
+ @trigger(event={'name':'foo', 'parameters':{'common_name': 'common_name', 'flow_param': 'event_field'}})
739
752
  ```
740
-
741
- Note that `branch` is typically one of:
742
- - `prod`
743
- - `user.bob`
744
- - `test.my_experiment`
745
- - `prod.staging`
746
- """
747
- ...
748
-
749
- @typing.overload
750
- 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]]:
751
- """
752
- Specifies the Conda environment for all steps of the flow.
753
-
754
- Use `@conda_base` to set common libraries required by all
755
- steps and use `@conda` to specify step-specific additions.
756
- """
757
- ...
758
-
759
- @typing.overload
760
- def conda_base(f: typing.Type[FlowSpecDerived]) -> typing.Type[FlowSpecDerived]:
761
- ...
762
-
763
- 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):
764
- """
765
- Specifies the Conda environment for all steps of the flow.
766
-
767
- Use `@conda_base` to set common libraries required by all
768
- steps and use `@conda` to specify step-specific additions.
769
- """
770
- ...
771
-
772
- 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]]:
773
- """
774
- 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.
775
- 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.
776
753
  """
777
754
  ...
778
755
 
@@ -800,5 +777,28 @@ def nim(*, models: "list[NIM]", backend: str) -> typing.Callable[[typing.Type[Fl
800
777
  """
801
778
  ...
802
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
+
798
+ Use `@conda_base` to set common libraries required by all
799
+ steps and use `@conda` to specify step-specific additions.
800
+ """
801
+ ...
802
+
803
803
  pkg_name: str
804
804