ob-metaflow-stubs 2.11.4.1__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 (131) hide show
  1. metaflow-stubs/__init__.pyi +2753 -0
  2. metaflow-stubs/cards.pyi +266 -0
  3. metaflow-stubs/cli.pyi +137 -0
  4. metaflow-stubs/client/__init__.pyi +993 -0
  5. metaflow-stubs/client/core.pyi +1425 -0
  6. metaflow-stubs/client/filecache.pyi +87 -0
  7. metaflow-stubs/events.pyi +107 -0
  8. metaflow-stubs/exception.pyi +98 -0
  9. metaflow-stubs/flowspec.pyi +297 -0
  10. metaflow-stubs/generated_for.txt +1 -0
  11. metaflow-stubs/includefile.pyi +524 -0
  12. metaflow-stubs/metadata/metadata.pyi +377 -0
  13. metaflow-stubs/metadata/util.pyi +18 -0
  14. metaflow-stubs/metaflow_config.pyi +263 -0
  15. metaflow-stubs/metaflow_current.pyi +327 -0
  16. metaflow-stubs/mflog/mflog.pyi +22 -0
  17. metaflow-stubs/multicore_utils.pyi +62 -0
  18. metaflow-stubs/parameters.pyi +114 -0
  19. metaflow-stubs/plugins/__init__.pyi +209 -0
  20. metaflow-stubs/plugins/airflow/__init__.pyi +9 -0
  21. metaflow-stubs/plugins/airflow/airflow.pyi +179 -0
  22. metaflow-stubs/plugins/airflow/airflow_cli.pyi +90 -0
  23. metaflow-stubs/plugins/airflow/airflow_decorator.pyi +50 -0
  24. metaflow-stubs/plugins/airflow/airflow_utils.pyi +137 -0
  25. metaflow-stubs/plugins/airflow/exception.pyi +27 -0
  26. metaflow-stubs/plugins/airflow/sensors/__init__.pyi +26 -0
  27. metaflow-stubs/plugins/airflow/sensors/base_sensor.pyi +60 -0
  28. metaflow-stubs/plugins/airflow/sensors/external_task_sensor.pyi +54 -0
  29. metaflow-stubs/plugins/airflow/sensors/s3_sensor.pyi +50 -0
  30. metaflow-stubs/plugins/argo/__init__.pyi +9 -0
  31. metaflow-stubs/plugins/argo/argo_client.pyi +77 -0
  32. metaflow-stubs/plugins/argo/argo_events.pyi +79 -0
  33. metaflow-stubs/plugins/argo/argo_workflows.pyi +604 -0
  34. metaflow-stubs/plugins/argo/argo_workflows_cli.pyi +180 -0
  35. metaflow-stubs/plugins/argo/argo_workflows_decorator.pyi +169 -0
  36. metaflow-stubs/plugins/aws/__init__.pyi +9 -0
  37. metaflow-stubs/plugins/aws/aws_client.pyi +22 -0
  38. metaflow-stubs/plugins/aws/aws_utils.pyi +93 -0
  39. metaflow-stubs/plugins/aws/batch/__init__.pyi +9 -0
  40. metaflow-stubs/plugins/aws/batch/batch.pyi +120 -0
  41. metaflow-stubs/plugins/aws/batch/batch_cli.pyi +42 -0
  42. metaflow-stubs/plugins/aws/batch/batch_client.pyi +159 -0
  43. metaflow-stubs/plugins/aws/batch/batch_decorator.pyi +145 -0
  44. metaflow-stubs/plugins/aws/secrets_manager/__init__.pyi +9 -0
  45. metaflow-stubs/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.pyi +73 -0
  46. metaflow-stubs/plugins/aws/step_functions/__init__.pyi +9 -0
  47. metaflow-stubs/plugins/aws/step_functions/dynamo_db_client.pyi +22 -0
  48. metaflow-stubs/plugins/aws/step_functions/event_bridge_client.pyi +27 -0
  49. metaflow-stubs/plugins/aws/step_functions/production_token.pyi +18 -0
  50. metaflow-stubs/plugins/aws/step_functions/schedule_decorator.pyi +17 -0
  51. metaflow-stubs/plugins/aws/step_functions/step_functions.pyi +220 -0
  52. metaflow-stubs/plugins/aws/step_functions/step_functions_cli.pyi +139 -0
  53. metaflow-stubs/plugins/aws/step_functions/step_functions_client.pyi +36 -0
  54. metaflow-stubs/plugins/aws/step_functions/step_functions_decorator.pyi +49 -0
  55. metaflow-stubs/plugins/azure/__init__.pyi +9 -0
  56. metaflow-stubs/plugins/azure/azure_credential.pyi +28 -0
  57. metaflow-stubs/plugins/azure/azure_exceptions.pyi +28 -0
  58. metaflow-stubs/plugins/azure/azure_utils.pyi +76 -0
  59. metaflow-stubs/plugins/azure/blob_service_client_factory.pyi +52 -0
  60. metaflow-stubs/plugins/azure/includefile_support.pyi +63 -0
  61. metaflow-stubs/plugins/cards/__init__.pyi +9 -0
  62. metaflow-stubs/plugins/cards/card_cli.pyi +557 -0
  63. metaflow-stubs/plugins/cards/card_client.pyi +178 -0
  64. metaflow-stubs/plugins/cards/card_creator.pyi +26 -0
  65. metaflow-stubs/plugins/cards/card_datastore.pyi +111 -0
  66. metaflow-stubs/plugins/cards/card_decorator.pyi +133 -0
  67. metaflow-stubs/plugins/cards/card_modules/__init__.pyi +67 -0
  68. metaflow-stubs/plugins/cards/card_modules/basic.pyi +263 -0
  69. metaflow-stubs/plugins/cards/card_modules/card.pyi +62 -0
  70. metaflow-stubs/plugins/cards/card_modules/chevron/__init__.pyi +78 -0
  71. metaflow-stubs/plugins/cards/card_modules/chevron/main.pyi +77 -0
  72. metaflow-stubs/plugins/cards/card_modules/chevron/metadata.pyi +11 -0
  73. metaflow-stubs/plugins/cards/card_modules/chevron/renderer.pyi +114 -0
  74. metaflow-stubs/plugins/cards/card_modules/chevron/tokenizer.pyi +75 -0
  75. metaflow-stubs/plugins/cards/card_modules/components.pyi +251 -0
  76. metaflow-stubs/plugins/cards/card_modules/convert_to_native_type.pyi +45 -0
  77. metaflow-stubs/plugins/cards/card_modules/renderer_tools.pyi +24 -0
  78. metaflow-stubs/plugins/cards/card_modules/test_cards.pyi +155 -0
  79. metaflow-stubs/plugins/cards/card_resolver.pyi +60 -0
  80. metaflow-stubs/plugins/cards/component_serializer.pyi +227 -0
  81. metaflow-stubs/plugins/cards/exception.pyi +71 -0
  82. metaflow-stubs/plugins/catch_decorator.pyi +58 -0
  83. metaflow-stubs/plugins/datatools/__init__.pyi +339 -0
  84. metaflow-stubs/plugins/datatools/local.pyi +82 -0
  85. metaflow-stubs/plugins/datatools/s3/__init__.pyi +589 -0
  86. metaflow-stubs/plugins/datatools/s3/s3.pyi +875 -0
  87. metaflow-stubs/plugins/datatools/s3/s3tail.pyi +34 -0
  88. metaflow-stubs/plugins/datatools/s3/s3util.pyi +45 -0
  89. metaflow-stubs/plugins/debug_logger.pyi +25 -0
  90. metaflow-stubs/plugins/debug_monitor.pyi +25 -0
  91. metaflow-stubs/plugins/environment_decorator.pyi +17 -0
  92. metaflow-stubs/plugins/events_decorator.pyi +34 -0
  93. metaflow-stubs/plugins/frameworks/__init__.pyi +9 -0
  94. metaflow-stubs/plugins/frameworks/pytorch.pyi +42 -0
  95. metaflow-stubs/plugins/gcp/__init__.pyi +9 -0
  96. metaflow-stubs/plugins/gcp/gs_exceptions.pyi +22 -0
  97. metaflow-stubs/plugins/gcp/gs_storage_client_factory.pyi +26 -0
  98. metaflow-stubs/plugins/gcp/gs_utils.pyi +38 -0
  99. metaflow-stubs/plugins/gcp/includefile_support.pyi +63 -0
  100. metaflow-stubs/plugins/kubernetes/__init__.pyi +9 -0
  101. metaflow-stubs/plugins/kubernetes/kubernetes.pyi +127 -0
  102. metaflow-stubs/plugins/kubernetes/kubernetes_cli.pyi +73 -0
  103. metaflow-stubs/plugins/kubernetes/kubernetes_client.pyi +62 -0
  104. metaflow-stubs/plugins/kubernetes/kubernetes_decorator.pyi +165 -0
  105. metaflow-stubs/plugins/kubernetes/kubernetes_job.pyi +100 -0
  106. metaflow-stubs/plugins/package_cli.pyi +9 -0
  107. metaflow-stubs/plugins/parallel_decorator.pyi +34 -0
  108. metaflow-stubs/plugins/project_decorator.pyi +36 -0
  109. metaflow-stubs/plugins/pypi/__init__.pyi +18 -0
  110. metaflow-stubs/plugins/pypi/conda_decorator.pyi +59 -0
  111. metaflow-stubs/plugins/pypi/conda_environment.pyi +86 -0
  112. metaflow-stubs/plugins/pypi/pypi_decorator.pyi +22 -0
  113. metaflow-stubs/plugins/pypi/pypi_environment.pyi +50 -0
  114. metaflow-stubs/plugins/pypi/utils.pyi +28 -0
  115. metaflow-stubs/plugins/resources_decorator.pyi +15 -0
  116. metaflow-stubs/plugins/retry_decorator.pyi +28 -0
  117. metaflow-stubs/plugins/secrets/__init__.pyi +21 -0
  118. metaflow-stubs/plugins/secrets/inline_secrets_provider.pyi +30 -0
  119. metaflow-stubs/plugins/secrets/secrets_decorator.pyi +75 -0
  120. metaflow-stubs/plugins/storage_executor.pyi +33 -0
  121. metaflow-stubs/plugins/tag_cli.pyi +370 -0
  122. metaflow-stubs/plugins/test_unbounded_foreach_decorator.pyi +54 -0
  123. metaflow-stubs/plugins/timeout_decorator.pyi +39 -0
  124. metaflow-stubs/procpoll.pyi +51 -0
  125. metaflow-stubs/py.typed +0 -0
  126. metaflow-stubs/pylint_wrapper.pyi +31 -0
  127. metaflow-stubs/tagging_util.pyi +52 -0
  128. ob_metaflow_stubs-2.11.4.1.dist-info/METADATA +22 -0
  129. ob_metaflow_stubs-2.11.4.1.dist-info/RECORD +131 -0
  130. ob_metaflow_stubs-2.11.4.1.dist-info/WHEEL +6 -0
  131. ob_metaflow_stubs-2.11.4.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,266 @@
