@@ -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