mpflash 1.26.3__py3-none-any.whl → 1.26.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mpflash
3
- Version: 1.26.3
3
+ Version: 1.26.4
4
4
  Summary: Flash and download tool for MicroPython firmwares
5
5
  Project-URL: Homepage, https://github.com/Josverl/mpflash
6
6
  Project-URL: Documentation, https://github.com/Josverl/mpflash/blob/main/README.md
@@ -50,14 +50,12 @@ Requires-Dist: tomli-w>=1.2.0
50
50
  Requires-Dist: tomli>=2.2.1
51
51
  Provides-Extra: dev
52
52
  Requires-Dist: ipykernel>=6.29.5; extra == 'dev'
53
- Requires-Dist: pandas>=2.2.3; extra == 'dev'
54
53
  Requires-Dist: tornado>=6.5; extra == 'dev'
55
54
  Provides-Extra: test
56
55
  Requires-Dist: coverage<8.0.0,>=6.4.3; extra == 'test'
57
56
  Requires-Dist: distro>=1.8.0; extra == 'test'
58
57
  Requires-Dist: fasteners>=0.19; extra == 'test'
59
58
  Requires-Dist: mock<6.0.0,>=4.0.3; extra == 'test'
60
- Requires-Dist: pandas>=2.2.3; extra == 'test'
61
59
  Requires-Dist: pytest-cov>=6.0.0; extra == 'test'
62
60
  Requires-Dist: pytest-github-actions-annotate-failures<0.4.0,>=0.1.7; extra == 'test'
63
61
  Requires-Dist: pytest-json-report>=1.5.0; extra == 'test'
@@ -99,6 +97,17 @@ This release includes several new features and improvements:
99
97
  - Restructured mpboard_id to use a SQLite db to be able to ID more boards and variants
100
98
  - vendored and adapted `board_database.py` from mpflash, kudos @mattytrentini
101
99
 
100
+ ## ⚠️ Breaking API Changes (v1.26+)
101
+
102
+ **Important for Library Users**: The worklist module API has been completely refactored with breaking changes.
103
+ Legacy worklist functions have been **removed**.
104
+
105
+ - **Removed Functions**: `auto_update_worklist()`, `manual_worklist()`, `manual_board()`, `single_auto_worklist()`, `full_auto_worklist()`, `filter_boards()`
106
+ - **New API**: Modern interface with `create_worklist()`, `FlashTask` dataclass, and `WorklistConfig` objects
107
+ - **CLI Unchanged**: Command-line interface remains fully compatible
108
+
109
+ See [API Documentation](docs/api-reference.md) for complete migration guide.
110
+
102
111
 
103
112
  ## Features
104
113
  1. List the connected boards including their firmware details, in a tabular or json format
@@ -196,7 +205,26 @@ On Windows this will not be an issue, but on Linux you can use udev rules to gi
196
205
 
197
206
  MPFlash can be used as a library in your own project. mpflash is used in [micropython-stubber]() to download and flash the firmware to the connected boards.
198
207
 
199
- The interface is not well documented other than the code itself, but you can use the following example to get started: - docs/mpflash_api_example.ipynb
208
+ **⚠️ API Changes**: The worklist module API has been completely refactored in v1.25.1+. Legacy functions have been removed. See [API Documentation](docs/api-reference.md) for the new interface.
209
+
210
+ ```python
211
+ # Modern API example
212
+ from mpflash.flash.worklist import create_worklist
213
+ from mpflash.connected import get_connected_comports
214
+
215
+ # Get connected boards and create worklist
216
+ boards = get_connected_comports()
217
+ tasks = create_worklist("1.25.0", connected_comports=boards)
218
+
219
+ # Process tasks
220
+ for task in tasks:
221
+ if task.is_valid:
222
+ print(f"{task.board.serialport} -> {task.firmware_version}")
223
+ ```
224
+
225
+ The interface is documented in:
226
+ - [API Reference](docs/api-reference.md) - Complete programming interface
227
+ - [API Examples](docs/mpflash_api_example.ipynb) - Jupyter notebook with examples
200
228
 
201
229
  ## Detailed usage
202
230
  You can list the connected boards using the following command:
