Allow to extract basic metadata such as size + date modified from git/annex instead of a physical file
- Dominant language
- Python
- Stars
- 28
- Forks
- 37
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 9
Description
whenever we just want to extract/update metadata possibly based just on what we have in the filename/git/git-annex we would not have a blob available. should we allow for extraction of that metadata from git/annex instead?
that is the code spot
```patch
diff --git a/dandi/metadata.py b/dandi/metadata.py
index c1a13a6..f387726 100644
--- a/dandi/metadata.py
+++ b/dandi/metadata.py
@@ -925,18 +925,26 @@ def add_common_metadata(
start_time: datetime,
end_time: datetime,
digest: Optional[Digest] = None,
+ include_content_based: bool = False,
) -> None:
if digest is not None:
metadata["digest"] = digest.asdict()
else:
metadata["digest"] = {}
metadata["dateModified"] = get_utcnow_datetime()
- metadata["blobDateModified"] = ensure_datetime(os.stat(path).st_mtime)
- if metadata["blobDateModified"] > metadata["dateModified"]:
- lgr.warning(
- "mtime %s of %s is in the future", metadata["blobDateModified"], path
- )
- metadata["contentSize"] = os.path.getsize(path)
+ if include_content_based:
+ metadata["blobDateModified"] = ensure_datetime(os.stat(path).st_mtime)
+ if metadata["blobDateModified"] > metadata["dateModified"]:
+ lgr.warning(
+ "mtime %s of %s is in the future", metadata["blobDateModified"], path
+ )
+ metadata["contentSize"] = os.path.getsize(path)
+ else:
+ # TODO: get for annexed stuff
+ # blobDateModified -- commit date based on git log -1 ? (see
+ # https://github.com/datalad/datalad-metalad/issues/257)
+ # size -- from key
+ pass
metadata.setdefault("wasGeneratedBy", []).append(
get_generator(start_time, end_time)
)
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.