Skip to content

Commit

Permalink
ENH: organize - show files with conflicts requiring adding _obj-
Browse files Browse the repository at this point in the history
Logging check is currently not really functioning since IIRC we
do enable logging into a file at higher level than INFO. So we
might need to tune decision making here
  • Loading branch information
yarikoptic committed Aug 20, 2024
1 parent 44e097f commit c45ffe2
Showing 1 changed file with 22 additions and 2 deletions.
24 changes: 22 additions & 2 deletions dandi/organize.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from collections.abc import Sequence
from copy import deepcopy
from enum import Enum
import logging
import os
import os.path as op
from pathlib import Path, PurePosixPath
Expand Down Expand Up @@ -307,9 +308,28 @@ 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 = "%d out of %d paths are not unique." % (len(non_unique), len(metadata))
non_unique_paths = sorted(non_unique)

lgr.info(msg + ". We will try adding _obj- based on crc32 of object_id")
# provide more information to the user
def get_msg(path, indent=" "):
in_paths = non_unique[path]
return (
f"{len(in_paths)} paths 'compete' for the path {path!r}:"
+ f"\n{indent}".join([""] + in_paths)
)

msg += "\n " + get_msg(non_unique_paths[0])
if len(non_unique) > 1:
if not lgr.isEnabledFor(logging.DEBUG):
msg += (

Check warning on line 325 in dandi/organize.py

View check run for this annotation

Codecov / codecov/patch

dandi/organize.py#L324-L325

Added lines #L324 - L325 were not covered by tests
" Rerun with logging at DEBUG level '-l debug' "
"to see {len(non_unique) - 1} more cases."
)
else:
for ex_path in non_unique_paths[1:]:
msg += "\n " + get_msg(ex_path)

Check warning on line 331 in dandi/organize.py

View check run for this annotation

Codecov / codecov/patch

dandi/organize.py#L330-L331

Added lines #L330 - L331 were not covered by tests
lgr.info(msg + "\n 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

0 comments on commit c45ffe2

Please sign in to comment.