metaflow 2.15.14__py2.py3-none-any.whl → 2.15.16__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- metaflow/__init__.py +2 -2
- metaflow/_vendor/click/core.py +4 -3
- metaflow/cmd/develop/stub_generator.py +30 -16
- metaflow/cmd/develop/stubs.py +9 -27
- metaflow/datastore/task_datastore.py +3 -3
- metaflow/decorators.py +3 -3
- metaflow/extension_support/__init__.py +25 -42
- metaflow/parameters.py +2 -2
- metaflow/plugins/argo/argo_workflows_cli.py +4 -4
- metaflow/plugins/argo/argo_workflows_deployer_objects.py +6 -49
- metaflow/plugins/aws/aws_client.py +6 -0
- metaflow/plugins/cards/card_modules/chevron/renderer.py +1 -1
- metaflow/plugins/cards/card_modules/test_cards.py +6 -6
- metaflow/plugins/cards/component_serializer.py +1 -8
- metaflow/plugins/datatools/s3/s3op.py +1 -1
- metaflow/plugins/metadata_providers/service.py +12 -8
- metaflow/plugins/package_cli.py +12 -2
- metaflow/plugins/pypi/bootstrap.py +2 -2
- metaflow/plugins/uv/bootstrap.py +18 -1
- metaflow/plugins/uv/uv_environment.py +1 -1
- metaflow/runner/click_api.py +16 -9
- metaflow/runner/deployer.py +49 -0
- metaflow/runner/deployer_impl.py +17 -5
- metaflow/runner/metaflow_runner.py +40 -13
- metaflow/runner/subprocess_manager.py +1 -1
- metaflow/runner/utils.py +8 -0
- metaflow/user_configs/config_options.py +6 -6
- metaflow/user_configs/config_parameters.py +211 -45
- metaflow/util.py +2 -5
- metaflow/vendor.py +0 -1
- metaflow/version.py +1 -1
- {metaflow-2.15.14.dist-info → metaflow-2.15.16.dist-info}/METADATA +2 -2
- {metaflow-2.15.14.dist-info → metaflow-2.15.16.dist-info}/RECORD +40 -44
- {metaflow-2.15.14.dist-info → metaflow-2.15.16.dist-info}/WHEEL +1 -1
- metaflow/_vendor/v3_5/__init__.py +0 -1
- metaflow/_vendor/v3_5/importlib_metadata/__init__.py +0 -644
- metaflow/_vendor/v3_5/importlib_metadata/_compat.py +0 -152
- metaflow/_vendor/v3_5/zipp.py +0 -329
- {metaflow-2.15.14.data → metaflow-2.15.16.data}/data/share/metaflow/devtools/Makefile +0 -0
- {metaflow-2.15.14.data → metaflow-2.15.16.data}/data/share/metaflow/devtools/Tiltfile +0 -0
- {metaflow-2.15.14.data → metaflow-2.15.16.data}/data/share/metaflow/devtools/pick_services.sh +0 -0
- {metaflow-2.15.14.dist-info → metaflow-2.15.16.dist-info}/entry_points.txt +0 -0
- {metaflow-2.15.14.dist-info → metaflow-2.15.16.dist-info}/licenses/LICENSE +0 -0
- {metaflow-2.15.14.dist-info → metaflow-2.15.16.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,22 @@
|
|
1
|
-
import
|
1
|
+
import inspect
|
2
2
|
import json
|
3
|
+
import collections.abc
|
4
|
+
import copy
|
3
5
|
import os
|
4
6
|
import re
|
5
7
|
|
6
|
-
from typing import
|
8
|
+
from typing import (
|
9
|
+
Any,
|
10
|
+
Callable,
|
11
|
+
Dict,
|
12
|
+
Iterable,
|
13
|
+
Iterator,
|
14
|
+
List,
|
15
|
+
Optional,
|
16
|
+
Tuple,
|
17
|
+
TYPE_CHECKING,
|
18
|
+
Union,
|
19
|
+
)
|
7
20
|
|
8
21
|
|
9
22
|
from ..exception import MetaflowException
|
@@ -54,7 +67,7 @@ def dump_config_values(flow: "FlowSpec"):
|
|
54
67
|
return {}
|
55
68
|
|
56
69
|
|
57
|
-
class ConfigValue(collections.abc.Mapping):
|
70
|
+
class ConfigValue(collections.abc.Mapping, dict):
|
58
71
|
"""
|
59
72
|
ConfigValue is a thin wrapper around an arbitrarily nested dictionary-like
|
60
73
|
configuration object. It allows you to access elements of this nested structure
|
@@ -69,8 +82,67 @@ class ConfigValue(collections.abc.Mapping):
|
|
69
82
|
# Thin wrapper to allow configuration values to be accessed using a "." notation
|
70
83
|
# as well as a [] notation.
|
71
84
|
|
72
|
-
|
73
|
-
|
85
|
+
# We inherit from dict to allow the isinstanceof check to work easily and also
|
86
|
+
# to provide a simple json dumps functionality.
|
87
|
+
|
88
|
+
def __init__(self, data: Union["ConfigValue", Dict[str, Any]]):
|
89
|
+
self._data = {k: self._construct(v) for k, v in data.items()}
|
90
|
+
|
91
|
+
# Enable json dumps
|
92
|
+
dict.__init__(self, self._data)
|
93
|
+
|
94
|
+
@classmethod
|
95
|
+
def fromkeys(cls, iterable: Iterable, value: Any = None) -> "ConfigValue":
|
96
|
+
"""
|
97
|
+
Creates a new ConfigValue object from the given iterable and value.
|
98
|
+
|
99
|
+
Parameters
|
100
|
+
----------
|
101
|
+
iterable : Iterable
|
102
|
+
Iterable to create the ConfigValue from.
|
103
|
+
value : Any, optional
|
104
|
+
Value to set for each key in the iterable.
|
105
|
+
|
106
|
+
Returns
|
107
|
+
-------
|
108
|
+
ConfigValue
|
109
|
+
A new ConfigValue object.
|
110
|
+
"""
|
111
|
+
return cls(dict.fromkeys(iterable, value))
|
112
|
+
|
113
|
+
def to_dict(self) -> Dict[Any, Any]:
|
114
|
+
"""
|
115
|
+
Returns a dictionary representation of this configuration object.
|
116
|
+
|
117
|
+
Returns
|
118
|
+
-------
|
119
|
+
Dict[Any, Any]
|
120
|
+
Dictionary equivalent of this configuration object.
|
121
|
+
"""
|
122
|
+
return self._to_dict(self._data)
|
123
|
+
|
124
|
+
def copy(self) -> "ConfigValue":
|
125
|
+
return self.__copy__()
|
126
|
+
|
127
|
+
def clear(self) -> None:
|
128
|
+
# Prevent configuration modification
|
129
|
+
raise TypeError("ConfigValue is immutable")
|
130
|
+
|
131
|
+
def update(self, *args, **kwargs) -> None:
|
132
|
+
# Prevent configuration modification
|
133
|
+
raise TypeError("ConfigValue is immutable")
|
134
|
+
|
135
|
+
def setdefault(self, key: Any, default: Any = None) -> Any:
|
136
|
+
# Prevent configuration modification
|
137
|
+
raise TypeError("ConfigValue is immutable")
|
138
|
+
|
139
|
+
def pop(self, key: Any, default: Any = None) -> Any:
|
140
|
+
# Prevent configuration modification
|
141
|
+
raise TypeError("ConfigValue is immutable")
|
142
|
+
|
143
|
+
def popitem(self) -> Tuple[Any, Any]:
|
144
|
+
# Prevent configuration modification
|
145
|
+
raise TypeError("ConfigValue is immutable")
|
74
146
|
|
75
147
|
def __getattr__(self, key: str) -> Any:
|
76
148
|
"""
|
@@ -115,33 +187,93 @@ class ConfigValue(collections.abc.Mapping):
|
|
115
187
|
Any
|
116
188
|
Element of the configuration
|
117
189
|
"""
|
118
|
-
|
119
|
-
if isinstance(value, dict):
|
120
|
-
value = ConfigValue(value)
|
121
|
-
return value
|
190
|
+
return self._data[key]
|
122
191
|
|
123
|
-
def
|
192
|
+
def __setitem__(self, key: Any, value: Any) -> None:
|
193
|
+
# Prevent configuration modification
|
194
|
+
raise TypeError("ConfigValue is immutable")
|
195
|
+
|
196
|
+
def __delattr__(self, key) -> None:
|
197
|
+
# Prevent configuration modification
|
198
|
+
raise TypeError("ConfigValue is immutable")
|
199
|
+
|
200
|
+
def __delitem__(self, key: Any) -> None:
|
201
|
+
# Prevent configuration modification
|
202
|
+
raise TypeError("ConfigValue is immutable")
|
203
|
+
|
204
|
+
def __len__(self) -> int:
|
124
205
|
return len(self._data)
|
125
206
|
|
126
|
-
def __iter__(self):
|
207
|
+
def __iter__(self) -> Iterator:
|
127
208
|
return iter(self._data)
|
128
209
|
|
129
|
-
def
|
210
|
+
def __eq__(self, other: Any) -> bool:
|
211
|
+
if isinstance(other, ConfigValue):
|
212
|
+
return self._data == other._data
|
213
|
+
if isinstance(other, dict):
|
214
|
+
return self._data == other
|
215
|
+
return False
|
216
|
+
|
217
|
+
def __ne__(self, other: Any) -> bool:
|
218
|
+
return not self.__eq__(other)
|
219
|
+
|
220
|
+
def __copy__(self) -> "ConfigValue":
|
221
|
+
cls = self.__class__
|
222
|
+
result = cls.__new__(cls)
|
223
|
+
result.__dict__.update({k: copy.copy(v) for k, v in self.__dict__.items()})
|
224
|
+
return result
|
225
|
+
|
226
|
+
def __repr__(self) -> str:
|
130
227
|
return repr(self._data)
|
131
228
|
|
132
|
-
def __str__(self):
|
133
|
-
return
|
229
|
+
def __str__(self) -> str:
|
230
|
+
return str(self._data)
|
134
231
|
|
135
|
-
def
|
232
|
+
def __dir__(self) -> Iterable[str]:
|
233
|
+
return dir(type(self)) + [k for k in self._data.keys() if ID_PATTERN.match(k)]
|
234
|
+
|
235
|
+
def __contains__(self, key: Any) -> bool:
|
236
|
+
try:
|
237
|
+
self[key]
|
238
|
+
except KeyError:
|
239
|
+
return False
|
240
|
+
return True
|
241
|
+
|
242
|
+
def keys(self):
|
136
243
|
"""
|
137
|
-
Returns
|
244
|
+
Returns the keys of this configuration object.
|
138
245
|
|
139
246
|
Returns
|
140
247
|
-------
|
141
|
-
|
142
|
-
|
248
|
+
Any
|
249
|
+
Keys of this configuration object.
|
143
250
|
"""
|
144
|
-
return
|
251
|
+
return self._data.keys()
|
252
|
+
|
253
|
+
@classmethod
|
254
|
+
def _construct(cls, obj: Any) -> Any:
|
255
|
+
# Internal method to construct a ConfigValue so that all mappings internally
|
256
|
+
# are also converted to ConfigValue
|
257
|
+
if isinstance(obj, ConfigValue):
|
258
|
+
v = obj
|
259
|
+
elif isinstance(obj, collections.abc.Mapping):
|
260
|
+
v = ConfigValue({k: cls._construct(v) for k, v in obj.items()})
|
261
|
+
elif isinstance(obj, (list, tuple, set)):
|
262
|
+
v = type(obj)([cls._construct(x) for x in obj])
|
263
|
+
else:
|
264
|
+
v = obj
|
265
|
+
return v
|
266
|
+
|
267
|
+
@classmethod
|
268
|
+
def _to_dict(cls, obj: Any) -> Any:
|
269
|
+
# Internal method to convert all nested mappings to dicts
|
270
|
+
if isinstance(obj, collections.abc.Mapping):
|
271
|
+
v = {k: cls._to_dict(v) for k, v in obj.items()}
|
272
|
+
elif isinstance(obj, (list, tuple, set)):
|
273
|
+
v = type(obj)([cls._to_dict(x) for x in obj])
|
274
|
+
else:
|
275
|
+
v = obj
|
276
|
+
return v
|
145
277
|
|
146
278
|
|
147
279
|
class DelayEvaluator(collections.abc.Mapping):
|
@@ -157,8 +289,9 @@ class DelayEvaluator(collections.abc.Mapping):
|
|
157
289
|
of _unpacked_delayed_*
|
158
290
|
"""
|
159
291
|
|
160
|
-
def __init__(self, ex: str):
|
292
|
+
def __init__(self, ex: str, saved_globals: Optional[Dict[str, Any]] = None):
|
161
293
|
self._config_expr = ex
|
294
|
+
self._globals = saved_globals
|
162
295
|
if ID_PATTERN.match(self._config_expr):
|
163
296
|
# This is a variable only so allow things like config_expr("config").var
|
164
297
|
self._is_var_only = True
|
@@ -166,6 +299,21 @@ class DelayEvaluator(collections.abc.Mapping):
|
|
166
299
|
else:
|
167
300
|
self._is_var_only = False
|
168
301
|
self._access = None
|
302
|
+
self._cached_expr = None
|
303
|
+
|
304
|
+
def __copy__(self):
|
305
|
+
c = DelayEvaluator(self._config_expr)
|
306
|
+
c._access = self._access.copy() if self._access is not None else None
|
307
|
+
# Globals are not copied -- always kept as a reference
|
308
|
+
return c
|
309
|
+
|
310
|
+
def __deepcopy__(self, memo):
|
311
|
+
c = DelayEvaluator(self._config_expr)
|
312
|
+
c._access = (
|
313
|
+
copy.deepcopy(self._access, memo) if self._access is not None else None
|
314
|
+
)
|
315
|
+
# Globals are not copied -- always kept as a reference
|
316
|
+
return c
|
169
317
|
|
170
318
|
def __iter__(self):
|
171
319
|
yield "%s%d" % (UNPACK_KEY, id(self))
|
@@ -175,8 +323,15 @@ class DelayEvaluator(collections.abc.Mapping):
|
|
175
323
|
return self
|
176
324
|
if self._access is None:
|
177
325
|
raise KeyError(key)
|
178
|
-
|
179
|
-
|
326
|
+
|
327
|
+
# Make a copy so that we can support something like
|
328
|
+
# foo = delay_evaluator["blah"]
|
329
|
+
# bar = delay_evaluator["baz"]
|
330
|
+
# and don't end up with a access list that contains both "blah" and "baz"
|
331
|
+
c = self.__copy__()
|
332
|
+
c._access.append(key)
|
333
|
+
c._cached_expr = None
|
334
|
+
return c
|
180
335
|
|
181
336
|
def __len__(self):
|
182
337
|
return 1
|
@@ -184,8 +339,10 @@ class DelayEvaluator(collections.abc.Mapping):
|
|
184
339
|
def __getattr__(self, name):
|
185
340
|
if self._access is None:
|
186
341
|
raise AttributeError(name)
|
187
|
-
self.
|
188
|
-
|
342
|
+
c = self.__copy__()
|
343
|
+
c._access.append(name)
|
344
|
+
c._cached_expr = None
|
345
|
+
return c
|
189
346
|
|
190
347
|
def __call__(self, ctx=None, deploy_time=False):
|
191
348
|
from ..flowspec import _FlowState # Prevent circular import
|
@@ -199,7 +356,9 @@ class DelayEvaluator(collections.abc.Mapping):
|
|
199
356
|
"Config object can only be used directly in the FlowSpec defining them "
|
200
357
|
"(or their flow decorators)."
|
201
358
|
)
|
202
|
-
if self.
|
359
|
+
if self._cached_expr is not None:
|
360
|
+
to_eval_expr = self._cached_expr
|
361
|
+
elif self._access is not None:
|
203
362
|
# Build the final expression by adding all the fields in access as . fields
|
204
363
|
access_list = [self._config_expr]
|
205
364
|
for a in self._access:
|
@@ -212,27 +371,24 @@ class DelayEvaluator(collections.abc.Mapping):
|
|
212
371
|
raise MetaflowException(
|
213
372
|
"Field '%s' of type '%s' is not supported" % (str(a), type(a))
|
214
373
|
)
|
215
|
-
self.
|
374
|
+
to_eval_expr = self._cached_expr = ".".join(access_list)
|
375
|
+
else:
|
376
|
+
to_eval_expr = self._cached_expr = self._config_expr
|
216
377
|
# Evaluate the expression setting the config values as local variables
|
217
378
|
try:
|
218
379
|
return eval(
|
219
|
-
|
220
|
-
globals(),
|
380
|
+
to_eval_expr,
|
381
|
+
self._globals or globals(),
|
221
382
|
{
|
222
383
|
k: ConfigValue(v)
|
223
384
|
for k, v in flow_cls._flow_state.get(_FlowState.CONFIGS, {}).items()
|
224
385
|
},
|
225
386
|
)
|
226
387
|
except NameError as e:
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
)
|
231
|
-
raise MetaflowException(
|
232
|
-
"Config '%s' not found in the flow (maybe not required and not "
|
233
|
-
"provided?)" % potential_config_name
|
234
|
-
) from e
|
235
|
-
raise
|
388
|
+
raise MetaflowException(
|
389
|
+
"Config expression '%s' could not be evaluated: %s"
|
390
|
+
% (to_eval_expr, str(e))
|
391
|
+
) from e
|
236
392
|
|
237
393
|
|
238
394
|
def config_expr(expr: str) -> DelayEvaluator:
|
@@ -262,7 +418,10 @@ def config_expr(expr: str) -> DelayEvaluator:
|
|
262
418
|
expr : str
|
263
419
|
Expression using the config values.
|
264
420
|
"""
|
265
|
-
|
421
|
+
# Get globals where the expression is defined so that the user can use
|
422
|
+
# something like `config_expr("my_func()")` in the expression.
|
423
|
+
parent_globals = inspect.currentframe().f_back.f_globals
|
424
|
+
return DelayEvaluator(expr, saved_globals=parent_globals)
|
266
425
|
|
267
426
|
|
268
427
|
class Config(Parameter, collections.abc.Mapping):
|
@@ -385,23 +544,30 @@ class Config(Parameter, collections.abc.Mapping):
|
|
385
544
|
return DelayEvaluator(self.name.lower())[key]
|
386
545
|
|
387
546
|
|
388
|
-
def resolve_delayed_evaluator(
|
547
|
+
def resolve_delayed_evaluator(
|
548
|
+
v: Any, ignore_errors: bool = False, to_dict: bool = False
|
549
|
+
) -> Any:
|
389
550
|
# NOTE: We don't ignore errors in downstream calls because we want to have either
|
390
551
|
# all or nothing for the top-level call by the user.
|
391
552
|
try:
|
392
553
|
if isinstance(v, DelayEvaluator):
|
393
|
-
|
554
|
+
to_return = v()
|
555
|
+
if to_dict and isinstance(to_return, ConfigValue):
|
556
|
+
to_return = to_return.to_dict()
|
557
|
+
return to_return
|
394
558
|
if isinstance(v, dict):
|
395
559
|
return {
|
396
|
-
resolve_delayed_evaluator(
|
560
|
+
resolve_delayed_evaluator(
|
561
|
+
k, to_dict=to_dict
|
562
|
+
): resolve_delayed_evaluator(v, to_dict=to_dict)
|
397
563
|
for k, v in v.items()
|
398
564
|
}
|
399
565
|
if isinstance(v, list):
|
400
|
-
return [resolve_delayed_evaluator(x) for x in v]
|
566
|
+
return [resolve_delayed_evaluator(x, to_dict=to_dict) for x in v]
|
401
567
|
if isinstance(v, tuple):
|
402
|
-
return tuple(resolve_delayed_evaluator(x) for x in v)
|
568
|
+
return tuple(resolve_delayed_evaluator(x, to_dict=to_dict) for x in v)
|
403
569
|
if isinstance(v, set):
|
404
|
-
return {resolve_delayed_evaluator(x) for x in v}
|
570
|
+
return {resolve_delayed_evaluator(x, to_dict=to_dict) for x in v}
|
405
571
|
return v
|
406
572
|
except Exception as e:
|
407
573
|
if ignore_errors:
|
@@ -426,7 +592,7 @@ def unpack_delayed_evaluator(
|
|
426
592
|
else:
|
427
593
|
# k.startswith(UNPACK_KEY)
|
428
594
|
try:
|
429
|
-
new_vals = resolve_delayed_evaluator(v)
|
595
|
+
new_vals = resolve_delayed_evaluator(v, to_dict=True)
|
430
596
|
new_keys.extend(new_vals.keys())
|
431
597
|
result.update(new_vals)
|
432
598
|
except Exception as e:
|
metaflow/util.py
CHANGED
@@ -418,7 +418,7 @@ def to_pascalcase(obj):
|
|
418
418
|
if isinstance(obj, dict):
|
419
419
|
res = obj.__class__()
|
420
420
|
for k in obj:
|
421
|
-
res[re.sub("([a-zA-Z])", lambda x: x.groups()[0].upper(), k, 1)] = (
|
421
|
+
res[re.sub("([a-zA-Z])", lambda x: x.groups()[0].upper(), k, count=1)] = (
|
422
422
|
to_pascalcase(obj[k])
|
423
423
|
)
|
424
424
|
elif isinstance(obj, (list, set, tuple)):
|
@@ -467,7 +467,4 @@ def to_pod(value):
|
|
467
467
|
return str(value)
|
468
468
|
|
469
469
|
|
470
|
-
|
471
|
-
from metaflow._vendor.packaging.version import parse as version_parse
|
472
|
-
else:
|
473
|
-
from distutils.version import LooseVersion as version_parse
|
470
|
+
from metaflow._vendor.packaging.version import parse as version_parse
|
metaflow/vendor.py
CHANGED
metaflow/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
metaflow_version = "2.15.
|
1
|
+
metaflow_version = "2.15.16"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: metaflow
|
3
|
-
Version: 2.15.
|
3
|
+
Version: 2.15.16
|
4
4
|
Summary: Metaflow: More AI and ML, Less Engineering
|
5
5
|
Author: Metaflow Developers
|
6
6
|
Author-email: help@metaflow.org
|
@@ -26,7 +26,7 @@ License-File: LICENSE
|
|
26
26
|
Requires-Dist: requests
|
27
27
|
Requires-Dist: boto3
|
28
28
|
Provides-Extra: stubs
|
29
|
-
Requires-Dist: metaflow-stubs==2.15.
|
29
|
+
Requires-Dist: metaflow-stubs==2.15.16; extra == "stubs"
|
30
30
|
Dynamic: author
|
31
31
|
Dynamic: author-email
|
32
32
|
Dynamic: classifier
|
@@ -1,12 +1,12 @@
|
|
1
1
|
metaflow/R.py,sha256=CqVfIatvmjciuICNnoyyNGrwE7Va9iXfLdFbQa52hwA,3958
|
2
|
-
metaflow/__init__.py,sha256=
|
2
|
+
metaflow/__init__.py,sha256=aCCgR992PUA5Urd-pb06c1afjKbfaNPDWnH8kKQRnNk,5937
|
3
3
|
metaflow/cards.py,sha256=IbRmredvmFEU0V6JL7DR8wCESwVmmZJubr6x24bo7U4,442
|
4
4
|
metaflow/cli.py,sha256=XqGP8mNObMO0lOJmWtQvFFWUEKWMN_3-cGkvci2n6e4,21296
|
5
5
|
metaflow/cli_args.py,sha256=hDsdWdRmfXYifVGq6b6FDfgoWxtIG2nr_lU6EBV0Pnk,3584
|
6
6
|
metaflow/clone_util.py,sha256=LSuVbFpPUh92UW32DBcnZbL0FFw-4w3CLa0tpEbCkzk,2066
|
7
7
|
metaflow/cmd_with_io.py,sha256=kl53HkAIyv0ecpItv08wZYczv7u3msD1VCcciqigqf0,588
|
8
8
|
metaflow/debug.py,sha256=HEmt_16tJtqHXQXsqD9pqOFe3CWR5GZ7VwpaYQgnRdU,1466
|
9
|
-
metaflow/decorators.py,sha256=
|
9
|
+
metaflow/decorators.py,sha256=qiAV-NOXt09I53y01Vm7EPZtJ4tROlt2Jsij7nVWOY4,24147
|
10
10
|
metaflow/event_logger.py,sha256=joTVRqZPL87nvah4ZOwtqWX8NeraM_CXKXXGVpKGD8o,780
|
11
11
|
metaflow/events.py,sha256=ahjzkSbSnRCK9RZ-9vTfUviz_6gMvSO9DGkJ86X80-k,5300
|
12
12
|
metaflow/exception.py,sha256=_m9ZBJM0cooHRslDqfxCPQmkChqaTh6fGxp7HvISnYI,5161
|
@@ -26,7 +26,7 @@ metaflow/metaflow_version.py,sha256=QNN-8z1JX-Gby0dtXqjogQmsvbE8KDRMNHzQEdjI6qw,
|
|
26
26
|
metaflow/monitor.py,sha256=T0NMaBPvXynlJAO_avKtk8OIIRMyEuMAyF8bIp79aZU,5323
|
27
27
|
metaflow/multicore_utils.py,sha256=yEo5T6Gemn4_vl8b6IOz7fsTUYtEyqa3AaKZgJY96Wc,4974
|
28
28
|
metaflow/package.py,sha256=yfwVMVB1mD-Sw94KwXNK3N-26YHoKMn6btrcgd67Izs,7845
|
29
|
-
metaflow/parameters.py,sha256=
|
29
|
+
metaflow/parameters.py,sha256=b3rS6P-TeEj2JgPEKaiy0ys1B_JtOGJ6XM0KkY2layc,18649
|
30
30
|
metaflow/procpoll.py,sha256=U2tE4iK_Mwj2WDyVTx_Uglh6xZ-jixQOo4wrM9OOhxg,2859
|
31
31
|
metaflow/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
32
32
|
metaflow/pylint_wrapper.py,sha256=zzBY9YaSUZOGH-ypDKAv2B_7XcoyMZj-zCoCrmYqNRc,2865
|
@@ -35,9 +35,9 @@ metaflow/tagging_util.py,sha256=ctyf0Q1gBi0RyZX6J0e9DQGNkNHblV_CITfy66axXB4,2346
|
|
35
35
|
metaflow/task.py,sha256=IYOql3joTnL3N5V2LESeII0B6Xc3_EM6at_Jg14-UZU,30412
|
36
36
|
metaflow/tuple_util.py,sha256=_G5YIEhuugwJ_f6rrZoelMFak3DqAR2tt_5CapS1XTY,830
|
37
37
|
metaflow/unbounded_foreach.py,sha256=p184WMbrMJ3xKYHwewj27ZhRUsSj_kw1jlye5gA9xJk,387
|
38
|
-
metaflow/util.py,sha256=
|
39
|
-
metaflow/vendor.py,sha256=
|
40
|
-
metaflow/version.py,sha256=
|
38
|
+
metaflow/util.py,sha256=MCXCjcGwpuR7y9euBf1GTNRHPtlh6fCpdPMEtbULefw,14554
|
39
|
+
metaflow/vendor.py,sha256=EDZokNMrx1PU07jNMiWFMFtC7TL03pMXZ1kKn13k-2g,5139
|
40
|
+
metaflow/version.py,sha256=YpO6EM1pbJPb-iNbMpxXLeHlRbuglsV3WHXkWdqr2gA,29
|
41
41
|
metaflow/_vendor/__init__.py,sha256=y_CiwUD3l4eAKvTVDZeqgVujMy31cAM1qjAB-HfI-9s,353
|
42
42
|
metaflow/_vendor/typing_extensions.py,sha256=q9zxWa6p6CzF1zZvSkygSlklduHf_b3K7MCxGz7MJRc,134519
|
43
43
|
metaflow/_vendor/zipp.py,sha256=ajztOH-9I7KA_4wqDYygtHa6xUBVZgFpmZ8FE74HHHI,8425
|
@@ -48,7 +48,7 @@ metaflow/_vendor/click/_termui_impl.py,sha256=yNktUMAdjYOU1HMkq915jR3zgAzUNtGSQq
|
|
48
48
|
metaflow/_vendor/click/_textwrap.py,sha256=ajCzkzFly5tjm9foQ5N9_MOeaYJMBjAltuFa69n4iXY,1197
|
49
49
|
metaflow/_vendor/click/_unicodefun.py,sha256=apLSNEBZgUsQNPMUv072zJ1swqnm0dYVT5TqcIWTt6w,4201
|
50
50
|
metaflow/_vendor/click/_winconsole.py,sha256=6YDu6Rq1Wxx4w9uinBMK2LHvP83aerZM9GQurlk3QDo,10010
|
51
|
-
metaflow/_vendor/click/core.py,sha256=
|
51
|
+
metaflow/_vendor/click/core.py,sha256=nzhJwIeN4LBFz92JnWxlrrsYHqBGhSQPbkkUI2p_hXA,77654
|
52
52
|
metaflow/_vendor/click/decorators.py,sha256=3TvEO_BkaHl7k6Eh1G5eC7JK4LKPdpFqH9JP0QDyTlM,11215
|
53
53
|
metaflow/_vendor/click/exceptions.py,sha256=3pQAyyMFzx5A3eV0Y27WtDTyGogZRbrC6_o5DjjKBbw,8118
|
54
54
|
metaflow/_vendor/click/formatting.py,sha256=Wb4gqFEpWaKPgAbOvnkCl8p-bEZx5KpM5ZSByhlnJNk,9281
|
@@ -95,10 +95,6 @@ metaflow/_vendor/typeguard/_transformer.py,sha256=9Ha7_QhdwoUni_6hvdY-hZbuEergow
|
|
95
95
|
metaflow/_vendor/typeguard/_union_transformer.py,sha256=v_42r7-6HuRX2SoFwnyJ-E5PlxXpVeUJPJR1-HU9qSo,1354
|
96
96
|
metaflow/_vendor/typeguard/_utils.py,sha256=A8jluNB05hdZfzY_AXqa5oB9fY0jZsq_SCsyWy6g-1A,5287
|
97
97
|
metaflow/_vendor/typeguard/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
98
|
-
metaflow/_vendor/v3_5/__init__.py,sha256=98e_aAZvsdPvFOT7hg_UM6i7DGHOLEdaeFiGVZLMRqA,12
|
99
|
-
metaflow/_vendor/v3_5/zipp.py,sha256=ajztOH-9I7KA_4wqDYygtHa6xUBVZgFpmZ8FE74HHHI,8425
|
100
|
-
metaflow/_vendor/v3_5/importlib_metadata/__init__.py,sha256=sTmHo2wUteZGoRUkgDAhqUob8PIGzFxZ3BgdP4rFC3Q,19617
|
101
|
-
metaflow/_vendor/v3_5/importlib_metadata/_compat.py,sha256=DnM55BbJKFCcZmJOkArmyO76-0g7pA6HEfzSYWXN88k,4417
|
102
98
|
metaflow/_vendor/v3_6/__init__.py,sha256=98e_aAZvsdPvFOT7hg_UM6i7DGHOLEdaeFiGVZLMRqA,12
|
103
99
|
metaflow/_vendor/v3_6/typing_extensions.py,sha256=jENKtckSwLmnw3WgvvZe7uul7koec0Hfx3aSN0LsETM,107795
|
104
100
|
metaflow/_vendor/v3_6/zipp.py,sha256=ajztOH-9I7KA_4wqDYygtHa6xUBVZgFpmZ8FE74HHHI,8425
|
@@ -154,8 +150,8 @@ metaflow/cmd/tutorials_cmd.py,sha256=8FdlKkicTOhCIDKcBR5b0Oz6giDvS-EMY3o9skIrRqw
|
|
154
150
|
metaflow/cmd/util.py,sha256=jS_0rUjOnGGzPT65fzRLdGjrYAOOLA4jU2S0HJLV0oc,406
|
155
151
|
metaflow/cmd/code/__init__.py,sha256=VO4dNM9M9LHYy5nTgEiJvCV1RBl8lpDlYGJm6GIcaBA,7413
|
156
152
|
metaflow/cmd/develop/__init__.py,sha256=p1Sy8yU1MEKSrH5ttOWOZvNcI1qYu6J6jghdTHwPgOw,689
|
157
|
-
metaflow/cmd/develop/stub_generator.py,sha256=
|
158
|
-
metaflow/cmd/develop/stubs.py,sha256=
|
153
|
+
metaflow/cmd/develop/stub_generator.py,sha256=8Ap5rCC2lKOq4KQJ_LTuhQGj2xXYJ_Nnc1h842PsGBs,65929
|
154
|
+
metaflow/cmd/develop/stubs.py,sha256=J8DtpaN3okiPeeAqhxuUe9wQDlW4YYmZgKsVZLlVt0k,11181
|
159
155
|
metaflow/datastore/__init__.py,sha256=VxP6ddJt3rwiCkpiSfAhyVkUCOe1pgZZsytVEJzFmSQ,155
|
160
156
|
metaflow/datastore/content_addressed_store.py,sha256=6T7tNqL29kpmecyMLHF35RhoSBOb-OZcExnsB65AvnI,7641
|
161
157
|
metaflow/datastore/datastore_set.py,sha256=R5pwnxg1DD8kBY9vElvd2eMknrvwTyiSwvQs67_z9bc,2361
|
@@ -163,8 +159,8 @@ metaflow/datastore/datastore_storage.py,sha256=7V43QuiWDQ_Q4oHw9y7Z7X9lYj3GI-LV1
|
|
163
159
|
metaflow/datastore/exceptions.py,sha256=r7Ab5FvHIzyFh6kwiptA1lO5nLqWg0xRBoeYGefvapA,373
|
164
160
|
metaflow/datastore/flow_datastore.py,sha256=rDMEHdYwub1PwLp2uaK-8CHdd8hiwxqeELXzsUfuqZs,10250
|
165
161
|
metaflow/datastore/inputs.py,sha256=i43dXr2xvgtsgKMO9allgCR18bk80GeayeQFyUTH36w,449
|
166
|
-
metaflow/datastore/task_datastore.py,sha256=
|
167
|
-
metaflow/extension_support/__init__.py,sha256=
|
162
|
+
metaflow/datastore/task_datastore.py,sha256=5vX-eB9YVi4pBo9OaHQK7m2FMScOel-NhePg9-dXEV8,35060
|
163
|
+
metaflow/extension_support/__init__.py,sha256=chdk2ft6Ge3WHR1456zseekTtrLW8ZgUmV0ZsOvBPOQ,52265
|
168
164
|
metaflow/extension_support/_empty_file.py,sha256=HENjnM4uAfeNygxMB_feCCWORFoSat9n_QwzSx2oXPw,109
|
169
165
|
metaflow/extension_support/cmd.py,sha256=hk8iBUUINqvKCDxInKgWpum8ThiRZtHSJP7qBASHzl8,5711
|
170
166
|
metaflow/extension_support/integrations.py,sha256=AWAh-AZ-vo9IxuAVEjGw3s8p_NMm2DKHYx10oC51gPU,5506
|
@@ -185,7 +181,7 @@ metaflow/plugins/debug_monitor.py,sha256=Md5X_sDOSssN9pt2D8YcaIjTK5JaQD55UAYTcF6
|
|
185
181
|
metaflow/plugins/environment_decorator.py,sha256=6m9j2B77d-Ja_l_9CTJ__0O6aB2a8Qt_lAZu6UjAcUA,587
|
186
182
|
metaflow/plugins/events_decorator.py,sha256=T_YSK-DlgZhd3ge9PlpTRNaMi15GK0tKZMZl1NdV9DQ,24403
|
187
183
|
metaflow/plugins/logs_cli.py,sha256=77W5UNagU2mOKSMMvrQxQmBLRzvmjK-c8dWxd-Ygbqs,11410
|
188
|
-
metaflow/plugins/package_cli.py,sha256
|
184
|
+
metaflow/plugins/package_cli.py,sha256=Y7MI3NMAxser0aV6Gg2cqnPKlXE1imUmpYt1La_sX2M,2029
|
189
185
|
metaflow/plugins/parallel_decorator.py,sha256=GR6LKIW7_S7AoU50Ar2_0nndVtO2epdn3LuthE0vKMQ,9127
|
190
186
|
metaflow/plugins/project_decorator.py,sha256=uhwsguEj7OM_E2OnY1ap3MoGocQHeywuJSa-qPuWn-U,7592
|
191
187
|
metaflow/plugins/resources_decorator.py,sha256=AtoOwg4mHYHYthg-CAfbfam-QiT0ViuDLDoukoDvF6Q,1347
|
@@ -211,15 +207,15 @@ metaflow/plugins/argo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
211
207
|
metaflow/plugins/argo/argo_client.py,sha256=A1kI9rjVjCadDsBscZ2Wk8xRBI6GNgWV6SU7TyrdfrI,16530
|
212
208
|
metaflow/plugins/argo/argo_events.py,sha256=_C1KWztVqgi3zuH57pInaE9OzABc2NnncC-zdwOMZ-w,5909
|
213
209
|
metaflow/plugins/argo/argo_workflows.py,sha256=oX-e4o_CxTQP5DJ7zMQwckcobXZJz6hPxLs3fsHSnm8,186544
|
214
|
-
metaflow/plugins/argo/argo_workflows_cli.py,sha256=
|
210
|
+
metaflow/plugins/argo/argo_workflows_cli.py,sha256=1bdG8BQgwyfHooBidyY1Aw52uwjCxq2Edt0bO7qezWM,38375
|
215
211
|
metaflow/plugins/argo/argo_workflows_decorator.py,sha256=ogCSBmwsC2C3eusydrgjuAJd4qK18f1sI4jJwA4Fd-o,7800
|
216
212
|
metaflow/plugins/argo/argo_workflows_deployer.py,sha256=6kHxEnYXJwzNCM9swI8-0AckxtPWqwhZLerYkX8fxUM,4444
|
217
|
-
metaflow/plugins/argo/argo_workflows_deployer_objects.py,sha256=
|
213
|
+
metaflow/plugins/argo/argo_workflows_deployer_objects.py,sha256=7OiapcIM_r-aBkuIobhofgLC5NRJHC-p9bvBmxvhqoM,12500
|
218
214
|
metaflow/plugins/argo/capture_error.py,sha256=Ys9dscGrTpW-ZCirLBU0gD9qBM0BjxyxGlUMKcwewQc,1852
|
219
215
|
metaflow/plugins/argo/generate_input_paths.py,sha256=loYsI6RFX9LlFsHb7Fe-mzlTTtRdySoOu7sYDy-uXK0,881
|
220
216
|
metaflow/plugins/argo/jobset_input_paths.py,sha256=-h0E_e0w6FMiBUod9Rf_XOSCtZv_C0exacw4q1SfIfg,501
|
221
217
|
metaflow/plugins/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
222
|
-
metaflow/plugins/aws/aws_client.py,sha256=
|
218
|
+
metaflow/plugins/aws/aws_client.py,sha256=BTiLMXa1agjja-N73oWinaOZHs-lGPbfKJG8CqdRgaU,4287
|
223
219
|
metaflow/plugins/aws/aws_utils.py,sha256=kNd61C54Y3WxrL7KSjoKydRjBQ1p3exc9QXux-jZyDE,7510
|
224
220
|
metaflow/plugins/aws/batch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
225
221
|
metaflow/plugins/aws/batch/batch.py,sha256=e9ssahWM18GnipPK2sqYB-ztx9w7Eoo7YtWyEtufYxs,17787
|
@@ -256,7 +252,7 @@ metaflow/plugins/cards/card_datastore.py,sha256=3K19wE0CZVvOpuYUytftIYYnHHn3pMZJ
|
|
256
252
|
metaflow/plugins/cards/card_decorator.py,sha256=nU-uZ4_ubU7bCsSb6uT61YnN8ruo43_FzqZ24MsZpKg,12070
|
257
253
|
metaflow/plugins/cards/card_resolver.py,sha256=bjyujYpGUFbLJNwXNGHlHhL4f-gVdVKebl7XW1vWDtE,717
|
258
254
|
metaflow/plugins/cards/card_server.py,sha256=DHv0RcepaPULWbkDahiEMrU5A281Cfb0DvHLUYd8JsU,11772
|
259
|
-
metaflow/plugins/cards/component_serializer.py,sha256=
|
255
|
+
metaflow/plugins/cards/component_serializer.py,sha256=kQ5umqSQne6bTgx8V8JNQbiz-kH2Ntu0VK3ZHxywXww,36912
|
260
256
|
metaflow/plugins/cards/exception.py,sha256=2UqlNb-Kxpg6cuLu2sBEIPTIElwlVBsSpeCgDYKTxWg,5222
|
261
257
|
metaflow/plugins/cards/card_modules/__init__.py,sha256=WI2IAsFiKGyqPrHtO9S9-MbyVtUTgWJNL4xjJaBErRo,3437
|
262
258
|
metaflow/plugins/cards/card_modules/base.html,sha256=Y208ZKIZqEWWUcoBFTLTdWKAG0C8xH5lmyCRSjaN2FY,21004
|
@@ -267,11 +263,11 @@ metaflow/plugins/cards/card_modules/components.py,sha256=Y-Yo7UgSOyTB3zs-wDfUqUK
|
|
267
263
|
metaflow/plugins/cards/card_modules/convert_to_native_type.py,sha256=eGaQ8BabJ489a8AiyhXFy1pWJZl99gH0FQzwsNVxAGQ,15782
|
268
264
|
metaflow/plugins/cards/card_modules/main.js,sha256=72mKcMEjrne7TlLxc-LkxTJVoM4z2pLWGtU1NzHtlWM,1043628
|
269
265
|
metaflow/plugins/cards/card_modules/renderer_tools.py,sha256=uiTdKHWFInWgtfWArOUSQLnTwqVd4hAw49jfOfg8rGA,1642
|
270
|
-
metaflow/plugins/cards/card_modules/test_cards.py,sha256=
|
266
|
+
metaflow/plugins/cards/card_modules/test_cards.py,sha256=AAI78Usq-SV4H_XBNKOb9dBadBnblZCq57uQOTPnyKI,5361
|
271
267
|
metaflow/plugins/cards/card_modules/chevron/__init__.py,sha256=SicpH_1eT76HUTA8aMuiGLRNKTqgYD1Qfutt2NdTL0E,156
|
272
268
|
metaflow/plugins/cards/card_modules/chevron/main.py,sha256=FKpDW4PS2dYshgkm6yIxrBnzkhquZ4gg2dmUxrBbNTQ,3222
|
273
269
|
metaflow/plugins/cards/card_modules/chevron/metadata.py,sha256=gQDpB9KezW9Mcv-n9K2Pt1akjiPGG1zYB5YPdQ0FlNc,19
|
274
|
-
metaflow/plugins/cards/card_modules/chevron/renderer.py,sha256=
|
270
|
+
metaflow/plugins/cards/card_modules/chevron/renderer.py,sha256=2646dlNmVzVIxU50R9vXn65mqJZtognCOWRpt1ZHN5c,13938
|
275
271
|
metaflow/plugins/cards/card_modules/chevron/tokenizer.py,sha256=lQU9OELUE9a5Xu4snGhEV_YTT34iyUHVBuM1YO016Sw,7400
|
276
272
|
metaflow/plugins/cards/card_viewer/viewer.html,sha256=qZJGzhZhQ1gugsknRP7zkAPPfUAtvemK1UKqXoGff5M,11593
|
277
273
|
metaflow/plugins/datastores/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -283,7 +279,7 @@ metaflow/plugins/datatools/__init__.py,sha256=ge4L16OBQLy2J_MMvoHg3lMfdm-MluQgRW
|
|
283
279
|
metaflow/plugins/datatools/local.py,sha256=FJvMOBcjdyhSPHmdLocBSiIT0rmKkKBmsaclxH75x08,4233
|
284
280
|
metaflow/plugins/datatools/s3/__init__.py,sha256=14tr9fPjN3ULW5IOfKHeG7Uhjmgm7LMtQHfz1SFv-h8,248
|
285
281
|
metaflow/plugins/datatools/s3/s3.py,sha256=3xrWD6pXoVRpuAQHyLGVya79UIE0S8AqAqe2prg4yMw,67182
|
286
|
-
metaflow/plugins/datatools/s3/s3op.py,sha256=
|
282
|
+
metaflow/plugins/datatools/s3/s3op.py,sha256=nDFgc5m0ud-uK4D2_vyweGpGoMjESxu3TlX86zA1MdQ,47561
|
287
283
|
metaflow/plugins/datatools/s3/s3tail.py,sha256=boQjQGQMI-bvTqcMP2y7uSlSYLcvWOy7J3ZUaF78NAA,2597
|
288
284
|
metaflow/plugins/datatools/s3/s3util.py,sha256=FgRgaVmEq7-i2dV7q8XK5w5PfFt-xJjZa8WrK8IJfdI,3769
|
289
285
|
metaflow/plugins/env_escape/__init__.py,sha256=tGNUZnmPvk52eNs__VK443b3CZ7ogEFTT-s9_n_HF8Q,8837
|
@@ -327,9 +323,9 @@ metaflow/plugins/kubernetes/spot_metadata_cli.py,sha256=an0nWCxgflmqIPBCBrlb4m3D
|
|
327
323
|
metaflow/plugins/kubernetes/spot_monitor_sidecar.py,sha256=zrWU-smQwPnL6MBHmzTxWyEA00R6iKKQbhhy50xFwQ8,3832
|
328
324
|
metaflow/plugins/metadata_providers/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
329
325
|
metaflow/plugins/metadata_providers/local.py,sha256=Z0CXaGZJbAkj4II3WspJi-uCCtShH64yaXZQ5i9Ym7g,24390
|
330
|
-
metaflow/plugins/metadata_providers/service.py,sha256=
|
326
|
+
metaflow/plugins/metadata_providers/service.py,sha256=5UlK0R5M9_nq2J6MgJgCZwqAC3bEsofFbglq1K4p4QI,22942
|
331
327
|
metaflow/plugins/pypi/__init__.py,sha256=0YFZpXvX7HCkyBFglatual7XGifdA1RwC3U4kcizyak,1037
|
332
|
-
metaflow/plugins/pypi/bootstrap.py,sha256=
|
328
|
+
metaflow/plugins/pypi/bootstrap.py,sha256=NaQboUVNJc90gmUa69-cK_T3G7piHNNsUSaN96IJoic,14745
|
333
329
|
metaflow/plugins/pypi/conda_decorator.py,sha256=N0HGiaS1mRsa6qT4eYzu2C3DHtas22QIXowW4vEl44M,15961
|
334
330
|
metaflow/plugins/pypi/conda_environment.py,sha256=C7WolJm1dgBQofd6vOk8KCr3U754TyAr4bOpkhosxfM,24582
|
335
331
|
metaflow/plugins/pypi/micromamba.py,sha256=XAuZulI7O2Q_Zgtx28yjAqHco6tHiPQxoy_vsf1kWm8,16843
|
@@ -342,17 +338,17 @@ metaflow/plugins/secrets/__init__.py,sha256=mhJaN2eMS_ZZVewAMR2E-JdP5i0t3v9e6Dcw
|
|
342
338
|
metaflow/plugins/secrets/inline_secrets_provider.py,sha256=EChmoBGA1i7qM3jtYwPpLZDBybXLergiDlN63E0u3x8,294
|
343
339
|
metaflow/plugins/secrets/secrets_decorator.py,sha256=s-sFzPWOjahhpr5fMj-ZEaHkDYAPTO0isYXGvaUwlG8,11273
|
344
340
|
metaflow/plugins/uv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
345
|
-
metaflow/plugins/uv/bootstrap.py,sha256=
|
346
|
-
metaflow/plugins/uv/uv_environment.py,sha256=
|
341
|
+
metaflow/plugins/uv/bootstrap.py,sha256=nKucPuEk6IEuu9R3aJtaTaOsD1eZjmQ4iz0t4vYF4v0,3835
|
342
|
+
metaflow/plugins/uv/uv_environment.py,sha256=6hUaWrTgqHyzS6igGQUXpS6jb_GHv3Wq9ZrWhZgEals,2587
|
347
343
|
metaflow/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
348
|
-
metaflow/runner/click_api.py,sha256=
|
349
|
-
metaflow/runner/deployer.py,sha256=
|
350
|
-
metaflow/runner/deployer_impl.py,sha256=
|
351
|
-
metaflow/runner/metaflow_runner.py,sha256=
|
344
|
+
metaflow/runner/click_api.py,sha256=u9Y1bu9vN13ektBs-L8lg2oxb5oYvGe1dPJjV2shMAw,23727
|
345
|
+
metaflow/runner/deployer.py,sha256=U-hwf4gVzwUlXgnkfTW3y1daGXvo5eP4HTQZwb-vS0g,11058
|
346
|
+
metaflow/runner/deployer_impl.py,sha256=zTING0_fwP44JcGo69DuNrVut5KqdBVzYOM7MYTZgIY,7049
|
347
|
+
metaflow/runner/metaflow_runner.py,sha256=BaDAp-3tCPwJRy_R8hLTAu6L0qjjuQmjeo-L1inhr_c,17498
|
352
348
|
metaflow/runner/nbdeploy.py,sha256=Sp5w-6nCZwjHaRBHWxi8udya-RYnJOB76KNLjB4L7Gs,4166
|
353
349
|
metaflow/runner/nbrun.py,sha256=LhJu-Teoi7wTkNxg0kpNPVXFxH_9P4lvtp0ysMEIFJ8,7299
|
354
|
-
metaflow/runner/subprocess_manager.py,sha256=
|
355
|
-
metaflow/runner/utils.py,sha256=
|
350
|
+
metaflow/runner/subprocess_manager.py,sha256=YHKerTuSc-ih_Gqd9eENRGwUuotcVRHpiahkBOUYPNM,22279
|
351
|
+
metaflow/runner/utils.py,sha256=fU4vPazBdi6ATAUW_DaBAQeVslRwrLT8Pn9s5wav3gg,10350
|
356
352
|
metaflow/sidecar/__init__.py,sha256=1mmNpmQ5puZCpRmmYlCOeieZ4108Su9XQ4_EqF1FGOU,131
|
357
353
|
metaflow/sidecar/sidecar.py,sha256=EspKXvPPNiyRToaUZ51PS5TT_PzrBNAurn_wbFnmGr0,1334
|
358
354
|
metaflow/sidecar/sidecar_messages.py,sha256=zPsCoYgDIcDkkvdC9MEpJTJ3y6TSGm2JWkRc4vxjbFA,1071
|
@@ -391,14 +387,14 @@ metaflow/tutorials/08-autopilot/README.md,sha256=GnePFp_q76jPs991lMUqfIIh5zSorIe
|
|
391
387
|
metaflow/tutorials/08-autopilot/autopilot.ipynb,sha256=DQoJlILV7Mq9vfPBGW-QV_kNhWPjS5n6SJLqePjFYLY,3191
|
392
388
|
metaflow/user_configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
393
389
|
metaflow/user_configs/config_decorators.py,sha256=qCKVAvd0NKgaCxQ2OThes5-DYHXq6A1HqURubYNeFdw,20481
|
394
|
-
metaflow/user_configs/config_options.py,sha256=
|
395
|
-
metaflow/user_configs/config_parameters.py,sha256=
|
396
|
-
metaflow-2.15.
|
397
|
-
metaflow-2.15.
|
398
|
-
metaflow-2.15.
|
399
|
-
metaflow-2.15.
|
400
|
-
metaflow-2.15.
|
401
|
-
metaflow-2.15.
|
402
|
-
metaflow-2.15.
|
403
|
-
metaflow-2.15.
|
404
|
-
metaflow-2.15.
|
390
|
+
metaflow/user_configs/config_options.py,sha256=aB53M-2WkDPo_TRLAcC8v89Wy8-oxflfW4l-xlb5pDI,21089
|
391
|
+
metaflow/user_configs/config_parameters.py,sha256=Eyiqcz4YV_z4algDHAh2gaejGFgIdHk8Vix9AUdPSh0,20989
|
392
|
+
metaflow-2.15.16.data/data/share/metaflow/devtools/Makefile,sha256=5n89OGIC_kE4wxtEI66VCucN-b-1w5bqvGeZYmeRGz8,13737
|
393
|
+
metaflow-2.15.16.data/data/share/metaflow/devtools/Tiltfile,sha256=P5_rn_F3xYLN1_cEAQ9mNeS22HG2rb8beKIz2RIK6fU,20634
|
394
|
+
metaflow-2.15.16.data/data/share/metaflow/devtools/pick_services.sh,sha256=DCnrMXwtApfx3B4S-YiZESMyAFHbXa3VuNL0MxPLyiE,2196
|
395
|
+
metaflow-2.15.16.dist-info/licenses/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
|
396
|
+
metaflow-2.15.16.dist-info/METADATA,sha256=tJxdSSfjh56YThcF7BrwHK50l86Ku5Pb-KFZt0nSiyU,6742
|
397
|
+
metaflow-2.15.16.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
|
398
|
+
metaflow-2.15.16.dist-info/entry_points.txt,sha256=RvEq8VFlgGe_FfqGOZi0D7ze1hLD0pAtXeNyGfzc_Yc,103
|
399
|
+
metaflow-2.15.16.dist-info/top_level.txt,sha256=v1pDHoWaSaKeuc5fKTRSfsXCKSdW1zvNVmvA-i0if3o,9
|
400
|
+
metaflow-2.15.16.dist-info/RECORD,,
|
@@ -1 +0,0 @@
|
|
1
|
-
# Empty file
|