Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions monai/transforms/io/array.py
Original file line number Diff line number Diff line change
Expand Up @@ -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


Expand Down
4 changes: 2 additions & 2 deletions monai/utils/jupyter_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
15 changes: 15 additions & 0 deletions tests/test_nifti_endianness.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import os
import tempfile
import unittest
from typing import TYPE_CHECKING, List, Tuple
Expand All @@ -7,16 +8,20 @@
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

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 ["<", ">"]:
Expand Down Expand Up @@ -49,6 +54,16 @@ def test_switch(self): # verify data types
output = switch_endianness(data, ">", "<")
self.assertEqual(type(data), type(output))

@skipUnless(has_pil, "Requires PIL")
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()