@@ -1,19 +1,19 @@
1
- mpflash/__init__.py,sha256=1CcA1kUb3uUfa9N5O4T4ZQh-Ph0JMFAtBG5IiDIaNVg,201
2
- mpflash/ask_input.py,sha256=YUx65Xwj6dNPwWcbQiWG7U4wDW69zEdno2HcT1KwPBg,8886
1
+ mpflash/__init__.py,sha256=tToFcmhcOordC-FrA0Jv3bkyApqZaNjIiqebgzF-s2I,53
2
+ mpflash/ask_input.py,sha256=TzrieNyhboX1it7b6n6bIL5ZKC1pB0_ly7sIzjH77CQ,9244
3
3
  mpflash/basicgit.py,sha256=lpGQxL10Mq8D8S56h87aMrBH0vo18ji_hE9v0KJ9P-o,10245
4
4
  mpflash/cli_add.py,sha256=hI-o-9hAGD3U8cbpXvy9Nuv1KHNTZ6mS57LC4BTBtj8,3495
5
5
  mpflash/cli_download.py,sha256=v5aWJIv1bB5cinGa5BL0nS5vJ97dsFXaLpAaKN0RnrU,3528
6
- mpflash/cli_flash.py,sha256=SekC3goAu9_8UvMRMTEzIiiOK8js1GJRC6ymyA3BQWg,8820
6
+ mpflash/cli_flash.py,sha256=9SLtDqVrzeYNW6GRLnYrd7Uxh8O6rB4WgM58pjY7Q5k,8799
7
7
  mpflash/cli_group.py,sha256=RITn2u1_77jKptapX0Vz3oUriPtGMzLVmjZOtM5SP88,2686
8
8
  mpflash/cli_list.py,sha256=dznrQrWQXvev20ai5AFvz2DFe3MNDR5RIrJmtvQou6A,2693
9
9
  mpflash/cli_main.py,sha256=w5o3swYWDZUnYwIH46hGMCiFdPKVL1-R1YJRM-RSMiY,1496
10
10
  mpflash/common.py,sha256=wO3BjG1wtbfi37wNWPnmLk3jNi7kRUl1vTzgJUOwm9I,6355
11
11
  mpflash/config.py,sha256=3JIOuKcVIWzV3Y24n6ag_XJpSczMcCbd1fa6FpWGiz8,4143
12
- mpflash/connected.py,sha256=SZvqbnLztJH-DBByjGrWT24S5DGTSevWSwYncH6dFqk,3707
12
+ mpflash/connected.py,sha256=ri6Sl58eZWd-uGs8aiIv4XAgviCxAqSSJD51UQ016UU,3563
13
13
  mpflash/downloaded.py,sha256=xaeMYrTIGj_v4scUBojeJPL-U1kWJG-bdvkvJMbPh4Q,4218
14
14
  mpflash/errors.py,sha256=IAidY3qkZsXy6Pm1rdmVFmGyg81ywHhse3itaPctA2w,247
15
15
  mpflash/list.py,sha256=IrJa3UBjhHHfStbb9fPVYA8JJzoFTyXtbcKGNRSH8sE,4132
16
- mpflash/logger.py,sha256=h1Ra-uYCVqC2evuDoIoD7GGhTHK-ymkAuqNUsPdZHcI,5212
16
+ mpflash/logger.py,sha256=N2LhJlErTxZ_ipGRjZuGfsQppSdIIeLiFE_r7Nz6Ww4,5282
17
17
  mpflash/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  mpflash/versions.py,sha256=HuujLNdMKY_mQXyEqwXVHcU8nbuXeBiWP2TMA5JQhr4,4884
19
19
  mpflash/bootloader/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -25,22 +25,23 @@ mpflash/bootloader/touch1200.py,sha256=VND7_YniS9Vx6WEaAxjI72RZZ6WBOwmBTsKJkbuaA
25
25
  mpflash/custom/__init__.py,sha256=l9RU9hRm9j7IuRgacw-gHYjA2Op-5prvRO5yyODhFMQ,5269
26
26
  mpflash/custom/naming.py,sha256=uHQzFIDzuWQUNajeGSUcf_A-o7cxX37kfgXhzpFHNtk,3304
27
27
  mpflash/db/__init__.py,sha256=wnIlO4nOXsPGXMbn2OCqHRsR-hUmtJsko8VdqjH3ZUE,45
