Skip to content

Commit 6fc3c95

Browse files
committed
avoid deleting a file by copying it to itself
1 parent 35c5970 commit 6fc3c95

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

bioimageio/spec/_internal/io_utils.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,16 @@ def write_content_to_zip(
287287
else:
288288
reader = get_reader(file)
289289

290+
if (
291+
isinstance(reader.original_root, ZipFile)
292+
and reader.original_root.filename == zip.filename
293+
and reader.original_file_name == arc_name
294+
):
295+
logger.debug(
296+
f"Not copying {reader.original_root}/{reader.original_file_name} to itself."
297+
)
298+
continue
299+
290300
with zip.open(arc_name, "w") as dest:
291301
shutil.copyfileobj(reader, dest, 1024 * 8)
292302

bioimageio/spec/_package.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,13 @@ def save_bioimageio_package_as_folder(
188188
for name, src in package_content.items():
189189
if isinstance(src, collections.abc.Mapping):
190190
write_yaml(src, output_path / name)
191+
elif (
192+
isinstance(src.original_root, Path)
193+
and src.original_root / src.original_file_name == output_path / name
194+
):
195+
logger.debug(
196+
f"Not copying {src.original_root / src.original_file_name} to itself."
197+
)
191198
else:
192199
with (output_path / name).open("wb") as dest:
193200
_ = shutil.copyfileobj(src, dest)

0 commit comments

Comments
 (0)