From 291c413d4bf9e2e3cf65ccb8a7492785a9fdf4e5 Mon Sep 17 00:00:00 2001 From: Richard Brown <33289025+rijobro@users.noreply.github.com> Date: Mon, 22 Mar 2021 17:06:51 +0000 Subject: [PATCH 1/3] allow None for switch endianness Signed-off-by: Richard Brown <33289025+rijobro@users.noreply.github.com> --- monai/transforms/io/array.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/monai/transforms/io/array.py b/monai/transforms/io/array.py index 164c7b0e76..9c2727ffc3 100644 --- a/monai/transforms/io/array.py +++ b/monai/transforms/io/array.py @@ -47,10 +47,10 @@ def switch_endianness(data, old, new): data = [switch_endianness(x, old, new) for x in data] elif isinstance(data, dict): data = {k: switch_endianness(v, old, new) for k, v in data.items()} - elif isinstance(data, (bool, str, float, int)): + elif isinstance(data, (bool, str, float, int, type(None))): pass else: - raise AssertionError() + raise AssertionError(f"Unknown type: {type(data).__name__}") return data From 58daa2e94c449c430669baa7260135021114c064 Mon Sep 17 00:00:00 2001 From: Richard Brown <33289025+rijobro@users.noreply.github.com> Date: Mon, 22 Mar 2021 17:37:37 +0000 Subject: [PATCH 2/3] add PIL testing Signed-off-by: Richard Brown <33289025+rijobro@users.noreply.github.com> --- tests/test_nifti_endianness.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/test_nifti_endianness.py b/tests/test_nifti_endianness.py index d8adb1efb2..b452963f49 100644 --- a/tests/test_nifti_endianness.py +++ b/tests/test_nifti_endianness.py @@ -1,3 +1,5 @@ +from monai.data.image_reader import PILReader +import os import tempfile import unittest from typing import TYPE_CHECKING, List, Tuple @@ -13,10 +15,13 @@ if TYPE_CHECKING: import nibabel as nib + from PIL import Image as PILImage has_nib = True + has_pil = True else: nib, has_nib = optional_import("nibabel") + PILImage, has_pil = optional_import("PIL.Image") TESTS: List[Tuple] = [] for endianness in ["<", ">"]: @@ -49,6 +54,15 @@ def test_switch(self): # verify data types output = switch_endianness(data, ">", "<") self.assertEqual(type(data), type(output)) + def test_pil(self): + tempdir = tempfile.mkdtemp() + test_image = np.random.randint(0, 256, size=[128, 256]) + filename = os.path.join(tempdir, "test_image.png") + PILImage.fromarray(test_image.astype("uint8")).save(filename) + + loader = LoadImage(PILReader(converter=lambda image: image.convert("LA"))) + _ = loader(filename) + if __name__ == "__main__": unittest.main() From 3fea76f8c02626abc7e376c5d950d758902e973c Mon Sep 17 00:00:00 2001 From: monai-bot Date: Mon, 22 Mar 2021 17:49:25 +0000 Subject: [PATCH 3/3] [MONAI] python code formatting Signed-off-by: monai-bot --- monai/utils/jupyter_utils.py | 4 ++-- tests/test_nifti_endianness.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/monai/utils/jupyter_utils.py b/monai/utils/jupyter_utils.py index a7e712619e..726a11731c 100644 --- a/monai/utils/jupyter_utils.py +++ b/monai/utils/jupyter_utils.py @@ -10,8 +10,8 @@ # limitations under the License. """ -This set of utility function is meant to make using Jupyter notebooks easier with MONAI. Plotting functions using -Matplotlib produce common plots for metrics and images. +This set of utility function is meant to make using Jupyter notebooks easier with MONAI. Plotting functions using +Matplotlib produce common plots for metrics and images. """ from enum import Enum diff --git a/tests/test_nifti_endianness.py b/tests/test_nifti_endianness.py index b452963f49..7bc8815a84 100644 --- a/tests/test_nifti_endianness.py +++ b/tests/test_nifti_endianness.py @@ -1,4 +1,3 @@ -from monai.data.image_reader import PILReader import os import tempfile import unittest @@ -9,6 +8,7 @@ from parameterized import parameterized from monai.data import DataLoader, Dataset, create_test_image_2d +from monai.data.image_reader import PILReader from monai.transforms import LoadImage, LoadImaged from monai.transforms.io.array import switch_endianness from monai.utils.module import optional_import