Skip to content

Commit 34efaad

Browse files
committed
Improved type hints
1 parent 6512a8e commit 34efaad

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

src/PIL/XpmImagePlugin.py

+18-14
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,18 @@ class XpmImageFile(ImageFile.ImageFile):
3737
format_description = "X11 Pixel Map"
3838

3939
def _open(self) -> None:
40+
assert self.fp is not None
4041
if not _accept(self.fp.read(9)):
4142
msg = "not an XPM file"
4243
raise SyntaxError(msg)
4344

4445
# skip forward to next string
4546
while True:
46-
s = self.fp.readline()
47-
if not s:
47+
line = self.fp.readline()
48+
if not line:
4849
msg = "broken XPM file"
4950
raise SyntaxError(msg)
50-
m = xpm_head.match(s)
51+
m = xpm_head.match(line)
5152
if m:
5253
break
5354

@@ -62,10 +63,10 @@ def _open(self) -> None:
6263
palette = {}
6364

6465
for _ in range(palette_length):
65-
s = self.fp.readline().rstrip()
66+
line = self.fp.readline().rstrip()
6667

67-
c = s[1 : bpp + 1]
68-
s = s[bpp + 1 : -2].split()
68+
c = line[1 : bpp + 1]
69+
s = line[bpp + 1 : -2].split()
6970

7071
for i in range(0, len(s), 2):
7172
if s[i] == b"c":
@@ -74,9 +75,11 @@ def _open(self) -> None:
7475
if rgb == b"None":
7576
self.info["transparency"] = c
7677
elif rgb.startswith(b"#"):
77-
rgb = int(rgb[1:], 16)
78+
rgb_int = int(rgb[1:], 16)
7879
palette[c] = (
79-
o8((rgb >> 16) & 255) + o8((rgb >> 8) & 255) + o8(rgb & 255)
80+
o8((rgb_int >> 16) & 255)
81+
+ o8((rgb_int >> 8) & 255)
82+
+ o8(rgb_int & 255)
8083
)
8184
else:
8285
# unknown colour
@@ -106,6 +109,7 @@ def load_read(self, read_bytes: int) -> bytes:
106109

107110
xsize, ysize = self.size
108111

112+
assert self.fp is not None
109113
s = [self.fp.readline()[1 : xsize + 1].ljust(xsize) for i in range(ysize)]
110114

111115
return b"".join(s)
@@ -124,15 +128,15 @@ def decode(self, buffer: bytes | Image.SupportsArrayInterface) -> tuple[int, int
124128
dest_length *= 3
125129
pixel_header = False
126130
while len(data) < dest_length:
127-
s = self.fd.readline()
128-
if not s:
131+
line = self.fd.readline()
132+
if not line:
129133
break
130-
if s.rstrip() == b"/* pixels */" and not pixel_header:
134+
if line.rstrip() == b"/* pixels */" and not pixel_header:
131135
pixel_header = True
132136
continue
133-
s = b'"'.join(s.split(b'"')[1:-1])
134-
for i in range(0, len(s), bpp):
135-
key = s[i : i + bpp]
137+
line = b'"'.join(line.split(b'"')[1:-1])
138+
for i in range(0, len(line), bpp):
139+
key = line[i : i + bpp]
136140
if self.mode == "RGB":
137141
data += palette[key]
138142
else:

0 commit comments

Comments
 (0)