@@ -77,7 +77,9 @@ def firmware_list(board_url: str, base_url: str, ext: str) -> List[str]:
7777 tags = soup .findAll (
7878 "a" ,
7979 recursive = True ,
80- attrs = {"href" : re .compile (r"^/resources/firmware/.*\." + ext .lstrip ("." ) + "$" )},
80+ attrs = {
81+ "href" : re .compile (r"^/resources/firmware/.*\." + ext .lstrip ("." ) + "$" )
82+ },
8183 )
8284 if "?" in base_url :
8385 base_url = base_url .split ("?" )[0 ]
@@ -92,7 +94,9 @@ def firmware_list(board_url: str, base_url: str, ext: str) -> List[str]:
9294# boards we are interested in ( this avoids getting a lot of boards we don't care about)
9395# The first run takes ~60 seconds to run for 4 ports , all boards
9496# so it makes sense to cache the results and skip boards as soon as possible
95- def get_boards (fw_types : Dict [str , str ], board_list : List [str ], clean : bool ) -> List [FirmwareInfo ]:
97+ def get_boards (
98+ fw_types : Dict [str , str ], board_list : List [str ], clean : bool
99+ ) -> List [FirmwareInfo ]:
96100 board_urls : List [FirmwareInfo ] = []
97101 for port in fw_types :
98102 download_page_url = f"{ MICROPYTHON_ORG_URL } download/?port={ port } "
@@ -103,7 +107,9 @@ def get_boards(fw_types: Dict[str, str], board_list: List[str], clean: bool) ->
103107 for board in _urls :
104108 board ["port" ] = port
105109
106- for board in track (_urls , description = "Checking download pages" , transient = True ):
110+ for board in track (
111+ _urls , description = "Checking download pages" , transient = True
112+ ):
107113 # add a board to the list for each firmware found
108114 firmwares = firmware_list (board ["url" ], MICROPYTHON_ORG_URL , fw_types [port ])
109115 for _url in firmwares :
@@ -124,7 +130,11 @@ def get_boards(fw_types: Dict[str, str], board_list: List[str], clean: bool) ->
124130 # remove hash from firmware name
125131 fname = re .sub (RE_HASH , "." , fname )
126132 board ["filename" ] = fname
127- board ["variant" ] = board ["filename" ].split ("-v" )[0 ] if "-v" in board ["filename" ] else ""
133+ board ["variant" ] = (
134+ board ["filename" ].split ("-v" )[0 ]
135+ if "-v" in board ["filename" ]
136+ else ""
137+ )
128138 board_urls .append (board .copy ())
129139 return board_urls
130140
@@ -161,7 +171,9 @@ def download_firmwares(
161171
162172 firmware_folder .mkdir (exist_ok = True )
163173
164- with open (firmware_folder / "firmware.jsonl" , "a" , encoding = "utf-8" , buffering = 1 ) as f_jsonl :
174+ with open (
175+ firmware_folder / "firmware.jsonl" , "a" , encoding = "utf-8" , buffering = 1
176+ ) as f_jsonl :
165177 for board in unique_boards :
166178 filename = firmware_folder / board ["port" ] / board ["filename" ]
167179 filename .parent .mkdir (exist_ok = True )
@@ -185,16 +197,21 @@ def download_firmwares(
185197 log .info (f"Downloaded { downloaded } firmwares, skipped { skipped } existing files." )
186198
187199
188- def get_firmware_list (board_list : List [str ], version_list : List [str ], preview : bool , clean : bool ):
200+ def get_firmware_list (
201+ board_list : List [str ], version_list : List [str ], preview : bool , clean : bool
202+ ):
189203 log .trace ("Checking MicroPython download pages" )
190204
191- board_urls = sorted (get_boards (PORT_FWTYPES , board_list , clean ), key = key_fw_variant_ver )
205+ board_urls = sorted (
206+ get_boards (PORT_FWTYPES , board_list , clean ), key = key_fw_variant_ver
207+ )
192208
193209 log .debug (f"Total { len (board_urls )} firmwares" )
194210 relevant = [
195211 board
196212 for board in board_urls
197- if board ["board" ] in board_list and (board ["version" ] in version_list or board ["preview" ] and preview )
213+ if board ["board" ] in board_list
214+ and (board ["version" ] in version_list or board ["preview" ] and preview )
198215 # and b["port"] in ["esp32", "rp2"]
199216 ]
200217 log .debug (f"Matching firmwares: { len (relevant )} " )
@@ -208,7 +225,10 @@ def get_firmware_list(board_list: List[str], version_list: List[str], preview: b
208225 return unique_boards
209226
210227
211- @cli .command ("download" , help = "Download MicroPython firmware for specific ports, boards and versions." )
228+ @cli .command (
229+ "download" ,
230+ help = "Download MicroPython firmware for specific ports, boards and versions." ,
231+ )
212232@click .option (
213233 "--destination" ,
214234 "-d" ,
@@ -247,13 +267,19 @@ def get_firmware_list(board_list: List[str], version_list: List[str], preview: b
247267 help = """Force download of firmware even if it already exists.""" ,
248268 show_default = True ,
249269)
250- def download (destination : Path , boards : List [str ], versions : List [str ], force : bool , clean : bool ):
270+ def download (
271+ destination : Path , boards : List [str ], versions : List [str ], force : bool , clean : bool
272+ ):
251273 versions = list (versions )
252274 # preview is not a version, it is an option to include preview versions
253275 preview = "preview" in versions
254276 versions = [v for v in versions if v != "preview" ]
255277
256278 boards = list (boards ) or DEFAULT_BOARDS
257- versions = [clean_version (v , drop_v = True ) for v in versions ] # remove leading v from version
279+ versions = [
280+ clean_version (v , drop_v = True ) for v in versions
281+ ] # remove leading v from version
258282 destination .mkdir (exist_ok = True )
259- download_firmwares (destination , boards , versions , preview = preview , force = force , clean = clean )
283+ download_firmwares (
284+ destination , boards , versions , preview = preview , force = force , clean = clean
285+ )
0 commit comments