micropython-stubber 1.23.1__py3-none-any.whl → 1.23.1.post1__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.
Files changed (61) hide show
  1. {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.1.post1.dist-info}/METADATA +30 -13
  2. {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.1.post1.dist-info}/RECORD +60 -60
  3. micropython_stubber-1.23.1.post1.dist-info/entry_points.txt +5 -0
  4. mpflash/README.md +26 -0
  5. mpflash/mpflash/cli_download.py +1 -1
  6. mpflash/mpflash/cli_flash.py +11 -14
  7. mpflash/mpflash/cli_list.py +8 -2
  8. mpflash/mpflash/common.py +2 -1
  9. mpflash/mpflash/connected.py +2 -3
  10. mpflash/mpflash/list.py +20 -13
  11. mpflash/mpflash/mpremoteboard/__init__.py +50 -6
  12. mpflash/pyproject.toml +1 -1
  13. stubber/bulk/mcu_stubber.py +28 -45
  14. stubber/codemod/enrich.py +1 -1
  15. stubber/codemod/merge_docstub.py +1 -1
  16. stubber/commands/build_cmd.py +1 -1
  17. stubber/commands/cli.py +5 -11
  18. stubber/commands/clone_cmd.py +1 -1
  19. stubber/commands/config_cmd.py +1 -1
  20. stubber/commands/enrich_folder_cmd.py +1 -1
  21. stubber/commands/get_core_cmd.py +1 -1
  22. stubber/commands/get_docstubs_cmd.py +5 -2
  23. stubber/commands/get_frozen_cmd.py +5 -2
  24. stubber/commands/get_mcu_cmd.py +52 -11
  25. stubber/commands/merge_cmd.py +1 -1
  26. stubber/commands/publish_cmd.py +1 -1
  27. stubber/commands/stub_cmd.py +1 -1
  28. stubber/commands/variants_cmd.py +1 -1
  29. stubber/downloader.py +2 -1
  30. stubber/freeze/common.py +7 -3
  31. stubber/freeze/freeze_folder.py +2 -2
  32. stubber/freeze/freeze_manifest_2.py +19 -6
  33. stubber/freeze/get_frozen.py +7 -3
  34. stubber/get_cpython.py +15 -4
  35. stubber/minify.py +7 -3
  36. stubber/publish/candidates.py +26 -7
  37. stubber/publish/merge_docstubs.py +4 -2
  38. stubber/publish/missing_class_methods.py +4 -2
  39. stubber/publish/package.py +7 -3
  40. stubber/publish/pathnames.py +1 -1
  41. stubber/publish/publish.py +1 -1
  42. stubber/publish/pypi.py +6 -2
  43. stubber/publish/stubpackage.py +40 -16
  44. stubber/rst/classsort.py +2 -1
  45. stubber/rst/lookup.py +1 -0
  46. stubber/rst/reader.py +7 -7
  47. stubber/rst/report_return.py +12 -4
  48. stubber/rst/rst_utils.py +2 -1
  49. stubber/stubs_from_docs.py +1 -1
  50. stubber/tools/manifestfile.py +1 -1
  51. stubber/update_fallback.py +1 -1
  52. stubber/update_module_list.py +1 -1
  53. stubber/utils/config.py +19 -7
  54. stubber/utils/post.py +2 -1
  55. stubber/utils/repos.py +9 -3
  56. stubber/utils/stubmaker.py +1 -1
  57. stubber/utils/typed_config_toml.py +5 -2
  58. stubber/variants.py +1 -1
  59. micropython_stubber-1.23.1.dist-info/entry_points.txt +0 -3
  60. {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.1.post1.dist-info}/LICENSE +0 -0
  61. {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.1.post1.dist-info}/WHEEL +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: micropython-stubber
3
- Version: 1.23.1
3
+ Version: 1.23.1.post1
4
4
  Summary: Tooling to create and maintain stubs for MicroPython
5
5
  Home-page: https://github.com/Josverl/micropython-stubber#readme
6
6
  License: MIT
@@ -26,7 +26,7 @@ Requires-Dist: executing (>=2.0.1,<3.0.0)
26
26
  Requires-Dist: importlib-metadata (>=1.0,<2.0) ; python_version < "3.8"
27
27
  Requires-Dist: libcst (>=1.1.0,<2.0.0)
28
28
  Requires-Dist: loguru (>=0.6,<0.8)
29
- Requires-Dist: mpflash (==0.9.1.post2)
29
+ Requires-Dist: mpflash (>=1.0.0,<2.0.0)
30
30
  Requires-Dist: mpremote (>=1.23.0,<2.0.0)
31
31
  Requires-Dist: mypy (==1.9.0)
32
32
  Requires-Dist: mypy-gitlab-code-quality (>=1.1.0,<2.0.0)
