From 97528dd7b7c147b85ca1a3509e5f52d2177a84c3 Mon Sep 17 00:00:00 2001 From: pswain <peter.swain@ed.ac.uk> Date: Thu, 26 Jan 2023 17:23:54 +0000 Subject: [PATCH] Allow local runs without the omero module --- src/aliby/io/dataset.py | 6 ++++-- src/aliby/io/image.py | 47 ++++++++++++++++++++++++++++------------- src/aliby/io/omero.py | 6 +++++- 3 files changed, 41 insertions(+), 18 deletions(-) diff --git a/src/aliby/io/dataset.py b/src/aliby/io/dataset.py index eaec2688..b09567ed 100644 --- a/src/aliby/io/dataset.py +++ b/src/aliby/io/dataset.py @@ -13,8 +13,10 @@ from abc import ABC, abstractproperty, abstractmethod from pathlib import Path, PosixPath from typing import Union -import omero - +try: + import omero +except ModuleNotFoundError: + print("Warning: Cannot import omero.") from agora.io.bridge import BridgeH5 from aliby.io.image import ImageLocalOME from aliby.io.omero import BridgeOmero diff --git a/src/aliby/io/image.py b/src/aliby/io/image.py index fd910963..fe6c0759 100644 --- a/src/aliby/io/image.py +++ b/src/aliby/io/image.py @@ -10,25 +10,41 @@ import numpy as np import xmltodict from dask import delayed from dask.array.image import imread -from omero.model import enums as omero_enums + +try: + from omero.model import enums as omero_enums +except ModuleNotFoundError: + print("Warning: Cannot import omero_enums.") from tifffile import TiffFile from yaml import safe_load from agora.io.bridge import BridgeH5 from agora.io.metadata import dir_to_meta -from aliby.io.omero import BridgeOmero + +try: + from aliby.io.omero import BridgeOmero +except ModuleNotFoundError: + + class BridgeOmero: + # dummy class necessary when the omero module is not installed + pass + + print("Warning: Cannot import BridgeOmero.") # convert OMERO definitions into numpy types -PIXEL_TYPES = { - omero_enums.PixelsTypeint8: np.int8, - omero_enums.PixelsTypeuint8: np.uint8, - omero_enums.PixelsTypeint16: np.int16, - omero_enums.PixelsTypeuint16: np.uint16, - omero_enums.PixelsTypeint32: np.int32, - omero_enums.PixelsTypeuint32: np.uint32, - omero_enums.PixelsTypefloat: np.float32, - omero_enums.PixelsTypedouble: np.float64, -} +try: + PIXEL_TYPES = { + omero_enums.PixelsTypeint8: np.int8, + omero_enums.PixelsTypeuint8: np.uint8, + omero_enums.PixelsTypeint16: np.int16, + omero_enums.PixelsTypeuint16: np.uint16, + omero_enums.PixelsTypeint32: np.int32, + omero_enums.PixelsTypeuint32: np.uint32, + omero_enums.PixelsTypefloat: np.float32, + omero_enums.PixelsTypedouble: np.float64, + } +except NameError: + print("Warning: PIXEL_TYPES are not defined.") def get_image_class(source: t.Union[str, int, t.Dict[str, str], PosixPath]): @@ -266,12 +282,12 @@ class ImageDir(BaseLocalImage): class Image(BridgeOmero): """ - Loads images from OMERO and gives access to the data and metadata. + Load images from OMERO and gives access to the data and metadata. """ def __init__(self, image_id: int, **server_info): """ - Establishes the connection to the OMERO server via the Argo + Establish the connection to the OMERO server via the Argo base class. Parameters @@ -292,7 +308,8 @@ class Image(BridgeOmero): cls, filepath: t.Union[str, PosixPath], ): - """Instatiate Image from a hdf5 file. + """ + Instantiate Image from a hdf5 file. Parameters ---------- diff --git a/src/aliby/io/omero.py b/src/aliby/io/omero.py index af8f451b..9ae5ffba 100644 --- a/src/aliby/io/omero.py +++ b/src/aliby/io/omero.py @@ -4,7 +4,11 @@ from pathlib import PosixPath import re from agora.io.bridge import BridgeH5 -from omero.gateway import BlitzGateway + +try: + from omero.gateway import BlitzGateway +except ModuleNotFoundError: + print("Warning: Cannot import BlitzGateway.") from yaml import safe_load -- GitLab