metaflow 2.15.9__py2.py3-none-any.whl → 2.15.11__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/includefile.py +2 -2
- metaflow/plugins/argo/argo_workflows.py +2 -2
- metaflow/plugins/argo/argo_workflows_cli.py +1 -0
- metaflow/plugins/datastores/gs_storage.py +3 -1
- metaflow/plugins/datatools/s3/s3.py +8 -1
- metaflow/plugins/datatools/s3/s3op.py +17 -0
- metaflow/plugins/pypi/conda_decorator.py +2 -1
- metaflow/plugins/pypi/conda_environment.py +1 -0
- metaflow/version.py +1 -1
- {metaflow-2.15.9.dist-info → metaflow-2.15.11.dist-info}/METADATA +2 -2
- {metaflow-2.15.9.dist-info → metaflow-2.15.11.dist-info}/RECORD +18 -18
- {metaflow-2.15.9.dist-info → metaflow-2.15.11.dist-info}/WHEEL +1 -1
- {metaflow-2.15.9.data → metaflow-2.15.11.data}/data/share/metaflow/devtools/Makefile +0 -0
- {metaflow-2.15.9.data → metaflow-2.15.11.data}/data/share/metaflow/devtools/Tiltfile +0 -0
- {metaflow-2.15.9.data → metaflow-2.15.11.data}/data/share/metaflow/devtools/pick_services.sh +0 -0
- {metaflow-2.15.9.dist-info → metaflow-2.15.11.dist-info}/entry_points.txt +0 -0
- {metaflow-2.15.9.dist-info → metaflow-2.15.11.dist-info}/licenses/LICENSE +0 -0
- {metaflow-2.15.9.dist-info → metaflow-2.15.11.dist-info}/top_level.txt +0 -0
metaflow/includefile.py
CHANGED
@@ -459,7 +459,7 @@ class UploaderV2:
|
|
459
459
|
@classmethod
|
460
460
|
def encode_url(cls, url_type, url, **kwargs):
|
461
461
|
return_value = {
|
462
|
-
"note": "Internal representation of IncludeFile
|
462
|
+
"note": "Internal representation of IncludeFile",
|
463
463
|
"type": cls.file_type,
|
464
464
|
"sub-type": url_type,
|
465
465
|
"url": url,
|
@@ -472,7 +472,7 @@ class UploaderV2:
|
|
472
472
|
r = UploaderV1.store(flow_name, path, is_text, encoding, handler, echo)
|
473
473
|
|
474
474
|
# In V2, we store size for faster access
|
475
|
-
r["note"] = "Internal representation of IncludeFile
|
475
|
+
r["note"] = "Internal representation of IncludeFile"
|
476
476
|
r["type"] = cls.file_type
|
477
477
|
r["sub-type"] = "uploaded"
|
478
478
|
r["size"] = os.stat(path).st_size
|
@@ -2732,7 +2732,7 @@ class ArgoWorkflows(object):
|
|
2732
2732
|
"type": "section",
|
2733
2733
|
"text": {
|
2734
2734
|
"type": "mrkdwn",
|
2735
|
-
"text": "
|
2735
|
+
"text": "Environment details"
|
2736
2736
|
},
|
2737
2737
|
"fields": [
|
2738
2738
|
{
|
@@ -2750,7 +2750,7 @@ class ArgoWorkflows(object):
|
|
2750
2750
|
"type": "section",
|
2751
2751
|
"text": {
|
2752
2752
|
"type": "mrkdwn",
|
2753
|
-
"text": "
|
2753
|
+
"text": "Environment details"
|
2754
2754
|
}
|
2755
2755
|
}
|
2756
2756
|
|
@@ -40,6 +40,7 @@ unsupported_decorators = {
|
|
40
40
|
"snowpark": "Step *%s* is marked for execution on Snowpark with Argo Workflows which isn't currently supported.",
|
41
41
|
"slurm": "Step *%s* is marked for execution on Slurm with Argo Workflows which isn't currently supported.",
|
42
42
|
"nvidia": "Step *%s* is marked for execution on Nvidia with Argo Workflows which isn't currently supported.",
|
43
|
+
"nvct": "Step *%s* is marked for execution on Nvct with Argo Workflows which isn't currently supported.",
|
43
44
|
}
|
44
45
|
|
45
46
|
|
@@ -119,7 +119,9 @@ class _GSRootClient(object):
|
|
119
119
|
blob.metadata = {"metaflow-user-attributes": json.dumps(metadata)}
|
120
120
|
from google.cloud.storage.retry import DEFAULT_RETRY
|
121
121
|
|
122
|
-
blob.upload_from_filename(
|
122
|
+
blob.upload_from_filename(
|
123
|
+
tmpfile, retry=DEFAULT_RETRY, timeout=(14400, 60)
|
124
|
+
) # generous timeout for massive uploads. Use the same values as for Azure (connection_timeout, read_timeout)
|
123
125
|
except Exception as e:
|
124
126
|
process_gs_exception(e)
|
125
127
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import errno
|
1
2
|
import json
|
2
3
|
import os
|
3
4
|
import re
|
@@ -137,6 +138,10 @@ class MetaflowS3InvalidRange(MetaflowException):
|
|
137
138
|
headline = "S3 invalid range"
|
138
139
|
|
139
140
|
|
141
|
+
class MetaflowS3InsufficientDiskSpace(MetaflowException):
|
142
|
+
headline = "Insufficient disk space"
|
143
|
+
|
144
|
+
|
140
145
|
class S3Object(object):
|
141
146
|
"""
|
142
147
|
This object represents a path or an object in S3,
|
@@ -1377,8 +1382,10 @@ class S3(object):
|
|
1377
1382
|
elif error_code == "NoSuchBucket":
|
1378
1383
|
raise MetaflowS3URLException("Specified S3 bucket doesn't exist.")
|
1379
1384
|
error = str(err)
|
1385
|
+
except OSError as e:
|
1386
|
+
if e.errno == errno.ENOSPC:
|
1387
|
+
raise MetaflowS3InsufficientDiskSpace(str(e))
|
1380
1388
|
except Exception as ex:
|
1381
|
-
# TODO specific error message for out of disk space
|
1382
1389
|
error = str(ex)
|
1383
1390
|
if tmp:
|
1384
1391
|
os.unlink(tmp.name)
|
@@ -1,5 +1,6 @@
|
|
1
1
|
from __future__ import print_function
|
2
2
|
|
3
|
+
import errno
|
3
4
|
import json
|
4
5
|
import time
|
5
6
|
import math
|
@@ -108,6 +109,7 @@ ERROR_VERIFY_FAILED = 9
|
|
108
109
|
ERROR_LOCAL_FILE_NOT_FOUND = 10
|
109
110
|
ERROR_INVALID_RANGE = 11
|
110
111
|
ERROR_TRANSIENT = 12
|
112
|
+
ERROR_OUT_OF_DISK_SPACE = 13
|
111
113
|
|
112
114
|
|
113
115
|
def format_result_line(idx, prefix, url="", local=""):
|
@@ -277,6 +279,17 @@ def worker(result_file_name, queue, mode, s3config):
|
|
277
279
|
err = convert_to_client_error(e)
|
278
280
|
handle_client_error(err, idx, result_file)
|
279
281
|
continue
|
282
|
+
except OSError as e:
|
283
|
+
tmp.close()
|
284
|
+
os.unlink(tmp.name)
|
285
|
+
if e.errno == errno.ENOSPC:
|
286
|
+
result_file.write(
|
287
|
+
"%d %d\n" % (idx, -ERROR_OUT_OF_DISK_SPACE)
|
288
|
+
)
|
289
|
+
else:
|
290
|
+
result_file.write("%d %d\n" % (idx, -ERROR_TRANSIENT))
|
291
|
+
result_file.flush()
|
292
|
+
continue
|
280
293
|
except (SSLError, Exception) as e:
|
281
294
|
tmp.close()
|
282
295
|
os.unlink(tmp.name)
|
@@ -643,6 +656,8 @@ def exit(exit_code, url):
|
|
643
656
|
msg = "Local file not found: %s" % url
|
644
657
|
elif exit_code == ERROR_TRANSIENT:
|
645
658
|
msg = "Transient error for url: %s" % url
|
659
|
+
elif exit_code == ERROR_OUT_OF_DISK_SPACE:
|
660
|
+
msg = "Out of disk space when downloading URL: %s" % url
|
646
661
|
else:
|
647
662
|
msg = "Unknown error"
|
648
663
|
print("s3op failed:\n%s" % msg, file=sys.stderr)
|
@@ -1173,6 +1188,8 @@ def get(
|
|
1173
1188
|
)
|
1174
1189
|
if verify:
|
1175
1190
|
verify_info.append((url, sz))
|
1191
|
+
elif sz == -ERROR_OUT_OF_DISK_SPACE:
|
1192
|
+
exit(ERROR_OUT_OF_DISK_SPACE, url)
|
1176
1193
|
elif sz == -ERROR_URL_ACCESS_DENIED:
|
1177
1194
|
denied_url = url
|
1178
1195
|
break
|
@@ -227,7 +227,8 @@ class CondaStepDecorator(StepDecorator):
|
|
227
227
|
self.interpreter = (
|
228
228
|
self.environment.interpreter(self.step)
|
229
229
|
if not any(
|
230
|
-
decorator.name
|
230
|
+
decorator.name
|
231
|
+
in ["batch", "kubernetes", "nvidia", "snowpark", "slurm", "nvct"]
|
231
232
|
for decorator in next(
|
232
233
|
step for step in self.flow if step.name == self.step
|
233
234
|
).decorators
|
metaflow/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
metaflow_version = "2.15.
|
1
|
+
metaflow_version = "2.15.11"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: metaflow
|
3
|
-
Version: 2.15.
|
3
|
+
Version: 2.15.11
|
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.11; extra == "stubs"
|
30
30
|
Dynamic: author
|
31
31
|
Dynamic: author-email
|
32
32
|
Dynamic: classifier
|
@@ -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=GgbTeUBtG3AmZwIF-prRFMsZqFYGVysd5xBS9IPIPBs,35953
|
14
14
|
metaflow/graph.py,sha256=cdpnWr85aEj_rRn-7EjbndWjr_i8Dt3P7-oPUW0NNpI,12393
|
15
|
-
metaflow/includefile.py,sha256=
|
15
|
+
metaflow/includefile.py,sha256=RtISGl1V48qjkJBakUZ9yPpHV102h7pOIFiKP8PLHpc,20927
|
16
16
|
metaflow/info_file.py,sha256=wtf2_F0M6dgiUu74AFImM8lfy5RrUw5Yj7Rgs2swKRY,686
|
17
17
|
metaflow/integrations.py,sha256=LlsaoePRg03DjENnmLxZDYto3NwWc9z_PtU6nJxLldg,1480
|
18
18
|
metaflow/lint.py,sha256=x4p6tnRzYqNNniCGXyrUW0WuYfTUgnaOMRivxvnxask,11661
|
@@ -37,7 +37,7 @@ metaflow/tuple_util.py,sha256=_G5YIEhuugwJ_f6rrZoelMFak3DqAR2tt_5CapS1XTY,830
|
|
37
37
|
metaflow/unbounded_foreach.py,sha256=p184WMbrMJ3xKYHwewj27ZhRUsSj_kw1jlye5gA9xJk,387
|
38
38
|
metaflow/util.py,sha256=mJBkV5tShIyCsLDeM1zygQGeciQVMrVPm_qI8Oi33G0,14656
|
39
39
|
metaflow/vendor.py,sha256=LZgXrh7ZSDmD32D1T5jj3OKKpXIqqxKzdMAOc5V0SD4,5162
|
40
|
-
metaflow/version.py,sha256=
|
40
|
+
metaflow/version.py,sha256=V3MCZGYThdp_pU62PrdVdzGOfAFGKJNAcgmFrG7nuX0,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
|
@@ -210,8 +210,8 @@ metaflow/plugins/airflow/sensors/s3_sensor.py,sha256=iDReG-7FKnumrtQg-HY6cCUAAqN
|
|
210
210
|
metaflow/plugins/argo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
211
211
|
metaflow/plugins/argo/argo_client.py,sha256=A1kI9rjVjCadDsBscZ2Wk8xRBI6GNgWV6SU7TyrdfrI,16530
|
212
212
|
metaflow/plugins/argo/argo_events.py,sha256=_C1KWztVqgi3zuH57pInaE9OzABc2NnncC-zdwOMZ-w,5909
|
213
|
-
metaflow/plugins/argo/argo_workflows.py,sha256=
|
214
|
-
metaflow/plugins/argo/argo_workflows_cli.py,sha256=
|
213
|
+
metaflow/plugins/argo/argo_workflows.py,sha256=oX-e4o_CxTQP5DJ7zMQwckcobXZJz6hPxLs3fsHSnm8,186544
|
214
|
+
metaflow/plugins/argo/argo_workflows_cli.py,sha256=X_GfJpc7jfP7DGuttl7U952767eBF6Ut45aWgoJzHVI,38375
|
215
215
|
metaflow/plugins/argo/argo_workflows_decorator.py,sha256=ogCSBmwsC2C3eusydrgjuAJd4qK18f1sI4jJwA4Fd-o,7800
|
216
216
|
metaflow/plugins/argo/argo_workflows_deployer.py,sha256=6kHxEnYXJwzNCM9swI8-0AckxtPWqwhZLerYkX8fxUM,4444
|
217
217
|
metaflow/plugins/argo/argo_workflows_deployer_objects.py,sha256=lRRHUcpiyJZFltthxZoIp7aJWwy7pcdhaRm0etKN9es,14182
|
@@ -276,14 +276,14 @@ metaflow/plugins/cards/card_modules/chevron/tokenizer.py,sha256=lQU9OELUE9a5Xu4s
|
|
276
276
|
metaflow/plugins/cards/card_viewer/viewer.html,sha256=qZJGzhZhQ1gugsknRP7zkAPPfUAtvemK1UKqXoGff5M,11593
|
277
277
|
metaflow/plugins/datastores/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
278
278
|
metaflow/plugins/datastores/azure_storage.py,sha256=QvIUQGOZF1oKeRJXbl3RsV1MnO3OMfLzheoo0UNWn7E,16670
|
279
|
-
metaflow/plugins/datastores/gs_storage.py,sha256=
|
279
|
+
metaflow/plugins/datastores/gs_storage.py,sha256=YEI62gElaJvACupFnY6ZEXuQLFWndi96upWFbnmc0VU,9782
|
280
280
|
metaflow/plugins/datastores/local_storage.py,sha256=igrBDphhyu7EFIUj3BWcO7beiZbNnJLq--lF45UYSyI,4750
|
281
281
|
metaflow/plugins/datastores/s3_storage.py,sha256=CZdNqaKtxDXQbEg2YHyphph3hWcLIE50puenm0WGVpk,5473
|
282
282
|
metaflow/plugins/datatools/__init__.py,sha256=ge4L16OBQLy2J_MMvoHg3lMfdm-MluQgRWoyZ5GCRnk,1267
|
283
283
|
metaflow/plugins/datatools/local.py,sha256=FJvMOBcjdyhSPHmdLocBSiIT0rmKkKBmsaclxH75x08,4233
|
284
284
|
metaflow/plugins/datatools/s3/__init__.py,sha256=14tr9fPjN3ULW5IOfKHeG7Uhjmgm7LMtQHfz1SFv-h8,248
|
285
|
-
metaflow/plugins/datatools/s3/s3.py,sha256=
|
286
|
-
metaflow/plugins/datatools/s3/s3op.py,sha256=
|
285
|
+
metaflow/plugins/datatools/s3/s3.py,sha256=3xrWD6pXoVRpuAQHyLGVya79UIE0S8AqAqe2prg4yMw,67182
|
286
|
+
metaflow/plugins/datatools/s3/s3op.py,sha256=20XEOCCK_nAVm92ZOjLPTzLnTs9xrIX0Gj-ELxkuNPY,47742
|
287
287
|
metaflow/plugins/datatools/s3/s3tail.py,sha256=boQjQGQMI-bvTqcMP2y7uSlSYLcvWOy7J3ZUaF78NAA,2597
|
288
288
|
metaflow/plugins/datatools/s3/s3util.py,sha256=FgRgaVmEq7-i2dV7q8XK5w5PfFt-xJjZa8WrK8IJfdI,3769
|
289
289
|
metaflow/plugins/env_escape/__init__.py,sha256=tGNUZnmPvk52eNs__VK443b3CZ7ogEFTT-s9_n_HF8Q,8837
|
@@ -330,8 +330,8 @@ metaflow/plugins/metadata_providers/local.py,sha256=Z0CXaGZJbAkj4II3WspJi-uCCtSh
|
|
330
330
|
metaflow/plugins/metadata_providers/service.py,sha256=9j0db_EOGFdb49YTgr9q4EWqVAm1YUaW-Baj5gyRqIo,22809
|
331
331
|
metaflow/plugins/pypi/__init__.py,sha256=0YFZpXvX7HCkyBFglatual7XGifdA1RwC3U4kcizyak,1037
|
332
332
|
metaflow/plugins/pypi/bootstrap.py,sha256=SNONquX6QnTbu7htmhaQeVeZ2ofaFaUCDScRIrTTERc,14718
|
333
|
-
metaflow/plugins/pypi/conda_decorator.py,sha256=
|
334
|
-
metaflow/plugins/pypi/conda_environment.py,sha256=
|
333
|
+
metaflow/plugins/pypi/conda_decorator.py,sha256=N0HGiaS1mRsa6qT4eYzu2C3DHtas22QIXowW4vEl44M,15961
|
334
|
+
metaflow/plugins/pypi/conda_environment.py,sha256=JuTfGfUML_AoeW4ASGkqPbm8OqtWsbtRwDNwrRTRqS4,22274
|
335
335
|
metaflow/plugins/pypi/micromamba.py,sha256=LLJ2dGGOEyld07W8iI6dtE01h2Y1PQnBhU-dMBssZ3c,16502
|
336
336
|
metaflow/plugins/pypi/parsers.py,sha256=gpOOG2Ph95wI73MWCAi7XjpK0gYhv5k5YIGBs73QPuE,8556
|
337
337
|
metaflow/plugins/pypi/pip.py,sha256=H0cIy8odpZ-JTn4SwF0b74tuC3uRU7X8TdAQJ2kODG8,13971
|
@@ -393,12 +393,12 @@ metaflow/user_configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
393
393
|
metaflow/user_configs/config_decorators.py,sha256=qCKVAvd0NKgaCxQ2OThes5-DYHXq6A1HqURubYNeFdw,20481
|
394
394
|
metaflow/user_configs/config_options.py,sha256=m6jccSpzI4qUJ7vyYkYBIf8G3V0Caunxg_k7zg4Zlqg,21067
|
395
395
|
metaflow/user_configs/config_parameters.py,sha256=oeJGVKu1ao_YQX6Lg6P2FEv5k5-_F4sARLlVpTW9ezM,15502
|
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.
|
396
|
+
metaflow-2.15.11.data/data/share/metaflow/devtools/Makefile,sha256=5n89OGIC_kE4wxtEI66VCucN-b-1w5bqvGeZYmeRGz8,13737
|
397
|
+
metaflow-2.15.11.data/data/share/metaflow/devtools/Tiltfile,sha256=P5_rn_F3xYLN1_cEAQ9mNeS22HG2rb8beKIz2RIK6fU,20634
|
398
|
+
metaflow-2.15.11.data/data/share/metaflow/devtools/pick_services.sh,sha256=DCnrMXwtApfx3B4S-YiZESMyAFHbXa3VuNL0MxPLyiE,2196
|
399
|
+
metaflow-2.15.11.dist-info/licenses/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
|
400
|
+
metaflow-2.15.11.dist-info/METADATA,sha256=aFy969IqHDb3_SQJx_gXBInl3KI_JmZn_kwzTAEaVpw,6742
|
401
|
+
metaflow-2.15.11.dist-info/WHEEL,sha256=oSJJyWjO7Z2XSScFQUpXG1HL-N0sFMqqeKVVbZTPkWc,109
|
402
|
+
metaflow-2.15.11.dist-info/entry_points.txt,sha256=RvEq8VFlgGe_FfqGOZi0D7ze1hLD0pAtXeNyGfzc_Yc,103
|
403
|
+
metaflow-2.15.11.dist-info/top_level.txt,sha256=v1pDHoWaSaKeuc5fKTRSfsXCKSdW1zvNVmvA-i0if3o,9
|
404
|
+
metaflow-2.15.11.dist-info/RECORD,,
|
File without changes
|
File without changes
|
{metaflow-2.15.9.data → metaflow-2.15.11.data}/data/share/metaflow/devtools/pick_services.sh
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|