@@ -172,7 +172,7 @@ for more info see [**Renaming a branch**](https://docs.github.com/en/repositorie
172
172
 
173
173
  ## Licensing
174
174
 
175
- MicroPython-Stubber is licensed under the MIT license, and all contributions should follow this [LICENSE](LICENSE).
175
+ Both `MicroPython-Stubber` and `mpflash` are licensed under the MIT license, and all contributions should follow this [LICENSE](LICENSE).
176
176
 
177
177
 
178
178
  # Contributions
@@ -184,35 +184,52 @@ MicroPython-Stubber is licensed under the MIT license, and all contributions sho
184
184
  <table>
185
185
  <tbody>
186
186
  <tr>
187
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/Josverl"><img src="https://avatars2.githubusercontent.com/u/981654?v=4?s=100" width="100px;" alt="Jos Verlinde"/><br /><sub><b>Jos Verlinde</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/commits?author=josverl" title="Code">💻</a> <a href="#research-josverl" title="Research">🔬</a> <a href="#ideas-josverl" title="Ideas, Planning, & Feedback">🤔</a> <a href="#content-josverl" title="Content">🖋</a> <a href="#stubs-josverl" title="MicroPython stubs">📚</a> <a href="#test-josverl" title="Test">✔</a></td>
187
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Josverl"><img src="https://avatars2.githubusercontent.com/u/981654?v=4?s=100" width="100px;" alt="Jos Verlinde"/><br /><sub><b>Jos Verlinde</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/commits?author=josverl" title="Code">💻</a> <a href="#research-josverl" title="Research">🔬</a> <a href="#ideas-josverl" title="Ideas, Planning, & Feedback">🤔</a> <a href="#content-josverl" title="Content">🖋</a> <a href="#stubs-josverl" title="MicroPython stubs">🖍️</a> <a href="#test-josverl" title="Test">✅</a> <a href="#mpflash-josverl" title="mpflash">💥</a></td>
188
188
  <td align="center" valign="top" width="14.28%"><a href="https://thonny.org/"><img src="https://avatars1.githubusercontent.com/u/46202078?v=4?s=100" width="100px;" alt="Thonny, Python IDE for beginners"/><br /><sub><b>Thonny, Python IDE for beginners</b></sub></a><br /><a href="#ideas-thonny" title="Ideas, Planning, & Feedback">🤔</a> <a href="#research-thonny" title="Research">🔬</a></td>
189
- <td align="center" valign="top" width="14.28%"><a href="https://micropython.org/"><img src="https://avatars1.githubusercontent.com/u/6298560?v=4?s=100" width="100px;" alt="MicroPython"/><br /><sub><b>MicroPython</b></sub></a><br /><a href="#data-micropython" title="Data">🔣</a> <a href="#stubs-micropython" title="MicroPython stubs">📚</a></td>
189
+ <td align="center" valign="top" width="14.28%"><a href="https://micropython.org/"><img src="https://avatars1.githubusercontent.com/u/6298560?v=4?s=100" width="100px;" alt="MicroPython"/><br /><sub><b>MicroPython</b></sub></a><br /><a href="#data-micropython" title="Data">🔣</a> <a href="#stubs-micropython" title="MicroPython stubs">🖍️</a></td>
190
190
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/microsoft/pyright"><img src="https://avatars.githubusercontent.com/u/6154722?v=4?s=100" width="100px;" alt="pyright"/><br /><sub><b>pyright</b></sub></a><br /><a href="#tool-pyright" title="Tools">🔧</a></td>
191
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/loboris"><img src="https://avatars3.githubusercontent.com/u/6280349?v=4?s=100" width="100px;" alt="Boris Lovosevic"/><br /><sub><b>Boris Lovosevic</b></sub></a><br /><a href="#data-loboris" title="Data">🔣</a> <a href="#stubs-loboris" title="MicroPython stubs">📚</a></td>
192
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/pfalcon"><img src="https://avatars3.githubusercontent.com/u/500451?v=4?s=100" width="100px;" alt="Paul Sokolovsky"/><br /><sub><b>Paul Sokolovsky</b></sub></a><br /><a href="#data-pfalcon" title="Data">🔣</a> <a href="#stubs-pfalcon" title="MicroPython stubs">📚</a></td>
193
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/pycopy"><img src="https://avatars0.githubusercontent.com/u/67273174?v=4?s=100" width="100px;" alt="pycopy"/><br /><sub><b>pycopy</b></sub></a><br /><a href="#data-pycopy" title="Data">🔣</a> <a href="#stubs-pycopy" title="MicroPython stubs">📚</a></td>
191
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/loboris"><img src="https://avatars3.githubusercontent.com/u/6280349?v=4?s=100" width="100px;" alt="Boris Lovosevic"/><br /><sub><b>Boris Lovosevic</b></sub></a><br /><a href="#data-loboris" title="Data">🔣</a> <a href="#stubs-loboris" title="MicroPython stubs">🖍️</a></td>
192
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/pfalcon"><img src="https://avatars3.githubusercontent.com/u/500451?v=4?s=100" width="100px;" alt="Paul Sokolovsky"/><br /><sub><b>Paul Sokolovsky</b></sub></a><br /><a href="#data-pfalcon" title="Data">🔣</a> <a href="#stubs-pfalcon" title="MicroPython stubs">🖍️</a></td>
193
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/pycopy"><img src="https://avatars0.githubusercontent.com/u/67273174?v=4?s=100" width="100px;" alt="pycopy"/><br /><sub><b>pycopy</b></sub></a><br /><a href="#data-pycopy" title="Data">🔣</a> <a href="#stubs-pycopy" title="MicroPython stubs">🖍️</a></td>
194
194
  </tr>
195
195
  <tr>
196
196
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/pycom"><img src="https://avatars2.githubusercontent.com/u/16415153?v=4?s=100" width="100px;" alt="Pycom"/><br /><sub><b>Pycom</b></sub></a><br /><a href="#infra-pycom" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
197
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/BradenM"><img src="https://avatars1.githubusercontent.com/u/5913808?v=4?s=100" width="100px;" alt="Braden Mars"/><br /><sub><b>Braden Mars</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3ABradenM" title="Bug reports">🐛</a> <a href="https://github.com/Josverl/micropython-stubber/commits?author=BradenM" title="Code">💻</a> <a href="#stubs-BradenM" title="MicroPython stubs">📚</a> <a href="#platform-BradenM" title="Packaging/porting to new platform">📦</a></td>
197
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/BradenM"><img src="https://avatars1.githubusercontent.com/u/5913808?v=4?s=100" width="100px;" alt="Braden Mars"/><br /><sub><b>Braden Mars</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3ABradenM" title="Bug reports">🐛</a> <a href="https://github.com/Josverl/micropython-stubber/commits?author=BradenM" title="Code">💻</a> <a href="#stubs-BradenM" title="MicroPython stubs">🖍️</a> <a href="#platform-BradenM" title="Packaging/porting to new platform">📦</a></td>
198
198
  <td align="center" valign="top" width="14.28%"><a href="https://binary.com.au/"><img src="https://avatars2.githubusercontent.com/u/175909?v=4?s=100" width="100px;" alt="James Manners"/><br /><sub><b>James Manners</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/commits?author=jmannau" title="Code">💻</a> <a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3Ajmannau" title="Bug reports">🐛</a></td>
199
- <td align="center" valign="top" width="14.28%"><a href="http://patrickwalters.us/"><img src="https://avatars0.githubusercontent.com/u/4002194?v=4?s=100" width="100px;" alt="Patrick"/><br /><sub><b>Patrick</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3Aaskpatrickw" title="Bug reports">🐛</a> <a href="https://github.com/Josverl/micropython-stubber/commits?author=askpatrickw" title="Code">💻</a> <a href="#stubs-askpatrickw" title="MicroPython stubs">📚</a></td>
199
+ <td align="center" valign="top" width="14.28%"><a href="http://patrickwalters.us/"><img src="https://avatars0.githubusercontent.com/u/4002194?v=4?s=100" width="100px;" alt="Patrick"/><br /><sub><b>Patrick</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3Aaskpatrickw" title="Bug reports">🐛</a> <a href="https://github.com/Josverl/micropython-stubber/commits?author=askpatrickw" title="Code">💻</a> <a href="#stubs-askpatrickw" title="MicroPython stubs">🖍️</a></td>
200
200
  <td align="center" valign="top" width="14.28%"><a href="https://opencollective.com/pythonseverywhere"><img src="https://avatars3.githubusercontent.com/u/16009100?v=4?s=100" width="100px;" alt="Paul m. p. P."/><br /><sub><b>Paul m. p. P.</b></sub></a><br /><a href="#ideas-pmp-p" title="Ideas, Planning, & Feedback">🤔</a> <a href="#research-pmp-p" title="Research">🔬</a></td>
201
201
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/edreamleo"><img src="https://avatars0.githubusercontent.com/u/592928?v=4?s=100" width="100px;" alt="Edward K. Ream"/><br /><sub><b>Edward K. Ream</b></sub></a><br /><a href="#plugin-edreamleo" title="Plugin/utility libraries">🔌</a></td>
202
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/dastultz"><img src="https://avatars3.githubusercontent.com/u/4334042?v=4?s=100" width="100px;" alt="Daryl Stultz"/><br /><sub><b>Daryl Stultz</b></sub></a><br /><a href="#stubs-dastultz" title="MicroPython stubs">📚</a></td>
202
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/dastultz"><img src="https://avatars3.githubusercontent.com/u/4334042?v=4?s=100" width="100px;" alt="Daryl Stultz"/><br /><sub><b>Daryl Stultz</b></sub></a><br /><a href="#stubs-dastultz" title="MicroPython stubs">🖍️</a></td>
203
203
  </tr>
204
204
  <tr>
205
205
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/cabletie"><img src="https://avatars1.githubusercontent.com/u/2356734?v=4?s=100" width="100px;" alt="Keeping things together"/><br /><sub><b>Keeping things together</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3Acabletie" title="Bug reports">🐛</a></td>
206
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/vbolshakov"><img src="https://avatars2.githubusercontent.com/u/2453324?v=4?s=100" width="100px;" alt="vbolshakov"/><br /><sub><b>vbolshakov</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3Avbolshakov" title="Bug reports">🐛</a> <a href="#stubs-vbolshakov" title="MicroPython stubs">📚</a></td>
206
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/vbolshakov"><img src="https://avatars2.githubusercontent.com/u/2453324?v=4?s=100" width="100px;" alt="vbolshakov"/><br /><sub><b>vbolshakov</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3Avbolshakov" title="Bug reports">🐛</a> <a href="#stubs-vbolshakov" title="MicroPython stubs">🖍️</a></td>
207
207
  <td align="center" valign="top" width="14.28%"><a href="https://lemariva.com/"><img src="https://avatars2.githubusercontent.com/u/15173329?v=4?s=100" width="100px;" alt="Mauro Riva"/><br /><sub><b>Mauro Riva</b></sub></a><br /><a href="#blog-lemariva" title="Blogposts">📝</a> <a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3Alemariva" title="Bug reports">🐛</a></td>
208
208
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/MathijsNL"><img src="https://avatars0.githubusercontent.com/u/1612886?v=4?s=100" width="100px;" alt="MathijsNL"/><br /><sub><b>MathijsNL</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3AMathijsNL" title="Bug reports">🐛</a></td>
209
- <td align="center" valign="top" width="14.28%"><a href="http://comingsoon.tm/"><img src="https://avatars0.githubusercontent.com/u/13251689?v=4?s=100" width="100px;" alt="Callum Jacob Hays"/><br /><sub><b>Callum Jacob Hays</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3ACallumJHays" title="Bug reports">🐛</a> <a href="#test-CallumJHays" title="Test">✔</a></td>
209
+ <td align="center" valign="top" width="14.28%"><a href="http://comingsoon.tm/"><img src="https://avatars0.githubusercontent.com/u/13251689?v=4?s=100" width="100px;" alt="Callum Jacob Hays"/><br /><sub><b>Callum Jacob Hays</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3ACallumJHays" title="Bug reports">🐛</a> <a href="#test-CallumJHays" title="Test">✅</a></td>
210
210
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/v923z"><img src="https://avatars0.githubusercontent.com/u/1310472?v=4?s=100" width="100px;" alt="Zoltán Vörös"/><br /><sub><b>Zoltán Vörös</b></sub></a><br /><a href="#data-v923z" title="Data">🔣</a></td>
211
211
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/vincent-l-j"><img src="https://avatars.githubusercontent.com/u/20021376?v=4?s=100" width="100px;" alt="vincent-l-j"/><br /><sub><b>vincent-l-j</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/commits?author=vincent-l-j" title="Documentation">📖</a></td>
212
212
  </tr>
213
213
  <tr>
214
214
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/yegorLitvinov"><img src="https://avatars.githubusercontent.com/u/20367310?v=4?s=100" width="100px;" alt="Egor Litvinov"/><br /><sub><b>Egor Litvinov</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3AyegorLitvinov" title="Bug reports">🐛</a></td>
215
215
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/samskiter"><img src="https://avatars.githubusercontent.com/u/1271643?v=4?s=100" width="100px;" alt="Sam Duke"/><br /><sub><b>Sam Duke</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/commits?author=samskiter" title="Code">💻</a></td>
216
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/shariltumin"><img src="https://avatars.githubusercontent.com/u/186120?v=4?s=100" width="100px;" alt="shariltumin"/><br /><sub><b>shariltumin</b></sub></a><br /><a href="#mpflash-shariltumin" title="mpflash">💥</a> <a href="#test-shariltumin" title="Test">✅</a></td>
217
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mattytrentini"><img src="https://avatars.githubusercontent.com/u/194201?v=4?s=100" width="100px;" alt="Matt Trentini"/><br /><sub><b>Matt Trentini</b></sub></a><br /><a href="#mpflash-mattytrentini" title="mpflash">💥</a> <a href="#test-mattytrentini" title="Test">✅</a></td>
218
+ <td align="center" valign="top" width="14.28%"><a href="http://scruss.com/blog/"><img src="https://avatars.githubusercontent.com/u/425706?v=4?s=100" width="100px;" alt="Stewart Russell"/><br /><sub><b>Stewart Russell</b></sub></a><br /><a href="#mpflash-scruss" title="mpflash">💥</a> <a href="#test-scruss" title="Test">✅</a></td>
219
+ <td align="center" valign="top" width="14.28%"><a href="https://www.gitlab.com/alelec"><img src="https://avatars.githubusercontent.com/u/3318786?v=4?s=100" width="100px;" alt="Andrew Leech"/><br /><sub><b>Andrew Leech</b></sub></a><br /><a href="#mpflash-andrewleech" title="mpflash">💥</a> <a href="#test-andrewleech" title="Test">✅</a></td>
220
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/wovo"><img src="https://avatars.githubusercontent.com/u/9039468?v=4?s=100" width="100px;" alt="Wouter van Ooijen"/><br /><sub><b>Wouter van Ooijen</b></sub></a><br /><a href="#mpflash-wovo" title="mpflash">💥</a> <a href="#test-wovo" title="Test">✅</a></td>
221
+ </tr>
222
+ <tr>
223
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/shaneapowell"><img src="https://avatars.githubusercontent.com/u/12113620?v=4?s=100" width="100px;" alt="Shane Powell"/><br /><sub><b>Shane Powell</b></sub></a><br /><a href="#mpflash-shaneapowell" title="mpflash">💥</a> <a href="#test-shaneapowell" title="Test">✅</a></td>
224
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/robert-hh"><img src="https://avatars.githubusercontent.com/u/12476868?v=4?s=100" width="100px;" alt="Robert Hammelrath"/><br /><sub><b>Robert Hammelrath</b></sub></a><br /><a href="#mpflash-robert-hh" title="mpflash">💥</a> <a href="#test-robert-hh" title="Test">✅</a></td>
225
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/beetlegigg"><img src="https://avatars.githubusercontent.com/u/34552737?v=4?s=100" width="100px;" alt="Bg"/><br /><sub><b>Bg</b></sub></a><br /><a href="#mpflash-beetlegigg" title="mpflash">💥</a> <a href="#test-beetlegigg" title="Test">✅</a></td>
226
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/rkompass"><img src="https://avatars.githubusercontent.com/u/90282516?v=4?s=100" width="100px;" alt="Raul Kompaß"/><br /><sub><b>Raul Kompaß</b></sub></a><br /><a href="#mpflash-rkompass" title="mpflash">💥</a> <a href="#test-rkompass" title="Test">✅</a></td>
227
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/garryp4"><img src="https://avatars.githubusercontent.com/u/96994876?v=4?s=100" width="100px;" alt="garryp4"/><br /><sub><b>garryp4</b></sub></a><br /><a href="#mpflash-garryp4" title="mpflash">💥</a> <a href="#test-garryp4" title="Test">✅</a></td>
228
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/shanepowell-ast"><img src="https://avatars.githubusercontent.com/u/102747617?v=4?s=100" width="100px;" alt="Shane Powell"/><br /><sub><b>Shane Powell</b></sub></a><br /><a href="#mpflash-shanepowell-ast" title="mpflash">💥</a> <a href="#test-shanepowell-ast" title="Test">✅</a></td>
229
+ <td align="center" valign="top" width="14.28%"><a href="https://andypiper.org/"><img src="https://avatars.githubusercontent.com/u/552452?v=4?s=100" width="100px;" alt="Andy Piper"/><br /><sub><b>Andy Piper</b></sub></a><br /><a href="#mpflash-andypiper" title="mpflash">💥</a> <a href="#test-andypiper" title="Test">✅</a></td>
230
+ </tr>
231
+ <tr>
232
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/DavesCodeMusings"><img src="https://avatars.githubusercontent.com/u/61114342?v=4?s=100" width="100px;" alt="David Horton"/><br /><sub><b>David Horton</b></sub></a><br /><a href="#mpflash-DavesCodeMusings" title="mpflash">💥</a> <a href="#test-DavesCodeMusings" title="Test">✅</a></td>
216
233
  </tr>
217
234
  </tbody>
218
235
  </table>
@@ -1,4 +1,4 @@
1
- mpflash/README.md,sha256=cajL2pq_Fjt7G7cOHp1_uDTf5jmOf6iQwOIvg2X5AJ0,14233
1
+ mpflash/README.md,sha256=A6nAq_2AQnyrJuEdxviVARW7KVf2Swx1QanltQCig9k,15824
2
2
  mpflash/basicgit.py,sha256=b6-gdK_DT0dmW3jEY9T0cjKR-TSEQOSl9U9sRcJh538,9257
3
3
  mpflash/libusb_flash.ipynb,sha256=sw5MVQvPmH-DJy9kOdXyO80BSjEPMEXf_GJsGk3usrc,6428
4
4
  mpflash/mpflash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -11,14 +11,14 @@ mpflash/mpflash/bootloader/detect.py,sha256=eXL_JPcowb8g0tpZmj9DQXYbpfZFoSrzq86l
11
11
  mpflash/mpflash/bootloader/manual.py,sha256=qGInguhYil4v8EkUxPFlxzvs3m__KraPAj3LAKbV1Ts,3069
12
12
  mpflash/mpflash/bootloader/micropython.py,sha256=0KDrfdZPtK7fLaxh-_4VxSO-u4IUj7qCyNVw9-LQ74M,517
13
13
  mpflash/mpflash/bootloader/touch1200.py,sha256=tL2H4ERh0-YSdR8_v6aK_pDRPMjMevHWUGq4-TTFcWo,1083
14
- mpflash/mpflash/cli_download.py,sha256=Ip5HViXCVAiG88XgJ3Lg_hhBGIF5DKFTNpL-_gQkdV0,3520
15
- mpflash/mpflash/cli_flash.py,sha256=KFuJRNgOZ62m70I_KqxqLfLE69b4bOCj69MOfIWdZRo,7136
14
+ mpflash/mpflash/cli_download.py,sha256=_9JGBZ0zXtHe3W61rZmsrKRLQQaF58yLsnHYarejyuM,3531
15
+ mpflash/mpflash/cli_flash.py,sha256=U64IAqwTVeYubXTUO6UXY9SiS_e5NsQwyPYxf1juX8s,7166
16
16
  mpflash/mpflash/cli_group.py,sha256=JFBtp4qhakJeQkuupEoObHeSFke8eWIU1HjnOZ-JfH0,2504
17
- mpflash/mpflash/cli_list.py,sha256=AvYq5_Z7l0Z4rkbr23TwFNzstuZsQgopFpdcrTLwUvs,1965
17
+ mpflash/mpflash/cli_list.py,sha256=51iLSehG9vWOvgeovJ8UYBjKkdnZStG1gAgYa0Cheog,2340
18
18
  mpflash/mpflash/cli_main.py,sha256=cElgh8Soq3U5TEAvrrD1sj7NDi-Eb-pei3QcMI0tlwE,1094
19
- mpflash/mpflash/common.py,sha256=h4pVuOpopn5oIy5NQdbggtOOktTL_c92cS_oUfPG4v8,5783
19
+ mpflash/mpflash/common.py,sha256=O-Zb8ASNmEFmBD5JVgVtS1RyGUXJI2o4WH99dr6RMRg,5884
20
20
  mpflash/mpflash/config.py,sha256=h2Oq7kSe40tOnglpo02wkpaPHxHNVqyB3uGxreIu57U,1029
21
- mpflash/mpflash/connected.py,sha256=p6RMix-tFr0pfT9TErh0LD1nm24ApTr3CqVGcrnDHk8,3024
21
+ mpflash/mpflash/connected.py,sha256=LtyNWloEtEOKvmnTCSSNOADT0KeVbtjHpDQwu4dot2o,3053
22
22
  mpflash/mpflash/download.py,sha256=mckR3pdMFQMYBKNmKBEJm9bJnTtQEnkuQ1vWYXcRRv8,13941
23
23
  mpflash/mpflash/downloaded.py,sha256=YPN0LDf8DSDvdB9gbVny61bvaJHIDbUs81XUwftTb1c,4808
24
24
  mpflash/mpflash/errors.py,sha256=6lUhVtECY3syV2bBGKzegGH4pPKXhevvhYQZd74sy6o,238
@@ -33,7 +33,7 @@ mpflash/mpflash/flash/uf2/macos.py,sha256=sncXJsc2FVfm9rvLDjcEu7ZIyrDeHmazHiNQTU
33
33
  mpflash/mpflash/flash/uf2/uf2disk.py,sha256=dQ8_U6e3qkFOyfXZDpWAsvEBIlMr-ZzLkzTDD8SADqM,286
34
34
  mpflash/mpflash/flash/uf2/windows.py,sha256=k9Yv71YswPnLx-Z5rf4KjhtVkEWr8SU8EXpeRv87h3A,1290
35
35
  mpflash/mpflash/flash/worklist.py,sha256=1uBvn-T35Oey04g6xxNxo5t68q5_tp18eZcRAamF0tY,5828
36
- mpflash/mpflash/list.py,sha256=O0tX4BvclmDMnnjMxCN9Zh8hdL6vnuvS9pLNxYLBya8,3112
36
+ mpflash/mpflash/list.py,sha256=Qt_3AUgA6LqejfGETgaa49fzqlI-m_OvsPosr6xMBMY,3464
37
37
  mpflash/mpflash/logger.py,sha256=BAVrSXMGZLfSDRFbtVBtvb7Rl0sTJxooCgBS5t-6bXo,1057
38
38
  mpflash/mpflash/mpboard_id/__init__.py,sha256=rQrPCN30GP-lfB2a2deA-lQ6iKvaKPK_xbtBoIavGsM,3716
39
39
  mpflash/mpflash/mpboard_id/add_boards.py,sha256=ehQn560S0XxAD3nsUMo4o_f6w8XTVAfO0GCnfTKa6-4,9379
@@ -41,7 +41,7 @@ mpflash/mpflash/mpboard_id/board.py,sha256=yQ8IDHQS09AelvTvmPhpmsL4oX3L7IXGqHork
41
41
  mpflash/mpflash/mpboard_id/board_id.py,sha256=wzGrxJu_ciOVT7n2861lhoKmPAjh1QjWnAdfcqNUUqc,2871
42
42
  mpflash/mpflash/mpboard_id/board_info.zip,sha256=F6YowS96DAqjten4ySe4MXgZwPtE-saZOUfY5OQkqKk,19759
43
43
  mpflash/mpflash/mpboard_id/store.py,sha256=lQQgHSxcaM_ZURcfZNSUv3-ZJjUKMC_xEOOSdpzVvBU,1493
44
- mpflash/mpflash/mpremoteboard/__init__.py,sha256=7uI-5HJgNsQz_EOCW3cRy2xtqXKt9kX51gDSx6HC0Kc,7522
44
+ mpflash/mpflash/mpremoteboard/__init__.py,sha256=oB0HwQOBhTtI4KR46_FvXZ_I6V5xuuxQ3MPeR6lVGVk,9240
45
45
  mpflash/mpflash/mpremoteboard/mpy_fw_info.py,sha256=BTupe4rZDTs3UHRqvs429XqWHCchSpwa05yACOiOt5U,4413
46
46
  mpflash/mpflash/mpremoteboard/runner.py,sha256=YUmo5Y0aOgMaww8CXSdNdgXD-wRKncILuMZ0OB_2qRU,4646
47
47
  mpflash/mpflash/vendor/click_aliases.py,sha256=K98inhtze8td1dw312kexJS7OX_0ojlptPQ5Z0SHxJY,3065
@@ -50,7 +50,7 @@ mpflash/mpflash/vendor/pydfu.py,sha256=1ObubGsPFrQ7T9M3JRlIPNIG2xx8uYffaEe0Y6bdf
50
50
  mpflash/mpflash/vendor/readme.md,sha256=ZVg7kuUYyXcWcrWkaSJ0CunwebCqu2SiS2sqDadwrT8,84
51
51
  mpflash/mpflash/versions.py,sha256=x5VrdVfWhZJfH7tZmwu2vVx-mPrK1iunYSpSce9VUXU,4492
52
52
  mpflash/poetry.lock,sha256=JBMsMo9yzGVD9SdckwbYHFDUnHfg-wHzUQYg6K93APg,118420
53
- mpflash/pyproject.toml,sha256=MCytD4FfOtlJX5MbeO2yU1GvnqqDQzpjy1jC4e-6nFM,1701
53
+ mpflash/pyproject.toml,sha256=r8RxT8MwjaEAfKHJj7THC6KmUqiTFKpjtJpP31MbMeY,1695
54
54
  mpflash/stm32_udev_rules.md,sha256=LJelvFFA8w9mBcEUDA02SZ4yzNKfUFL_NWLNUb6geWY,2622
55
55
  stubber/__init__.py,sha256=6KpMPO6c9ZEvZBPPZx5uuHwyJypuElaoMoTPmiTw7d0,46
56
56
  stubber/board/board_info.csv,sha256=3BBwHOtKfq_U0Xl8iWgNsN3akhbNMjb-TIeusDwtTXQ,8434
@@ -72,7 +72,7 @@ stubber/board/info.py,sha256=0FCQZ5J3KFDbYe0D5iOuwhmZUUBVASPU7-L6fA7ZRGc,5446
72
72
  stubber/board/main.py,sha256=l-5RCT-MMV93SkVwXh3guzx_kxFIJciSEgH1e4UrqT8,394
73
73
  stubber/board/modulelist.txt,sha256=LH3tz0w9MxZEAoYRl0JPmVSrYlbsrhkHd9lBP9z2h88,2653
74
74
  stubber/board/pyrightconfig.json,sha256=4jEkjN3pTfa8Ok5wxW0_W2mAOWIjKZPq5GRsk8oTBN4,1342
75
- stubber/bulk/mcu_stubber.py,sha256=_iv2G3QaiGxe7L7W40KahNGyOoKTGw_yyyejMHY6O7Q,15893
75
+ stubber/bulk/mcu_stubber.py,sha256=JtzXy48ercd6sLB2m0KsEw3lAPgBa_-EnuxOC1aqRug,15294
76
76
  stubber/codemod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
77
  stubber/codemod/_partials/__init__.py,sha256=SKt5UKja7SGdJ2PIQLp7-CURTQ-EimrswhW-ZTaRBEk,1382
78
78
  stubber/codemod/_partials/db_main.py,sha256=yvl1ydyiWJDhNmuH7P_5b85Crfrh2CAroA_i_8aCqIw,3856
@@ -81,79 +81,79 @@ stubber/codemod/_partials/modules_reader.py,sha256=kIYUxrCNtR7K1D0NVxePuNjhPoPkO
81
81
  stubber/codemod/add_comment.py,sha256=qGaa-sF3WyeLZwa5FPyT_Yp-ARFruKlBIIe0tayUiTk,1912
82
82
  stubber/codemod/add_method.py,sha256=AbHmfwjgTYWes3XrqPGk0-FjKxnGQuDLXbE5APhApF4,2544
83
83
  stubber/codemod/board.py,sha256=WVeUbVOV8MlDAyr5JLhOLdlmyFdlOpdRunjdzM_ULsM,11564
84
- stubber/codemod/enrich.py,sha256=9hb2__De3eNkF8WKg0CLwYs0lngIDJ0M3nmx2yyuGCU,5293
85
- stubber/codemod/merge_docstub.py,sha256=-F2P9UAD98Xt8ArsNqQJ-AM6bz9H9V9E3S2d17Jk5xg,12397
84
+ stubber/codemod/enrich.py,sha256=hvrRxonYD-5mtRF_4dJzVvoVio329_XxKuTUzDW5IfY,5291
85
+ stubber/codemod/merge_docstub.py,sha256=5cyPT-tA1QnpDqtp70SjXSZx7nJ626X3y2JRzhQLgyA,12395
86
86
  stubber/codemod/modify_list.py,sha256=_YTj3E44dwb7QaRqKaIq0IWg-BzH69AZRqTr3QMkFnY,2064
87
87
  stubber/codemod/utils.py,sha256=7I69E23wnlwABTbfszq6lZN7PNA7H5y4_KiSEu0fJ84,2403
88
88
  stubber/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
- stubber/commands/build_cmd.py,sha256=lZfbxPyduDkLDTCGWI_nBc_3lKwZjfWPvq4nVy2v944,2381
90
- stubber/commands/cli.py,sha256=PkwD9c3dkvhbmX5u1eGjSxE8y5Uph0Ke1_x9HTyjA-4,1836
91
- stubber/commands/clone_cmd.py,sha256=_bSv9R6zuYp7N8dpUUMupUMk4dpFEAhRzV8HoaApGHg,2689
92
- stubber/commands/config_cmd.py,sha256=CMFe0IngKPJYrb3kcZ6BObBOh4dW_0Wf7etAuJthB18,964
93
- stubber/commands/enrich_folder_cmd.py,sha256=ysdd_CLdPCiEja4xuFOAX_a89telX4Da7cvkrpXP4lY,1798
94
- stubber/commands/get_core_cmd.py,sha256=VwkZl9g81LvwWu4grrIb2Qo8M5-yXrDEX5mUWJ2uKFo,2240
95
- stubber/commands/get_docstubs_cmd.py,sha256=gGn0cUVledj4GjCqOIM8p2piiarddWknTlU5UqumC44,2935
96
- stubber/commands/get_frozen_cmd.py,sha256=dzIivxAmef2OlVrL914ZCQUs7m9L_rkzTeh1aMsrGmk,3857
97
- stubber/commands/get_mcu_cmd.py,sha256=7xhu8vfaa_nCyE-T-8OIedgpDTyae3KquxvLsL3Dx3E,2018
98
- stubber/commands/merge_cmd.py,sha256=kK8SGfB3SDiNkwyhzFQyyRvmw1q2Q7kswv-ml30ktCw,1605
99
- stubber/commands/publish_cmd.py,sha256=qfSyPXMSPE1qHe0mG9JW_90IK16E_jCF9a47TR1ywN0,2788
100
- stubber/commands/stub_cmd.py,sha256=PzvCppuhY2vRJJEzKbdc87WnrVEd3jPJ7AdtQeUSpn8,1171
89
+ stubber/commands/build_cmd.py,sha256=pvgXZ6QidZqMJ1dlaHC8w2SVXpIxXRYtc7Rz9oqwUsI,2379
90
+ stubber/commands/cli.py,sha256=wbQE_FOzezRx1Z2xdW3_8zID1OoEDZmFMjsE9EA_swA,1507
91
+ stubber/commands/clone_cmd.py,sha256=knY7AV0oDHdybfY9rA-mSAm8Q5YjqFZ1yV7YxDy0Wmk,2687
92
+ stubber/commands/config_cmd.py,sha256=uqIKHED8n1OyMRrMLmlfVGwMWkqN6wwRiTvpcLtS91M,962
93
+ stubber/commands/enrich_folder_cmd.py,sha256=m6Fu6WC3yzpSMQajVVRVFcJ_5Dci8lK0vCcci5XhVVk,1796
94
+ stubber/commands/get_core_cmd.py,sha256=u4dObHXQzuCMYilv6-w4py6AYIdl97wCM4ilVlKLx9U,2238
95
+ stubber/commands/get_docstubs_cmd.py,sha256=Lm-b5xevPOKhKXz0piJshBEubxNqpsKoA84z0llj_pk,2983
96
+ stubber/commands/get_frozen_cmd.py,sha256=4nU_-UMk3Bx1Adf959N__fkNVTRwptp_xhL3KsWGMB4,3906
97
+ stubber/commands/get_mcu_cmd.py,sha256=jRtHK6STwR_woH4Mu-Goy0xlg4xUEX_Rc6xwz9Q8mgA,2693
98
+ stubber/commands/merge_cmd.py,sha256=YYMQHxCgT701tLGaLPMx3dEuoHuL5UG4LGZ_wu6Z8wg,1603
99
+ stubber/commands/publish_cmd.py,sha256=bdUgVL5XEKni7BBIX749RgdHPPlyUjhs7hq2SUzU-18,2786
100
+ stubber/commands/stub_cmd.py,sha256=CEMASBL6H5jAHydkh_ibANvE02FEAtTF6Q-fig0xAqQ,1169
101
101
  stubber/commands/switch_cmd.py,sha256=qfJxshcKZggHsmGX-FBpLj06PAnIfHFU6hmCcFv-n34,1819
102
- stubber/commands/variants_cmd.py,sha256=nJKePmxNzyz82b8E-qcJGvzHGTdFxowxKNOz7KDe1k4,1234
102
+ stubber/commands/variants_cmd.py,sha256=4EMwkouIGhllQluVFoVJoD-sCtIr7peEogCxZev6kjU,1232
103
103
  stubber/cst_transformer.py,sha256=Er9kww4hgdeQ9dARMx8lB5PLIvPaKjtKJMe8BofKOzY,6301
104
104
  stubber/data/board_info.csv,sha256=3BBwHOtKfq_U0Xl8iWgNsN3akhbNMjb-TIeusDwtTXQ,8434
105
105
  stubber/data/board_info.json,sha256=LbyNo3qeij8bY_PRTxWoS5nFuDv6VyaRTKGiXC_-zRQ,57210
106
106
  stubber/data/micropython_tags.csv,sha256=95Y4zBefqi65QNvQy5bJXr7Fw8sVHmspeo2rnyLZECQ,1894
107
107
  stubber/data/requirements-core-micropython.txt,sha256=mRQ8Sj-PqYP74lVgpWWXSYkVJilSKVsjijoLARQNAwY,1279
108
108
  stubber/data/requirements-core-pycopy.txt,sha256=UKZooNXL7GbojDwmaiBTxHEQzzd-H8kI6l5eJCX-oyk,1012
109
- stubber/downloader.py,sha256=TwvdzSdep1jtCpjocqFJdi7c-I5bZSc3dhfDE5zX-ps,1170
109
+ stubber/downloader.py,sha256=J2MHge4AhAU98M93IH-2JEhzYVEfYSeIZGlxEaWdoTE,1169
110
110
  stubber/freeze/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
- stubber/freeze/common.py,sha256=gY0JSlXmwZqnoosb91M7W3wy3Ej6w48dTdJP8gKOg-U,2571
112
- stubber/freeze/freeze_folder.py,sha256=-n1w9jxzLjL1Sg-f9VHqHaxsBKDiPGHqBNgeY68pqq8,2422
113
- stubber/freeze/freeze_manifest_2.py,sha256=uogLPLb4bAah5ULkKzhWWadvu0CswGI3TygRqOb5XYc,3948
114
- stubber/freeze/get_frozen.py,sha256=7s0thtTccXmJw6QgfeZaQX-X-STqeBWx_97Nayrffuo,5157
115
- stubber/get_cpython.py,sha256=PEiDn2STECuKeRBSyWx7WuexUpSsyZ-76jQrBvWZY4U,3683
111
+ stubber/freeze/common.py,sha256=fbrHINPTtWQpdhwz-n9xiOGUVZL1pa5xFNAss5YnEpY,2599
112
+ stubber/freeze/freeze_folder.py,sha256=E3Kb7PparM77jW4xAOgrQ2cW-SFWiLDYaKih5viF5pA,2421
113
+ stubber/freeze/freeze_manifest_2.py,sha256=S1t9pGumQyrE-umhon2pndQGhxTw0smnJE5mTsphBz8,4015
114
+ stubber/freeze/get_frozen.py,sha256=4sIhYJvCz186n6JajpamepzPqJmtqD6rrjmF9CJXPmk,5201
115
+ stubber/get_cpython.py,sha256=g_HeVdzePLBIQkBSOm43v7nDhRxpR2ynhl62pRiasbY,3773
116
116
  stubber/get_lobo.py,sha256=I6bVpcGX7TaD4CI9UID8R9brOG-bBdeL07j1WsTXQH4,1717
117
- stubber/minify.py,sha256=3PRfq6J8etJLmh0b6WQJQazotUiF0AX0zxrS1ZPRJ44,14616
117
+ stubber/minify.py,sha256=lt8Fub09upOL1isZUBOQd14-jRaedPD8DHX_pheAQMs,14650
118
118
  stubber/publish/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
119
119
  stubber/publish/bump.py,sha256=M9ePaH-K1lbh-OVyPNAv6uxumDtHe3cOD2rXeAMWDqY,3176
120
- stubber/publish/candidates.py,sha256=JFR9V77DTwBMo_8Z-cZXHwiAA-751o54kBdVhWwAYpk,10328
120
+ stubber/publish/candidates.py,sha256=VqeE8WFOlwOULo0SFDyxOI9emP1bjQ7nqyfGxHMjgCY,10545
121
121
  stubber/publish/database.py,sha256=fH_-Zjd_JHTEaW2Yf8kEB6DQduKrmZl9R-67mNYE3HI,605
122
122
  stubber/publish/defaults.py,sha256=x9E03Im7d7aCAotRSg2vjTl0bbxG-X8Sa2pxc9n61EQ,1492
123
123
  stubber/publish/enums.py,sha256=BRzoSjLxYPLcEHySaFprY1ndLLdUetqRjYJmi5CW7xU,756
124
124
  stubber/publish/helpers.py,sha256=XRN9KZgPtIEgVW6NSmZunvTiT0UqP_rr63lM69hcqbs,687
125
- stubber/publish/merge_docstubs.py,sha256=nQJVloB_iHnsEiILCHIJrS2dgR1bP06LtiXYyaJi4Sc,5189
126
- stubber/publish/missing_class_methods.py,sha256=khb5JcOF6ImLunRZtFa8wMa9whnZkBsAiM1mdxTV9o8,1768
127
- stubber/publish/package.py,sha256=Oo7QM1aDmM2-RPPlKAwytePrno1s4O6J9_P0LRzQRkE,5122
128
- stubber/publish/pathnames.py,sha256=VwBDZZy8vsJkmcHvkRA_eaL2DSdPFRJAjvQ0KNM_288,1754
129
- stubber/publish/publish.py,sha256=DPpzb8Jo5wyvOvJawAEqnleE20bVMZTfYzKXS3DuRqY,3827
130
- stubber/publish/pypi.py,sha256=fuxpVFOvvCXXjdTgEB2vWqMjhwUDDQMiHJ6N98C_JdM,1202
131
- stubber/publish/stubpackage.py,sha256=ntM1FZn2n0zxFWNKzKABQGNPg47T_ZJngmgDrWRv9h0,43666
125
+ stubber/publish/merge_docstubs.py,sha256=fNOVOCjzgNwVnrssUeMQspV6YT5XJn2RIyuMEsCoY30,5217
126
+ stubber/publish/missing_class_methods.py,sha256=skS8DDI2m_C2oHQeMUCbPAuEl1HYrzONXgweAOvn-ls,1782
127
+ stubber/publish/package.py,sha256=b6G4HOdSXybuBLnOuKoXXbW9U0_j2-WM1dZ0SR6R8j0,5140
128
+ stubber/publish/pathnames.py,sha256=ZnQv31BoGZVu0FylwgM-GF-lu_G-MZDlIl9aRgYexG8,1752
129
+ stubber/publish/publish.py,sha256=o-sOOssjxhTUkn7SHSx2G4PyT63hUVEGS8Lf4nulxXo,3825
130
+ stubber/publish/pypi.py,sha256=Ml-rX25XX2lvNN4XhmFmPsPB-L7lMVqp1mLVQWksOe4,1230
131
+ stubber/publish/stubpackage.py,sha256=hIMVY4iMI48fJnpRFcl6alsgwn1RSeHsHU5NjKtHIMM,44060
132
132
  stubber/rst/__init__.py,sha256=8KUzMFNdDU9X6U1VMU1q5bGu_KGxB1XNcJhzNg7tF98,284
133
- stubber/rst/classsort.py,sha256=jofWVYPQQUzUhN-t2qFJT6381DH46Pjy0fTp5ek5JJU,2578
134
- stubber/rst/lookup.py,sha256=QIX0_xbXydfXgD-7ctni3QJo2hFN7BzsGz-5Bq1owKQ,19656
133
+ stubber/rst/classsort.py,sha256=Ap9GsrDz34UGZSqWvhr7LWSvtWL0vgB0owMbfcJLKqI,2577
134
+ stubber/rst/lookup.py,sha256=UukjRxy1posEunJrEeVczbkIWQMpmz0Kiw0b_AgKh5Q,19750
135
135
  stubber/rst/output_dict.py,sha256=tH_32ZTNj7BndvY2YcZCa1uB-lLeyJUeltoEkTT_Np8,14354
136
- stubber/rst/reader.py,sha256=LDeH1dTWsg6hPwtXTyPX1sbRkvKqG1dGJKM2TDkBEh4,32758
137
- stubber/rst/report_return.py,sha256=r6WeysP2VygcBM-nk1Jo_iItcxsl6sWgWg6myHTjBFY,2745
138
- stubber/rst/rst_utils.py,sha256=8wfodql00CnO57x8VeNh1yoz7yx_ONa330kWuR1JFoE,17277
136
+ stubber/rst/reader.py,sha256=HFPem4oxfkWh39Rt4GOGvGUzh1yfM_ENAEm1QoaVE_4,32795
137
+ stubber/rst/report_return.py,sha256=M_7c0gCU9uq1UTplDOYuKHTxDi9uGwBB5qDfidGUdvU,2947
138
+ stubber/rst/rst_utils.py,sha256=K4DAnShcIGXaLBr7oqu5KNSaJL6evElo26bxQQYLrLY,17276
139
139
  stubber/stubber.py,sha256=sScRIAq7vvUZUS9Mzh4Ne6ny0qpsReGNqo0u8vtZXEc,1596
140
- stubber/stubs_from_docs.py,sha256=jcNdbNFQ6qZiVOVzdD8nfBNTubD-jviL_KJDPqOfTxo,2743
140
+ stubber/stubs_from_docs.py,sha256=ugKYknJnRpvtAWQBl2TqwIxCD-BxN8bEZmMu37axJeg,2741
141
141
  stubber/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
- stubber/tools/manifestfile.py,sha256=1P2_MUPZ6PIoHR71pLFKDycknY6N9BG8eUScV-JsUXc,25082
142
+ stubber/tools/manifestfile.py,sha256=12DBJlmiybPv7qo9-X-eT7N53xuP3csUOzsE-Fe5oto,25097
143
143
  stubber/tools/readme.md,sha256=NJ_g0oeeExhiRs2lMQVekccnR_c2lGLt-snu1RnUIx0,278
144
- stubber/update_fallback.py,sha256=r7pVfUxVkJWVBFDfN_u5XaFJ5jg7FpFSHCFGor1UXU8,4798
145
- stubber/update_module_list.py,sha256=smeu-xSeFgtr1piJNR1JqLzHd3HZ1K5_iaKNRea6dzk,3886
144
+ stubber/update_fallback.py,sha256=DVlym7rRWJHs9rC8niiAyeDi5C_Id9BkEkXjS14sSvI,4796
145
+ stubber/update_module_list.py,sha256=O9huvx6-4VEJ45iBAviQrSlqaOuWia410j-jwUGfDdE,3884
146
146
  stubber/utils/__init__.py,sha256=FzTO7K7X4pBCRxbZjl15JyRNusidLX7uk_DgYMcIFzM,228
147
- stubber/utils/config.py,sha256=AEKRevg9BHSbXz_5RGZR8bpuwcD3KlPuBIqmGltXu6E,4704
147
+ stubber/utils/config.py,sha256=H0D0ntWwJfBw7kunX9gkRoGL5cXhMdQLwF0WgHwp7ag,4794
148
148
  stubber/utils/makeversionhdr.py,sha256=65VXDavYQU5GnR8OfbFAXAq6RCAtLdbEM-a7a3UiLxc,1899
149
149
  stubber/utils/manifest.py,sha256=ROGiUEZsvMZ-8c8uUYMU_Uh8_HddY3u96vkUH2o8BH0,3149
150
- stubber/utils/post.py,sha256=qoN-XiNBNMExUdHeXbkjlsvllkG2jKB-ptuApe4kjpc,2758
151
- stubber/utils/repos.py,sha256=qquw-y5V14xqTl7Ivuh8NB5PBy1ZpaScprQFU7zAc7w,5674
152
- stubber/utils/stubmaker.py,sha256=1eMNpZZ-BWBtxLwBO-kz4CywjUe0JexN6QSyAVNICxM,5099
153
- stubber/utils/typed_config_toml.py,sha256=6nlFgHwdCcK_0MJICsstCFgm9M6TblvF-l0_2cpw_cY,2552
154
- stubber/variants.py,sha256=iS3sv8cT7czdI9x4KqzTCPT6hX1CKQ-bIlWnDG6gyoU,3688
155
- micropython_stubber-1.23.1.dist-info/LICENSE,sha256=2zsOXlYgl9W7_XGXcncAXIYfvSVlyNcVBycC6hhlKhA,1542
156
- micropython_stubber-1.23.1.dist-info/METADATA,sha256=5QlsVnjIFbHYFeJ7mWWejAFeON8jPpjoeNbodwomzKo,19197
157
- micropython_stubber-1.23.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
158
- micropython_stubber-1.23.1.dist-info/entry_points.txt,sha256=NQi_M36fgq5k6giSuASas3LrpF6CVdkzfvJC0ja73_g,55
159
- micropython_stubber-1.23.1.dist-info/RECORD,,
150
+ stubber/utils/post.py,sha256=ykux4VF_DAVe0mgSf9wXdUs78DRPr-7WH9QMenhtfpE,2757
151
+ stubber/utils/repos.py,sha256=4UqrjuthC548sRmrps-43y8IqHcjLABVRp-f-vTNPoo,5740
152
+ stubber/utils/stubmaker.py,sha256=FqD5pmXNk_xyjeRc2S3ORlv8ZPrcGwiXFL14r3DobSU,5097
153
+ stubber/utils/typed_config_toml.py,sha256=-8VtE4UF1U7RX6Gc12lgHMaKPt5PTKddRjqiuVE8xt4,2573
154
+ stubber/variants.py,sha256=6k8CC7ZyfNkMIsEcBtYeBUqpBrQ5OVIbu1lqqySaxOk,3686
155
+ micropython_stubber-1.23.1.post1.dist-info/LICENSE,sha256=2zsOXlYgl9W7_XGXcncAXIYfvSVlyNcVBycC6hhlKhA,1542
156
+ micropython_stubber-1.23.1.post1.dist-info/METADATA,sha256=U8ll8ZRmjm2N69Lxis4YD6GGmtH6miIwgqq6Jil_ZWM,23896
157
+ micropython_stubber-1.23.1.post1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
158
+ micropython_stubber-1.23.1.post1.dist-info/entry_points.txt,sha256=JoR8NWh8t6pbDyn0WOMCIfRfDQAOGxqbOgJWuxv3Cxw,116
159
+ micropython_stubber-1.23.1.post1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ [console_scripts]
2
+ mpflash=mpflash.cli_main:mpflash
3
+ mpremote=mpremote.main:main
4
+ stubber=stubber.stubber:stubber_cli
5
+
mpflash/README.md CHANGED
@@ -36,6 +36,32 @@ You can use mpflash to perform various operations on your MicroPython boards. He
36
36
  | `mpflash download` | Download the MicroPython firmware(s) for the connected board(s) |
37
37
  | `mpflash flash` | Flash the latest stable firmware to the connected board(s) |
38
38
 
39
+ ## selecting or ignoring specific serial ports
40
+
41
+ You can use the `--serial` option to select a specific serial port to flash, or the `--ignore` option to ignore a specific serial port.
42
+ both options can be specified multiple times
43
+ Both can be globs (e.g. COM*) or exact port names (e.g. COM1)
44
+ in addition there is a --bluetooth option to simplify ignoring bluetooth ports
45
+
46
+ ```
47
+ --serial,--serial-port -s SERIALPORT Serial port(s) (or globs) to list. [default: *] > > --ignore -i SERIALPORT Serial port(s) (or globs) to ignore. Defaults to MPFLASH_IGNORE. │
48
+ --bluetooth/--no-bluetooth -b/-nb Include bluetooth ports in the list [default: no-bluetooth]
49
+ ```
50
+
51
+ ## Distinguishing similar boards
52
+ The `mpflash list` command will list all connected boards, but sometimes you have multiple boards of the same type connected.
53
+ To help you identify the boards, you can add a board_info.toml file to the top/default folder for the board.
54
+ This file can contain a description of the board, which will be shown in the list and json output.
55
+ ```toml
56
+ description = "Blue Norwegian actuator"
57
+ ```
58
+
59
+ If you want the board to be ignored by mpflash, you can add the following to the board_info.toml file:
60
+ ```toml
61
+ [mpflash]
62
+ ignore = true
63
+ ```
64
+
39
65
 
40
66
  ## Linux permissions to access usb devices
41
67
  In order to flash the firmware to the board, you need to have the correct permissions to access the USB devices.
@@ -58,7 +58,7 @@ from .download import download
58
58
  default=["*"],
59
59
  show_default=True,
60
60
  multiple=True,
61
- help="Which serial port(s) to flash",
61
+ help="Which serial port(s) (or globs) to flash",
62
62
  metavar="SERIALPORT",
63
63
  )