28
- mpflash/db/core.py,sha256=PiHpk64pBP-myfacxfVgHo4BvSSvFrtx6LrLgIPMyYY,5286
29
- mpflash/db/gather_boards.py,sha256=fzCT1IGZ53FwkFrTY72ZeXH5klSlm5JFETsDU7lGYf4,4134
30
- mpflash/db/loader.py,sha256=CDlTj2T6w9Ch9s3RHi00E1TbUhjFsgXAsYSQr5kliB0,4889
28
+ mpflash/db/boards_version.txt,sha256=8qTPMyXJDDLrpqktO8UUJcJyfYeH6lZSw425voqPZus,17
29
+ mpflash/db/core.py,sha256=v9BCXsPwjAwO-bRPM304XFqUv9KTLBJF_NXtGRoJgRI,5243
30
+ mpflash/db/gather_boards.py,sha256=C9KL-mdNZw3oukutv_KWFkOJDiFz1mhdShu7lbIpnYs,5494
31
+ mpflash/db/loader.py,sha256=R4pEuXc9jN7v4BMFJKvArnhugniBHsLNZQz6Ijr5W9U,5350
31
32
  mpflash/db/meta.py,sha256=2pFTpFH-1zejGIDp2vs0hbX5rqUONt7B1WIvf8qBx5s,2248
32
- mpflash/db/micropython_boards.zip,sha256=HPYcWaY-lqkuo3Y6yksltNDG5kN4xr0Ghr511G2pALw,18349
33
+ mpflash/db/micropython_boards.zip,sha256=WGZsFFsPeGn_FyCgOAu1OSMDcHmOV8OMHtAyWpCW3zc,18046
33
34
  mpflash/db/models.py,sha256=hZrum-nS-TNFaZAksApjxYMBgGKI_kJ-4oFxc8a4WRk,3572
34
35
  mpflash/db/tools.py,sha256=6SEGfshNob4yRQ4h-Cj_xcWMRY28sbA8CWauNXV_uMI,814
35
- mpflash/download/__init__.py,sha256=EQez0Gj70rgrcJDbWEMYlezQyGgD747ipwmB0nt9eUI,9575
36
+ mpflash/download/__init__.py,sha256=3N7cj1To5HqEC2-kGY-jFCwKyrPMrx1SJVTrlqz_7Ow,9420
36
37
  mpflash/download/from_web.py,sha256=PVJDaFfYLJGXlPva5fExh4Yg2H7j3idyJEcfOiVVJBs,7608
37
38
  mpflash/download/fwinfo.py,sha256=XGWOWoJ9cqRVtBAgzVYWCIWaBZpLK595SniXn7bzrRk,1844
38
- mpflash/download/jid.py,sha256=V57M4K0uXXxBYOB4zOKkmXvUvEQdM_-w22LZ-iMIJSE,2344
39
- mpflash/flash/__init__.py,sha256=fkA_3pax9ZLckb14zFxATGk1YWMenpHBlvi66qJCIJA,3433
39
+ mpflash/download/jid.py,sha256=fzCKU2I-iGdxZb7fyVXgXM4be3htQcrDrd3fCgVGZy0,2034
40
+ mpflash/flash/__init__.py,sha256=6RquZPQCUBsdgCAPaddug2tIjLRR3dxp1MhXIqx5_uY,3430
40
41
  mpflash/flash/esp.py,sha256=4977E1hDqJ4-EIkLzwrUtgZuc0ZTD7NvP1PQZgZ2DoU,3227
41
42
  mpflash/flash/stm32.py,sha256=jNgMpJaxUwtJ-v6VU1luD1t41AQprCUeNVCVEovxQe0,595
42
43
  mpflash/flash/stm32_dfu.py,sha256=W-3JsRQyf3DduoIRXDmGZ35RogqtjQgcJnk-GOtQoLE,3090
43
- mpflash/flash/worklist.py,sha256=wf-R9yPsmcE54dnoPA29pEEzNPZI3JwY85V_DB0hXNI,6584
44
+ mpflash/flash/worklist.py,sha256=26cUK_rW5WQOcAnvyl_vcdQcmiHg38rlOw0OwIM5jK0,12538
44
45
  mpflash/flash/uf2/__init__.py,sha256=fCTQLwI8jigzGY0zVWB1XmqyieNFDRHOWky2slZjZEM,4145
45
46
  mpflash/flash/uf2/boardid.py,sha256=U5wGM8VA3wEpUxQCMtuXpMZZomdVH8J_Zd5_GekUMuU,423
46
47
  mpflash/flash/uf2/linux.py,sha256=uTgqyS7C7xfQ25RrTcSUkt-m2u2Ks_o7bPLzIecPoC8,4355
