Skip to content

Commit 8f3caa0

Browse files
committed
mpflash: FIX version prefix mismatch in filtering downloaded firmwares
1 parent b78369f commit 8f3caa0

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

src/mpflash/mpflash/downloaded.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ def clean_downloaded_firmwares(fw_folder: Path) -> None:
3939
writer.write(fw.to_dict())
4040
log.info(f"Removed duplicate entries from firmware.jsonl in {fw_folder}")
4141

42+
4243
def find_downloaded_firmware(
4344
*,
4445
board_id: str,
@@ -53,6 +54,7 @@ def find_downloaded_firmware(
5354
selector = {}
5455
fw_folder = fw_folder or config.firmware_folder
5556
# Use the information in firmwares.jsonl to find the firmware file
57+
log.debug(f"{trie}] Looking for firmware for {board_id} {version} ")
5658
fw_list = downloaded_firmwares(fw_folder)
5759
if not fw_list:
5860
log.error("No firmware files found. Please download the firmware first.")
@@ -102,12 +104,13 @@ def filter_downloaded_fwlist(
102104
fw_list = [fw for fw in fw_list if fw.preview]
103105
else:
104106
# FWInfo version has no v1.2.3 prefix
105-
_version = clean_version(version, drop_v=True)
106-
fw_list = [fw for fw in fw_list if fw.version == _version]
107-
107+
_version = {clean_version(version, drop_v=True), clean_version(version, drop_v=False)}
108+
fw_list = [fw for fw in fw_list if fw.version in _version]
109+
log.trace(f"Filtering firmware for {version} : {len(fw_list)} found.")
108110
# filter by port
109111
if port:
110112
fw_list = [fw for fw in fw_list if fw.port == port]
113+
log.trace(f"Filtering firmware for {port} : {len(fw_list)} found.")
111114

112115
if board_id:
113116
if variants:
@@ -116,6 +119,7 @@ def filter_downloaded_fwlist(
116119
else:
117120
# the firmware variant should match exactly the board_id
118121
fw_list = [fw for fw in fw_list if fw.variant == board_id]
122+
log.trace(f"Filtering firmware for {board_id} : {len(fw_list)} found.")
119123
if selector and port in selector:
120124
fw_list = [fw for fw in fw_list if fw.filename.endswith(selector[port])]
121125
return fw_list

src/mpflash/mpflash/flash_uf2_boardid.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from pathlib import Path
2+
23
from loguru import logger as log
34

45

@@ -10,5 +11,5 @@ def get_board_id(path: Path):
1011
for line in data:
1112
if line.startswith("Board-ID"):
1213
board_id = line[9:].strip()
13-
log.trace(f"Found Board-ID={board_id}")
14+
log.debug(f"INFO_UF2.TXT Board-ID={board_id}")
1415
return board_id

src/mpflash/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "mpflash"
3-
version = "0.8.2"
3+
version = "0.8.3"
44
description = "Flash and download tool for MicroPython firmwares"
55
authors = ["Jos Verlinde <[email protected]>"]
66
license = "MIT"

0 commit comments

Comments
 (0)