From ad498710f33584611455b16b563971a54842e704 Mon Sep 17 00:00:00 2001 From: Ben Hardcastle Date: Thu, 15 Aug 2024 09:24:37 -0700 Subject: [PATCH] Add metadata json parent path property --- src/aind_session/extensions/metadata.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/aind_session/extensions/metadata.py b/src/aind_session/extensions/metadata.py index e9869ab..48d538f 100644 --- a/src/aind_session/extensions/metadata.py +++ b/src/aind_session/extensions/metadata.py @@ -45,11 +45,18 @@ def __getattr__(self, name: str) -> dict[str, Any]: path = next(p for p in self.json_paths if p.stem == str(name)) except StopIteration: raise AttributeError( - f"No {name}.json found in cached view of {self.raw_data_folder.as_posix()}. Available files: {[p.name for p in self.json_paths]}" + f"No {name}.json found in cached view of {self.json_folder.as_posix()}. Available files: {[p.name for p in self.json_paths]}" ) from None else: logger.debug(f"Using contents of metadata json at {path.as_posix()}") - return json.loads(content) + return json.loads(path.read_text()) + + @property + def json_folder(self) -> upath.UPath: + """Parent folder containing metadata json files""" + path = self._session.raw_data_folder # may raise FileNotFoundError + logger.debug(f"Using {path.as_posix()} as parent folder for metadata json files") + return path @npc_io.cached_property def json_paths(self) -> tuple[upath.UPath, ...]: @@ -65,7 +72,7 @@ def json_paths(self) -> tuple[upath.UPath, ...]: sorted( ( path - for path in self._session.raw_data_folder.iterdir() + for path in self.json_folder.iterdir() if path.suffix == ".json" ), key=lambda p: p.name,