Skip to content

Commit aaf217c

Browse files
committed
Removed ICNS (width, height, scale) sizes
1 parent 9fbc255 commit aaf217c

File tree

3 files changed

+20
-40
lines changed

3 files changed

+20
-40
lines changed

Tests/test_file_icns.py

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -93,21 +93,11 @@ def test_sizes() -> None:
9393
with Image.open(TEST_FILE) as im:
9494
assert isinstance(im, IcnsImagePlugin.IcnsImageFile)
9595
for w, h, r in im.info["sizes"]:
96-
wr = w * r
97-
hr = h * r
98-
with pytest.warns(
99-
DeprecationWarning, match=r"Setting size to \(width, height, scale\)"
100-
):
101-
im.size = (w, h, r)
102-
im.load()
103-
assert im.mode == "RGBA"
104-
assert im.size == (wr, hr)
105-
10696
# Test using load() with scale
10797
im.size = (w, h)
10898
im.load(scale=r)
10999
assert im.mode == "RGBA"
110-
assert im.size == (wr, hr)
100+
assert im.size == (w * r, h * r)
111101

112102
# Check that we cannot load an incorrect size
113103
with pytest.raises(ValueError):

docs/deprecations.rst

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,6 @@ vulnerability introduced in FreeType 2.6 (:cve:`2020-15999`).
3232

3333
.. _2.10.4: https://sourceforge.net/projects/freetype/files/freetype2/2.10.4/
3434

35-
ICNS (width, height, scale) sizes
36-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
37-
38-
.. deprecated:: 11.0.0
39-
40-
Setting an ICNS image size to ``(width, height, scale)`` before loading has been
41-
deprecated. Instead, ``load(scale)`` can be used.
42-
4335
ExifTags.IFD.Makernote
4436
^^^^^^^^^^^^^^^^^^^^^^
4537

@@ -189,6 +181,14 @@ ImageDraw.getdraw hints parameter
189181

190182
The ``hints`` parameter in :py:meth:`~PIL.ImageDraw.getdraw()` has been removed.
191183

184+
ICNS (width, height, scale) sizes
185+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
186+
187+
.. deprecated:: 11.0.0
188+
189+
Setting an ICNS image size to ``(width, height, scale)`` before loading has been
190+
removed. Instead, ``load(scale)`` can be used.
191+
192192
Image isImageType()
193193
^^^^^^^^^^^^^^^^^^^
194194

src/PIL/IcnsImagePlugin.py

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
from typing import IO
2626

2727
from . import Image, ImageFile, PngImagePlugin, features
28-
from ._deprecate import deprecate
2928

3029
enable_jpeg2k = features.check_codec("jpg_2000")
3130
if enable_jpeg2k:
@@ -275,34 +274,25 @@ def _open(self) -> None:
275274
self.best_size[1] * self.best_size[2],
276275
)
277276

278-
@property # type: ignore[override]
279-
def size(self) -> tuple[int, int] | tuple[int, int, int]:
277+
@property
278+
def size(self) -> tuple[int, int]:
280279
return self._size
281280

282281
@size.setter
283-
def size(self, value: tuple[int, int] | tuple[int, int, int]) -> None:
284-
if len(value) == 3:
285-
deprecate("Setting size to (width, height, scale)", 12, "load(scale)")
286-
if value in self.info["sizes"]:
287-
self._size = value # type: ignore[assignment]
282+
def size(self, value: tuple[int, int]) -> None:
283+
# Check that a matching size exists,
284+
# or that there is a scale that would create a size that matches
285+
for size in self.info["sizes"]:
286+
simple_size = size[0] * size[2], size[1] * size[2]
287+
scale = simple_size[0] // value[0]
288+
if simple_size[1] / value[1] == scale:
289+
self._size = value
288290
return
289-
else:
290-
# Check that a matching size exists,
291-
# or that there is a scale that would create a size that matches
292-
for size in self.info["sizes"]:
293-
simple_size = size[0] * size[2], size[1] * size[2]
294-
scale = simple_size[0] // value[0]
295-
if simple_size[1] / value[1] == scale:
296-
self._size = value
297-
return
298291
msg = "This is not one of the allowed sizes of this image"
299292
raise ValueError(msg)
300293

301294
def load(self, scale: int | None = None) -> Image.core.PixelAccess | None:
302-
if scale is not None or len(self.size) == 3:
303-
if scale is None and len(self.size) == 3:
304-
scale = self.size[2]
305-
assert scale is not None
295+
if scale is not None:
306296
width, height = self.size[:2]
307297
self.size = width * scale, height * scale
308298
self.best_size = width, height, scale

0 commit comments

Comments
 (0)