Skip to content

Commit f80b914

Browse files
committed
Added DecoderInput type alias
1 parent 8c2fa22 commit f80b914

15 files changed

Lines changed: 22 additions & 48 deletions

Tests/test_file_jpeg.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1053,10 +1053,7 @@ def test_eof(self, monkeypatch: pytest.MonkeyPatch) -> None:
10531053
# Even though this decoder never says that it is finished
10541054
# the image should still end when there is no new data
10551055
class InfiniteMockPyDecoder(ImageFile.PyDecoder):
1056-
def decode(
1057-
self,
1058-
buffer: bytes | bytearray | memoryview | Image.SupportsArrayInterface,
1059-
) -> tuple[int, int]:
1056+
def decode(self, buffer: Image.DecoderInput) -> tuple[int, int]:
10601057
return 0, 0
10611058

10621059
Image.register_decoder("INFINITE", InfiniteMockPyDecoder)

Tests/test_imagefile.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -260,9 +260,7 @@ def __init__(self, mode: str, *args: Any) -> None:
260260

261261
super().__init__(mode, *args)
262262

263-
def decode(
264-
self, buffer: bytes | bytearray | memoryview | Image.SupportsArrayInterface
265-
) -> tuple[int, int]:
263+
def decode(self, buffer: Image.DecoderInput) -> tuple[int, int]:
266264
# eof
267265
return -1, 0
268266

docs/example/DdsImagePlugin.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,7 @@ def load_seek(self, pos: int) -> None:
258258
class DXT1Decoder(ImageFile.PyDecoder):
259259
_pulls_fd = True
260260

261-
def decode(
262-
self, buffer: bytes | bytearray | memoryview | Image.SupportsArrayInterface
263-
) -> tuple[int, int]:
261+
def decode(self, buffer: Image.DecoderInput) -> tuple[int, int]:
264262
assert self.fd is not None
265263
try:
266264
self.set_as_raw(_dxt1(self.fd, self.state.xsize, self.state.ysize))
@@ -273,9 +271,7 @@ def decode(
273271
class DXT5Decoder(ImageFile.PyDecoder):
274272
_pulls_fd = True
275273

276-
def decode(
277-
self, buffer: bytes | bytearray | memoryview | Image.SupportsArrayInterface
278-
) -> tuple[int, int]:
274+
def decode(self, buffer: Image.DecoderInput) -> tuple[int, int]:
279275
assert self.fd is not None
280276
try:
281277
self.set_as_raw(_dxt5(self.fd, self.state.xsize, self.state.ysize))

docs/reference/Image.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,8 @@ Protocols
376376
:show-inheritance:
377377
.. autoclass:: SupportsGetData
378378
:show-inheritance:
379+
.. autoclass:: DecoderInput
380+
:show-inheritance:
379381

380382
Constants
381383
---------

src/PIL/BlpImagePlugin.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -295,9 +295,7 @@ def _open(self) -> None:
295295
class _BLPBaseDecoder(abc.ABC, ImageFile.PyDecoder):
296296
_pulls_fd = True
297297

298-
def decode(
299-
self, buffer: bytes | bytearray | memoryview | Image.SupportsArrayInterface
300-
) -> tuple[int, int]:
298+
def decode(self, buffer: Image.DecoderInput) -> tuple[int, int]:
301299
try:
302300
self._read_header()
303301
self._load()

src/PIL/BmpImagePlugin.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -324,9 +324,7 @@ def _open(self) -> None:
324324
class BmpRleDecoder(ImageFile.PyDecoder):
325325
_pulls_fd = True
326326

327-
def decode(
328-
self, buffer: bytes | bytearray | memoryview | Image.SupportsArrayInterface
329-
) -> tuple[int, int]:
327+
def decode(self, buffer: Image.DecoderInput) -> tuple[int, int]:
330328
assert self.fd is not None
331329
rle4 = self.args[1]
332330
data = bytearray()

src/PIL/DdsImagePlugin.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -488,9 +488,7 @@ def load_seek(self, pos: int) -> None:
488488
class DdsRgbDecoder(ImageFile.PyDecoder):
489489
_pulls_fd = True
490490

491-
def decode(
492-
self, buffer: bytes | bytearray | memoryview | Image.SupportsArrayInterface
493-
) -> tuple[int, int]:
491+
def decode(self, buffer: Image.DecoderInput) -> tuple[int, int]:
494492
assert self.fd is not None
495493
bitcount, masks = self.args
496494

src/PIL/FitsImagePlugin.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,7 @@ def _parse_headers(
126126
class FitsGzipDecoder(ImageFile.PyDecoder):
127127
_pulls_fd = True
128128

129-
def decode(
130-
self, buffer: bytes | bytearray | memoryview | Image.SupportsArrayInterface
131-
) -> tuple[int, int]:
129+
def decode(self, buffer: Image.DecoderInput) -> tuple[int, int]:
132130
assert self.fd is not None
133131
with gzip.open(self.fd) as fp:
134132
value = fp.read(self.state.xsize * self.state.ysize * 4)

src/PIL/Image.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -931,7 +931,7 @@ def tobitmap(self, name: str = "image") -> bytes:
931931

932932
def frombytes(
933933
self,
934-
data: bytes | bytearray | memoryview | SupportsArrayInterface,
934+
data: DecoderInput,
935935
decoder_name: str = "raw",
936936
*args: Any,
937937
) -> None:
@@ -3241,7 +3241,7 @@ def new(
32413241
def frombytes(
32423242
mode: str,
32433243
size: tuple[int, int],
3244-
data: bytes | bytearray | memoryview | SupportsArrayInterface,
3244+
data: DecoderInput,
32453245
decoder_name: str = "raw",
32463246
*args: Any,
32473247
) -> Image:
@@ -3356,6 +3356,9 @@ def __array_interface__(self) -> dict[str, Any]:
33563356
raise NotImplementedError()
33573357

33583358

3359+
DecoderInput = bytes | bytearray | memoryview | SupportsArrayInterface
3360+
3361+
33593362
class SupportsArrowArrayInterface(Protocol):
33603363
"""
33613364
An object that has an ``__arrow_c_array__`` method corresponding to the arrow c

src/PIL/ImageFile.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -836,9 +836,7 @@ class PyDecoder(PyCodec):
836836
def pulls_fd(self) -> bool:
837837
return self._pulls_fd
838838

839-
def decode(
840-
self, buffer: bytes | bytearray | memoryview | Image.SupportsArrayInterface
841-
) -> tuple[int, int]:
839+
def decode(self, buffer: Image.DecoderInput) -> tuple[int, int]:
842840
"""
843841
Override to perform the decoding process.
844842

0 commit comments

Comments
 (0)