metaflow-stubs 2.12.21__py2.py3-none-any.whl → 2.12.23__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. metaflow-stubs/__init__.pyi +1047 -656
  2. metaflow-stubs/cards.pyi +209 -3
  3. metaflow-stubs/cli.pyi +23 -3
  4. metaflow-stubs/client/__init__.pyi +128 -3
  5. metaflow-stubs/client/core.pyi +225 -5
  6. metaflow-stubs/client/filecache.pyi +3 -3
  7. metaflow-stubs/clone_util.pyi +5 -2
  8. metaflow-stubs/events.pyi +21 -3
  9. metaflow-stubs/exception.pyi +2 -2
  10. metaflow-stubs/flowspec.pyi +70 -4
  11. metaflow-stubs/generated_for.txt +1 -1
  12. metaflow-stubs/includefile.pyi +157 -4
  13. metaflow-stubs/info_file.pyi +2 -2
  14. metaflow-stubs/metadata/metadata.pyi +9 -3
  15. metaflow-stubs/metadata/util.pyi +2 -2
  16. metaflow-stubs/metaflow_config.pyi +2 -2
  17. metaflow-stubs/metaflow_current.pyi +8 -5
  18. metaflow-stubs/mflog/mflog.pyi +2 -2
  19. metaflow-stubs/multicore_utils.pyi +2 -2
  20. metaflow-stubs/parameters.pyi +69 -3
  21. metaflow-stubs/plugins/__init__.pyi +13 -2
  22. metaflow-stubs/plugins/airflow/__init__.pyi +2 -2
  23. metaflow-stubs/plugins/airflow/airflow.pyi +15 -3
  24. metaflow-stubs/plugins/airflow/airflow_cli.pyi +66 -3
  25. metaflow-stubs/plugins/airflow/airflow_decorator.pyi +5 -2
  26. metaflow-stubs/plugins/airflow/airflow_utils.pyi +2 -2
  27. metaflow-stubs/plugins/airflow/exception.pyi +2 -2
  28. metaflow-stubs/plugins/airflow/sensors/__init__.pyi +80 -2
  29. metaflow-stubs/plugins/airflow/sensors/base_sensor.pyi +5 -2
  30. metaflow-stubs/plugins/airflow/sensors/external_task_sensor.pyi +45 -3
  31. metaflow-stubs/plugins/airflow/sensors/s3_sensor.pyi +45 -3
  32. metaflow-stubs/plugins/argo/__init__.pyi +2 -2
  33. metaflow-stubs/plugins/argo/argo_client.pyi +2 -2
  34. metaflow-stubs/plugins/argo/argo_events.pyi +16 -2
  35. metaflow-stubs/plugins/argo/argo_workflows.pyi +6 -4
  36. metaflow-stubs/plugins/argo/argo_workflows_cli.pyi +98 -7
  37. metaflow-stubs/plugins/argo/argo_workflows_decorator.pyi +34 -6
  38. metaflow-stubs/plugins/argo/argo_workflows_deployer.pyi +49 -4
  39. metaflow-stubs/plugins/aws/__init__.pyi +2 -2
  40. metaflow-stubs/plugins/aws/aws_client.pyi +2 -2
  41. metaflow-stubs/plugins/aws/aws_utils.pyi +2 -2
  42. metaflow-stubs/plugins/aws/batch/__init__.pyi +2 -2
  43. metaflow-stubs/plugins/aws/batch/batch.pyi +2 -2
  44. metaflow-stubs/plugins/aws/batch/batch_cli.pyi +2 -2
  45. metaflow-stubs/plugins/aws/batch/batch_client.pyi +2 -2
  46. metaflow-stubs/plugins/aws/batch/batch_decorator.pyi +103 -3
  47. metaflow-stubs/plugins/aws/secrets_manager/__init__.pyi +2 -2
  48. metaflow-stubs/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.pyi +16 -4
  49. metaflow-stubs/plugins/aws/step_functions/__init__.pyi +2 -2
  50. metaflow-stubs/plugins/aws/step_functions/dynamo_db_client.pyi +2 -2
  51. metaflow-stubs/plugins/aws/step_functions/event_bridge_client.pyi +2 -2
  52. metaflow-stubs/plugins/aws/step_functions/production_token.pyi +2 -2
  53. metaflow-stubs/plugins/aws/step_functions/schedule_decorator.pyi +21 -2
  54. metaflow-stubs/plugins/aws/step_functions/step_functions.pyi +2 -2
  55. metaflow-stubs/plugins/aws/step_functions/step_functions_cli.pyi +70 -4
  56. metaflow-stubs/plugins/aws/step_functions/step_functions_client.pyi +2 -2
  57. metaflow-stubs/plugins/aws/step_functions/step_functions_decorator.pyi +5 -2
  58. metaflow-stubs/plugins/aws/step_functions/step_functions_deployer.pyi +49 -4
  59. metaflow-stubs/plugins/azure/__init__.pyi +2 -2
  60. metaflow-stubs/plugins/azure/azure_credential.pyi +2 -2
  61. metaflow-stubs/plugins/azure/azure_exceptions.pyi +2 -2
  62. metaflow-stubs/plugins/azure/azure_secret_manager_secrets_provider.pyi +22 -4
  63. metaflow-stubs/plugins/azure/azure_utils.pyi +2 -2
  64. metaflow-stubs/plugins/azure/blob_service_client_factory.pyi +2 -2
  65. metaflow-stubs/plugins/azure/includefile_support.pyi +2 -2
  66. metaflow-stubs/plugins/cards/__init__.pyi +2 -2
  67. metaflow-stubs/plugins/cards/card_cli.pyi +62 -4
  68. metaflow-stubs/plugins/cards/card_client.pyi +33 -2
  69. metaflow-stubs/plugins/cards/card_creator.pyi +5 -2
  70. metaflow-stubs/plugins/cards/card_datastore.pyi +8 -2
  71. metaflow-stubs/plugins/cards/card_decorator.pyi +53 -3
  72. metaflow-stubs/plugins/cards/card_modules/__init__.pyi +28 -2
  73. metaflow-stubs/plugins/cards/card_modules/basic.pyi +42 -3
  74. metaflow-stubs/plugins/cards/card_modules/card.pyi +28 -2
  75. metaflow-stubs/plugins/cards/card_modules/chevron/__init__.pyi +2 -2
  76. metaflow-stubs/plugins/cards/card_modules/chevron/main.pyi +2 -2
  77. metaflow-stubs/plugins/cards/card_modules/chevron/metadata.pyi +2 -2
  78. metaflow-stubs/plugins/cards/card_modules/chevron/renderer.pyi +2 -2
  79. metaflow-stubs/plugins/cards/card_modules/chevron/tokenizer.pyi +2 -2
  80. metaflow-stubs/plugins/cards/card_modules/components.pyi +183 -3
  81. metaflow-stubs/plugins/cards/card_modules/convert_to_native_type.pyi +5 -2
  82. metaflow-stubs/plugins/cards/card_modules/renderer_tools.pyi +2 -2
  83. metaflow-stubs/plugins/cards/card_modules/test_cards.pyi +36 -3
  84. metaflow-stubs/plugins/cards/card_resolver.pyi +2 -2
  85. metaflow-stubs/plugins/cards/component_serializer.pyi +56 -3
  86. metaflow-stubs/plugins/cards/exception.pyi +8 -2
  87. metaflow-stubs/plugins/catch_decorator.pyi +20 -3
  88. metaflow-stubs/plugins/datatools/__init__.pyi +63 -3
  89. metaflow-stubs/plugins/datatools/local.pyi +16 -2
  90. metaflow-stubs/plugins/datatools/s3/__init__.pyi +72 -3
  91. metaflow-stubs/plugins/datatools/s3/s3.pyi +82 -5
  92. metaflow-stubs/plugins/datatools/s3/s3tail.pyi +2 -2
  93. metaflow-stubs/plugins/datatools/s3/s3util.pyi +2 -2
  94. metaflow-stubs/plugins/debug_logger.pyi +2 -2
  95. metaflow-stubs/plugins/debug_monitor.pyi +2 -2
  96. metaflow-stubs/plugins/environment_decorator.pyi +10 -2
  97. metaflow-stubs/plugins/events_decorator.pyi +107 -3
  98. metaflow-stubs/plugins/frameworks/__init__.pyi +2 -2
  99. metaflow-stubs/plugins/frameworks/pytorch.pyi +24 -3
  100. metaflow-stubs/plugins/gcp/__init__.pyi +2 -2
  101. metaflow-stubs/plugins/gcp/gcp_secret_manager_secrets_provider.pyi +16 -4
  102. metaflow-stubs/plugins/gcp/gs_exceptions.pyi +2 -2
  103. metaflow-stubs/plugins/gcp/gs_storage_client_factory.pyi +2 -2
  104. metaflow-stubs/plugins/gcp/gs_utils.pyi +2 -2
  105. metaflow-stubs/plugins/gcp/includefile_support.pyi +2 -2
  106. metaflow-stubs/plugins/kubernetes/__init__.pyi +2 -2
  107. metaflow-stubs/plugins/kubernetes/kube_utils.pyi +2 -2
  108. metaflow-stubs/plugins/kubernetes/kubernetes.pyi +3 -3
  109. metaflow-stubs/plugins/kubernetes/kubernetes_cli.pyi +66 -3
  110. metaflow-stubs/plugins/kubernetes/kubernetes_client.pyi +2 -2
  111. metaflow-stubs/plugins/kubernetes/kubernetes_decorator.pyi +100 -3
  112. metaflow-stubs/plugins/kubernetes/kubernetes_job.pyi +2 -2
  113. metaflow-stubs/plugins/kubernetes/kubernetes_jobsets.pyi +5 -2
  114. metaflow-stubs/plugins/logs_cli.pyi +2 -2
  115. metaflow-stubs/plugins/package_cli.pyi +2 -2
  116. metaflow-stubs/plugins/parallel_decorator.pyi +30 -3
  117. metaflow-stubs/plugins/project_decorator.pyi +60 -3
  118. metaflow-stubs/plugins/pypi/__init__.pyi +2 -2
  119. metaflow-stubs/plugins/pypi/conda_decorator.pyi +45 -2
  120. metaflow-stubs/plugins/pypi/conda_environment.pyi +4 -4
  121. metaflow-stubs/plugins/pypi/pypi_decorator.pyi +33 -2
  122. metaflow-stubs/plugins/pypi/pypi_environment.pyi +3 -3
  123. metaflow-stubs/plugins/pypi/utils.pyi +2 -2
  124. metaflow-stubs/plugins/resources_decorator.pyi +33 -2
  125. metaflow-stubs/plugins/retry_decorator.pyi +21 -2
  126. metaflow-stubs/plugins/secrets/__init__.pyi +2 -2
  127. metaflow-stubs/plugins/secrets/inline_secrets_provider.pyi +3 -3
  128. metaflow-stubs/plugins/secrets/secrets_decorator.pyi +11 -2
  129. metaflow-stubs/plugins/storage_executor.pyi +6 -2
  130. metaflow-stubs/plugins/tag_cli.pyi +35 -4
  131. metaflow-stubs/plugins/test_unbounded_foreach_decorator.pyi +9 -2
  132. metaflow-stubs/plugins/timeout_decorator.pyi +23 -2
  133. metaflow-stubs/procpoll.pyi +2 -2
  134. metaflow-stubs/pylint_wrapper.pyi +2 -2
  135. metaflow-stubs/runner/__init__.pyi +2 -2
  136. metaflow-stubs/runner/deployer.pyi +70 -131
  137. metaflow-stubs/runner/metaflow_runner.pyi +116 -8
  138. metaflow-stubs/runner/nbdeploy.pyi +66 -2
  139. metaflow-stubs/runner/nbrun.pyi +79 -2
  140. metaflow-stubs/runner/subprocess_manager.pyi +16 -4
  141. metaflow-stubs/runner/utils.pyi +32 -2
  142. metaflow-stubs/system/__init__.pyi +2 -2
  143. metaflow-stubs/system/system_logger.pyi +2 -2
  144. metaflow-stubs/system/system_monitor.pyi +2 -2
  145. metaflow-stubs/tagging_util.pyi +2 -2
  146. metaflow-stubs/tuple_util.pyi +2 -2
  147. metaflow-stubs/version.pyi +2 -2
  148. {metaflow_stubs-2.12.21.dist-info → metaflow_stubs-2.12.23.dist-info}/METADATA +2 -2
  149. metaflow_stubs-2.12.23.dist-info/RECORD +152 -0
  150. metaflow_stubs-2.12.21.dist-info/RECORD +0 -152
  151. {metaflow_stubs-2.12.21.dist-info → metaflow_stubs-2.12.23.dist-info}/WHEEL +0 -0
  152. {metaflow_stubs-2.12.21.dist-info → metaflow_stubs-2.12.23.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,7 @@
1
1
  ##################################################################################
2
2
  # Auto-generated Metaflow stub file #
3
- # MF version: 2.12.21 #
4
- # Generated on 2024-09-19T17:04:54.884422 #
3
+ # MF version: 2.12.23 #
4
+ # Generated on 2024-10-01T14:32:40.008055 #
5
5
  ##################################################################################
6
6
 
7
7
  from __future__ import annotations
@@ -13,6 +13,32 @@ if typing.TYPE_CHECKING:
13
13
  TYPE_CHECKING: bool
14
14
 
15
15
  class MetaflowCard(object, metaclass=type):
16
+ """
17
+ Metaflow cards derive from this base class.
18
+
19
+ Subclasses of this class are called *card types*. The desired card
20
+ type `T` is defined in the `@card` decorator as `@card(type=T)`.
21
+
22
+ After a task with `@card(type=T, options=S)` finishes executing, Metaflow instantiates
23
+ a subclass `C` of `MetaflowCard` that has its `type` attribute set to `T`, i.e. `C.type=T`.
24
+ The constructor is given the options dictionary `S` that contains arbitrary
25
+ JSON-encodable data that is passed to the instance, parametrizing the card. The subclass
26
+ may override the constructor to capture and process the options.
27
+
28
+ The subclass needs to implement a `render(task)` method that produces the card
29
+ contents in HTML, given the finished task that is represented by a `Task` object.
30
+
31
+ Attributes
32
+ ----------
33
+ type : str
34
+ Card type string. Note that this should be a globally unique name, similar to a
35
+ Python package name, to avoid name clashes between different custom cards.
36
+
37
+ Parameters
38
+ ----------
39
+ options : Dict
40
+ JSON-encodable dictionary containing user-definable options for the class.
41
+ """
16
42
  def __init__(self, options = {}, components = [], graph = None):
17
43
  ...
18
44
  def render(self, task: "metaflow.Task") -> str:
@@ -1,7 +1,7 @@
1
1
  ##################################################################################
2
2
  # Auto-generated Metaflow stub file #
3
- # MF version: 2.12.21 #
4
- # Generated on 2024-09-19T17:04:54.956435 #
3
+ # MF version: 2.12.23 #
4
+ # Generated on 2024-10-01T14:32:40.082721 #
5
5
  ##################################################################################
6
6
 
7
7
  from __future__ import annotations
@@ -1,7 +1,7 @@
1
1
  ##################################################################################
2
2
  # Auto-generated Metaflow stub file #
3
- # MF version: 2.12.21 #
4
- # Generated on 2024-09-19T17:04:54.959664 #
3
+ # MF version: 2.12.23 #
4
+ # Generated on 2024-10-01T14:32:40.084161 #
5
5
  ##################################################################################
6
6
 
7
7
  from __future__ import annotations
@@ -1,7 +1,7 @@
1
1
  ##################################################################################
2
2
  # Auto-generated Metaflow stub file #
3
- # MF version: 2.12.21 #
4
- # Generated on 2024-09-19T17:04:54.959324 #
3
+ # MF version: 2.12.23 #
4
+ # Generated on 2024-10-01T14:32:40.083813 #
5
5
  ##################################################################################
6
6
 
7
7
  from __future__ import annotations
@@ -1,7 +1,7 @@
1
1
  ##################################################################################
2
2
  # Auto-generated Metaflow stub file #
3
- # MF version: 2.12.21 #
4
- # Generated on 2024-09-19T17:04:54.959210 #
3
+ # MF version: 2.12.23 #
4
+ # Generated on 2024-10-01T14:32:40.083698 #
5
5
  ##################################################################################
6
6
 
7
7
  from __future__ import annotations
@@ -1,7 +1,7 @@
1
1
  ##################################################################################
2
2
  # Auto-generated Metaflow stub file #
3
- # MF version: 2.12.21 #
4
- # Generated on 2024-09-19T17:04:54.958745 #
3
+ # MF version: 2.12.23 #
4
+ # Generated on 2024-10-01T14:32:40.083241 #
5
5
  ##################################################################################
6
6
 
7
7
  from __future__ import annotations
@@ -1,7 +1,7 @@
1
1
  ##################################################################################
2
2
  # Auto-generated Metaflow stub file #
3
- # MF version: 2.12.21 #
4
- # Generated on 2024-09-19T17:04:54.886670 #
3
+ # MF version: 2.12.23 #
4
+ # Generated on 2024-10-01T14:32:40.011092 #
5
5
  ##################################################################################
6
6
 
7
7
  from __future__ import annotations
@@ -9,9 +9,9 @@ from __future__ import annotations
9
9
  import typing
10
10
  if typing.TYPE_CHECKING:
11
11
  import metaflow.plugins.cards.card_modules.card
12
- import typing
13
12
  import metaflow.plugins.cards.card_modules.basic
14
13
  import metaflow.plugins.cards.card_modules.components
14
+ import typing
15
15
 
16
16
  class LogComponent(metaflow.plugins.cards.card_modules.basic.DefaultComponent, metaclass=type):
17
17
  def __init__(self, data = None):
@@ -126,6 +126,26 @@ class StubComponent(UserComponent, metaclass=type):
126
126
  ...
127
127
 
128
128
  class Artifact(UserComponent, metaclass=type):
129
+ """
130
+ A pretty-printed version of any Python object.
131
+
132
+ Large objects are truncated using Python's built-in [`reprlib`](https://docs.python.org/3/library/reprlib.html).
133
+
134
+ Example:
135
+ ```
136
+ from datetime import datetime
137
+ current.card.append(Artifact({'now': datetime.utcnow()}))
138
+ ```
139
+
140
+ Parameters
141
+ ----------
142
+ artifact : object
143
+ Any Python object.
144
+ name : str, optional
145
+ Optional label for the object.
146
+ compressed : bool, default: True
147
+ Use a truncated representation.
148
+ """
129
149
  def update(self, artifact):
130
150
  ...
131
151
  def __init__(self, artifact: typing.Any, name: typing.Optional[str] = None, compressed: bool = True):
@@ -135,6 +155,45 @@ class Artifact(UserComponent, metaclass=type):
135
155
  ...
136
156
 
137
157
  class Table(UserComponent, metaclass=type):
158
+ """
159
+ A table.
160
+
161
+ The contents of the table can be text or numerical data, a Pandas dataframe,
162
+ or other card components: `Artifact`, `Image`, `Markdown` objects.
163
+
164
+ Example: Text and artifacts
165
+ ```
166
+ from metaflow.cards import Table, Artifact
167
+ current.card.append(
168
+ Table([
169
+ ['first row', Artifact({'a': 2})],
170
+ ['second row', Artifact(3)]
171
+ ])
172
+ )
173
+ ```
174
+
175
+ Example: Table from a Pandas dataframe
176
+ ```
177
+ from metaflow.cards import Table
178
+ import pandas as pd
179
+ import numpy as np
180
+ current.card.append(
181
+ Table.from_dataframe(
182
+ pd.DataFrame(
183
+ np.random.randint(0, 100, size=(15, 4)),
184
+ columns=list("ABCD")
185
+ )
186
+ )
187
+ )
188
+ ```
189
+
190
+ Parameters
191
+ ----------
192
+ data : List[List[str or MetaflowCardComponent]], optional
193
+ List (rows) of lists (columns). Each item can be a string or a `MetaflowCardComponent`.
194
+ headers : List[str], optional
195
+ Optional header row for the table.
196
+ """
138
197
  def update(self, *args, **kwargs):
139
198
  ...
140
199
  def __init__(self, data: typing.Optional[typing.List[typing.List[typing.Union[str, metaflow.plugins.cards.card_modules.card.MetaflowCardComponent]]]] = None, headers: typing.Optional[typing.List[str]] = None, disable_updates: bool = False):
@@ -157,6 +216,55 @@ class Table(UserComponent, metaclass=type):
157
216
  ...
158
217
 
159
218
  class Image(UserComponent, metaclass=type):
219
+ """
220
+ An image.
221
+
222
+ `Images can be created directly from PNG/JPG/GIF `bytes`, `PIL.Image`s,
223
+ or Matplotlib figures. Note that the image data is embedded in the card,
224
+ so no external files are required to show the image.
225
+
226
+ Example: Create an `Image` from bytes:
227
+ ```
228
+ current.card.append(
229
+ Image(
230
+ requests.get("https://www.gif-vif.com/hacker-cat.gif").content,
231
+ "Image From Bytes"
232
+ )
233
+ )
234
+ ```
235
+
236
+ Example: Create an `Image` from a Matplotlib figure
237
+ ```
238
+ import pandas as pd
239
+ import numpy as np
240
+ current.card.append(
241
+ Image.from_matplotlib(
242
+ pandas.DataFrame(
243
+ np.random.randint(0, 100, size=(15, 4)),
244
+ columns=list("ABCD"),
245
+ ).plot()
246
+ )
247
+ )
248
+ ```
249
+
250
+ Example: Create an `Image` from a [PIL](https://pillow.readthedocs.io/) Image
251
+ ```
252
+ from PIL import Image as PILImage
253
+ current.card.append(
254
+ Image.from_pil_image(
255
+ PILImage.fromarray(np.random.randn(1024, 768), "RGB"),
256
+ "From PIL Image"
257
+ )
258
+ )
259
+ ```
260
+
261
+ Parameters
262
+ ----------
263
+ src : bytes
264
+ The image data in `bytes`.
265
+ label : str
266
+ Optional label for the image.
267
+ """
160
268
  @staticmethod
161
269
  def render_fail_headline(msg):
162
270
  ...
@@ -205,6 +313,30 @@ class Image(UserComponent, metaclass=type):
205
313
  ...
206
314
 
207
315
  class Error(UserComponent, metaclass=type):
316
+ """
317
+ This class helps visualize Error's on the `MetaflowCard`. It can help catch and print stack traces to errors that happen in `@step` code.
318
+
319
+ ### Parameters
320
+ - `exception` (Exception) : The `Exception` to visualize. This value will be `repr`'d before passed down to `MetaflowCard`
321
+ - `title` (str) : The title that will appear over the visualized `Exception`.
322
+
323
+ ### Usage
324
+ ```python
325
+ @card
326
+ @step
327
+ def my_step(self):
328
+ from metaflow.cards import Error
329
+ from metaflow import current
330
+ try:
331
+ ...
332
+ ...
333
+ except Exception as e:
334
+ current.card.append(
335
+ Error(e,"Something misbehaved")
336
+ )
337
+ ...
338
+ ```
339
+ """
208
340
  def __init__(self, exception, title = None):
209
341
  ...
210
342
  def render(self, *args, **kwargs):
@@ -212,6 +344,21 @@ class Error(UserComponent, metaclass=type):
212
344
  ...
213
345
 
214
346
  class Markdown(UserComponent, metaclass=type):
347
+ """
348
+ A block of text formatted in Markdown.
349
+
350
+ Example:
351
+ ```
352
+ current.card.append(
353
+ Markdown("# This is a header appended from `@step` code")
354
+ )
355
+ ```
356
+
357
+ Parameters
358
+ ----------
359
+ text : str
360
+ Text formatted in Markdown.
361
+ """
215
362
  def update(self, text = None):
216
363
  ...
217
364
  def __init__(self, text = None):
@@ -221,6 +368,39 @@ class Markdown(UserComponent, metaclass=type):
221
368
  ...
222
369
 
223
370
  class ProgressBar(UserComponent, metaclass=type):
371
+ """
372
+ A Progress bar for tracking progress of any task.
373
+
374
+ Example:
375
+ ```
376
+ progress_bar = ProgressBar(
377
+ max=100,
378
+ label="Progress Bar",
379
+ value=0,
380
+ unit="%",
381
+ metadata="0.1 items/s"
382
+ )
383
+ current.card.append(
384
+ progress_bar
385
+ )
386
+ for i in range(100):
387
+ progress_bar.update(i, metadata="%s items/s" % i)
388
+
389
+ ```
390
+
391
+ Parameters
392
+ ----------
393
+ max : int
394
+ The maximum value of the progress bar.
395
+ label : str, optional
396
+ Optional label for the progress bar.
397
+ value : int, optional
398
+ Optional initial value of the progress bar.
399
+ unit : str, optional
400
+ Optional unit for the progress bar.
401
+ metadata : str, optional
402
+ Optional additional information to show on the progress bar.
403
+ """
224
404
  def __init__(self, max: int = 100, label: str = None, value: int = 0, unit: str = None, metadata: str = None):
225
405
  ...
226
406
  def update(self, new_value: int, metadata: str = None):
@@ -1,13 +1,16 @@
1
1
  ##################################################################################
2
2
  # Auto-generated Metaflow stub file #
3
- # MF version: 2.12.21 #
4
- # Generated on 2024-09-19T17:04:54.942929 #
3
+ # MF version: 2.12.23 #
4
+ # Generated on 2024-10-01T14:32:40.064201 #
5
5
  ##################################################################################
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
9
 
10
10
  class TypeResolvedObject(tuple, metaclass=type):
11
+ """
12
+ TypeResolvedObject(data, is_image, is_table)
13
+ """
11
14
  @staticmethod
12
15
  def __new__(_cls, data, is_image, is_table):
13
16
  """
@@ -1,7 +1,7 @@
1
1
  ##################################################################################
2
2
  # Auto-generated Metaflow stub file #
3
- # MF version: 2.12.21 #
4
- # Generated on 2024-09-19T17:04:54.943145 #
3
+ # MF version: 2.12.23 #
4
+ # Generated on 2024-10-01T14:32:40.064419 #
5
5
  ##################################################################################
6
6
 
7
7
  from __future__ import annotations
@@ -1,17 +1,43 @@
1
1
  ##################################################################################
2
2
  # Auto-generated Metaflow stub file #
3
- # MF version: 2.12.21 #
4
- # Generated on 2024-09-19T17:04:54.879828 #
3
+ # MF version: 2.12.23 #
4
+ # Generated on 2024-10-01T14:32:40.003430 #
5
5
  ##################################################################################
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
9
  import typing
10
10
  if typing.TYPE_CHECKING:
11
- import metaflow
12
11
  import metaflow.plugins.cards.card_modules.card
12
+ import metaflow
13
13
 
14
14
  class MetaflowCard(object, metaclass=type):
15
+ """
16
+ Metaflow cards derive from this base class.
17
+
18
+ Subclasses of this class are called *card types*. The desired card
19
+ type `T` is defined in the `@card` decorator as `@card(type=T)`.
20
+
21
+ After a task with `@card(type=T, options=S)` finishes executing, Metaflow instantiates
22
+ a subclass `C` of `MetaflowCard` that has its `type` attribute set to `T`, i.e. `C.type=T`.
23
+ The constructor is given the options dictionary `S` that contains arbitrary
24
+ JSON-encodable data that is passed to the instance, parametrizing the card. The subclass
25
+ may override the constructor to capture and process the options.
26
+
27
+ The subclass needs to implement a `render(task)` method that produces the card
28
+ contents in HTML, given the finished task that is represented by a `Task` object.
29
+
30
+ Attributes
31
+ ----------
32
+ type : str
33
+ Card type string. Note that this should be a globally unique name, similar to a
34
+ Python package name, to avoid name clashes between different custom cards.
35
+
36
+ Parameters
37
+ ----------
38
+ options : Dict
39
+ JSON-encodable dictionary containing user-definable options for the class.
40
+ """
15
41
  def __init__(self, options = {}, components = [], graph = None):
16
42
  ...
17
43
  def render(self, task: "metaflow.Task") -> str:
@@ -132,6 +158,9 @@ class TestJSONComponent(metaflow.plugins.cards.card_modules.card.MetaflowCardCom
132
158
  ...
133
159
 
134
160
  class TestRefreshCard(metaflow.plugins.cards.card_modules.card.MetaflowCard, metaclass=type):
161
+ """
162
+ This card takes no components and helps test the `current.card.refresh(data)` interface.
163
+ """
135
164
  def render(self, task) -> str:
136
165
  ...
137
166
  def render_runtime(self, task, data):
@@ -141,6 +170,10 @@ class TestRefreshCard(metaflow.plugins.cards.card_modules.card.MetaflowCard, met
141
170
  ...
142
171
 
143
172
  class TestRefreshComponentCard(metaflow.plugins.cards.card_modules.card.MetaflowCard, metaclass=type):
173
+ """
174
+ This card takes components and helps test the `current.card.components["A"].update()`
175
+ interface
176
+ """
144
177
  def __init__(self, options = {}, components = [], graph = None):
145
178
  ...
146
179
  def render(self, task) -> str:
@@ -1,7 +1,7 @@
1
1
  ##################################################################################
2
2
  # Auto-generated Metaflow stub file #
3
- # MF version: 2.12.21 #
4
- # Generated on 2024-09-19T17:04:54.913958 #
3
+ # MF version: 2.12.23 #
4
+ # Generated on 2024-10-01T14:32:40.056275 #
5
5
  ##################################################################################
6
6
 
7
7
  from __future__ import annotations
@@ -1,16 +1,16 @@
1
1
  ##################################################################################
2
2
  # Auto-generated Metaflow stub file #
3
- # MF version: 2.12.21 #
4
- # Generated on 2024-09-19T17:04:54.910979 #
3
+ # MF version: 2.12.23 #
4
+ # Generated on 2024-10-01T14:32:40.053423 #
5
5
  ##################################################################################
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
9
  import typing
10
10
  if typing.TYPE_CHECKING:
11
- import metaflow.exception
12
11
  import metaflow.plugins.cards.card_modules.card
13
12
  import metaflow.plugins.cards.card_modules.basic
13
+ import metaflow.exception
14
14
  import metaflow.plugins.cards.card_modules.components
15
15
 
16
16
  class MetaflowCardComponent(object, metaclass=type):
@@ -83,6 +83,13 @@ class WarningComponent(metaflow.plugins.cards.card_modules.basic.ErrorComponent,
83
83
  ...
84
84
 
85
85
  class ComponentStore(object, metaclass=type):
86
+ """
87
+ The `ComponentStore` object helps store the components for a single card in memory.
88
+ This class has combination of a array/dictionary like interfaces to access/change the stored components.
89
+
90
+ It exposes the `append` /`extend` methods (like an array) to add components.
91
+ It also exposes the `__getitem__`/`__setitem__` methods (like a dictionary) to access the components by their Ids.
92
+ """
86
93
  def __init__(self, logger, card_type = None, components = None, user_set_id = None):
87
94
  ...
88
95
  @property
@@ -118,6 +125,33 @@ class ComponentStore(object, metaclass=type):
118
125
  ...
119
126
 
120
127
  class CardComponentManager(object, metaclass=type):
128
+ """
129
+ This class manages the card's state for a single card.
130
+ - It uses the `ComponentStore` to manage the storage of the components
131
+ - It exposes methods to add, remove and access the components.
132
+ - It exposes a `refresh` method that will allow refreshing a card with new data
133
+ for realtime(ish) updates.
134
+ - The `CardComponentCollector` exposes convenience methods similar to this class for a default
135
+ editable card. These methods include :
136
+ - `append`
137
+ - `extend`
138
+ - `clear`
139
+ - `refresh`
140
+ - `components`
141
+ - `__iter__`
142
+
143
+ ## Usage Patterns :
144
+
145
+ ```python
146
+ current.card["mycardid"].append(component, id="comp123")
147
+ current.card["mycardid"].extend([component])
148
+ current.card["mycardid"].refresh(data) # refreshes the card with new data
149
+ current.card["mycardid"].components["comp123"] # returns the component with id "comp123"
150
+ current.card["mycardid"].components["comp123"].update()
151
+ current.card["mycardid"].components.clear() # Wipe all the components
152
+ del current.card["mycardid"].components["mycomponentid"] # Delete a component
153
+ ```
154
+ """
121
155
  def __init__(self, card_uuid, decorator_attributes, card_creator, components = None, logger = None, no_warnings = False, user_set_card_id = None, runtime_card = False, card_options = None, refresh_interval = 5):
122
156
  ...
123
157
  def append(self, component, id = None):
@@ -136,6 +170,25 @@ class CardComponentManager(object, metaclass=type):
136
170
  ...
137
171
 
138
172
  class CardComponentCollector(object, metaclass=type):
173
+ """
174
+ This class helps collect `MetaflowCardComponent`s during runtime execution
175
+
176
+ ### Usage with `current`
177
+ `current.card` is of type `CardComponentCollector`
178
+
179
+ ### Main Usage TLDR
180
+ - [x] `current.card.append` customizes the default editable card.
181
+ - [x] Only one card can be default editable in a step.
182
+ - [x] The card class must have `ALLOW_USER_COMPONENTS=True` to be considered default editable.
183
+ - [x] Classes with `ALLOW_USER_COMPONENTS=False` are never default editable.
184
+ - [x] The user can specify an `id` argument to a card, in which case the card is editable through `current.card[id].append`.
185
+ - [x] A card with an id can be also default editable, if there are no other cards that are eligible to be default editable.
186
+ - [x] If multiple default-editable cards exist but only one card doesn't have an id, the card without an id is considered to be default editable.
187
+ - [x] If we can't resolve a single default editable card through the above rules, `current.card`.append calls show a warning but the call doesn't fail.
188
+ - [x] A card that is not default editable can be still edited through:
189
+ - [x] its `current.card['myid']`
190
+ - [x] by looking it up by its type, e.g. `current.card.get(type='pytorch')`.
191
+ """
139
192
  def __init__(self, logger = None, card_creator = None):
140
193
  ...
141
194
  @staticmethod
@@ -1,7 +1,7 @@
1
1
  ##################################################################################
2
2
  # Auto-generated Metaflow stub file #
3
- # MF version: 2.12.21 #
4
- # Generated on 2024-09-19T17:04:54.909352 #
3
+ # MF version: 2.12.23 #
4
+ # Generated on 2024-10-01T14:32:40.051677 #
5
5
  ##################################################################################
6
6
 
7
7
  from __future__ import annotations
@@ -20,6 +20,9 @@ class MetaflowException(Exception, metaclass=type):
20
20
  TYPE_CHECK_REGEX: str
21
21
 
22
22
  class CardClassFoundException(metaflow.exception.MetaflowException, metaclass=type):
23
+ """
24
+ This exception is raised with MetaflowCard class is not present for a particular card type.
25
+ """
23
26
  def __init__(self, card_name):
24
27
  ...
25
28
  ...
@@ -30,6 +33,9 @@ class TypeRequiredException(metaflow.exception.MetaflowException, metaclass=type
30
33
  ...
31
34
 
32
35
  class CardNotPresentException(metaflow.exception.MetaflowException, metaclass=type):
36
+ """
37
+ This exception is raised with a card is not present in the datastore.
38
+ """
33
39
  def __init__(self, pathspec, card_type = None, card_hash = None, card_id = None):
34
40
  ...
35
41
  ...
@@ -1,16 +1,16 @@
1
1
  ##################################################################################
2
2
  # Auto-generated Metaflow stub file #
3
- # MF version: 2.12.21 #
4
- # Generated on 2024-09-19T17:04:54.871107 #
3
+ # MF version: 2.12.23 #
4
+ # Generated on 2024-10-01T14:32:39.996706 #
5
5
  ##################################################################################
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
9
  import typing
10
10
  if typing.TYPE_CHECKING:
11
+ import metaflow.metaflow_current
11
12
  import metaflow.exception
12
13
  import metaflow.decorators
13
- import metaflow.metaflow_current
14
14
 
15
15
  class MetaflowException(Exception, metaclass=type):
16
16
  def __init__(self, msg = "", lineno = None):
@@ -44,6 +44,23 @@ class FailureHandledByCatch(metaflow.exception.MetaflowException, metaclass=type
44
44
  ...
45
45
 
46
46
  class CatchDecorator(metaflow.decorators.StepDecorator, metaclass=type):
47
+ """
48
+ Specifies that the step will success under all circumstances.
49
+
50
+ The decorator will create an optional artifact, specified by `var`, which
51
+ contains the exception raised. You can use it to detect the presence
52
+ of errors, indicating that all happy-path artifacts produced by the step
53
+ are missing.
54
+
55
+ Parameters
56
+ ----------
57
+ var : str, optional, default None
58
+ Name of the artifact in which to store the caught exception.
59
+ If not specified, the exception is not stored.
60
+ print_exception : bool, default True
61
+ Determines whether or not the exception is printed to
62
+ stdout when caught.
63
+ """
47
64
  def step_init(self, flow, graph, step, decos, environment, flow_datastore, logger):
48
65
  ...
49
66
  def task_exception(self, exception, step, flow, graph, retry_count, max_user_code_retries):