1
+ ##################################################################################
2
+ # Auto-generated Metaflow stub file #
3
+ # MF version: 2.11.4.1 #
4
+ # Generated on 2024-02-28T05:30:43.917679 #
5
+ ##################################################################################
6
+
7
+ from __future__ import annotations
8
+
9
+ import typing
10
+ if typing.TYPE_CHECKING:
11
+ import metaflow.plugins.cards.card_modules.basic
12
+ import metaflow.plugins.cards.card_client
13
+ import metaflow.plugins.cards.card_modules.components
14
+ import metaflow
15
+ import metaflow.plugins.cards.card_modules.card
16
+ import typing
17
+
18
+ def get_cards(task: typing.Union[str, "metaflow.Task"], id: typing.Optional[str] = None, type: typing.Optional[str] = None, follow_resumed: bool = True) -> metaflow.plugins.cards.card_client.CardContainer:
19
+ """
20
+ Get cards related to a `Task`.
21
+
22
+ Note that `get_cards` resolves the cards contained by the task, but it doesn't actually
23
+ retrieve them from the datastore. Actual card contents are retrieved lazily either when
24
+ the card is rendered in a notebook to when you call `Card.get`. This means that
25
+ `get_cards` is a fast call even when individual cards contain a lot of data.
26
+
27
+ Parameters
28
+ ----------
29
+ task : Union[str, `Task`]
30
+ A `Task` object or pathspec `{flow_name}/{run_id}/{step_name}/{task_id}` that
31
+ uniquely identifies a task.
32
+ id : str, optional, default None
33
+ The ID of card to retrieve if multiple cards are present.
34
+ type : str, optional, default None
35
+ The type of card to retrieve if multiple cards are present.
36
+ follow_resumed : bool, default True
37
+ If the task has been resumed, then setting this flag will resolve the card for
38
+ the origin task.
39
+
40
+ Returns
41
+ -------
42
+ CardContainer
43
+ A list-like object that holds `Card` objects.
44
+ """
45
+ ...
46
+
47
+ class MetaflowCardComponent(object, metaclass=type):
48
+ @property
49
+ def component_id(self):
50
+ ...
51
+ @component_id.setter
52
+ def component_id(self, value):
53
+ ...
54
+ def update(self, *args, **kwargs):
55
+ """
56
+ #FIXME document
57
+ """
58
+ ...
59
+ def render(self):
60
+ """
61
+ `render` returns a string or dictionary. This class can be called on the client side to dynamically add components to the `MetaflowCard`
62
+ """
63
+ ...
64
+ ...
65
+
66
+ class MetaflowCard(object, metaclass=type):
67
+ def __init__(self, options = {}, components = [], graph = None):
68
+ ...
69
+ def render(self, task: "metaflow.Task") -> str:
70
+ """
71
+ Produce custom card contents in HTML.
72
+
73
+ Subclasses override this method to customize the card contents.
74
+
75
+ Parameters
76
+ ----------
77
+ task : Task
78
+ A `Task` object that allows you to access data from the finished task and tasks
79
+ preceding it.
80
+
81
+ Returns
82
+ -------
83
+ str
84
+ Card contents as an HTML string.
85
+ """
86
+ ...
87
+ def render_runtime(self, task, data):
88
+ ...
89
+ def refresh(self, task, data):
90
+ ...
91
+ def reload_content_token(self, task, data):
92
+ ...
93
+ ...
94
+
95
+ class Artifact(metaflow.plugins.cards.card_modules.components.UserComponent, metaclass=type):
96
+ def update(self, artifact):
97
+ ...
98
+ def __init__(self, artifact: typing.Any, name: typing.Optional[str] = None, compressed: bool = True):
99
+ ...
100
+ def render(self, *args, **kwargs):
101
+ ...
102
+ ...
103
+
104
+ class Table(metaflow.plugins.cards.card_modules.components.UserComponent, metaclass=type):
105
+ def update(self, *args, **kwargs):
106
+ ...
107
+ 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):
108
+ ...
109
+ @classmethod
110
+ def from_dataframe(cls, dataframe = None, truncate: bool = True):
111
+ """
112
+ Create a `Table` based on a Pandas dataframe.
113
+
114
+ Parameters
115
+ ----------
116
+ dataframe : Optional[pandas.DataFrame]
117
+ Pandas dataframe.
118
+ truncate : bool, default: True
119
+ Truncate large dataframe instead of showing all rows (default: True).
120
+ """
121
+ ...
122
+ def render(self, *args, **kwargs):
123
+ ...
124
+ ...
125
+
126
+ class Image(metaflow.plugins.cards.card_modules.components.UserComponent, metaclass=type):
127
+ @staticmethod
128
+ def render_fail_headline(msg):
129
+ ...
130
+ def __init__(self, src = None, label = None, disable_updates: bool = True):
131
+ ...
132
+ @classmethod
133
+ def from_pil_image(cls, pilimage, label: typing.Optional[str] = None, disable_updates: bool = False):
134
+ """
135
+ Create an `Image` from a PIL image.
136
+
137
+ Parameters
138
+ ----------
139
+ pilimage : PIL.Image
140
+ a PIL image object.
141
+ label : str, optional
142
+ Optional label for the image.
143
+ """
144
+ ...
145
+ @classmethod
146
+ def from_matplotlib(cls, plot, label: typing.Optional[str] = None, disable_updates: bool = False):
147
+ """
148
+ Create an `Image` from a Matplotlib plot.
149
+
150
+ Parameters
151
+ ----------
152
+ plot : matplotlib.figure.Figure or matplotlib.axes.Axes or matplotlib.axes._subplots.AxesSubplot
153
+ a PIL axes (plot) object.
154
+ label : str, optional
155
+ Optional label for the image.
156
+ """
157
+ ...
158
+ def render(self, *args, **kwargs):
159
+ ...
160
+ def update(self, image, label = None):
161
+ """
162
+ Update the image.
163
+
164
+ Parameters
165
+ ----------
166
+ image : PIL.Image or matplotlib.figure.Figure or matplotlib.axes.Axes or matplotlib.axes._subplots.AxesSubplot or bytes or str
167
+ The updated image object
168
+ label : str, optional
169
+ Optional label for the image.
170
+ """
171
+ ...
172
+ ...
173
+
174
+ class Error(metaflow.plugins.cards.card_modules.components.UserComponent, metaclass=type):
175
+ def __init__(self, exception, title = None):
176
+ ...
177
+ def render(self, *args, **kwargs):
178
+ ...
179
+ ...
180
+
181
+ class Markdown(metaflow.plugins.cards.card_modules.components.UserComponent, metaclass=type):
182
+ def update(self, text = None):
183
+ ...
184
+ def __init__(self, text = None):
185
+ ...
186
+ def render(self, *args, **kwargs):
187
+ ...
188
+ ...
189
+
190
+ class VegaChart(metaflow.plugins.cards.card_modules.components.UserComponent, metaclass=type):
191
+ def __init__(self, spec: dict, show_controls: bool = False):
192
+ ...
193
+ def update(self, spec = None):
194
+ """
195
+ Update the chart.
196
+
197
+ Parameters
198
+ ----------
199
+ spec : dict or altair.Chart
200
+ The updated chart spec or an altair Chart Object.
201
+ """
202
+ ...
203
+ @classmethod
204
+ def from_altair_chart(cls, altair_chart):
205
+ ...
206
+ def render(self, *args, **kwargs):
207
+ ...
208
+ ...
209
+
210
+ class ProgressBar(metaflow.plugins.cards.card_modules.components.UserComponent, metaclass=type):
211
+ def __init__(self, max: int = 100, label: str = None, value: int = 0, unit: str = None, metadata: str = None):
212
+ ...
213
+ def update(self, new_value: int, metadata: str = None):
214
+ ...
215
+ def render(self, *args, **kwargs):
216
+ ...
217
+ ...
218
+
219
+ class DefaultCard(metaflow.plugins.cards.card_modules.card.MetaflowCard, metaclass=type):
220
+ def __init__(self, options = {"only_repr": True}, components = [], graph = None):
221
+ ...
222
+ def render(self, task, runtime = False):
223
+ ...
224
+ def render_runtime(self, task, data):
225
+ ...
226
+ def refresh(self, task, data):
227
+ ...
228
+ def reload_content_token(self, task, data):
229
+ """
230
+ The reload token will change when the component array has changed in the Metaflow card.
231
+ The change in the component array is signified by the change in the component_update_ts.
232
+ """
233
+ ...
234
+ ...
235
+
236
+ class PageComponent(metaflow.plugins.cards.card_modules.basic.DefaultComponent, metaclass=type):
237
+ def __init__(self, title = None, subtitle = None, contents = []):
238
+ ...
239
+ def render(self):
240
+ ...
241
+ ...
242
+
243
+ class ErrorCard(metaflow.plugins.cards.card_modules.card.MetaflowCard, metaclass=type):
244
+ def __init__(self, options = {}, components = [], graph = None):
245
+ ...
246
+ def render(self, task, stack_trace = None):
247
+ ...
248
+ ...
249
+
250
+ class BlankCard(metaflow.plugins.cards.card_modules.card.MetaflowCard, metaclass=type):
251
+ def __init__(self, options = {"title": ""}, components = [], graph = None):
252
+ ...
253
+ def render(self, task, components = [], runtime = False):
254
+ ...
255
+ def render_runtime(self, task, data):
256
+ ...
257
+ def refresh(self, task, data):
258
+ ...
259
+ def reload_content_token(self, task, data):
260
+ """
261
+ The reload token will change when the component array has changed in the Metaflow card.
262
+ The change in the component array is signified by the change in the component_update_ts.
263
+ """
264
+ ...
265
+ ...
266
+
metaflow-stubs/cli.pyi ADDED
@@ -0,0 +1,137 @@
1
+ ##################################################################################
2
+ # Auto-generated Metaflow stub file #
3
+ # MF version: 2.11.4.1 #
4
+ # Generated on 2024-02-28T05:30:43.925365 #
5
+ ##################################################################################
6
+
7
+ from __future__ import annotations
8
+
9
+ import typing
10
+ if typing.TYPE_CHECKING:
11
+ import metaflow.metaflow_current
12
+ import metaflow.exception
13
+
14
+ def namespace(ns: typing.Optional[str]) -> typing.Optional[str]:
15
+ """
16
+ Switch namespace to the one provided.
17
+
18
+ This call has a global effect. No objects outside this namespace
19
+ will be accessible. To access all objects regardless of namespaces,
20
+ pass None to this call.
21
+
22
+ Parameters
23
+ ----------
24
+ ns : str, optional
25
+ Namespace to switch to or None to ignore namespaces.
26
+
27
+ Returns
28
+ -------
29
+ str, optional
30
+ Namespace set (result of get_namespace()).
31
+ """
32
+ ...
33
+
34
+ current: metaflow.metaflow_current.Current
35
+
36
+ def validate_tags(tags, existing_tags = None):
37
+ """
38
+ Raises MetaflowTaggingError if invalid based on these rules:
39
+
40
+ Tag set size is too large. But it's OK if tag set is not larger
41
+ than an existing tag set (if provided).
42
+
43
+ Then, we validate each tag. See validate_tag()
44
+ """
45
+ ...
46
+
47
+ class CommandException(metaflow.exception.MetaflowException, metaclass=type):
48
+ ...
49
+
50
+ class MetaflowException(Exception, metaclass=type):
51
+ def __init__(self, msg = "", lineno = None):
52
+ ...
53
+ def __str__(self):
54
+ ...
55
+ ...
56
+
57
+ DATASTORES: list
58
+
59
+ ENVIRONMENTS: list
60
+
61
+ LOGGING_SIDECARS: dict
62
+
63
+ METADATA_PROVIDERS: list
64
+
65
+ MONITOR_SIDECARS: dict
66
+
67
+ DEFAULT_DATASTORE: str
68
+
69
+ DEFAULT_ENVIRONMENT: str
70
+
71
+ DEFAULT_EVENT_LOGGER: str
72
+
73
+ DEFAULT_METADATA: str
74
+
75
+ DEFAULT_MONITOR: str
76
+
77
+ DEFAULT_PACKAGE_SUFFIXES: str
78
+
79
+ class PyLint(object, metaclass=type):
80
+ def __init__(self, fname):
81
+ ...
82
+ def has_pylint(self):
83
+ ...
84
+ def run(self, logger = None, warnings = False, pylint_config = []):
85
+ ...
86
+ ...
87
+
88
+ LOG_SOURCES: list
89
+
90
+ UBF_CONTROL: str
91
+
92
+ UBF_TASK: str
93
+
94
+ ERASE_TO_EOL: str
95
+
96
+ HIGHLIGHT: str
97
+
98
+ INDENT: str
99
+
100
+ LOGGER_TIMESTAMP: str
101
+
102
+ LOGGER_COLOR: str
103
+
104
+ LOGGER_BAD_COLOR: str
105
+
106
+ def echo_dev_null(*args, **kwargs):
107
+ ...
108
+
109
+ def echo_always(line, **kwargs):
110
+ ...
111
+
112
+ def logger(body = "", system_msg = False, head = "", bad = False, timestamp = True, nl = True):
113
+ ...
114
+
115
+ def common_run_options(func):
116
+ ...
117
+
118
+ def write_run_id(run_id_file, run_id):
119
+ ...
120
+
121
+ def before_run(obj, tags, decospecs):
122
+ ...
123
+
124
+ def print_metaflow_exception(ex):
125
+ ...
126
+
127
+ def print_unknown_exception(ex):
128
+ ...
129
+
130
+ class CliState(object, metaclass=type):
131
+ def __init__(self, flow):
132
+ ...
133
+ ...
134
+
135
+ def main(flow, args = None, handle_exceptions = True, entrypoint = None):
136
+ ...
137
+