Skip to content

Commit 4e3b491

Browse files
committed
add check for deprecated rawmodes when creating an ImagePalette
1 parent ae7448e commit 4e3b491

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

Tests/test_imagepalette.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,12 @@ def test_rawmode_valueerrors(tmp_path: Path) -> None:
158158
palette.save(f)
159159

160160

161+
@pytest.mark.parametrize("rawmode", Image._DEPRECATED_RAWMODES)
162+
def test_rawmode_deprecated(rawmode: str) -> None:
163+
with pytest.warns(DeprecationWarning):
164+
ImagePalette.raw(rawmode, b"")
165+
166+
161167
def test_getdata() -> None:
162168
# Arrange
163169
data_in = list(range(256)) * 3

src/PIL/ImagePalette.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,16 @@ def save(self, fp: str | IO[str]) -> None:
209209

210210

211211
def raw(rawmode, data: Sequence[int] | bytes | bytearray) -> ImagePalette:
212+
from . import Image
213+
from ._deprecate import deprecate
214+
215+
if rawmode in Image._DEPRECATED_RAWMODES:
216+
deprecate(
217+
f"rawmode {rawmode}",
218+
12,
219+
replacement=f"rawmode {Image._DEPRECATED_RAWMODES[rawmode]}",
220+
)
221+
212222
palette = ImagePalette()
213223
palette.rawmode = rawmode
214224
palette.palette = data

0 commit comments

Comments
 (0)