Skip to content

Commit 912a33f

Browse files
authored
Merge pull request #7795 from radarhere/type_hints
Use IO[bytes] in type hints
2 parents 50e9a92 + 47eaf09 commit 912a33f

7 files changed

+14
-12
lines changed

src/PIL/ImageFile.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import itertools
3333
import struct
3434
import sys
35-
from typing import Any, NamedTuple
35+
from typing import IO, Any, NamedTuple
3636

3737
from . import Image
3838
from ._deprecate import deprecate
@@ -616,7 +616,7 @@ def extents(self):
616616

617617

618618
class PyCodec:
619-
fd: io.BytesIO | None
619+
fd: IO[bytes] | None
620620

621621
def __init__(self, mode, *args):
622622
self.im = None

src/PIL/MspImagePlugin.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
import io
2828
import struct
29+
from typing import IO
2930

3031
from . import Image, ImageFile
3132
from ._binary import i16le as i16
@@ -163,7 +164,7 @@ def decode(self, buffer: bytes) -> tuple[int, int]:
163164
# write MSP files (uncompressed only)
164165

165166

166-
def _save(im: Image.Image, fp: io.BytesIO, filename: str) -> None:
167+
def _save(im: Image.Image, fp: IO[bytes], filename: str) -> None:
167168
if im.mode != "1":
168169
msg = f"cannot write mode {im.mode} as MSP"
169170
raise OSError(msg)

src/PIL/PcxImagePlugin.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
import io
3030
import logging
31+
from typing import IO
3132

3233
from . import Image, ImageFile, ImagePalette
3334
from ._binary import i16le as i16
@@ -143,7 +144,7 @@ def _open(self) -> None:
143144
}
144145

145146

146-
def _save(im: Image.Image, fp: io.BytesIO, filename: str) -> None:
147+
def _save(im: Image.Image, fp: IO[bytes], filename: str) -> None:
147148
try:
148149
version, bits, planes, rawmode = SAVE[im.mode]
149150
except KeyError as e:

src/PIL/PpmImagePlugin.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from __future__ import annotations
1717

1818
import math
19-
from io import BytesIO
19+
from typing import IO
2020

2121
from . import Image, ImageFile
2222
from ._binary import i16be as i16
@@ -324,7 +324,7 @@ def decode(self, buffer: bytes) -> tuple[int, int]:
324324
# --------------------------------------------------------------------
325325

326326

327-
def _save(im: Image.Image, fp: BytesIO, filename: str) -> None:
327+
def _save(im: Image.Image, fp: IO[bytes], filename: str) -> None:
328328
if im.mode == "1":
329329
rawmode, head = "1;I", b"P4"
330330
elif im.mode == "L":

src/PIL/SgiImagePlugin.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
import os
2626
import struct
27-
from io import BytesIO
27+
from typing import IO
2828

2929
from . import Image, ImageFile
3030
from ._binary import i16be as i16
@@ -125,7 +125,7 @@ def _open(self) -> None:
125125
]
126126

127127

128-
def _save(im: Image.Image, fp: BytesIO, filename: str) -> None:
128+
def _save(im: Image.Image, fp: IO[bytes], filename: str) -> None:
129129
if im.mode not in {"RGB", "RGBA", "L"}:
130130
msg = "Unsupported SGI image mode"
131131
raise ValueError(msg)

src/PIL/TgaImagePlugin.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from __future__ import annotations
1919

2020
import warnings
21-
from io import BytesIO
21+
from typing import IO
2222

2323
from . import Image, ImageFile, ImagePalette
2424
from ._binary import i16le as i16
@@ -175,7 +175,7 @@ def load_end(self) -> None:
175175
}
176176

177177

178-
def _save(im: Image.Image, fp: BytesIO, filename: str) -> None:
178+
def _save(im: Image.Image, fp: IO[bytes], filename: str) -> None:
179179
try:
180180
rawmode, bits, colormaptype, imagetype = SAVE[im.mode]
181181
except KeyError as e:

src/PIL/XbmImagePlugin.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from __future__ import annotations
2222

2323
import re
24-
from io import BytesIO
24+
from typing import IO
2525

2626
from . import Image, ImageFile
2727

@@ -70,7 +70,7 @@ def _open(self) -> None:
7070
self.tile = [("xbm", (0, 0) + self.size, m.end(), None)]
7171

7272

73-
def _save(im: Image.Image, fp: BytesIO, filename: str) -> None:
73+
def _save(im: Image.Image, fp: IO[bytes], filename: str) -> None:
7474
if im.mode != "1":
7575
msg = f"cannot write mode {im.mode} as XBM"
7676
raise OSError(msg)

0 commit comments

Comments
 (0)