From ae789bf38ec29fa17aa83863017fa2d0e8005149 Mon Sep 17 00:00:00 2001 From: Katy Scott Date: Fri, 23 May 2025 17:28:19 -0400 Subject: [PATCH 1/4] feat: add function for getting full data name, combined data source and dataset name (used in readii_2_roqc) --- src/readii/utils/__init__.py | 2 ++ src/readii/utils/dataset_config.py | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 src/readii/utils/dataset_config.py diff --git a/src/readii/utils/__init__.py b/src/readii/utils/__init__.py index 116ace5..32f3260 100644 --- a/src/readii/utils/__init__.py +++ b/src/readii/utils/__init__.py @@ -1,5 +1,7 @@ from .logging_config import logger +from .dataset_config import get_full_data_name __all__ = [ 'logger', + 'get_full_data_name' ] \ No newline at end of file diff --git a/src/readii/utils/dataset_config.py b/src/readii/utils/dataset_config.py new file mode 100644 index 0000000..f33bfa5 --- /dev/null +++ b/src/readii/utils/dataset_config.py @@ -0,0 +1,20 @@ +from pathlib import Path +from typing import Dict, Union + +from readii.io.loaders import loadImageDatasetConfig +from readii.utils import logger + +def get_full_data_name(config: Union[Dict | Path]): + """Combine DATA_SOURCE and DATASET_NAME config variables into a single string.""" + + match type(config): + case Path(): + dataset_config = loadImageDatasetConfig(config) + case Dict(): + dataset_config = config + case _: + message = "Error getting full data name: config must be of type Path or Dict." + logger.debug(message) + raise TypeError(message) + + return dataset_config['DATA_SOURCE'] + "_" + dataset_config['DATASET_NAME'] \ No newline at end of file From d47dfe0eb4e6face646472fbcff307f899c198b3 Mon Sep 17 00:00:00 2001 From: Katy Scott Date: Fri, 23 May 2025 17:30:18 -0400 Subject: [PATCH 2/4] feat: update lock file --- pixi.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pixi.lock b/pixi.lock index 30db3dc..7ce05d5 100644 --- a/pixi.lock +++ b/pixi.lock @@ -11526,8 +11526,8 @@ packages: timestamp: 1743831815399 - pypi: . name: readii - version: 1.35.0 - sha256: eff962617ba21b93e479d92ea470a4b8b382baa0e219bd88f63ea450d08cd1fa + version: 1.35.1 + sha256: 7d1324341e6851d5c3913b06391c09681cb871ac7a47c662138400e2bf99a715 requires_dist: - simpleitk>=2.3.1 - matplotlib>=3.9.2,<4 From 2d0f1fab5b1504f973353c362dbea3a261f3061b Mon Sep 17 00:00:00 2001 From: Katy Scott Date: Fri, 23 May 2025 17:33:28 -0400 Subject: [PATCH 3/4] fix: correct number of arguments for loadImageDatasetConfig --- src/readii/utils/dataset_config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/readii/utils/dataset_config.py b/src/readii/utils/dataset_config.py index f33bfa5..6237da7 100644 --- a/src/readii/utils/dataset_config.py +++ b/src/readii/utils/dataset_config.py @@ -9,7 +9,7 @@ def get_full_data_name(config: Union[Dict | Path]): match type(config): case Path(): - dataset_config = loadImageDatasetConfig(config) + dataset_config = loadImageDatasetConfig(config.stem, config.parent) case Dict(): dataset_config = config case _: From e3b9f0c156e6e5e75f4ee05f29e6b699091c218a Mon Sep 17 00:00:00 2001 From: Katy Scott Date: Fri, 23 May 2025 17:34:37 -0400 Subject: [PATCH 4/4] fix: add missing key handling Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- src/readii/utils/dataset_config.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/readii/utils/dataset_config.py b/src/readii/utils/dataset_config.py index 6237da7..8752bdb 100644 --- a/src/readii/utils/dataset_config.py +++ b/src/readii/utils/dataset_config.py @@ -17,4 +17,11 @@ def get_full_data_name(config: Union[Dict | Path]): logger.debug(message) raise TypeError(message) - return dataset_config['DATA_SOURCE'] + "_" + dataset_config['DATASET_NAME'] \ No newline at end of file + try: + data_source = dataset_config['DATA_SOURCE'] + dataset_name = dataset_config['DATASET_NAME'] + return f"{data_source}_{dataset_name}" + except KeyError as e: + message = f"Missing required key in dataset configuration: {e}" + logger.error(message) + raise ValueError(message) from e \ No newline at end of file