ob-metaflow 2.18.7.5__py2.py3-none-any.whl → 2.18.9.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.
Potentially problematic release.
This version of ob-metaflow might be problematic. Click here for more details.
- metaflow/includefile.py +25 -3
- metaflow/plugins/__init__.py +1 -0
- metaflow/plugins/datatools/s3/s3.py +3 -0
- metaflow/plugins/datatools/s3/s3op.py +13 -0
- metaflow/plugins/parsers.py +16 -0
- metaflow/version.py +1 -1
- {ob_metaflow-2.18.7.5.data → ob_metaflow-2.18.9.1.data}/data/share/metaflow/devtools/Tiltfile +76 -2
- {ob_metaflow-2.18.7.5.data → ob_metaflow-2.18.9.1.data}/data/share/metaflow/devtools/pick_services.sh +1 -0
- {ob_metaflow-2.18.7.5.dist-info → ob_metaflow-2.18.9.1.dist-info}/METADATA +3 -2
- {ob_metaflow-2.18.7.5.dist-info → ob_metaflow-2.18.9.1.dist-info}/RECORD +15 -14
- {ob_metaflow-2.18.7.5.data → ob_metaflow-2.18.9.1.data}/data/share/metaflow/devtools/Makefile +0 -0
- {ob_metaflow-2.18.7.5.dist-info → ob_metaflow-2.18.9.1.dist-info}/WHEEL +0 -0
- {ob_metaflow-2.18.7.5.dist-info → ob_metaflow-2.18.9.1.dist-info}/entry_points.txt +0 -0
- {ob_metaflow-2.18.7.5.dist-info → ob_metaflow-2.18.9.1.dist-info}/licenses/LICENSE +0 -0
- {ob_metaflow-2.18.7.5.dist-info → ob_metaflow-2.18.9.1.dist-info}/top_level.txt +0 -0
metaflow/includefile.py
CHANGED
|
@@ -7,9 +7,10 @@ import json
|
|
|
7
7
|
import os
|
|
8
8
|
|
|
9
9
|
from hashlib import sha1
|
|
10
|
-
from typing import Any, Callable, Dict, Optional
|
|
10
|
+
from typing import Any, Callable, Dict, Optional, Union
|
|
11
11
|
|
|
12
12
|
from metaflow._vendor import click
|
|
13
|
+
from metaflow._vendor import yaml
|
|
13
14
|
|
|
14
15
|
from .exception import MetaflowException
|
|
15
16
|
from .parameters import (
|
|
@@ -20,7 +21,7 @@ from .parameters import (
|
|
|
20
21
|
)
|
|
21
22
|
|
|
22
23
|
from .plugins import DATACLIENTS
|
|
23
|
-
from .user_configs.
|
|
24
|
+
from .user_configs.config_options import ConfigInput
|
|
24
25
|
from .util import get_username
|
|
25
26
|
|
|
26
27
|
import functools
|
|
@@ -261,6 +262,12 @@ class IncludeFile(Parameter):
|
|
|
261
262
|
show_default : bool, default True
|
|
262
263
|
If True, show the default value in the help text. A value of None is equivalent
|
|
263
264
|
to True.
|
|
265
|
+
parser : Union[str, Callable[[str], Any]], optional, default None
|
|
266
|
+
If a callable, it is a function that can parse the file contents
|
|
267
|
+
into any desired format. If a string, the string should refer to
|
|
268
|
+
a function (like "my_parser_package.my_parser.my_parser_function") which should
|
|
269
|
+
be able to parse the file contents. If the name starts with a ".", it is assumed
|
|
270
|
+
to be relative to "metaflow".
|
|
264
271
|
"""
|
|
265
272
|
|
|
266
273
|
def __init__(
|
|
@@ -270,6 +277,7 @@ class IncludeFile(Parameter):
|
|
|
270
277
|
is_text: Optional[bool] = None,
|
|
271
278
|
encoding: Optional[str] = None,
|
|
272
279
|
help: Optional[str] = None,
|
|
280
|
+
parser: Optional[Union[str, Callable[[str], Any]]] = None,
|
|
273
281
|
**kwargs: Dict[str, str]
|
|
274
282
|
):
|
|
275
283
|
self._includefile_overrides = {}
|
|
@@ -277,6 +285,7 @@ class IncludeFile(Parameter):
|
|
|
277
285
|
self._includefile_overrides["is_text"] = is_text
|
|
278
286
|
if encoding is not None:
|
|
279
287
|
self._includefile_overrides["encoding"] = encoding
|
|
288
|
+
self._parser = parser
|
|
280
289
|
# NOTA: Right now, there is an issue where these can't be overridden by config
|
|
281
290
|
# in all circumstances. Ignoring for now.
|
|
282
291
|
super(IncludeFile, self).__init__(
|
|
@@ -336,7 +345,20 @@ class IncludeFile(Parameter):
|
|
|
336
345
|
def load_parameter(self, v):
|
|
337
346
|
if v is None:
|
|
338
347
|
return v
|
|
339
|
-
|
|
348
|
+
|
|
349
|
+
# Get the raw content from the file
|
|
350
|
+
content = v.decode(self.name, var_type="Parameter")
|
|
351
|
+
# If a parser is specified, use it to parse the content
|
|
352
|
+
if self._parser is not None:
|
|
353
|
+
try:
|
|
354
|
+
return ConfigInput._call_parser(self._parser, content)
|
|
355
|
+
except Exception as e:
|
|
356
|
+
raise MetaflowException(
|
|
357
|
+
"Failed to parse content in parameter '%s' using parser: %s"
|
|
358
|
+
% (self.name, str(e))
|
|
359
|
+
) from e
|
|
360
|
+
|
|
361
|
+
return content
|
|
340
362
|
|
|
341
363
|
@staticmethod
|
|
342
364
|
def _eval_default(is_text, encoding, default_path):
|
metaflow/plugins/__init__.py
CHANGED
|
@@ -170,6 +170,7 @@ DEPLOYER_IMPL_PROVIDERS_DESC = [
|
|
|
170
170
|
]
|
|
171
171
|
|
|
172
172
|
TL_PLUGINS_DESC = [
|
|
173
|
+
("yaml_parser", ".parsers.yaml_parser"),
|
|
173
174
|
("requirements_txt_parser", ".pypi.parsers.requirements_txt_parser"),
|
|
174
175
|
("pyproject_toml_parser", ".pypi.parsers.pyproject_toml_parser"),
|
|
175
176
|
("conda_environment_yml_parser", ".pypi.parsers.conda_environment_yml_parser"),
|
|
@@ -1385,6 +1385,9 @@ class S3(object):
|
|
|
1385
1385
|
except OSError as e:
|
|
1386
1386
|
if e.errno == errno.ENOSPC:
|
|
1387
1387
|
raise MetaflowS3InsufficientDiskSpace(str(e))
|
|
1388
|
+
except MetaflowException as ex:
|
|
1389
|
+
# Re-raise Metaflow exceptions (including TimeoutException)
|
|
1390
|
+
raise
|
|
1388
1391
|
except Exception as ex:
|
|
1389
1392
|
error = str(ex)
|
|
1390
1393
|
if tmp:
|
|
@@ -50,6 +50,7 @@ import metaflow.tracing as tracing
|
|
|
50
50
|
from metaflow.metaflow_config import (
|
|
51
51
|
S3_WORKER_COUNT,
|
|
52
52
|
)
|
|
53
|
+
from metaflow.exception import MetaflowException
|
|
53
54
|
|
|
54
55
|
DOWNLOAD_FILE_THRESHOLD = 2 * TransferConfig().multipart_threshold
|
|
55
56
|
DOWNLOAD_MAX_CHUNK = 2 * 1024 * 1024 * 1024 - 1
|
|
@@ -287,6 +288,11 @@ def worker(result_file_name, queue, mode, s3config):
|
|
|
287
288
|
result_file.write("%d %d\n" % (idx, -ERROR_TRANSIENT))
|
|
288
289
|
result_file.flush()
|
|
289
290
|
continue
|
|
291
|
+
except MetaflowException:
|
|
292
|
+
# Re-raise Metaflow exceptions (including TimeoutException)
|
|
293
|
+
tmp.close()
|
|
294
|
+
os.unlink(tmp.name)
|
|
295
|
+
raise
|
|
290
296
|
except (SSLError, Exception) as e:
|
|
291
297
|
tmp.close()
|
|
292
298
|
os.unlink(tmp.name)
|
|
@@ -357,6 +363,9 @@ def worker(result_file_name, queue, mode, s3config):
|
|
|
357
363
|
err = convert_to_client_error(e)
|
|
358
364
|
handle_client_error(err, idx, result_file)
|
|
359
365
|
continue
|
|
366
|
+
except MetaflowException:
|
|
367
|
+
# Re-raise Metaflow exceptions (including TimeoutException)
|
|
368
|
+
raise
|
|
360
369
|
except (SSLError, Exception) as e:
|
|
361
370
|
# assume anything else is transient
|
|
362
371
|
result_file.write("%d %d\n" % (idx, -ERROR_TRANSIENT))
|
|
@@ -385,6 +394,10 @@ def convert_to_client_error(e):
|
|
|
385
394
|
|
|
386
395
|
|
|
387
396
|
def handle_client_error(err, idx, result_file):
|
|
397
|
+
# Handle all MetaflowExceptions as fatal
|
|
398
|
+
if isinstance(err, MetaflowException):
|
|
399
|
+
raise err
|
|
400
|
+
|
|
388
401
|
error_code = normalize_client_error(err)
|
|
389
402
|
if error_code == 404:
|
|
390
403
|
result_file.write("%d %d\n" % (idx, -ERROR_URL_NOT_FOUND))
|
metaflow/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
metaflow_version = "2.18.
|
|
1
|
+
metaflow_version = "2.18.9.1"
|
{ob_metaflow-2.18.7.5.data → ob_metaflow-2.18.9.1.data}/data/share/metaflow/devtools/Tiltfile
RENAMED
|
@@ -14,6 +14,17 @@
|
|
|
14
14
|
version_settings(constraint='>=0.22.2')
|
|
15
15
|
allow_k8s_contexts('minikube')
|
|
16
16
|
|
|
17
|
+
# Version configuration for components
|
|
18
|
+
JOBSET_VERSION = os.getenv("JOBSET_VERSION", "v0.8.2")
|
|
19
|
+
|
|
20
|
+
# Argo Workflows versions
|
|
21
|
+
ARGO_WORKFLOWS_HELM_CHART_VERSION = os.getenv("ARGO_WORKFLOWS_HELM_CHART_VERSION", "0.45.2") # Helm chart version
|
|
22
|
+
ARGO_WORKFLOWS_IMAGE_TAG = os.getenv("ARGO_WORKFLOWS_IMAGE_TAG", "v3.6.0") # Argo Workflows application version
|
|
23
|
+
|
|
24
|
+
# Argo Events versions
|
|
25
|
+
ARGO_EVENTS_HELM_CHART_VERSION = os.getenv("ARGO_EVENTS_HELM_CHART_VERSION", "2.4.8") # Helm chart version
|
|
26
|
+
ARGO_EVENTS_IMAGE_TAG = os.getenv("ARGO_EVENTS_IMAGE_TAG", "v1.9.2") # Argo Events application version
|
|
27
|
+
|
|
17
28
|
components = {
|
|
18
29
|
"metadata-service": ["postgresql"],
|
|
19
30
|
"ui": ["postgresql", "minio"],
|
|
@@ -21,9 +32,10 @@ components = {
|
|
|
21
32
|
"postgresql": [],
|
|
22
33
|
"argo-workflows": [],
|
|
23
34
|
"argo-events": ["argo-workflows"],
|
|
35
|
+
"jobset": [],
|
|
24
36
|
}
|
|
25
37
|
|
|
26
|
-
services_env = os.getenv("SERVICES", "").strip().lower()
|
|
38
|
+
services_env = os.getenv("SERVICES", "all").strip().lower()
|
|
27
39
|
|
|
28
40
|
if services_env:
|
|
29
41
|
if services_env == "all":
|
|
@@ -205,6 +217,7 @@ if "postgresql" in enabled_components:
|
|
|
205
217
|
if "argo-workflows" in enabled_components:
|
|
206
218
|
helm_remote(
|
|
207
219
|
'argo-workflows',
|
|
220
|
+
version=ARGO_WORKFLOWS_HELM_CHART_VERSION,
|
|
208
221
|
repo_name='argo',
|
|
209
222
|
repo_url='https://argoproj.github.io/argo-helm',
|
|
210
223
|
set=[
|
|
@@ -220,7 +233,9 @@ if "argo-workflows" in enabled_components:
|
|
|
220
233
|
'controller.resources.requests.memory=128Mi',
|
|
221
234
|
'controller.resources.requests.cpu=50m',
|
|
222
235
|
'controller.resources.limits.memory=256Mi',
|
|
223
|
-
'controller.resources.limits.cpu=100m'
|
|
236
|
+
'controller.resources.limits.cpu=100m',
|
|
237
|
+
# Image version overrides
|
|
238
|
+
'images.tag=%s' % ARGO_WORKFLOWS_IMAGE_TAG,
|
|
224
239
|
]
|
|
225
240
|
)
|
|
226
241
|
|
|
@@ -307,6 +322,7 @@ if "argo-workflows" in enabled_components:
|
|
|
307
322
|
if "argo-events" in enabled_components:
|
|
308
323
|
helm_remote(
|
|
309
324
|
'argo-events',
|
|
325
|
+
version=ARGO_EVENTS_HELM_CHART_VERSION,
|
|
310
326
|
repo_name='argo',
|
|
311
327
|
repo_url='https://argoproj.github.io/argo-helm',
|
|
312
328
|
set=[
|
|
@@ -334,6 +350,8 @@ if "argo-events" in enabled_components:
|
|
|
334
350
|
'configs.jetstream.versions[1].natsImage=nats:2.9.15',
|
|
335
351
|
'configs.jetstream.versions[1].startCommand=/nats-server',
|
|
336
352
|
'configs.jetstream.versions[1].version=2.9.15',
|
|
353
|
+
# Image version overrides
|
|
354
|
+
'global.image.tag=%s' % ARGO_EVENTS_IMAGE_TAG,
|
|
337
355
|
]
|
|
338
356
|
)
|
|
339
357
|
|
|
@@ -541,6 +559,62 @@ if "argo-events" in enabled_components:
|
|
|
541
559
|
config_resources.append('argo-events-controller-manager')
|
|
542
560
|
config_resources.append('argo-events-webhook-eventsource-svc')
|
|
543
561
|
|
|
562
|
+
#################################################
|
|
563
|
+
# JOBSET
|
|
564
|
+
#################################################
|
|
565
|
+
if "jobset" in enabled_components:
|
|
566
|
+
# Apply JobSet manifests directly from GitHub releases
|
|
567
|
+
jobset_manifest_url = "https://github.com/kubernetes-sigs/jobset/releases/download/%s/manifests.yaml" % JOBSET_VERSION
|
|
568
|
+
|
|
569
|
+
cmd = "curl -sSL %s" % (jobset_manifest_url)
|
|
570
|
+
k8s_yaml(
|
|
571
|
+
local(
|
|
572
|
+
cmd,
|
|
573
|
+
)
|
|
574
|
+
)
|
|
575
|
+
|
|
576
|
+
k8s_resource(
|
|
577
|
+
'jobset-controller-manager',
|
|
578
|
+
labels=['jobset'],
|
|
579
|
+
)
|
|
580
|
+
|
|
581
|
+
metaflow_config["METAFLOW_KUBERNETES_JOBSET_ENABLED"] = "true"
|
|
582
|
+
|
|
583
|
+
config_resources.append('jobset-controller-manager')
|
|
584
|
+
|
|
585
|
+
# ClusterRole for jobset operations
|
|
586
|
+
k8s_yaml(encode_yaml({
|
|
587
|
+
'apiVersion': 'rbac.authorization.k8s.io/v1',
|
|
588
|
+
'kind': 'ClusterRole',
|
|
589
|
+
'metadata': {
|
|
590
|
+
'name': 'jobset-full-access'
|
|
591
|
+
},
|
|
592
|
+
'rules': [{
|
|
593
|
+
'apiGroups': ['jobset.x-k8s.io'],
|
|
594
|
+
'resources': ['jobsets'],
|
|
595
|
+
'verbs': ['*']
|
|
596
|
+
}]
|
|
597
|
+
}))
|
|
598
|
+
|
|
599
|
+
# ClusterRoleBinding for default service account to access jobsets
|
|
600
|
+
k8s_yaml(encode_yaml({
|
|
601
|
+
'apiVersion': 'rbac.authorization.k8s.io/v1',
|
|
602
|
+
'kind': 'ClusterRoleBinding',
|
|
603
|
+
'metadata': {
|
|
604
|
+
'name': 'default-jobset-binding'
|
|
605
|
+
},
|
|
606
|
+
'subjects': [{
|
|
607
|
+
'kind': 'ServiceAccount',
|
|
608
|
+
'name': 'default',
|
|
609
|
+
'namespace': 'default'
|
|
610
|
+
}],
|
|
611
|
+
'roleRef': {
|
|
612
|
+
'kind': 'ClusterRole',
|
|
613
|
+
'name': 'jobset-full-access',
|
|
614
|
+
'apiGroup': 'rbac.authorization.k8s.io'
|
|
615
|
+
}
|
|
616
|
+
}))
|
|
617
|
+
|
|
544
618
|
#################################################
|
|
545
619
|
# METADATA SERVICE
|
|
546
620
|
#################################################
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ob-metaflow
|
|
3
|
-
Version: 2.18.
|
|
3
|
+
Version: 2.18.9.1
|
|
4
4
|
Summary: Metaflow: More AI and ML, Less Engineering
|
|
5
5
|
Author: Netflix, Outerbounds & the Metaflow Community
|
|
6
6
|
Author-email: help@outerbounds.co
|
|
@@ -12,7 +12,7 @@ Requires-Dist: boto3
|
|
|
12
12
|
Requires-Dist: pylint
|
|
13
13
|
Requires-Dist: kubernetes
|
|
14
14
|
Provides-Extra: stubs
|
|
15
|
-
Requires-Dist: metaflow-stubs==2.18.
|
|
15
|
+
Requires-Dist: metaflow-stubs==2.18.9.1; extra == "stubs"
|
|
16
16
|
Dynamic: author
|
|
17
17
|
Dynamic: author-email
|
|
18
18
|
Dynamic: description
|
|
@@ -86,3 +86,4 @@ We'd love to hear from you. Join our community [Slack workspace](http://slack.ou
|
|
|
86
86
|
## Contributing
|
|
87
87
|
We welcome contributions to Metaflow. Please see our [contribution guide](https://docs.metaflow.org/introduction/contributing-to-metaflow) for more details.
|
|
88
88
|
|
|
89
|
+
|
|
@@ -12,7 +12,7 @@ metaflow/events.py,sha256=ahjzkSbSnRCK9RZ-9vTfUviz_6gMvSO9DGkJ86X80-k,5300
|
|
|
12
12
|
metaflow/exception.py,sha256=_m9ZBJM0cooHRslDqfxCPQmkChqaTh6fGxp7HvISnYI,5161
|
|
13
13
|
metaflow/flowspec.py,sha256=9wsO2_QoO_VHKusKdpslfbwQREOwf0fAzF-DSEA0iZ8,41968
|
|
14
14
|
metaflow/graph.py,sha256=UOeClj-JeORRlZWOQMI1CirkrCpTvVWvRcSwODCajMg,19263
|
|
15
|
-
metaflow/includefile.py,sha256=
|
|
15
|
+
metaflow/includefile.py,sha256=NXERo_halboBCjvnS5iCjnBMyCMlQMnT2mRe6kxl2xU,21978
|
|
16
16
|
metaflow/integrations.py,sha256=LlsaoePRg03DjENnmLxZDYto3NwWc9z_PtU6nJxLldg,1480
|
|
17
17
|
metaflow/lint.py,sha256=A2NdUq_MnQal_RUCMC8ZOSR0VYZGyi2mSgwPQB0UzQo,15343
|
|
18
18
|
metaflow/meta_files.py,sha256=vlgJHI8GJUKzXoxdrVoH8yyCF5bhFgwYemUgnyd1wgM,342
|
|
@@ -36,7 +36,7 @@ metaflow/tuple_util.py,sha256=_G5YIEhuugwJ_f6rrZoelMFak3DqAR2tt_5CapS1XTY,830
|
|
|
36
36
|
metaflow/unbounded_foreach.py,sha256=p184WMbrMJ3xKYHwewj27ZhRUsSj_kw1jlye5gA9xJk,387
|
|
37
37
|
metaflow/util.py,sha256=g2SOU_CRzJLgDM_UGF9QDMANMAIHAsDRXE6S76_YzsY,14594
|
|
38
38
|
metaflow/vendor.py,sha256=A82CGHfStZGDP5pQ5XzRjFkbN1ZC-vFmghXIrzMDDNg,5868
|
|
39
|
-
metaflow/version.py,sha256=
|
|
39
|
+
metaflow/version.py,sha256=VXnTFv7difhCqOiu2Rrnc4LOaj3sTVQlAoY6KrPgrWQ,30
|
|
40
40
|
metaflow/_vendor/__init__.py,sha256=y_CiwUD3l4eAKvTVDZeqgVujMy31cAM1qjAB-HfI-9s,353
|
|
41
41
|
metaflow/_vendor/typing_extensions.py,sha256=q9zxWa6p6CzF1zZvSkygSlklduHf_b3K7MCxGz7MJRc,134519
|
|
42
42
|
metaflow/_vendor/zipp.py,sha256=ajztOH-9I7KA_4wqDYygtHa6xUBVZgFpmZ8FE74HHHI,8425
|
|
@@ -198,7 +198,7 @@ metaflow/packaging_sys/distribution_support.py,sha256=VvikZBCH8N1TBZZ2Twk8jH1brm
|
|
|
198
198
|
metaflow/packaging_sys/tar_backend.py,sha256=nFWuXiwYjWQkFdV2KaZ6gazNVvtY84Eqsh9txhU3pNY,3010
|
|
199
199
|
metaflow/packaging_sys/utils.py,sha256=x8SVglJvY5mIAilS7MqZi2PpMr6IEyi6RCg3l8hN3G0,2972
|
|
200
200
|
metaflow/packaging_sys/v1.py,sha256=kbNK0-pDAv3QJPZ789TE0UirGXcHbXkVQiyNT815H7A,20631
|
|
201
|
-
metaflow/plugins/__init__.py,sha256=
|
|
201
|
+
metaflow/plugins/__init__.py,sha256=XBocLBSWEPAeeakhTb6HGuocykkVukmnUuQgg-gGWEk,8662
|
|
202
202
|
metaflow/plugins/catch_decorator.py,sha256=vorlDA6MLB2yHSsEuBoNzAZbrJ6Vknj1qJO9vey2_AI,4523
|
|
203
203
|
metaflow/plugins/debug_logger.py,sha256=mcF5HYzJ0NQmqCMjyVUk3iAP-heroHRIiVWQC6Ha2-I,879
|
|
204
204
|
metaflow/plugins/debug_monitor.py,sha256=Md5X_sDOSssN9pt2D8YcaIjTK5JaQD55UAYTcF6xYF0,1099
|
|
@@ -207,6 +207,7 @@ metaflow/plugins/events_decorator.py,sha256=FULT_Iuue9KsLyNhHOL46uw8cdT-Viq8rmcg
|
|
|
207
207
|
metaflow/plugins/logs_cli.py,sha256=77W5UNagU2mOKSMMvrQxQmBLRzvmjK-c8dWxd-Ygbqs,11410
|
|
208
208
|
metaflow/plugins/package_cli.py,sha256=GOxKJs9Wt0x9VtcTJ2EG_wj6pWnlS0XBFAyHpCzzuvs,2000
|
|
209
209
|
metaflow/plugins/parallel_decorator.py,sha256=wtR_3eRIP3eV7fBIm15oouRjmHBFZ9OklxdaNvttLEQ,9702
|
|
210
|
+
metaflow/plugins/parsers.py,sha256=y92kMEFmbBvzU7EjZSFgml3S6EOLwY5Qmb4Jwk7leUw,249
|
|
210
211
|
metaflow/plugins/project_decorator.py,sha256=uhwsguEj7OM_E2OnY1ap3MoGocQHeywuJSa-qPuWn-U,7592
|
|
211
212
|
metaflow/plugins/resources_decorator.py,sha256=AtoOwg4mHYHYthg-CAfbfam-QiT0ViuDLDoukoDvF6Q,1347
|
|
212
213
|
metaflow/plugins/retry_decorator.py,sha256=tz_2Tq6GLg3vjDBZp0KKVTk3ADlCvqaWTSf7blmFdUw,1548
|
|
@@ -306,8 +307,8 @@ metaflow/plugins/datastores/s3_storage.py,sha256=CZdNqaKtxDXQbEg2YHyphph3hWcLIE5
|
|
|
306
307
|
metaflow/plugins/datatools/__init__.py,sha256=ge4L16OBQLy2J_MMvoHg3lMfdm-MluQgRWoyZ5GCRnk,1267
|
|
307
308
|
metaflow/plugins/datatools/local.py,sha256=FJvMOBcjdyhSPHmdLocBSiIT0rmKkKBmsaclxH75x08,4233
|
|
308
309
|
metaflow/plugins/datatools/s3/__init__.py,sha256=14tr9fPjN3ULW5IOfKHeG7Uhjmgm7LMtQHfz1SFv-h8,248
|
|
309
|
-
metaflow/plugins/datatools/s3/s3.py,sha256=
|
|
310
|
-
metaflow/plugins/datatools/s3/s3op.py,sha256=
|
|
310
|
+
metaflow/plugins/datatools/s3/s3.py,sha256=b07QwYvfKvR1k0eZ_b5Hk4XQnQs3ORk6b0nvCwfZL8w,67324
|
|
311
|
+
metaflow/plugins/datatools/s3/s3op.py,sha256=3GOtIV08gmAo7XE6NNnsSUxTTRIsvgPJn7CC0U5E7XY,48129
|
|
311
312
|
metaflow/plugins/datatools/s3/s3tail.py,sha256=boQjQGQMI-bvTqcMP2y7uSlSYLcvWOy7J3ZUaF78NAA,2597
|
|
312
313
|
metaflow/plugins/datatools/s3/s3util.py,sha256=FgRgaVmEq7-i2dV7q8XK5w5PfFt-xJjZa8WrK8IJfdI,3769
|
|
313
314
|
metaflow/plugins/env_escape/__init__.py,sha256=tGNUZnmPvk52eNs__VK443b3CZ7ogEFTT-s9_n_HF8Q,8837
|
|
@@ -428,12 +429,12 @@ metaflow/user_decorators/mutable_flow.py,sha256=EywKTN3cnXPQF_s62wQaC4a4aH14j8oe
|
|
|
428
429
|
metaflow/user_decorators/mutable_step.py,sha256=-BY0UDXf_RCAEnC5JlLzEXGdiw1KD9oSrSxS_SWaB9Y,16791
|
|
429
430
|
metaflow/user_decorators/user_flow_decorator.py,sha256=2yDwZq9QGv9W-7kEuKwa8o4ZkTvuHJ5ESz7VVrGViAI,9890
|
|
430
431
|
metaflow/user_decorators/user_step_decorator.py,sha256=4558NR8RJtN22OyTwCXO80bAMhMTaRGMoX12b1GMcPc,27232
|
|
431
|
-
ob_metaflow-2.18.
|
|
432
|
-
ob_metaflow-2.18.
|
|
433
|
-
ob_metaflow-2.18.
|
|
434
|
-
ob_metaflow-2.18.
|
|
435
|
-
ob_metaflow-2.18.
|
|
436
|
-
ob_metaflow-2.18.
|
|
437
|
-
ob_metaflow-2.18.
|
|
438
|
-
ob_metaflow-2.18.
|
|
439
|
-
ob_metaflow-2.18.
|
|
432
|
+
ob_metaflow-2.18.9.1.data/data/share/metaflow/devtools/Makefile,sha256=TT4TCq8ALSfqYyGqDPocN5oPcZe2FqoCZxmGO1LmyCc,13760
|
|
433
|
+
ob_metaflow-2.18.9.1.data/data/share/metaflow/devtools/Tiltfile,sha256=8-VMYGdEBFp73Ur5BzQn7TxxkMBMhwJszsVhR_ftgBU,23892
|
|
434
|
+
ob_metaflow-2.18.9.1.data/data/share/metaflow/devtools/pick_services.sh,sha256=PGjQeDIigFHeoQ0asmYNdYDPIOdeYy1UYvkw2wdN4zg,2209
|
|
435
|
+
ob_metaflow-2.18.9.1.dist-info/licenses/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
|
|
436
|
+
ob_metaflow-2.18.9.1.dist-info/METADATA,sha256=nlw2RXeC4Si_MUdE4HsupPx9ujhkoFYlyobwPy-jt8M,5936
|
|
437
|
+
ob_metaflow-2.18.9.1.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
|
|
438
|
+
ob_metaflow-2.18.9.1.dist-info/entry_points.txt,sha256=RvEq8VFlgGe_FfqGOZi0D7ze1hLD0pAtXeNyGfzc_Yc,103
|
|
439
|
+
ob_metaflow-2.18.9.1.dist-info/top_level.txt,sha256=v1pDHoWaSaKeuc5fKTRSfsXCKSdW1zvNVmvA-i0if3o,9
|
|
440
|
+
ob_metaflow-2.18.9.1.dist-info/RECORD,,
|
{ob_metaflow-2.18.7.5.data → ob_metaflow-2.18.9.1.data}/data/share/metaflow/devtools/Makefile
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|