From fc286f9907639b6b7f7095bd006de4a13819819f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Al=C3=A1n=20Mu=C3=B1oz?= <alan.munoz@ed.ac.uk> Date: Fri, 6 Jan 2023 18:50:23 +0000 Subject: [PATCH] fix(Pipeline): incorporate new Dataset/ImageDir --- src/aliby/io/image.py | 22 +++++++++++----------- src/aliby/pipeline.py | 15 +++++---------- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/src/aliby/io/image.py b/src/aliby/io/image.py index 816c9e13..6379c909 100644 --- a/src/aliby/io/image.py +++ b/src/aliby/io/image.py @@ -40,7 +40,7 @@ def get_image_class(source: t.Union[str, int, t.Dict[str, str], PosixPath]): elif isinstance(source, dict) or ( isinstance(source, (str, PosixPath)) and Path(source).is_dir() ): - instatiator = ImageDirectory + instatiator = ImageDir elif isinstance(source, str) and Path(source).is_file(): instatiator = ImageLocalOME else: @@ -88,6 +88,15 @@ class BaseLocalImage(ABC): def data(self): return self.get_data_lazy() + def __enter__(self): + return self + + def __exit__(self, *exc): + for e in exc: + if e is not None: + print(e) + return False + class ImageLocalOME(BaseLocalImage): """ @@ -127,15 +136,6 @@ class ImageLocalOME(BaseLocalImage): self._meta = meta - def __enter__(self): - return self - - def __exit__(self, *exc): - for e in exc: - if e is not None: - print(e) - return False - @property def name(self): return self._meta["name"] @@ -211,7 +211,7 @@ class ImageDir(BaseLocalImage): - Provides Dimorder as it is set in the filenames, or expects order during instatiation """ - def __init__(self, path: t.Union[str, PosixPath]): + def __init__(self, path: t.Union[str, PosixPath], **kwargs): super().__init__(path) self.image_id = str(self.path.stem) diff --git a/src/aliby/pipeline.py b/src/aliby/pipeline.py index 989a0e4a..ed3b608b 100644 --- a/src/aliby/pipeline.py +++ b/src/aliby/pipeline.py @@ -29,7 +29,7 @@ from agora.io.writer import ( # BabyWriter, ) from aliby.baby_client import BabyParameters, BabyRunner from aliby.haystack import initialise_tf -from aliby.io.dataset import Dataset, DatasetLocalOME, DatasetLocalDir +from aliby.io.dataset import dispatch_dataset from aliby.io.image import get_image_class from aliby.tile.tiler import Tiler, TilerParameters from extraction.core.extractor import Extractor, ExtractorParameters @@ -83,12 +83,8 @@ class PipelineParameters(ParametersABC): general["expt_id"] = expt_id directory = Path(general.get("directory", "../data")) - dataset_wrapper = ( - lambda x: DatasetLocal(x) - if isinstance(expt_id, str) - else Dataset(int(x), **general.get("server_info")) - ) - with dataset_wrapper(expt_id) as conn: + + with dispatch_dataset(expt_id) as conn: directory = directory / conn.unique_name if not directory.exists(): directory.mkdir(parents=True) @@ -101,7 +97,7 @@ class PipelineParameters(ParametersABC): "channels": ["Brightfield"], "ntps": [2000], } - print(f"WARNING:Metadata: error when uploading: {e}") + print(f"WARNING:Metadata: error when loading: {e}") # Set minimal metadata meta_d = minimal_default_meta @@ -273,8 +269,7 @@ class Pipeline(ProcessABC): print("Searching OMERO") # Do all all initialisations - dataset_wrapper = DatasetLocal if isinstance(expt_id, str) else Dataset - with dataset_wrapper( + with dispatch_dataset( expt_id, **self.general.get("server_info", {}) ) as conn: image_ids = conn.get_images() -- GitLab