Skip to content

Commit 06c331a

Browse files
committed
Added type hints to frombuffer
1 parent 6377321 commit 06c331a

File tree

13 files changed

+26
-17
lines changed

13 files changed

+26
-17
lines changed

Tests/test_file_jpeg.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1011,7 +1011,9 @@ def test_eof(self) -> None:
10111011
# Even though this decoder never says that it is finished
10121012
# the image should still end when there is no new data
10131013
class InfiniteMockPyDecoder(ImageFile.PyDecoder):
1014-
def decode(self, buffer: bytes) -> tuple[int, int]:
1014+
def decode(
1015+
self, buffer: bytes | Image.SupportsArrayInterface
1016+
) -> tuple[int, int]:
10151017
return 0, 0
10161018

10171019
Image.register_decoder("INFINITE", InfiniteMockPyDecoder)

Tests/test_imagefile.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ def __init__(self, mode: str, *args: Any) -> None:
210210

211211
super().__init__(mode, *args)
212212

213-
def decode(self, buffer: bytes) -> tuple[int, int]:
213+
def decode(self, buffer: bytes | Image.SupportsArrayInterface) -> tuple[int, int]:
214214
# eof
215215
return -1, 0
216216

docs/example/DdsImagePlugin.py

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

260-
def decode(self, buffer: bytes) -> tuple[int, int]:
260+
def decode(self, buffer: bytes | Image.SupportsArrayInterface) -> tuple[int, int]:
261261
assert self.fd is not None
262262
try:
263263
self.set_as_raw(_dxt1(self.fd, self.state.xsize, self.state.ysize))
@@ -270,7 +270,7 @@ def decode(self, buffer: bytes) -> tuple[int, int]:
270270
class DXT5Decoder(ImageFile.PyDecoder):
271271
_pulls_fd = True
272272

273-
def decode(self, buffer: bytes) -> tuple[int, int]:
273+
def decode(self, buffer: bytes | Image.SupportsArrayInterface) -> tuple[int, int]:
274274
assert self.fd is not None
275275
try:
276276
self.set_as_raw(_dxt5(self.fd, self.state.xsize, self.state.ysize))

src/PIL/BlpImagePlugin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ def _open(self) -> None:
279279
class _BLPBaseDecoder(ImageFile.PyDecoder):
280280
_pulls_fd = True
281281

282-
def decode(self, buffer: bytes) -> tuple[int, int]:
282+
def decode(self, buffer: bytes | Image.SupportsArrayInterface) -> tuple[int, int]:
283283
try:
284284
self._read_blp_header()
285285
self._load()

src/PIL/BmpImagePlugin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ def _open(self) -> None:
321321
class BmpRleDecoder(ImageFile.PyDecoder):
322322
_pulls_fd = True
323323

324-
def decode(self, buffer: bytes) -> tuple[int, int]:
324+
def decode(self, buffer: bytes | Image.SupportsArrayInterface) -> tuple[int, int]:
325325
assert self.fd is not None
326326
rle4 = self.args[1]
327327
data = bytearray()

src/PIL/DdsImagePlugin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,7 @@ def load_seek(self, pos: int) -> None:
481481
class DdsRgbDecoder(ImageFile.PyDecoder):
482482
_pulls_fd = True
483483

484-
def decode(self, buffer: bytes) -> tuple[int, int]:
484+
def decode(self, buffer: bytes | Image.SupportsArrayInterface) -> tuple[int, int]:
485485
assert self.fd is not None
486486
bitcount, masks = self.args
487487

src/PIL/FitsImagePlugin.py

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

129-
def decode(self, buffer: bytes) -> tuple[int, int]:
129+
def decode(self, buffer: bytes | Image.SupportsArrayInterface) -> tuple[int, int]:
130130
assert self.fd is not None
131131
value = gzip.decompress(self.fd.read())
132132

src/PIL/Image.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -856,7 +856,10 @@ def tobitmap(self, name: str = "image") -> bytes:
856856
)
857857

858858
def frombytes(
859-
self, data: bytes | bytearray, decoder_name: str = "raw", *args: Any
859+
self,
860+
data: bytes | bytearray | SupportsArrayInterface,
861+
decoder_name: str = "raw",
862+
*args: Any,
860863
) -> None:
861864
"""
862865
Loads this image with pixel data from a bytes object.
@@ -3145,7 +3148,7 @@ def new(
31453148
def frombytes(
31463149
mode: str,
31473150
size: tuple[int, int],
3148-
data: bytes | bytearray,
3151+
data: bytes | bytearray | SupportsArrayInterface,
31493152
decoder_name: str = "raw",
31503153
*args: Any,
31513154
) -> Image:
@@ -3189,7 +3192,11 @@ def frombytes(
31893192

31903193

31913194
def frombuffer(
3192-
mode: str, size: tuple[int, int], data, decoder_name: str = "raw", *args: Any
3195+
mode: str,
3196+
size: tuple[int, int],
3197+
data: bytes | SupportsArrayInterface,
3198+
decoder_name: str = "raw",
3199+
*args: Any,
31933200
) -> Image:
31943201
"""
31953202
Creates an image memory referencing pixel data in a byte buffer.

src/PIL/ImageFile.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -733,7 +733,7 @@ class PyDecoder(PyCodec):
733733
def pulls_fd(self) -> bool:
734734
return self._pulls_fd
735735

736-
def decode(self, buffer: bytes) -> tuple[int, int]:
736+
def decode(self, buffer: bytes | Image.SupportsArrayInterface) -> tuple[int, int]:
737737
"""
738738
Override to perform the decoding process.
739739

src/PIL/MspImagePlugin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ class MspDecoder(ImageFile.PyDecoder):
112112

113113
_pulls_fd = True
114114

115-
def decode(self, buffer: bytes) -> tuple[int, int]:
115+
def decode(self, buffer: bytes | Image.SupportsArrayInterface) -> tuple[int, int]:
116116
assert self.fd is not None
117117

118118
img = io.BytesIO()

0 commit comments

Comments
 (0)