Skip to content

Commit 6bfff1e

Browse files
committed
add check for deprecated rawmodes when creating an ImagePalette
1 parent 87df02d commit 6bfff1e

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
@@ -208,6 +208,16 @@ def save(self, fp: str | IO[str]) -> None:
208208

209209

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

0 commit comments

Comments
 (0)