From 9b20276c45d7fdae34f24d9a803846b725deba82 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 30 Oct 2019 07:23:08 +1100 Subject: [PATCH] Allow for arr KeyError --- Tests/test_image_array.py | 5 +++++ src/PIL/Image.py | 3 +++ 2 files changed, 8 insertions(+) diff --git a/Tests/test_image_array.py b/Tests/test_image_array.py index 02e5c80f2..e2a79764e 100644 --- a/Tests/test_image_array.py +++ b/Tests/test_image_array.py @@ -52,3 +52,8 @@ class TestImageArray(PillowTestCase): self.assertEqual(test("RGB"), ("RGB", (128, 100), True)) self.assertEqual(test("RGBA"), ("RGBA", (128, 100), True)) self.assertEqual(test("RGBX"), ("RGBA", (128, 100), True)) + + # Test mode is None with no "typestr" in the array interface + with self.assertRaises(TypeError): + wrapped = Wrapper(test("L"), {"shape": (100, 128)}) + Image.fromarray(wrapped) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index 0c783a428..4093c030c 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -2631,6 +2631,9 @@ def fromarray(obj, mode=None): if mode is None: try: typekey = (1, 1) + shape[2:], arr["typestr"] + except KeyError: + raise TypeError("Cannot handle this data type") + try: mode, rawmode = _fromarray_typemap[typekey] except KeyError: raise TypeError("Cannot handle this data type: %s, %s" % typekey)