64
64
  @click.option(
@@ -4,22 +4,19 @@ from typing import List
4
4
  import rich_click as click
5
5
  from loguru import logger as log
6
6
 
7
- from mpflash.common import BootloaderMethod
7
+ from mpflash.ask_input import ask_missing_params
8
+ from mpflash.cli_download import connected_ports_boards
9
+ from mpflash.cli_group import cli
10
+ from mpflash.cli_list import show_mcus
11
+ from mpflash.common import BootloaderMethod, FlashParams, Params
12
+ from mpflash.config import config
8
13
  from mpflash.errors import MPFlashError
14
+ from mpflash.flash import flash_list
15
+ from mpflash.flash.worklist import WorkList, full_auto_worklist, manual_worklist, single_auto_worklist
9
16
  from mpflash.mpboard_id import find_known_board
10
17
  from mpflash.mpremoteboard import MPRemoteBoard
11
18
  from mpflash.versions import clean_version
12
19
 
13
- from .ask_input import ask_missing_params
14
- from .cli_download import connected_ports_boards
15
- from .cli_group import cli
16
- from .cli_list import show_mcus
17
- from .common import FlashParams
18
- from .config import config
19
- from .flash import flash_list
20
- from .flash.worklist import (WorkList, full_auto_worklist, manual_worklist,
21
- single_auto_worklist)
22
-
23
20
  # #########################################################################################################
24
21
  # CLI
25
22
  # #########################################################################################################
@@ -56,7 +53,7 @@ from .flash.worklist import (WorkList, full_auto_worklist, manual_worklist,
56
53
  default=["*"],
57
54
  multiple=True,
58
55
  show_default=True,
59
- help="Which serial port(s) to flash",
56
+ help="Which serial port(s) (or globs) to flash",
60
57
  metavar="SERIALPORT",
61
58
  )
62
59
  @click.option(
@@ -122,7 +119,7 @@ def cli_flash_board(**kwargs) -> int:
122
119
  params = FlashParams(**kwargs)
123
120
  params.versions = list(params.versions)
124
121
  params.ports = list(params.ports)
125
- params.boards = list(params.boards)
122
+ params.boards = list(params.boards)
126
123
  params.serial = list(params.serial)
127
124
  params.ignore = list(params.ignore)
128
125
  params.bootloader = BootloaderMethod(params.bootloader)
@@ -203,7 +200,7 @@ def cli_flash_board(**kwargs) -> int:
203
200
  return 1
204
201
 
205
202
 
206
- def resolve_board_ids(params):
203
+ def resolve_board_ids(params: Params):
207
204
  """Resolve board descriptions to board_id, and remove empty strings from list of boards"""
208
205
  for board_id in params.boards:
209
206
  if board_id == "":
@@ -32,14 +32,14 @@ from .logger import make_quiet
32
32
  default=["*"],
33
33
  multiple=True,
34
34
  show_default=True,
35
- help="Which serial port(s) to list. ",
35
+ help="Serial port(s) (or globs) to list. ",
36
36
  metavar="SERIALPORT",
37
37
  )
38
38
  @click.option(
39
39
  "--ignore",
40
40
  "-i",
41
41
  is_eager=True,
42
- help="Serial port(s) to ignore. Defaults to MPFLASH_IGNORE.",
42
+ help="Serial port(s) (or globs) to ignore. Defaults to MPFLASH_IGNORE.",
43
43
  multiple=True,
44
44
  default=[],
45
45
  envvar="MPFLASH_IGNORE",
@@ -73,7 +73,13 @@ def cli_list_mcus(serial: List[str], ignore: List[str], bluetooth: bool, as_json
73
73
  # TODO? Ask user to select a serialport if [?] is given ?
74
74
 
75
75
  conn_mcus = list_mcus(ignore=ignore, include=serial, bluetooth=bluetooth)
76
+ # ignore boards that have the [micropython-stubber] ignore flag set
77
+ conn_mcus = [item for item in conn_mcus if not (item.toml.get("mpflash", {}).get("ignore", False))]
76
78
  if as_json:
79
+ # remove the path and firmware attibutes from the json output as they are always empty
80
+ for mcu in conn_mcus:
81
+ del mcu.path
82
+ del mcu.firmware
77
83
  print(json.dumps([mcu.__dict__ for mcu in conn_mcus], indent=4))
78
84
  progress = False
79
85
  if progress:
mpflash/mpflash/common.py CHANGED
@@ -122,7 +122,8 @@ def filtered_comports(
122
122
  bluetooth: bool = False,
123
123
  ) -> List[ListPortInfo]: # sourcery skip: assign-if-exp
124
124
  """
125
- Get a list of filtered comports.
125
+ Get a list of filtered comports using the include and ignore lists.
126
+ both can be globs (e.g. COM*) or exact port names (e.g. COM1)
126
127
  """
127
128
  if not ignore:
128
129
  ignore = []
@@ -4,10 +4,9 @@ from rich import print
4
4
  from rich.progress import BarColumn, Progress, SpinnerColumn, TextColumn, TimeElapsedColumn
5
5
  from rich.table import Column
6
6
 
7
+ from mpflash.common import filtered_comports
7
8
  from mpflash.mpremoteboard import MPRemoteBoard
8
9
 
9
- from .common import filtered_comports
10
-
11
10
 
12
11
  def connected_ports_boards(*, include: List[str], ignore: List[str]) -> Tuple[List[str], List[str], List[MPRemoteBoard]]:
13
12
  """
@@ -32,7 +31,7 @@ rp_text = TextColumn("{task.description} {task.fields[device]}", table_column=Co
32
31
  rp_bar = BarColumn(bar_width=None, table_column=Column())
33
32
 
34
33
 
35
- def list_mcus(*, ignore: List[str], include: List[str], bluetooth: bool = False):
34
+ def list_mcus(*, ignore: List[str], include: List[str], bluetooth: bool = False) -> List[MPRemoteBoard]:
36
35
  """
37
36
  Retrieves information about connected microcontroller boards.
38
37
 
mpflash/mpflash/list.py CHANGED
@@ -38,11 +38,25 @@ def mcu_table(
38
38
  - Serial Yes Yes
39
39
  - Family abbrv. Yes
40
40
  - Port - yes
41
- - Board Yes Yes BOARD_ID and Description
41
+ - Board Yes Yes BOARD_ID and Description, and the description from board_info.toml
42
42
  - CPU - Yes
43
43
  - Version Yes Yes
44
44
  - Build * * only if any of the mcus have a build
45
+ - Location - - only if --usb is given
45
46
  """
47
+ # refresh if requested
48
+ if refresh:
49
+ for mcu in track(
50
+ conn_mcus,
51
+ description="Updating board info",
52
+ transient=True,
53
+ show_speed=False,
54
+ refresh_per_second=1,
55
+ ):
56
+ try:
57
+ mcu.get_mcu_info()
58
+ except ConnectionError:
59
+ continue
46
60
  table = Table(
47
61
  title=title,
48
62
  title_style="magenta",
@@ -50,6 +64,7 @@ def mcu_table(
50
64
  collapse_padding=True,
51
65
  padding=(0, 0),
52
66
  )
67
+ # Build the table
53
68
  # check if the terminal is wide enough to show all columns or if we need to collapse some
54
69
  is_wide = console.width > 99
55
70
  needs_build = any(mcu.build for mcu in conn_mcus)
@@ -67,19 +82,11 @@ def mcu_table(
67
82
  table.add_column("Build" if is_wide else "Bld", justify="right")
68
83
  if config.usb:
69
84
  table.add_column("Location", overflow="fold", max_width=40)
70
- for mcu in track(
71
- conn_mcus,
72
- description="Updating board info",
73
- transient=True,
74
- show_speed=False,
75
- refresh_per_second=1,
76
- ):
77
- if refresh:
78
- try:
79
- mcu.get_mcu_info()
80
- except ConnectionError:
81
- continue
85
+ # fill the table with the data
86
+ for mcu in conn_mcus:
82
87
  description = f"[italic bright_cyan]{mcu.description}" if mcu.description else ""
88
+ if "description" in mcu.toml:
89
+ description += f"\n[italic bright_green]{mcu.toml['description']}"
83
90
  row = [
84
91
  mcu.serialport.replace("/dev/", ""),
85
92
  abbrv_family(mcu.family, is_wide),