Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 19 additions & 2 deletions dandi/organize.py
Original file line number Diff line number Diff line change
Expand Up @@ -307,9 +307,26 @@ def _assign_obj_id(metadata, non_unique):
# Avoid heavy import by importing within function:
from .pynwb_utils import get_object_id

msg = "%d out of %d paths are not unique" % (len(non_unique), len(metadata))
msg = f"{len(non_unique)} out of {len(metadata)} paths are not unique."
non_unique_paths = sorted(non_unique)

# provide more information to the user
def get_msg(path):
in_paths = non_unique[path]
return f"{len(in_paths)} paths 'compete' for the path {path!r}:" + "\n ".join(
[""] + in_paths
)

lgr.info(msg + ". We will try adding _obj- based on crc32 of object_id")
msg += "\n " + get_msg(non_unique_paths[0])
if len(non_unique) > 1:
msg += f"\n {len(non_unique) - 1} more case(s) are listed at DEBUG level."
lgr.info("%s", msg)
if len(non_unique) > 1:
msg = "Additional non-unique paths:"
for ex_path in non_unique_paths[1:]:
msg += "\n " + get_msg(ex_path)
lgr.debug("%s", msg)
lgr.info("We will try adding _obj- based on crc32 of object_id")
seen_obj_ids = {} # obj_id: object_id
seen_object_ids = {} # object_id: path
recent_nwb_msg = "NWB>=2.1.0 standard (supported by pynwb>=1.1.0)."
Expand Down