@@ -54,9 +55,9 @@ mpflash/mpboard_id/board_info.json,sha256=A3ZIt38KvAy2NMB5srHorSBd3Q3wOZIXufWiIs
54
55
  mpflash/mpboard_id/board_info.zip,sha256=-2bnQGRsIQuJUfz-7_-GQ8pMWJ1evhCez6yfjhXocNw,23213
55
56
  mpflash/mpboard_id/known.py,sha256=t-oREfW5P5Zue5zbte7WB9e7-mpZBF-NfHGTEUsOVLM,3521
56
57
  mpflash/mpboard_id/resolve.py,sha256=5KCZ0Tcg3FYZ3HK_zux5EguwoSC2E03kCpW2fh4rN2A,779
57
- mpflash/mpremoteboard/__init__.py,sha256=4OIKAry-GeYUSgnEcs5TRb0xea0bstVQCOb28MjLDyk,14210
58
+ mpflash/mpremoteboard/__init__.py,sha256=vjFwfa3XKDeugkzMDuswYfeImJm3ptQrYr3tIAY02f0,14301
58
59
  mpflash/mpremoteboard/mpy_fw_info.py,sha256=ZDEPJN9XJnoG_oeWcLNiLJAD5bkVX2yI_j4K7msUxWM,5196
59
- mpflash/mpremoteboard/runner.py,sha256=4YpL0OA3GRcCvXI47wrj6hJKJZ9uunkdDKDFic2ZM-8,5372
60
+ mpflash/mpremoteboard/runner.py,sha256=4-KmWcktsuQfppGZ8iBfz-ov77Pp8v2dVsBKzcLGUtc,5374
60
61
  mpflash/vendor/board_database.py,sha256=Cb8fEhJaZ2siMkLPW5rPwV9yzBsTtKGOqWUd9TxNgFM,8763
61
62
  mpflash/vendor/click_aliases.py,sha256=adLhqLxNpJEPjSCIRSTkR-QzSgavGFKT0cwRbjxpzRU,5395
62
63
  mpflash/vendor/dfu.py,sha256=6rqGCBS8mTxxaLtkdzJ8O6nc74kFk8jrkmKvxw-x-u8,5693
@@ -64,8 +65,8 @@ mpflash/vendor/pydfu.py,sha256=KD1RHHuhvhWi-l1UB6GyggkxouDKtZgkG4ivRbIfwC4,21264
64
65
  mpflash/vendor/readme.md,sha256=BQ7Uxf8joeYMjTUuSLLBG49ob6a9MgFPIEwuc72-Mfw,415
65
66
  mpflash/vendor/pico-universal-flash-nuke/LICENSE.txt,sha256=Zkc2iTNbib2NCMwtLjMEz0vFCPglgvaw6Mj7QiWldpQ,1484
66
67
  mpflash/vendor/pico-universal-flash-nuke/universal_flash_nuke.uf2,sha256=QuPMppqHMVOt3vDVU0bikHRLsTiDRQYNUcGQ_OLRFGI,28160
67
- mpflash-1.26.3.dist-info/METADATA,sha256=T_PJNISbbh6QLopvV6CosjyXnO94zDJqjibo46havDM,28033
68
- mpflash-1.26.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
69
- mpflash-1.26.3.dist-info/entry_points.txt,sha256=DZ24tsMKlCyTkjWet9vCoq5dcFeY43RKtTsLreQI_R8,53
70
- mpflash-1.26.3.dist-info/licenses/LICENSE,sha256=mWpNhsIxWzetYNnTpr4eb3HtgsxGIC8KcYWxXEcxQvE,1077
71
- mpflash-1.26.3.dist-info/RECORD,,
68
+ mpflash-1.26.4.dist-info/METADATA,sha256=NwpsLAVqtEEsM9_5QJltBonfXcIvKJpbkG9WY97i5HA,29201
69
+ mpflash-1.26.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
70
+ mpflash-1.26.4.dist-info/entry_points.txt,sha256=DZ24tsMKlCyTkjWet9vCoq5dcFeY43RKtTsLreQI_R8,53
71
+ mpflash-1.26.4.dist-info/licenses/LICENSE,sha256=mWpNhsIxWzetYNnTpr4eb3HtgsxGIC8KcYWxXEcxQvE,1077
72
+ mpflash-1.26.4.dist-info/RECORD,,