From b40d2932636f8aaaea098ee8a3f10b007c33e8a2 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 29 Dec 2018 05:59:00 +1100 Subject: [PATCH 001/134] Changed docker tag to master --- .travis.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 61fdfec5b..b66ed27f2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,15 +49,15 @@ matrix: - python: '3.4' name: "3.4 Trusty" dist: trusty - - env: DOCKER="alpine" DOCKER_TAG="pytest" - - env: DOCKER="arch" DOCKER_TAG="pytest" # contains PyQt5 - - env: DOCKER="ubuntu-trusty-x86" DOCKER_TAG="pytest" - - env: DOCKER="ubuntu-xenial-amd64" DOCKER_TAG="pytest" - - env: DOCKER="debian-stretch-x86" DOCKER_TAG="pytest" - - env: DOCKER="centos-6-amd64" DOCKER_TAG="pytest" - - env: DOCKER="centos-7-amd64" DOCKER_TAG="pytest" - - env: DOCKER="amazon-1-amd64" DOCKER_TAG="pytest" - - env: DOCKER="amazon-2-amd64" DOCKER_TAG="pytest" + - env: DOCKER="alpine" DOCKER_TAG="master" + - env: DOCKER="arch" DOCKER_TAG="master" # contains PyQt5 + - env: DOCKER="ubuntu-trusty-x86" DOCKER_TAG="master" + - env: DOCKER="ubuntu-xenial-amd64" DOCKER_TAG="master" + - env: DOCKER="debian-stretch-x86" DOCKER_TAG="master" + - env: DOCKER="centos-6-amd64" DOCKER_TAG="master" + - env: DOCKER="centos-7-amd64" DOCKER_TAG="master" + - env: DOCKER="amazon-1-amd64" DOCKER_TAG="master" + - env: DOCKER="amazon-2-amd64" DOCKER_TAG="master" - env: DOCKER="fedora-28-amd64" DOCKER_TAG="master" - env: DOCKER="fedora-29-amd64" DOCKER_TAG="master" From bc3925ead55a26b87c19629987636c02e1da6b35 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 31 Dec 2018 08:27:07 +1100 Subject: [PATCH 002/134] Fixed writing to temporary file --- src/PIL/ImageShow.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/PIL/ImageShow.py b/src/PIL/ImageShow.py index 7d758c737..bbd841db7 100644 --- a/src/PIL/ImageShow.py +++ b/src/PIL/ImageShow.py @@ -132,9 +132,9 @@ elif sys.platform == "darwin": def show_file(self, file, **options): """Display given file""" - f, path = tempfile.mkstemp() - f.write(file) - f.close() + fd, path = tempfile.mkstemp() + with os.fdopen(fd, 'w') as f: + f.write(file) with open(path, "r") as f: subprocess.Popen([ 'im=$(cat);' @@ -171,9 +171,9 @@ else: def show_file(self, file, **options): """Display given file""" - f, path = tempfile.mkstemp() - f.write(file) - f.close() + fd, path = tempfile.mkstemp() + with os.fdopen(fd, 'w') as f: + f.write(file) with open(path, "r") as f: command = self.get_command_ex(file, **options)[0] subprocess.Popen([ From 3f6282e259c68fd6af1c0a9ea0d208ce67b6929d Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 31 Dec 2018 11:35:15 +1100 Subject: [PATCH 003/134] Allow RGB value for P image putpixel --- Tests/test_image_access.py | 11 +++++++++++ docs/reference/PixelAccess.rst | 3 ++- src/PIL/Image.py | 8 +++++++- src/PIL/PyAccess.py | 8 ++++++++ 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/Tests/test_image_access.py b/Tests/test_image_access.py index ae9692b39..c1b2e9b52 100644 --- a/Tests/test_image_access.py +++ b/Tests/test_image_access.py @@ -175,6 +175,11 @@ class TestImageGetPixel(AccessTest): self.check(mode, 2**15+1) self.check(mode, 2**16-1) + def test_p_putpixel_rgb(self): + im = Image.new("P", (1, 1), 0) + im.putpixel((0, 0), (255, 0, 0)) + self.assertEqual(im.convert("RGB").getpixel((0, 0)), (255, 0, 0)) + @unittest.skipIf(cffi is None, "No cffi") class TestCffiPutPixel(TestImagePutPixel): @@ -294,6 +299,12 @@ class TestCffi(AccessTest): # pixels can contain garbage if image is released self.assertEqual(px[i, 0], 0) + def test_p_putpixel_rgb(self): + im = Image.new("P", (1, 1), 0) + access = PyAccess.new(im, False) + access.putpixel((0, 0), (255, 0, 0)) + self.assertEqual(im.convert("RGB").getpixel((0, 0)), (255, 0, 0)) + class TestEmbeddable(unittest.TestCase): @unittest.skipIf(not sys.platform.startswith('win32') or diff --git a/docs/reference/PixelAccess.rst b/docs/reference/PixelAccess.rst index 522e70937..2be48447d 100644 --- a/docs/reference/PixelAccess.rst +++ b/docs/reference/PixelAccess.rst @@ -65,7 +65,8 @@ Access using negative indexes is also possible. Modifies the pixel at x,y. The color is given as a single numerical value for single band images, and a tuple for - multi-band images + multi-band images. In addition to this, RGB tuples are accepted + for P images. :param xy: The pixel coordinate, given as (x, y). :param color: The pixel value according to its mode. e.g. tuple (r, g, b) for RGB mode) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index 6e3a9719d..f963f920f 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -1651,7 +1651,8 @@ class Image(object): """ Modifies the pixel at the given position. The color is given as a single numerical value for single-band images, and a tuple for - multi-band images. + multi-band images. In addition to this, RGB tuples are accepted + for P images. Note that this method is relatively slow. For more extensive changes, use :py:meth:`~PIL.Image.Image.paste` or the :py:mod:`~PIL.ImageDraw` @@ -1674,6 +1675,11 @@ class Image(object): if self.pyaccess: return self.pyaccess.putpixel(xy, value) + + if self.mode == "P" and \ + isinstance(value, (list, tuple)) and len(value) == 3: + # RGB value for a P image + value = self.palette.getcolor(value) return self.im.putpixel(xy, value) def remap_palette(self, dest_map, source_palette=None): diff --git a/src/PIL/PyAccess.py b/src/PIL/PyAccess.py index 35abfec81..cdbb9a83e 100644 --- a/src/PIL/PyAccess.py +++ b/src/PIL/PyAccess.py @@ -53,6 +53,8 @@ class PyAccess(object): # Keep pointer to im object to prevent dereferencing. self._im = img.im + if self._im.mode == "P": + self._palette = img.palette # Debugging is polluting test traces, only useful here # when hacking on PyAccess @@ -80,6 +82,12 @@ class PyAccess(object): if y < 0: y = self.ysize + y (x, y) = self.check_xy((x, y)) + + if self._im.mode == "P" and \ + isinstance(color, (list, tuple)) and len(color) == 3: + # RGB value for a P image + color = self._palette.getcolor(color) + return self.set_pixel(x, y, color) def __getitem__(self, xy): From 671f7a392dedfcf36c22556bdd588382cf2f98ff Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 31 Dec 2018 13:37:04 +1100 Subject: [PATCH 004/134] Allow RGBA value for P image putpixel --- Tests/test_image_access.py | 20 +++++++++++--------- docs/reference/PixelAccess.rst | 4 ++-- src/PIL/Image.py | 8 ++++---- src/PIL/PyAccess.py | 4 ++-- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/Tests/test_image_access.py b/Tests/test_image_access.py index c1b2e9b52..481ec5935 100644 --- a/Tests/test_image_access.py +++ b/Tests/test_image_access.py @@ -175,10 +175,11 @@ class TestImageGetPixel(AccessTest): self.check(mode, 2**15+1) self.check(mode, 2**16-1) - def test_p_putpixel_rgb(self): - im = Image.new("P", (1, 1), 0) - im.putpixel((0, 0), (255, 0, 0)) - self.assertEqual(im.convert("RGB").getpixel((0, 0)), (255, 0, 0)) + def test_p_putpixel_rgb_rgba(self): + for color in [(255, 0, 0), (255, 0, 0, 255)]: + im = Image.new("P", (1, 1), 0) + im.putpixel((0, 0), color) + self.assertEqual(im.convert("RGB").getpixel((0, 0)), (255, 0, 0)) @unittest.skipIf(cffi is None, "No cffi") @@ -299,11 +300,12 @@ class TestCffi(AccessTest): # pixels can contain garbage if image is released self.assertEqual(px[i, 0], 0) - def test_p_putpixel_rgb(self): - im = Image.new("P", (1, 1), 0) - access = PyAccess.new(im, False) - access.putpixel((0, 0), (255, 0, 0)) - self.assertEqual(im.convert("RGB").getpixel((0, 0)), (255, 0, 0)) + def test_p_putpixel_rgb_rgba(self): + for color in [(255, 0, 0), (255, 0, 0, 255)]: + im = Image.new("P", (1, 1), 0) + access = PyAccess.new(im, False) + access.putpixel((0, 0), color) + self.assertEqual(im.convert("RGB").getpixel((0, 0)), (255, 0, 0)) class TestEmbeddable(unittest.TestCase): diff --git a/docs/reference/PixelAccess.rst b/docs/reference/PixelAccess.rst index 2be48447d..8a8569922 100644 --- a/docs/reference/PixelAccess.rst +++ b/docs/reference/PixelAccess.rst @@ -65,8 +65,8 @@ Access using negative indexes is also possible. Modifies the pixel at x,y. The color is given as a single numerical value for single band images, and a tuple for - multi-band images. In addition to this, RGB tuples are accepted - for P images. + multi-band images. In addition to this, RGB and RGBA tuples + are accepted for P images. :param xy: The pixel coordinate, given as (x, y). :param color: The pixel value according to its mode. e.g. tuple (r, g, b) for RGB mode) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index f963f920f..092cc8040 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -1651,8 +1651,8 @@ class Image(object): """ Modifies the pixel at the given position. The color is given as a single numerical value for single-band images, and a tuple for - multi-band images. In addition to this, RGB tuples are accepted - for P images. + multi-band images. In addition to this, RGB and RGBA tuples are + accepted for P images. Note that this method is relatively slow. For more extensive changes, use :py:meth:`~PIL.Image.Image.paste` or the :py:mod:`~PIL.ImageDraw` @@ -1677,8 +1677,8 @@ class Image(object): return self.pyaccess.putpixel(xy, value) if self.mode == "P" and \ - isinstance(value, (list, tuple)) and len(value) == 3: - # RGB value for a P image + isinstance(value, (list, tuple)) and len(value) in [3, 4]: + # RGB or RGBA value for a P image value = self.palette.getcolor(value) return self.im.putpixel(xy, value) diff --git a/src/PIL/PyAccess.py b/src/PIL/PyAccess.py index cdbb9a83e..5df1d400c 100644 --- a/src/PIL/PyAccess.py +++ b/src/PIL/PyAccess.py @@ -84,8 +84,8 @@ class PyAccess(object): (x, y) = self.check_xy((x, y)) if self._im.mode == "P" and \ - isinstance(color, (list, tuple)) and len(color) == 3: - # RGB value for a P image + isinstance(color, (list, tuple)) and len(color) in [3, 4]: + # RGB or RGBA value for a P image color = self._palette.getcolor(color) return self.set_pixel(x, y, color) From 8c38e4c6d5a5eed8d56dd807a263dbba6bf2204a Mon Sep 17 00:00:00 2001 From: Hugo Date: Mon, 31 Dec 2018 13:48:06 +0200 Subject: [PATCH 005/134] Update release notes --- docs/releasenotes/5.4.0.rst | 42 ++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/docs/releasenotes/5.4.0.rst b/docs/releasenotes/5.4.0.rst index 421ebbbf2..ad1b7e876 100644 --- a/docs/releasenotes/5.4.0.rst +++ b/docs/releasenotes/5.4.0.rst @@ -1,9 +1,29 @@ -5.4.0 (unreleased) +5.4.0 ----- API Changes =========== +APNG extension to PNG plugin +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Animated Portable Network Graphics (APNG) images are not fully supported but +can be opened via the PNG plugin to get some basic info:: + + im = Image.open("image.apng") + print(im.mode) # "RGBA" + print(im.size) # (245, 245) + im.show() # Shows a single frame + +Check for libjpeg-turbo +^^^^^^^^^^^^^^^^^^^^^^^ + +You can check if Pillow has been built against the libjpeg-turbo version of the +libjpeg library:: + + from PIL import features + features.check_feature("libjpeg_turbo") # True or False + Negative indexes in pixel access ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -15,6 +35,26 @@ For example, to get or set the farthest pixel in the lower right of an image:: px[-1, -1] = (0, 0, 0) +New custom TIFF tags +^^^^^^^^^^^^^^^^^^^^ + +TIFF images can now be saved with custom integer, float and sting TIFF tags:: + + im = Image.new("RGB", (200, 100)) + custom = { + 37000: 4, + 37001: 4.2, + 37002: "custom tag value", + 37003: u"custom tag value", + 37004: b"custom tag value", + } + im.save("output.tif", tiffinfo=custom) + + im2 = Image.open("output.tif") + print(im2.tag_v2[37000]) # 4 + print(im2.tag_v2[37002]) # "custom tag value" + print(im2.tag_v2[37004]) # b"custom tag value" + Other Changes ============= From a53c39eb46ca66ea7fb1c4fce71752989c86cb9a Mon Sep 17 00:00:00 2001 From: Andrew Murray <3112309+radarhere@users.noreply.github.com> Date: Mon, 31 Dec 2018 23:09:22 +0200 Subject: [PATCH 006/134] Fix typo Co-Authored-By: hugovk --- docs/releasenotes/5.4.0.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/releasenotes/5.4.0.rst b/docs/releasenotes/5.4.0.rst index ad1b7e876..6d7277c70 100644 --- a/docs/releasenotes/5.4.0.rst +++ b/docs/releasenotes/5.4.0.rst @@ -38,7 +38,7 @@ For example, to get or set the farthest pixel in the lower right of an image:: New custom TIFF tags ^^^^^^^^^^^^^^^^^^^^ -TIFF images can now be saved with custom integer, float and sting TIFF tags:: +TIFF images can now be saved with custom integer, float and string TIFF tags:: im = Image.new("RGB", (200, 100)) custom = { From fc354cabaa0e51cf36ac6489cc4c3318fa59d1eb Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 1 Jan 2019 14:11:52 +1100 Subject: [PATCH 007/134] Added method --- docs/reference/ImageChops.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/reference/ImageChops.rst b/docs/reference/ImageChops.rst index 2e4e21f19..6c8f11253 100644 --- a/docs/reference/ImageChops.rst +++ b/docs/reference/ImageChops.rst @@ -34,6 +34,7 @@ operations in this module). .. autofunction:: PIL.ImageChops.lighter .. autofunction:: PIL.ImageChops.logical_and .. autofunction:: PIL.ImageChops.logical_or +.. autofunction:: PIL.ImageChops.logical_xor .. autofunction:: PIL.ImageChops.multiply .. py:method:: PIL.ImageChops.offset(image, xoffset, yoffset=None) From aa8f30eae83e0a52f4d5e445d05f90b3ae72f752 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 1 Jan 2019 14:14:22 +1100 Subject: [PATCH 008/134] Several methods require at least one mode 1 image --- src/PIL/ImageChops.py | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/src/PIL/ImageChops.py b/src/PIL/ImageChops.py index 89016730e..422811351 100644 --- a/src/PIL/ImageChops.py +++ b/src/PIL/ImageChops.py @@ -54,7 +54,7 @@ def invert(image): def lighter(image1, image2): """ Compares the two images, pixel by pixel, and returns a new image containing - the lighter values. + the lighter values. Note that at least one of the images must have mode "1". .. code-block:: python @@ -70,8 +70,8 @@ def lighter(image1, image2): def darker(image1, image2): """ - Compares the two images, pixel by pixel, and returns a new image - containing the darker values. + Compares the two images, pixel by pixel, and returns a new image containing + the darker values. Note that at least one of the images must have mode "1". .. code-block:: python @@ -88,7 +88,7 @@ def darker(image1, image2): def difference(image1, image2): """ Returns the absolute value of the pixel-by-pixel difference between the two - images. + images. At least one of the images must be "1" mode. .. code-block:: python @@ -107,7 +107,8 @@ def multiply(image1, image2): Superimposes two images on top of each other. If you multiply an image with a solid black image, the result is black. If - you multiply with a solid white image, the image is unaffected. + you multiply with a solid white image, the image is unaffected. At least + one of the images must be "1" mode. .. code-block:: python @@ -123,7 +124,8 @@ def multiply(image1, image2): def screen(image1, image2): """ - Superimposes two inverted images on top of each other. + Superimposes two inverted images on top of each other. At least one of the + images must be "1" mode. .. code-block:: python @@ -141,6 +143,7 @@ def add(image1, image2, scale=1.0, offset=0): """ Adds two images, dividing the result by scale and adding the offset. If omitted, scale defaults to 1.0, and offset to 0.0. + At least one of the images must be "1" mode. .. code-block:: python @@ -156,8 +159,9 @@ def add(image1, image2, scale=1.0, offset=0): def subtract(image1, image2, scale=1.0, offset=0): """ - Subtracts two images, dividing the result by scale and adding the - offset. If omitted, scale defaults to 1.0, and offset to 0.0. + Subtracts two images, dividing the result by scale and adding the offset. + If omitted, scale defaults to 1.0, and offset to 0.0. At least one of the + images must be "1" mode. .. code-block:: python @@ -172,7 +176,8 @@ def subtract(image1, image2, scale=1.0, offset=0): def add_modulo(image1, image2): - """Add two images, without clipping the result. + """Add two images, without clipping the result. At least one of the images + must be "1" mode. .. code-block:: python @@ -187,7 +192,8 @@ def add_modulo(image1, image2): def subtract_modulo(image1, image2): - """Subtract two images, without clipping the result. + """Subtract two images, without clipping the result. At least one of the + images must be "1" mode. .. code-block:: python @@ -202,7 +208,8 @@ def subtract_modulo(image1, image2): def logical_and(image1, image2): - """Logical AND between two images. + """Logical AND between two images. At least one of the images must be "1" + mode. .. code-block:: python @@ -217,7 +224,8 @@ def logical_and(image1, image2): def logical_or(image1, image2): - """Logical OR between two images. + """Logical OR between two images. At least one of the images must be "1" + mode. .. code-block:: python @@ -232,7 +240,8 @@ def logical_or(image1, image2): def logical_xor(image1, image2): - """Logical XOR between two images. + """Logical XOR between two images. At least one of the images must be "1" + mode. .. code-block:: python From 2de101e02cd28d868b59e44e33ab9351d59848dd Mon Sep 17 00:00:00 2001 From: Hugo Date: Tue, 1 Jan 2019 20:42:23 +1100 Subject: [PATCH 009/134] Apply suggestions from code review Changed docstrings to be consistent Co-Authored-By: radarhere <3112309+radarhere@users.noreply.github.com> --- src/PIL/ImageChops.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/PIL/ImageChops.py b/src/PIL/ImageChops.py index 422811351..378715d24 100644 --- a/src/PIL/ImageChops.py +++ b/src/PIL/ImageChops.py @@ -54,7 +54,7 @@ def invert(image): def lighter(image1, image2): """ Compares the two images, pixel by pixel, and returns a new image containing - the lighter values. Note that at least one of the images must have mode "1". + the lighter values. At least one of the images must have mode "1". .. code-block:: python @@ -71,7 +71,7 @@ def lighter(image1, image2): def darker(image1, image2): """ Compares the two images, pixel by pixel, and returns a new image containing - the darker values. Note that at least one of the images must have mode "1". + the darker values. At least one of the images must have mode "1". .. code-block:: python @@ -88,7 +88,7 @@ def darker(image1, image2): def difference(image1, image2): """ Returns the absolute value of the pixel-by-pixel difference between the two - images. At least one of the images must be "1" mode. + images. At least one of the images must have mode "1". .. code-block:: python @@ -125,7 +125,7 @@ def multiply(image1, image2): def screen(image1, image2): """ Superimposes two inverted images on top of each other. At least one of the - images must be "1" mode. + images must have mode "1". .. code-block:: python @@ -143,7 +143,7 @@ def add(image1, image2, scale=1.0, offset=0): """ Adds two images, dividing the result by scale and adding the offset. If omitted, scale defaults to 1.0, and offset to 0.0. - At least one of the images must be "1" mode. + At least one of the images must have mode "1". .. code-block:: python @@ -161,7 +161,7 @@ def subtract(image1, image2, scale=1.0, offset=0): """ Subtracts two images, dividing the result by scale and adding the offset. If omitted, scale defaults to 1.0, and offset to 0.0. At least one of the - images must be "1" mode. + images must have mode "1". .. code-block:: python @@ -177,7 +177,7 @@ def subtract(image1, image2, scale=1.0, offset=0): def add_modulo(image1, image2): """Add two images, without clipping the result. At least one of the images - must be "1" mode. + must have mode "1". .. code-block:: python @@ -193,7 +193,7 @@ def add_modulo(image1, image2): def subtract_modulo(image1, image2): """Subtract two images, without clipping the result. At least one of the - images must be "1" mode. + images must have mode "1". .. code-block:: python @@ -208,8 +208,8 @@ def subtract_modulo(image1, image2): def logical_and(image1, image2): - """Logical AND between two images. At least one of the images must be "1" - mode. + """Logical AND between two images. At least one of the images must have + mode "1". .. code-block:: python @@ -224,8 +224,8 @@ def logical_and(image1, image2): def logical_or(image1, image2): - """Logical OR between two images. At least one of the images must be "1" - mode. + """Logical OR between two images. At least one of the images must have + mode "1". .. code-block:: python @@ -240,8 +240,8 @@ def logical_or(image1, image2): def logical_xor(image1, image2): - """Logical XOR between two images. At least one of the images must be "1" - mode. + """Logical XOR between two images. At least one of the images must have + mode "1". .. code-block:: python From ff61119f9f805061a7a0580352d200e6f047d112 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 1 Jan 2019 20:44:04 +1100 Subject: [PATCH 010/134] Changed docstring to be consistent --- src/PIL/ImageChops.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PIL/ImageChops.py b/src/PIL/ImageChops.py index 378715d24..b1f71b5e7 100644 --- a/src/PIL/ImageChops.py +++ b/src/PIL/ImageChops.py @@ -108,7 +108,7 @@ def multiply(image1, image2): If you multiply an image with a solid black image, the result is black. If you multiply with a solid white image, the image is unaffected. At least - one of the images must be "1" mode. + one of the images must have mode "1". .. code-block:: python From 48a05e6cf3fc98b6385034372143f06fe6719e4e Mon Sep 17 00:00:00 2001 From: Hugo Date: Tue, 1 Jan 2019 12:21:38 +0200 Subject: [PATCH 011/134] Update CHANGES.rst --- CHANGES.rst | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index be0ac6de5..22fbb7b33 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -2,9 +2,15 @@ Changelog (Pillow) ================== -5.4.0 (unreleased) +5.4.0 (2019-01-01) ------------------ +- Docs: Improved ImageChops documentation #3522 + [radarhere] + +- Allow RGB and RGBA values for P image putpixel #3519 + [radarhere] + - Add APNG extension to PNG plugin #3501 [pirate486743186, radarhere] From 0be809ddb315c3883c99ae70e19d5fbf13f85aaa Mon Sep 17 00:00:00 2001 From: Hugo Date: Tue, 1 Jan 2019 12:31:45 +0200 Subject: [PATCH 012/134] 5.4.0 version bump --- src/PIL/_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PIL/_version.py b/src/PIL/_version.py index 3bfc16ff4..56dac78bb 100644 --- a/src/PIL/_version.py +++ b/src/PIL/_version.py @@ -1,2 +1,2 @@ # Master version for Pillow -__version__ = '5.4.0.dev0' +__version__ = '5.4.0' From d2d438794cdd80bdbc852c884f0473c86fb72ab3 Mon Sep 17 00:00:00 2001 From: Hugo Date: Tue, 1 Jan 2019 12:56:08 +0200 Subject: [PATCH 013/134] Fix for check-manifest --- MANIFEST.in | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFEST.in b/MANIFEST.in index 40b2ef5d7..809d0d667 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -22,6 +22,7 @@ exclude .coveragerc exclude .codecov.yml exclude .editorconfig exclude .landscape.yaml +exclude .readthedocs.yml exclude .travis exclude .travis/* exclude tox.ini From e32e3fdbeb8b2ad0f607f701f6422362f9c2f9c6 Mon Sep 17 00:00:00 2001 From: Hugo Date: Tue, 1 Jan 2019 20:26:53 +0200 Subject: [PATCH 014/134] 5.5.0.dev0 version bump --- src/PIL/_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PIL/_version.py b/src/PIL/_version.py index 56dac78bb..2835370a2 100644 --- a/src/PIL/_version.py +++ b/src/PIL/_version.py @@ -1,2 +1,2 @@ # Master version for Pillow -__version__ = '5.4.0' +__version__ = '5.5.0.dev0' From c579e7469ab5e375ef926937bb08da1a73daea89 Mon Sep 17 00:00:00 2001 From: Hugo Date: Tue, 1 Jan 2019 22:27:41 +0200 Subject: [PATCH 015/134] CI: Run check-manifest in lint job --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b66ed27f2..f7cb5899c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -67,7 +67,7 @@ services: install: - | if [ "$LINT" == "true" ]; then - pip install -U flake8 + pip install -U check-manifest flake8 elif [ "$DOCKER" == "" ]; then .travis/install.sh; fi @@ -84,6 +84,7 @@ script: - | if [ "$LINT" == "true" ]; then flake8 --statistics --count + check-manifest elif [ "$DOCKER" == "" ]; then .travis/script.sh elif [ "$DOCKER" ]; then From 92c69036354230e95085b986a8a6c0b0eadcf659 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 2 Jan 2019 08:33:21 +1100 Subject: [PATCH 016/134] Added updating Pillow in docker-images [ci skip] --- RELEASING.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/RELEASING.md b/RELEASING.md index b5e548e06..2965eeef5 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -107,3 +107,19 @@ Released as needed privately to individual vendors for critical security-related ## Documentation * [ ] Make sure the default version for Read the Docs is the latest release version, i.e. ``5.2.0`` rather than ``latest`` e.g. https://pillow.readthedocs.io/en/5.2.x/ + +## Docker images + +* [ ] Update Pillow for the [docker images](https://github.com/python-pillow/docker-images) +``` + $ git clone https://github.com/python-pillow/docker-images + $ cd docker-images + $ git submodule init + $ git submodule update Pillow + $ cd Pillow + $ git fetch --all + $ git checkout [[release tag]] + $ cd .. + $ git commit -m "Pillow -> 5.2.0" Pillow + $ git push +``` From 2eb7235d03a18d468510002be0b2b790e34f07eb Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Wed, 2 Jan 2019 10:33:25 +1100 Subject: [PATCH 017/134] Updated case Co-Authored-By: radarhere <3112309+radarhere@users.noreply.github.com> --- RELEASING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASING.md b/RELEASING.md index 2965eeef5..8a7a34157 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -110,7 +110,7 @@ Released as needed privately to individual vendors for critical security-related ## Docker images -* [ ] Update Pillow for the [docker images](https://github.com/python-pillow/docker-images) +* [ ] Update Pillow for the [Docker images](https://github.com/python-pillow/docker-images): ``` $ git clone https://github.com/python-pillow/docker-images $ cd docker-images From 97ae0c42b172b2cc6eadb3bac1e4fd597f764a17 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 2 Jan 2019 14:13:10 +1100 Subject: [PATCH 018/134] Detect whether mimetype is image/png or image/apng --- Tests/test_file_png.py | 3 +++ src/PIL/ImageFile.py | 4 +++- src/PIL/PngImagePlugin.py | 4 +++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Tests/test_file_png.py b/Tests/test_file_png.py index be52b3bd1..408a76444 100644 --- a/Tests/test_file_png.py +++ b/Tests/test_file_png.py @@ -86,6 +86,7 @@ class TestFilePng(PillowTestCase): self.assertEqual(im.mode, "RGB") self.assertEqual(im.size, (128, 128)) self.assertEqual(im.format, "PNG") + self.assertEqual(im.get_format_mimetype(), 'image/png') hopper("1").save(test_file) Image.open(test_file) @@ -589,6 +590,8 @@ class TestFilePng(PillowTestCase): "WebP support not installed with animation") def test_apng(self): im = Image.open("Tests/images/iss634.apng") + self.assertEqual(im.get_format_mimetype(), 'image/apng') + expected = Image.open("Tests/images/iss634.webp") self.assert_image_similar(im, expected, 0.23) diff --git a/src/PIL/ImageFile.py b/src/PIL/ImageFile.py index 915557a57..bcc910853 100644 --- a/src/PIL/ImageFile.py +++ b/src/PIL/ImageFile.py @@ -79,6 +79,8 @@ class ImageFile(Image.Image): self._min_frame = 0 + self.custom_mimetype = None + self.tile = None self.readonly = 1 # until we know better @@ -120,7 +122,7 @@ class ImageFile(Image.Image): def get_format_mimetype(self): if self.format is None: return - return Image.MIME.get(self.format.upper()) + return self.custom_mimetype or Image.MIME.get(self.format.upper()) def verify(self): "Check file integrity" diff --git a/src/PIL/PngImagePlugin.py b/src/PIL/PngImagePlugin.py index 04161a56c..d8ef56d73 100644 --- a/src/PIL/PngImagePlugin.py +++ b/src/PIL/PngImagePlugin.py @@ -296,6 +296,7 @@ class PngStream(ChunkStream): self.im_mode = None self.im_tile = None self.im_palette = None + self.im_custom_mimetype = None self.text_memory = 0 @@ -529,6 +530,7 @@ class PngStream(ChunkStream): # APNG chunks def chunk_acTL(self, pos, length): s = ImageFile._safe_read(self.fp, length) + self.im_custom_mimetype = 'image/apng' return s def chunk_fcTL(self, pos, length): @@ -594,6 +596,7 @@ class PngImageFile(ImageFile.ImageFile): self.info = self.png.im_info self._text = None self.tile = self.png.im_tile + self.custom_mimetype = self.png.im_custom_mimetype if self.png.im_palette: rawmode, data = self.png.im_palette @@ -908,4 +911,3 @@ Image.register_save(PngImageFile.format, _save) Image.register_extensions(PngImageFile.format, [".png", ".apng"]) Image.register_mime(PngImageFile.format, "image/png") -Image.register_mime(PngImageFile.format, "image/apng") From 42e2bed4a6a35b140352eba13b2e695023ca66e4 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 2 Jan 2019 12:45:07 +1100 Subject: [PATCH 019/134] If SGI image is RGB mode, then apply image/rgb mimetype --- Tests/test_file_sgi.py | 3 +++ src/PIL/SgiImagePlugin.py | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Tests/test_file_sgi.py b/Tests/test_file_sgi.py index aa33c9d93..76f8a3841 100644 --- a/Tests/test_file_sgi.py +++ b/Tests/test_file_sgi.py @@ -12,6 +12,7 @@ class TestFileSgi(PillowTestCase): im = Image.open(test_file) self.assert_image_equal(im, hopper()) + self.assertEqual(im.get_format_mimetype(), 'image/rgb') def test_rgb16(self): test_file = "Tests/images/hopper16.rgb" @@ -26,6 +27,7 @@ class TestFileSgi(PillowTestCase): im = Image.open(test_file) self.assert_image_similar(im, hopper('L'), 2) + self.assertEqual(im.get_format_mimetype(), 'image/sgi') def test_rgba(self): # Created with ImageMagick: @@ -35,6 +37,7 @@ class TestFileSgi(PillowTestCase): im = Image.open(test_file) target = Image.open('Tests/images/transparent.png') self.assert_image_equal(im, target) + self.assertEqual(im.get_format_mimetype(), 'image/sgi') def test_rle(self): # Created with ImageMagick: diff --git a/src/PIL/SgiImagePlugin.py b/src/PIL/SgiImagePlugin.py index 88df35135..91753380d 100644 --- a/src/PIL/SgiImagePlugin.py +++ b/src/PIL/SgiImagePlugin.py @@ -98,6 +98,8 @@ class SgiImageFile(ImageFile.ImageFile): self._size = xsize, ysize self.mode = rawmode.split(";")[0] + if self.mode == 'RGB': + self.custom_mimetype = 'image/rgb' # orientation -1 : scanlines begins at the bottom-left corner orientation = -1 @@ -220,7 +222,6 @@ Image.register_decoder("SGI16", SGI16Decoder) Image.register_open(SgiImageFile.format, SgiImageFile, _accept) Image.register_save(SgiImageFile.format, _save) Image.register_mime(SgiImageFile.format, "image/sgi") -Image.register_mime(SgiImageFile.format, "image/rgb") Image.register_extensions(SgiImageFile.format, [".bw", ".rgb", ".rgba", ".sgi"]) From bd7422f934dbdb1e93317c0c871277e9e54f2e2e Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 2 Jan 2019 15:39:39 +1100 Subject: [PATCH 020/134] Detect whether mimetype is image/jp2 or image/jpx --- Tests/images/balloon.jpf | Bin 0 -> 628654 bytes Tests/test_file_jpeg2k.py | 6 ++++++ src/PIL/Jpeg2KImagePlugin.py | 13 +++++++++---- 3 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 Tests/images/balloon.jpf diff --git a/Tests/images/balloon.jpf b/Tests/images/balloon.jpf new file mode 100644 index 0000000000000000000000000000000000000000..767eab5dde67d673e28b832635a4eb78d716fd80 GIT binary patch literal 628654 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

VP&GN#aqw`BQBN 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%0AkULmvM9>#7F^gmSz6pc{4SC2&bGNrIm{38lj-%H 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 literal 0 HcmV?d00001 diff --git a/Tests/test_file_jpeg2k.py b/Tests/test_file_jpeg2k.py index 8f027b651..db61b301b 100644 --- a/Tests/test_file_jpeg2k.py +++ b/Tests/test_file_jpeg2k.py @@ -39,6 +39,12 @@ class TestFileJpeg2k(PillowTestCase): self.assertEqual(im.mode, 'RGB') self.assertEqual(im.size, (640, 480)) self.assertEqual(im.format, 'JPEG2000') + self.assertEqual(im.get_format_mimetype(), 'image/jp2') + + def test_jpf(self): + im = Image.open('Tests/images/balloon.jpf') + self.assertEqual(im.format, 'JPEG2000') + self.assertEqual(im.get_format_mimetype(), 'image/jpx') def test_invalid_file(self): invalid_file = "Tests/images/flower.jpg" diff --git a/src/PIL/Jpeg2KImagePlugin.py b/src/PIL/Jpeg2KImagePlugin.py index 172162c9a..090337252 100644 --- a/src/PIL/Jpeg2KImagePlugin.py +++ b/src/PIL/Jpeg2KImagePlugin.py @@ -57,10 +57,11 @@ def _parse_codestream(fp): def _parse_jp2_header(fp): """Parse the JP2 header box to extract size, component count and - color space information, returning a PIL (size, mode) tuple.""" + color space information, returning a (size, mode, mimetype) tuple.""" # Find the JP2 header box header = None + mimetype = None while True: lbox, tbox = struct.unpack('>I4s', fp.read(8)) if lbox == 1: @@ -75,6 +76,10 @@ def _parse_jp2_header(fp): if tbox == b'jp2h': header = fp.read(lbox - hlen) break + elif tbox == b'ftyp': + if fp.read(4) == b'jpx ': + mimetype = 'image/jpx' + fp.seek(lbox - hlen - 4, os.SEEK_CUR) else: fp.seek(lbox - hlen, os.SEEK_CUR) @@ -145,7 +150,7 @@ def _parse_jp2_header(fp): if size is None or mode is None: raise SyntaxError("Malformed jp2 header") - return (size, mode) + return (size, mode, mimetype) ## # Image plugin for JPEG2000 images. @@ -165,7 +170,8 @@ class Jpeg2KImageFile(ImageFile.ImageFile): if sig == b'\x00\x00\x00\x0cjP \x0d\x0a\x87\x0a': self.codec = "jp2" - self._size, self.mode = _parse_jp2_header(self.fp) + header = _parse_jp2_header(self.fp) + self._size, self.mode, self.custom_mimetype = header else: raise SyntaxError('not a JPEG 2000 file') @@ -281,4 +287,3 @@ Image.register_extensions(Jpeg2KImageFile.format, [".jp2", ".j2k", ".jpc", ".jpf", ".jpx", ".j2c"]) Image.register_mime(Jpeg2KImageFile.format, 'image/jp2') -Image.register_mime(Jpeg2KImageFile.format, 'image/jpx') From 9cda1b32ab902422e658f27e0e51354d0ee59bdd Mon Sep 17 00:00:00 2001 From: Hugo Date: Wed, 2 Jan 2019 14:45:29 +0200 Subject: [PATCH 021/134] Remove hyphen, to include source: Pillow-5.4.0.tar.gz --- RELEASING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASING.md b/RELEASING.md index 8a7a34157..38e074621 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -23,7 +23,7 @@ Released quarterly on the first day of January, April, July, October. $ make sdist ``` * [ ] Create [binary distributions](#binary-distributions) -* [ ] Upload all binaries and source distributions e.g. ``twine upload dist/Pillow-5.2.0-*`` +* [ ] Upload all binaries and source distributions e.g. `twine upload dist/Pillow-5.2.0*` * [ ] Create a [new release on GitHub](https://github.com/python-pillow/Pillow/releases/new) * [ ] In compliance with [PEP 440](https://www.python.org/dev/peps/pep-0440/), append `.dev0` to version identifier in `src/PIL/_version.py` From a437477ff913e097ca4dc4d9e60e2cf89b502c82 Mon Sep 17 00:00:00 2001 From: Hugo Date: Wed, 2 Jan 2019 14:47:17 +0200 Subject: [PATCH 022/134] Use absolute links so they still work when pasting into release issue --- RELEASING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index 38e074621..b0c3b6668 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -22,7 +22,7 @@ Released quarterly on the first day of January, April, July, October. ``` $ make sdist ``` -* [ ] Create [binary distributions](#binary-distributions) +* [ ] Create [binary distributions](https://github.com/python-pillow/Pillow/blob/master/RELEASING.md#binary-distributions) * [ ] Upload all binaries and source distributions e.g. `twine upload dist/Pillow-5.2.0*` * [ ] Create a [new release on GitHub](https://github.com/python-pillow/Pillow/releases/new) * [ ] In compliance with [PEP 440](https://www.python.org/dev/peps/pep-0440/), append `.dev0` to version identifier in `src/PIL/_version.py` @@ -50,7 +50,7 @@ Released as needed for security, installation or critical bug fixes. ``` $ make sdist ``` -* [ ] Create [binary distributions](#binary-distributions) +* [ ] Create [binary distributions](https://github.com/python-pillow/Pillow/blob/master/RELEASING.md#binary-distributions) * [ ] Create a [new release on GitHub](https://github.com/python-pillow/Pillow/releases/new) ## Embargoed Release @@ -74,7 +74,7 @@ Released as needed privately to individual vendors for critical security-related ``` $ make sdist ``` -* [ ] Create [binary distributions](#binary-distributions) +* [ ] Create [binary distributions](https://github.com/python-pillow/Pillow/blob/master/RELEASING.md#binary-distributions) * [ ] Create a [new release on GitHub](https://github.com/python-pillow/Pillow/releases/new) ## Binary Distributions From 63b866ebb27e0bc4364d8d23d2b69101a186f133 Mon Sep 17 00:00:00 2001 From: Hugo Date: Wed, 2 Jan 2019 14:48:46 +0200 Subject: [PATCH 023/134] Increment and append .dev0 to version --- RELEASING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASING.md b/RELEASING.md index b0c3b6668..87e9e365f 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -25,7 +25,7 @@ Released quarterly on the first day of January, April, July, October. * [ ] Create [binary distributions](https://github.com/python-pillow/Pillow/blob/master/RELEASING.md#binary-distributions) * [ ] Upload all binaries and source distributions e.g. `twine upload dist/Pillow-5.2.0*` * [ ] Create a [new release on GitHub](https://github.com/python-pillow/Pillow/releases/new) -* [ ] In compliance with [PEP 440](https://www.python.org/dev/peps/pep-0440/), append `.dev0` to version identifier in `src/PIL/_version.py` +* [ ] In compliance with [PEP 440](https://www.python.org/dev/peps/pep-0440/), increment and append `.dev0` to version identifier in `src/PIL/_version.py` ## Point Release From e09ee7a5df7a0355ebae33f05ec027732d75e078 Mon Sep 17 00:00:00 2001 From: Pedro Lacerda Date: Wed, 2 Jan 2019 13:38:33 -0300 Subject: [PATCH 024/134] Fix build for Termux `_find_library_dirs_ldconfig` can return an empty list when `ldconfig` is missing, then `setup.py` can continue guessing library directories. fixes #3526 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 08184467a..46114f788 100755 --- a/setup.py +++ b/setup.py @@ -111,7 +111,7 @@ def _find_library_dirs_ldconfig(): stdout=subprocess.PIPE, env=env) except OSError: # E.g. command not found - return None + return [] [data, _] = p.communicate() if isinstance(data, bytes): data = data.decode() From 1b338998dca28e7a170367c8d9014d6cf23f1379 Mon Sep 17 00:00:00 2001 From: hugovk Date: Mon, 28 Sep 2015 22:24:45 +0300 Subject: [PATCH 025/134] Test a png file with iTXt chunks --- Tests/images/itxt_chunks.png | Bin 0 -> 69498 bytes Tests/test_pickle.py | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 Tests/images/itxt_chunks.png diff --git a/Tests/images/itxt_chunks.png b/Tests/images/itxt_chunks.png new file mode 100644 index 0000000000000000000000000000000000000000..ca098440c15ba6b77aa4b656936dad05d01f1306 GIT binary patch literal 69498 zcmeI5du$X{6vk(_TRYtr8K|YJ0U3D+YAGxJVevtywAdDbRzpfLeQbfMBs?0r0jZeo z)B+(Itfai8yc9_k1r-H?h)ZoWAfYH?Q88{~M3Jf+35Zg_+1<|BdEA{CQ;pz9LO5Nz zGqb-r_dAb!=kBtiNqN1TH#s?u>s64S`!L5PdN?lOC~sF@Ir!z-KFU9d)%jCvI4&tA z^w-9{(CkuPOz;*=9GCD-Vrue@x2$u?Ta=du%$!`}&6zuUcGVoO@*~IP%&V&OR?QF> z%=A7k<`qmVnvqeJz;Pm1kefaE30vn^2PWn`B;-6Ky)7)eye(&ZpX~Iqu|GF=KKk2J zUGs~_RP1P9I?!f!@Pa7$IF@m@WB;7irWMTp>wcSDXN%jsAjbQ{zY}Qm$-$y8UhEs| zEXr@Wh1xia>u_A3=;C{?9C17ABGvcBZN3|qL3a~0v@Q)Apb<;u;2ZD__y!`ZHn#u` z(1?{x!Z+X>@QqNRfvQcdJwZd8LxKiqpxYB_tD*O$t*k%;G^jyoFyI^T4TDQi5QT5R zH{cuL>9c>OS-oiBq1%7Fm+u;L^Dn`*`=1X_|DEi6Vd0p$@vBxDCj%S%1$(!6-)re( zF}+t}i|eS}6MLS~!EcFAZa7`LcyO%3T6ymq_Ul^CRa>1VKgq=(JLk+J;V>H>YN?Mt7rIF0m( zUs|($N@gtA51s7}k679}&FVC7`($_7j%sbCYP?g$ereCm8CIv6X^X4eTi#*#2)fh0 z=98=MFSR<&r^*e4qv#3!bB^->*z< zCoXUlIEtc|NNly$dUr{H3P@KhgbBe>;3%T>&s9LEdeBob7B$FGkfR_+F^-BzE{_}q zIf~tZE-iKO$v}>x?^=h!z){FQ$bh53QIxU+6NHQ`6BC5ymMI(sjv|Oya=<7^u;joz z_xN`mrKxu0X>~1tZona5LB4`~#a#A>UO~Qse8px*80xt&gwTT}lEzFA6_9RJL^??b zJqSGrJ^IxVa@P5uPPFbC?0j+fz#E>aFG_b7zB!y9de^9R-`4%SWZJ^r>t8v2{M4!N z^8xZqn_T_J!ZOQ6{HX%JV`&OI_lvAg!BNbyKQws?F5p4}?Z-GWEHsL=6u?EV->T4p z3%IC703r!fIuK#mLj+vFMU#0UlCa$YT)+hp7PUQx zXV7Y25l^`!HrGu{8=^^rbZiw0L5HK|u@0+^Mg04GQs$M`jC@+RYBmCid_!A{<<24t zl_u-uWo3=V3(#DfKSkg-E*@!h8_y~qx+~>fk?AUtn<@_z;V=yU7T_>3>Ss6%d&t3I z;4mc52uXxOZy+SGGbT8U-cN`U9EMQn3^)uNM&l5ulGr6As-zetBpl`%ahR?<>vHr> z3;CPj!QU#bT>9|+Q-x~xL<0pxH_C!~{eS`}3IXIS<{6)!f)ZGh7D)#EFU4;^d*z3V{qrJu z-oBi`#f$sC-CSM}&HE%VkWlH%(7a+w5;ygA3&p?gWea#DFSXm^a1cX^4kl)$0~0Wj zpeIrJRmB!ez{Ku=JVG8JkA^%dA ziC);i(jzQA!qTH2U3!G&M*sbN3>I9RKOv4wZj~l{*ZYr;2kmwpC@6m^Jm)8m_e&)Q z&scpWC+|pZurYDw_dMuO4l6o|l!)fIn-u+zhy%TUdVJJN3dCPsj63%4Wb1SFE$RSbvGK88D#e zAp%O&o5^Maj7#V;9D3OUA^lKRjBcK3^LIC|*hDrho fp!{E(*cV>iHe~go4Fe`~%AbO9lXAC@_0<0foeHn% literal 0 HcmV?d00001 diff --git a/Tests/test_pickle.py b/Tests/test_pickle.py index bdfd3582d..f24cff612 100644 --- a/Tests/test_pickle.py +++ b/Tests/test_pickle.py @@ -67,7 +67,8 @@ class TestPickle(PillowTestCase): "Tests/images/non_zero_bb.png", "Tests/images/non_zero_bb_scale2.png", "Tests/images/p_trns_single.png", - "Tests/images/pil123p.png" + "Tests/images/pil123p.png", + "Tests/images/itxt_chunks.png" ]: self.helper_pickle_string(pickle, test_file=test_file) From 9dbaf92f3e2673fb9ad30643d7e0acb383ec67ca Mon Sep 17 00:00:00 2001 From: hugovk Date: Tue, 29 Sep 2015 08:36:07 +0300 Subject: [PATCH 026/134] itxt_chunks.png fails with protocol v2 --- Tests/test_pickle.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Tests/test_pickle.py b/Tests/test_pickle.py index f24cff612..b6f5a5ae9 100644 --- a/Tests/test_pickle.py +++ b/Tests/test_pickle.py @@ -70,7 +70,10 @@ class TestPickle(PillowTestCase): "Tests/images/pil123p.png", "Tests/images/itxt_chunks.png" ]: - self.helper_pickle_string(pickle, test_file=test_file) + for protocol in range(0, pickle.HIGHEST_PROTOCOL + 1): + self.helper_pickle_string(pickle, + protocol=protocol, + test_file=test_file) def test_pickle_l_mode(self): # Arrange From f8df6d1687c2eba376b03b60a59b63c390c7d810 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 2 Jan 2019 18:56:54 +1100 Subject: [PATCH 027/134] Fixed pickling of iTXt class with protocol > 1 --- src/PIL/PngImagePlugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PIL/PngImagePlugin.py b/src/PIL/PngImagePlugin.py index 04161a56c..57d2f8341 100644 --- a/src/PIL/PngImagePlugin.py +++ b/src/PIL/PngImagePlugin.py @@ -192,7 +192,7 @@ class iTXt(str): """ @staticmethod - def __new__(cls, text, lang, tkey): + def __new__(cls, text, lang=None, tkey=None): """ :param cls: the class to use when creating the instance :param text: value for this key From fffb426092c8db24a5f4b6df243a8a3c01fb63cd Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 2 Jan 2019 07:53:16 +1100 Subject: [PATCH 028/134] Updated copyright year --- LICENSE | 2 +- docs/COPYING | 2 +- docs/conf.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/LICENSE b/LICENSE index 80456a753..c106eeb1a 100644 --- a/LICENSE +++ b/LICENSE @@ -5,7 +5,7 @@ The Python Imaging Library (PIL) is Pillow is the friendly PIL fork. It is - Copyright © 2010-2018 by Alex Clark and contributors + Copyright © 2010-2019 by Alex Clark and contributors Like PIL, Pillow is licensed under the open source PIL Software License: diff --git a/docs/COPYING b/docs/COPYING index 754527885..a1e258129 100644 --- a/docs/COPYING +++ b/docs/COPYING @@ -5,7 +5,7 @@ The Python Imaging Library (PIL) is Pillow is the friendly PIL fork. It is - Copyright © 2010-2018 by Alex Clark and contributors + Copyright © 2010-2019 by Alex Clark and contributors Like PIL, Pillow is licensed under the open source PIL Software License: diff --git a/docs/conf.py b/docs/conf.py index cd62f6227..e75546c49 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -48,7 +48,7 @@ master_doc = 'index' # General information about the project. project = u'Pillow (PIL Fork)' -copyright = u'1995-2011 Fredrik Lundh, 2010-2018 Alex Clark and Contributors' +copyright = u'1995-2011 Fredrik Lundh, 2010-2019 Alex Clark and Contributors' author = u'Fredrik Lundh, Alex Clark and Contributors' # The version info for the project you're documenting, acts as replacement for From ea2a0e46547aa26a47d91fded07c376924c54eb5 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 3 Jan 2019 19:13:19 +1100 Subject: [PATCH 029/134] Handle IDAT chunks after image end --- Tests/images/hopper_idat_after_image_end.png | Bin 0 -> 60692 bytes Tests/test_file_png.py | 4 ++++ src/PIL/PngImagePlugin.py | 2 ++ 3 files changed, 6 insertions(+) create mode 100644 Tests/images/hopper_idat_after_image_end.png diff --git a/Tests/images/hopper_idat_after_image_end.png b/Tests/images/hopper_idat_after_image_end.png new file mode 100644 index 0000000000000000000000000000000000000000..70b4a64002e854548b0d698cb5e76dc38d21ab1b GIT binary patch literal 60692 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 literal 0 HcmV?d00001 diff --git a/Tests/test_file_png.py b/Tests/test_file_png.py index be52b3bd1..5f0113070 100644 --- a/Tests/test_file_png.py +++ b/Tests/test_file_png.py @@ -585,6 +585,10 @@ class TestFilePng(PillowTestCase): self.assertIsInstance(im.text, dict) ImageFile.LOAD_TRUNCATED_IMAGES = False + # Raises an EOFError in load_end + im = Image.open("Tests/images/hopper_idat_after_image_end.png") + self.assertEqual(im.text, {'TXT': 'VALUE', 'ZIP': 'VALUE'}) + @unittest.skipUnless(HAVE_WEBP and _webp.HAVE_WEBPANIM, "WebP support not installed with animation") def test_apng(self): diff --git a/src/PIL/PngImagePlugin.py b/src/PIL/PngImagePlugin.py index 04161a56c..42c570668 100644 --- a/src/PIL/PngImagePlugin.py +++ b/src/PIL/PngImagePlugin.py @@ -677,6 +677,8 @@ class PngImageFile(ImageFile.ImageFile): self.png.call(cid, pos, length) except UnicodeDecodeError: break + except EOFError: + ImageFile._safe_read(self.fp, length) self._text = self.png.im_text self.png.close() self.png = None From 1276fe42e7d39a733514f9024f4ee2444db1f806 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Thu, 3 Jan 2019 21:56:45 +0200 Subject: [PATCH 030/134] Move Docker image update instructions to own repo Re: https://github.com/python-pillow/Pillow/pull/3523#issuecomment-450855713 --- RELEASING.md | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index 87e9e365f..d840b92b4 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -108,18 +108,3 @@ Released as needed privately to individual vendors for critical security-related * [ ] Make sure the default version for Read the Docs is the latest release version, i.e. ``5.2.0`` rather than ``latest`` e.g. https://pillow.readthedocs.io/en/5.2.x/ -## Docker images - -* [ ] Update Pillow for the [Docker images](https://github.com/python-pillow/docker-images): -``` - $ git clone https://github.com/python-pillow/docker-images - $ cd docker-images - $ git submodule init - $ git submodule update Pillow - $ cd Pillow - $ git fetch --all - $ git checkout [[release tag]] - $ cd .. - $ git commit -m "Pillow -> 5.2.0" Pillow - $ git push -``` From ffc0b678960555d09659cca686adf3e9891eac53 Mon Sep 17 00:00:00 2001 From: Alex Clark Date: Thu, 3 Jan 2019 17:54:45 -0500 Subject: [PATCH 031/134] [ci skip] Update release docs; exclude RTD changes Less RTD work! --- RELEASING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASING.md b/RELEASING.md index 8a7a34157..940871896 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -106,7 +106,7 @@ Released as needed privately to individual vendors for critical security-related ## Documentation -* [ ] Make sure the default version for Read the Docs is the latest release version, i.e. ``5.2.0`` rather than ``latest`` e.g. https://pillow.readthedocs.io/en/5.2.x/ +* [ ] Make sure the default version for Read the Docs is the latest tagged release e.g. ``d2d43879`` (5.4.0) ## Docker images From 71b64dcf7317495f413876f94175ada5eb7bb34d Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Fri, 4 Jan 2019 12:29:23 +1100 Subject: [PATCH 032/134] Only close __fp if not fp --- Tests/images/hopper_unknown_pixel_mode.tif | Bin 0 -> 196973 bytes Tests/test_file_tiff.py | 4 ++++ src/PIL/DcxImagePlugin.py | 3 ++- src/PIL/FliImagePlugin.py | 3 ++- src/PIL/GifImagePlugin.py | 3 ++- src/PIL/ImImagePlugin.py | 3 ++- src/PIL/Image.py | 8 ++++---- src/PIL/MicImagePlugin.py | 3 ++- src/PIL/MpoImagePlugin.py | 3 ++- src/PIL/SpiderImagePlugin.py | 3 ++- src/PIL/TiffImagePlugin.py | 3 ++- 11 files changed, 24 insertions(+), 12 deletions(-) create mode 100644 Tests/images/hopper_unknown_pixel_mode.tif diff --git a/Tests/images/hopper_unknown_pixel_mode.tif b/Tests/images/hopper_unknown_pixel_mode.tif new file mode 100644 index 0000000000000000000000000000000000000000..89a8c5e1717cc59c8115b2688487f72b4d6cedfe GIT binary patch literal 196973 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 WdGEbv?tS3B_nyA<&};78z4bqDwt%?+ literal 0 HcmV?d00001 diff --git a/Tests/test_file_tiff.py b/Tests/test_file_tiff.py index 95a181363..4a0bfea58 100644 --- a/Tests/test_file_tiff.py +++ b/Tests/test_file_tiff.py @@ -220,6 +220,10 @@ class TestFileTiff(PillowTestCase): self.assertEqual( im.getextrema(), (-3.140936851501465, 3.140684127807617)) + def test_unknown_pixel_mode(self): + self.assertRaises( + IOError, Image.open, 'Tests/images/hopper_unknown_pixel_mode.tif') + def test_n_frames(self): for path, n_frames in [ ['Tests/images/multipage-lastframe.tif', 1], diff --git a/src/PIL/DcxImagePlugin.py b/src/PIL/DcxImagePlugin.py index 1b72cbc99..34a413dd7 100644 --- a/src/PIL/DcxImagePlugin.py +++ b/src/PIL/DcxImagePlugin.py @@ -83,7 +83,8 @@ class DcxImageFile(PcxImageFile): def _close__fp(self): try: - self.__fp.close() + if self.__fp != self.fp: + self.__fp.close() except AttributeError: pass finally: diff --git a/src/PIL/FliImagePlugin.py b/src/PIL/FliImagePlugin.py index 1c8232fba..4c3f533f7 100644 --- a/src/PIL/FliImagePlugin.py +++ b/src/PIL/FliImagePlugin.py @@ -159,7 +159,8 @@ class FliImageFile(ImageFile.ImageFile): def _close__fp(self): try: - self.__fp.close() + if self.__fp != self.fp: + self.__fp.close() except AttributeError: pass finally: diff --git a/src/PIL/GifImagePlugin.py b/src/PIL/GifImagePlugin.py index 50b786a37..21fdcc476 100644 --- a/src/PIL/GifImagePlugin.py +++ b/src/PIL/GifImagePlugin.py @@ -304,7 +304,8 @@ class GifImageFile(ImageFile.ImageFile): def _close__fp(self): try: - self.__fp.close() + if self.__fp != self.fp: + self.__fp.close() except AttributeError: pass finally: diff --git a/src/PIL/ImImagePlugin.py b/src/PIL/ImImagePlugin.py index 1a4fdb65a..3ef6bed63 100644 --- a/src/PIL/ImImagePlugin.py +++ b/src/PIL/ImImagePlugin.py @@ -292,7 +292,8 @@ class ImImageFile(ImageFile.ImageFile): def _close__fp(self): try: - self.__fp.close() + if self.__fp != self.fp: + self.__fp.close() except AttributeError: pass finally: diff --git a/src/PIL/Image.py b/src/PIL/Image.py index 092cc8040..5c1b2a2a7 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -594,10 +594,10 @@ class Image(object): :ref:`file-handling` for more information. """ try: - self.fp.close() - self.fp = None if hasattr(self, "_close__fp"): self._close__fp() + self.fp.close() + self.fp = None except Exception as msg: logger.debug("Error closing: %s", msg) @@ -611,12 +611,12 @@ class Image(object): if sys.version_info.major >= 3: def __del__(self): + if hasattr(self, "_close__fp"): + self._close__fp() if (hasattr(self, 'fp') and hasattr(self, '_exclusive_fp') and self.fp and self._exclusive_fp): self.fp.close() self.fp = None - if hasattr(self, "_close__fp"): - self._close__fp() def _copy(self): self.load() diff --git a/src/PIL/MicImagePlugin.py b/src/PIL/MicImagePlugin.py index 6e29e456d..cff84d5eb 100644 --- a/src/PIL/MicImagePlugin.py +++ b/src/PIL/MicImagePlugin.py @@ -99,7 +99,8 @@ class MicImageFile(TiffImagePlugin.TiffImageFile): def _close__fp(self): try: - self.__fp.close() + if self.__fp != self.fp: + self.__fp.close() except AttributeError: pass finally: diff --git a/src/PIL/MpoImagePlugin.py b/src/PIL/MpoImagePlugin.py index 06b93d921..7afa3f35a 100644 --- a/src/PIL/MpoImagePlugin.py +++ b/src/PIL/MpoImagePlugin.py @@ -86,7 +86,8 @@ class MpoImageFile(JpegImagePlugin.JpegImageFile): def _close__fp(self): try: - self.__fp.close() + if self.__fp != self.fp: + self.__fp.close() except AttributeError: pass finally: diff --git a/src/PIL/SpiderImagePlugin.py b/src/PIL/SpiderImagePlugin.py index dcde2f395..4d5aa3f0e 100644 --- a/src/PIL/SpiderImagePlugin.py +++ b/src/PIL/SpiderImagePlugin.py @@ -195,7 +195,8 @@ class SpiderImageFile(ImageFile.ImageFile): def _close__fp(self): try: - self.__fp.close() + if self.__fp != self.fp: + self.__fp.close() except AttributeError: pass finally: diff --git a/src/PIL/TiffImagePlugin.py b/src/PIL/TiffImagePlugin.py index be24624d6..a39591937 100644 --- a/src/PIL/TiffImagePlugin.py +++ b/src/PIL/TiffImagePlugin.py @@ -1361,7 +1361,8 @@ class TiffImageFile(ImageFile.ImageFile): def _close__fp(self): try: - self.__fp.close() + if self.__fp != self.fp: + self.__fp.close() except AttributeError: pass finally: From 3c2940b002de54ff0ea499ac55e2b5d33dd8b0d8 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sat, 5 Jan 2019 01:00:15 +0200 Subject: [PATCH 033/134] Add 5.4.1 release notes --- docs/releasenotes/5.4.1.rst | 27 +++++++++++++++++++++++++++ docs/releasenotes/index.rst | 1 + 2 files changed, 28 insertions(+) create mode 100644 docs/releasenotes/5.4.1.rst diff --git a/docs/releasenotes/5.4.1.rst b/docs/releasenotes/5.4.1.rst new file mode 100644 index 000000000..465f70fc8 --- /dev/null +++ b/docs/releasenotes/5.4.1.rst @@ -0,0 +1,27 @@ +5.4.1 +----- + +This release fixes regressions in 5.4.0. + +Installation on Termux +^^^^^^^^^^^^^^^^^^^^^^ + +A change to the way Pillow detects libraries during installed prevented +installation on Termux, which does not have ``/sbin/ldconfig``. This is now +fixed. + +PNG: Handle IDAT chunks after image end +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Some PNG images have multiple IDAT chunks. In some cases, Pillow will stop +reading the image after one chunk. A regression caused an ``EOFError`` +exception when previously there was none. This is now fixed, and file reading +continues in case there are subsequent text chunks. + +PNG: MIME type +^^^^^^^^^^^^^^ + +The addition of limited APNG support to the PNG plugin also overwrote the MIME +type for PNG files, causing "image/apng" to be returned as the MIME type of +both APNG and PNG files. This has been fixed so the MIME type of PNG files is +"image/png". diff --git a/docs/releasenotes/index.rst b/docs/releasenotes/index.rst index df4fd4930..9f98d6961 100644 --- a/docs/releasenotes/index.rst +++ b/docs/releasenotes/index.rst @@ -6,6 +6,7 @@ Release Notes .. toctree:: :maxdepth: 2 + 5.4.1 5.4.0 5.3.0 5.2.0 From b2905aec0837d345b954dc7223c06d101abb3e06 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 5 Jan 2019 11:10:19 +1100 Subject: [PATCH 034/134] Updated release notes [ci skip] --- docs/releasenotes/5.4.1.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/releasenotes/5.4.1.rst b/docs/releasenotes/5.4.1.rst index 465f70fc8..7b8b5804f 100644 --- a/docs/releasenotes/5.4.1.rst +++ b/docs/releasenotes/5.4.1.rst @@ -14,9 +14,9 @@ PNG: Handle IDAT chunks after image end ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Some PNG images have multiple IDAT chunks. In some cases, Pillow will stop -reading the image after one chunk. A regression caused an ``EOFError`` -exception when previously there was none. This is now fixed, and file reading -continues in case there are subsequent text chunks. +reading image data before the IDAT chunks finish. A regression caused an +``EOFError`` exception when previously there was none. This is now fixed, and +file reading continues in case there are subsequent text chunks. PNG: MIME type ^^^^^^^^^^^^^^ From 63efe3cb2931e2638722c7a6b229a7ec83d9e390 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Sat, 5 Jan 2019 12:11:42 +0200 Subject: [PATCH 035/134] Update CHANGES.rst --- CHANGES.rst | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index 22fbb7b33..e7671dbb4 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -2,6 +2,24 @@ Changelog (Pillow) ================== +5.5.0 (unreleased) +------------------ + +- Detect MIME types #3525 + [radarhere] + +5.4.1 (unreleased) +------------------ + +- Fix build for Termux #3529 + [pslacerda] + +- PNG: Detect MIME types #3525 + [radarhere] + +- PNG: Handle IDAT chunks after image end #3532 + [radarhere] + 5.4.0 (2019-01-01) ------------------ From 93a2dce8f999015b356eb5f9ba407971040ce216 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 6 Jan 2019 16:00:51 +1100 Subject: [PATCH 036/134] Added release notes for #3540 [ci skip] --- docs/releasenotes/5.4.1.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/releasenotes/5.4.1.rst b/docs/releasenotes/5.4.1.rst index 7b8b5804f..350195f2c 100644 --- a/docs/releasenotes/5.4.1.rst +++ b/docs/releasenotes/5.4.1.rst @@ -25,3 +25,12 @@ The addition of limited APNG support to the PNG plugin also overwrote the MIME type for PNG files, causing "image/apng" to be returned as the MIME type of both APNG and PNG files. This has been fixed so the MIME type of PNG files is "image/png". + +File Closing +^^^^^^^^^^^^ + +A regression caused an unsupported image file to report a +``ValueError: seek of closed file`` exception instead of an ``OSError``. This +has been fixed by ensuring that image plugins only close their internal `__fp` +if they are not the same as ImageFile's `fp`, allowing each to manage their own +file pointers. From 39cd9764924b532c1eccc2936b9fecb88a774ec6 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Sun, 6 Jan 2019 21:29:54 +1100 Subject: [PATCH 037/134] Apply suggestions from code review Co-Authored-By: radarhere <3112309+radarhere@users.noreply.github.com> --- docs/releasenotes/5.4.1.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/releasenotes/5.4.1.rst b/docs/releasenotes/5.4.1.rst index 350195f2c..78f483db6 100644 --- a/docs/releasenotes/5.4.1.rst +++ b/docs/releasenotes/5.4.1.rst @@ -26,11 +26,11 @@ type for PNG files, causing "image/apng" to be returned as the MIME type of both APNG and PNG files. This has been fixed so the MIME type of PNG files is "image/png". -File Closing +File closing ^^^^^^^^^^^^ A regression caused an unsupported image file to report a ``ValueError: seek of closed file`` exception instead of an ``OSError``. This -has been fixed by ensuring that image plugins only close their internal `__fp` -if they are not the same as ImageFile's `fp`, allowing each to manage their own +has been fixed by ensuring that image plugins only close their internal ``__fp`` +if they are not the same as ``ImageFile``'s ``fp``, allowing each to manage their own file pointers. From 304800497a698bdf49999862fec7a177ed848ec6 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Sun, 6 Jan 2019 12:59:34 +0200 Subject: [PATCH 038/134] Update CHANGES.rst [CI skip] --- CHANGES.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index e7671dbb4..4d8be7404 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -8,9 +8,12 @@ Changelog (Pillow) - Detect MIME types #3525 [radarhere] -5.4.1 (unreleased) +5.4.1 (2019-01-06) ------------------ +- File closing: Only close __fp if not fp #3540 + [radarhere] + - Fix build for Termux #3529 [pslacerda] From 0a323d2aaeecfd958241eac83b6ad990d9dcef5e Mon Sep 17 00:00:00 2001 From: Hugo Date: Sun, 6 Jan 2019 16:15:54 +0200 Subject: [PATCH 039/134] Ignore output of viewdoc (run by 'make release-test') --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 87ae69d97..861b801b5 100644 --- a/.gitignore +++ b/.gitignore @@ -56,6 +56,9 @@ test_images # Sphinx documentation docs/_build/ +# viewdoc output +.long-description.html + # Vim cruft .*.swp From 38df53208abaa954e69830ae98d5b322816aee12 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sun, 6 Jan 2019 16:16:50 +0200 Subject: [PATCH 040/134] Check out release branch before cherry picking --- RELEASING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index 0df8ea1f9..9b4996347 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -33,12 +33,12 @@ Released as needed for security, installation or critical bug fixes. * [ ] Make necessary changes in ``master`` branch. * [ ] Update `CHANGES.rst`. -* [ ] Cherry pick individual commits from ``master`` branch to release branch e.g. ``5.2.x``. -* [ ] Check [Travis CI](https://travis-ci.org/python-pillow/Pillow) to confirm passing tests in release branch e.g. ``5.2.x``. * [ ] Check out release branch e.g.: ``` git checkout -t remotes/origin/5.2.x ``` +* [ ] Cherry pick individual commits from ``master`` branch to release branch e.g. ``5.2.x``. +* [ ] Check [Travis CI](https://travis-ci.org/python-pillow/Pillow) to confirm passing tests in release branch e.g. ``5.2.x``. * [ ] In compliance with [PEP 440](https://www.python.org/dev/peps/pep-0440/), update version identifier in `src/PIL/_version.py` * [ ] Run pre-release check via `make release-test`. * [ ] Create tag for release e.g.: From 7eebcbc968e9ff43305834d3581a9aec04817e09 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sun, 6 Jan 2019 16:17:37 +0200 Subject: [PATCH 041/134] Put username in code to prevent spamming when pasting checklist into release issue --- RELEASING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index 9b4996347..164891d7e 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -80,8 +80,8 @@ Released as needed privately to individual vendors for critical security-related ## Binary Distributions ### Windows -* [ ] Contact @cgohlke for Windows binaries via release ticket e.g. https://github.com/python-pillow/Pillow/issues/1174. -* [ ] Download and extract tarball from @cgohlke and ``twine upload *``. +* [ ] Contact `@cgohlke` for Windows binaries via release ticket e.g. https://github.com/python-pillow/Pillow/issues/1174. +* [ ] Download and extract tarball from `@cgohlke` and ``twine upload *``. ### Mac and Linux * [ ] Use the [Pillow Wheel Builder](https://github.com/python-pillow/pillow-wheels): From f77c5d48b44a15a930598ab8e37d2704a67b02fc Mon Sep 17 00:00:00 2001 From: Hugo Date: Sun, 6 Jan 2019 17:00:51 +0200 Subject: [PATCH 042/134] Add command to download distributions from container --- RELEASING.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/RELEASING.md b/RELEASING.md index 164891d7e..caf8fd789 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -98,7 +98,10 @@ Released as needed privately to individual vendors for critical security-related $ git push ``` * [ ] Download distributions from the [Pillow Wheel Builder container](http://a365fff413fe338398b6-1c8a9b3114517dc5fe17b7c3f8c63a43.r19.cf2.rackcdn.com/). - + ```bash + wget -m -A 'Pillow-*' \ + http://a365fff413fe338398b6-1c8a9b3114517dc5fe17b7c3f8c63a43.r19.cf2.rackcdn.com + ``` ## Publicize Release From ef85d67f21c43db6211c508594fa976e15547e61 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sun, 6 Jan 2019 17:05:52 +0200 Subject: [PATCH 043/134] Make code blocks copy/pastable --- RELEASING.md | 81 ++++++++++++++++++++++++++-------------------------- 1 file changed, 40 insertions(+), 41 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index caf8fd789..3da2fd000 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -12,16 +12,16 @@ Released quarterly on the first day of January, April, July, October. * [ ] Update `CHANGES.rst`. * [ ] Run pre-release check via `make release-test` in a freshly cloned repo. * [ ] Create branch and tag for release e.g.: -``` - $ git branch 5.2.x - $ git tag 5.2.0 - $ git push --all - $ git push --tags -``` + ```bash + git branch 5.2.x + git tag 5.2.0 + git push --all + git push --tags + ``` * [ ] Create source distributions e.g.: -``` - $ make sdist -``` + ```bash + make sdist + ``` * [ ] Create [binary distributions](https://github.com/python-pillow/Pillow/blob/master/RELEASING.md#binary-distributions) * [ ] Upload all binaries and source distributions e.g. `twine upload dist/Pillow-5.2.0*` * [ ] Create a [new release on GitHub](https://github.com/python-pillow/Pillow/releases/new) @@ -34,22 +34,22 @@ Released as needed for security, installation or critical bug fixes. * [ ] Make necessary changes in ``master`` branch. * [ ] Update `CHANGES.rst`. * [ ] Check out release branch e.g.: -``` - git checkout -t remotes/origin/5.2.x -``` + ```bash + git checkout -t remotes/origin/5.2.x + ``` * [ ] Cherry pick individual commits from ``master`` branch to release branch e.g. ``5.2.x``. * [ ] Check [Travis CI](https://travis-ci.org/python-pillow/Pillow) to confirm passing tests in release branch e.g. ``5.2.x``. * [ ] In compliance with [PEP 440](https://www.python.org/dev/peps/pep-0440/), update version identifier in `src/PIL/_version.py` * [ ] Run pre-release check via `make release-test`. * [ ] Create tag for release e.g.: -``` - $ git tag 5.2.1 - $ git push --tags -``` + ```bash + git tag 5.2.1 + git push --tags + ``` * [ ] Create source distributions e.g.: -``` - $ make sdist -``` + ```bash + make sdist + ``` * [ ] Create [binary distributions](https://github.com/python-pillow/Pillow/blob/master/RELEASING.md#binary-distributions) * [ ] Create a [new release on GitHub](https://github.com/python-pillow/Pillow/releases/new) @@ -64,16 +64,16 @@ Released as needed privately to individual vendors for critical security-related * [ ] Run pre-release check via `make release-test` * [ ] Amend any commits with the CVE # * [ ] On release date, tag and push to GitHub. -``` - git checkout 2.5.x - git tag 2.5.3 - git push origin 2.5.x - git push origin --tags -``` + ```bash + git checkout 2.5.x + git tag 2.5.3 + git push origin 2.5.x + git push origin --tags + ``` * [ ] Create source distributions e.g.: -``` - $ make sdist -``` + ```bash + make sdist + ``` * [ ] Create [binary distributions](https://github.com/python-pillow/Pillow/blob/master/RELEASING.md#binary-distributions) * [ ] Create a [new release on GitHub](https://github.com/python-pillow/Pillow/releases/new) @@ -85,18 +85,18 @@ Released as needed privately to individual vendors for critical security-related ### Mac and Linux * [ ] Use the [Pillow Wheel Builder](https://github.com/python-pillow/pillow-wheels): -``` - $ git clone https://github.com/python-pillow/pillow-wheels - $ cd pillow-wheels - $ git submodule init - $ git submodule update Pillow - $ cd Pillow - $ git fetch --all - $ git checkout [[release tag]] - $ cd .. - $ git commit -m "Pillow -> 5.2.0" Pillow - $ git push -``` + ```bash + git clone https://github.com/python-pillow/pillow-wheels + cd pillow-wheels + git submodule init + git submodule update Pillow + cd Pillow + git fetch --all + git checkout [[release tag]] + cd .. + git commit -m "Pillow -> 5.2.0" Pillow + git push + ``` * [ ] Download distributions from the [Pillow Wheel Builder container](http://a365fff413fe338398b6-1c8a9b3114517dc5fe17b7c3f8c63a43.r19.cf2.rackcdn.com/). ```bash wget -m -A 'Pillow-*' \ @@ -110,4 +110,3 @@ Released as needed privately to individual vendors for critical security-related ## Documentation * [ ] Make sure the default version for Read the Docs is the latest tagged release e.g. ``d2d43879`` (5.4.0) - From 683ea38a4ef0f1a0ac5eb1a816293b70eace167a Mon Sep 17 00:00:00 2001 From: Hugo Date: Sun, 6 Jan 2019 17:26:47 +0200 Subject: [PATCH 044/134] Single backticks for inline code in Markdown (double in RST) --- RELEASING.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index 3da2fd000..40a48c4d3 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -5,8 +5,8 @@ Released quarterly on the first day of January, April, July, October. * [ ] Open a release ticket e.g. https://github.com/python-pillow/Pillow/issues/3154 -* [ ] Develop and prepare release in ``master`` branch. -* [ ] Check [Travis CI](https://travis-ci.org/python-pillow/Pillow) and [AppVeyor CI](https://ci.appveyor.com/project/python-pillow/Pillow) to confirm passing tests in ``master`` branch. +* [ ] Develop and prepare release in `master` branch. +* [ ] Check [Travis CI](https://travis-ci.org/python-pillow/Pillow) and [AppVeyor CI](https://ci.appveyor.com/project/python-pillow/Pillow) to confirm passing tests in `master` branch. * [ ] Check that all of the wheel builds [Pillow Wheel Builder](https://github.com/python-pillow/pillow-wheels) pass the tests in Travis CI. * [ ] In compliance with [PEP 440](https://www.python.org/dev/peps/pep-0440/), update version identifier in `src/PIL/_version.py` * [ ] Update `CHANGES.rst`. @@ -31,14 +31,14 @@ Released quarterly on the first day of January, April, July, October. Released as needed for security, installation or critical bug fixes. -* [ ] Make necessary changes in ``master`` branch. +* [ ] Make necessary changes in `master` branch. * [ ] Update `CHANGES.rst`. * [ ] Check out release branch e.g.: ```bash git checkout -t remotes/origin/5.2.x ``` -* [ ] Cherry pick individual commits from ``master`` branch to release branch e.g. ``5.2.x``. -* [ ] Check [Travis CI](https://travis-ci.org/python-pillow/Pillow) to confirm passing tests in release branch e.g. ``5.2.x``. +* [ ] Cherry pick individual commits from `master` branch to release branch e.g. `5.2.x`. +* [ ] Check [Travis CI](https://travis-ci.org/python-pillow/Pillow) to confirm passing tests in release branch e.g. `5.2.x`. * [ ] In compliance with [PEP 440](https://www.python.org/dev/peps/pep-0440/), update version identifier in `src/PIL/_version.py` * [ ] Run pre-release check via `make release-test`. * [ ] Create tag for release e.g.: @@ -81,7 +81,7 @@ Released as needed privately to individual vendors for critical security-related ### Windows * [ ] Contact `@cgohlke` for Windows binaries via release ticket e.g. https://github.com/python-pillow/Pillow/issues/1174. -* [ ] Download and extract tarball from `@cgohlke` and ``twine upload *``. +* [ ] Download and extract tarball from `@cgohlke` and `twine upload *`. ### Mac and Linux * [ ] Use the [Pillow Wheel Builder](https://github.com/python-pillow/pillow-wheels): @@ -109,4 +109,4 @@ Released as needed privately to individual vendors for critical security-related ## Documentation -* [ ] Make sure the default version for Read the Docs is the latest tagged release e.g. ``d2d43879`` (5.4.0) +* [ ] Make sure the default version for Read the Docs is the latest tagged release e.g. `d2d43879` (5.4.0) From 8a05aae988c7f79de913544adc0f4212de8ebcdd Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Sun, 6 Jan 2019 15:17:54 -0800 Subject: [PATCH 045/134] Remove unused PillowTestCase.__str__ With the move to pytest, the class's string method is unused. pytest has its own test progress outputter. --- Tests/helper.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Tests/helper.py b/Tests/helper.py index c16798dca..b47604a60 100644 --- a/Tests/helper.py +++ b/Tests/helper.py @@ -53,10 +53,6 @@ class PillowTestCase(unittest.TestCase): # holds last result object passed to run method: self.currentResult = None - # Nicer output for --verbose - def __str__(self): - return self.__class__.__name__ + "." + self._testMethodName - def run(self, result=None): self.currentResult = result # remember result for use later unittest.TestCase.run(self, result) # call superclass run method From c0f4382af275a808d88f7de0100ec1ab32c59e3c Mon Sep 17 00:00:00 2001 From: cgohlke Date: Sun, 6 Jan 2019 19:49:00 -0800 Subject: [PATCH 046/134] Add TIFF compression codecs: LZMA, Zstd, WebP --- src/PIL/TiffImagePlugin.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/PIL/TiffImagePlugin.py b/src/PIL/TiffImagePlugin.py index a39591937..665920b0e 100644 --- a/src/PIL/TiffImagePlugin.py +++ b/src/PIL/TiffImagePlugin.py @@ -133,6 +133,9 @@ COMPRESSION_INFO = { 32946: "tiff_deflate", 34676: "tiff_sgilog", 34677: "tiff_sgilog24", + 34925: "lzma", + 50000: "zstd", + 50001: "webp", } COMPRESSION_INFO_REV = {v: k for k, v in COMPRESSION_INFO.items()} From 4e0a73b4faf4c0b16c6b3912b64f4ad7a6c99acf Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 8 Jan 2019 07:21:25 +1100 Subject: [PATCH 047/134] Allow for unknown PNG chunks after image data --- Tests/test_file_png.py | 1 + src/PIL/PngImagePlugin.py | 11 +++-------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/Tests/test_file_png.py b/Tests/test_file_png.py index c94f8eaad..840174444 100644 --- a/Tests/test_file_png.py +++ b/Tests/test_file_png.py @@ -596,6 +596,7 @@ class TestFilePng(PillowTestCase): im = Image.open("Tests/images/iss634.apng") self.assertEqual(im.get_format_mimetype(), 'image/apng') + # This also tests reading unknown PNG chunks (fcTL and fdAT) in load_end expected = Image.open("Tests/images/iss634.webp") self.assert_image_similar(im, expected, 0.23) diff --git a/src/PIL/PngImagePlugin.py b/src/PIL/PngImagePlugin.py index f3a2eaf21..0669ab216 100644 --- a/src/PIL/PngImagePlugin.py +++ b/src/PIL/PngImagePlugin.py @@ -533,14 +533,6 @@ class PngStream(ChunkStream): self.im_custom_mimetype = 'image/apng' return s - def chunk_fcTL(self, pos, length): - s = ImageFile._safe_read(self.fp, length) - return s - - def chunk_fdAT(self, pos, length): - s = ImageFile._safe_read(self.fp, length) - return s - # -------------------------------------------------------------------- # PNG reader @@ -682,6 +674,9 @@ class PngImageFile(ImageFile.ImageFile): break except EOFError: ImageFile._safe_read(self.fp, length) + except AttributeError: + logger.debug("%r %s %s (unknown)", cid, pos, length) + ImageFile._safe_read(self.fp, length) self._text = self.png.im_text self.png.close() self.png = None From 0ae7b3374e6c3280ab743d50ffc72482099fea81 Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Mon, 7 Jan 2019 20:15:04 -0800 Subject: [PATCH 048/134] Use bool type for ImageCms inPlace argument (instead of int) The argument is used as a bool and the docs describe it as a bool, so use an actual bool. --- src/PIL/ImageCms.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/PIL/ImageCms.py b/src/PIL/ImageCms.py index e8871bb1e..29959a83a 100644 --- a/src/PIL/ImageCms.py +++ b/src/PIL/ImageCms.py @@ -274,13 +274,13 @@ class PyCMSError(Exception): def profileToProfile( im, inputProfile, outputProfile, renderingIntent=INTENT_PERCEPTUAL, - outputMode=None, inPlace=0, flags=0): + outputMode=None, inPlace=False, flags=0): """ (pyCMS) Applies an ICC transformation to a given image, mapping from inputProfile to outputProfile. If the input or output profiles specified are not valid filenames, a - PyCMSError will be raised. If inPlace == TRUE and outputMode != im.mode, + PyCMSError will be raised. If inPlace is True and outputMode != im.mode, a PyCMSError will be raised. If an error occurs during application of the profiles, a PyCMSError will be raised. If outputMode is not a mode supported by the outputProfile (or by pyCMS), a PyCMSError will be @@ -317,9 +317,9 @@ def profileToProfile( MUST be the same mode as the input, or omitted completely. If omitted, the outputMode will be the same as the mode of the input image (im.mode) - :param inPlace: Boolean (1 = True, None or 0 = False). If True, the - original image is modified in-place, and None is returned. If False - (default), a new Image object is returned with the transform applied. + :param inPlace: Boolean. If True, the original image is modified in-place, + and None is returned. If False (default), a new Image object is + returned with the transform applied. :param flags: Integer (0-...) specifying additional flags :returns: Either None or a new PIL image object, depending on value of inPlace @@ -559,13 +559,13 @@ buildTransformFromOpenProfiles = buildTransform buildProofTransformFromOpenProfiles = buildProofTransform -def applyTransform(im, transform, inPlace=0): +def applyTransform(im, transform, inPlace=False): """ (pyCMS) Applies a transform to a given image. If im.mode != transform.inMode, a PyCMSError is raised. - If inPlace == TRUE and transform.inMode != transform.outMode, a + If inPlace is True and transform.inMode != transform.outMode, a PyCMSError is raised. If im.mode, transfer.inMode, or transfer.outMode is not supported by @@ -581,7 +581,7 @@ def applyTransform(im, transform, inPlace=0): considerable calculation time if doing the same conversion multiple times. If you want to modify im in-place instead of receiving a new image as - the return value, set inPlace to TRUE. This can only be done if + the return value, set inPlace to True. This can only be done if transform.inMode and transform.outMode are the same, because we can't change the mode in-place (the buffer sizes for some modes are different). The default behavior is to return a new Image object of @@ -590,10 +590,9 @@ def applyTransform(im, transform, inPlace=0): :param im: A PIL Image object, and im.mode must be the same as the inMode supported by the transform. :param transform: A valid CmsTransform class object - :param inPlace: Bool (1 == True, 0 or None == False). If True, im is - modified in place and None is returned, if False, a new Image object - with the transform applied is returned (and im is not changed). The - default is False. + :param inPlace: Bool. If True, im is modified in place and None is + returned, if False, a new Image object with the transform applied is + returned (and im is not changed). The default is False. :returns: Either None, or a new PIL Image object, depending on the value of inPlace. The profile will be returned in the image's info['icc_profile']. From 45740b4a2855bc9d6941780a5bb860635e0322f8 Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Mon, 7 Jan 2019 21:12:07 -0800 Subject: [PATCH 049/134] Install optional dependencies in tox environment Improves test coverage by reducing skipped tests when testing through tox. --- tox.ini | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 1226619db..3ae11eea0 100644 --- a/tox.ini +++ b/tox.ini @@ -12,4 +12,9 @@ commands = {envpython} setup.py build_ext --inplace {envpython} selftest.py {envpython} -m pytest -qq {posargs} -deps = pytest +deps = + cffi + numpy + olefile + pyroma + pytest From 7acaf3d6a692acdd350ee36cd0881f5f822d02f0 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 10 Jan 2019 07:26:52 +1100 Subject: [PATCH 050/134] Added support for I;16 modes for more transpose operations --- Tests/test_image_transpose.py | 13 ++++++------- src/libImaging/Geometry.c | 12 ++++++++++-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Tests/test_image_transpose.py b/Tests/test_image_transpose.py index a6b1191db..01501bc18 100644 --- a/Tests/test_image_transpose.py +++ b/Tests/test_image_transpose.py @@ -7,10 +7,9 @@ from PIL.Image import (FLIP_LEFT_RIGHT, FLIP_TOP_BOTTOM, ROTATE_90, ROTATE_180, class TestImageTranspose(PillowTestCase): - hopper = { - 'L': helper.hopper('L').crop((0, 0, 121, 127)).copy(), - 'RGB': helper.hopper('RGB').crop((0, 0, 121, 127)).copy(), - } + hopper = {mode: helper.hopper(mode).crop((0, 0, 121, 127)).copy() for mode in [ + 'L', 'RGB', 'I;16', 'I;16L', 'I;16B' + ]} def test_flip_left_right(self): def transpose(mode): @@ -25,7 +24,7 @@ class TestImageTranspose(PillowTestCase): self.assertEqual(im.getpixel((1, y-2)), out.getpixel((x-2, y-2))) self.assertEqual(im.getpixel((x-2, y-2)), out.getpixel((1, y-2))) - for mode in ("L", "RGB"): + for mode in ("L", "RGB", "I;16", "I;16L", "I;16B"): transpose(mode) def test_flip_top_bottom(self): @@ -41,7 +40,7 @@ class TestImageTranspose(PillowTestCase): self.assertEqual(im.getpixel((1, y-2)), out.getpixel((1, 1))) self.assertEqual(im.getpixel((x-2, y-2)), out.getpixel((x-2, 1))) - for mode in ("L", "RGB"): + for mode in ("L", "RGB", "I;16", "I;16L", "I;16B"): transpose(mode) def test_rotate_90(self): @@ -73,7 +72,7 @@ class TestImageTranspose(PillowTestCase): self.assertEqual(im.getpixel((1, y-2)), out.getpixel((x-2, 1))) self.assertEqual(im.getpixel((x-2, y-2)), out.getpixel((1, 1))) - for mode in ("L", "RGB"): + for mode in ("L", "RGB", "I;16", "I;16L", "I;16B"): transpose(mode) def test_rotate_270(self): diff --git a/src/libImaging/Geometry.c b/src/libImaging/Geometry.c index 1d08728da..5358f6eeb 100644 --- a/src/libImaging/Geometry.c +++ b/src/libImaging/Geometry.c @@ -39,7 +39,11 @@ ImagingFlipLeftRight(Imaging imOut, Imaging imIn) ImagingSectionEnter(&cookie); if (imIn->image8) { - FLIP_LEFT_RIGHT(UINT8, image8) + if (strncmp(imIn->mode, "I;16", 4) == 0) { + FLIP_LEFT_RIGHT(UINT16, image8) + } else { + FLIP_LEFT_RIGHT(UINT8, image8) + } } else { FLIP_LEFT_RIGHT(INT32, image32) } @@ -253,7 +257,11 @@ ImagingRotate180(Imaging imOut, Imaging imIn) yr = imIn->ysize-1; if (imIn->image8) { - ROTATE_180(UINT8, image8) + if (strncmp(imIn->mode, "I;16", 4) == 0) { + ROTATE_180(UINT16, image8) + } else { + ROTATE_180(UINT8, image8) + } } else { ROTATE_180(INT32, image32) } From eccef43837c24846b8557bb03eb5bbf6370c74ae Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Fri, 11 Jan 2019 20:23:29 -0800 Subject: [PATCH 051/134] Remove unused _tkinter var from setup.py Unused since 659e2946766017789e4254fa2e24096bd6abcca6. --- setup.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/setup.py b/setup.py index 79f912b12..806c9b46b 100755 --- a/setup.py +++ b/setup.py @@ -178,12 +178,6 @@ def get_version(): return locals()['__version__'] -try: - import _tkinter -except (ImportError, OSError): - # pypy emits an oserror - _tkinter = None - NAME = 'Pillow' PILLOW_VERSION = get_version() JPEG_ROOT = None From a08bfa6e9f07d07f15d8765c683b3224b282699d Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Thu, 10 Jan 2019 18:19:21 -0800 Subject: [PATCH 052/134] Make ContainerIO.isatty() return a bool, not int Better follows the interface of IOBase.isatty: https://docs.python.org/3/library/io.html#io.IOBase.isatty --- Tests/test_file_container.py | 2 +- src/PIL/ContainerIO.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/test_file_container.py b/Tests/test_file_container.py index 55228be0c..19fce637f 100644 --- a/Tests/test_file_container.py +++ b/Tests/test_file_container.py @@ -16,7 +16,7 @@ class TestFileContainer(PillowTestCase): im = hopper() container = ContainerIO.ContainerIO(im, 0, 0) - self.assertEqual(container.isatty(), 0) + self.assertFalse(container.isatty()) def test_seek_mode_0(self): # Arrange diff --git a/src/PIL/ContainerIO.py b/src/PIL/ContainerIO.py index 682ad9031..e2a89502f 100644 --- a/src/PIL/ContainerIO.py +++ b/src/PIL/ContainerIO.py @@ -39,7 +39,7 @@ class ContainerIO(object): # Always false. def isatty(self): - return 0 + return False def seek(self, offset, mode=0): """ From a00fc33c045bab0ff8b4a7cf289a70937c63e96c Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Sat, 12 Jan 2019 18:05:46 -0800 Subject: [PATCH 053/134] Replace .seek() magic numbers with io.SEEK_* constants A bit more readable. https://docs.python.org/3/library/io.html#io.IOBase.seek --- src/PIL/ContainerIO.py | 4 +++- src/PIL/EpsImagePlugin.py | 6 +++--- src/PIL/IcnsImagePlugin.py | 2 +- src/PIL/ImageFile.py | 4 ++-- src/PIL/Jpeg2KImagePlugin.py | 4 ++-- src/PIL/PcfFontFile.py | 3 ++- src/PIL/PcxImagePlugin.py | 3 ++- src/PIL/PsdImagePlugin.py | 7 ++++--- src/PIL/TarIO.py | 3 ++- src/PIL/TiffImagePlugin.py | 2 +- 10 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/PIL/ContainerIO.py b/src/PIL/ContainerIO.py index 682ad9031..c060b9960 100644 --- a/src/PIL/ContainerIO.py +++ b/src/PIL/ContainerIO.py @@ -18,6 +18,8 @@ # A file object that provides read access to a part of an existing # file (for example a TAR file). +import io + class ContainerIO(object): @@ -41,7 +43,7 @@ class ContainerIO(object): def isatty(self): return 0 - def seek(self, offset, mode=0): + def seek(self, offset, mode=io.SEEK_SET): """ Move file pointer. diff --git a/src/PIL/EpsImagePlugin.py b/src/PIL/EpsImagePlugin.py index cc2c1b1f8..37fe5d65c 100644 --- a/src/PIL/EpsImagePlugin.py +++ b/src/PIL/EpsImagePlugin.py @@ -102,7 +102,7 @@ def Ghostscript(tile, size, fp, scale=1): # Copy whole file to read in Ghostscript with open(infile_temp, 'wb') as f: # fetch length of fp - fp.seek(0, 2) + fp.seek(0, io.SEEK_END) fsize = fp.tell() # ensure start position # go back @@ -167,7 +167,7 @@ class PSFile(object): self.fp = fp self.char = None - def seek(self, offset, whence=0): + def seek(self, offset, whence=io.SEEK_SET): self.char = None self.fp.seek(offset, whence) @@ -310,7 +310,7 @@ class EpsImageFile(ImageFile.ImageFile): if s[:4] == b"%!PS": # for HEAD without binary preview - fp.seek(0, 2) + fp.seek(0, io.SEEK_END) length = fp.tell() offset = 0 elif i32(s[0:4]) == 0xC6D3D0C5: diff --git a/src/PIL/IcnsImagePlugin.py b/src/PIL/IcnsImagePlugin.py index 2ea66675f..4a10b24b8 100644 --- a/src/PIL/IcnsImagePlugin.py +++ b/src/PIL/IcnsImagePlugin.py @@ -195,7 +195,7 @@ class IcnsFile(object): i += HEADERSIZE blocksize -= HEADERSIZE dct[sig] = (i, blocksize) - fobj.seek(blocksize, 1) + fobj.seek(blocksize, io.SEEK_CUR) i += blocksize def itersizes(self): diff --git a/src/PIL/ImageFile.py b/src/PIL/ImageFile.py index bcc910853..7487082af 100644 --- a/src/PIL/ImageFile.py +++ b/src/PIL/ImageFile.py @@ -491,7 +491,7 @@ def _save(im, fp, tile, bufsize=0): for e, b, o, a in tile: e = Image._getencoder(im.mode, e, a, im.encoderconfig) if o > 0: - fp.seek(o, 0) + fp.seek(o) e.setimage(im.im, b) if e.pushes_fd: e.setfd(fp) @@ -510,7 +510,7 @@ def _save(im, fp, tile, bufsize=0): for e, b, o, a in tile: e = Image._getencoder(im.mode, e, a, im.encoderconfig) if o > 0: - fp.seek(o, 0) + fp.seek(o) e.setimage(im.im, b) if e.pushes_fd: e.setfd(fp) diff --git a/src/PIL/Jpeg2KImagePlugin.py b/src/PIL/Jpeg2KImagePlugin.py index 090337252..f5b2be332 100644 --- a/src/PIL/Jpeg2KImagePlugin.py +++ b/src/PIL/Jpeg2KImagePlugin.py @@ -191,9 +191,9 @@ class Jpeg2KImageFile(ImageFile.ImageFile): fd = -1 try: pos = self.fp.tell() - self.fp.seek(0, 2) + self.fp.seek(0, io.SEEK_END) length = self.fp.tell() - self.fp.seek(pos, 0) + self.fp.seek(pos) except Exception: length = -1 diff --git a/src/PIL/PcfFontFile.py b/src/PIL/PcfFontFile.py index 471d6647a..b50fe72da 100644 --- a/src/PIL/PcfFontFile.py +++ b/src/PIL/PcfFontFile.py @@ -16,6 +16,7 @@ # See the README file for information on usage and redistribution. # +import io from . import Image, FontFile from ._binary import i8, i16le as l16, i32le as l32, i16be as b16, i32be as b32 @@ -117,7 +118,7 @@ class PcfFontFile(FontFile.FontFile): for i in range(nprops): p.append((i32(fp.read(4)), i8(fp.read(1)), i32(fp.read(4)))) if nprops & 3: - fp.seek(4 - (nprops & 3), 1) # pad + fp.seek(4 - (nprops & 3), io.SEEK_CUR) # pad data = fp.read(i32(fp.read(4))) diff --git a/src/PIL/PcxImagePlugin.py b/src/PIL/PcxImagePlugin.py index daa58b3f3..ba1e8611e 100644 --- a/src/PIL/PcxImagePlugin.py +++ b/src/PIL/PcxImagePlugin.py @@ -25,6 +25,7 @@ # See the README file for information on usage and redistribution. # +import io import logging from . import Image, ImageFile, ImagePalette from ._binary import i8, i16le as i16, o8, o16le as o16 @@ -80,7 +81,7 @@ class PcxImageFile(ImageFile.ImageFile): elif version == 5 and bits == 8 and planes == 1: mode = rawmode = "L" # FIXME: hey, this doesn't work with the incremental loader !!! - self.fp.seek(-769, 2) + self.fp.seek(-769, io.SEEK_END) s = self.fp.read(769) if len(s) == 769 and i8(s[0]) == 12: # check if the palette is linear greyscale diff --git a/src/PIL/PsdImagePlugin.py b/src/PIL/PsdImagePlugin.py index 765895244..6039cd6da 100644 --- a/src/PIL/PsdImagePlugin.py +++ b/src/PIL/PsdImagePlugin.py @@ -18,6 +18,7 @@ __version__ = "0.4" +import io from . import Image, ImageFile, ImagePalette from ._binary import i8, i16be as i16, i32be as i32 @@ -214,12 +215,12 @@ def _layerinfo(file): if size: length = i32(read(4)) if length: - file.seek(length - 16, 1) + file.seek(length - 16, io.SEEK_CUR) combined += length + 4 length = i32(read(4)) if length: - file.seek(length, 1) + file.seek(length, io.SEEK_CUR) combined += length + 4 length = i8(read(1)) @@ -229,7 +230,7 @@ def _layerinfo(file): name = read(length).decode('latin-1', 'replace') combined += length + 1 - file.seek(size - combined, 1) + file.seek(size - combined, io.SEEK_CUR) layers.append((name, mode, (x0, y0, x1, y1))) # get tiles diff --git a/src/PIL/TarIO.py b/src/PIL/TarIO.py index 89957fba4..a421b12a5 100644 --- a/src/PIL/TarIO.py +++ b/src/PIL/TarIO.py @@ -14,6 +14,7 @@ # See the README file for information on usage and redistribution. # +import io import sys from . import ContainerIO @@ -51,7 +52,7 @@ class TarIO(ContainerIO.ContainerIO): if file == name: break - self.fh.seek((size + 511) & (~511), 1) + self.fh.seek((size + 511) & (~511), io.SEEK_CUR) # Open region ContainerIO.ContainerIO.__init__(self, self.fh, self.fh.tell(), size) diff --git a/src/PIL/TiffImagePlugin.py b/src/PIL/TiffImagePlugin.py index a39591937..151f908fb 100644 --- a/src/PIL/TiffImagePlugin.py +++ b/src/PIL/TiffImagePlugin.py @@ -1678,7 +1678,7 @@ class AppendingTiffWriter: def tell(self): return self.f.tell() - self.offsetOfNewPage - def seek(self, offset, whence): + def seek(self, offset, whence=io.SEEK_SET): if whence == os.SEEK_SET: offset += self.offsetOfNewPage From 3e28ba3b7d7f1b89e074862277cb9fbf44e4ae22 Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Sat, 12 Jan 2019 18:24:27 -0800 Subject: [PATCH 054/134] Python del is a statement not a function https://docs.python.org/3/reference/simple_stmts.html#the-del-statement --- Tests/test_file_libtiff.py | 4 ++-- src/PIL/Image.py | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Tests/test_file_libtiff.py b/Tests/test_file_libtiff.py index 6834b7256..63dc49cde 100644 --- a/Tests/test_file_libtiff.py +++ b/Tests/test_file_libtiff.py @@ -195,7 +195,7 @@ class TestFileLibTiff(LibTiffTestCase): im = Image.open('Tests/images/hopper_g4.tif') for tag in im.tag_v2: try: - del(core_items[tag]) + del core_items[tag] except KeyError: pass @@ -223,7 +223,7 @@ class TestFileLibTiff(LibTiffTestCase): for _ in range(info.length)) # Extra samples really doesn't make sense in this application. - del(new_ifd[338]) + del new_ifd[338] out = self.tempfile("temp.tif") TiffImagePlugin.WRITE_LIBTIFF = True diff --git a/src/PIL/Image.py b/src/PIL/Image.py index 5c1b2a2a7..a67d3288f 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -958,7 +958,7 @@ class Image(object): # color to an alpha channel. new_im = self._new(self.im.convert_transparent( mode, self.info['transparency'])) - del(new_im.info['transparency']) + del new_im.info['transparency'] return new_im elif self.mode in ('L', 'RGB', 'P') and mode in ('L', 'RGB', 'P'): t = self.info['transparency'] @@ -1010,14 +1010,14 @@ class Image(object): if delete_trns: # This could possibly happen if we requantize to fewer colors. # The transparency would be totally off in that case. - del(new.info['transparency']) + del new.info['transparency'] if trns is not None: try: new.info['transparency'] = new.palette.getcolor(trns) except Exception: # if we can't make a transparent color, don't leave the old # transparency hanging around to mess us up. - del(new.info['transparency']) + del new.info['transparency'] warnings.warn("Couldn't allocate palette entry " + "for transparency") return new @@ -1039,13 +1039,13 @@ class Image(object): new_im = self._new(im) if delete_trns: # crash fail if we leave a bytes transparency in an rgb/l mode. - del(new_im.info['transparency']) + del new_im.info['transparency'] if trns is not None: if new_im.mode == 'P': try: new_im.info['transparency'] = new_im.palette.getcolor(trns) except Exception: - del(new_im.info['transparency']) + del new_im.info['transparency'] warnings.warn("Couldn't allocate palette entry " + "for transparency") else: From 51e95f62526edd6f06b3e1878a12676ce7e89c77 Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Sat, 12 Jan 2019 18:32:14 -0800 Subject: [PATCH 055/134] Catch BaseException for resource cleanup handlers In the event of a SystemExit or KeyboardInterrupt, file resources should still be cleaned up before re-raising the exception. https://docs.python.org/3/library/exceptions.html#exception-hierarchy --- src/PIL/Image.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index 5c1b2a2a7..c6eb26781 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -2663,7 +2663,7 @@ def open(fp, mode="r"): # opening failures that are entirely expected. # logger.debug("", exc_info=True) continue - except Exception: + except BaseException: if exclusive_fp: fp.close() raise From 80e96b2c7b32486857e10e4b5699d01cd9760c91 Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Sat, 12 Jan 2019 18:45:37 -0800 Subject: [PATCH 056/134] Use bare 'raise' to re-raise exceptions Slightly more concise and nicer syntax --- Tests/helper.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/helper.py b/Tests/helper.py index b47604a60..970198ef4 100644 --- a/Tests/helper.py +++ b/Tests/helper.py @@ -140,14 +140,14 @@ class PillowTestCase(unittest.TestCase): (msg or '') + " average pixel value difference %.4f > epsilon %.4f" % ( ave_diff, epsilon)) - except Exception as e: + except Exception: if HAS_UPLOADER: try: url = test_image_results.upload(a, b) logger.error("Url for test images: %s" % url) except Exception: pass - raise e + raise def assert_image_similar_tofile(self, a, filename, epsilon, msg=None, mode=None): From e19d8dd84b8aec9d6b7dc00e5e5dd624b7b7fd5a Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Sun, 13 Jan 2019 08:55:06 -0800 Subject: [PATCH 057/134] Add linting to the tox matrix Allows contributors to easily run the lint stage with a single command: `tox -e lint`. This creates shorter round trips with CI in case of an error. Update the Travis configuration to use the new environment to run lint. This allows using a single/common source of truth to reduce differences between Travis and local testing. The tox environment uses the skip_install feature as static analysis doesn't requiring install the Pillow package itself to run. This feature requires tox 1.9 (2015-02-24), so a minimum tox version was added to the configuration. https://tox.readthedocs.io/en/latest/config.html#conf-skip_install --- .travis.yml | 5 ++--- tox.ini | 14 +++++++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index f7cb5899c..306bf5b33 100644 --- a/.travis.yml +++ b/.travis.yml @@ -67,7 +67,7 @@ services: install: - | if [ "$LINT" == "true" ]; then - pip install -U check-manifest flake8 + pip install tox elif [ "$DOCKER" == "" ]; then .travis/install.sh; fi @@ -83,8 +83,7 @@ before_script: script: - | if [ "$LINT" == "true" ]; then - flake8 --statistics --count - check-manifest + tox -e lint elif [ "$DOCKER" == "" ]; then .travis/script.sh elif [ "$DOCKER" ]; then diff --git a/tox.ini b/tox.ini index 3ae11eea0..7aa4e7b23 100644 --- a/tox.ini +++ b/tox.ini @@ -4,7 +4,10 @@ # and then run "tox" from this directory. [tox] -envlist = py27, py34, py35, py36, py37 +envlist = + lint + py{27,34,35,36,37} +minversion = 1.9 [testenv] commands = @@ -18,3 +21,12 @@ deps = olefile pyroma pytest + +[testenv:lint] +commands = + flake8 --statistics --count + check-manifest +deps = + check-manifest + flake8 +skip_install = true From 7da17ad41e77be486828189f8a1baac0b049df36 Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Sun, 13 Jan 2019 09:00:12 -0800 Subject: [PATCH 058/134] Improve pytest configuration to allow specific tests as CLI args The previous test configuration made it difficult to run a single test with the pytest CLI. There were two major issues: - The Tests directory was not a package. It now includes a __init__.py file and imports from other tests modules are done with relative imports. - setup.cfg always specified the Tests directory. So even if a specific test were specified as a CLI arg, this configuration would also always include all tests. This configuration has been removed to allow specifying a single test on the command line. Contributors can now run specific tests with a single command such as: $ tox -e py37 -- Tests/test_file_pdf.py::TestFilePdf.test_rgb This makes it easy and faster to iterate on a single test failure and is very familiar to those that have previously used tox and pytest. When running tox or pytest with no arguments, they still discover and runs all tests in the Tests directory. --- Tests/__init__.py | 0 Tests/bench_cffi_access.py | 2 +- Tests/bench_get.py | 2 +- Tests/check_fli_overflow.py | 2 +- Tests/check_imaging_leaks.py | 2 +- Tests/check_j2k_leaks.py | 2 +- Tests/check_j2k_overflow.py | 2 +- Tests/check_jpeg_leaks.py | 2 +- Tests/check_large_memory.py | 2 +- Tests/check_large_memory_numpy.py | 2 +- Tests/check_libtiff_segfault.py | 2 +- Tests/check_png_dos.py | 2 +- Tests/test_000_sanity.py | 2 +- Tests/test_binary.py | 2 +- Tests/test_bmp_reference.py | 2 +- Tests/test_box_blur.py | 2 +- Tests/test_color_lut.py | 2 +- Tests/test_core_resources.py | 2 +- Tests/test_decompression_bomb.py | 2 +- Tests/test_features.py | 2 +- Tests/test_file_blp.py | 2 +- Tests/test_file_bmp.py | 2 +- Tests/test_file_bufrstub.py | 2 +- Tests/test_file_container.py | 2 +- Tests/test_file_cur.py | 2 +- Tests/test_file_dcx.py | 2 +- Tests/test_file_dds.py | 2 +- Tests/test_file_eps.py | 2 +- Tests/test_file_fitsstub.py | 2 +- Tests/test_file_fli.py | 2 +- Tests/test_file_fpx.py | 2 +- Tests/test_file_ftex.py | 2 +- Tests/test_file_gbr.py | 2 +- Tests/test_file_gd.py | 2 +- Tests/test_file_gif.py | 2 +- Tests/test_file_gimpgradient.py | 2 +- Tests/test_file_gimppalette.py | 2 +- Tests/test_file_gribstub.py | 2 +- Tests/test_file_hdf5stub.py | 2 +- Tests/test_file_icns.py | 2 +- Tests/test_file_ico.py | 2 +- Tests/test_file_im.py | 2 +- Tests/test_file_iptc.py | 2 +- Tests/test_file_jpeg.py | 4 ++-- Tests/test_file_jpeg2k.py | 2 +- Tests/test_file_libtiff.py | 2 +- Tests/test_file_libtiff_small.py | 4 ++-- Tests/test_file_mcidas.py | 2 +- Tests/test_file_mic.py | 2 +- Tests/test_file_mpo.py | 2 +- Tests/test_file_msp.py | 2 +- Tests/test_file_palm.py | 2 +- Tests/test_file_pcd.py | 2 +- Tests/test_file_pcx.py | 2 +- Tests/test_file_pdf.py | 2 +- Tests/test_file_pixar.py | 2 +- Tests/test_file_png.py | 2 +- Tests/test_file_ppm.py | 2 +- Tests/test_file_psd.py | 2 +- Tests/test_file_sgi.py | 2 +- Tests/test_file_spider.py | 2 +- Tests/test_file_sun.py | 2 +- Tests/test_file_tar.py | 2 +- Tests/test_file_tga.py | 2 +- Tests/test_file_tiff.py | 2 +- Tests/test_file_tiff_metadata.py | 2 +- Tests/test_file_wal.py | 2 +- Tests/test_file_webp.py | 2 +- Tests/test_file_webp_alpha.py | 2 +- Tests/test_file_webp_animated.py | 2 +- Tests/test_file_webp_lossless.py | 2 +- Tests/test_file_webp_metadata.py | 2 +- Tests/test_file_wmf.py | 2 +- Tests/test_file_xbm.py | 2 +- Tests/test_file_xpm.py | 2 +- Tests/test_file_xvthumb.py | 2 +- Tests/test_font_bdf.py | 2 +- Tests/test_font_leaks.py | 2 +- Tests/test_font_pcf.py | 2 +- Tests/test_format_hsv.py | 2 +- Tests/test_format_lab.py | 2 +- Tests/test_image.py | 2 +- Tests/test_image_access.py | 2 +- Tests/test_image_array.py | 2 +- Tests/test_image_convert.py | 2 +- Tests/test_image_copy.py | 2 +- Tests/test_image_crop.py | 2 +- Tests/test_image_draft.py | 2 +- Tests/test_image_filter.py | 2 +- Tests/test_image_frombytes.py | 2 +- Tests/test_image_fromqimage.py | 4 ++-- Tests/test_image_getbands.py | 2 +- Tests/test_image_getbbox.py | 2 +- Tests/test_image_getcolors.py | 2 +- Tests/test_image_getdata.py | 2 +- Tests/test_image_getextrema.py | 2 +- Tests/test_image_getim.py | 2 +- Tests/test_image_getpalette.py | 2 +- Tests/test_image_getprojection.py | 2 +- Tests/test_image_histogram.py | 2 +- Tests/test_image_load.py | 2 +- Tests/test_image_mode.py | 2 +- Tests/test_image_paste.py | 2 +- Tests/test_image_point.py | 2 +- Tests/test_image_putalpha.py | 2 +- Tests/test_image_putdata.py | 2 +- Tests/test_image_putpalette.py | 2 +- Tests/test_image_quantize.py | 2 +- Tests/test_image_resample.py | 2 +- Tests/test_image_resize.py | 2 +- Tests/test_image_rotate.py | 2 +- Tests/test_image_split.py | 2 +- Tests/test_image_thumbnail.py | 2 +- Tests/test_image_tobitmap.py | 2 +- Tests/test_image_tobytes.py | 2 +- Tests/test_image_transform.py | 2 +- Tests/test_image_transpose.py | 4 ++-- Tests/test_imagechops.py | 2 +- Tests/test_imagecms.py | 2 +- Tests/test_imagecolor.py | 2 +- Tests/test_imagedraw.py | 2 +- Tests/test_imagedraw2.py | 2 +- Tests/test_imageenhance.py | 2 +- Tests/test_imagefile.py | 2 +- Tests/test_imagefont.py | 2 +- Tests/test_imagefont_bitmap.py | 2 +- Tests/test_imagefontctl.py | 2 +- Tests/test_imagegrab.py | 2 +- Tests/test_imagemath.py | 2 +- Tests/test_imagemorph.py | 2 +- Tests/test_imageops.py | 2 +- Tests/test_imageops_usm.py | 2 +- Tests/test_imagepalette.py | 2 +- Tests/test_imagepath.py | 2 +- Tests/test_imageqt.py | 2 +- Tests/test_imagesequence.py | 2 +- Tests/test_imageshow.py | 2 +- Tests/test_imagestat.py | 2 +- Tests/test_imagetk.py | 2 +- Tests/test_imagewin.py | 2 +- Tests/test_imagewin_pointers.py | 2 +- Tests/test_lib_image.py | 2 +- Tests/test_lib_pack.py | 2 +- Tests/test_locale.py | 2 +- Tests/test_map.py | 2 +- Tests/test_mode_i16.py | 2 +- Tests/test_numpy.py | 2 +- Tests/test_pdfparser.py | 2 +- Tests/test_pickle.py | 2 +- Tests/test_psdraw.py | 2 +- Tests/test_pyroma.py | 2 +- Tests/test_qt_image_fromqpixmap.py | 4 ++-- Tests/test_qt_image_toqimage.py | 4 ++-- Tests/test_qt_image_toqpixmap.py | 4 ++-- Tests/test_shell_injection.py | 4 ++-- Tests/test_tiff_ifdrational.py | 2 +- Tests/test_uploader.py | 2 +- Tests/test_util.py | 2 +- Tests/test_webp_leaks.py | 2 +- setup.cfg | 3 --- tox.ini | 2 +- 161 files changed, 167 insertions(+), 170 deletions(-) create mode 100644 Tests/__init__.py diff --git a/Tests/__init__.py b/Tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/Tests/bench_cffi_access.py b/Tests/bench_cffi_access.py index 300017168..79427dca3 100644 --- a/Tests/bench_cffi_access.py +++ b/Tests/bench_cffi_access.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper # Not running this test by default. No DOS against Travis CI. diff --git a/Tests/bench_get.py b/Tests/bench_get.py index e9afe1af5..68ac2c9a2 100644 --- a/Tests/bench_get.py +++ b/Tests/bench_get.py @@ -1,4 +1,4 @@ -import helper +from . import helper import timeit import sys diff --git a/Tests/check_fli_overflow.py b/Tests/check_fli_overflow.py index 9b370da3c..3f7c58015 100644 --- a/Tests/check_fli_overflow.py +++ b/Tests/check_fli_overflow.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image TEST_FILE = "Tests/images/fli_overflow.fli" diff --git a/Tests/check_imaging_leaks.py b/Tests/check_imaging_leaks.py index 0c41b6da1..7fa0663e8 100755 --- a/Tests/check_imaging_leaks.py +++ b/Tests/check_imaging_leaks.py @@ -1,7 +1,7 @@ #!/usr/bin/env python from __future__ import division -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase import sys from PIL import Image diff --git a/Tests/check_j2k_leaks.py b/Tests/check_j2k_leaks.py index 5fafccbc0..d87b7f041 100755 --- a/Tests/check_j2k_leaks.py +++ b/Tests/check_j2k_leaks.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase import sys from PIL import Image from io import BytesIO diff --git a/Tests/check_j2k_overflow.py b/Tests/check_j2k_overflow.py index 1dd8db69f..f456ebb32 100644 --- a/Tests/check_j2k_overflow.py +++ b/Tests/check_j2k_overflow.py @@ -1,5 +1,5 @@ from PIL import Image -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase class TestJ2kEncodeOverflow(PillowTestCase): diff --git a/Tests/check_jpeg_leaks.py b/Tests/check_jpeg_leaks.py index c85f6f030..97a5650e0 100644 --- a/Tests/check_jpeg_leaks.py +++ b/Tests/check_jpeg_leaks.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from io import BytesIO import sys diff --git a/Tests/check_large_memory.py b/Tests/check_large_memory.py index 5c8dc10f7..24d687ea6 100644 --- a/Tests/check_large_memory.py +++ b/Tests/check_large_memory.py @@ -1,6 +1,6 @@ import sys -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase # This test is not run automatically. # diff --git a/Tests/check_large_memory_numpy.py b/Tests/check_large_memory_numpy.py index e48d98367..b66988fd5 100644 --- a/Tests/check_large_memory_numpy.py +++ b/Tests/check_large_memory_numpy.py @@ -1,6 +1,6 @@ import sys -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase # This test is not run automatically. # diff --git a/Tests/check_libtiff_segfault.py b/Tests/check_libtiff_segfault.py index 6611648a5..f8c4a3090 100644 --- a/Tests/check_libtiff_segfault.py +++ b/Tests/check_libtiff_segfault.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image TEST_FILE = "Tests/images/libtiff_segfault.tif" diff --git a/Tests/check_png_dos.py b/Tests/check_png_dos.py index 0cb775aed..9a446bf84 100644 --- a/Tests/check_png_dos.py +++ b/Tests/check_png_dos.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image, PngImagePlugin, ImageFile from io import BytesIO import zlib diff --git a/Tests/test_000_sanity.py b/Tests/test_000_sanity.py index 62a9b5870..c2bbdc7d1 100644 --- a/Tests/test_000_sanity.py +++ b/Tests/test_000_sanity.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase import PIL import PIL.Image diff --git a/Tests/test_binary.py b/Tests/test_binary.py index 7e22e0f59..5c2aa35b7 100644 --- a/Tests/test_binary.py +++ b/Tests/test_binary.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import _binary diff --git a/Tests/test_bmp_reference.py b/Tests/test_bmp_reference.py index b3121e305..0e2e001e5 100644 --- a/Tests/test_bmp_reference.py +++ b/Tests/test_bmp_reference.py @@ -1,5 +1,5 @@ from __future__ import print_function -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image import os diff --git a/Tests/test_box_blur.py b/Tests/test_box_blur.py index 2787dfc0d..9af6ca340 100644 --- a/Tests/test_box_blur.py +++ b/Tests/test_box_blur.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image, ImageFilter diff --git a/Tests/test_color_lut.py b/Tests/test_color_lut.py index 6c8a185df..b47a4d4c1 100644 --- a/Tests/test_color_lut.py +++ b/Tests/test_color_lut.py @@ -3,7 +3,7 @@ from __future__ import division from array import array from PIL import Image, ImageFilter -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase try: import numpy diff --git a/Tests/test_core_resources.py b/Tests/test_core_resources.py index fd8fb4244..9a5828e2b 100644 --- a/Tests/test_core_resources.py +++ b/Tests/test_core_resources.py @@ -2,7 +2,7 @@ from __future__ import division, print_function import sys -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image diff --git a/Tests/test_decompression_bomb.py b/Tests/test_decompression_bomb.py index 0a30e25f1..96999467f 100644 --- a/Tests/test_decompression_bomb.py +++ b/Tests/test_decompression_bomb.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_features.py b/Tests/test_features.py index 03ad0d4c9..963ef2f60 100644 --- a/Tests/test_features.py +++ b/Tests/test_features.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import features diff --git a/Tests/test_file_blp.py b/Tests/test_file_blp.py index e0530cb1f..a82f37bcf 100644 --- a/Tests/test_file_blp.py +++ b/Tests/test_file_blp.py @@ -1,6 +1,6 @@ from PIL import Image -from helper import PillowTestCase, unittest +from .helper import PillowTestCase, unittest class TestFileBlp(PillowTestCase): diff --git a/Tests/test_file_bmp.py b/Tests/test_file_bmp.py index bfd97016f..062bcf635 100644 --- a/Tests/test_file_bmp.py +++ b/Tests/test_file_bmp.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, BmpImagePlugin import io diff --git a/Tests/test_file_bufrstub.py b/Tests/test_file_bufrstub.py index 08980a996..cfee5cd04 100644 --- a/Tests/test_file_bufrstub.py +++ b/Tests/test_file_bufrstub.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import BufrStubImagePlugin, Image diff --git a/Tests/test_file_container.py b/Tests/test_file_container.py index 55228be0c..a4df06630 100644 --- a/Tests/test_file_container.py +++ b/Tests/test_file_container.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image from PIL import ContainerIO diff --git a/Tests/test_file_cur.py b/Tests/test_file_cur.py index 1628007ee..f357cd056 100644 --- a/Tests/test_file_cur.py +++ b/Tests/test_file_cur.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image, CurImagePlugin diff --git a/Tests/test_file_dcx.py b/Tests/test_file_dcx.py index 52c0e13f4..47a16c61d 100644 --- a/Tests/test_file_dcx.py +++ b/Tests/test_file_dcx.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, DcxImagePlugin diff --git a/Tests/test_file_dds.py b/Tests/test_file_dds.py index ec975f7ec..3d10fe1f2 100644 --- a/Tests/test_file_dds.py +++ b/Tests/test_file_dds.py @@ -1,6 +1,6 @@ from io import BytesIO -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image, DdsImagePlugin TEST_FILE_DXT1 = "Tests/images/dxt1-rgb-4bbp-noalpha_MipMaps-1.dds" diff --git a/Tests/test_file_eps.py b/Tests/test_file_eps.py index dea795ec3..d46fb9e95 100644 --- a/Tests/test_file_eps.py +++ b/Tests/test_file_eps.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, EpsImagePlugin import io diff --git a/Tests/test_file_fitsstub.py b/Tests/test_file_fitsstub.py index d74e983ce..3967aa3ae 100644 --- a/Tests/test_file_fitsstub.py +++ b/Tests/test_file_fitsstub.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import FitsStubImagePlugin, Image diff --git a/Tests/test_file_fli.py b/Tests/test_file_fli.py index 77eaebaa5..9dbfad0d6 100644 --- a/Tests/test_file_fli.py +++ b/Tests/test_file_fli.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image, FliImagePlugin diff --git a/Tests/test_file_fpx.py b/Tests/test_file_fpx.py index 441a3e635..15ac50c17 100644 --- a/Tests/test_file_fpx.py +++ b/Tests/test_file_fpx.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase try: from PIL import FpxImagePlugin diff --git a/Tests/test_file_ftex.py b/Tests/test_file_ftex.py index 6b43244c9..bdb91cc06 100644 --- a/Tests/test_file_ftex.py +++ b/Tests/test_file_ftex.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image diff --git a/Tests/test_file_gbr.py b/Tests/test_file_gbr.py index 346605bd4..12b5e30bb 100644 --- a/Tests/test_file_gbr.py +++ b/Tests/test_file_gbr.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image, GbrImagePlugin diff --git a/Tests/test_file_gd.py b/Tests/test_file_gd.py index b303369b4..85ecf154b 100644 --- a/Tests/test_file_gd.py +++ b/Tests/test_file_gd.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import GdImageFile diff --git a/Tests/test_file_gif.py b/Tests/test_file_gif.py index a85655535..5965472d1 100644 --- a/Tests/test_file_gif.py +++ b/Tests/test_file_gif.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper, netpbm_available +from .helper import unittest, PillowTestCase, hopper, netpbm_available from PIL import Image, ImagePalette, GifImagePlugin diff --git a/Tests/test_file_gimpgradient.py b/Tests/test_file_gimpgradient.py index b29f6f13b..f79927d78 100644 --- a/Tests/test_file_gimpgradient.py +++ b/Tests/test_file_gimpgradient.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import GimpGradientFile diff --git a/Tests/test_file_gimppalette.py b/Tests/test_file_gimppalette.py index 4ee5323bc..7838250b0 100644 --- a/Tests/test_file_gimppalette.py +++ b/Tests/test_file_gimppalette.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL.GimpPaletteFile import GimpPaletteFile diff --git a/Tests/test_file_gribstub.py b/Tests/test_file_gribstub.py index b3a6f1a5a..246167667 100644 --- a/Tests/test_file_gribstub.py +++ b/Tests/test_file_gribstub.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import GribStubImagePlugin, Image diff --git a/Tests/test_file_hdf5stub.py b/Tests/test_file_hdf5stub.py index 6cddd8d7b..c349607d0 100644 --- a/Tests/test_file_hdf5stub.py +++ b/Tests/test_file_hdf5stub.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Hdf5StubImagePlugin, Image diff --git a/Tests/test_file_icns.py b/Tests/test_file_icns.py index 5e0f377c4..64db49ec6 100644 --- a/Tests/test_file_icns.py +++ b/Tests/test_file_icns.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image, IcnsImagePlugin diff --git a/Tests/test_file_ico.py b/Tests/test_file_ico.py index e1ec27932..878c24dcf 100644 --- a/Tests/test_file_ico.py +++ b/Tests/test_file_ico.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper import io from PIL import Image, IcoImagePlugin diff --git a/Tests/test_file_im.py b/Tests/test_file_im.py index f3349b736..8a720ab29 100644 --- a/Tests/test_file_im.py +++ b/Tests/test_file_im.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, ImImagePlugin diff --git a/Tests/test_file_iptc.py b/Tests/test_file_iptc.py index e08d994a2..8567e96e8 100644 --- a/Tests/test_file_iptc.py +++ b/Tests/test_file_iptc.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, IptcImagePlugin diff --git a/Tests/test_file_jpeg.py b/Tests/test_file_jpeg.py index 1485651c7..82e55b301 100644 --- a/Tests/test_file_jpeg.py +++ b/Tests/test_file_jpeg.py @@ -1,5 +1,5 @@ -from helper import unittest, PillowTestCase, hopper -from helper import djpeg_available, cjpeg_available +from .helper import unittest, PillowTestCase, hopper +from .helper import djpeg_available, cjpeg_available from io import BytesIO import os diff --git a/Tests/test_file_jpeg2k.py b/Tests/test_file_jpeg2k.py index db61b301b..f3f74bb87 100644 --- a/Tests/test_file_jpeg2k.py +++ b/Tests/test_file_jpeg2k.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image, Jpeg2KImagePlugin from io import BytesIO diff --git a/Tests/test_file_libtiff.py b/Tests/test_file_libtiff.py index 63dc49cde..9a37034b2 100644 --- a/Tests/test_file_libtiff.py +++ b/Tests/test_file_libtiff.py @@ -1,5 +1,5 @@ from __future__ import print_function -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import features from PIL._util import py3 diff --git a/Tests/test_file_libtiff_small.py b/Tests/test_file_libtiff_small.py index c402673d8..77cf6d1bf 100644 --- a/Tests/test_file_libtiff_small.py +++ b/Tests/test_file_libtiff_small.py @@ -1,8 +1,8 @@ -from helper import unittest +from .helper import unittest from PIL import Image -from test_file_libtiff import LibTiffTestCase +from .test_file_libtiff import LibTiffTestCase class TestFileLibTiffSmall(LibTiffTestCase): diff --git a/Tests/test_file_mcidas.py b/Tests/test_file_mcidas.py index 491d8ea03..3a81be39f 100644 --- a/Tests/test_file_mcidas.py +++ b/Tests/test_file_mcidas.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image, McIdasImagePlugin diff --git a/Tests/test_file_mic.py b/Tests/test_file_mic.py index f4059f9c9..6b0fe3ade 100644 --- a/Tests/test_file_mic.py +++ b/Tests/test_file_mic.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, ImagePalette, features diff --git a/Tests/test_file_mpo.py b/Tests/test_file_mpo.py index 9f79d8cfa..6f99198c0 100644 --- a/Tests/test_file_mpo.py +++ b/Tests/test_file_mpo.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from io import BytesIO from PIL import Image diff --git a/Tests/test_file_msp.py b/Tests/test_file_msp.py index 4aac88092..0ff034041 100644 --- a/Tests/test_file_msp.py +++ b/Tests/test_file_msp.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, MspImagePlugin diff --git a/Tests/test_file_palm.py b/Tests/test_file_palm.py index b97a9b19e..8ff327a76 100644 --- a/Tests/test_file_palm.py +++ b/Tests/test_file_palm.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper, imagemagick_available +from .helper import unittest, PillowTestCase, hopper, imagemagick_available import os.path diff --git a/Tests/test_file_pcd.py b/Tests/test_file_pcd.py index 06fd33043..58de88488 100644 --- a/Tests/test_file_pcd.py +++ b/Tests/test_file_pcd.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image diff --git a/Tests/test_file_pcx.py b/Tests/test_file_pcx.py index 415827e49..d56ddace6 100644 --- a/Tests/test_file_pcx.py +++ b/Tests/test_file_pcx.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, ImageFile, PcxImagePlugin diff --git a/Tests/test_file_pdf.py b/Tests/test_file_pdf.py index 57f1c2118..172bde2e4 100644 --- a/Tests/test_file_pdf.py +++ b/Tests/test_file_pdf.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, PdfParser import io import os diff --git a/Tests/test_file_pixar.py b/Tests/test_file_pixar.py index 3b00c710e..fd814baf9 100644 --- a/Tests/test_file_pixar.py +++ b/Tests/test_file_pixar.py @@ -1,4 +1,4 @@ -from helper import hopper, unittest, PillowTestCase +from .helper import hopper, unittest, PillowTestCase from PIL import Image, PixarImagePlugin diff --git a/Tests/test_file_png.py b/Tests/test_file_png.py index c94f8eaad..43121e247 100644 --- a/Tests/test_file_png.py +++ b/Tests/test_file_png.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, PillowLeakTestCase, hopper +from .helper import unittest, PillowTestCase, PillowLeakTestCase, hopper from PIL import Image, ImageFile, PngImagePlugin from PIL._util import py3 diff --git a/Tests/test_file_ppm.py b/Tests/test_file_ppm.py index 937a9dc32..a7ff57aa9 100644 --- a/Tests/test_file_ppm.py +++ b/Tests/test_file_ppm.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image diff --git a/Tests/test_file_psd.py b/Tests/test_file_psd.py index afc69694d..494596b11 100644 --- a/Tests/test_file_psd.py +++ b/Tests/test_file_psd.py @@ -1,4 +1,4 @@ -from helper import hopper, unittest, PillowTestCase +from .helper import hopper, unittest, PillowTestCase from PIL import Image, PsdImagePlugin diff --git a/Tests/test_file_sgi.py b/Tests/test_file_sgi.py index 76f8a3841..ded962b85 100644 --- a/Tests/test_file_sgi.py +++ b/Tests/test_file_sgi.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, SgiImagePlugin diff --git a/Tests/test_file_spider.py b/Tests/test_file_spider.py index 4612b36a1..9f4f86b16 100644 --- a/Tests/test_file_spider.py +++ b/Tests/test_file_spider.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image from PIL import ImageSequence diff --git a/Tests/test_file_sun.py b/Tests/test_file_sun.py index 61cfdf367..5d80aa2dd 100644 --- a/Tests/test_file_sun.py +++ b/Tests/test_file_sun.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, SunImagePlugin diff --git a/Tests/test_file_tar.py b/Tests/test_file_tar.py index 7f29c5fc5..1b7c3c1b7 100644 --- a/Tests/test_file_tar.py +++ b/Tests/test_file_tar.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image, TarIO diff --git a/Tests/test_file_tga.py b/Tests/test_file_tga.py index 77695f2d1..37476dca9 100644 --- a/Tests/test_file_tga.py +++ b/Tests/test_file_tga.py @@ -2,7 +2,7 @@ import os from glob import glob from itertools import product -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image diff --git a/Tests/test_file_tiff.py b/Tests/test_file_tiff.py index 4a0bfea58..7a18e40f0 100644 --- a/Tests/test_file_tiff.py +++ b/Tests/test_file_tiff.py @@ -2,7 +2,7 @@ import logging from io import BytesIO import sys -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, TiffImagePlugin from PIL._util import py3 diff --git a/Tests/test_file_tiff_metadata.py b/Tests/test_file_tiff_metadata.py index 7407cc456..54c26cf81 100644 --- a/Tests/test_file_tiff_metadata.py +++ b/Tests/test_file_tiff_metadata.py @@ -1,7 +1,7 @@ import io import struct -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, TiffImagePlugin, TiffTags from PIL.TiffImagePlugin import _limit_rational, IFDRational diff --git a/Tests/test_file_wal.py b/Tests/test_file_wal.py index 13b1e3a2f..baa174f75 100644 --- a/Tests/test_file_wal.py +++ b/Tests/test_file_wal.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import WalImageFile diff --git a/Tests/test_file_webp.py b/Tests/test_file_webp.py index a79ae8d9f..fe29f868c 100644 --- a/Tests/test_file_webp.py +++ b/Tests/test_file_webp.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, WebPImagePlugin diff --git a/Tests/test_file_webp_alpha.py b/Tests/test_file_webp_alpha.py index 85682e382..df01ff180 100644 --- a/Tests/test_file_webp_alpha.py +++ b/Tests/test_file_webp_alpha.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_file_webp_animated.py b/Tests/test_file_webp_animated.py index 6b3dc1622..4a940a83d 100644 --- a/Tests/test_file_webp_animated.py +++ b/Tests/test_file_webp_animated.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image diff --git a/Tests/test_file_webp_lossless.py b/Tests/test_file_webp_lossless.py index 4d9eff7f1..c682de02e 100644 --- a/Tests/test_file_webp_lossless.py +++ b/Tests/test_file_webp_lossless.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_file_webp_metadata.py b/Tests/test_file_webp_metadata.py index c04443f46..aab312f61 100644 --- a/Tests/test_file_webp_metadata.py +++ b/Tests/test_file_webp_metadata.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image diff --git a/Tests/test_file_wmf.py b/Tests/test_file_wmf.py index 1a15a514f..5659b40d7 100644 --- a/Tests/test_file_wmf.py +++ b/Tests/test_file_wmf.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image from PIL import WmfImagePlugin diff --git a/Tests/test_file_xbm.py b/Tests/test_file_xbm.py index 398dae98c..83843b2d7 100644 --- a/Tests/test_file_xbm.py +++ b/Tests/test_file_xbm.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image diff --git a/Tests/test_file_xpm.py b/Tests/test_file_xpm.py index 4fa3f743f..0ab919a2b 100644 --- a/Tests/test_file_xpm.py +++ b/Tests/test_file_xpm.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, XpmImagePlugin diff --git a/Tests/test_file_xvthumb.py b/Tests/test_file_xvthumb.py index d0256cabf..7f3ae2626 100644 --- a/Tests/test_file_xvthumb.py +++ b/Tests/test_file_xvthumb.py @@ -1,4 +1,4 @@ -from helper import hopper, unittest, PillowTestCase +from .helper import hopper, unittest, PillowTestCase from PIL import Image, XVThumbImagePlugin diff --git a/Tests/test_font_bdf.py b/Tests/test_font_bdf.py index 7c8fe579e..665778031 100644 --- a/Tests/test_font_bdf.py +++ b/Tests/test_font_bdf.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import FontFile, BdfFontFile diff --git a/Tests/test_font_leaks.py b/Tests/test_font_leaks.py index f1ce44e6d..68bbd7220 100644 --- a/Tests/test_font_leaks.py +++ b/Tests/test_font_leaks.py @@ -1,5 +1,5 @@ from __future__ import division -from helper import unittest, PillowLeakTestCase +from .helper import unittest, PillowLeakTestCase import sys from PIL import Image, features, ImageDraw, ImageFont diff --git a/Tests/test_font_pcf.py b/Tests/test_font_pcf.py index 20869505f..fa3f31b73 100644 --- a/Tests/test_font_pcf.py +++ b/Tests/test_font_pcf.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image, FontFile, PcfFontFile from PIL import ImageFont, ImageDraw diff --git a/Tests/test_format_hsv.py b/Tests/test_format_hsv.py index 0385bd66f..8211170a3 100644 --- a/Tests/test_format_hsv.py +++ b/Tests/test_format_hsv.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image from PIL._util import py3 diff --git a/Tests/test_format_lab.py b/Tests/test_format_lab.py index a243afe62..611adcb94 100644 --- a/Tests/test_format_lab.py +++ b/Tests/test_format_lab.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image diff --git a/Tests/test_image.py b/Tests/test_image.py index 9618e1427..427c6d878 100644 --- a/Tests/test_image.py +++ b/Tests/test_image.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image from PIL._util import py3 diff --git a/Tests/test_image_access.py b/Tests/test_image_access.py index 481ec5935..90344d363 100644 --- a/Tests/test_image_access.py +++ b/Tests/test_image_access.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper, on_appveyor +from .helper import unittest, PillowTestCase, hopper, on_appveyor from PIL import Image import sys diff --git a/Tests/test_image_array.py b/Tests/test_image_array.py index 7a86a3e54..609c69142 100644 --- a/Tests/test_image_array.py +++ b/Tests/test_image_array.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_image_convert.py b/Tests/test_image_convert.py index e57ae4305..7123cb0a0 100644 --- a/Tests/test_image_convert.py +++ b/Tests/test_image_convert.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_image_copy.py b/Tests/test_image_copy.py index bb1246a73..0224036b0 100644 --- a/Tests/test_image_copy.py +++ b/Tests/test_image_copy.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_image_crop.py b/Tests/test_image_crop.py index fe92dd865..d3a30f954 100644 --- a/Tests/test_image_crop.py +++ b/Tests/test_image_crop.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_image_draft.py b/Tests/test_image_draft.py index 18982fc99..1ce118346 100644 --- a/Tests/test_image_draft.py +++ b/Tests/test_image_draft.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, fromstring, tostring +from .helper import unittest, PillowTestCase, fromstring, tostring from PIL import Image diff --git a/Tests/test_image_filter.py b/Tests/test_image_filter.py index 5e732b345..e33d4dbf5 100644 --- a/Tests/test_image_filter.py +++ b/Tests/test_image_filter.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, ImageFilter diff --git a/Tests/test_image_frombytes.py b/Tests/test_image_frombytes.py index 2d48bb6b8..f758b9ce4 100644 --- a/Tests/test_image_frombytes.py +++ b/Tests/test_image_frombytes.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_image_fromqimage.py b/Tests/test_image_fromqimage.py index 2e5d95aa7..1a5ddd42a 100644 --- a/Tests/test_image_fromqimage.py +++ b/Tests/test_image_fromqimage.py @@ -1,5 +1,5 @@ -from helper import unittest, PillowTestCase, hopper -from test_imageqt import PillowQtTestCase +from .helper import unittest, PillowTestCase, hopper +from .test_imageqt import PillowQtTestCase from PIL import ImageQt, Image diff --git a/Tests/test_image_getbands.py b/Tests/test_image_getbands.py index 5eecbf044..dfc882693 100644 --- a/Tests/test_image_getbands.py +++ b/Tests/test_image_getbands.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image diff --git a/Tests/test_image_getbbox.py b/Tests/test_image_getbbox.py index f29032143..a30695a13 100644 --- a/Tests/test_image_getbbox.py +++ b/Tests/test_image_getbbox.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_image_getcolors.py b/Tests/test_image_getcolors.py index ca7a9d93d..6bfb0b399 100644 --- a/Tests/test_image_getcolors.py +++ b/Tests/test_image_getcolors.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper class TestImageGetColors(PillowTestCase): diff --git a/Tests/test_image_getdata.py b/Tests/test_image_getdata.py index de502065b..07f7ecf53 100644 --- a/Tests/test_image_getdata.py +++ b/Tests/test_image_getdata.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper class TestImageGetData(PillowTestCase): diff --git a/Tests/test_image_getextrema.py b/Tests/test_image_getextrema.py index f002419da..db72cdf16 100644 --- a/Tests/test_image_getextrema.py +++ b/Tests/test_image_getextrema.py @@ -1,5 +1,5 @@ from PIL import Image -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper class TestImageGetExtrema(PillowTestCase): diff --git a/Tests/test_image_getim.py b/Tests/test_image_getim.py index 1452e584e..bacec54e7 100644 --- a/Tests/test_image_getim.py +++ b/Tests/test_image_getim.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL._util import py3 diff --git a/Tests/test_image_getpalette.py b/Tests/test_image_getpalette.py index 01a6ac7ad..0fd996f03 100644 --- a/Tests/test_image_getpalette.py +++ b/Tests/test_image_getpalette.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper class TestImageGetPalette(PillowTestCase): diff --git a/Tests/test_image_getprojection.py b/Tests/test_image_getprojection.py index 9d3f2d9ed..6623c841b 100644 --- a/Tests/test_image_getprojection.py +++ b/Tests/test_image_getprojection.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_image_histogram.py b/Tests/test_image_histogram.py index 892e89328..4a7a2a4ac 100644 --- a/Tests/test_image_histogram.py +++ b/Tests/test_image_histogram.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper class TestImageHistogram(PillowTestCase): diff --git a/Tests/test_image_load.py b/Tests/test_image_load.py index 88b6e9b5c..bd82654b1 100644 --- a/Tests/test_image_load.py +++ b/Tests/test_image_load.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_image_mode.py b/Tests/test_image_mode.py index 0596af397..3a8a6ad40 100644 --- a/Tests/test_image_mode.py +++ b/Tests/test_image_mode.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_image_paste.py b/Tests/test_image_paste.py index e782008a7..c4654c361 100644 --- a/Tests/test_image_paste.py +++ b/Tests/test_image_paste.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, cached_property +from .helper import unittest, PillowTestCase, cached_property from PIL import Image diff --git a/Tests/test_image_point.py b/Tests/test_image_point.py index 977e98e83..4a457708f 100644 --- a/Tests/test_image_point.py +++ b/Tests/test_image_point.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper class TestImagePoint(PillowTestCase): diff --git a/Tests/test_image_putalpha.py b/Tests/test_image_putalpha.py index 823e0612f..1c9280e5c 100644 --- a/Tests/test_image_putalpha.py +++ b/Tests/test_image_putalpha.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image diff --git a/Tests/test_image_putdata.py b/Tests/test_image_putdata.py index 2008c1307..435a16b47 100644 --- a/Tests/test_image_putdata.py +++ b/Tests/test_image_putdata.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from array import array import sys diff --git a/Tests/test_image_putpalette.py b/Tests/test_image_putpalette.py index e173f0000..5bc5f1444 100644 --- a/Tests/test_image_putpalette.py +++ b/Tests/test_image_putpalette.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import ImagePalette diff --git a/Tests/test_image_quantize.py b/Tests/test_image_quantize.py index 5b10d2de3..a48448f5f 100644 --- a/Tests/test_image_quantize.py +++ b/Tests/test_image_quantize.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_image_resample.py b/Tests/test_image_resample.py index 46a45833e..24c7e0f53 100644 --- a/Tests/test_image_resample.py +++ b/Tests/test_image_resample.py @@ -2,7 +2,7 @@ from __future__ import division, print_function from contextlib import contextmanager -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, ImageDraw diff --git a/Tests/test_image_resize.py b/Tests/test_image_resize.py index 535f1d77e..3fdaad6db 100644 --- a/Tests/test_image_resize.py +++ b/Tests/test_image_resize.py @@ -3,7 +3,7 @@ Tests for resize functionality. """ from itertools import permutations -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_image_rotate.py b/Tests/test_image_rotate.py index e788e722f..47cceb988 100644 --- a/Tests/test_image_rotate.py +++ b/Tests/test_image_rotate.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_image_split.py b/Tests/test_image_split.py index 6f312ff80..2f9bc7727 100644 --- a/Tests/test_image_split.py +++ b/Tests/test_image_split.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_image_thumbnail.py b/Tests/test_image_thumbnail.py index 6b92dbb24..e697dd273 100644 --- a/Tests/test_image_thumbnail.py +++ b/Tests/test_image_thumbnail.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper class TestImageThumbnail(PillowTestCase): diff --git a/Tests/test_image_tobitmap.py b/Tests/test_image_tobitmap.py index f93fce6a8..2b8bd8b20 100644 --- a/Tests/test_image_tobitmap.py +++ b/Tests/test_image_tobitmap.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper, fromstring +from .helper import unittest, PillowTestCase, hopper, fromstring class TestImageToBitmap(PillowTestCase): diff --git a/Tests/test_image_tobytes.py b/Tests/test_image_tobytes.py index f5a738695..909c4fdfc 100644 --- a/Tests/test_image_tobytes.py +++ b/Tests/test_image_tobytes.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper class TestImageToBytes(PillowTestCase): diff --git a/Tests/test_image_transform.py b/Tests/test_image_transform.py index 313e7ad09..76fcc333f 100644 --- a/Tests/test_image_transform.py +++ b/Tests/test_image_transform.py @@ -1,6 +1,6 @@ import math -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_image_transpose.py b/Tests/test_image_transpose.py index a6b1191db..1cd4beaad 100644 --- a/Tests/test_image_transpose.py +++ b/Tests/test_image_transpose.py @@ -1,5 +1,5 @@ -import helper -from helper import unittest, PillowTestCase +from . import helper +from .helper import unittest, PillowTestCase from PIL.Image import (FLIP_LEFT_RIGHT, FLIP_TOP_BOTTOM, ROTATE_90, ROTATE_180, ROTATE_270, TRANSPOSE, TRANSVERSE) diff --git a/Tests/test_imagechops.py b/Tests/test_imagechops.py index 06febc6d2..91ff8c94d 100644 --- a/Tests/test_imagechops.py +++ b/Tests/test_imagechops.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image from PIL import ImageChops diff --git a/Tests/test_imagecms.py b/Tests/test_imagecms.py index b4d53a2df..789481e55 100644 --- a/Tests/test_imagecms.py +++ b/Tests/test_imagecms.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper import datetime from PIL import Image, ImageMode diff --git a/Tests/test_imagecolor.py b/Tests/test_imagecolor.py index 1ea37544b..b1a4ea2f3 100644 --- a/Tests/test_imagecolor.py +++ b/Tests/test_imagecolor.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image from PIL import ImageColor diff --git a/Tests/test_imagedraw.py b/Tests/test_imagedraw.py index 7f2accdcb..01b606460 100644 --- a/Tests/test_imagedraw.py +++ b/Tests/test_imagedraw.py @@ -1,6 +1,6 @@ import os.path -from helper import PillowTestCase, hopper, unittest +from .helper import PillowTestCase, hopper, unittest from PIL import Image, ImageColor, ImageDraw BLACK = (0, 0, 0) diff --git a/Tests/test_imagedraw2.py b/Tests/test_imagedraw2.py index c5faeb616..acb3b8c0c 100644 --- a/Tests/test_imagedraw2.py +++ b/Tests/test_imagedraw2.py @@ -1,6 +1,6 @@ import os.path -from helper import PillowTestCase, hopper, unittest +from .helper import PillowTestCase, hopper, unittest from PIL import Image, ImageDraw2, features BLACK = (0, 0, 0) diff --git a/Tests/test_imageenhance.py b/Tests/test_imageenhance.py index 54288f4db..308a9abb1 100644 --- a/Tests/test_imageenhance.py +++ b/Tests/test_imageenhance.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image from PIL import ImageEnhance diff --git a/Tests/test_imagefile.py b/Tests/test_imagefile.py index 4f81df12e..f3419541f 100644 --- a/Tests/test_imagefile.py +++ b/Tests/test_imagefile.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper, fromstring, tostring +from .helper import unittest, PillowTestCase, hopper, fromstring, tostring from io import BytesIO diff --git a/Tests/test_imagefont.py b/Tests/test_imagefont.py index 82108638c..41530a587 100644 --- a/Tests/test_imagefont.py +++ b/Tests/test_imagefont.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image, ImageDraw, ImageFont, features from io import BytesIO diff --git a/Tests/test_imagefont_bitmap.py b/Tests/test_imagefont_bitmap.py index 8376728a2..ba4c7fa6b 100644 --- a/Tests/test_imagefont_bitmap.py +++ b/Tests/test_imagefont_bitmap.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image, ImageFont, ImageDraw diff --git a/Tests/test_imagefontctl.py b/Tests/test_imagefontctl.py index 04432b14f..b518ad820 100644 --- a/Tests/test_imagefontctl.py +++ b/Tests/test_imagefontctl.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image, ImageDraw, ImageFont, features diff --git a/Tests/test_imagegrab.py b/Tests/test_imagegrab.py index 10e150fc4..6aef5d255 100644 --- a/Tests/test_imagegrab.py +++ b/Tests/test_imagegrab.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase import sys import subprocess diff --git a/Tests/test_imagemath.py b/Tests/test_imagemath.py index efbc91787..be7d3db78 100644 --- a/Tests/test_imagemath.py +++ b/Tests/test_imagemath.py @@ -1,5 +1,5 @@ from __future__ import print_function -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image from PIL import ImageMath diff --git a/Tests/test_imagemorph.py b/Tests/test_imagemorph.py index dceadebf4..a628a4718 100644 --- a/Tests/test_imagemorph.py +++ b/Tests/test_imagemorph.py @@ -1,5 +1,5 @@ # Test the ImageMorphology functionality -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, ImageMorph, _imagingmorph diff --git a/Tests/test_imageops.py b/Tests/test_imageops.py index 70b1659d9..2f0a4c720 100644 --- a/Tests/test_imageops.py +++ b/Tests/test_imageops.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import ImageOps from PIL import Image diff --git a/Tests/test_imageops_usm.py b/Tests/test_imageops_usm.py index 20758e9f8..86c270b35 100644 --- a/Tests/test_imageops_usm.py +++ b/Tests/test_imageops_usm.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image from PIL import ImageOps diff --git a/Tests/test_imagepalette.py b/Tests/test_imagepalette.py index 3b7087d7a..d9da3bb34 100644 --- a/Tests/test_imagepalette.py +++ b/Tests/test_imagepalette.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import ImagePalette, Image diff --git a/Tests/test_imagepath.py b/Tests/test_imagepath.py index 8df71121d..8539de309 100644 --- a/Tests/test_imagepath.py +++ b/Tests/test_imagepath.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import ImagePath, Image from PIL._util import py3 diff --git a/Tests/test_imageqt.py b/Tests/test_imageqt.py index cecb1b5ee..8ed32cdc1 100644 --- a/Tests/test_imageqt.py +++ b/Tests/test_imageqt.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import ImageQt diff --git a/Tests/test_imagesequence.py b/Tests/test_imagesequence.py index 500a2e60a..e9be42873 100644 --- a/Tests/test_imagesequence.py +++ b/Tests/test_imagesequence.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, ImageSequence, TiffImagePlugin diff --git a/Tests/test_imageshow.py b/Tests/test_imageshow.py index 244c18d91..ea784a52c 100644 --- a/Tests/test_imageshow.py +++ b/Tests/test_imageshow.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image from PIL import ImageShow diff --git a/Tests/test_imagestat.py b/Tests/test_imagestat.py index 77eb0aac1..282700c53 100644 --- a/Tests/test_imagestat.py +++ b/Tests/test_imagestat.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image from PIL import ImageStat diff --git a/Tests/test_imagetk.py b/Tests/test_imagetk.py index 667d18e8f..6e5dda9b3 100644 --- a/Tests/test_imagetk.py +++ b/Tests/test_imagetk.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image from PIL._util import py3 diff --git a/Tests/test_imagewin.py b/Tests/test_imagewin.py index 70bf28247..54d061063 100644 --- a/Tests/test_imagewin.py +++ b/Tests/test_imagewin.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import ImageWin import sys diff --git a/Tests/test_imagewin_pointers.py b/Tests/test_imagewin_pointers.py index dc78b655c..99416ae7c 100644 --- a/Tests/test_imagewin_pointers.py +++ b/Tests/test_imagewin_pointers.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image, ImageWin import sys diff --git a/Tests/test_lib_image.py b/Tests/test_lib_image.py index aefee2e08..466c43f88 100644 --- a/Tests/test_lib_image.py +++ b/Tests/test_lib_image.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image diff --git a/Tests/test_lib_pack.py b/Tests/test_lib_pack.py index 33590eeb4..999d88518 100644 --- a/Tests/test_lib_pack.py +++ b/Tests/test_lib_pack.py @@ -1,6 +1,6 @@ import sys -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image diff --git a/Tests/test_locale.py b/Tests/test_locale.py index 5aef8427b..b0721b651 100644 --- a/Tests/test_locale.py +++ b/Tests/test_locale.py @@ -1,5 +1,5 @@ from __future__ import print_function -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image diff --git a/Tests/test_map.py b/Tests/test_map.py index 8e3916d27..481e16924 100644 --- a/Tests/test_map.py +++ b/Tests/test_map.py @@ -1,4 +1,4 @@ -from helper import PillowTestCase, unittest +from .helper import PillowTestCase, unittest import sys from PIL import Image diff --git a/Tests/test_mode_i16.py b/Tests/test_mode_i16.py index d51847199..a65666562 100644 --- a/Tests/test_mode_i16.py +++ b/Tests/test_mode_i16.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import Image diff --git a/Tests/test_numpy.py b/Tests/test_numpy.py index 03643ac1e..4556cf859 100644 --- a/Tests/test_numpy.py +++ b/Tests/test_numpy.py @@ -1,6 +1,6 @@ from __future__ import print_function -from helper import PillowTestCase, hopper, unittest +from .helper import PillowTestCase, hopper, unittest from PIL import Image try: diff --git a/Tests/test_pdfparser.py b/Tests/test_pdfparser.py index ec849b17d..6100e1fd7 100644 --- a/Tests/test_pdfparser.py +++ b/Tests/test_pdfparser.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL.PdfParser import IndirectObjectDef, IndirectReference, PdfBinary, \ PdfDict, PdfFormatError, PdfName, PdfParser, \ diff --git a/Tests/test_pickle.py b/Tests/test_pickle.py index bdfd3582d..7cca1e3f9 100644 --- a/Tests/test_pickle.py +++ b/Tests/test_pickle.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image diff --git a/Tests/test_psdraw.py b/Tests/test_psdraw.py index 17fa3662b..54be98a39 100644 --- a/Tests/test_psdraw.py +++ b/Tests/test_psdraw.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import Image, PSDraw import os diff --git a/Tests/test_pyroma.py b/Tests/test_pyroma.py index 8d23d024b..6d3ee0b73 100644 --- a/Tests/test_pyroma.py +++ b/Tests/test_pyroma.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import __version__ diff --git a/Tests/test_qt_image_fromqpixmap.py b/Tests/test_qt_image_fromqpixmap.py index 0127f77e2..5242a0473 100644 --- a/Tests/test_qt_image_fromqpixmap.py +++ b/Tests/test_qt_image_fromqpixmap.py @@ -1,5 +1,5 @@ -from helper import unittest, PillowTestCase, hopper -from test_imageqt import PillowQPixmapTestCase +from .helper import unittest, PillowTestCase, hopper +from .test_imageqt import PillowQPixmapTestCase from PIL import ImageQt diff --git a/Tests/test_qt_image_toqimage.py b/Tests/test_qt_image_toqimage.py index 25391e09a..bc472eaa4 100644 --- a/Tests/test_qt_image_toqimage.py +++ b/Tests/test_qt_image_toqimage.py @@ -1,5 +1,5 @@ -from helper import unittest, PillowTestCase, hopper -from test_imageqt import PillowQtTestCase +from .helper import unittest, PillowTestCase, hopper +from .test_imageqt import PillowQtTestCase from PIL import ImageQt, Image diff --git a/Tests/test_qt_image_toqpixmap.py b/Tests/test_qt_image_toqpixmap.py index 5de7810f5..faeb272e2 100644 --- a/Tests/test_qt_image_toqpixmap.py +++ b/Tests/test_qt_image_toqpixmap.py @@ -1,5 +1,5 @@ -from helper import unittest, PillowTestCase, hopper -from test_imageqt import PillowQPixmapTestCase +from .helper import unittest, PillowTestCase, hopper +from .test_imageqt import PillowQPixmapTestCase from PIL import ImageQt diff --git a/Tests/test_shell_injection.py b/Tests/test_shell_injection.py index 9e489f77c..6aba626d1 100644 --- a/Tests/test_shell_injection.py +++ b/Tests/test_shell_injection.py @@ -1,5 +1,5 @@ -from helper import unittest, PillowTestCase -from helper import djpeg_available, cjpeg_available, netpbm_available +from .helper import unittest, PillowTestCase +from .helper import djpeg_available, cjpeg_available, netpbm_available import sys import shutil diff --git a/Tests/test_tiff_ifdrational.py b/Tests/test_tiff_ifdrational.py index bd767b931..1ee8f973c 100644 --- a/Tests/test_tiff_ifdrational.py +++ b/Tests/test_tiff_ifdrational.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper from PIL import TiffImagePlugin, Image from PIL.TiffImagePlugin import IFDRational diff --git a/Tests/test_uploader.py b/Tests/test_uploader.py index e157867cb..e8506ff96 100644 --- a/Tests/test_uploader.py +++ b/Tests/test_uploader.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase, hopper +from .helper import unittest, PillowTestCase, hopper class TestUploader(PillowTestCase): diff --git a/Tests/test_util.py b/Tests/test_util.py index 2316d3d65..69ab47966 100644 --- a/Tests/test_util.py +++ b/Tests/test_util.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowTestCase +from .helper import unittest, PillowTestCase from PIL import _util diff --git a/Tests/test_webp_leaks.py b/Tests/test_webp_leaks.py index c542ed811..79344f5f3 100644 --- a/Tests/test_webp_leaks.py +++ b/Tests/test_webp_leaks.py @@ -1,4 +1,4 @@ -from helper import unittest, PillowLeakTestCase +from .helper import unittest, PillowLeakTestCase from PIL import Image, features from io import BytesIO diff --git a/setup.cfg b/setup.cfg index 95900ff99..bcaf82f27 100644 --- a/setup.cfg +++ b/setup.cfg @@ -4,8 +4,5 @@ test=pytest [metadata] license_file = LICENSE -[tool:pytest] -addopts = -vx Tests - [flake8] max-line-length = 88 diff --git a/tox.ini b/tox.ini index 3ae11eea0..e282b8dbc 100644 --- a/tox.ini +++ b/tox.ini @@ -11,7 +11,7 @@ commands = {envpython} setup.py clean {envpython} setup.py build_ext --inplace {envpython} selftest.py - {envpython} -m pytest -qq {posargs} + {envpython} -m pytest {posargs} deps = cffi numpy From c41ec5b115142faceafef68d5a523f5e1d1ada17 Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Sun, 13 Jan 2019 09:17:51 -0800 Subject: [PATCH 059/134] Fix 'BytesWarning: Comparison between bytes and string' in PdfDict When bytes warnings are enabled with the '-b' argument, the PdfDict class would emit a warning. https://docs.python.org/3/using/cmdline.html#miscellaneous-options > -b > > Issue a warning when comparing bytes or bytearray with str or bytes > with int. Object attributes are always type str, so can safely encode them without a type check. Observe: $ python3 >>> o = object() >>> setattr(o, b'foo', b'bar') Traceback (most recent call last): File "", line 1, in TypeError: attribute name must be string, not 'bytes' --- src/PIL/PdfParser.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/PIL/PdfParser.py b/src/PIL/PdfParser.py index 7216e5b95..ca08bc864 100644 --- a/src/PIL/PdfParser.py +++ b/src/PIL/PdfParser.py @@ -269,18 +269,13 @@ class PdfDict(UserDict): else: self.__dict__[key] = value else: - if isinstance(key, str): - key = key.encode("us-ascii") - self[key] = value + self[key.encode("us-ascii")] = value def __getattr__(self, key): try: - value = self[key] + value = self[key.encode("us-ascii")] except KeyError: - try: - value = self[key.encode("us-ascii")] - except KeyError: - raise AttributeError(key) + raise AttributeError(key) if isinstance(value, bytes): value = decode_text(value) if key.endswith("Date"): From 5e18bbdaefb4998501210ad19b8d09cd77b99f86 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sun, 13 Jan 2019 20:58:22 +0200 Subject: [PATCH 060/134] Release history is visible at PyPI Now available since the PyPI (aka Warehouse) redesign --- docs/installation.rst | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/installation.rst b/docs/installation.rst index 885cdcd67..2ef20bbaf 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -478,8 +478,6 @@ These platforms have been reported to work at the versions mentioned. Old Versions ------------ -You can download old distributions from `PyPI -`_. Only the latest major -releases for Python 2.x and 3.x are visible, but all releases are -available by direct URL access -e.g. https://pypi.org/project/Pillow/1.0/. +You can download old distributions from the `release history at PyPI +`_ and by direct URL access +eg. https://pypi.org/project/Pillow/1.0/. From 06f47ea54628b4e467e1ce6f9ec390c6ff877b1e Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 14 Jan 2019 21:55:47 +1100 Subject: [PATCH 061/134] Revert "Use bare 'raise' to re-raise exceptions" This reverts commit 80e96b2c7b32486857e10e4b5699d01cd9760c91. --- Tests/helper.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/helper.py b/Tests/helper.py index 970198ef4..b47604a60 100644 --- a/Tests/helper.py +++ b/Tests/helper.py @@ -140,14 +140,14 @@ class PillowTestCase(unittest.TestCase): (msg or '') + " average pixel value difference %.4f > epsilon %.4f" % ( ave_diff, epsilon)) - except Exception: + except Exception as e: if HAS_UPLOADER: try: url = test_image_results.upload(a, b) logger.error("Url for test images: %s" % url) except Exception: pass - raise + raise e def assert_image_similar_tofile(self, a, filename, epsilon, msg=None, mode=None): From ea60256b3b552097b09bf71165b6379f9d16eaeb Mon Sep 17 00:00:00 2001 From: Hugo Date: Tue, 15 Jan 2019 11:37:17 +0200 Subject: [PATCH 062/134] Only start Xvfb for Qt builds --- .travis.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index f7cb5899c..407441c19 100644 --- a/.travis.yml +++ b/.travis.yml @@ -77,8 +77,11 @@ before_install: before_script: # Qt needs a display for some of the tests, and it's only run on the system site packages install - - "export DISPLAY=:99.0" - - "sh -e /etc/init.d/xvfb start" +- | + if [ "$TRAVIS_PYTHON_VERSION" == "2.7_with_system_site_packages" ]; then + export DISPLAY=:99.0 + sh -e /etc/init.d/xvfb start + fi script: - | From d7476e15dbdc1df8c3e41896a770913c91a219fc Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 15 Jan 2019 22:13:45 +1100 Subject: [PATCH 063/134] Start xvfb for Trusty and use the service for Xenial --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 407441c19..b0fcea755 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,6 +31,7 @@ matrix: dist: trusty - python: "2.7_with_system_site_packages" # For PyQt4 name: "2.7_with_system_site_packages Xenial" + services: xvfb - python: "2.7_with_system_site_packages" # For PyQt4 name: "2.7_with_system_site_packages Trusty" dist: trusty @@ -78,7 +79,7 @@ before_install: before_script: # Qt needs a display for some of the tests, and it's only run on the system site packages install - | - if [ "$TRAVIS_PYTHON_VERSION" == "2.7_with_system_site_packages" ]; then + if [ "$TRAVIS_JOB_NAME" == "2.7_with_system_site_packages Trusty" ]; then export DISPLAY=:99.0 sh -e /etc/init.d/xvfb start fi From 0481d0ac1eb0e87b8c8b8858a76e859b1623d2b0 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 12 Jan 2019 11:40:32 +1100 Subject: [PATCH 064/134] Seek to IFD offset --- Tests/images/exif-ifd-offset.jpg | Bin 0 -> 10951 bytes Tests/images/sugarshack_ifd_offset.mpo | Bin 0 -> 120200 bytes Tests/test_file_jpeg.py | 9 +++++++++ Tests/test_file_mpo.py | 8 ++++++++ src/PIL/JpegImagePlugin.py | 2 ++ 5 files changed, 19 insertions(+) create mode 100644 Tests/images/exif-ifd-offset.jpg create mode 100644 Tests/images/sugarshack_ifd_offset.mpo diff --git a/Tests/images/exif-ifd-offset.jpg b/Tests/images/exif-ifd-offset.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e5dfc6807a15195b96388f92d9fd3bf7f6f5f43e GIT binary patch literal 10951 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.xLA6D4hO?a32GihbbQ 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 y`1P$7zJ)4hg6^ct`UVN>+jz8v%b literal 0 HcmV?d00001 diff --git a/Tests/test_file_jpeg.py b/Tests/test_file_jpeg.py index 1485651c7..ad6f428e5 100644 --- a/Tests/test_file_jpeg.py +++ b/Tests/test_file_jpeg.py @@ -581,6 +581,15 @@ class TestFileJpeg(PillowTestCase): # OSError for unidentified image. self.assertEqual(im.info.get("dpi"), (72, 72)) + def test_ifd_offset_exif(self): + # Arrange + # This image has been manually hexedited to have an IFD offset of 10, + # in contrast to normal 8 + im = Image.open("Tests/images/exif-ifd-offset.jpg") + + # Act / Assert + self.assertEqual(im._getexif()[306], '2017:03:13 23:03:09') + @unittest.skipUnless(sys.platform.startswith('win32'), "Windows only") class TestFileCloseW32(PillowTestCase): diff --git a/Tests/test_file_mpo.py b/Tests/test_file_mpo.py index 9f79d8cfa..494bf9f89 100644 --- a/Tests/test_file_mpo.py +++ b/Tests/test_file_mpo.py @@ -62,6 +62,14 @@ class TestFileMpo(PillowTestCase): self.assertEqual(mpinfo[45056], b'0100') self.assertEqual(mpinfo[45057], 2) + def test_mp_offset(self): + # This image has been manually hexedited to have an IFD offset of 10 + # in APP2 data, in contrast to normal 8 + im = Image.open("Tests/images/sugarshack_ifd_offset.mpo") + mpinfo = im._getmp() + self.assertEqual(mpinfo[45056], b'0100') + self.assertEqual(mpinfo[45057], 2) + def test_mp_attribute(self): for test_file in test_files: im = Image.open(test_file) diff --git a/src/PIL/JpegImagePlugin.py b/src/PIL/JpegImagePlugin.py index e43bdea6b..5af84282f 100644 --- a/src/PIL/JpegImagePlugin.py +++ b/src/PIL/JpegImagePlugin.py @@ -463,6 +463,7 @@ def _getexif(self): head = file.read(8) # process dictionary info = TiffImagePlugin.ImageFileDirectory_v1(head) + file.seek(info.next) info.load(file) exif = dict(_fixup_dict(info)) # get exif extension @@ -510,6 +511,7 @@ def _getmp(self): # process dictionary try: info = TiffImagePlugin.ImageFileDirectory_v2(head) + file_contents.seek(info.next) info.load(file_contents) mp = dict(info) except Exception: From 221c2cb7a743cf47e793a36712d31c9f7462309c Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 16 Jan 2019 07:11:27 +1100 Subject: [PATCH 065/134] Moved before_install before install --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index b0fcea755..35266448d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -65,6 +65,9 @@ matrix: services: - docker +before_install: + - if [ "$DOCKER" ]; then travis_retry docker pull pythonpillow/$DOCKER:$DOCKER_TAG; fi + install: - | if [ "$LINT" == "true" ]; then @@ -73,9 +76,6 @@ install: .travis/install.sh; fi -before_install: - - if [ "$DOCKER" ]; then travis_retry docker pull pythonpillow/$DOCKER:$DOCKER_TAG; fi - before_script: # Qt needs a display for some of the tests, and it's only run on the system site packages install - | From 75c7504d93d38f56368488ea7f943e8dc905cc49 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 17 Jan 2019 11:15:42 +1100 Subject: [PATCH 066/134] Added Ghostscript to AppVeyor --- winbuild/build_dep.py | 24 ++++++++++++++++++++++++ winbuild/config.py | 5 +++++ 2 files changed, 29 insertions(+) diff --git a/winbuild/build_dep.py b/winbuild/build_dep.py index 5cd5cb14d..2264aef71 100644 --- a/winbuild/build_dep.py +++ b/winbuild/build_dep.py @@ -258,6 +258,29 @@ copy /Y /B %%LCMS%%\Lib\MS\*.lib %%INCLIB%% endlocal """ % compiler # noqa: E501 +def build_ghostscript(compiler, bit): + script = r""" +rem Build gs +setlocal +""" + vc_setup(compiler, bit) + r""" +set MSVC_VERSION=""" + { + "2008": "9", + "2010": "10", + "2015": "14" +}[compiler['vc_version']] + r""" +set RCOMP="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\RC.Exe" +cd /D %%GHOSTSCRIPT%% +""" + if bit == 64: + script += r""" +set WIN64="" +""" + script += r""" +nmake -f psi/msvc.mak +copy /Y /B bin\ C:\Python27\ +endlocal +""" + return script % compiler # noqa: E501 def add_compiler(compiler, bit): script.append(setup_compiler(compiler)) @@ -268,6 +291,7 @@ def add_compiler(compiler, bit): script.append(msbuild_freetype(compiler)) script.append(build_lcms2(compiler)) # script.append(nmake_openjpeg(compiler)) + script.append(build_ghostscript(compiler, bit)) script.append(end_compiler()) diff --git a/winbuild/config.py b/winbuild/config.py index 8edb7ea1a..cc8631a05 100644 --- a/winbuild/config.py +++ b/winbuild/config.py @@ -43,6 +43,11 @@ libs = { 'filename': PILLOW_DEPENDS_DIR + 'lcms2-2.7.zip', 'dir': 'lcms2-2.7', }, + 'ghostscript': { + 'url': 'https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs926/ghostscript-9.26.tar.gz', # noqa: E501 + 'filename': PILLOW_DEPENDS_DIR + 'ghostscript-9.26.tar.gz', + 'dir': 'ghostscript-9.26', + }, 'tcl-8.5': { 'url': SF_MIRROR+'/project/tcl/Tcl/8.5.19/tcl8519-src.zip', 'filename': PILLOW_DEPENDS_DIR + 'tcl8519-src.zip', From be99470b293ba3ab94fb19e76e12ad6e92db187a Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 19 Jan 2019 20:27:11 +1100 Subject: [PATCH 067/134] Moved docs JS file into custom directory --- docs/conf.py | 2 +- docs/{_static => resources}/js/script.js | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename docs/{_static => resources}/js/script.js (100%) diff --git a/docs/conf.py b/docs/conf.py index e75546c49..2c25588a0 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -140,7 +140,7 @@ html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] +html_static_path = ['_static', 'resources'] # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied diff --git a/docs/_static/js/script.js b/docs/resources/js/script.js similarity index 100% rename from docs/_static/js/script.js rename to docs/resources/js/script.js From 1afcdb2c341e0ba10db4319c28ec247cd70b5093 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 19 Jan 2019 20:39:02 +1100 Subject: [PATCH 068/134] Fixed JS errors in local Sphinx build --- docs/resources/js/script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/resources/js/script.js b/docs/resources/js/script.js index 2cd7335ec..3bc216c2d 100644 --- a/docs/resources/js/script.js +++ b/docs/resources/js/script.js @@ -5,7 +5,7 @@ jQuery(document).ready(function ($) { $section.children('.section, .function, .method').each(function () { if ($(this).hasClass('section')) { sectionID = $(this).attr('id'); - search($(this), $sidebarItem.parent().find('[href=#'+sectionID+']')); + search($(this), $sidebarItem.parent().find('[href="#'+sectionID+'"]')); } else { var $dt = $(this).children('dt'); var id = $dt.attr('id'); @@ -48,7 +48,7 @@ jQuery(document).ready(function ($) { } }); }; - search($('[itemprop=articleBody] > .section'), $('.wy-nav-side a[href=#]')); + search($('[itemprop=articleBody] > .section'), $('.wy-nav-side a[href="#"]')); }, 0); $(window).on('hashchange', function () { $('ul[data-sectionID]').each(function () { From dbbe463326e93e4d38e35d9aba99d1e3cb03642b Mon Sep 17 00:00:00 2001 From: Hugo Date: Sat, 19 Jan 2019 17:59:17 +0200 Subject: [PATCH 069/134] Remove deprecated PIL.OleFileIO in favour of olefile Python package --- src/PIL/OleFileIO.py | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 src/PIL/OleFileIO.py diff --git a/src/PIL/OleFileIO.py b/src/PIL/OleFileIO.py deleted file mode 100644 index b3caa10d5..000000000 --- a/src/PIL/OleFileIO.py +++ /dev/null @@ -1,4 +0,0 @@ -raise ImportError( - 'PIL.OleFileIO is deprecated. Use the olefile Python package ' - 'instead. This module will be removed in a future version.' -) From b41ffe585b8b0124b107b630a608b9af098d6e55 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sat, 19 Jan 2019 20:00:55 +0200 Subject: [PATCH 070/134] Remove deprecated ImageOps functions --- Tests/test_imageops_usm.py | 26 ----------- src/PIL/ImageOps.py | 96 -------------------------------------- 2 files changed, 122 deletions(-) diff --git a/Tests/test_imageops_usm.py b/Tests/test_imageops_usm.py index 20758e9f8..c90a987e9 100644 --- a/Tests/test_imageops_usm.py +++ b/Tests/test_imageops_usm.py @@ -1,7 +1,6 @@ from helper import unittest, PillowTestCase from PIL import Image -from PIL import ImageOps from PIL import ImageFilter im = Image.open("Tests/images/hopper.ppm") @@ -10,31 +9,6 @@ snakes = Image.open("Tests/images/color_snakes.png") class TestImageOpsUsm(PillowTestCase): - def test_ops_api(self): - - i = self.assert_warning(DeprecationWarning, - ImageOps.gaussian_blur, im, 2.0) - self.assertEqual(i.mode, "RGB") - self.assertEqual(i.size, (128, 128)) - - i = self.assert_warning(DeprecationWarning, ImageOps.box_blur, im, 1) - self.assertEqual(i.mode, "RGB") - self.assertEqual(i.size, (128, 128)) - - i = self.assert_warning(DeprecationWarning, ImageOps.gblur, im, 2.0) - self.assertEqual(i.mode, "RGB") - self.assertEqual(i.size, (128, 128)) - - i = self.assert_warning(DeprecationWarning, - ImageOps.unsharp_mask, im, 2.0, 125, 8) - self.assertEqual(i.mode, "RGB") - self.assertEqual(i.size, (128, 128)) - - i = self.assert_warning(DeprecationWarning, - ImageOps.usm, im, 2.0, 125, 8) - self.assertEqual(i.mode, "RGB") - self.assertEqual(i.size, (128, 128)) - def test_filter_api(self): test_filter = ImageFilter.GaussianBlur(2.0) diff --git a/src/PIL/ImageOps.py b/src/PIL/ImageOps.py index 058447b68..b93f6f35d 100644 --- a/src/PIL/ImageOps.py +++ b/src/PIL/ImageOps.py @@ -21,7 +21,6 @@ from . import Image from ._util import isStringType import operator import functools -import warnings # @@ -523,98 +522,3 @@ def solarize(image, threshold=128): else: lut.append(255-i) return _lut(image, lut) - - -# -------------------------------------------------------------------- -# PIL USM components, from Kevin Cazabon. - -def gaussian_blur(im, radius=None): - """ PIL_usm.gblur(im, [radius])""" - - warnings.warn( - 'PIL.ImageOps.gaussian_blur is deprecated. ' - 'Use PIL.ImageFilter.GaussianBlur instead. ' - 'This function will be removed in a future version.', - DeprecationWarning - ) - - if radius is None: - radius = 5.0 - - im.load() - - return im.im.gaussian_blur(radius) - - -def gblur(im, radius=None): - """ PIL_usm.gblur(im, [radius])""" - - warnings.warn( - 'PIL.ImageOps.gblur is deprecated. ' - 'Use PIL.ImageFilter.GaussianBlur instead. ' - 'This function will be removed in a future version.', - DeprecationWarning - ) - - return gaussian_blur(im, radius) - - -def unsharp_mask(im, radius=None, percent=None, threshold=None): - """ PIL_usm.usm(im, [radius, percent, threshold])""" - - warnings.warn( - 'PIL.ImageOps.unsharp_mask is deprecated. ' - 'Use PIL.ImageFilter.UnsharpMask instead. ' - 'This function will be removed in a future version.', - DeprecationWarning - ) - - if radius is None: - radius = 5.0 - if percent is None: - percent = 150 - if threshold is None: - threshold = 3 - - im.load() - - return im.im.unsharp_mask(radius, percent, threshold) - - -def usm(im, radius=None, percent=None, threshold=None): - """ PIL_usm.usm(im, [radius, percent, threshold])""" - - warnings.warn( - 'PIL.ImageOps.usm is deprecated. ' - 'Use PIL.ImageFilter.UnsharpMask instead. ' - 'This function will be removed in a future version.', - DeprecationWarning - ) - - return unsharp_mask(im, radius, percent, threshold) - - -def box_blur(image, radius): - """ - Blur the image by setting each pixel to the average value of the pixels - in a square box extending radius pixels in each direction. - Supports float radius of arbitrary size. Uses an optimized implementation - which runs in linear time relative to the size of the image - for any radius value. - - :param image: The image to blur. - :param radius: Size of the box in one direction. Radius 0 does not blur, - returns an identical image. Radius 1 takes 1 pixel - in each direction, i.e. 9 pixels in total. - :return: An image. - """ - warnings.warn( - 'PIL.ImageOps.box_blur is deprecated. ' - 'Use PIL.ImageFilter.BoxBlur instead. ' - 'This function will be removed in a future version.', - DeprecationWarning - ) - - image.load() - - return image._new(image.im.box_blur(radius)) From bb69e79dc913620e84bbf34be192fc7f67a8b89a Mon Sep 17 00:00:00 2001 From: Hugo Date: Sun, 20 Jan 2019 22:07:22 +0200 Subject: [PATCH 071/134] Document removals --- docs/deprecations.rst | 43 +++++++++++-------------------- docs/releasenotes/4.3.0.rst | 2 +- docs/releasenotes/6.0.0.rst | 51 +++++++++++++++++++++++++++++++++++++ docs/releasenotes/index.rst | 1 + 4 files changed, 68 insertions(+), 29 deletions(-) create mode 100644 docs/releasenotes/6.0.0.rst diff --git a/docs/deprecations.rst b/docs/deprecations.rst index 8d0ccbf37..adbf0f85f 100644 --- a/docs/deprecations.rst +++ b/docs/deprecations.rst @@ -34,17 +34,22 @@ Two version constants – ``VERSION`` (the old PIL version, always 1.1.7) and ``PILLOW_VERSION`` – have been deprecated and will be removed in the next major release. Use ``__version__`` instead. +Removed features +---------------- + +Deprecated features are only removed in major releases after an appropriate +period of deprecation has passed. + Undocumented ImageOps functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. deprecated:: 4.3.0 +*Removed in version 6.0.0.* -Several undocumented functions in ``ImageOps`` have been deprecated. They issue -a ``DeprecationWarning`` informing which equivalent to use from ``ImageFilter`` -instead: +Several undocumented functions in ``ImageOps`` have been removed. Use the equivalents +in ``ImageFilter`` instead: ========================== ============================ -Deprecated Use instead +Removed Use instead ========================== ============================ ``ImageOps.box_blur`` ``ImageFilter.BoxBlur`` ``ImageOps.gaussian_blur`` ``ImageFilter.GaussianBlur`` @@ -56,27 +61,9 @@ Deprecated Use instead PIL.OleFileIO ~~~~~~~~~~~~~ -.. deprecated:: 4.0.0 +*Removed in version 6.0.0.* -The vendored version of olefile has been removed. Attempting to import -``PIL.OleFileIO`` issues a ``DeprecationWarning`` (from 4.0.0) or raises -``ImportError`` (from 5.0.0): - -.. code-block:: none - - PIL.OleFileIO is deprecated. Use the olefile Python package - instead. This module will be removed in a future version. - -Removed features ----------------- - -Deprecated features are only removed in major releases after an appropriate -period of deprecation has passed. - -Vendored olefile -~~~~~~~~~~~~~~~~ - -*Removed in version 4.0.0.* - -The vendored version of the olefile Python package was removed in favour of the -upstream package. Install if needed (eg. ``pip install olefile``). +PIL.OleFileIO was removed as a vendored file and in Pillow 4.0.0 (2017-01) in favour of +the upstream olefile Python package, and replaced with an ``ImportError`` in 5.0.0 +(2018-01). The deprecated file has now been removed from Pillow. If needed, install from +PyPI (eg. ``pip install olefile``). diff --git a/docs/releasenotes/4.3.0.rst b/docs/releasenotes/4.3.0.rst index 827754230..6fa554e23 100644 --- a/docs/releasenotes/4.3.0.rst +++ b/docs/releasenotes/4.3.0.rst @@ -9,7 +9,7 @@ Deprecations Several undocumented functions in ImageOps have been deprecated: ``gaussian_blur``, ``gblur``, ``unsharp_mask``, ``usm`` and -``box_blur``. Use the equivalent operations in ImageFilter +``box_blur``. Use the equivalent operations in ``ImageFilter`` instead. These functions will be removed in a future release. TIFF Metadata Changes diff --git a/docs/releasenotes/6.0.0.rst b/docs/releasenotes/6.0.0.rst new file mode 100644 index 000000000..2ed3d980a --- /dev/null +++ b/docs/releasenotes/6.0.0.rst @@ -0,0 +1,51 @@ +6.0.0 +----- + +Backwards Incompatible Changes +============================== + +Python 3.4 dropped +^^^^^^^^^^^^^^^^^^ + +Python 3.4 is EOL since 2019-03-16 and no longer supported. We will not be creating +binaries, testing, or retaining compatibility with this version. The final version of +Pillow for Python 3.4 is 5.4.1. + +Removed deprecated PIL.OleFileIO +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +PIL.OleFileIO was removed as a vendored file and in Pillow 4.0.0 (2017-01) in favour of +the upstream olefile Python package, and replaced with an ``ImportError``. The +deprecated file has now been removed from Pillow. If needed, install from PyPI (eg. +``pip install olefile``). + +Removed deprecated ImageOps functions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Several undocumented functions ``ImageOps`` were deprecated in Pillow 4.3.0 (2017-10) +and have now been removed: ``gaussian_blur``, ``gblur``, ``unsharp_mask``, ``usm`` and +``box_blur``. Use the equivalent operations in ``ImageFilter`` instead. + +API Changes +=========== + +TODO +^^^^ + +TODO + +API Additions +============= + +TODO +^^^^ + +TODO + +Other Changes +============= + +TODO +^^^^ + +TODO diff --git a/docs/releasenotes/index.rst b/docs/releasenotes/index.rst index 9f98d6961..9a088375b 100644 --- a/docs/releasenotes/index.rst +++ b/docs/releasenotes/index.rst @@ -6,6 +6,7 @@ Release Notes .. toctree:: :maxdepth: 2 + 6.0.0 5.4.1 5.4.0 5.3.0 From 5a276be8895b991a6b982f741f8ea6c10aa9c2a3 Mon Sep 17 00:00:00 2001 From: Andrew Murray <3112309+radarhere@users.noreply.github.com> Date: Mon, 21 Jan 2019 20:55:04 +0200 Subject: [PATCH 072/134] Fix typo Co-Authored-By: hugovk --- docs/releasenotes/6.0.0.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/releasenotes/6.0.0.rst b/docs/releasenotes/6.0.0.rst index 2ed3d980a..f683d7c20 100644 --- a/docs/releasenotes/6.0.0.rst +++ b/docs/releasenotes/6.0.0.rst @@ -22,7 +22,7 @@ deprecated file has now been removed from Pillow. If needed, install from PyPI ( Removed deprecated ImageOps functions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Several undocumented functions ``ImageOps`` were deprecated in Pillow 4.3.0 (2017-10) +Several undocumented functions in ``ImageOps`` were deprecated in Pillow 4.3.0 (2017-10) and have now been removed: ``gaussian_blur``, ``gblur``, ``unsharp_mask``, ``usm`` and ``box_blur``. Use the equivalent operations in ``ImageFilter`` instead. From 0a454037afd406f8b5786a0b0ffd7d5848ba09b1 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 24 Jan 2019 19:51:43 +1100 Subject: [PATCH 073/134] Updated macOS tested Pillow versions [ci skip] --- docs/installation.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/installation.rst b/docs/installation.rst index 2ef20bbaf..8cfb8af57 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -423,13 +423,13 @@ These platforms have been reported to work at the versions mentioned. +----------------------------------+------------------------------+--------------------------------+-----------------------+ |**Operating system** |**Tested Python versions** |**Latest tested Pillow version**|**Tested processors** | +----------------------------------+------------------------------+--------------------------------+-----------------------+ -| macOS 10.14 Mojave | 2.7, 3.4, 3.5, 3.6, 3.7 | 5.3.0 |x86-64 | +| macOS 10.14 Mojave | 2.7, 3.4, 3.5, 3.6, 3.7 | 5.4.1 |x86-64 | +----------------------------------+------------------------------+--------------------------------+-----------------------+ | macOS 10.13 High Sierra | 2.7, 3.4, 3.5, 3.6 | 4.2.1 |x86-64 | +----------------------------------+------------------------------+--------------------------------+-----------------------+ | macOS 10.12 Sierra | 2.7, 3.4, 3.5, 3.6 | 4.1.1 |x86-64 | +----------------------------------+------------------------------+--------------------------------+-----------------------+ -| Mac OS X 10.11 El Capitan | 2.7, 3.4, 3.5, 3.6, 3.7 | 5.3.0 |x86-64 | +| Mac OS X 10.11 El Capitan | 2.7, 3.4, 3.5, 3.6, 3.7 | 5.4.1 |x86-64 | | +------------------------------+--------------------------------+ + | | 3.3 | 4.1.0 | | +----------------------------------+------------------------------+--------------------------------+-----------------------+ From 491fb5ab9104c831336a8596b11376afa1202225 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 24 Jan 2019 20:29:30 +1100 Subject: [PATCH 074/134] Updated libwebp to 1.0.2 --- depends/install_webp.sh | 2 +- winbuild/config.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/depends/install_webp.sh b/depends/install_webp.sh index 6394d52be..ead5637ee 100755 --- a/depends/install_webp.sh +++ b/depends/install_webp.sh @@ -1,7 +1,7 @@ #!/bin/bash # install webp -archive=libwebp-1.0.1 +archive=libwebp-1.0.2 ./download-and-extract.sh $archive https://raw.githubusercontent.com/python-pillow/pillow-depends/master/$archive.tar.gz diff --git a/winbuild/config.py b/winbuild/config.py index 8edb7ea1a..3ac78724c 100644 --- a/winbuild/config.py +++ b/winbuild/config.py @@ -66,9 +66,9 @@ libs = { 'version': '8.6.9', }, 'webp': { - 'url': 'http://downloads.webmproject.org/releases/webp/libwebp-1.0.1.tar.gz', - 'filename': PILLOW_DEPENDS_DIR + 'libwebp-1.0.1.tar.gz', - 'dir': 'libwebp-1.0.1', + 'url': 'http://downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz', + 'filename': PILLOW_DEPENDS_DIR + 'libwebp-1.0.2.tar.gz', + 'dir': 'libwebp-1.0.2', }, 'openjpeg': { 'url': SF_MIRROR+'/project/openjpeg/openjpeg/2.3.0/openjpeg-2.3.0.tar.gz', From beac7fe1284a13faeb5ce1c8021d58139ff563f8 Mon Sep 17 00:00:00 2001 From: Hugo Date: Thu, 24 Jan 2019 14:01:31 +0200 Subject: [PATCH 075/134] Update CHANGES.rst --- CHANGES.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index 4d8be7404..d92cc588b 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,6 +5,9 @@ Changelog (Pillow) 5.5.0 (unreleased) ------------------ +- Updated libwebp to 1.0.2 #3602 + [radarhere] + - Detect MIME types #3525 [radarhere] From d6055440d57c1cf075fd188504678190f5ba8540 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sun, 13 Jan 2019 21:55:07 +0200 Subject: [PATCH 076/134] Drop support for EOL Python 3.4 --- .appveyor.yml | 2 -- .travis.yml | 3 --- Tests/test_image_access.py | 6 ++---- docs/installation.rst | 10 ++++++---- mp_compile.py | 6 +++--- setup.py | 7 +++---- tox.ini | 2 +- winbuild/config.py | 19 ------------------- 8 files changed, 15 insertions(+), 40 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index da8c1708b..0cf10597a 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -25,8 +25,6 @@ environment: - PYTHON: C:/Python36-x64 - PYTHON: C:/Python35 - PYTHON: C:/Python35-x64 - - PYTHON: C:/Python34 - - PYTHON: C:/Python34-x64 - PYTHON: C:/msys64/mingw32 EXECUTABLE: bin/python3 PIP_DIR: bin diff --git a/.travis.yml b/.travis.yml index b0fcea755..85bb87862 100644 --- a/.travis.yml +++ b/.travis.yml @@ -47,9 +47,6 @@ matrix: name: "3.5 Trusty PYTHONOPTIMIZE=2" dist: trusty env: PYTHONOPTIMIZE=2 - - python: '3.4' - name: "3.4 Trusty" - dist: trusty - env: DOCKER="alpine" DOCKER_TAG="master" - env: DOCKER="arch" DOCKER_TAG="master" # contains PyQt5 - env: DOCKER="ubuntu-trusty-x86" DOCKER_TAG="master" diff --git a/Tests/test_image_access.py b/Tests/test_image_access.py index 481ec5935..7384c685d 100644 --- a/Tests/test_image_access.py +++ b/Tests/test_image_access.py @@ -310,10 +310,8 @@ class TestCffi(AccessTest): class TestEmbeddable(unittest.TestCase): @unittest.skipIf(not sys.platform.startswith('win32') or - sys.version_info[:2] == (3, 4) or - on_appveyor(), # failing on appveyor when run from - # subprocess, not from shell - "requires Python 2.7 or >=3.5 for Windows") + on_appveyor(), + "Failing on AppVeyor when run from subprocess, not from shell") def test_embeddable(self): import subprocess import ctypes diff --git a/docs/installation.rst b/docs/installation.rst index 8cfb8af57..93d017a8c 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -26,7 +26,9 @@ Notes +--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ |Pillow 5.0.x - 5.1.x| | | | Yes | | | Yes | Yes | Yes | | +--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ -|Pillow >= 5.2.0 | | | | Yes | | | Yes | Yes | Yes | Yes | +|Pillow 5.2.x - 5.5.x| | | | Yes | | | Yes | Yes | Yes | Yes | ++--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ +|Pillow >= 6.0.0 | | | | Yes | | | | Yes | Yes | Yes | +--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ Basic Installation @@ -394,16 +396,16 @@ These platforms are built and tested for every change. +----------------------------------+-------------------------------+-----------------------+ | Fedora 29 | 2.7 |x86-64 | +----------------------------------+-------------------------------+-----------------------+ -| Mac OS X 10.10 Yosemite* | 2.7, 3.4, 3.5, 3.6, 3.7 |x86-64 | +| Mac OS X 10.10 Yosemite* | 2.7, 3.5, 3.6, 3.7 |x86-64 | +----------------------------------+-------------------------------+-----------------------+ | Ubuntu Linux 16.04 LTS | 2.7, 3.5, 3.6, 3.7, |x86-64 | | | PyPy, PyPy3 | | +----------------------------------+-------------------------------+-----------------------+ -| Ubuntu Linux 14.04 LTS | 2.7, 3.4, 3.5, 3.6 |x86-64 | +| Ubuntu Linux 14.04 LTS | 2.7, 3.5, 3.6 |x86-64 | | +-------------------------------+-----------------------+ | | 2.7 |x86 | +----------------------------------+-------------------------------+-----------------------+ -| Windows Server 2012 R2 | 2.7, 3.4, 3.5, 3.6, 3.7 |x86, x86-64 | +| Windows Server 2012 R2 | 2.7, 3.5, 3.6, 3.7 |x86, x86-64 | | +-------------------------------+-----------------------+ | | PyPy, 3.7/MinGW |x86 | +----------------------------------+-------------------------------+-----------------------+ diff --git a/mp_compile.py b/mp_compile.py index 2d5287d77..f50210ba5 100644 --- a/mp_compile.py +++ b/mp_compile.py @@ -1,6 +1,6 @@ # A monkey patch of the base distutils.ccompiler to use parallel builds # Tested on 2.7, looks to be identical to 3.3. -# Only applied on Python < 3.5 because otherwise, it conflicts with Python's +# Only applied on Python 2.7 because otherwise, it conflicts with Python's # own newly-added support for parallel builds. from __future__ import print_function @@ -79,6 +79,6 @@ def install(): "%s processes" % MAX_PROCS) -# We monkeypatch only versions earlier than 3.5 -if sys.version_info < (3, 5): +# We monkeypatch Python 2.7 +if sys.version_info.major < 3: install() diff --git a/setup.py b/setup.py index 806c9b46b..5d8159a12 100755 --- a/setup.py +++ b/setup.py @@ -265,8 +265,8 @@ class pil_build_ext(build_ext): if self.debug: global DEBUG DEBUG = True - if sys.version_info >= (3, 5) and not self.parallel: - # For Python < 3.5, we monkeypatch distutils to have parallel + if sys.version_info.major >= 3 and not self.parallel: + # For Python 2.7, we monkeypatch distutils to have parallel # builds. If --parallel (or -j) wasn't specified, we want to # reproduce the same behavior as before, that is, auto-detect the # number of jobs. @@ -774,14 +774,13 @@ try: "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ], - python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", + python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", cmdclass={"build_ext": pil_build_ext}, ext_modules=[Extension("PIL._imaging", ["_imaging.c"])], include_package_data=True, diff --git a/tox.ini b/tox.ini index 3ae11eea0..0baa44f87 100644 --- a/tox.ini +++ b/tox.ini @@ -4,7 +4,7 @@ # and then run "tox" from this directory. [tox] -envlist = py27, py34, py35, py36, py37 +envlist = py27, py35, py36, py37 [testenv] commands = diff --git a/winbuild/config.py b/winbuild/config.py index 380cb718f..da6f7855b 100644 --- a/winbuild/config.py +++ b/winbuild/config.py @@ -5,7 +5,6 @@ PILLOW_DEPENDS_DIR = 'C:\\pillow-depends\\' pythons = {'27': {'compiler': 7, 'vc': 2008}, 'pypy2': {'compiler': 7, 'vc': 2008}, - '34': {'compiler': 7.1, 'vc': 2010}, '35': {'compiler': 7.1, 'vc': 2015}, '36': {'compiler': 7.1, 'vc': 2015}, '37': {'compiler': 7.1, 'vc': 2015}} @@ -104,24 +103,6 @@ compilers = { } }, 7.1: { - 2010: { - 64: { - 'env_version': 'v7.1', - 'vc_version': '2010', - 'env_flags': '/x64 /vista', - 'inc_dir': 'msvcr10-x64', - 'platform': 'x64', - 'webp_platform': 'x64', - }, - 32: { - 'env_version': 'v7.1', - 'vc_version': '2010', - 'env_flags': '/x86 /vista', - 'inc_dir': 'msvcr10-x32', - 'platform': 'Win32', - 'webp_platform': 'x86', - } - }, 2015: { 64: { 'env_version': 'v7.1', From 6eab984b0f925794210f2bf4b350550e8dbdd7e2 Mon Sep 17 00:00:00 2001 From: Hugo Date: Thu, 24 Jan 2019 23:41:28 +0200 Subject: [PATCH 077/134] Drop support for EOL Python 3.4 --- winbuild/build_dep.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/winbuild/build_dep.py b/winbuild/build_dep.py index 2264aef71..bc23e37e7 100644 --- a/winbuild/build_dep.py +++ b/winbuild/build_dep.py @@ -265,7 +265,6 @@ setlocal """ + vc_setup(compiler, bit) + r""" set MSVC_VERSION=""" + { "2008": "9", - "2010": "10", "2015": "14" }[compiler['vc_version']] + r""" set RCOMP="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\RC.Exe" @@ -308,7 +307,6 @@ else: # for compiler in all_compilers(): # add_compiler(compiler) add_compiler(compilers[7.0][2008][32], 32) - # add_compiler(compilers[7.1][2010][64]) with open('build_deps.cmd', 'w') as f: f.write("\n".join(script)) From 7b6f34e7ac9e73898cd3b466bf9f8e0bf42e0050 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 24 Jan 2019 20:00:27 +1100 Subject: [PATCH 078/134] Remove note about Python 3.0-3.4 [ci skip] --- docs/installation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/installation.rst b/docs/installation.rst index 93d017a8c..c100fe312 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -172,7 +172,7 @@ Many of Pillow's features require external libraries: the Pillow license, therefore we will not be distributing binaries with libimagequant support enabled. * Windows support: Libimagequant requires VS2013/MSVC 18 to compile, - so it is unlikely to work with any Python prior to 3.5 on Windows. + so it is unlikely to work with Python 2.7 on Windows. * **libraqm** provides complex text layout support. From 258ec6d129606fc616bf527bf7e9e9061adc55b0 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 17 Jan 2019 11:08:50 +1100 Subject: [PATCH 079/134] Changed subprocess stdin from devnull to None --- src/PIL/EpsImagePlugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PIL/EpsImagePlugin.py b/src/PIL/EpsImagePlugin.py index cc2c1b1f8..3a5ff8c75 100644 --- a/src/PIL/EpsImagePlugin.py +++ b/src/PIL/EpsImagePlugin.py @@ -144,7 +144,7 @@ def Ghostscript(tile, size, fp, scale=1): if sys.platform.startswith('win'): startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW - subprocess.check_call(command, stdin=devnull, stdout=devnull, + subprocess.check_call(command, stdout=devnull, startupinfo=startupinfo) im = Image.open(outfile) im.load() From 86afcfd8f96c6b5bfcdc479143a4db0fd951e448 Mon Sep 17 00:00:00 2001 From: cgohlke Date: Fri, 25 Jan 2019 15:11:22 -0800 Subject: [PATCH 080/134] Fix possible integer overflow --- src/_imaging.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/_imaging.c b/src/_imaging.c index ed4702d55..7715a7995 100644 --- a/src/_imaging.c +++ b/src/_imaging.c @@ -1420,7 +1420,7 @@ _putdata(ImagingObject* self, PyObject* args) image = self->image; n = PyObject_Length(data); - if (n > (Py_ssize_t) (image->xsize * image->ysize)) { + if (n > (Py_ssize_t)image->xsize * (Py_ssize_t)image->ysize) { PyErr_SetString(PyExc_TypeError, "too many data entries"); return NULL; } From 4ac6bbd07339753a61742b249c274249d785de61 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 27 Jan 2019 14:59:51 +1100 Subject: [PATCH 081/134] Changed version to 6.0.0 --- CHANGES.rst | 2 +- src/PIL/_version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index d92cc588b..e389a04bc 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -2,7 +2,7 @@ Changelog (Pillow) ================== -5.5.0 (unreleased) +6.0.0 (unreleased) ------------------ - Updated libwebp to 1.0.2 #3602 diff --git a/src/PIL/_version.py b/src/PIL/_version.py index 2835370a2..0b0d90e80 100644 --- a/src/PIL/_version.py +++ b/src/PIL/_version.py @@ -1,2 +1,2 @@ # Master version for Pillow -__version__ = '5.5.0.dev0' +__version__ = '6.0.0.dev0' From f149a416a0805a759eb893bb7aef077108e83af5 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 27 Jan 2019 15:00:35 +1100 Subject: [PATCH 082/134] Removed reference to 5.5.x [ci skip] --- docs/installation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/installation.rst b/docs/installation.rst index c100fe312..abccfcf56 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -26,7 +26,7 @@ Notes +--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ |Pillow 5.0.x - 5.1.x| | | | Yes | | | Yes | Yes | Yes | | +--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ -|Pillow 5.2.x - 5.5.x| | | | Yes | | | Yes | Yes | Yes | Yes | +|Pillow 5.2.x - 5.4.x| | | | Yes | | | Yes | Yes | Yes | Yes | +--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ |Pillow >= 6.0.0 | | | | Yes | | | | Yes | Yes | Yes | +--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ From a0b15e84d73d8e0722866af6cde916c648f06942 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sun, 27 Jan 2019 11:38:33 +0200 Subject: [PATCH 083/134] Fix Flake8 --- winbuild/build_dep.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/winbuild/build_dep.py b/winbuild/build_dep.py index bc23e37e7..99a07156a 100644 --- a/winbuild/build_dep.py +++ b/winbuild/build_dep.py @@ -258,15 +258,16 @@ copy /Y /B %%LCMS%%\Lib\MS\*.lib %%INCLIB%% endlocal """ % compiler # noqa: E501 + def build_ghostscript(compiler, bit): script = r""" rem Build gs setlocal """ + vc_setup(compiler, bit) + r""" set MSVC_VERSION=""" + { - "2008": "9", - "2015": "14" -}[compiler['vc_version']] + r""" + "2008": "9", + "2015": "14" + }[compiler['vc_version']] + r""" set RCOMP="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\RC.Exe" cd /D %%GHOSTSCRIPT%% """ @@ -281,6 +282,7 @@ endlocal """ return script % compiler # noqa: E501 + def add_compiler(compiler, bit): script.append(setup_compiler(compiler)) script.append(nmake_libs(compiler, bit)) From 32c344b7ced1ee4d8f76daa39a13a3ed51b13d93 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 27 Jan 2019 22:10:54 +1100 Subject: [PATCH 084/134] Added note about ImageDraw operations that exceed image bounds [ci skip] --- docs/reference/ImageDraw.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/reference/ImageDraw.rst b/docs/reference/ImageDraw.rst index 1f5e9b57e..7c24bae93 100644 --- a/docs/reference/ImageDraw.rst +++ b/docs/reference/ImageDraw.rst @@ -37,7 +37,8 @@ Coordinates ^^^^^^^^^^^ The graphics interface uses the same coordinate system as PIL itself, with (0, -0) in the upper left corner. +0) in the upper left corner. Any pixels drawn outside of the image bounds will +be discarded. Colors ^^^^^^ From 3d309dccdceeb8804e88cbe2420531e7a379af37 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sun, 27 Jan 2019 20:32:59 +0200 Subject: [PATCH 085/134] Update CHANGES.rst --- CHANGES.rst | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index e389a04bc..b4bb2b304 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,7 +5,16 @@ Changelog (Pillow) 6.0.0 (unreleased) ------------------ -- Updated libwebp to 1.0.2 #3602 +- Drop support for Python 3.4 #3596 + [hugovk] + +- Remove deprecated PIL.OleFileIO #3598 + [hugovk] + +- Remove deprecated ImageOps undocumented functions #3599 + [hugovk] + +- Depends: Update libwebp to 1.0.2 #3602 [radarhere] - Detect MIME types #3525 From adae7ecc6a3c61c0850dbf62ae5807bba3c9df32 Mon Sep 17 00:00:00 2001 From: Will Badart Date: Mon, 28 Jan 2019 12:14:42 -0500 Subject: [PATCH 086/134] _util.isPath returns True for pathlib.Path objects Now, for functions which accept either a path or file object, the predicate will pass on Paths and not attempt to call .read on them before opening. The pathlib module was added in 3.4 but os.path functions did not start accepting path-like objects until 3.6, so that is the version after which this implementation is defined. Added a unit test to make sure isPath accepts Path objects. The unit test is skipped if python version is not 3.6 or later. --- Tests/test_util.py | 16 ++++++++++++++++ src/PIL/_util.py | 11 +++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/Tests/test_util.py b/Tests/test_util.py index 2316d3d65..dc18ba1e7 100644 --- a/Tests/test_util.py +++ b/Tests/test_util.py @@ -1,7 +1,11 @@ +import sys + from helper import unittest, PillowTestCase from PIL import _util +py36 = sys.version_info.major >= 3 and sys.version_info.minor >= 6 + class TestUtil(PillowTestCase): @@ -35,6 +39,18 @@ class TestUtil(PillowTestCase): # Assert self.assertTrue(it_is) + @unittest.skipIf(not py36, 'os.path support for Paths added in 3.6') + def test_path_obj_is_path(self): + # Arrange + from pathlib import Path + fp = Path('filename.ext') + + # Act + it_is = _util.isPath(fp) + + # Assert + self.assertTrue(it_is) + def test_is_not_path(self): # Arrange filename = self.tempfile("temp.ext") diff --git a/src/PIL/_util.py b/src/PIL/_util.py index 5828c2c24..d2062cb2f 100644 --- a/src/PIL/_util.py +++ b/src/PIL/_util.py @@ -2,13 +2,20 @@ import os import sys py3 = sys.version_info.major >= 3 +py36 = py3 and sys.version_info.minor >= 6 if py3: def isStringType(t): return isinstance(t, str) - def isPath(f): - return isinstance(f, (bytes, str)) + if py36: + from pathlib import Path + + def isPath(f): + return isinstance(f, (bytes, str, Path)) + else: + def isPath(f): + return isinstance(f, (bytes, str)) else: def isStringType(t): return isinstance(t, basestring) # noqa: F821 From 37b182793e9e4ad520e9b0abad99f20b784f3a0d Mon Sep 17 00:00:00 2001 From: Will Badart Date: Mon, 28 Jan 2019 12:23:19 -0500 Subject: [PATCH 087/134] test_is_path calls the correct function Before, the test called the isStringType utility, which has its own, separate test. --- Tests/test_util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/test_util.py b/Tests/test_util.py index 2316d3d65..36fe844fb 100644 --- a/Tests/test_util.py +++ b/Tests/test_util.py @@ -30,7 +30,7 @@ class TestUtil(PillowTestCase): fp = "filename.ext" # Act - it_is = _util.isStringType(fp) + it_is = _util.isPath(fp) # Assert self.assertTrue(it_is) From 07bff3e9b8a34c85c8326525bd56b02d819a3352 Mon Sep 17 00:00:00 2001 From: Will Badart Date: Mon, 28 Jan 2019 19:45:53 -0500 Subject: [PATCH 088/134] Implement @hugovk's comments The `py36` flag now uses a tuple comparison to correctly handle future major version. The unit test file also now uses `py36` as exported by the _util module, rather than re-testing `sys.version_info`. --- Tests/test_util.py | 4 +--- src/PIL/_util.py | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Tests/test_util.py b/Tests/test_util.py index dc18ba1e7..6d7bfeeb0 100644 --- a/Tests/test_util.py +++ b/Tests/test_util.py @@ -4,8 +4,6 @@ from helper import unittest, PillowTestCase from PIL import _util -py36 = sys.version_info.major >= 3 and sys.version_info.minor >= 6 - class TestUtil(PillowTestCase): @@ -39,7 +37,7 @@ class TestUtil(PillowTestCase): # Assert self.assertTrue(it_is) - @unittest.skipIf(not py36, 'os.path support for Paths added in 3.6') + @unittest.skipIf(not _util.py36, 'os.path support for Paths added in 3.6') def test_path_obj_is_path(self): # Arrange from pathlib import Path diff --git a/src/PIL/_util.py b/src/PIL/_util.py index d2062cb2f..cb307050c 100644 --- a/src/PIL/_util.py +++ b/src/PIL/_util.py @@ -2,7 +2,7 @@ import os import sys py3 = sys.version_info.major >= 3 -py36 = py3 and sys.version_info.minor >= 6 +py36 = sys.version_info[0:2] >= (3, 6) if py3: def isStringType(t): From c328ecace3b28bc25c287401b4415ad2ad718b69 Mon Sep 17 00:00:00 2001 From: Will Badart Date: Mon, 28 Jan 2019 20:08:25 -0500 Subject: [PATCH 089/134] Fix lint error Removed missing import in test_util.py. Stopped needing it after I started reusing the py36 test from the _util module. --- Tests/test_util.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Tests/test_util.py b/Tests/test_util.py index 6d7bfeeb0..ea4a2f962 100644 --- a/Tests/test_util.py +++ b/Tests/test_util.py @@ -1,5 +1,3 @@ -import sys - from helper import unittest, PillowTestCase from PIL import _util From d880d41a14c302ff261ad4292fd89ba633a5d715 Mon Sep 17 00:00:00 2001 From: Hugo Date: Wed, 30 Jan 2019 11:38:19 +0200 Subject: [PATCH 090/134] Flake8: Fix E117 over-indented (comment) --- winbuild/build_dep.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winbuild/build_dep.py b/winbuild/build_dep.py index 99a07156a..13296dc5b 100644 --- a/winbuild/build_dep.py +++ b/winbuild/build_dep.py @@ -307,7 +307,7 @@ if 'PYTHON' in os.environ: add_compiler(compiler_from_env(), bit_from_env()) else: # for compiler in all_compilers(): - # add_compiler(compiler) + # add_compiler(compiler) add_compiler(compilers[7.0][2008][32], 32) with open('build_deps.cmd', 'w') as f: From 187ba3f6e8ddb592720422ee79cbac86ceeda3a8 Mon Sep 17 00:00:00 2001 From: Hugo Date: Wed, 30 Jan 2019 11:53:26 +0200 Subject: [PATCH 091/134] Flake8: Fix F723 syntax error in type comment 'dummy value'; it's just a comment, not a Mypy type --- Tests/test_file_libtiff.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/test_file_libtiff.py b/Tests/test_file_libtiff.py index 63dc49cde..542c868ed 100644 --- a/Tests/test_file_libtiff.py +++ b/Tests/test_file_libtiff.py @@ -205,7 +205,7 @@ class TestFileLibTiff(LibTiffTestCase): # 4: "long", # 5: "rational", # 12: "double", - # type: dummy value + # Type: dummy value values = {2: 'test', 3: 1, 4: 2**20, From 6d0e4a838f2319a7a34c0295b7f8b022dd0e479e Mon Sep 17 00:00:00 2001 From: Hugo Date: Wed, 30 Jan 2019 11:54:12 +0200 Subject: [PATCH 092/134] Flake8: Fix F821 undefined name; to prevent introducting Mypy depedency --- src/PIL/PdfParser.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/PIL/PdfParser.py b/src/PIL/PdfParser.py index 7216e5b95..a7773ef1e 100644 --- a/src/PIL/PdfParser.py +++ b/src/PIL/PdfParser.py @@ -393,8 +393,6 @@ class PdfParser: def __init__(self, filename=None, f=None, buf=None, start_offset=0, mode="rb"): - # type: (PdfParser, str, file, Union[bytes, bytearray], int, str) - # -> None if buf and f: raise RuntimeError( "specify buf or f or filename, but not both buf and f") From 158d99b8b0ca4205f1b89fbc6485528eedc84b25 Mon Sep 17 00:00:00 2001 From: Hugo Date: Tue, 29 Jan 2019 19:10:52 +0200 Subject: [PATCH 093/134] Remove deprecated VERSION --- Tests/test_000_sanity.py | 2 -- src/PIL/Image.py | 9 ++++----- src/PIL/__init__.py | 5 ++--- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Tests/test_000_sanity.py b/Tests/test_000_sanity.py index 62a9b5870..5dbed0abd 100644 --- a/Tests/test_000_sanity.py +++ b/Tests/test_000_sanity.py @@ -11,8 +11,6 @@ class TestSanity(PillowTestCase): # Make sure we have the binary extension PIL.Image.core.new("L", (100, 100)) - self.assertEqual(PIL.Image.VERSION[:3], '1.1') - # Create an image and do stuff with it. im = PIL.Image.new("1", (100, 100)) self.assertEqual((im.mode, im.size), ('1', (100, 100))) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index a67d3288f..21a029508 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -24,10 +24,10 @@ # See the README file for information on usage and redistribution. # -# VERSION is deprecated and will be removed in Pillow 6.0.0. -# PILLOW_VERSION is deprecated and will be removed after that. +# VERSION was removed in Pillow 6.0.0. +# PILLOW_VERSION is deprecated and will be removed in Pillow 7.0.0. # Use __version__ instead. -from . import VERSION, PILLOW_VERSION, __version__, _plugins +from . import PILLOW_VERSION, __version__, _plugins from ._util import py3 import logging @@ -60,8 +60,7 @@ except ImportError: from collections import Callable -# Silence warnings -assert VERSION +# Silence warning assert PILLOW_VERSION logger = logging.getLogger(__name__) diff --git a/src/PIL/__init__.py b/src/PIL/__init__.py index bc8cfed8c..ec0611b68 100644 --- a/src/PIL/__init__.py +++ b/src/PIL/__init__.py @@ -16,10 +16,9 @@ PIL.VERSION is the old PIL version and will be removed in the future. from . import _version -# VERSION is deprecated and will be removed in Pillow 6.0.0. -# PILLOW_VERSION is deprecated and will be removed after that. +# VERSION was removed in Pillow 6.0.0. +# PILLOW_VERSION is deprecated and will be removed in Pillow 7.0.0. # Use __version__ instead. -VERSION = '1.1.7' # PIL Version PILLOW_VERSION = __version__ = _version.__version__ del _version From 3513c82a737c1f668e7518968f7643c9cb018b47 Mon Sep 17 00:00:00 2001 From: Hugo Date: Wed, 30 Jan 2019 09:20:49 +0200 Subject: [PATCH 094/134] Use Pillow version instead of forked PIL version --- src/PIL/ImageCms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PIL/ImageCms.py b/src/PIL/ImageCms.py index 29959a83a..2cd6f33b5 100644 --- a/src/PIL/ImageCms.py +++ b/src/PIL/ImageCms.py @@ -950,5 +950,5 @@ def versions(): return ( VERSION, core.littlecms_version, - sys.version.split()[0], Image.VERSION + sys.version.split()[0], Image.__version__ ) From a11fed32b39aad7183d6d6f8091a60855b6464d1 Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Sat, 2 Feb 2019 17:35:40 -0800 Subject: [PATCH 095/134] Deprecate PIL.*ImagePlugin.__version__ attributes Use PIL.__version__ instead. --- docs/releasenotes/6.0.0.rst | 45 ++++++++++++++++++++++++++++++++--- src/PIL/BmpImagePlugin.py | 2 ++ src/PIL/CurImagePlugin.py | 2 ++ src/PIL/DcxImagePlugin.py | 2 ++ src/PIL/EpsImagePlugin.py | 2 ++ src/PIL/FliImagePlugin.py | 2 ++ src/PIL/FpxImagePlugin.py | 2 ++ src/PIL/GdImageFile.py | 2 ++ src/PIL/GifImagePlugin.py | 2 ++ src/PIL/IcoImagePlugin.py | 2 ++ src/PIL/ImImagePlugin.py | 2 ++ src/PIL/ImtImagePlugin.py | 2 ++ src/PIL/IptcImagePlugin.py | 2 ++ src/PIL/Jpeg2KImagePlugin.py | 2 ++ src/PIL/JpegImagePlugin.py | 2 ++ src/PIL/McIdasImagePlugin.py | 2 ++ src/PIL/MicImagePlugin.py | 2 ++ src/PIL/MpegImagePlugin.py | 2 ++ src/PIL/MpoImagePlugin.py | 2 ++ src/PIL/MspImagePlugin.py | 2 ++ src/PIL/PalmImagePlugin.py | 2 ++ src/PIL/PcdImagePlugin.py | 2 ++ src/PIL/PcxImagePlugin.py | 2 ++ src/PIL/PdfImagePlugin.py | 2 ++ src/PIL/PixarImagePlugin.py | 2 ++ src/PIL/PngImagePlugin.py | 2 ++ src/PIL/PpmImagePlugin.py | 2 ++ src/PIL/PsdImagePlugin.py | 2 ++ src/PIL/SgiImagePlugin.py | 2 ++ src/PIL/SunImagePlugin.py | 2 ++ src/PIL/TgaImagePlugin.py | 2 ++ src/PIL/TiffImagePlugin.py | 2 ++ src/PIL/WmfImagePlugin.py | 2 ++ src/PIL/XVThumbImagePlugin.py | 2 ++ src/PIL/XbmImagePlugin.py | 2 ++ src/PIL/XpmImagePlugin.py | 2 ++ 36 files changed, 112 insertions(+), 3 deletions(-) diff --git a/docs/releasenotes/6.0.0.rst b/docs/releasenotes/6.0.0.rst index f683d7c20..e1fa83cce 100644 --- a/docs/releasenotes/6.0.0.rst +++ b/docs/releasenotes/6.0.0.rst @@ -29,10 +29,49 @@ and have now been removed: ``gaussian_blur``, ``gblur``, ``unsharp_mask``, ``usm API Changes =========== -TODO -^^^^ +Deprecations +^^^^^^^^^^^^ -TODO +These version constants have been deprecated and will be removed in a future +version. + +* ``BmpImagePlugin.__version__`` +* ``CurImagePlugin.__version__`` +* ``DcxImagePlugin.__version__`` +* ``EpsImagePlugin.__version__`` +* ``FliImagePlugin.__version__`` +* ``FpxImagePlugin.__version__`` +* ``GdImageFile.__version__`` +* ``GifImagePlugin.__version__`` +* ``IcoImagePlugin.__version__`` +* ``ImImagePlugin.__version__`` +* ``ImtImagePlugin.__version__`` +* ``IptcImagePlugin.__version__`` +* ``Jpeg2KImagePlugin.__version__`` +* ``JpegImagePlugin.__version__`` +* ``McIdasImagePlugin.__version__`` +* ``MicImagePlugin.__version__`` +* ``MpegImagePlugin.__version__`` +* ``MpoImagePlugin.__version__`` +* ``MspImagePlugin.__version__`` +* ``PalmImagePlugin.__version__`` +* ``PcdImagePlugin.__version__`` +* ``PcxImagePlugin.__version__`` +* ``PdfImagePlugin.__version__`` +* ``PixarImagePlugin.__version__`` +* ``PngImagePlugin.__version__`` +* ``PpmImagePlugin.__version__`` +* ``PsdImagePlugin.__version__`` +* ``SgiImagePlugin.__version__`` +* ``SunImagePlugin.__version__`` +* ``TgaImagePlugin.__version__`` +* ``TiffImagePlugin.__version__`` +* ``WmfImagePlugin.__version__`` +* ``XbmImagePlugin.__version__`` +* ``XpmImagePlugin.__version__`` +* ``XVThumbImagePlugin.__version__`` + +Use ``PIL.__version__`` instead. API Additions ============= diff --git a/src/PIL/BmpImagePlugin.py b/src/PIL/BmpImagePlugin.py index e146f4da9..f261bf6ef 100644 --- a/src/PIL/BmpImagePlugin.py +++ b/src/PIL/BmpImagePlugin.py @@ -29,6 +29,8 @@ from ._binary import i8, i16le as i16, i32le as i32, \ o8, o16le as o16, o32le as o32 import math +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.7" # diff --git a/src/PIL/CurImagePlugin.py b/src/PIL/CurImagePlugin.py index 3e8f32102..e0a5fae62 100644 --- a/src/PIL/CurImagePlugin.py +++ b/src/PIL/CurImagePlugin.py @@ -21,6 +21,8 @@ from __future__ import print_function from . import Image, BmpImagePlugin from ._binary import i8, i16le as i16, i32le as i32 +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.1" # diff --git a/src/PIL/DcxImagePlugin.py b/src/PIL/DcxImagePlugin.py index 34a413dd7..3c8c2bc8a 100644 --- a/src/PIL/DcxImagePlugin.py +++ b/src/PIL/DcxImagePlugin.py @@ -25,6 +25,8 @@ from . import Image from ._binary import i32le as i32 from .PcxImagePlugin import PcxImageFile +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.2" MAGIC = 0x3ADE68B1 # QUIZ: what's this value, then? diff --git a/src/PIL/EpsImagePlugin.py b/src/PIL/EpsImagePlugin.py index cc2c1b1f8..d579c82ee 100644 --- a/src/PIL/EpsImagePlugin.py +++ b/src/PIL/EpsImagePlugin.py @@ -27,6 +27,8 @@ import sys from . import Image, ImageFile from ._binary import i32le as i32 +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.5" # diff --git a/src/PIL/FliImagePlugin.py b/src/PIL/FliImagePlugin.py index 4c3f533f7..bbc1a1340 100644 --- a/src/PIL/FliImagePlugin.py +++ b/src/PIL/FliImagePlugin.py @@ -19,6 +19,8 @@ from . import Image, ImageFile, ImagePalette from ._binary import i8, i16le as i16, i32le as i32, o8 +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.2" diff --git a/src/PIL/FpxImagePlugin.py b/src/PIL/FpxImagePlugin.py index 9f284fd85..5e8a814f2 100644 --- a/src/PIL/FpxImagePlugin.py +++ b/src/PIL/FpxImagePlugin.py @@ -22,6 +22,8 @@ from ._binary import i32le as i32, i8 import olefile +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.1" # we map from colour field tuples to (mode, rawmode) descriptors diff --git a/src/PIL/GdImageFile.py b/src/PIL/GdImageFile.py index 8b688381c..9f00b2fef 100644 --- a/src/PIL/GdImageFile.py +++ b/src/PIL/GdImageFile.py @@ -26,6 +26,8 @@ from . import ImageFile, ImagePalette from ._binary import i8, i16be as i16, i32be as i32 +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.1" diff --git a/src/PIL/GifImagePlugin.py b/src/PIL/GifImagePlugin.py index 21fdcc476..2d13de022 100644 --- a/src/PIL/GifImagePlugin.py +++ b/src/PIL/GifImagePlugin.py @@ -29,6 +29,8 @@ from ._binary import i8, i16le as i16, o8, o16le as o16 import itertools +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.9" diff --git a/src/PIL/IcoImagePlugin.py b/src/PIL/IcoImagePlugin.py index 589ef3cc2..16683fb8f 100644 --- a/src/PIL/IcoImagePlugin.py +++ b/src/PIL/IcoImagePlugin.py @@ -29,6 +29,8 @@ from . import Image, ImageFile, BmpImagePlugin, PngImagePlugin from ._binary import i8, i16le as i16, i32le as i32 from math import log, ceil +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.1" # diff --git a/src/PIL/ImImagePlugin.py b/src/PIL/ImImagePlugin.py index 3ef6bed63..08250e959 100644 --- a/src/PIL/ImImagePlugin.py +++ b/src/PIL/ImImagePlugin.py @@ -30,6 +30,8 @@ import re from . import Image, ImageFile, ImagePalette from ._binary import i8 +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.7" diff --git a/src/PIL/ImtImagePlugin.py b/src/PIL/ImtImagePlugin.py index 5a6623ca5..18b7dd839 100644 --- a/src/PIL/ImtImagePlugin.py +++ b/src/PIL/ImtImagePlugin.py @@ -19,6 +19,8 @@ import re from . import Image, ImageFile +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.2" diff --git a/src/PIL/IptcImagePlugin.py b/src/PIL/IptcImagePlugin.py index b63e1ab50..5055d2a00 100644 --- a/src/PIL/IptcImagePlugin.py +++ b/src/PIL/IptcImagePlugin.py @@ -22,6 +22,8 @@ from ._binary import i8, i16be as i16, i32be as i32, o8 import os import tempfile +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.3" COMPRESSION = { diff --git a/src/PIL/Jpeg2KImagePlugin.py b/src/PIL/Jpeg2KImagePlugin.py index 090337252..ab01845c7 100644 --- a/src/PIL/Jpeg2KImagePlugin.py +++ b/src/PIL/Jpeg2KImagePlugin.py @@ -17,6 +17,8 @@ import struct import os import io +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.1" diff --git a/src/PIL/JpegImagePlugin.py b/src/PIL/JpegImagePlugin.py index e43bdea6b..2616caa57 100644 --- a/src/PIL/JpegImagePlugin.py +++ b/src/PIL/JpegImagePlugin.py @@ -43,6 +43,8 @@ from ._binary import i8, o8, i16be as i16 from .JpegPresets import presets from ._util import isStringType +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.6" diff --git a/src/PIL/McIdasImagePlugin.py b/src/PIL/McIdasImagePlugin.py index 161fb5e50..2cdb6f828 100644 --- a/src/PIL/McIdasImagePlugin.py +++ b/src/PIL/McIdasImagePlugin.py @@ -19,6 +19,8 @@ import struct from . import Image, ImageFile +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.2" diff --git a/src/PIL/MicImagePlugin.py b/src/PIL/MicImagePlugin.py index cff84d5eb..8c7707dae 100644 --- a/src/PIL/MicImagePlugin.py +++ b/src/PIL/MicImagePlugin.py @@ -21,6 +21,8 @@ from . import Image, TiffImagePlugin import olefile +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.1" diff --git a/src/PIL/MpegImagePlugin.py b/src/PIL/MpegImagePlugin.py index 15c7afccc..7f419c5dc 100644 --- a/src/PIL/MpegImagePlugin.py +++ b/src/PIL/MpegImagePlugin.py @@ -17,6 +17,8 @@ from . import Image, ImageFile from ._binary import i8 +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.1" diff --git a/src/PIL/MpoImagePlugin.py b/src/PIL/MpoImagePlugin.py index 7afa3f35a..64c0f57a4 100644 --- a/src/PIL/MpoImagePlugin.py +++ b/src/PIL/MpoImagePlugin.py @@ -20,6 +20,8 @@ from . import Image, JpegImagePlugin +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.1" diff --git a/src/PIL/MspImagePlugin.py b/src/PIL/MspImagePlugin.py index 74c68172a..711f8f09a 100644 --- a/src/PIL/MspImagePlugin.py +++ b/src/PIL/MspImagePlugin.py @@ -28,6 +28,8 @@ from ._binary import i16le as i16, o16le as o16, i8 import struct import io +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.1" diff --git a/src/PIL/PalmImagePlugin.py b/src/PIL/PalmImagePlugin.py index e4865b0de..096867207 100644 --- a/src/PIL/PalmImagePlugin.py +++ b/src/PIL/PalmImagePlugin.py @@ -10,6 +10,8 @@ from . import Image, ImageFile from ._binary import o8, o16be as o16b +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "1.0" _Palm8BitColormapValues = ( # noqa: E131 diff --git a/src/PIL/PcdImagePlugin.py b/src/PIL/PcdImagePlugin.py index 87e5792eb..7e8fa3128 100644 --- a/src/PIL/PcdImagePlugin.py +++ b/src/PIL/PcdImagePlugin.py @@ -18,6 +18,8 @@ from . import Image, ImageFile from ._binary import i8 +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.1" diff --git a/src/PIL/PcxImagePlugin.py b/src/PIL/PcxImagePlugin.py index daa58b3f3..57d8189dd 100644 --- a/src/PIL/PcxImagePlugin.py +++ b/src/PIL/PcxImagePlugin.py @@ -31,6 +31,8 @@ from ._binary import i8, i16le as i16, o8, o16le as o16 logger = logging.getLogger(__name__) +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.6" diff --git a/src/PIL/PdfImagePlugin.py b/src/PIL/PdfImagePlugin.py index b42502762..702aaa392 100644 --- a/src/PIL/PdfImagePlugin.py +++ b/src/PIL/PdfImagePlugin.py @@ -25,6 +25,8 @@ import io import os import time +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.5" diff --git a/src/PIL/PixarImagePlugin.py b/src/PIL/PixarImagePlugin.py index d07b28d07..b4f19a96c 100644 --- a/src/PIL/PixarImagePlugin.py +++ b/src/PIL/PixarImagePlugin.py @@ -22,6 +22,8 @@ from . import Image, ImageFile from ._binary import i16le as i16 +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.1" diff --git a/src/PIL/PngImagePlugin.py b/src/PIL/PngImagePlugin.py index f3a2eaf21..3527985a7 100644 --- a/src/PIL/PngImagePlugin.py +++ b/src/PIL/PngImagePlugin.py @@ -40,6 +40,8 @@ from . import Image, ImageFile, ImagePalette from ._binary import i8, i16be as i16, i32be as i32, o16be as o16, o32be as o32 from ._util import py3 +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.9" logger = logging.getLogger(__name__) diff --git a/src/PIL/PpmImagePlugin.py b/src/PIL/PpmImagePlugin.py index 8002678fb..750454dc5 100644 --- a/src/PIL/PpmImagePlugin.py +++ b/src/PIL/PpmImagePlugin.py @@ -17,6 +17,8 @@ from . import Image, ImageFile +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.2" # diff --git a/src/PIL/PsdImagePlugin.py b/src/PIL/PsdImagePlugin.py index 765895244..c631f41cb 100644 --- a/src/PIL/PsdImagePlugin.py +++ b/src/PIL/PsdImagePlugin.py @@ -16,6 +16,8 @@ # See the README file for information on usage and redistribution. # +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.4" from . import Image, ImageFile, ImagePalette diff --git a/src/PIL/SgiImagePlugin.py b/src/PIL/SgiImagePlugin.py index 91753380d..37867bdb7 100644 --- a/src/PIL/SgiImagePlugin.py +++ b/src/PIL/SgiImagePlugin.py @@ -29,6 +29,8 @@ import struct import os +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.3" diff --git a/src/PIL/SunImagePlugin.py b/src/PIL/SunImagePlugin.py index 898350e02..485099fd4 100644 --- a/src/PIL/SunImagePlugin.py +++ b/src/PIL/SunImagePlugin.py @@ -20,6 +20,8 @@ from . import Image, ImageFile, ImagePalette from ._binary import i32be as i32 +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.3" diff --git a/src/PIL/TgaImagePlugin.py b/src/PIL/TgaImagePlugin.py index c266d50c1..26b1e9c60 100644 --- a/src/PIL/TgaImagePlugin.py +++ b/src/PIL/TgaImagePlugin.py @@ -22,6 +22,8 @@ from ._binary import i8, i16le as i16, o8, o16le as o16 import warnings +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.3" diff --git a/src/PIL/TiffImagePlugin.py b/src/PIL/TiffImagePlugin.py index a39591937..274327d7c 100644 --- a/src/PIL/TiffImagePlugin.py +++ b/src/PIL/TiffImagePlugin.py @@ -66,6 +66,8 @@ except ImportError: from collections import MutableMapping +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "1.3.5" DEBUG = False # Needs to be merged with the new logging approach. diff --git a/src/PIL/WmfImagePlugin.py b/src/PIL/WmfImagePlugin.py index 81699bda7..06eb851c9 100644 --- a/src/PIL/WmfImagePlugin.py +++ b/src/PIL/WmfImagePlugin.py @@ -27,6 +27,8 @@ from ._binary import i16le as word, si16le as short, \ from ._util import py3 +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.2" _handler = None diff --git a/src/PIL/XVThumbImagePlugin.py b/src/PIL/XVThumbImagePlugin.py index 8cdd84817..ad913b2a8 100644 --- a/src/PIL/XVThumbImagePlugin.py +++ b/src/PIL/XVThumbImagePlugin.py @@ -20,6 +20,8 @@ from . import Image, ImageFile, ImagePalette from ._binary import i8, o8 +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.1" _MAGIC = b"P7 332" diff --git a/src/PIL/XbmImagePlugin.py b/src/PIL/XbmImagePlugin.py index 0cccda17c..af5adccd2 100644 --- a/src/PIL/XbmImagePlugin.py +++ b/src/PIL/XbmImagePlugin.py @@ -22,6 +22,8 @@ import re from . import Image, ImageFile +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.6" # XBM header diff --git a/src/PIL/XpmImagePlugin.py b/src/PIL/XpmImagePlugin.py index 02bc28a17..9cecdbca2 100644 --- a/src/PIL/XpmImagePlugin.py +++ b/src/PIL/XpmImagePlugin.py @@ -19,6 +19,8 @@ import re from . import Image, ImageFile, ImagePalette from ._binary import i8, o8 +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. __version__ = "0.2" # XPM header From fbaf87ae03ba507c12347d3bf67733a342a7a3c9 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 3 Feb 2019 15:58:24 +1100 Subject: [PATCH 096/134] Replaced strings with docstrings --- src/PIL/FontFile.py | 4 ++-- src/PIL/ImageFile.py | 8 ++++---- src/PIL/ImageStat.py | 20 ++++++++++---------- src/PIL/PngImagePlugin.py | 16 ++++++++-------- src/PIL/TiffImagePlugin.py | 8 ++++---- 5 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/PIL/FontFile.py b/src/PIL/FontFile.py index 305e8afa2..b43f44762 100644 --- a/src/PIL/FontFile.py +++ b/src/PIL/FontFile.py @@ -46,7 +46,7 @@ class FontFile(object): return self.glyph[ix] def compile(self): - "Create metrics and bitmap" + """Create metrics and bitmap""" if self.bitmap: return @@ -93,7 +93,7 @@ class FontFile(object): self.metrics[i] = d, dst, s def save(self, filename): - "Save font" + """Save font""" self.compile() diff --git a/src/PIL/ImageFile.py b/src/PIL/ImageFile.py index bcc910853..cdf746932 100644 --- a/src/PIL/ImageFile.py +++ b/src/PIL/ImageFile.py @@ -115,7 +115,7 @@ class ImageFile(Image.Image): raise SyntaxError("not identified by this driver") def draft(self, mode, size): - "Set draft mode" + """Set draft mode""" pass @@ -125,7 +125,7 @@ class ImageFile(Image.Image): return self.custom_mimetype or Image.MIME.get(self.format.upper()) def verify(self): - "Check file integrity" + """Check file integrity""" # raise exception if something's wrong. must be called # directly after open, and closes file when finished. @@ -134,7 +134,7 @@ class ImageFile(Image.Image): self.fp = None def load(self): - "Load image data based on tile list" + """Load image data based on tile list""" pixel = Image.Image.load(self) @@ -317,7 +317,7 @@ class StubImageFile(ImageFile): self.__dict__ = image.__dict__ def _load(self): - "(Hook) Find actual image loader." + """(Hook) Find actual image loader.""" raise NotImplementedError( "StubImageFile subclass must implement _load" ) diff --git a/src/PIL/ImageStat.py b/src/PIL/ImageStat.py index d4b38d856..c926a7416 100644 --- a/src/PIL/ImageStat.py +++ b/src/PIL/ImageStat.py @@ -41,7 +41,7 @@ class Stat(object): self.bands = list(range(len(self.h) // 256)) def __getattr__(self, id): - "Calculate missing attribute" + """Calculate missing attribute""" if id[:4] == "_get": raise AttributeError(id) # calculate missing attribute @@ -50,7 +50,7 @@ class Stat(object): return v def _getextrema(self): - "Get min/max values for each band in the image" + """Get min/max values for each band in the image""" def minmax(histogram): n = 255 @@ -67,7 +67,7 @@ class Stat(object): return v def _getcount(self): - "Get total number of pixels in each layer" + """Get total number of pixels in each layer""" v = [] for i in range(0, len(self.h), 256): @@ -75,7 +75,7 @@ class Stat(object): return v def _getsum(self): - "Get sum of all pixels in each layer" + """Get sum of all pixels in each layer""" v = [] for i in range(0, len(self.h), 256): @@ -86,7 +86,7 @@ class Stat(object): return v def _getsum2(self): - "Get squared sum of all pixels in each layer" + """Get squared sum of all pixels in each layer""" v = [] for i in range(0, len(self.h), 256): @@ -97,7 +97,7 @@ class Stat(object): return v def _getmean(self): - "Get average pixel level for each layer" + """Get average pixel level for each layer""" v = [] for i in self.bands: @@ -105,7 +105,7 @@ class Stat(object): return v def _getmedian(self): - "Get median pixel level for each layer" + """Get median pixel level for each layer""" v = [] for i in self.bands: @@ -120,7 +120,7 @@ class Stat(object): return v def _getrms(self): - "Get RMS for each layer" + """Get RMS for each layer""" v = [] for i in self.bands: @@ -128,7 +128,7 @@ class Stat(object): return v def _getvar(self): - "Get variance for each layer" + """Get variance for each layer""" v = [] for i in self.bands: @@ -137,7 +137,7 @@ class Stat(object): return v def _getstddev(self): - "Get standard deviation for each layer" + """Get standard deviation for each layer""" v = [] for i in self.bands: diff --git a/src/PIL/PngImagePlugin.py b/src/PIL/PngImagePlugin.py index f3a2eaf21..aff8fadf4 100644 --- a/src/PIL/PngImagePlugin.py +++ b/src/PIL/PngImagePlugin.py @@ -102,7 +102,7 @@ class ChunkStream(object): self.queue = [] def read(self): - "Fetch a new chunk. Returns header information." + """Fetch a new chunk. Returns header information.""" cid = None if self.queue: @@ -134,13 +134,13 @@ class ChunkStream(object): self.queue.append((cid, pos, length)) def call(self, cid, pos, length): - "Call the appropriate chunk handler" + """Call the appropriate chunk handler""" logger.debug("STREAM %r %s %s", cid, pos, length) return getattr(self, "chunk_" + cid.decode('ascii'))(pos, length) def crc(self, cid, data): - "Read and verify checksum" + """Read and verify checksum""" # Skip CRC checks for ancillary chunks if allowed to load truncated # images @@ -160,7 +160,7 @@ class ChunkStream(object): % cid) def crc_skip(self, cid, data): - "Read checksum. Used if the C module is not present" + """Read checksum. Used if the C module is not present""" self.fp.read(4) @@ -614,7 +614,7 @@ class PngImageFile(ImageFile.ImageFile): return self._text def verify(self): - "Verify PNG file" + """Verify PNG file""" if self.fp is None: raise RuntimeError("verify must be called directly after open") @@ -630,7 +630,7 @@ class PngImageFile(ImageFile.ImageFile): self.fp = None def load_prepare(self): - "internal: prepare to read PNG file" + """internal: prepare to read PNG file""" if self.info.get("interlace"): self.decoderconfig = self.decoderconfig + (1,) @@ -638,7 +638,7 @@ class PngImageFile(ImageFile.ImageFile): ImageFile.ImageFile.load_prepare(self) def load_read(self, read_bytes): - "internal: read more image data" + """internal: read more image data""" while self.__idat == 0: # end of chunk, skip forward to next one @@ -664,7 +664,7 @@ class PngImageFile(ImageFile.ImageFile): return self.fp.read(read_bytes) def load_end(self): - "internal: finished reading image data" + """internal: finished reading image data""" while True: self.fp.read(4) # CRC diff --git a/src/PIL/TiffImagePlugin.py b/src/PIL/TiffImagePlugin.py index a39591937..8f2632cbe 100644 --- a/src/PIL/TiffImagePlugin.py +++ b/src/PIL/TiffImagePlugin.py @@ -963,7 +963,7 @@ class TiffImageFile(ImageFile.ImageFile): _close_exclusive_fp_after_loading = False def _open(self): - "Open the first image in a TIFF file" + """Open the first image in a TIFF file""" # Header ifh = self.fp.read(8) @@ -1020,7 +1020,7 @@ class TiffImageFile(ImageFile.ImageFile): return self._is_animated def seek(self, frame): - "Select a given frame as current image" + """Select a given frame as current image""" if not self._seek_check(frame): return self._seek(frame) @@ -1058,7 +1058,7 @@ class TiffImageFile(ImageFile.ImageFile): self._setup() def tell(self): - "Return the current frame number" + """Return the current frame number""" return self.__frame @property @@ -1173,7 +1173,7 @@ class TiffImageFile(ImageFile.ImageFile): return Image.Image.load(self) def _setup(self): - "Setup this image object based on current tags" + """Setup this image object based on current tags""" if 0xBC01 in self.tag_v2: raise IOError("Windows Media Photo files not yet supported") From a33e71a9dfb0fcbee75389785f8509d30cc165d5 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 3 Feb 2019 15:59:24 +1100 Subject: [PATCH 097/134] Changed string to comment --- Tests/test_tiff_ifdrational.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/test_tiff_ifdrational.py b/Tests/test_tiff_ifdrational.py index bd767b931..99fa375bd 100644 --- a/Tests/test_tiff_ifdrational.py +++ b/Tests/test_tiff_ifdrational.py @@ -30,7 +30,7 @@ class Test_IFDRational(PillowTestCase): self._test_equal(1, 2, IFDRational(1, 2)) def test_nonetype(self): - " Fails if the _delegate function doesn't return a valid function" + # Fails if the _delegate function doesn't return a valid function xres = IFDRational(72) yres = IFDRational(72) From 168e51751e5d709931746c61ac749b8ccb571597 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sun, 3 Feb 2019 12:53:26 +0200 Subject: [PATCH 098/134] Update CHANGES.rst --- CHANGES.rst | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index b4bb2b304..f96b4085a 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,6 +5,24 @@ Changelog (Pillow) 6.0.0 (unreleased) ------------------ +- Docs: Add note about ImageDraw operations that exceed image bounds #3620 + [radarhere] + +- Allow for unknown PNG chunks after image data #3558 + [radarhere] + +- Changed EPS subprocess stdin from devnull to None #3611 + [radarhere] + +- Fix possible integer overflow #3609 + [cgohlke] + +- Catch BaseException for resource cleanup handlers #3574 + [jdufresne] + +- Improve pytest configuration to allow specific tests as CLI args #3579 + [jdufresne] + - Drop support for Python 3.4 #3596 [hugovk] From dd1e7ccc4aacde8972f7b2573a2b5029e2cb222d Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Sun, 3 Feb 2019 07:13:28 -0800 Subject: [PATCH 099/134] Slightly simplify Image.__eq__ Two identical types can be compared using the `is` operator. Object identity is slightly faster than a string comparison as well. --- src/PIL/Image.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index ef4a7a88a..62e5051fc 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -655,8 +655,7 @@ class Image(object): return filename def __eq__(self, other): - return (isinstance(other, Image) and - self.__class__.__name__ == other.__class__.__name__ and + return (self.__class__ is other.__class__ and self.mode == other.mode and self.size == other.size and self.info == other.info and From 4de5477b616bebd5e96af33f7cb63d7f0ece8f16 Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Sun, 3 Feb 2019 07:34:53 -0800 Subject: [PATCH 100/134] Remove unnecessary unittest.main() boilerplate from test files With the introduction and use of pytest, it is simple and easy to execute specific tests in isolation through documented command line arguments. Either by specifying the module path or through the `-k EXPRESSION` argument. There is no longer any need to provide the boilerplate: if __name__ == '__main__': unittest.main() To every test file. It is simply noise. The pattern remains in test files that aren't named with `test_*` as those files are not discovered and executed by pytest by default. --- Tests/README.rst | 26 +++++++++----------------- Tests/test_000_sanity.py | 6 +----- Tests/test_binary.py | 6 +----- Tests/test_bmp_reference.py | 6 +----- Tests/test_box_blur.py | 6 +----- Tests/test_color_lut.py | 4 ---- Tests/test_core_resources.py | 4 ---- Tests/test_decompression_bomb.py | 6 +----- Tests/test_features.py | 4 ---- Tests/test_file_blp.py | 6 +----- Tests/test_file_bmp.py | 6 +----- Tests/test_file_bufrstub.py | 6 +----- Tests/test_file_container.py | 6 +----- Tests/test_file_cur.py | 6 +----- Tests/test_file_dcx.py | 6 +----- Tests/test_file_dds.py | 6 +----- Tests/test_file_eps.py | 4 ---- Tests/test_file_fitsstub.py | 6 +----- Tests/test_file_fli.py | 6 +----- Tests/test_file_fpx.py | 4 ---- Tests/test_file_ftex.py | 6 +----- Tests/test_file_gbr.py | 6 +----- Tests/test_file_gd.py | 6 +----- Tests/test_file_gif.py | 4 ---- Tests/test_file_gimpgradient.py | 6 +----- Tests/test_file_gimppalette.py | 6 +----- Tests/test_file_gribstub.py | 6 +----- Tests/test_file_hdf5stub.py | 6 +----- Tests/test_file_icns.py | 4 ---- Tests/test_file_ico.py | 6 +----- Tests/test_file_im.py | 6 +----- Tests/test_file_iptc.py | 6 +----- Tests/test_file_jpeg.py | 4 ---- Tests/test_file_jpeg2k.py | 6 +----- Tests/test_file_libtiff.py | 6 +----- Tests/test_file_libtiff_small.py | 6 ------ Tests/test_file_mcidas.py | 6 +----- Tests/test_file_mic.py | 4 ---- Tests/test_file_mpo.py | 6 +----- Tests/test_file_msp.py | 4 ---- Tests/test_file_palm.py | 6 +----- Tests/test_file_pcd.py | 6 +----- Tests/test_file_pcx.py | 6 +----- Tests/test_file_pdf.py | 6 +----- Tests/test_file_pixar.py | 6 +----- Tests/test_file_png.py | 4 ---- Tests/test_file_ppm.py | 6 +----- Tests/test_file_psd.py | 6 +----- Tests/test_file_sgi.py | 6 +----- Tests/test_file_spider.py | 6 +----- Tests/test_file_sun.py | 4 ---- Tests/test_file_tar.py | 6 +----- Tests/test_file_tga.py | 6 +----- Tests/test_file_tiff.py | 4 ---- Tests/test_file_tiff_metadata.py | 6 +----- Tests/test_file_wal.py | 6 +----- Tests/test_file_webp.py | 4 ---- Tests/test_file_webp_alpha.py | 4 ---- Tests/test_file_webp_animated.py | 6 +----- Tests/test_file_webp_lossless.py | 6 +----- Tests/test_file_webp_metadata.py | 6 +----- Tests/test_file_wmf.py | 6 +----- Tests/test_file_xbm.py | 6 +----- Tests/test_file_xpm.py | 6 +----- Tests/test_file_xvthumb.py | 6 +----- Tests/test_font_bdf.py | 6 +----- Tests/test_font_leaks.py | 4 ---- Tests/test_font_pcf.py | 6 +----- Tests/test_format_hsv.py | 6 +----- Tests/test_format_lab.py | 6 +----- Tests/test_image.py | 4 ---- Tests/test_image_access.py | 4 ---- Tests/test_image_array.py | 6 +----- Tests/test_image_convert.py | 6 +----- Tests/test_image_copy.py | 6 +----- Tests/test_image_crop.py | 6 +----- Tests/test_image_draft.py | 6 +----- Tests/test_image_filter.py | 6 +----- Tests/test_image_frombytes.py | 6 +----- Tests/test_image_fromqimage.py | 6 +----- Tests/test_image_getbands.py | 6 +----- Tests/test_image_getbbox.py | 6 +----- Tests/test_image_getcolors.py | 6 +----- Tests/test_image_getdata.py | 6 +----- Tests/test_image_getextrema.py | 6 +----- Tests/test_image_getim.py | 6 +----- Tests/test_image_getpalette.py | 6 +----- Tests/test_image_getprojection.py | 6 +----- Tests/test_image_histogram.py | 6 +----- Tests/test_image_load.py | 6 +----- Tests/test_image_mode.py | 6 +----- Tests/test_image_paste.py | 6 +----- Tests/test_image_point.py | 6 +----- Tests/test_image_putalpha.py | 6 +----- Tests/test_image_putdata.py | 6 +----- Tests/test_image_putpalette.py | 6 +----- Tests/test_image_quantize.py | 6 +----- Tests/test_image_resample.py | 4 ---- Tests/test_image_resize.py | 6 +----- Tests/test_image_rotate.py | 6 +----- Tests/test_image_split.py | 6 +----- Tests/test_image_thumbnail.py | 6 +----- Tests/test_image_tobitmap.py | 6 +----- Tests/test_image_tobytes.py | 6 +----- Tests/test_image_transform.py | 6 +----- Tests/test_image_transpose.py | 6 +----- Tests/test_imagechops.py | 6 +----- Tests/test_imagecms.py | 6 +----- Tests/test_imagecolor.py | 6 +----- Tests/test_imagedraw.py | 6 +----- Tests/test_imagedraw2.py | 4 ---- Tests/test_imageenhance.py | 6 +----- Tests/test_imagefile.py | 6 +----- Tests/test_imagefont.py | 4 ---- Tests/test_imagefont_bitmap.py | 4 ---- Tests/test_imagefontctl.py | 6 ------ Tests/test_imagegrab.py | 6 +----- Tests/test_imagemath.py | 6 +----- Tests/test_imagemorph.py | 6 +----- Tests/test_imageops.py | 6 +----- Tests/test_imageops_usm.py | 6 +----- Tests/test_imagepalette.py | 6 +----- Tests/test_imagepath.py | 6 +----- Tests/test_imageqt.py | 6 +----- Tests/test_imagesequence.py | 6 +----- Tests/test_imageshow.py | 6 +----- Tests/test_imagestat.py | 6 +----- Tests/test_imagetk.py | 4 ---- Tests/test_imagewin.py | 4 ---- Tests/test_imagewin_pointers.py | 5 +---- Tests/test_lib_pack.py | 6 +----- Tests/test_locale.py | 4 ---- Tests/test_map.py | 4 ---- Tests/test_mode_i16.py | 6 +----- Tests/test_numpy.py | 4 ---- Tests/test_pdfparser.py | 6 +----- Tests/test_pickle.py | 6 +----- Tests/test_psdraw.py | 6 +----- Tests/test_pyroma.py | 4 ---- Tests/test_qt_image_fromqpixmap.py | 6 +----- Tests/test_qt_image_toqimage.py | 6 +----- Tests/test_qt_image_toqpixmap.py | 6 +----- Tests/test_shell_injection.py | 4 ---- Tests/test_tiff_ifdrational.py | 6 +----- Tests/test_uploader.py | 6 +----- Tests/test_util.py | 6 +----- Tests/test_webp_leaks.py | 4 ---- 147 files changed, 123 insertions(+), 718 deletions(-) diff --git a/Tests/README.rst b/Tests/README.rst index 44f6f4792..d64a34bd7 100644 --- a/Tests/README.rst +++ b/Tests/README.rst @@ -13,28 +13,20 @@ Install:: Execution --------- -**If Pillow has been built in-place** - To run an individual test:: - python Tests/test_image.py + pytest Tests/test_image.py -Run all the tests from the root of the Pillow source distribution:: +Or:: - pytest -vx Tests - -Or with coverage:: - - pytest -vx --cov PIL --cov-report term Tests - coverage html - open htmlcov/index.html - -**If Pillow has been installed** - -To run an individual test:: - - pytest -k Tests/test_image.py + pytest -k test_image.py Run all the tests from the root of the Pillow source distribution:: pytest + +Or with coverage:: + + pytest --cov PIL --cov-report term + coverage html + open htmlcov/index.html diff --git a/Tests/test_000_sanity.py b/Tests/test_000_sanity.py index c2bbdc7d1..321a6b3ce 100644 --- a/Tests/test_000_sanity.py +++ b/Tests/test_000_sanity.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase import PIL import PIL.Image @@ -24,7 +24,3 @@ class TestSanity(PillowTestCase): PIL.Image.new("RGB", (100, 100)) PIL.Image.new("I", (100, 100)) PIL.Image.new("F", (100, 100)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_binary.py b/Tests/test_binary.py index 5c2aa35b7..bf9ba1e5f 100644 --- a/Tests/test_binary.py +++ b/Tests/test_binary.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import _binary @@ -22,7 +22,3 @@ class TestBinary(PillowTestCase): self.assertEqual(_binary.o16be(65535), b'\xff\xff') self.assertEqual(_binary.o32be(65535), b'\x00\x00\xff\xff') - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_bmp_reference.py b/Tests/test_bmp_reference.py index 0e2e001e5..0e32c93dd 100644 --- a/Tests/test_bmp_reference.py +++ b/Tests/test_bmp_reference.py @@ -1,5 +1,5 @@ from __future__ import print_function -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image import os @@ -103,7 +103,3 @@ class TestBmpReference(PillowTestCase): os.path.join(base, 'g', 'pal4rle.bmp')) if f not in unsupported: self.fail("Unsupported Image %s: %s" % (f, msg)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_box_blur.py b/Tests/test_box_blur.py index 9af6ca340..b9939c5f2 100644 --- a/Tests/test_box_blur.py +++ b/Tests/test_box_blur.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image, ImageFilter @@ -215,7 +215,3 @@ class TestBoxBlur(PillowTestCase): passes=3, delta=1, ) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_color_lut.py b/Tests/test_color_lut.py index b47a4d4c1..97035c793 100644 --- a/Tests/test_color_lut.py +++ b/Tests/test_color_lut.py @@ -519,7 +519,3 @@ class TestTransformColorLut3D(PillowTestCase): self.assertEqual(lut.table[0:16], [ 0.0, 0.0, 0.0, 0.5, 0.25, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.16, 0.0, 0.5]) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_core_resources.py b/Tests/test_core_resources.py index 9a5828e2b..fe9f5ccc4 100644 --- a/Tests/test_core_resources.py +++ b/Tests/test_core_resources.py @@ -179,7 +179,3 @@ class TestEnvVars(PillowTestCase): self.assert_warning( UserWarning, Image._apply_env_variables, {'PILLOW_BLOCKS_MAX': 'wat'}) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_decompression_bomb.py b/Tests/test_decompression_bomb.py index 96999467f..bc0bab525 100644 --- a/Tests/test_decompression_bomb.py +++ b/Tests/test_decompression_bomb.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -83,7 +83,3 @@ class TestDecompressionCrop(PillowTestCase): for value in error_values: with self.assertRaises(Image.DecompressionBombError): im.crop(value) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_features.py b/Tests/test_features.py index 963ef2f60..15b5982ce 100644 --- a/Tests/test_features.py +++ b/Tests/test_features.py @@ -63,7 +63,3 @@ class TestFeatures(PillowTestCase): module = "unsupported_module" # Act / Assert self.assertRaises(ValueError, features.check_module, module) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_blp.py b/Tests/test_file_blp.py index a82f37bcf..59951a890 100644 --- a/Tests/test_file_blp.py +++ b/Tests/test_file_blp.py @@ -1,6 +1,6 @@ from PIL import Image -from .helper import PillowTestCase, unittest +from .helper import PillowTestCase class TestFileBlp(PillowTestCase): @@ -18,7 +18,3 @@ class TestFileBlp(PillowTestCase): im = Image.open("Tests/images/blp/blp2_dxt1a.blp") target = Image.open("Tests/images/blp/blp2_dxt1a.png") self.assert_image_equal(im, target) - - -if __name__ == "__main__": - unittest.main() diff --git a/Tests/test_file_bmp.py b/Tests/test_file_bmp.py index 062bcf635..c51e2bb4e 100644 --- a/Tests/test_file_bmp.py +++ b/Tests/test_file_bmp.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image, BmpImagePlugin import io @@ -75,7 +75,3 @@ class TestFileBmp(PillowTestCase): im = BmpImagePlugin.DibImageFile('Tests/images/clipboard.dib') target = Image.open('Tests/images/clipboard_target.png') self.assert_image_equal(im, target) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_bufrstub.py b/Tests/test_file_bufrstub.py index cfee5cd04..307029136 100644 --- a/Tests/test_file_bufrstub.py +++ b/Tests/test_file_bufrstub.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import BufrStubImagePlugin, Image @@ -40,7 +40,3 @@ class TestFileBufrStub(PillowTestCase): # Act / Assert: stub cannot save without an implemented handler self.assertRaises(IOError, im.save, tmpfile) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_container.py b/Tests/test_file_container.py index a4df06630..8ca3310e5 100644 --- a/Tests/test_file_container.py +++ b/Tests/test_file_container.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image from PIL import ContainerIO @@ -123,7 +123,3 @@ class TestFileContainer(PillowTestCase): # Assert self.assertEqual(data, expected) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_cur.py b/Tests/test_file_cur.py index f357cd056..734c330e6 100644 --- a/Tests/test_file_cur.py +++ b/Tests/test_file_cur.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image, CurImagePlugin @@ -29,7 +29,3 @@ class TestFileCur(PillowTestCase): cur.fp.close() with open(no_cursors_file, "rb") as cur.fp: self.assertRaises(TypeError, cur._open) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_dcx.py b/Tests/test_file_dcx.py index 47a16c61d..0da364648 100644 --- a/Tests/test_file_dcx.py +++ b/Tests/test_file_dcx.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image, DcxImagePlugin @@ -64,7 +64,3 @@ class TestFileDcx(PillowTestCase): # Act / Assert self.assertRaises(EOFError, im.seek, frame) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_dds.py b/Tests/test_file_dds.py index 3d10fe1f2..af2524c4a 100644 --- a/Tests/test_file_dds.py +++ b/Tests/test_file_dds.py @@ -1,6 +1,6 @@ from io import BytesIO -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image, DdsImagePlugin TEST_FILE_DXT1 = "Tests/images/dxt1-rgb-4bbp-noalpha_MipMaps-1.dds" @@ -110,7 +110,3 @@ class TestFileDds(PillowTestCase): im.load() self.assertRaises(IOError, short_file) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_eps.py b/Tests/test_file_eps.py index d46fb9e95..1f6025d69 100644 --- a/Tests/test_file_eps.py +++ b/Tests/test_file_eps.py @@ -251,7 +251,3 @@ class TestFileEps(PillowTestCase): self.assertEqual(image.mode, "RGB") self.assertEqual(image.size, (460, 352)) self.assertEqual(image.format, "EPS") - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_fitsstub.py b/Tests/test_file_fitsstub.py index 3967aa3ae..6cb2de110 100644 --- a/Tests/test_file_fitsstub.py +++ b/Tests/test_file_fitsstub.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import FitsStubImagePlugin, Image @@ -44,7 +44,3 @@ class TestFileFitsStub(PillowTestCase): self.assertRaises( IOError, FitsStubImagePlugin._save, im, dummy_fp, dummy_filename) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_fli.py b/Tests/test_file_fli.py index 9dbfad0d6..f67f0ada1 100644 --- a/Tests/test_file_fli.py +++ b/Tests/test_file_fli.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image, FliImagePlugin @@ -97,7 +97,3 @@ class TestFileFli(PillowTestCase): expected = Image.open("Tests/images/a_fli.png") self.assert_image_equal(im, expected) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_fpx.py b/Tests/test_file_fpx.py index 15ac50c17..7283ba088 100644 --- a/Tests/test_file_fpx.py +++ b/Tests/test_file_fpx.py @@ -21,7 +21,3 @@ class TestFileFpx(PillowTestCase): ole_file = "Tests/images/test-ole-file.doc" self.assertRaises(SyntaxError, FpxImagePlugin.FpxImageFile, ole_file) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_ftex.py b/Tests/test_file_ftex.py index bdb91cc06..07e29d7e0 100644 --- a/Tests/test_file_ftex.py +++ b/Tests/test_file_ftex.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image @@ -14,7 +14,3 @@ class TestFileFtex(PillowTestCase): im = Image.open('Tests/images/ftex_dxt1.ftc') target = Image.open('Tests/images/ftex_dxt1.png') self.assert_image_similar(im, target.convert('RGBA'), 15) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_gbr.py b/Tests/test_file_gbr.py index 12b5e30bb..1eb66264d 100644 --- a/Tests/test_file_gbr.py +++ b/Tests/test_file_gbr.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image, GbrImagePlugin @@ -17,7 +17,3 @@ class TestFileGbr(PillowTestCase): target = Image.open('Tests/images/gbr.png') self.assert_image_equal(target, im) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_gd.py b/Tests/test_file_gd.py index 85ecf154b..67c9fba7b 100644 --- a/Tests/test_file_gd.py +++ b/Tests/test_file_gd.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import GdImageFile @@ -20,7 +20,3 @@ class TestFileGd(PillowTestCase): invalid_file = "Tests/images/flower.jpg" self.assertRaises(IOError, GdImageFile.open, invalid_file) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_gif.py b/Tests/test_file_gif.py index 5965472d1..6a4b14d40 100644 --- a/Tests/test_file_gif.py +++ b/Tests/test_file_gif.py @@ -654,7 +654,3 @@ class TestFileGif(PillowTestCase): self.assertEqual(im.tile[0][3][0], 11) # LZW bits # codec error prepatch im.load() - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_gimpgradient.py b/Tests/test_file_gimpgradient.py index f79927d78..c89440239 100644 --- a/Tests/test_file_gimpgradient.py +++ b/Tests/test_file_gimpgradient.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import GimpGradientFile @@ -119,7 +119,3 @@ class TestImage(PillowTestCase): # load returns raw palette information self.assertEqual(len(palette[0]), 1024) self.assertEqual(palette[1], "RGBA") - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_gimppalette.py b/Tests/test_file_gimppalette.py index 7838250b0..1ebac44e7 100644 --- a/Tests/test_file_gimppalette.py +++ b/Tests/test_file_gimppalette.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL.GimpPaletteFile import GimpPaletteFile @@ -28,7 +28,3 @@ class TestImage(PillowTestCase): # Assert self.assertEqual(mode, "RGB") - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_gribstub.py b/Tests/test_file_gribstub.py index 246167667..79e826945 100644 --- a/Tests/test_file_gribstub.py +++ b/Tests/test_file_gribstub.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import GribStubImagePlugin, Image @@ -40,7 +40,3 @@ class TestFileGribStub(PillowTestCase): # Act / Assert: stub cannot save without an implemented handler self.assertRaises(IOError, im.save, tmpfile) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_hdf5stub.py b/Tests/test_file_hdf5stub.py index c349607d0..598ef0c5c 100644 --- a/Tests/test_file_hdf5stub.py +++ b/Tests/test_file_hdf5stub.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Hdf5StubImagePlugin, Image @@ -44,7 +44,3 @@ class TestFileHdf5Stub(PillowTestCase): self.assertRaises( IOError, Hdf5StubImagePlugin._save, im, dummy_fp, dummy_filename) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_icns.py b/Tests/test_file_icns.py index 64db49ec6..ac60731f9 100644 --- a/Tests/test_file_icns.py +++ b/Tests/test_file_icns.py @@ -121,7 +121,3 @@ class TestFileIcns(PillowTestCase): with io.BytesIO(b'invalid\n') as fp: self.assertRaises(SyntaxError, IcnsImagePlugin.IcnsFile, fp) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_ico.py b/Tests/test_file_ico.py index 878c24dcf..b0d33e33f 100644 --- a/Tests/test_file_ico.py +++ b/Tests/test_file_ico.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper import io from PIL import Image, IcoImagePlugin @@ -82,7 +82,3 @@ class TestFileIco(PillowTestCase): self.assertEqual( im_saved.info['sizes'], {(16, 16), (24, 24), (32, 32), (48, 48)}) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_im.py b/Tests/test_file_im.py index 8a720ab29..8e774ce0a 100644 --- a/Tests/test_file_im.py +++ b/Tests/test_file_im.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image, ImImagePlugin @@ -69,7 +69,3 @@ class TestFileIm(PillowTestCase): def test_number(self): self.assertEqual(1.2, ImImagePlugin.number("1.2")) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_iptc.py b/Tests/test_file_iptc.py index 8567e96e8..83b735464 100644 --- a/Tests/test_file_iptc.py +++ b/Tests/test_file_iptc.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image, IptcImagePlugin @@ -69,7 +69,3 @@ class TestFileIptc(PillowTestCase): # Assert self.assertEqual(mystdout.getvalue(), "61 62 63 \n") - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_jpeg.py b/Tests/test_file_jpeg.py index 82e55b301..005d98160 100644 --- a/Tests/test_file_jpeg.py +++ b/Tests/test_file_jpeg.py @@ -602,7 +602,3 @@ class TestFileCloseW32(PillowTestCase): self.assertTrue(fp.closed) # this should not fail, as load should have closed the file. os.remove(tmpfile) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_jpeg2k.py b/Tests/test_file_jpeg2k.py index f3f74bb87..4b34354e2 100644 --- a/Tests/test_file_jpeg2k.py +++ b/Tests/test_file_jpeg2k.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image, Jpeg2KImagePlugin from io import BytesIO @@ -210,7 +210,3 @@ class TestFileJpeg2k(PillowTestCase): # Assert self.assertEqual(p.image.size, (640, 480)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_libtiff.py b/Tests/test_file_libtiff.py index df51e17a2..56564ebde 100644 --- a/Tests/test_file_libtiff.py +++ b/Tests/test_file_libtiff.py @@ -1,5 +1,5 @@ from __future__ import print_function -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import features from PIL._util import py3 @@ -700,7 +700,3 @@ class TestFileLibTiff(LibTiffTestCase): im = Image.open(infile) self.assert_image_similar_tofile(im, "Tests/images/flower.jpg", 0.5) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_libtiff_small.py b/Tests/test_file_libtiff_small.py index 77cf6d1bf..6b379718e 100644 --- a/Tests/test_file_libtiff_small.py +++ b/Tests/test_file_libtiff_small.py @@ -1,5 +1,3 @@ -from .helper import unittest - from PIL import Image from .test_file_libtiff import LibTiffTestCase @@ -46,7 +44,3 @@ class TestFileLibTiffSmall(LibTiffTestCase): self.assertEqual(im.size, (128, 128)) self._assert_noerr(im) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_mcidas.py b/Tests/test_file_mcidas.py index 3a81be39f..e273faad9 100644 --- a/Tests/test_file_mcidas.py +++ b/Tests/test_file_mcidas.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image, McIdasImagePlugin @@ -28,7 +28,3 @@ class TestFileMcIdas(PillowTestCase): self.assertEqual(im.size, (1800, 400)) im2 = Image.open(saved_file) self.assert_image_equal(im, im2) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_mic.py b/Tests/test_file_mic.py index 6b0fe3ade..3a7daa459 100644 --- a/Tests/test_file_mic.py +++ b/Tests/test_file_mic.py @@ -64,7 +64,3 @@ class TestFileMic(PillowTestCase): ole_file = "Tests/images/test-ole-file.doc" self.assertRaises(SyntaxError, MicImagePlugin.MicImageFile, ole_file) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_mpo.py b/Tests/test_file_mpo.py index 6f99198c0..1f1bebc4c 100644 --- a/Tests/test_file_mpo.py +++ b/Tests/test_file_mpo.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from io import BytesIO from PIL import Image @@ -142,7 +142,3 @@ class TestFileMpo(PillowTestCase): self.assertEqual(im.tell(), 1) jpg1 = self.frame_roundtrip(im) self.assert_image_similar(im, jpg1, 30) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_msp.py b/Tests/test_file_msp.py index 0ff034041..66af65fcd 100644 --- a/Tests/test_file_msp.py +++ b/Tests/test_file_msp.py @@ -78,7 +78,3 @@ class TestFileMsp(PillowTestCase): # Act/Assert self.assertRaises(IOError, im.save, filename) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_palm.py b/Tests/test_file_palm.py index 8ff327a76..a6491634a 100644 --- a/Tests/test_file_palm.py +++ b/Tests/test_file_palm.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper, imagemagick_available +from .helper import PillowTestCase, hopper, imagemagick_available import os.path @@ -52,7 +52,3 @@ class TestFilePalm(PillowTestCase): # Act / Assert self.assertRaises(IOError, self.helper_save_as_palm, mode) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_pcd.py b/Tests/test_file_pcd.py index 58de88488..7296a303f 100644 --- a/Tests/test_file_pcd.py +++ b/Tests/test_file_pcd.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image @@ -16,7 +16,3 @@ class TestFilePcd(PillowTestCase): # target = hopper().resize((768,512)) # self.assert_image_similar(im, target, 10) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_pcx.py b/Tests/test_file_pcx.py index d56ddace6..9e42a86f7 100644 --- a/Tests/test_file_pcx.py +++ b/Tests/test_file_pcx.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image, ImageFile, PcxImagePlugin @@ -128,7 +128,3 @@ class TestFilePcx(PillowTestCase): for x in range(5): px[x, 3] = 0 self._test_buffer_overflow(im) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_pdf.py b/Tests/test_file_pdf.py index 172bde2e4..7b024426b 100644 --- a/Tests/test_file_pdf.py +++ b/Tests/test_file_pdf.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image, PdfParser import io import os @@ -266,7 +266,3 @@ class TestFilePdf(PillowTestCase): f = io.BytesIO(f.getvalue()) im.save(f, format="PDF", append=True) self.assertGreater(len(f.getvalue()), initial_size) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_pixar.py b/Tests/test_file_pixar.py index fd814baf9..3b998c0b5 100644 --- a/Tests/test_file_pixar.py +++ b/Tests/test_file_pixar.py @@ -1,4 +1,4 @@ -from .helper import hopper, unittest, PillowTestCase +from .helper import hopper, PillowTestCase from PIL import Image, PixarImagePlugin @@ -24,7 +24,3 @@ class TestFilePixar(PillowTestCase): self.assertRaises( SyntaxError, PixarImagePlugin.PixarImageFile, invalid_file) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_png.py b/Tests/test_file_png.py index a0a2fd9cb..2b80bf357 100644 --- a/Tests/test_file_png.py +++ b/Tests/test_file_png.py @@ -626,7 +626,3 @@ class TestTruncatedPngPLeaks(PillowLeakTestCase): self._test_leak(core) finally: ImageFile.LOAD_TRUNCATED_IMAGES = False - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_ppm.py b/Tests/test_file_ppm.py index a7ff57aa9..47f8b845e 100644 --- a/Tests/test_file_ppm.py +++ b/Tests/test_file_ppm.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image @@ -49,7 +49,3 @@ class TestFilePpm(PillowTestCase): with self.assertRaises(IOError): Image.open('Tests/images/negative_size.ppm') - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_psd.py b/Tests/test_file_psd.py index 494596b11..3b8a7add6 100644 --- a/Tests/test_file_psd.py +++ b/Tests/test_file_psd.py @@ -1,4 +1,4 @@ -from .helper import hopper, unittest, PillowTestCase +from .helper import hopper, PillowTestCase from PIL import Image, PsdImagePlugin @@ -76,7 +76,3 @@ class TestImagePsd(PillowTestCase): im = Image.open("Tests/images/hopper_merged.psd") self.assertNotIn("icc_profile", im.info) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_sgi.py b/Tests/test_file_sgi.py index ded962b85..1ad70e24f 100644 --- a/Tests/test_file_sgi.py +++ b/Tests/test_file_sgi.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image, SgiImagePlugin @@ -89,7 +89,3 @@ class TestFileSgi(PillowTestCase): out = self.tempfile('temp.sgi') self.assertRaises(ValueError, im.save, out, format='sgi') - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_spider.py b/Tests/test_file_spider.py index 9f4f86b16..f160272fd 100644 --- a/Tests/test_file_spider.py +++ b/Tests/test_file_spider.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image from PIL import ImageSequence @@ -119,7 +119,3 @@ class TestImageSpider(PillowTestCase): for i, frame in enumerate(ImageSequence.Iterator(im)): if i > 1: self.fail("Non-stack DOS file test failed") - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_sun.py b/Tests/test_file_sun.py index 5d80aa2dd..65c00eea2 100644 --- a/Tests/test_file_sun.py +++ b/Tests/test_file_sun.py @@ -45,7 +45,3 @@ class TestFileSun(PillowTestCase): # im.save(target_file) with Image.open(target_path) as target: self.assert_image_equal(im, target) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_tar.py b/Tests/test_file_tar.py index 1b7c3c1b7..cd2b95778 100644 --- a/Tests/test_file_tar.py +++ b/Tests/test_file_tar.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image, TarIO @@ -34,7 +34,3 @@ class TestFileTar(PillowTestCase): def test_contextmanager(self): with TarIO.TarIO(TEST_TAR_FILE, 'hopper.jpg'): pass - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_tga.py b/Tests/test_file_tga.py index 37476dca9..0dbfb309c 100644 --- a/Tests/test_file_tga.py +++ b/Tests/test_file_tga.py @@ -2,7 +2,7 @@ import os from glob import glob from itertools import product -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image @@ -201,7 +201,3 @@ class TestFileTga(PillowTestCase): test_im.getchannel("A").getcolors()[0][0], num_transparent) self.assert_image_equal(im, test_im) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_tiff.py b/Tests/test_file_tiff.py index 7a18e40f0..9a4104b78 100644 --- a/Tests/test_file_tiff.py +++ b/Tests/test_file_tiff.py @@ -565,7 +565,3 @@ class TestFileTiffW32(PillowTestCase): # this should not fail, as load should have closed the file pointer, # and close should have closed the mmap os.remove(tmpfile) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_tiff_metadata.py b/Tests/test_file_tiff_metadata.py index 54c26cf81..14ec3ab6c 100644 --- a/Tests/test_file_tiff_metadata.py +++ b/Tests/test_file_tiff_metadata.py @@ -1,7 +1,7 @@ import io import struct -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image, TiffImagePlugin, TiffTags from PIL.TiffImagePlugin import _limit_rational, IFDRational @@ -247,7 +247,3 @@ class TestFileTiffMetadata(PillowTestCase): # Should not raise ValueError. self.assert_warning(UserWarning, lambda: ifd[277]) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_wal.py b/Tests/test_file_wal.py index baa174f75..1e0a835d2 100644 --- a/Tests/test_file_wal.py +++ b/Tests/test_file_wal.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import WalImageFile @@ -17,7 +17,3 @@ class TestFileWal(PillowTestCase): self.assertEqual(im.format_description, "Quake2 Texture") self.assertEqual(im.mode, "P") self.assertEqual(im.size, (128, 128)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_webp.py b/Tests/test_file_webp.py index fe29f868c..7e6fad93c 100644 --- a/Tests/test_file_webp.py +++ b/Tests/test_file_webp.py @@ -172,7 +172,3 @@ class TestFileWebp(PillowTestCase): difference = sum([abs(original_value[i] - reread_value[i]) for i in range(0, 3)]) self.assertLess(difference, 5) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_webp_alpha.py b/Tests/test_file_webp_alpha.py index df01ff180..c868fa1df 100644 --- a/Tests/test_file_webp_alpha.py +++ b/Tests/test_file_webp_alpha.py @@ -115,7 +115,3 @@ class TestFileWebpAlpha(PillowTestCase): target = Image.open(file_path).convert("RGBA") self.assert_image_similar(image, target, 25.0) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_webp_animated.py b/Tests/test_file_webp_animated.py index 4a940a83d..c751545c7 100644 --- a/Tests/test_file_webp_animated.py +++ b/Tests/test_file_webp_animated.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image @@ -151,7 +151,3 @@ class TestFileWebpAnimation(PillowTestCase): self.assertEqual(im.info["duration"], dur) self.assertEqual(im.info["timestamp"], ts) ts -= dur - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_webp_lossless.py b/Tests/test_file_webp_lossless.py index c682de02e..528c9177d 100644 --- a/Tests/test_file_webp_lossless.py +++ b/Tests/test_file_webp_lossless.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -36,7 +36,3 @@ class TestFileWebpLossless(PillowTestCase): image.getdata() self.assert_image_equal(image, hopper(self.rgb_mode)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_webp_metadata.py b/Tests/test_file_webp_metadata.py index aab312f61..402b6ce42 100644 --- a/Tests/test_file_webp_metadata.py +++ b/Tests/test_file_webp_metadata.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image @@ -133,7 +133,3 @@ class TestFileWebpMetadata(PillowTestCase): self.assertEqual(iccp_data, image.info.get('icc_profile', None)) self.assertEqual(exif_data, image.info.get('exif', None)) self.assertEqual(xmp_data, image.info.get('xmp', None)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_wmf.py b/Tests/test_file_wmf.py index 5659b40d7..146888491 100644 --- a/Tests/test_file_wmf.py +++ b/Tests/test_file_wmf.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image from PIL import WmfImagePlugin @@ -51,7 +51,3 @@ class TestFileWmf(PillowTestCase): for ext in [".wmf", ".emf"]: tmpfile = self.tempfile("temp"+ext) self.assertRaises(IOError, im.save, tmpfile) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_xbm.py b/Tests/test_file_xbm.py index 83843b2d7..fbcb30e90 100644 --- a/Tests/test_file_xbm.py +++ b/Tests/test_file_xbm.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image @@ -60,7 +60,3 @@ class TestFileXbm(PillowTestCase): # Assert self.assertEqual(im.mode, '1') self.assertEqual(im.size, (128, 128)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_xpm.py b/Tests/test_file_xpm.py index 0ab919a2b..b57cda2e3 100644 --- a/Tests/test_file_xpm.py +++ b/Tests/test_file_xpm.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image, XpmImagePlugin @@ -33,7 +33,3 @@ class TestFileXpm(PillowTestCase): # Assert self.assertEqual(len(data), 16384) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_file_xvthumb.py b/Tests/test_file_xvthumb.py index 7f3ae2626..11672ebae 100644 --- a/Tests/test_file_xvthumb.py +++ b/Tests/test_file_xvthumb.py @@ -1,4 +1,4 @@ -from .helper import hopper, unittest, PillowTestCase +from .helper import hopper, PillowTestCase from PIL import Image, XVThumbImagePlugin @@ -34,7 +34,3 @@ class TestFileXVThumb(PillowTestCase): # Act / Assert self.assertRaises(SyntaxError, XVThumbImagePlugin.XVThumbImageFile, invalid_file) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_font_bdf.py b/Tests/test_font_bdf.py index 665778031..be49e818e 100644 --- a/Tests/test_font_bdf.py +++ b/Tests/test_font_bdf.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import FontFile, BdfFontFile @@ -18,7 +18,3 @@ class TestFontBdf(PillowTestCase): def test_invalid_file(self): with open("Tests/images/flower.jpg", "rb") as fp: self.assertRaises(SyntaxError, BdfFontFile.BdfFontFile, fp) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_font_leaks.py b/Tests/test_font_leaks.py index 68bbd7220..119012bc5 100644 --- a/Tests/test_font_leaks.py +++ b/Tests/test_font_leaks.py @@ -31,7 +31,3 @@ class TestDefaultFontLeak(TestTTypeFontLeak): def test_leak(self): default_font = ImageFont.load_default() self._test_font(default_font) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_font_pcf.py b/Tests/test_font_pcf.py index fa3f31b73..d092634f3 100644 --- a/Tests/test_font_pcf.py +++ b/Tests/test_font_pcf.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image, FontFile, PcfFontFile from PIL import ImageFont, ImageDraw @@ -79,7 +79,3 @@ class TestFontPcf(PillowTestCase): # accept bytes instances in Py3. if py3: self._test_high_characters(message.encode('latin1')) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_format_hsv.py b/Tests/test_format_hsv.py index 8211170a3..3e1c00c9e 100644 --- a/Tests/test_format_hsv.py +++ b/Tests/test_format_hsv.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image from PIL._util import py3 @@ -129,7 +129,3 @@ class TestFormatHSV(PillowTestCase): self.assert_image_similar(converted.getchannel(2), comparable.getchannel(2), 3, "B conversion is wrong") - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_format_lab.py b/Tests/test_format_lab.py index 611adcb94..8a096e672 100644 --- a/Tests/test_format_lab.py +++ b/Tests/test_format_lab.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image @@ -40,7 +40,3 @@ class TestFormatLab(PillowTestCase): k = i.getpixel((0, 0)) self.assertEqual(k, (128, 228, 128)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image.py b/Tests/test_image.py index 427c6d878..330048057 100644 --- a/Tests/test_image.py +++ b/Tests/test_image.py @@ -560,7 +560,3 @@ class TestRegistry(PillowTestCase): 'DoesNotExist', ('args',), extra=('extra',)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_access.py b/Tests/test_image_access.py index 67bd9ab6c..937584cff 100644 --- a/Tests/test_image_access.py +++ b/Tests/test_image_access.py @@ -366,7 +366,3 @@ int main(int argc, char* argv[]) process = subprocess.Popen(['embed_pil.exe'], env=env) process.communicate() self.assertEqual(process.returncode, 0) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_array.py b/Tests/test_image_array.py index 609c69142..cf104217a 100644 --- a/Tests/test_image_array.py +++ b/Tests/test_image_array.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -55,7 +55,3 @@ 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)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_convert.py b/Tests/test_image_convert.py index 7123cb0a0..1ba1794eb 100644 --- a/Tests/test_image_convert.py +++ b/Tests/test_image_convert.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -230,7 +230,3 @@ class TestImageConvert(PillowTestCase): # Assert # No change self.assert_image_equal(converted_im, im) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_copy.py b/Tests/test_image_copy.py index 0224036b0..19679fe22 100644 --- a/Tests/test_image_copy.py +++ b/Tests/test_image_copy.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -40,7 +40,3 @@ class TestImageCopy(PillowTestCase): out = im.copy() self.assertEqual(out.mode, im.mode) self.assertEqual(out.size, im.size) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_crop.py b/Tests/test_image_crop.py index d3a30f954..45123a631 100644 --- a/Tests/test_image_crop.py +++ b/Tests/test_image_crop.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -102,7 +102,3 @@ class TestImageCrop(PillowTestCase): cropped = im.crop((10, 10, 20, 20)) self.assertEqual(cropped.size, (10, 10)) self.assertEqual(cropped.getdata()[2], (0, 0, 0)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_draft.py b/Tests/test_image_draft.py index 1ce118346..9ebd68945 100644 --- a/Tests/test_image_draft.py +++ b/Tests/test_image_draft.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, fromstring, tostring +from .helper import PillowTestCase, fromstring, tostring from PIL import Image @@ -69,7 +69,3 @@ class TestImageDraft(PillowTestCase): im = self.draft_roundtrip('L', (128, 128), None, (64, 64)) im.draft(None, (64, 64)) im.load() - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_filter.py b/Tests/test_image_filter.py index e33d4dbf5..a91387f81 100644 --- a/Tests/test_image_filter.py +++ b/Tests/test_image_filter.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image, ImageFilter @@ -136,7 +136,3 @@ class TestImageFilter(PillowTestCase): Image.merge(mode, source[:len(mode)]).filter(kernel), Image.merge(mode, reference[:len(mode)]), ) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_frombytes.py b/Tests/test_image_frombytes.py index f758b9ce4..3b224e71a 100644 --- a/Tests/test_image_frombytes.py +++ b/Tests/test_image_frombytes.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -13,7 +13,3 @@ class TestImageFromBytes(PillowTestCase): def test_not_implemented(self): self.assertRaises(NotImplementedError, Image.fromstring) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_fromqimage.py b/Tests/test_image_fromqimage.py index 1a5ddd42a..8a29a2715 100644 --- a/Tests/test_image_fromqimage.py +++ b/Tests/test_image_fromqimage.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from .test_imageqt import PillowQtTestCase from PIL import ImageQt, Image @@ -42,7 +42,3 @@ class TestFromQImage(PillowQtTestCase, PillowTestCase): def test_sanity_p(self): for im in self.files_to_test: self.roundtrip(im.convert('P')) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_getbands.py b/Tests/test_image_getbands.py index dfc882693..6d79bf280 100644 --- a/Tests/test_image_getbands.py +++ b/Tests/test_image_getbands.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image @@ -18,7 +18,3 @@ class TestImageGetBands(PillowTestCase): Image.new("CMYK", (1, 1)).getbands(), ("C", "M", "Y", "K")) self.assertEqual( Image.new("YCbCr", (1, 1)).getbands(), ("Y", "Cb", "Cr")) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_getbbox.py b/Tests/test_image_getbbox.py index a30695a13..9bf39752b 100644 --- a/Tests/test_image_getbbox.py +++ b/Tests/test_image_getbbox.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -37,7 +37,3 @@ class TestImageGetBbox(PillowTestCase): im.paste(255, (-10, -10, 110, 110)) self.assertEqual(im.getbbox(), (0, 0, 100, 100)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_getcolors.py b/Tests/test_image_getcolors.py index 6bfb0b399..aa2a40976 100644 --- a/Tests/test_image_getcolors.py +++ b/Tests/test_image_getcolors.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper class TestImageGetColors(PillowTestCase): @@ -65,7 +65,3 @@ class TestImageGetColors(PillowTestCase): A = im.getcolors(maxcolors=16) A.sort() self.assertEqual(A, expected) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_getdata.py b/Tests/test_image_getdata.py index 07f7ecf53..fe8f9adcd 100644 --- a/Tests/test_image_getdata.py +++ b/Tests/test_image_getdata.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper class TestImageGetData(PillowTestCase): @@ -27,7 +27,3 @@ class TestImageGetData(PillowTestCase): self.assertEqual(getdata("RGBA"), ((11, 13, 52, 255), 960, 960)) self.assertEqual(getdata("CMYK"), ((244, 242, 203, 0), 960, 960)) self.assertEqual(getdata("YCbCr"), ((16, 147, 123), 960, 960)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_getextrema.py b/Tests/test_image_getextrema.py index db72cdf16..1689744af 100644 --- a/Tests/test_image_getextrema.py +++ b/Tests/test_image_getextrema.py @@ -1,5 +1,5 @@ from PIL import Image -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper class TestImageGetExtrema(PillowTestCase): @@ -27,7 +27,3 @@ class TestImageGetExtrema(PillowTestCase): self.assertEqual(im.mode, 'I;16') extrema = im.getextrema() self.assertEqual(extrema, (106, 285)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_getim.py b/Tests/test_image_getim.py index bacec54e7..6d3682caf 100644 --- a/Tests/test_image_getim.py +++ b/Tests/test_image_getim.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL._util import py3 @@ -12,7 +12,3 @@ class TestImageGetIm(PillowTestCase): self.assertIn("PyCapsule", type_repr) self.assertIsInstance(im.im.id, int) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_getpalette.py b/Tests/test_image_getpalette.py index 0fd996f03..98f8142dc 100644 --- a/Tests/test_image_getpalette.py +++ b/Tests/test_image_getpalette.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper class TestImageGetPalette(PillowTestCase): @@ -18,7 +18,3 @@ class TestImageGetPalette(PillowTestCase): self.assertIsNone(palette("RGBA")) self.assertIsNone(palette("CMYK")) self.assertIsNone(palette("YCbCr")) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_getprojection.py b/Tests/test_image_getprojection.py index 6623c841b..85d40e859 100644 --- a/Tests/test_image_getprojection.py +++ b/Tests/test_image_getprojection.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -30,7 +30,3 @@ class TestImageGetProjection(PillowTestCase): im.paste(255, (2, 4, 8, 6)) self.assertEqual(im.getprojection()[0], [0, 0, 1, 1, 1, 1, 1, 1, 0, 0]) self.assertEqual(im.getprojection()[1], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0]) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_histogram.py b/Tests/test_image_histogram.py index 4a7a2a4ac..0a023cd69 100644 --- a/Tests/test_image_histogram.py +++ b/Tests/test_image_histogram.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper class TestImageHistogram(PillowTestCase): @@ -18,7 +18,3 @@ class TestImageHistogram(PillowTestCase): self.assertEqual(histogram("RGBA"), (1024, 0, 16384)) self.assertEqual(histogram("CMYK"), (1024, 0, 16384)) self.assertEqual(histogram("YCbCr"), (768, 0, 1908)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_load.py b/Tests/test_image_load.py index bd82654b1..d8f323eb8 100644 --- a/Tests/test_image_load.py +++ b/Tests/test_image_load.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -28,7 +28,3 @@ class TestImageLoad(PillowTestCase): os.fstat(fn) self.assertRaises(OSError, os.fstat, fn) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_mode.py b/Tests/test_image_mode.py index 3a8a6ad40..26266611d 100644 --- a/Tests/test_image_mode.py +++ b/Tests/test_image_mode.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -51,7 +51,3 @@ class TestImageMode(PillowTestCase): check("RGBX", "RGB", "L", 4, ("R", "G", "B", "X")) check("CMYK", "RGB", "L", 4, ("C", "M", "Y", "K")) check("YCbCr", "RGB", "L", 3, ("Y", "Cb", "Cr")) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_paste.py b/Tests/test_image_paste.py index c4654c361..5586e8618 100644 --- a/Tests/test_image_paste.py +++ b/Tests/test_image_paste.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, cached_property +from .helper import PillowTestCase, cached_property from PIL import Image @@ -250,7 +250,3 @@ class TestImagingPaste(PillowTestCase): im.copy().paste(im2) im.copy().paste(im2, (0, 0)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_point.py b/Tests/test_image_point.py index 4a457708f..90498fcff 100644 --- a/Tests/test_image_point.py +++ b/Tests/test_image_point.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper class TestImagePoint(PillowTestCase): @@ -38,7 +38,3 @@ class TestImagePoint(PillowTestCase): def test_f_mode(self): im = hopper('F') self.assertRaises(ValueError, im.point, None) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_putalpha.py b/Tests/test_image_putalpha.py index 1c9280e5c..7b66b8833 100644 --- a/Tests/test_image_putalpha.py +++ b/Tests/test_image_putalpha.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image @@ -44,7 +44,3 @@ class TestImagePutAlpha(PillowTestCase): self.assertFalse(im.readonly) self.assertEqual(im.mode, 'RGBA') self.assertEqual(im.getpixel((0, 0)), (1, 2, 3, 4)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_putdata.py b/Tests/test_image_putdata.py index 435a16b47..1b57e38b7 100644 --- a/Tests/test_image_putdata.py +++ b/Tests/test_image_putdata.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from array import array import sys @@ -83,7 +83,3 @@ class TestImagePutData(PillowTestCase): im.putdata(arr) self.assertEqual(len(im.getdata()), len(arr)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_putpalette.py b/Tests/test_image_putpalette.py index 5bc5f1444..34b585f55 100644 --- a/Tests/test_image_putpalette.py +++ b/Tests/test_image_putpalette.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import ImagePalette @@ -28,7 +28,3 @@ class TestImagePutPalette(PillowTestCase): im.putpalette(ImagePalette.random()) im.putpalette(ImagePalette.sepia()) im.putpalette(ImagePalette.wedge()) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_quantize.py b/Tests/test_image_quantize.py index a48448f5f..2f0b65758 100644 --- a/Tests/test_image_quantize.py +++ b/Tests/test_image_quantize.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -46,7 +46,3 @@ class TestImageQuantize(PillowTestCase): converted = image.quantize() self.assert_image(converted, 'P', converted.size) self.assert_image_similar(converted.convert('RGB'), image, 1) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_resample.py b/Tests/test_image_resample.py index 24c7e0f53..9ab8280ed 100644 --- a/Tests/test_image_resample.py +++ b/Tests/test_image_resample.py @@ -544,7 +544,3 @@ class CoreResampleBoxTest(PillowTestCase): except AssertionError: print('>>>', size, box, flt) raise - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_resize.py b/Tests/test_image_resize.py index 3fdaad6db..c47c7317b 100644 --- a/Tests/test_image_resize.py +++ b/Tests/test_image_resize.py @@ -3,7 +3,7 @@ Tests for resize functionality. """ from itertools import permutations -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -115,7 +115,3 @@ class TestImageResize(PillowTestCase): # Test unknown resampling filter im = hopper() self.assertRaises(ValueError, im.resize, (10, 10), "unknown") - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_rotate.py b/Tests/test_image_rotate.py index 47cceb988..05043cd06 100644 --- a/Tests/test_image_rotate.py +++ b/Tests/test_image_rotate.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -123,7 +123,3 @@ class TestImageRotate(PillowTestCase): im = im.rotate(45, expand=1, fillcolor=(255, 0, 0, 255)) corner = im.getpixel((0, 0)) self.assertEqual(corner, (255, 0, 0, 255)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_split.py b/Tests/test_image_split.py index 2f9bc7727..2d97dabc2 100644 --- a/Tests/test_image_split.py +++ b/Tests/test_image_split.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -59,7 +59,3 @@ class TestImageSplit(PillowTestCase): self.assertEqual(split_open("RGB"), 3) if 'zip_encoder' in codecs: self.assertEqual(split_open("RGBA"), 4) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_thumbnail.py b/Tests/test_image_thumbnail.py index e697dd273..d03ea4141 100644 --- a/Tests/test_image_thumbnail.py +++ b/Tests/test_image_thumbnail.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper class TestImageThumbnail(PillowTestCase): @@ -35,7 +35,3 @@ class TestImageThumbnail(PillowTestCase): im = hopper().resize((128, 128)) im.thumbnail((100, 100)) self.assert_image(im, im.mode, (100, 100)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_tobitmap.py b/Tests/test_image_tobitmap.py index 2b8bd8b20..c5c06ba01 100644 --- a/Tests/test_image_tobitmap.py +++ b/Tests/test_image_tobitmap.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper, fromstring +from .helper import PillowTestCase, hopper, fromstring class TestImageToBitmap(PillowTestCase): @@ -13,7 +13,3 @@ class TestImageToBitmap(PillowTestCase): self.assertIsInstance(bitmap, bytes) self.assert_image_equal(im1, fromstring(bitmap)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_tobytes.py b/Tests/test_image_tobytes.py index 909c4fdfc..2bfee2da3 100644 --- a/Tests/test_image_tobytes.py +++ b/Tests/test_image_tobytes.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper class TestImageToBytes(PillowTestCase): @@ -6,7 +6,3 @@ class TestImageToBytes(PillowTestCase): def test_sanity(self): data = hopper().tobytes() self.assertIsInstance(data, bytes) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_transform.py b/Tests/test_image_transform.py index 76fcc333f..ae1cf6e3d 100644 --- a/Tests/test_image_transform.py +++ b/Tests/test_image_transform.py @@ -1,6 +1,6 @@ import math -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -271,7 +271,3 @@ class TestImageTransformAffine(PillowTestCase): class TestImageTransformPerspective(TestImageTransformAffine): # Repeat all tests for AFFINE transformations with PERSPECTIVE transform = Image.PERSPECTIVE - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_image_transpose.py b/Tests/test_image_transpose.py index 1cd4beaad..8ffb9e9bf 100644 --- a/Tests/test_image_transpose.py +++ b/Tests/test_image_transpose.py @@ -1,5 +1,5 @@ from . import helper -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL.Image import (FLIP_LEFT_RIGHT, FLIP_TOP_BOTTOM, ROTATE_90, ROTATE_180, ROTATE_270, TRANSPOSE, TRANSVERSE) @@ -146,7 +146,3 @@ class TestImageTranspose(PillowTestCase): im.transpose(TRANSVERSE), transpose(ROTATE_270, FLIP_TOP_BOTTOM)) self.assert_image_equal( im.transpose(TRANSVERSE), transpose(ROTATE_180, TRANSPOSE)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagechops.py b/Tests/test_imagechops.py index 91ff8c94d..8aa784cdd 100644 --- a/Tests/test_imagechops.py +++ b/Tests/test_imagechops.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image from PIL import ImageChops @@ -373,7 +373,3 @@ class TestImageChops(PillowTestCase): table(ImageChops.logical_or, 0, 255), (0, 255, 255, 255)) self.assertEqual( table(ImageChops.logical_xor, 0, 255), (0, 255, 255, 0)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagecms.py b/Tests/test_imagecms.py index 789481e55..cdd6f00c3 100644 --- a/Tests/test_imagecms.py +++ b/Tests/test_imagecms.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper import datetime from PIL import Image, ImageMode @@ -514,7 +514,3 @@ class TestImageCms(PillowTestCase): self.assert_image_equal(test_image.convert(dst_format[2]), reference_image) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagecolor.py b/Tests/test_imagecolor.py index b1a4ea2f3..cb9c9843c 100644 --- a/Tests/test_imagecolor.py +++ b/Tests/test_imagecolor.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image from PIL import ImageColor @@ -192,7 +192,3 @@ class TestImageColor(PillowTestCase): self.assertEqual( (162, 33), ImageColor.getcolor("rgba(0, 255, 115, 33)", "LA")) Image.new("LA", (1, 1), "white") - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagedraw.py b/Tests/test_imagedraw.py index 01b606460..bceb0e3d4 100644 --- a/Tests/test_imagedraw.py +++ b/Tests/test_imagedraw.py @@ -1,6 +1,6 @@ import os.path -from .helper import PillowTestCase, hopper, unittest +from .helper import PillowTestCase, hopper from PIL import Image, ImageColor, ImageDraw BLACK = (0, 0, 0) @@ -762,7 +762,3 @@ class TestImageDraw(PillowTestCase): expected = ("Tests/images/imagedraw_outline" "_{}_{}.png".format(operation, mode)) self.assert_image_similar(im, Image.open(expected), 1) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagedraw2.py b/Tests/test_imagedraw2.py index acb3b8c0c..97033c8a7 100644 --- a/Tests/test_imagedraw2.py +++ b/Tests/test_imagedraw2.py @@ -223,7 +223,3 @@ class TestImageDraw(PillowTestCase): # Assert self.assert_image_equal(im, im2) - - -if __name__ == "__main__": - unittest.main() diff --git a/Tests/test_imageenhance.py b/Tests/test_imageenhance.py index 308a9abb1..0e4e8c4f3 100644 --- a/Tests/test_imageenhance.py +++ b/Tests/test_imageenhance.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image from PIL import ImageEnhance @@ -48,7 +48,3 @@ class TestImageEnhance(PillowTestCase): self._check_alpha( getattr(ImageEnhance, op)(original).enhance(amount), original, op, amount) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagefile.py b/Tests/test_imagefile.py index f3419541f..5853fb28f 100644 --- a/Tests/test_imagefile.py +++ b/Tests/test_imagefile.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper, fromstring, tostring +from .helper import PillowTestCase, hopper, fromstring, tostring from io import BytesIO @@ -233,7 +233,3 @@ class TestPyDecoder(PillowTestCase): im = MockImageFile(buf) self.assertIsNone(im.format) self.assertIsNone(im.get_format_mimetype()) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagefont.py b/Tests/test_imagefont.py index 41530a587..be8667211 100644 --- a/Tests/test_imagefont.py +++ b/Tests/test_imagefont.py @@ -529,7 +529,3 @@ class TestImageFont(PillowTestCase): @unittest.skipUnless(HAS_RAQM, "Raqm not Available") class TestImageFont_RaqmLayout(TestImageFont): LAYOUT_ENGINE = ImageFont.LAYOUT_RAQM - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagefont_bitmap.py b/Tests/test_imagefont_bitmap.py index ba4c7fa6b..eb44957e4 100644 --- a/Tests/test_imagefont_bitmap.py +++ b/Tests/test_imagefont_bitmap.py @@ -34,7 +34,3 @@ class TestImageFontBitmap(PillowTestCase): draw_outline.text((0, size_final[1] - size_outline[1]), text, fill=(0, 0, 0), font=font_outline) self.assert_image_similar(im_bitmap, im_outline, 20) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagefontctl.py b/Tests/test_imagefontctl.py index b518ad820..d23f6d86f 100644 --- a/Tests/test_imagefontctl.py +++ b/Tests/test_imagefontctl.py @@ -130,9 +130,3 @@ class TestImagecomplextext(PillowTestCase): target_img = Image.open(target) self.assert_image_similar(im, target_img, .5) - - -if __name__ == '__main__': - unittest.main() - -# End of file diff --git a/Tests/test_imagegrab.py b/Tests/test_imagegrab.py index 6aef5d255..a2e7a028d 100644 --- a/Tests/test_imagegrab.py +++ b/Tests/test_imagegrab.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase import sys import subprocess @@ -53,7 +53,3 @@ class TestImageGrabImport(PillowTestCase): self.assertIsInstance(exception, ImportError) self.assertEqual(str(exception), "ImageGrab is macOS and Windows only") - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagemath.py b/Tests/test_imagemath.py index be7d3db78..8273b63c1 100644 --- a/Tests/test_imagemath.py +++ b/Tests/test_imagemath.py @@ -1,5 +1,5 @@ from __future__ import print_function -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image from PIL import ImageMath @@ -182,7 +182,3 @@ class TestImageMath(PillowTestCase): pixel(ImageMath.eval("notequal(B, A)", A=A, B=B)), "I 1") self.assertEqual( pixel(ImageMath.eval("notequal(A, Z)", A=A, Z=Z)), "I 1") - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagemorph.py b/Tests/test_imagemorph.py index a628a4718..0cf15bd6c 100644 --- a/Tests/test_imagemorph.py +++ b/Tests/test_imagemorph.py @@ -1,5 +1,5 @@ # Test the ImageMorphology functionality -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image, ImageMorph, _imagingmorph @@ -321,7 +321,3 @@ class MorphTests(PillowTestCase): # Should not raise _imagingmorph.match(bytes(lut), iml.im.id) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imageops.py b/Tests/test_imageops.py index 2f0a4c720..c5e48c431 100644 --- a/Tests/test_imageops.py +++ b/Tests/test_imageops.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import ImageOps from PIL import Image @@ -218,7 +218,3 @@ class TestImageOps(PillowTestCase): (0, 127, 0), threshold=1, msg='white test pixel incorrect') - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imageops_usm.py b/Tests/test_imageops_usm.py index e62217396..a867e5430 100644 --- a/Tests/test_imageops_usm.py +++ b/Tests/test_imageops_usm.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image from PIL import ImageFilter @@ -73,7 +73,3 @@ class TestImageOpsUsm(PillowTestCase): self.assertTrue(236 <= gp(8, 5)[2] <= 239) self.assertTrue(236 <= gp(8, 6)[2] <= 239) self.assertTrue(236 <= gp(8, 7)[1] <= 239) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagepalette.py b/Tests/test_imagepalette.py index d9da3bb34..e4b5b7f72 100644 --- a/Tests/test_imagepalette.py +++ b/Tests/test_imagepalette.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import ImagePalette, Image @@ -134,7 +134,3 @@ class TestImagePalette(PillowTestCase): def test_invalid_palette(self): self.assertRaises(IOError, ImagePalette.load, "Tests/images/hopper.jpg") - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagepath.py b/Tests/test_imagepath.py index 8539de309..8cf88b7c1 100644 --- a/Tests/test_imagepath.py +++ b/Tests/test_imagepath.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import ImagePath, Image from PIL._util import py3 @@ -94,7 +94,3 @@ class evil: def __setitem__(self, i, x): self.corrupt[i] = struct.unpack("dd", x) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imageqt.py b/Tests/test_imageqt.py index 8ed32cdc1..2ded37c09 100644 --- a/Tests/test_imageqt.py +++ b/Tests/test_imageqt.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import ImageQt @@ -78,7 +78,3 @@ class TestImageQt(PillowQtTestCase, PillowTestCase): def test_image(self): for mode in ('1', 'RGB', 'RGBA', 'L', 'P'): ImageQt.ImageQt(hopper(mode)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagesequence.py b/Tests/test_imagesequence.py index e9be42873..9fbf3fed8 100644 --- a/Tests/test_imagesequence.py +++ b/Tests/test_imagesequence.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image, ImageSequence, TiffImagePlugin @@ -69,7 +69,3 @@ class TestImageSequence(PillowTestCase): im.seek(0) color2 = im.getpalette()[0:3] self.assertEqual(color1, color2) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imageshow.py b/Tests/test_imageshow.py index ea784a52c..899c057d6 100644 --- a/Tests/test_imageshow.py +++ b/Tests/test_imageshow.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image from PIL import ImageShow @@ -44,7 +44,3 @@ class TestImageShow(PillowTestCase): def test_viewers(self): for viewer in ImageShow._viewers: viewer.get_command('test.jpg') - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagestat.py b/Tests/test_imagestat.py index 282700c53..c2580a1b1 100644 --- a/Tests/test_imagestat.py +++ b/Tests/test_imagestat.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image from PIL import ImageStat @@ -55,7 +55,3 @@ class TestImageStat(PillowTestCase): self.assertEqual(st.rms[0], 128) self.assertEqual(st.var[0], 0) self.assertEqual(st.stddev[0], 0) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagetk.py b/Tests/test_imagetk.py index 6e5dda9b3..a6a4dd4ea 100644 --- a/Tests/test_imagetk.py +++ b/Tests/test_imagetk.py @@ -87,7 +87,3 @@ class TestImageTk(PillowTestCase): # reloaded = ImageTk.getimage(im_tk) # self.assert_image_equal(reloaded, im) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagewin.py b/Tests/test_imagewin.py index 54d061063..16d681f2c 100644 --- a/Tests/test_imagewin.py +++ b/Tests/test_imagewin.py @@ -106,7 +106,3 @@ class TestImageWinDib(PillowTestCase): # Assert # Confirm they're the same self.assertEqual(dib1.tobytes(), dib2.tobytes()) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_imagewin_pointers.py b/Tests/test_imagewin_pointers.py index 99416ae7c..64f921916 100644 --- a/Tests/test_imagewin_pointers.py +++ b/Tests/test_imagewin_pointers.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image, ImageWin import sys @@ -107,6 +107,3 @@ if sys.platform.startswith('win32'): DeleteDC(hdc) Image.open(BytesIO(bitmap)).save(opath) - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_lib_pack.py b/Tests/test_lib_pack.py index 999d88518..543d151ac 100644 --- a/Tests/test_lib_pack.py +++ b/Tests/test_lib_pack.py @@ -1,6 +1,6 @@ import sys -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image @@ -620,7 +620,3 @@ class TestLibUnpack(PillowTestCase): self.assertRaises(ValueError, self.assert_unpack, "L", "L", 0, 0) self.assertRaises(ValueError, self.assert_unpack, "RGB", "RGB", 2, 0) self.assertRaises(ValueError, self.assert_unpack, "CMYK", "CMYK", 2, 0) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_locale.py b/Tests/test_locale.py index b0721b651..d40019e59 100644 --- a/Tests/test_locale.py +++ b/Tests/test_locale.py @@ -32,7 +32,3 @@ class TestLocale(PillowTestCase): except locale.Error: unittest.skip('Polish locale not available') Image.open(path) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_map.py b/Tests/test_map.py index 481e16924..2eeb1fc5f 100644 --- a/Tests/test_map.py +++ b/Tests/test_map.py @@ -23,7 +23,3 @@ class TestMap(PillowTestCase): im.load() Image.MAX_IMAGE_PIXELS = max_pixels - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_mode_i16.py b/Tests/test_mode_i16.py index a65666562..80730a312 100644 --- a/Tests/test_mode_i16.py +++ b/Tests/test_mode_i16.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import Image @@ -105,7 +105,3 @@ class TestModeI16(PillowTestCase): self.verify(im.convert("I;16B")) self.verify(im.convert("I;16B").convert("L")) self.verify(im.convert("I;16B").convert("I")) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_numpy.py b/Tests/test_numpy.py index 4556cf859..c9c3b0f1e 100644 --- a/Tests/test_numpy.py +++ b/Tests/test_numpy.py @@ -208,7 +208,3 @@ class TestNumpy(PillowTestCase): # Act/Assert self.assert_warning(None, lambda: array(im)) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_pdfparser.py b/Tests/test_pdfparser.py index 6100e1fd7..da69d258d 100644 --- a/Tests/test_pdfparser.py +++ b/Tests/test_pdfparser.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL.PdfParser import IndirectObjectDef, IndirectReference, PdfBinary, \ PdfDict, PdfFormatError, PdfName, PdfParser, \ @@ -122,7 +122,3 @@ class TestPdfParser(PillowTestCase): self.assertEqual(pdf_repr([123, True, {"a": PdfName(b"b")}]), b"[ 123 true <<\n/a /b\n>> ]") self.assertEqual(pdf_repr(PdfBinary(b"\x90\x1F\xA0")), b"<901FA0>") - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_pickle.py b/Tests/test_pickle.py index 7cca1e3f9..46958c085 100644 --- a/Tests/test_pickle.py +++ b/Tests/test_pickle.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image @@ -91,7 +91,3 @@ class TestPickle(PillowTestCase): for protocol in range(0, cPickle.HIGHEST_PROTOCOL + 1): self.helper_pickle_string(cPickle, protocol, mode="L") self.helper_pickle_file(cPickle, protocol, mode="L") - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_psdraw.py b/Tests/test_psdraw.py index 54be98a39..73ef5e2b2 100644 --- a/Tests/test_psdraw.py +++ b/Tests/test_psdraw.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import Image, PSDraw import os @@ -61,7 +61,3 @@ class TestPsDraw(PillowTestCase): sys.stdout = old_stdout self.assertNotEqual(mystdout.getvalue(), "") - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_pyroma.py b/Tests/test_pyroma.py index 6d3ee0b73..3c4e3d9a2 100644 --- a/Tests/test_pyroma.py +++ b/Tests/test_pyroma.py @@ -28,7 +28,3 @@ class TestPyroma(PillowTestCase): else: # Should have a perfect score self.assertEqual(rating, (10, [])) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_qt_image_fromqpixmap.py b/Tests/test_qt_image_fromqpixmap.py index 5242a0473..358f1573d 100644 --- a/Tests/test_qt_image_fromqpixmap.py +++ b/Tests/test_qt_image_fromqpixmap.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from .test_imageqt import PillowQPixmapTestCase from PIL import ImageQt @@ -25,7 +25,3 @@ class TestFromQPixmap(PillowQPixmapTestCase, PillowTestCase): def test_sanity_p(self): self.roundtrip(hopper('P')) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_qt_image_toqimage.py b/Tests/test_qt_image_toqimage.py index bc472eaa4..c1aa64b57 100644 --- a/Tests/test_qt_image_toqimage.py +++ b/Tests/test_qt_image_toqimage.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from .test_imageqt import PillowQtTestCase from PIL import ImageQt, Image @@ -91,7 +91,3 @@ if ImageQt.qt_is_installed: lbl = QLabel(self) # Segfault in the problem lbl.setPixmap(pixmap1.copy()) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_qt_image_toqpixmap.py b/Tests/test_qt_image_toqpixmap.py index faeb272e2..9bb7183b7 100644 --- a/Tests/test_qt_image_toqpixmap.py +++ b/Tests/test_qt_image_toqpixmap.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from .test_imageqt import PillowQPixmapTestCase from PIL import ImageQt @@ -19,7 +19,3 @@ class TestToQPixmap(PillowQPixmapTestCase, PillowTestCase): # Test saving the file tempfile = self.tempfile('temp_{}.png'.format(mode)) data.save(tempfile) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_shell_injection.py b/Tests/test_shell_injection.py index 6aba626d1..77fd67f01 100644 --- a/Tests/test_shell_injection.py +++ b/Tests/test_shell_injection.py @@ -51,7 +51,3 @@ class TestShellInjection(PillowTestCase): def test_save_netpbm_filename_l_mode(self): im = Image.open(TEST_GIF).convert("L") self.assert_save_filename_check(im, GifImagePlugin._save_netpbm) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_tiff_ifdrational.py b/Tests/test_tiff_ifdrational.py index 04001c300..fae4d7ed6 100644 --- a/Tests/test_tiff_ifdrational.py +++ b/Tests/test_tiff_ifdrational.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper from PIL import TiffImagePlugin, Image from PIL.TiffImagePlugin import IFDRational @@ -58,7 +58,3 @@ class Test_IFDRational(PillowTestCase): reloaded = Image.open(out) self.assertEqual(float(IFDRational(301, 1)), float(reloaded.tag_v2[282])) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_uploader.py b/Tests/test_uploader.py index e8506ff96..e40e7fb86 100644 --- a/Tests/test_uploader.py +++ b/Tests/test_uploader.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase, hopper +from .helper import PillowTestCase, hopper class TestUploader(PillowTestCase): @@ -11,7 +11,3 @@ class TestUploader(PillowTestCase): result = hopper('P').convert('RGB') target = hopper('RGB') self.assert_image_similar(result, target, 0) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_util.py b/Tests/test_util.py index d3f6a2fd7..4471b75bd 100644 --- a/Tests/test_util.py +++ b/Tests/test_util.py @@ -1,4 +1,4 @@ -from .helper import unittest, PillowTestCase +from .helper import PillowTestCase from PIL import _util @@ -74,7 +74,3 @@ class TestUtil(PillowTestCase): # Assert self.assertRaises(ValueError, lambda: thing.some_attr) - - -if __name__ == '__main__': - unittest.main() diff --git a/Tests/test_webp_leaks.py b/Tests/test_webp_leaks.py index 79344f5f3..03befd507 100644 --- a/Tests/test_webp_leaks.py +++ b/Tests/test_webp_leaks.py @@ -20,7 +20,3 @@ class TestWebPLeaks(PillowLeakTestCase): im.load() self._test_leak(core) - - -if __name__ == '__main__': - unittest.main() From aed56efa5050d032af3afe293142483cb53e125a Mon Sep 17 00:00:00 2001 From: Hugo Date: Mon, 4 Feb 2019 10:36:34 -0500 Subject: [PATCH 101/134] Apply suggestions from code review Rename `fp` to `test_path` in the new `test_is_path` test. ^ Wow, what a sentence... Co-Authored-By: wbadart --- Tests/test_util.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/test_util.py b/Tests/test_util.py index ea4a2f962..86999c89f 100644 --- a/Tests/test_util.py +++ b/Tests/test_util.py @@ -39,10 +39,10 @@ class TestUtil(PillowTestCase): def test_path_obj_is_path(self): # Arrange from pathlib import Path - fp = Path('filename.ext') + test_path = Path('filename.ext') # Act - it_is = _util.isPath(fp) + it_is = _util.isPath(test_path) # Assert self.assertTrue(it_is) From d1df192e81cc2ff1184c1ac3086c0a529fd67c82 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 5 Feb 2019 20:30:44 +1100 Subject: [PATCH 102/134] Renamed "file" variable to "fp" --- src/PIL/JpegImagePlugin.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/PIL/JpegImagePlugin.py b/src/PIL/JpegImagePlugin.py index 5af84282f..42baf258f 100644 --- a/src/PIL/JpegImagePlugin.py +++ b/src/PIL/JpegImagePlugin.py @@ -459,36 +459,36 @@ def _getexif(self): data = self.info["exif"] except KeyError: return None - file = io.BytesIO(data[6:]) - head = file.read(8) + fp = io.BytesIO(data[6:]) + head = fp.read(8) # process dictionary info = TiffImagePlugin.ImageFileDirectory_v1(head) - file.seek(info.next) - info.load(file) + fp.seek(info.next) + info.load(fp) exif = dict(_fixup_dict(info)) # get exif extension try: # exif field 0x8769 is an offset pointer to the location # of the nested embedded exif ifd. # It should be a long, but may be corrupted. - file.seek(exif[0x8769]) + fp.seek(exif[0x8769]) except (KeyError, TypeError): pass else: info = TiffImagePlugin.ImageFileDirectory_v1(head) - info.load(file) + info.load(fp) exif.update(_fixup_dict(info)) # get gpsinfo extension try: # exif field 0x8825 is an offset pointer to the location # of the nested embedded gps exif ifd. # It should be a long, but may be corrupted. - file.seek(exif[0x8825]) + fp.seek(exif[0x8825]) except (KeyError, TypeError): pass else: info = TiffImagePlugin.ImageFileDirectory_v1(head) - info.load(file) + info.load(fp) exif[0x8825] = _fixup_dict(info) return exif From d5f89c05483fee8ae9c2717a3e80f9bc4b074704 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 7 Feb 2019 19:20:45 +1100 Subject: [PATCH 103/134] Updated PyPy to 7.0.0 --- winbuild/appveyor_install_pypy.cmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/winbuild/appveyor_install_pypy.cmd b/winbuild/appveyor_install_pypy.cmd index 8c254ad90..3092fc617 100644 --- a/winbuild/appveyor_install_pypy.cmd +++ b/winbuild/appveyor_install_pypy.cmd @@ -1,3 +1,3 @@ -curl -fsSL -o pypy2.zip https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-win32.zip +curl -fsSL -o pypy2.zip https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.0.0-win32.zip 7z x pypy2.zip -oc:\ -c:\Python37\Scripts\virtualenv.exe -p c:\pypy2-v6.0.0-win32\pypy.exe c:\vp\pypy2 +c:\Python37\Scripts\virtualenv.exe -p c:\pypy2.7-v7.0.0-win32\pypy.exe c:\vp\pypy2 From 4fe63e44d7c6e40c5785905bb34aedf0756a9b87 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 10 Feb 2019 12:33:16 +1100 Subject: [PATCH 104/134] Fixed typo [ci skip] --- docs/reference/block_allocator.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference/block_allocator.rst b/docs/reference/block_allocator.rst index e70f9667c..400f236dc 100644 --- a/docs/reference/block_allocator.rst +++ b/docs/reference/block_allocator.rst @@ -8,7 +8,7 @@ Historically there have been two image allocators in Pillow: ``ImagingAllocateBlock`` and ``ImagingAllocateArray``. The first works for images smaller than 16MB of data and allocates one large chunk of memory of ``im->linesize * im->ysize`` bytes. The second works for -large images and make one allocation for each scan line of size +large images and makes one allocation for each scan line of size ``im->linesize`` bytes. This makes for a very sharp transition between one allocation and potentially thousands of small allocations, leading to unpredictable performance penalties around the transition. From 828a6f947cd5884f4d42f0fad1f73264bcdb555c Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 12 Feb 2019 20:35:23 +1100 Subject: [PATCH 105/134] Fixed typo [ci skip] --- docs/handbook/image-file-formats.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/handbook/image-file-formats.rst b/docs/handbook/image-file-formats.rst index 469f89066..705438d4a 100644 --- a/docs/handbook/image-file-formats.rst +++ b/docs/handbook/image-file-formats.rst @@ -751,7 +751,7 @@ The :py:meth:`~PIL.Image.Image.save` method supports the following options: **method** Quality/speed trade-off (0=fast, 6=slower-better). Defaults to 0. -**icc_procfile** +**icc_profile** The ICC Profile to include in the saved file. Only supported if the system WebP library was built with webpmux support. From c330ffb5c45bca06ccb2bc712b981e39c62a5947 Mon Sep 17 00:00:00 2001 From: Hugo Date: Tue, 12 Feb 2019 16:06:37 +0200 Subject: [PATCH 106/134] Update CHANGES.rst --- CHANGES.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index f96b4085a..2a8801d90 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,6 +5,9 @@ Changelog (Pillow) 6.0.0 (unreleased) ------------------ +- Deprecate PIL.*ImagePlugin.__version__ attributes #3628 + [jdufresne] + - Docs: Add note about ImageDraw operations that exceed image bounds #3620 [radarhere] From 1793f6bd523a766dad2bd8a23cf7fcfbe3858972 Mon Sep 17 00:00:00 2001 From: Hugo Date: Tue, 12 Feb 2019 16:58:59 +0200 Subject: [PATCH 107/134] Document deprecated image plugin version constants (#3628) --- docs/deprecations.rst | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docs/deprecations.rst b/docs/deprecations.rst index adbf0f85f..071cf79bf 100644 --- a/docs/deprecations.rst +++ b/docs/deprecations.rst @@ -12,6 +12,31 @@ Deprecated features Below are features which are considered deprecated. Where appropriate, a ``DeprecationWarning`` is issued. +PIL.*ImagePlugin.__version__ attributes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. deprecated:: 6.0.0 + +The version constants of individuals plugins have been deprecated and will be removed in +a future version. Use ``PIL.__version__`` instead. + +=============================== ================================= ================================== +Deprecated Deprecated Deprecated +=============================== ================================= ================================== +``BmpImagePlugin.__version__`` ``Jpeg2KImagePlugin.__version__`` ``PngImagePlugin.__version__`` +``CurImagePlugin.__version__`` ``JpegImagePlugin.__version__`` ``PpmImagePlugin.__version__`` +``DcxImagePlugin.__version__`` ``McIdasImagePlugin.__version__`` ``PsdImagePlugin.__version__`` +``EpsImagePlugin.__version__`` ``MicImagePlugin.__version__`` ``SgiImagePlugin.__version__`` +``FliImagePlugin.__version__`` ``MpegImagePlugin.__version__`` ``SunImagePlugin.__version__`` +``FpxImagePlugin.__version__`` ``MpoImagePlugin.__version__`` ``TgaImagePlugin.__version__`` +``GdImageFile.__version__`` ``MspImagePlugin.__version__`` ``TiffImagePlugin.__version__`` +``GifImagePlugin.__version__`` ``PalmImagePlugin.__version__`` ``WmfImagePlugin.__version__`` +``IcoImagePlugin.__version__`` ``PcdImagePlugin.__version__`` ``XbmImagePlugin.__version__`` +``ImImagePlugin.__version__`` ``PcxImagePlugin.__version__`` ``XpmImagePlugin.__version__`` +``ImtImagePlugin.__version__`` ``PdfImagePlugin.__version__`` ``XVThumbImagePlugin.__version__`` +``IptcImagePlugin.__version__`` ``PixarImagePlugin.__version__`` +=============================== ================================= ================================== + Setting the size of TIFF images ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From 6b80aa95693af4d27f3e9356a0801d5200961c69 Mon Sep 17 00:00:00 2001 From: Hugo Date: Tue, 12 Feb 2019 18:19:30 +0200 Subject: [PATCH 108/134] Update CHANGES.rst [CI skip] --- CHANGES.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index 2a8801d90..e1c08d8bd 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,6 +5,12 @@ Changelog (Pillow) 6.0.0 (unreleased) ------------------ +- Remove unnecessary unittest.main() boilerplate from test files #3631 + [jdufresne] + +- Exif: Seek to IFD offset #3584 + [radarhere] + - Deprecate PIL.*ImagePlugin.__version__ attributes #3628 [jdufresne] From 1d19d4906bd114e5869fc7f12d83e6d5af913cc5 Mon Sep 17 00:00:00 2001 From: Hugo Date: Tue, 12 Feb 2019 18:29:32 +0200 Subject: [PATCH 109/134] Test Python 3.8-dev ahead of 3.8.0's expected 2019-10-20 release --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index e7157ddc7..9550eb8f2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -47,6 +47,8 @@ matrix: name: "3.5 Trusty PYTHONOPTIMIZE=2" dist: trusty env: PYTHONOPTIMIZE=2 + - python: "3.8-dev" + name: "3.8-dev Xenial" - env: DOCKER="alpine" DOCKER_TAG="master" - env: DOCKER="arch" DOCKER_TAG="master" # contains PyQt5 - env: DOCKER="ubuntu-trusty-x86" DOCKER_TAG="master" From 1162b4cf83fb71c69288d3f98a74f6a7ce19e751 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 5 Feb 2019 06:15:50 +1100 Subject: [PATCH 110/134] Do not resize if already the destination size --- Tests/test_image_thumbnail.py | 12 ++++++++++++ src/PIL/Image.py | 9 +++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Tests/test_image_thumbnail.py b/Tests/test_image_thumbnail.py index d03ea4141..fbadf50cf 100644 --- a/Tests/test_image_thumbnail.py +++ b/Tests/test_image_thumbnail.py @@ -1,4 +1,5 @@ from .helper import PillowTestCase, hopper +from PIL import Image class TestImageThumbnail(PillowTestCase): @@ -35,3 +36,14 @@ class TestImageThumbnail(PillowTestCase): im = hopper().resize((128, 128)) im.thumbnail((100, 100)) self.assert_image(im, im.mode, (100, 100)) + + def test_no_resize(self): + # Check that draft() can resize the image to the destination size + im = Image.open("Tests/images/hopper.jpg") + im.draft(None, (64, 64)) + self.assertEqual(im.size, (64, 64)) + + # Test thumbnail(), where only draft() is necessary to resize the image + im = Image.open("Tests/images/hopper.jpg") + im.thumbnail((64, 64)) + self.assert_image(im, im.mode, (64, 64)) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index ef4a7a88a..a1b51fae2 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -2129,11 +2129,12 @@ class Image(object): self.draft(None, size) - im = self.resize(size, resample) + if self.size != size: + im = self.resize(size, resample) - self.im = im.im - self.mode = im.mode - self._size = size + self.im = im.im + self._size = size + self.mode = self.im.mode self.readonly = 0 self.pyaccess = None From f95b98a59c690031ff0078d82774c62f29a47641 Mon Sep 17 00:00:00 2001 From: Andrew Murray <3112309+radarhere@users.noreply.github.com> Date: Wed, 13 Feb 2019 10:36:12 +0200 Subject: [PATCH 111/134] Fix typo Co-Authored-By: hugovk --- docs/deprecations.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/deprecations.rst b/docs/deprecations.rst index 071cf79bf..b8131ac05 100644 --- a/docs/deprecations.rst +++ b/docs/deprecations.rst @@ -17,7 +17,7 @@ PIL.*ImagePlugin.__version__ attributes .. deprecated:: 6.0.0 -The version constants of individuals plugins have been deprecated and will be removed in +The version constants of individual plugins have been deprecated and will be removed in a future version. Use ``PIL.__version__`` instead. =============================== ================================= ================================== From 3c088db7bac783e2688ac7beac43ad80cfa0987f Mon Sep 17 00:00:00 2001 From: Hugo Date: Thu, 14 Feb 2019 22:59:14 +0200 Subject: [PATCH 112/134] Depreate support for EOL PyQt4 and PySide --- Tests/test_imageqt.py | 10 ++++++++++ src/PIL/ImageQt.py | 13 ++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/Tests/test_imageqt.py b/Tests/test_imageqt.py index 2ded37c09..f0e5a4613 100644 --- a/Tests/test_imageqt.py +++ b/Tests/test_imageqt.py @@ -2,6 +2,12 @@ from .helper import PillowTestCase, hopper from PIL import ImageQt +try: + # Python 3 + from importlib import reload +except ImportError: + # Python 2.7 + pass if ImageQt.qt_is_installed: from PIL.ImageQt import qRgba @@ -78,3 +84,7 @@ class TestImageQt(PillowQtTestCase, PillowTestCase): def test_image(self): for mode in ('1', 'RGB', 'RGBA', 'L', 'P'): ImageQt.ImageQt(hopper(mode)) + + def test_deprecated(self): + expected = DeprecationWarning if ImageQt.qt_version in ["4", "side"] else None + self.assert_warning(expected, reload, ImageQt) diff --git a/src/PIL/ImageQt.py b/src/PIL/ImageQt.py index b747781c5..02ce6354e 100644 --- a/src/PIL/ImageQt.py +++ b/src/PIL/ImageQt.py @@ -20,6 +20,7 @@ from . import Image from ._util import isPath, py3 from io import BytesIO import sys +import warnings qt_versions = [ ['5', 'PyQt5'], @@ -27,6 +28,12 @@ qt_versions = [ ['4', 'PyQt4'], ['side', 'PySide'] ] + +WARNING_TEXT = ( + "Support for EOL {} is deprecated and will be removed in a future version. " + "Please upgrade to PyQt5 or PySide2." +) + # If a version has already been imported, attempt it first qt_versions.sort(key=lambda qt_version: qt_version[1] in sys.modules, reverse=True) @@ -41,9 +48,13 @@ for qt_version, qt_module in qt_versions: elif qt_module == 'PyQt4': from PyQt4.QtGui import QImage, qRgba, QPixmap from PyQt4.QtCore import QBuffer, QIODevice + + warnings.warn(WARNING_TEXT.format(qt_module), DeprecationWarning) elif qt_module == 'PySide': from PySide.QtGui import QImage, qRgba, QPixmap from PySide.QtCore import QBuffer, QIODevice + + warnings.warn(WARNING_TEXT.format(qt_module), DeprecationWarning) except (ImportError, RuntimeError): continue qt_is_installed = True @@ -67,7 +78,7 @@ def fromqimage(im): """ buffer = QBuffer() buffer.open(QIODevice.ReadWrite) - # preserve alha channel with png + # preserve alpha channel with png # otherwise ppm is more friendly with Image.open if im.hasAlphaChannel(): im.save(buffer, 'png') From 186f7d943bf213abbaa508b23c06fc001e8b6ec7 Mon Sep 17 00:00:00 2001 From: Hugo Date: Thu, 14 Feb 2019 23:44:07 +0200 Subject: [PATCH 113/134] Document deprecation --- docs/deprecations.rst | 12 ++++++++++++ docs/reference/ImageQt.rst | 6 ++++++ docs/releasenotes/6.0.0.rst | 12 ++++++++++++ 3 files changed, 30 insertions(+) diff --git a/docs/deprecations.rst b/docs/deprecations.rst index adbf0f85f..12367ce6e 100644 --- a/docs/deprecations.rst +++ b/docs/deprecations.rst @@ -12,6 +12,18 @@ Deprecated features Below are features which are considered deprecated. Where appropriate, a ``DeprecationWarning`` is issued. + +PyQt4 and PySide +~~~~~~~~~~~~~~~~ + +.. deprecated:: 6.0.0 + +Qt 4 reached end-of-life on 2015-12-19. Its Python bindings are also EOL: PyQt4 since +2018-08-31 and PySide since 2015-10-14. + +Support for PyQt4 and PySide has been deprecated from ``ImageQt`` and will be removed in +a future version. Please upgrade to PyQt5 or PySide2. + Setting the size of TIFF images ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/reference/ImageQt.rst b/docs/reference/ImageQt.rst index 386401075..5128f28fb 100644 --- a/docs/reference/ImageQt.rst +++ b/docs/reference/ImageQt.rst @@ -7,6 +7,12 @@ The :py:mod:`ImageQt` module contains support for creating PyQt4, PyQt5, PySide or PySide2 QImage objects from PIL images. +Qt 4 reached end-of-life on 2015-12-19. Its Python bindings are also EOL: PyQt4 since +2018-08-31 and PySide since 2015-10-14. + +Support for PyQt4 and PySide is deprecated since Pillow 6.0.0 and will be removed in a +future version. Please upgrade to PyQt5 or PySide2. + .. versionadded:: 1.1.6 .. py:class:: ImageQt.ImageQt(image) diff --git a/docs/releasenotes/6.0.0.rst b/docs/releasenotes/6.0.0.rst index e1fa83cce..9fbb3d69a 100644 --- a/docs/releasenotes/6.0.0.rst +++ b/docs/releasenotes/6.0.0.rst @@ -32,6 +32,18 @@ API Changes Deprecations ^^^^^^^^^^^^ +PyQt4 and PySide +~~~~~~~~~~~~~~~~ + +Qt 4 reached end-of-life on 2015-12-19. Its Python bindings are also EOL: PyQt4 since +2018-08-31 and PySide since 2015-10-14. + +Support for PyQt4 and PySide has been deprecated from ``ImageQt`` and will be removed in +a future version. Please upgrade to PyQt5 or PySide2. + +PIL.*ImagePlugin.__version__ attributes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + These version constants have been deprecated and will be removed in a future version. From 6e1227765e89b8e2994b1fdfaa096ed26c0a5d54 Mon Sep 17 00:00:00 2001 From: Hugo Date: Fri, 15 Feb 2019 10:13:03 +0200 Subject: [PATCH 114/134] Move PyQt4/PySide above plugin constants Both deprecated in the same version, but PyQt4/PySide has a bigger impact --- docs/deprecations.rst | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/deprecations.rst b/docs/deprecations.rst index 605ceb4ac..bc4e83161 100644 --- a/docs/deprecations.rst +++ b/docs/deprecations.rst @@ -12,6 +12,17 @@ Deprecated features Below are features which are considered deprecated. Where appropriate, a ``DeprecationWarning`` is issued. +PyQt4 and PySide +~~~~~~~~~~~~~~~~ + +.. deprecated:: 6.0.0 + +Qt 4 reached end-of-life on 2015-12-19. Its Python bindings are also EOL: PyQt4 since +2018-08-31 and PySide since 2015-10-14. + +Support for PyQt4 and PySide has been deprecated from ``ImageQt`` and will be removed in +a future version. Please upgrade to PyQt5 or PySide2. + PIL.*ImagePlugin.__version__ attributes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -37,17 +48,6 @@ Deprecated Deprecated Deprecated ``IptcImagePlugin.__version__`` ``PixarImagePlugin.__version__`` =============================== ================================= ================================== -PyQt4 and PySide -~~~~~~~~~~~~~~~~ - -.. deprecated:: 6.0.0 - -Qt 4 reached end-of-life on 2015-12-19. Its Python bindings are also EOL: PyQt4 since -2018-08-31 and PySide since 2015-10-14. - -Support for PyQt4 and PySide has been deprecated from ``ImageQt`` and will be removed in -a future version. Please upgrade to PyQt5 or PySide2. - Setting the size of TIFF images ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From 38b5255f58a9ff025f1237e1bd47d5fb162f90cf Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 16 Feb 2019 12:36:10 +1100 Subject: [PATCH 115/134] Catch DeprecationWarning from initial import --- Tests/test_imageqt.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/Tests/test_imageqt.py b/Tests/test_imageqt.py index f0e5a4613..bd93828ef 100644 --- a/Tests/test_imageqt.py +++ b/Tests/test_imageqt.py @@ -1,13 +1,16 @@ from .helper import PillowTestCase, hopper -from PIL import ImageQt +import warnings -try: - # Python 3 - from importlib import reload -except ImportError: - # Python 2.7 - pass +deprecated = False +with warnings.catch_warnings(): + warnings.filterwarnings("error", category=DeprecationWarning) + try: + from PIL import ImageQt + except DeprecationWarning: + deprecated = True + warnings.filterwarnings("ignore", category=DeprecationWarning) + from PIL import ImageQt if ImageQt.qt_is_installed: from PIL.ImageQt import qRgba @@ -86,5 +89,4 @@ class TestImageQt(PillowQtTestCase, PillowTestCase): ImageQt.ImageQt(hopper(mode)) def test_deprecated(self): - expected = DeprecationWarning if ImageQt.qt_version in ["4", "side"] else None - self.assert_warning(expected, reload, ImageQt) + self.assertEqual(ImageQt.qt_version in ["4", "side"], deprecated) From 9e52fb0fe4ec6652f0fdf47723c0b1fef75dbe5a Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 19 Feb 2019 19:45:53 +1100 Subject: [PATCH 116/134] Use constants for tag types --- src/PIL/TiffImagePlugin.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/PIL/TiffImagePlugin.py b/src/PIL/TiffImagePlugin.py index a0609bb4f..3c00d92ae 100644 --- a/src/PIL/TiffImagePlugin.py +++ b/src/PIL/TiffImagePlugin.py @@ -423,7 +423,7 @@ class ImageFileDirectory_v2(MutableMapping): ifd = ImageFileDirectory_v2() ifd[key] = 'Some Data' - ifd.tagtype[key] = 2 + ifd.tagtype[key] = TiffTags.ASCII print(ifd[key]) 'Some Data' @@ -557,7 +557,7 @@ class ImageFileDirectory_v2(MutableMapping): if info.type: self.tagtype[tag] = info.type else: - self.tagtype[tag] = 7 + self.tagtype[tag] = TiffTags.UNDEFINED if all(isinstance(v, IFDRational) for v in values): self.tagtype[tag] = TiffTags.RATIONAL elif all(isinstance(v, int) for v in values): @@ -872,7 +872,7 @@ class ImageFileDirectory_v1(ImageFileDirectory_v2): ifd = ImageFileDirectory_v1() ifd[key] = 'Some Data' - ifd.tagtype[key] = 2 + ifd.tagtype[key] = TiffTags.ASCII print(ifd[key]) ('Some Data',) From dbc476255e736f3f9f72cb9a0a1f359aa16c15a5 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 19 Feb 2019 19:49:50 +1100 Subject: [PATCH 117/134] Fixed typo --- src/PIL/TiffImagePlugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PIL/TiffImagePlugin.py b/src/PIL/TiffImagePlugin.py index a0609bb4f..e1d37e555 100644 --- a/src/PIL/TiffImagePlugin.py +++ b/src/PIL/TiffImagePlugin.py @@ -1436,7 +1436,7 @@ def _save(im, fp, filename): try: ifd.tagtype[key] = info.tagtype[key] except Exception: - pass # might not be an IFD, Might not have populated type + pass # might not be an IFD. Might not have populated type # additions written by Greg Couch, gregc@cgl.ucsf.edu # inspired by image-sig posting from Kevin Cazabon, kcazabon@home.com From 26db1824ba6ad03f2457af15a2832eda325c0b0a Mon Sep 17 00:00:00 2001 From: Hugo Date: Wed, 20 Feb 2019 11:53:19 +0200 Subject: [PATCH 118/134] Update CHANGES.rst --- CHANGES.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index e1c08d8bd..d82455616 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,6 +5,15 @@ Changelog (Pillow) 6.0.0 (unreleased) ------------------ +- Add TIFF compression codecs: LZMA, Zstd, WebP #3555 + [cgohlke] + +- Fixed pickling of iTXt class with protocol > 1 #3537 + [radarhere] + +- _util.isPath returns True for pathlib.Path objects #3616 + [wbadart] + - Remove unnecessary unittest.main() boilerplate from test files #3631 [jdufresne] From d07d3d6972b4f944e963e137677609e88d55afa6 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 20 Feb 2019 20:57:52 +1100 Subject: [PATCH 119/134] Restored required import --- Tests/test_util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/test_util.py b/Tests/test_util.py index 4dfc6ffef..08e9c1665 100644 --- a/Tests/test_util.py +++ b/Tests/test_util.py @@ -1,4 +1,4 @@ -from .helper import PillowTestCase +from .helper import unittest, PillowTestCase from PIL import _util From e9fd0192faf1aac354ef76b633eac6cfc673d1e1 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 21 Feb 2019 19:25:27 +1100 Subject: [PATCH 120/134] Update CHANGES.rst [ci skip] --- CHANGES.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index d82455616..eee909695 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,12 +5,15 @@ Changelog (Pillow) 6.0.0 (unreleased) ------------------ +- Deprecate support for PyQt4 and PySide #3655 + [hugovk, radarhere] + - Add TIFF compression codecs: LZMA, Zstd, WebP #3555 [cgohlke] - Fixed pickling of iTXt class with protocol > 1 #3537 [radarhere] - + - _util.isPath returns True for pathlib.Path objects #3616 [wbadart] From 17bf2a3cbbe956b73755778bb941418a6ae89fbb Mon Sep 17 00:00:00 2001 From: Hugo Date: Wed, 27 Feb 2019 23:39:41 +0200 Subject: [PATCH 121/134] Update CHANGES.rst --- CHANGES.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index eee909695..ec35ac171 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,6 +5,21 @@ Changelog (Pillow) 6.0.0 (unreleased) ------------------ +- Fix 'BytesWarning: Comparison between bytes and string' in PdfDict #3580 + [jdufresne] + +- Do not resize in Image.thumbnail if already the destination size #3632 + [radarhere] + +- Replace .seek() magic numbers with io.SEEK_* constants #3572 + [jdufresne] + +- Make ContainerIO.isatty() return a bool, not int #3568 + [jdufresne] + +- Add support for I;16 modes for more transpose operations #3563 + [radarhere] + - Deprecate support for PyQt4 and PySide #3655 [hugovk, radarhere] From 95f77ef54afdfce9cc18543ced635bb62be03893 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 2 Mar 2019 12:02:35 +1100 Subject: [PATCH 122/134] Update CHANGES.rst [ci skip] --- CHANGES.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index ec35ac171..3ba4c2bbc 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,6 +5,9 @@ Changelog (Pillow) 6.0.0 (unreleased) ------------------ +- Removed deprecated VERSION #3624 + [hugovk] + - Fix 'BytesWarning: Comparison between bytes and string' in PdfDict #3580 [jdufresne] From c1150a2d0fa60c1078afadeb67f10f20c611c2a3 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 2 Mar 2019 18:22:34 +1100 Subject: [PATCH 123/134] Document removal of VERSION (#3624) [ci skip] --- docs/deprecations.rst | 15 +++++++++++---- docs/releasenotes/6.0.0.rst | 6 ++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/docs/deprecations.rst b/docs/deprecations.rst index bc4e83161..306fde5ad 100644 --- a/docs/deprecations.rst +++ b/docs/deprecations.rst @@ -61,13 +61,12 @@ a ``DeprecationWarning``: Setting the size of a TIFF image directly is deprecated, and will be removed in a future version. Use the resize method instead. -PILLOW_VERSION and VERSION constants -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +PILLOW_VERSION constant +~~~~~~~~~~~~~~~~~~~~~~~ .. deprecated:: 5.2.0 -Two version constants – ``VERSION`` (the old PIL version, always 1.1.7) and -``PILLOW_VERSION`` – have been deprecated and will be removed in the next +``PILLOW_VERSION`` has been deprecated and will be removed in the next major release. Use ``__version__`` instead. Removed features @@ -76,6 +75,14 @@ Removed features Deprecated features are only removed in major releases after an appropriate period of deprecation has passed. +VERSION constant +~~~~~~~~~~~~~~~~ + +*Removed in version 6.0.0.* + +``VERSION`` (the old PIL version, always 1.1.7) has been removed. Use +``__version__`` instead. + Undocumented ImageOps functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/releasenotes/6.0.0.rst b/docs/releasenotes/6.0.0.rst index 9fbb3d69a..d936b63e3 100644 --- a/docs/releasenotes/6.0.0.rst +++ b/docs/releasenotes/6.0.0.rst @@ -26,6 +26,12 @@ Several undocumented functions in ``ImageOps`` were deprecated in Pillow 4.3.0 ( and have now been removed: ``gaussian_blur``, ``gblur``, ``unsharp_mask``, ``usm`` and ``box_blur``. Use the equivalent operations in ``ImageFilter`` instead. +Removed deprecated VERSION +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +``VERSION`` (the old PIL version, always 1.1.7) has been removed. Use ``__version__`` +instead. + API Changes =========== From 9296e4f3a2e7de40de9088735191f6af1cba4dcf Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Sat, 2 Mar 2019 08:24:08 -0800 Subject: [PATCH 124/134] Merge multiple isinstance() calls to one --- src/PIL/ImageMath.py | 2 +- src/PIL/PdfParser.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/PIL/ImageMath.py b/src/PIL/ImageMath.py index d985877a6..68247c290 100644 --- a/src/PIL/ImageMath.py +++ b/src/PIL/ImageMath.py @@ -28,7 +28,7 @@ VERBOSE = 0 def _isconstant(v): - return isinstance(v, int) or isinstance(v, float) + return isinstance(v, (int, float)) class _Operand(object): diff --git a/src/PIL/PdfParser.py b/src/PIL/PdfParser.py index eca550416..8f90b668d 100644 --- a/src/PIL/PdfParser.py +++ b/src/PIL/PdfParser.py @@ -356,8 +356,7 @@ def pdf_repr(x): return b"false" elif x is None: return b"null" - elif (isinstance(x, PdfName) or isinstance(x, PdfDict) or - isinstance(x, PdfArray) or isinstance(x, PdfBinary)): + elif isinstance(x, (PdfName, PdfDict, PdfArray, PdfBinary)): return bytes(x) elif isinstance(x, int): return str(x).encode("us-ascii") From 5f1b6bf752452b4f89f71a8a5b4e0c43414a91a0 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sat, 2 Mar 2019 20:18:52 +0200 Subject: [PATCH 125/134] Document Python 2.7 will be dropped on 2020-01-01 --- docs/deprecations.rst | 10 ++++++++++ docs/releasenotes/6.0.0.rst | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/docs/deprecations.rst b/docs/deprecations.rst index bc4e83161..b1dea0ca4 100644 --- a/docs/deprecations.rst +++ b/docs/deprecations.rst @@ -12,6 +12,16 @@ Deprecated features Below are features which are considered deprecated. Where appropriate, a ``DeprecationWarning`` is issued. +Python 2.7 +~~~~~~~~~~ + +.. deprecated:: 6.0.0 + +Python 2.7 reaches end-of-life on 2020-01-01. + +Pillow 7.0.0 will be released on 2020-01-01 and will drop support for Python 2.7, making +Pillow 6.x the last series to support Python 2. + PyQt4 and PySide ~~~~~~~~~~~~~~~~ diff --git a/docs/releasenotes/6.0.0.rst b/docs/releasenotes/6.0.0.rst index 9fbb3d69a..a535e6a4c 100644 --- a/docs/releasenotes/6.0.0.rst +++ b/docs/releasenotes/6.0.0.rst @@ -32,6 +32,14 @@ API Changes Deprecations ^^^^^^^^^^^^ +Python 2.7 +~~~~~~~~~~ + +Python 2.7 reaches end-of-life on 2020-01-01. + +Pillow 7.0.0 will be released on 2020-01-01 and will drop support for Python 2.7, making +Pillow 6.x the last series to support Python 2. + PyQt4 and PySide ~~~~~~~~~~~~~~~~ From e96e2791cb25ae2a1c73820718b1e4dcddbc2b52 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sat, 2 Mar 2019 20:27:35 +0200 Subject: [PATCH 126/134] Fix RST warning: 'Unknown target name' --- docs/installation.rst | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/installation.rst b/docs/installation.rst index abccfcf56..8f9b4273f 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -15,21 +15,21 @@ Notes .. note:: Pillow is supported on the following Python versions -+--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ -|**Python** |**2.4**|**2.5**|**2.6**|**2.7**|**3.2**|**3.3**|**3.4**|**3.5**|**3.6**|**3.7**| -+--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ -|Pillow < 2.0.0 | Yes | Yes | Yes | Yes | | | | | | | -+--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ -|Pillow 2.x - 3.x | | | Yes | Yes | Yes | Yes | Yes | Yes | | | -+--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ -|Pillow 4.x | | | | Yes | | Yes | Yes | Yes | Yes | | -+--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ -|Pillow 5.0.x - 5.1.x| | | | Yes | | | Yes | Yes | Yes | | -+--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ -|Pillow 5.2.x - 5.4.x| | | | Yes | | | Yes | Yes | Yes | Yes | -+--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ -|Pillow >= 6.0.0 | | | | Yes | | | | Yes | Yes | Yes | -+--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ ++---------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ +|**Python** |**2.4**|**2.5**|**2.6**|**2.7**|**3.2**|**3.3**|**3.4**|**3.5**|**3.6**|**3.7**| ++---------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ +|Pillow < 2.0.0 | Yes | Yes | Yes | Yes | | | | | | | ++---------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ +|Pillow 2.x - 3.x | | | Yes | Yes | Yes | Yes | Yes | Yes | | | ++---------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ +|Pillow 4.x | | | | Yes | | Yes | Yes | Yes | Yes | | ++---------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ +|Pillow 5.0.x - 5.1.x | | | | Yes | | | Yes | Yes | Yes | | ++---------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ +|Pillow 5.2.x - 5.4.x | | | | Yes | | | Yes | Yes | Yes | Yes | ++---------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ +|Pillow 6.x | | | | Yes | | | | Yes | Yes | Yes | ++---------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ Basic Installation ------------------ From f77bb0a15a601d04c0f74eac3aa20788ffda6b34 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sat, 2 Mar 2019 20:27:54 +0200 Subject: [PATCH 127/134] Document Python 2.7 will be dropped in Pillow 7.x --- docs/installation.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/installation.rst b/docs/installation.rst index 8f9b4273f..44cd9af6f 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -30,6 +30,8 @@ Notes +---------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ |Pillow 6.x | | | | Yes | | | | Yes | Yes | Yes | +---------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ +|Pillow >= 7.0.0 | | | | | | | | Yes | Yes | Yes | ++---------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ Basic Installation ------------------ From e514fbbbb1be2c45ba299f3f51dc2e10aec2b2ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Sat, 2 Mar 2019 21:19:57 +0100 Subject: [PATCH 128/134] use the already import io instead of importing again from io (lgtm suggestion) --- src/PIL/Image.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index 05cd32654..4e1cff312 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -679,8 +679,7 @@ class Image(object): :returns: png version of the image as bytes """ - from io import BytesIO - b = BytesIO() + b = io.BytesIO() self.save(b, 'PNG') return b.getvalue() From e8fedc8589c1e19cb727ae45bc3cd856a629eabc Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 3 Mar 2019 12:56:30 +1100 Subject: [PATCH 129/134] Use pillow-wheels update script [ci skip] --- RELEASING.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index 40a48c4d3..f28e5f134 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -88,14 +88,7 @@ Released as needed privately to individual vendors for critical security-related ```bash git clone https://github.com/python-pillow/pillow-wheels cd pillow-wheels - git submodule init - git submodule update Pillow - cd Pillow - git fetch --all - git checkout [[release tag]] - cd .. - git commit -m "Pillow -> 5.2.0" Pillow - git push + ./update-pillow-tag.sh [[release tag]] ``` * [ ] Download distributions from the [Pillow Wheel Builder container](http://a365fff413fe338398b6-1c8a9b3114517dc5fe17b7c3f8c63a43.r19.cf2.rackcdn.com/). ```bash From 525eaf738973615150349fa3c690e4c168bd4bc3 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 3 Mar 2019 13:02:00 +1100 Subject: [PATCH 130/134] Renamed file variable --- Tests/test_file_msp.py | 6 +++--- src/PIL/GifImagePlugin.py | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Tests/test_file_msp.py b/Tests/test_file_msp.py index 66af65fcd..724fc78b1 100644 --- a/Tests/test_file_msp.py +++ b/Tests/test_file_msp.py @@ -12,11 +12,11 @@ YA_EXTRA_DIR = "Tests/images/msp" class TestFileMsp(PillowTestCase): def test_sanity(self): - file = self.tempfile("temp.msp") + test_file = self.tempfile("temp.msp") - hopper("1").save(file) + hopper("1").save(test_file) - im = Image.open(file) + im = Image.open(test_file) im.load() self.assertEqual(im.mode, "1") self.assertEqual(im.size, (128, 128)) diff --git a/src/PIL/GifImagePlugin.py b/src/PIL/GifImagePlugin.py index 2d13de022..2ebd8b248 100644 --- a/src/PIL/GifImagePlugin.py +++ b/src/PIL/GifImagePlugin.py @@ -604,16 +604,16 @@ def _save_netpbm(im, fp, filename): import os from subprocess import Popen, check_call, PIPE, CalledProcessError - file = im._dump() + tempfile = im._dump() with open(filename, 'wb') as f: if im.mode != "RGB": with open(os.devnull, 'wb') as devnull: - check_call(["ppmtogif", file], stdout=f, stderr=devnull) + check_call(["ppmtogif", tempfile], stdout=f, stderr=devnull) else: # Pipe ppmquant output into ppmtogif - # "ppmquant 256 %s | ppmtogif > %s" % (file, filename) - quant_cmd = ["ppmquant", "256", file] + # "ppmquant 256 %s | ppmtogif > %s" % (tempfile, filename) + quant_cmd = ["ppmquant", "256", tempfile] togif_cmd = ["ppmtogif"] with open(os.devnull, 'wb') as devnull: quant_proc = Popen(quant_cmd, stdout=PIPE, stderr=devnull) @@ -632,7 +632,7 @@ def _save_netpbm(im, fp, filename): raise CalledProcessError(retcode, togif_cmd) try: - os.unlink(file) + os.unlink(tempfile) except OSError: pass From 0e9e3dd304e31292befd825c58f574e107542b4e Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 3 Mar 2019 21:48:00 +1100 Subject: [PATCH 131/134] Update CHANGES.rst [ci skip] --- CHANGES.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index 3ba4c2bbc..01fc87bf7 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,6 +5,9 @@ Changelog (Pillow) 6.0.0 (unreleased) ------------------ +- Python 2.7 support will be removed in Pillow 7.0.0 #3682 + [hugovk] + - Removed deprecated VERSION #3624 [hugovk] From a62c825922226c1cfef4d7d1cf93957035e4006b Mon Sep 17 00:00:00 2001 From: pirate486743186 Date: Mon, 31 Dec 2018 07:41:41 +0100 Subject: [PATCH 132/134] adding some missing mime types and extensions for reference https://en.wikipedia.org/wiki/BMP_file_format https://en.wikipedia.org/wiki/ICO_(file_format) https://en.wikipedia.org/wiki/Pcx https://en.wikipedia.org/wiki/Netpbm_format https://en.wikipedia.org/wiki/.tga --- src/PIL/BmpImagePlugin.py | 2 +- src/PIL/IcoImagePlugin.py | 2 ++ src/PIL/PcxImagePlugin.py | 2 ++ src/PIL/PpmImagePlugin.py | 2 +- src/PIL/TgaImagePlugin.py | 4 +++- 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/PIL/BmpImagePlugin.py b/src/PIL/BmpImagePlugin.py index f261bf6ef..5b655d757 100644 --- a/src/PIL/BmpImagePlugin.py +++ b/src/PIL/BmpImagePlugin.py @@ -349,6 +349,6 @@ def _save(im, fp, filename): Image.register_open(BmpImageFile.format, BmpImageFile, _accept) Image.register_save(BmpImageFile.format, _save) -Image.register_extension(BmpImageFile.format, ".bmp") +Image.register_extensions(BmpImageFile.format, [".bmp", ".dib"]) Image.register_mime(BmpImageFile.format, "image/bmp") diff --git a/src/PIL/IcoImagePlugin.py b/src/PIL/IcoImagePlugin.py index 16683fb8f..c1c0775da 100644 --- a/src/PIL/IcoImagePlugin.py +++ b/src/PIL/IcoImagePlugin.py @@ -295,3 +295,5 @@ class IcoImageFile(ImageFile.ImageFile): Image.register_open(IcoImageFile.format, IcoImageFile, _accept) Image.register_save(IcoImageFile.format, _save) Image.register_extension(IcoImageFile.format, ".ico") + +Image.register_mime(IcoImageFile.format, "image/x-icon") diff --git a/src/PIL/PcxImagePlugin.py b/src/PIL/PcxImagePlugin.py index 8094a2866..02dbe26e0 100644 --- a/src/PIL/PcxImagePlugin.py +++ b/src/PIL/PcxImagePlugin.py @@ -180,3 +180,5 @@ Image.register_open(PcxImageFile.format, PcxImageFile, _accept) Image.register_save(PcxImageFile.format, _save) Image.register_extension(PcxImageFile.format, ".pcx") + +Image.register_mime(PcxImageFile.format, "image/x-pcx") diff --git a/src/PIL/PpmImagePlugin.py b/src/PIL/PpmImagePlugin.py index 750454dc5..1d791abf0 100644 --- a/src/PIL/PpmImagePlugin.py +++ b/src/PIL/PpmImagePlugin.py @@ -157,4 +157,4 @@ def _save(im, fp, filename): Image.register_open(PpmImageFile.format, PpmImageFile, _accept) Image.register_save(PpmImageFile.format, _save) -Image.register_extensions(PpmImageFile.format, [".pbm", ".pgm", ".ppm"]) +Image.register_extensions(PpmImageFile.format, [".pbm", ".pgm", ".ppm", ".pnm"]) diff --git a/src/PIL/TgaImagePlugin.py b/src/PIL/TgaImagePlugin.py index 26b1e9c60..ae9697b29 100644 --- a/src/PIL/TgaImagePlugin.py +++ b/src/PIL/TgaImagePlugin.py @@ -226,4 +226,6 @@ def _save(im, fp, filename): Image.register_open(TgaImageFile.format, TgaImageFile) Image.register_save(TgaImageFile.format, _save) -Image.register_extension(TgaImageFile.format, ".tga") +Image.register_extensions(TgaImageFile.format, [".tga", ".icb", ".vda", ".vst"]) + +Image.register_mime(TgaImageFile.format, "image/x-tga") From 8f34621c148d7c1602c32c73f8f63452fecc89ca Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 4 Mar 2019 15:02:47 +1100 Subject: [PATCH 133/134] Added mime type tests --- Tests/test_file_ico.py | 1 + Tests/test_file_pcx.py | 1 + Tests/test_file_tga.py | 2 ++ 3 files changed, 4 insertions(+) diff --git a/Tests/test_file_ico.py b/Tests/test_file_ico.py index b0d33e33f..f6244e086 100644 --- a/Tests/test_file_ico.py +++ b/Tests/test_file_ico.py @@ -14,6 +14,7 @@ class TestFileIco(PillowTestCase): self.assertEqual(im.mode, "RGBA") self.assertEqual(im.size, (16, 16)) self.assertEqual(im.format, "ICO") + self.assertEqual(im.get_format_mimetype(), "image/x-icon") def test_invalid_file(self): with open("Tests/images/flower.jpg", "rb") as fp: diff --git a/Tests/test_file_pcx.py b/Tests/test_file_pcx.py index 9e42a86f7..7608db47c 100644 --- a/Tests/test_file_pcx.py +++ b/Tests/test_file_pcx.py @@ -13,6 +13,7 @@ class TestFilePcx(PillowTestCase): self.assertEqual(im2.mode, im.mode) self.assertEqual(im2.size, im.size) self.assertEqual(im2.format, "PCX") + self.assertEqual(im2.get_format_mimetype(), "image/x-pcx") self.assert_image_equal(im2, im) def test_sanity(self): diff --git a/Tests/test_file_tga.py b/Tests/test_file_tga.py index 0dbfb309c..a8ab00d7f 100644 --- a/Tests/test_file_tga.py +++ b/Tests/test_file_tga.py @@ -37,6 +37,8 @@ class TestFileTga(PillowTestCase): path_no_ext, origin, "rle" if rle else "raw") original_im = Image.open(tga_path) + self.assertEqual(original_im.format, "TGA") + self.assertEqual(original_im.get_format_mimetype(), "image/x-tga") if rle: self.assertEqual( original_im.info["compression"], "tga_rle") From 873603701f368ed9b7d7c139e165f98fb345ec77 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 4 Mar 2019 15:11:21 +1100 Subject: [PATCH 134/134] Added .pnm test --- Tests/images/hopper.pnm | Bin 0 -> 49212 bytes Tests/test_file_ppm.py | 12 +++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 Tests/images/hopper.pnm diff --git a/Tests/images/hopper.pnm b/Tests/images/hopper.pnm new file mode 100644 index 0000000000000000000000000000000000000000..52368b2e234a0f9c08dca316fdb51ac6833b6195 GIT binary patch literal 49212 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%0A&>e+*BYr3|tbGCAkQ4Thy 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

PoeZU-?r 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 w+I7{4!-%pLX&~E^fCK*QL7!e

^j3AD|cR*TzG2z%%^|;2LtwDIRF3v literal 0 HcmV?d00001 diff --git a/Tests/test_file_ppm.py b/Tests/test_file_ppm.py index 47f8b845e..b9241e81d 100644 --- a/Tests/test_file_ppm.py +++ b/Tests/test_file_ppm.py @@ -1,4 +1,4 @@ -from .helper import PillowTestCase +from .helper import PillowTestCase, hopper from PIL import Image @@ -34,6 +34,16 @@ class TestFilePpm(PillowTestCase): reloaded = Image.open(f) self.assert_image_equal(im, reloaded) + def test_pnm(self): + im = Image.open('Tests/images/hopper.pnm') + self.assert_image_similar(im, hopper(), 0.0001) + + f = self.tempfile('temp.pnm') + im.save(f) + + reloaded = Image.open(f) + self.assert_image_equal(im, reloaded) + def test_truncated_file(self): path = self.tempfile('temp.pgm') with open(path, 'w') as f:

%Go;a2hAmfoKzjsM5 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%0AnTf5&yob(t&mhYcj>*lz!@uo~vGaX{ozT;ts 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