@@ -47,9 +47,9 @@ def load(file, *, bitmap=None, palette=None):
4747 :param object palette: Type to store the palette. Must have API similar to
4848 `displayio.Palette`. Will be skipped if None"""
4949 header = file .read (6 )
50- if header not in {b' GIF87a' , b' GIF89a' }:
50+ if header not in {b" GIF87a" , b" GIF89a" }:
5151 raise ValueError ("Not a GIF file" )
52- width , height , flags , _ , _ = struct .unpack (' <HHBBB' , file .read (7 ))
52+ width , height , flags , _ , _ = struct .unpack (" <HHBBB" , file .read (7 ))
5353 if (flags & 0x80 ) != 0 :
5454 palette_size = 1 << ((flags & 0x07 ) + 1 )
5555 palette_obj = palette (palette_size )
@@ -61,13 +61,13 @@ def load(file, *, bitmap=None, palette=None):
6161 bitmap_obj = bitmap (width , height , (1 << color_bits ) - 1 )
6262 while True :
6363 block_type = file .read (1 )[0 ]
64- if block_type == 0x2c : # frame
64+ if block_type == 0x2C : # frame
6565 _read_frame (file , bitmap_obj )
66- elif block_type == 0x21 : # extension
66+ elif block_type == 0x21 : # extension
6767 _ = file .read (1 )[0 ]
6868 # 0x01 = label, 0xfe = comment
6969 _ = bytes (_read_blockstream (file ))
70- elif block_type == 0x3b : # terminator
70+ elif block_type == 0x3B : # terminator
7171 break
7272 else :
7373 raise ValueError ("Bad block type" )
@@ -76,7 +76,7 @@ def load(file, *, bitmap=None, palette=None):
7676
7777def _read_frame (file , bitmap ):
7878 """Read a signle frame and apply it to the bitmap."""
79- ddx , ddy , width , _ , flags = struct .unpack (' <HHHHB' , file .read (9 ))
79+ ddx , ddy , width , _ , flags = struct .unpack (" <HHHHB" , file .read (9 ))
8080 if (flags & 0x40 ) != 0 :
8181 raise NotImplementedError ("Interlacing not supported" )
8282 if (flags & 0x80 ) != 0 :
@@ -111,6 +111,7 @@ class EndOfData(Exception):
111111
112112class LZWDict :
113113 """A dictionary of LZW codes."""
114+
114115 def __init__ (self , code_size ):
115116 self .code_size = code_size
116117 self .clear_code = 1 << code_size
@@ -121,27 +122,29 @@ def __init__(self, code_size):
121122
122123 def clear (self ):
123124 """Reset the dictionary to default codes."""
124- self .last = b''
125+ self .last = b""
125126 self .code_len = self .code_size + 1
126127 self .codes [:] = []
127128
128129 def decode (self , code ):
129130 """Decode a code."""
130131 if code == self .clear_code :
131132 self .clear ()
132- return b''
133- elif code == self .end_code :
133+ return b""
134+ if code == self .end_code :
134135 raise EndOfData ()
135- elif code < self .clear_code :
136+ if code < self .clear_code :
136137 value = bytes ([code ])
137138 elif code <= len (self .codes ) + self .end_code :
138139 value = self .codes [code - self .end_code - 1 ]
139140 else :
140141 value = self .last + self .last [0 :1 ]
141142 if self .last :
142143 self .codes .append (self .last + value [0 :1 ])
143- if (len (self .codes ) + self .end_code + 1 >= 1 << self .code_len and
144- self .code_len < 12 ):
144+ if (
145+ len (self .codes ) + self .end_code + 1 >= 1 << self .code_len
146+ and self .code_len < 12
147+ ):
145148 self .code_len += 1
146149 self .last = value
147150 return value
@@ -151,7 +154,7 @@ def lzw_decode(data, code_size):
151154 """Decode LZW-compressed data."""
152155 dictionary = LZWDict (code_size )
153156 bit = 0
154- byte = next (data ) # pylint: disable=stop-iteration-return
157+ byte = next (data ) # pylint: disable=stop-iteration-return
155158 try :
156159 while True :
157160 code = 0
@@ -160,8 +163,8 @@ def lzw_decode(data, code_size):
160163 bit += 1
161164 if bit >= 8 :
162165 bit = 0
163- byte = next (data ) # pylint: disable=stop-iteration-return
166+ byte = next (data ) # pylint: disable=stop-iteration-return
164167 yield dictionary .decode (code )
165168 except EndOfData :
166169 while True :
167- next (data ) # pylint: disable=stop-iteration-return
170+ next (data ) # pylint: disable=stop-iteration-return
0 commit comments