Skip to content

Commit 98b53a9

Browse files
author
Douglas Blank
committed
Fix missing files error
1 parent ac3a6b9 commit 98b53a9

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

cometx/cli/copy.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
from rich.table import Table
100100

101101
from ..api import API
102+
from ..framework.comet.download_manager import sanitize_filename
102103
from ..utils import remove_extra_slashes
103104
from .copy_utils import upload_single_offline_experiment
104105

@@ -544,6 +545,7 @@ def __init__(self, max_concurrent_uploads=None, debug=False, path=None):
544545
self.progress_ui = ProgressUI(
545546
quiet=debug, max_workers=self.max_concurrent_uploads
546547
) # Show UI by default, hide when debug=True
548+
self.missing_files_count = 0
547549

548550
# Register signal handler for cursor reset on interruption
549551
if not debug: # Only register signal handler when not in debug mode
@@ -1043,7 +1045,12 @@ def copy_experiment_to(
10431045
experiment = self.create_experiment(workspace_dst, project_dst)
10441046
# copy experiment_folder stuff to experiment
10451047
# copy all resources to existing or new experiment
1048+
self.missing_files_count = 0
10461049
self.log_all(experiment, experiment_folder)
1050+
if self.missing_files_count > 0:
1051+
print(
1052+
f"WARNING: {self.missing_files_count} asset file(s) were missing and could not be copied"
1053+
)
10471054
experiment.end()
10481055

10491056
archive_path = os.path.join(
@@ -1200,16 +1207,14 @@ def _log_asset(
12001207
old_asset_id = assets_metadata[log_filename].get("assetId")
12011208
if asset_type in self.ignore:
12021209
return
1203-
if log_filename.startswith("/"):
1204-
filename = os.path.join(path, asset_type, log_filename[1:])
1205-
else:
1206-
filename = os.path.join(path, asset_type, log_filename)
1207-
1208-
filename = filename.replace(":", "-")
1210+
sanitized_filename = sanitize_filename(log_filename)
1211+
filename = os.path.join(path, asset_type, sanitized_filename)
12091212

12101213
if not os.path.isfile(filename):
1211-
with experiment.context_manager("ignore"):
1212-
print("Missing file %r: unable to copy" % filename)
1214+
self.missing_files_count += 1
1215+
if self.debug:
1216+
with experiment.context_manager("ignore"):
1217+
print("Missing file %r: unable to copy" % filename)
12131218
return
12141219

12151220
metadata = assets_metadata[log_filename].get("metadata")

cometx/framework/comet/download_manager.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1179,10 +1179,17 @@ def submit_task_direct(self, task):
11791179
def submit_task(self, file_path, experiment, method_name, args, kwargs):
11801180
def task():
11811181
method = getattr(experiment, method_name)
1182-
results = method(*args, **kwargs)
1183-
if results:
1184-
with open(file_path, "wb+") as f:
1185-
f.write(results)
1182+
try:
1183+
results = method(*args, **kwargs)
1184+
if results:
1185+
with open(file_path, "wb+") as f:
1186+
f.write(results)
1187+
else:
1188+
print(
1189+
f"WARNING: No data returned for {file_path}; skipping download"
1190+
)
1191+
except Exception as exc:
1192+
print(f"WARNING: Failed to download {file_path}: {exc}")
11861193

11871194
self.submit_task_direct(task)
11881195

0 commit comments

Comments
 (0)