Skip to content

Commit 67317fe

Browse files
committed
Version 2.5.1: added download of remote assets, http* only
1 parent d86cc65 commit 67317fe

File tree

2 files changed

+29
-10
lines changed

2 files changed

+29
-10
lines changed

cometx/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@
1212
# the express permission of Comet ML Inc.
1313
# *******************************************************
1414

15-
version_info = (2, 5, 0)
15+
version_info = (2, 5, 1)
1616
__version__ = ".".join(map(str, version_info))

cometx/framework/comet/download_manager.py

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import logging
2121
import os
2222
import re
23+
import urllib
2324
import zipfile
2425
from concurrent.futures import ThreadPoolExecutor
2526
from typing import Any, List, Optional
@@ -1167,6 +1168,14 @@ def download_output(self, experiment):
11671168
with open(filepath, "w") as f:
11681169
f.write(output)
11691170

1171+
def submit_task_direct(self, task):
1172+
if self.queue is None:
1173+
# Do it now:
1174+
task()
1175+
else:
1176+
# add to queue
1177+
self.queue.submit(task)
1178+
11701179
def submit_task(self, file_path, experiment, method_name, args, kwargs):
11711180
def task():
11721181
method = getattr(experiment, method_name)
@@ -1175,12 +1184,7 @@ def task():
11751184
with open(file_path, "wb+") as f:
11761185
f.write(results)
11771186

1178-
if self.queue is None:
1179-
# Do it now:
1180-
task()
1181-
else:
1182-
# add to queue
1183-
self.queue.submit(task)
1187+
self.submit_task_direct(task)
11841188

11851189
def end(self):
11861190
if self.queue is not None:
@@ -1241,6 +1245,12 @@ def download_assets(self, experiment):
12411245
self.summary["assets"] += 1
12421246
path, filename = os.path.split(file_path)
12431247
os.makedirs(path, exist_ok=True)
1248+
1249+
if asset["remote"]:
1250+
self.submit_task_direct(
1251+
lambda: self.download_asset(experiment, asset["fileName"])
1252+
)
1253+
else:
12441254
self.submit_task(
12451255
file_path, experiment, "get_asset", [asset["assetId"]], {}
12461256
)
@@ -1275,9 +1285,18 @@ def download_asset(self, experiment, asset_filename):
12751285
self.summary["assets"] += 1
12761286
path, filename = os.path.split(file_path)
12771287
os.makedirs(path, exist_ok=True)
1278-
raw = experiment.get_asset(asset["assetId"])
1279-
with open(file_path, "wb+") as f:
1280-
f.write(raw)
1288+
1289+
if asset["remote"]:
1290+
if asset["link"].startswith("http"):
1291+
urllib.request.urlretrieve(asset["link"], file_path)
1292+
else:
1293+
print(
1294+
f"I don't know how to download {asset['link']} remote asset; skipping"
1295+
)
1296+
else:
1297+
raw = experiment.get_asset(asset["assetId"])
1298+
with open(file_path, "wb+") as f:
1299+
f.write(raw)
12811300

12821301
def download_experiment(self, experiment, top_level=True):
12831302
# type: (APIExperiment, Optional[bool]) -> None

0 commit comments

Comments
 (0)