micropython-stubber 1.23.0__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.
- {micropython_stubber-1.23.0.dist-info → micropython_stubber-1.23.1.post1.dist-info}/METADATA +32 -14
- micropython_stubber-1.23.1.post1.dist-info/RECORD +159 -0
- micropython_stubber-1.23.1.post1.dist-info/entry_points.txt +5 -0
- mpflash/README.md +40 -4
- mpflash/mpflash/add_firmware.py +1 -1
- mpflash/mpflash/ask_input.py +1 -1
- {stubber → mpflash/mpflash}/basicgit.py +3 -13
- mpflash/mpflash/bootloader/__init__.py +2 -37
- mpflash/mpflash/bootloader/activate.py +60 -0
- mpflash/mpflash/bootloader/detect.py +82 -0
- mpflash/mpflash/bootloader/manual.py +10 -11
- mpflash/mpflash/bootloader/micropython.py +2 -0
- mpflash/mpflash/bootloader/touch1200.py +13 -22
- mpflash/mpflash/cli_download.py +2 -2
- mpflash/mpflash/cli_flash.py +13 -16
- mpflash/mpflash/cli_group.py +18 -5
- mpflash/mpflash/cli_list.py +8 -2
- mpflash/mpflash/cli_main.py +3 -5
- mpflash/mpflash/common.py +3 -1
- mpflash/mpflash/config.py +2 -1
- mpflash/mpflash/connected.py +11 -8
- mpflash/mpflash/download.py +9 -5
- mpflash/mpflash/downloaded.py +1 -1
- mpflash/mpflash/{flash.py → flash/__init__.py} +3 -3
- mpflash/mpflash/{flash_esp.py → flash/esp.py} +1 -1
- mpflash/mpflash/{flash_stm32.py → flash/stm32.py} +4 -3
- mpflash/mpflash/{flash_stm32_dfu.py → flash/stm32_dfu.py} +1 -1
- mpflash/mpflash/{flash_uf2.py → flash/uf2/__init__.py} +19 -20
- mpflash/mpflash/{flash_uf2_linux.py → flash/uf2/linux.py} +12 -11
- mpflash/mpflash/{flash_uf2_macos.py → flash/uf2/macos.py} +11 -6
- mpflash/mpflash/{flash_uf2_windows.py → flash/uf2/windows.py} +11 -6
- mpflash/mpflash/{worklist.py → flash/worklist.py} +8 -9
- mpflash/mpflash/list.py +26 -9
- mpflash/mpflash/mpboard_id/__init__.py +1 -1
- mpflash/mpflash/mpboard_id/add_boards.py +3 -7
- mpflash/mpflash/mpboard_id/board_id.py +1 -1
- mpflash/mpflash/mpremoteboard/__init__.py +57 -17
- {stubber/utils → mpflash/mpflash}/versions.py +31 -24
- mpflash/poetry.lock +16 -5
- mpflash/pyproject.toml +4 -3
- stubber/__init__.py +1 -1
- stubber/board/createstubs.py +4 -4
- stubber/board/createstubs_db.py +5 -5
- stubber/board/createstubs_db_min.py +1 -1
- stubber/board/createstubs_db_mpy.mpy +0 -0
- stubber/board/createstubs_mem.py +5 -5
- stubber/board/createstubs_mem_min.py +1 -1
- stubber/board/createstubs_mem_mpy.mpy +0 -0
- stubber/board/createstubs_min.py +1 -1
- stubber/board/createstubs_mpy.mpy +0 -0
- stubber/bulk/mcu_stubber.py +28 -45
- stubber/codemod/enrich.py +1 -1
- stubber/codemod/merge_docstub.py +1 -1
- stubber/codemod/utils.py +2 -3
- stubber/commands/build_cmd.py +1 -1
- stubber/commands/cli.py +6 -12
- stubber/commands/clone_cmd.py +3 -2
- stubber/commands/config_cmd.py +1 -1
- stubber/commands/enrich_folder_cmd.py +1 -1
- stubber/commands/get_core_cmd.py +1 -1
- stubber/commands/get_docstubs_cmd.py +6 -3
- stubber/commands/get_frozen_cmd.py +6 -3
- stubber/commands/get_mcu_cmd.py +53 -12
- stubber/commands/merge_cmd.py +2 -3
- stubber/commands/publish_cmd.py +2 -3
- stubber/commands/stub_cmd.py +1 -1
- stubber/commands/switch_cmd.py +2 -2
- stubber/commands/variants_cmd.py +2 -3
- stubber/downloader.py +2 -1
- stubber/freeze/common.py +7 -3
- stubber/freeze/freeze_folder.py +2 -2
- stubber/freeze/freeze_manifest_2.py +19 -6
- stubber/freeze/get_frozen.py +8 -4
- stubber/get_cpython.py +15 -4
- stubber/minify.py +11 -6
- stubber/publish/candidates.py +20 -7
- stubber/publish/defaults.py +4 -9
- stubber/publish/merge_docstubs.py +4 -2
- stubber/publish/missing_class_methods.py +5 -3
- stubber/publish/package.py +8 -4
- stubber/publish/pathnames.py +2 -2
- stubber/publish/publish.py +2 -2
- stubber/publish/pypi.py +6 -2
- stubber/publish/stubpackage.py +39 -17
- stubber/rst/classsort.py +2 -1
- stubber/rst/lookup.py +1 -0
- stubber/rst/reader.py +12 -20
- stubber/rst/report_return.py +12 -4
- stubber/rst/rst_utils.py +2 -1
- stubber/stubs_from_docs.py +1 -1
- stubber/tools/manifestfile.py +1 -2
- stubber/update_fallback.py +2 -2
- stubber/update_module_list.py +1 -1
- stubber/utils/__init__.py +2 -1
- stubber/utils/config.py +18 -8
- stubber/utils/manifest.py +2 -4
- stubber/utils/post.py +2 -1
- stubber/utils/repos.py +4 -5
- stubber/utils/stubmaker.py +1 -1
- stubber/utils/typed_config_toml.py +5 -2
- stubber/variants.py +1 -1
- micropython_stubber-1.23.0.dist-info/RECORD +0 -159
- micropython_stubber-1.23.0.dist-info/entry_points.txt +0 -3
- mpflash/mpflash/flash_stm32_cube.py +0 -111
- mpflash/mpflash/vendor/versions.py +0 -119
- {micropython_stubber-1.23.0.dist-info → micropython_stubber-1.23.1.post1.dist-info}/LICENSE +0 -0
- {micropython_stubber-1.23.0.dist-info → micropython_stubber-1.23.1.post1.dist-info}/WHEEL +0 -0
- /mpflash/{mpflash/vendor/basicgit.py → basicgit.py} +0 -0
- /mpflash/mpflash/{flash_uf2_boardid.py → flash/uf2/boardid.py} +0 -0
- /mpflash/mpflash/{uf2disk.py → flash/uf2/uf2disk.py} +0 -0
{micropython_stubber-1.23.0.dist-info → micropython_stubber-1.23.1.post1.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: micropython-stubber
|
3
|
-
Version: 1.23.
|
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.
|
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)
|
@@ -38,13 +38,14 @@ Requires-Dist: pyright (>=1.1.341,<2.0.0)
|
|
38
38
|
Requires-Dist: pyserial (>=3.5,<4.0)
|
39
39
|
Requires-Dist: pysondb-v2 (>=2.1.0,<3.0.0)
|
40
40
|
Requires-Dist: python-minifier (>=2.7.0,<3.0.0) ; python_version < "3.12"
|
41
|
-
Requires-Dist: requests (>=2.
|
41
|
+
Requires-Dist: requests (>=2.32.3,<3.0.0)
|
42
42
|
Requires-Dist: rich-click (>=1.8.3,<2.0.0)
|
43
43
|
Requires-Dist: tabulate (>=0.9.0,<0.10.0)
|
44
44
|
Requires-Dist: tenacity (>=8.2.2,<9.0.0)
|
45
45
|
Requires-Dist: tomli (>=2.0.1,<3.0.0) ; python_version < "3.11"
|
46
46
|
Requires-Dist: tomli-w (>=1.0.0,<2.0.0)
|
47
47
|
Requires-Dist: typed-config (>=1.3.0,<2.0.0)
|
48
|
+
Requires-Dist: urllib3 (>=2.2.2,<3.0.0)
|
48
49
|
Project-URL: Documentation, https://micropython-stubber.readthedocs.io/
|
49
50
|
Project-URL: Repository, https://github.com/Josverl/micropython-stubber
|
50
51
|
Description-Content-Type: text/markdown
|
@@ -171,7 +172,7 @@ for more info see [**Renaming a branch**](https://docs.github.com/en/repositorie
|
|
171
172
|
|
172
173
|
## Licensing
|
173
174
|
|
174
|
-
MicroPython-Stubber
|
175
|
+
Both `MicroPython-Stubber` and `mpflash` are licensed under the MIT license, and all contributions should follow this [LICENSE](LICENSE).
|
175
176
|
|
176
177
|
|
177
178
|
# Contributions
|
@@ -183,35 +184,52 @@ MicroPython-Stubber is licensed under the MIT license, and all contributions sho
|
|
183
184
|
<table>
|
184
185
|
<tbody>
|
185
186
|
<tr>
|
186
|
-
<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"
|
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>
|
187
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>
|
188
|
-
<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"
|
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
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>
|
190
|
-
<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"
|
191
|
-
<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"
|
192
|
-
<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"
|
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>
|
193
194
|
</tr>
|
194
195
|
<tr>
|
195
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>
|
196
|
-
<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"
|
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
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>
|
198
|
-
<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"
|
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
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>
|
200
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>
|
201
|
-
<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"
|
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
203
|
</tr>
|
203
204
|
<tr>
|
204
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>
|
205
|
-
<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"
|
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
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>
|
207
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>
|
208
|
-
<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"
|
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
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>
|
210
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>
|
211
212
|
</tr>
|
212
213
|
<tr>
|
213
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>
|
214
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>
|
215
233
|
</tr>
|
216
234
|
</tbody>
|
217
235
|
</table>
|
@@ -0,0 +1,159 @@
|
|
1
|
+
mpflash/README.md,sha256=A6nAq_2AQnyrJuEdxviVARW7KVf2Swx1QanltQCig9k,15824
|
2
|
+
mpflash/basicgit.py,sha256=b6-gdK_DT0dmW3jEY9T0cjKR-TSEQOSl9U9sRcJh538,9257
|
3
|
+
mpflash/libusb_flash.ipynb,sha256=sw5MVQvPmH-DJy9kOdXyO80BSjEPMEXf_GJsGk3usrc,6428
|
4
|
+
mpflash/mpflash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
|
+
mpflash/mpflash/add_firmware.py,sha256=h-Nu9AnXO6ug2CurmgLoUVG1gNy6CA1NjwQl1nUoMZ4,3330
|
6
|
+
mpflash/mpflash/ask_input.py,sha256=EsPPlPS_wLC8j9f4o68yKIcqex0dV5tRH7k3rP3spG0,8710
|
7
|
+
mpflash/mpflash/basicgit.py,sha256=r_bI2U6QYFiS8ypUd6KtrjyZjK4JCANyK80L6wEzFoU,9213
|
8
|
+
mpflash/mpflash/bootloader/__init__.py,sha256=cRIxVRtUc4jZAgtFggRNhEn0BW-9WFpzm5xRy5B4B2U,105
|
9
|
+
mpflash/mpflash/bootloader/activate.py,sha256=sN2YuIuFGjLBd_PdG6P3N1yLuLyjnsVWDksrTMhzr_M,2301
|
10
|
+
mpflash/mpflash/bootloader/detect.py,sha256=eXL_JPcowb8g0tpZmj9DQXYbpfZFoSrzq86lScKhkT4,2608
|
11
|
+
mpflash/mpflash/bootloader/manual.py,sha256=qGInguhYil4v8EkUxPFlxzvs3m__KraPAj3LAKbV1Ts,3069
|
12
|
+
mpflash/mpflash/bootloader/micropython.py,sha256=0KDrfdZPtK7fLaxh-_4VxSO-u4IUj7qCyNVw9-LQ74M,517
|
13
|
+
mpflash/mpflash/bootloader/touch1200.py,sha256=tL2H4ERh0-YSdR8_v6aK_pDRPMjMevHWUGq4-TTFcWo,1083
|
14
|
+
mpflash/mpflash/cli_download.py,sha256=_9JGBZ0zXtHe3W61rZmsrKRLQQaF58yLsnHYarejyuM,3531
|
15
|
+
mpflash/mpflash/cli_flash.py,sha256=U64IAqwTVeYubXTUO6UXY9SiS_e5NsQwyPYxf1juX8s,7166
|
16
|
+
mpflash/mpflash/cli_group.py,sha256=JFBtp4qhakJeQkuupEoObHeSFke8eWIU1HjnOZ-JfH0,2504
|
17
|
+
mpflash/mpflash/cli_list.py,sha256=51iLSehG9vWOvgeovJ8UYBjKkdnZStG1gAgYa0Cheog,2340
|
18
|
+
mpflash/mpflash/cli_main.py,sha256=cElgh8Soq3U5TEAvrrD1sj7NDi-Eb-pei3QcMI0tlwE,1094
|
19
|
+
mpflash/mpflash/common.py,sha256=O-Zb8ASNmEFmBD5JVgVtS1RyGUXJI2o4WH99dr6RMRg,5884
|
20
|
+
mpflash/mpflash/config.py,sha256=h2Oq7kSe40tOnglpo02wkpaPHxHNVqyB3uGxreIu57U,1029
|
21
|
+
mpflash/mpflash/connected.py,sha256=LtyNWloEtEOKvmnTCSSNOADT0KeVbtjHpDQwu4dot2o,3053
|
22
|
+
mpflash/mpflash/download.py,sha256=mckR3pdMFQMYBKNmKBEJm9bJnTtQEnkuQ1vWYXcRRv8,13941
|
23
|
+
mpflash/mpflash/downloaded.py,sha256=YPN0LDf8DSDvdB9gbVny61bvaJHIDbUs81XUwftTb1c,4808
|
24
|
+
mpflash/mpflash/errors.py,sha256=6lUhVtECY3syV2bBGKzegGH4pPKXhevvhYQZd74sy6o,238
|
25
|
+
mpflash/mpflash/flash/__init__.py,sha256=xX2ZJGNX9xpX2s8V7SEJ1It7eOEbl8WkdFzpRd3TLzk,2041
|
26
|
+
mpflash/mpflash/flash/esp.py,sha256=LcOgjpE4zmPawHNwSd_6WFkaIYYazA__rf3ihGXR7I0,2228
|
27
|
+
mpflash/mpflash/flash/stm32.py,sha256=W8SJ2_8FGXyMS6cRcZpfOvOM8iOC_cn4vK8xd8tKzI4,555
|
28
|
+
mpflash/mpflash/flash/stm32_dfu.py,sha256=uTn06H0ZezzCv5O0hvry8ohBtuZXHe_GX2zNUfCxu58,2986
|
29
|
+
mpflash/mpflash/flash/uf2/__init__.py,sha256=PWEVxzZEca3pfLx_Qy5c4zlHH4W5fAjd0BmDTkS7s6g,2766
|
30
|
+
mpflash/mpflash/flash/uf2/boardid.py,sha256=2s4K3QiKWK5HKFKWYsDV3hI8alfWSxEOMeurER3eZtM,408
|
31
|
+
mpflash/mpflash/flash/uf2/linux.py,sha256=4azbcx_YqLZ3RyYNWljejHG_Y6SU-wREL8hhkTYqCjI,4099
|
32
|
+
mpflash/mpflash/flash/uf2/macos.py,sha256=sncXJsc2FVfm9rvLDjcEu7ZIyrDeHmazHiNQTUaf1Y0,1187
|
33
|
+
mpflash/mpflash/flash/uf2/uf2disk.py,sha256=dQ8_U6e3qkFOyfXZDpWAsvEBIlMr-ZzLkzTDD8SADqM,286
|
34
|
+
mpflash/mpflash/flash/uf2/windows.py,sha256=k9Yv71YswPnLx-Z5rf4KjhtVkEWr8SU8EXpeRv87h3A,1290
|
35
|
+
mpflash/mpflash/flash/worklist.py,sha256=1uBvn-T35Oey04g6xxNxo5t68q5_tp18eZcRAamF0tY,5828
|
36
|
+
mpflash/mpflash/list.py,sha256=Qt_3AUgA6LqejfGETgaa49fzqlI-m_OvsPosr6xMBMY,3464
|
37
|
+
mpflash/mpflash/logger.py,sha256=BAVrSXMGZLfSDRFbtVBtvb7Rl0sTJxooCgBS5t-6bXo,1057
|
38
|
+
mpflash/mpflash/mpboard_id/__init__.py,sha256=rQrPCN30GP-lfB2a2deA-lQ6iKvaKPK_xbtBoIavGsM,3716
|
39
|
+
mpflash/mpflash/mpboard_id/add_boards.py,sha256=ehQn560S0XxAD3nsUMo4o_f6w8XTVAfO0GCnfTKa6-4,9379
|
40
|
+
mpflash/mpflash/mpboard_id/board.py,sha256=yQ8IDHQS09AelvTvmPhpmsL4oX3L7IXGqHorkxDOkoE,1114
|
41
|
+
mpflash/mpflash/mpboard_id/board_id.py,sha256=wzGrxJu_ciOVT7n2861lhoKmPAjh1QjWnAdfcqNUUqc,2871
|
42
|
+
mpflash/mpflash/mpboard_id/board_info.zip,sha256=F6YowS96DAqjten4ySe4MXgZwPtE-saZOUfY5OQkqKk,19759
|
43
|
+
mpflash/mpflash/mpboard_id/store.py,sha256=lQQgHSxcaM_ZURcfZNSUv3-ZJjUKMC_xEOOSdpzVvBU,1493
|
44
|
+
mpflash/mpflash/mpremoteboard/__init__.py,sha256=oB0HwQOBhTtI4KR46_FvXZ_I6V5xuuxQ3MPeR6lVGVk,9240
|
45
|
+
mpflash/mpflash/mpremoteboard/mpy_fw_info.py,sha256=BTupe4rZDTs3UHRqvs429XqWHCchSpwa05yACOiOt5U,4413
|
46
|
+
mpflash/mpflash/mpremoteboard/runner.py,sha256=YUmo5Y0aOgMaww8CXSdNdgXD-wRKncILuMZ0OB_2qRU,4646
|
47
|
+
mpflash/mpflash/vendor/click_aliases.py,sha256=K98inhtze8td1dw312kexJS7OX_0ojlptPQ5Z0SHxJY,3065
|
48
|
+
mpflash/mpflash/vendor/dfu.py,sha256=jGsiD3lbSV1Ar9qJubhoY_hy-L8FI-K55aow8vgwoYQ,5590
|
49
|
+
mpflash/mpflash/vendor/pydfu.py,sha256=1ObubGsPFrQ7T9M3JRlIPNIG2xx8uYffaEe0Y6bdf_g,19937
|
50
|
+
mpflash/mpflash/vendor/readme.md,sha256=ZVg7kuUYyXcWcrWkaSJ0CunwebCqu2SiS2sqDadwrT8,84
|
51
|
+
mpflash/mpflash/versions.py,sha256=x5VrdVfWhZJfH7tZmwu2vVx-mPrK1iunYSpSce9VUXU,4492
|
52
|
+
mpflash/poetry.lock,sha256=JBMsMo9yzGVD9SdckwbYHFDUnHfg-wHzUQYg6K93APg,118420
|
53
|
+
mpflash/pyproject.toml,sha256=r8RxT8MwjaEAfKHJj7THC6KmUqiTFKpjtJpP31MbMeY,1695
|
54
|
+
mpflash/stm32_udev_rules.md,sha256=LJelvFFA8w9mBcEUDA02SZ4yzNKfUFL_NWLNUb6geWY,2622
|
55
|
+
stubber/__init__.py,sha256=6KpMPO6c9ZEvZBPPZx5uuHwyJypuElaoMoTPmiTw7d0,46
|
56
|
+
stubber/board/board_info.csv,sha256=3BBwHOtKfq_U0Xl8iWgNsN3akhbNMjb-TIeusDwtTXQ,8434
|
57
|
+
stubber/board/boot.py,sha256=TEBSaKXY_TYJy9YrTRWv22m8jZRefaRNiwM8xNAlH5M,1086
|
58
|
+
stubber/board/createstubs.py,sha256=sXSMviwCmlXL2tjyMq18L2L7Y4fOzMVFHdrqAXMxo7A,31936
|
59
|
+
stubber/board/createstubs_db.py,sha256=RS6ywP7m_C22HEQs_rhvLn5OgNnN5dKrCwdjjwzG7cQ,29558
|
60
|
+
stubber/board/createstubs_db_min.py,sha256=W4GQ1iDV7M-2QZ4EfuBQ7M-ZrqzKU_adOZ-Y7WykEJ8,11142
|
61
|
+
stubber/board/createstubs_db_mpy.mpy,sha256=oHZUyh-iTIzMN_hUFyDauX8WL8ghj-YKFpTfOQRReDM,9536
|
62
|
+
stubber/board/createstubs_lvgl.py,sha256=LDlY2AxT5S_IZ5twi2wK9gm3SnHsDt9inrpCLOYmZIk,26476
|
63
|
+
stubber/board/createstubs_lvgl_min.py,sha256=9L9JsZUCY0E5x4F_Uyckkd8GjiB_49guU6DN-u7XhgU,26466
|
64
|
+
stubber/board/createstubs_lvgl_mpy.mpy,sha256=ex-nlq2V5e8anQBJvRWEEc-FzU7nlwg5NSrZ8vOadIA,9267
|
65
|
+
stubber/board/createstubs_mem.py,sha256=9VTkI51ReZdBGh7U0cnJsg6D3jZcO4srmGCpk_y-FpI,27953
|
66
|
+
stubber/board/createstubs_mem_min.py,sha256=T4joCuKAxUf1Op6kVtc4dZ4TSnIHrKNIZ5qUsSyAkJs,10713
|
67
|
+
stubber/board/createstubs_mem_mpy.mpy,sha256=QpuonHENnSzxDYQTOhxo9f8D8YV84KlzSLzjzUh9AOI,9118
|
68
|
+
stubber/board/createstubs_min.py,sha256=6PLxTD8XD7JGeTfJ_97DuJf-6iDbkMKCbKLHFvQE3KM,13405
|
69
|
+
stubber/board/createstubs_mpy.mpy,sha256=Nj0rwiGFEkCiaQcs-AiYcDp3NvPY2Hr-1xPRBBf9HwM,12388
|
70
|
+
stubber/board/fw_info.py,sha256=BTupe4rZDTs3UHRqvs429XqWHCchSpwa05yACOiOt5U,4413
|
71
|
+
stubber/board/info.py,sha256=0FCQZ5J3KFDbYe0D5iOuwhmZUUBVASPU7-L6fA7ZRGc,5446
|
72
|
+
stubber/board/main.py,sha256=l-5RCT-MMV93SkVwXh3guzx_kxFIJciSEgH1e4UrqT8,394
|
73
|
+
stubber/board/modulelist.txt,sha256=LH3tz0w9MxZEAoYRl0JPmVSrYlbsrhkHd9lBP9z2h88,2653
|
74
|
+
stubber/board/pyrightconfig.json,sha256=4jEkjN3pTfa8Ok5wxW0_W2mAOWIjKZPq5GRsk8oTBN4,1342
|
75
|
+
stubber/bulk/mcu_stubber.py,sha256=JtzXy48ercd6sLB2m0KsEw3lAPgBa_-EnuxOC1aqRug,15294
|
76
|
+
stubber/codemod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
77
|
+
stubber/codemod/_partials/__init__.py,sha256=SKt5UKja7SGdJ2PIQLp7-CURTQ-EimrswhW-ZTaRBEk,1382
|
78
|
+
stubber/codemod/_partials/db_main.py,sha256=yvl1ydyiWJDhNmuH7P_5b85Crfrh2CAroA_i_8aCqIw,3856
|
79
|
+
stubber/codemod/_partials/lvgl_main.py,sha256=ANMJr4XpWyLHhk3ZHsR0YnGe8fNtIi58YOdN6TLay1o,1887
|
80
|
+
stubber/codemod/_partials/modules_reader.py,sha256=kIYUxrCNtR7K1D0NVxePuNjhPoPkOx9qbjh-mdW1IVs,1966
|
81
|
+
stubber/codemod/add_comment.py,sha256=qGaa-sF3WyeLZwa5FPyT_Yp-ARFruKlBIIe0tayUiTk,1912
|
82
|
+
stubber/codemod/add_method.py,sha256=AbHmfwjgTYWes3XrqPGk0-FjKxnGQuDLXbE5APhApF4,2544
|
83
|
+
stubber/codemod/board.py,sha256=WVeUbVOV8MlDAyr5JLhOLdlmyFdlOpdRunjdzM_ULsM,11564
|
84
|
+
stubber/codemod/enrich.py,sha256=hvrRxonYD-5mtRF_4dJzVvoVio329_XxKuTUzDW5IfY,5291
|
85
|
+
stubber/codemod/merge_docstub.py,sha256=5cyPT-tA1QnpDqtp70SjXSZx7nJ626X3y2JRzhQLgyA,12395
|
86
|
+
stubber/codemod/modify_list.py,sha256=_YTj3E44dwb7QaRqKaIq0IWg-BzH69AZRqTr3QMkFnY,2064
|
87
|
+
stubber/codemod/utils.py,sha256=7I69E23wnlwABTbfszq6lZN7PNA7H5y4_KiSEu0fJ84,2403
|
88
|
+
stubber/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
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
|
+
stubber/commands/switch_cmd.py,sha256=qfJxshcKZggHsmGX-FBpLj06PAnIfHFU6hmCcFv-n34,1819
|
102
|
+
stubber/commands/variants_cmd.py,sha256=4EMwkouIGhllQluVFoVJoD-sCtIr7peEogCxZev6kjU,1232
|
103
|
+
stubber/cst_transformer.py,sha256=Er9kww4hgdeQ9dARMx8lB5PLIvPaKjtKJMe8BofKOzY,6301
|
104
|
+
stubber/data/board_info.csv,sha256=3BBwHOtKfq_U0Xl8iWgNsN3akhbNMjb-TIeusDwtTXQ,8434
|
105
|
+
stubber/data/board_info.json,sha256=LbyNo3qeij8bY_PRTxWoS5nFuDv6VyaRTKGiXC_-zRQ,57210
|
106
|
+
stubber/data/micropython_tags.csv,sha256=95Y4zBefqi65QNvQy5bJXr7Fw8sVHmspeo2rnyLZECQ,1894
|
107
|
+
stubber/data/requirements-core-micropython.txt,sha256=mRQ8Sj-PqYP74lVgpWWXSYkVJilSKVsjijoLARQNAwY,1279
|
108
|
+
stubber/data/requirements-core-pycopy.txt,sha256=UKZooNXL7GbojDwmaiBTxHEQzzd-H8kI6l5eJCX-oyk,1012
|
109
|
+
stubber/downloader.py,sha256=J2MHge4AhAU98M93IH-2JEhzYVEfYSeIZGlxEaWdoTE,1169
|
110
|
+
stubber/freeze/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
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
|
+
stubber/get_lobo.py,sha256=I6bVpcGX7TaD4CI9UID8R9brOG-bBdeL07j1WsTXQH4,1717
|
117
|
+
stubber/minify.py,sha256=lt8Fub09upOL1isZUBOQd14-jRaedPD8DHX_pheAQMs,14650
|
118
|
+
stubber/publish/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
119
|
+
stubber/publish/bump.py,sha256=M9ePaH-K1lbh-OVyPNAv6uxumDtHe3cOD2rXeAMWDqY,3176
|
120
|
+
stubber/publish/candidates.py,sha256=VqeE8WFOlwOULo0SFDyxOI9emP1bjQ7nqyfGxHMjgCY,10545
|
121
|
+
stubber/publish/database.py,sha256=fH_-Zjd_JHTEaW2Yf8kEB6DQduKrmZl9R-67mNYE3HI,605
|
122
|
+
stubber/publish/defaults.py,sha256=x9E03Im7d7aCAotRSg2vjTl0bbxG-X8Sa2pxc9n61EQ,1492
|
123
|
+
stubber/publish/enums.py,sha256=BRzoSjLxYPLcEHySaFprY1ndLLdUetqRjYJmi5CW7xU,756
|
124
|
+
stubber/publish/helpers.py,sha256=XRN9KZgPtIEgVW6NSmZunvTiT0UqP_rr63lM69hcqbs,687
|
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
|
+
stubber/rst/__init__.py,sha256=8KUzMFNdDU9X6U1VMU1q5bGu_KGxB1XNcJhzNg7tF98,284
|
133
|
+
stubber/rst/classsort.py,sha256=Ap9GsrDz34UGZSqWvhr7LWSvtWL0vgB0owMbfcJLKqI,2577
|
134
|
+
stubber/rst/lookup.py,sha256=UukjRxy1posEunJrEeVczbkIWQMpmz0Kiw0b_AgKh5Q,19750
|
135
|
+
stubber/rst/output_dict.py,sha256=tH_32ZTNj7BndvY2YcZCa1uB-lLeyJUeltoEkTT_Np8,14354
|
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
|
+
stubber/stubber.py,sha256=sScRIAq7vvUZUS9Mzh4Ne6ny0qpsReGNqo0u8vtZXEc,1596
|
140
|
+
stubber/stubs_from_docs.py,sha256=ugKYknJnRpvtAWQBl2TqwIxCD-BxN8bEZmMu37axJeg,2741
|
141
|
+
stubber/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
142
|
+
stubber/tools/manifestfile.py,sha256=12DBJlmiybPv7qo9-X-eT7N53xuP3csUOzsE-Fe5oto,25097
|
143
|
+
stubber/tools/readme.md,sha256=NJ_g0oeeExhiRs2lMQVekccnR_c2lGLt-snu1RnUIx0,278
|
144
|
+
stubber/update_fallback.py,sha256=DVlym7rRWJHs9rC8niiAyeDi5C_Id9BkEkXjS14sSvI,4796
|
145
|
+
stubber/update_module_list.py,sha256=O9huvx6-4VEJ45iBAviQrSlqaOuWia410j-jwUGfDdE,3884
|
146
|
+
stubber/utils/__init__.py,sha256=FzTO7K7X4pBCRxbZjl15JyRNusidLX7uk_DgYMcIFzM,228
|
147
|
+
stubber/utils/config.py,sha256=H0D0ntWwJfBw7kunX9gkRoGL5cXhMdQLwF0WgHwp7ag,4794
|
148
|
+
stubber/utils/makeversionhdr.py,sha256=65VXDavYQU5GnR8OfbFAXAq6RCAtLdbEM-a7a3UiLxc,1899
|
149
|
+
stubber/utils/manifest.py,sha256=ROGiUEZsvMZ-8c8uUYMU_Uh8_HddY3u96vkUH2o8BH0,3149
|
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,,
|
mpflash/README.md
CHANGED
@@ -11,8 +11,8 @@ This tool was initially created to be used in a CI/CD pipeline to automate the p
|
|
11
11
|
`mpflash` has been tested on:
|
12
12
|
- OS: Windows x64, Linux X64, but not (yet) macOS.
|
13
13
|
- Micropython (hardware) ports:
|
14
|
-
- `rp2`, using `.uf2`, using filecopy
|
15
|
-
- `samd`, using ` .uf2`, using filecopy
|
14
|
+
- `rp2`, using `.uf2`, using filecopy
|
15
|
+
- `samd`, using ` .uf2`, using filecopy
|
16
16
|
- `esp32`, using `.bin`, using esptool,
|
17
17
|
- `esp8266`, using `.bin`, using esptool
|
18
18
|
- `stm32`, using ` .dfu`, using pydfu
|
@@ -25,7 +25,7 @@ Not yet implemented: `nrf`, `cc3200`, `mimxrt`
|
|
25
25
|
3. Flash one or all connected MicroPython boards with a specific firmware or version.
|
26
26
|
|
27
27
|
## Installation
|
28
|
-
To install mpflash, you can use
|
28
|
+
To install mpflash, you can use: `pipx install mpflash` or `pip install mpflash`
|
29
29
|
|
30
30
|
## Basic usage
|
31
31
|
You can use mpflash to perform various operations on your MicroPython boards. Here is an example of basic usage:
|
@@ -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.
|
@@ -69,7 +95,7 @@ To download the MicroPython firmware for some boards, use the following command:
|
|
69
95
|
|
70
96
|
These will try to download the prebuilt MicroPython firmware for the boards from https://micropython.org/download/ and save it in your downloads folder in the `firmware` directory.
|
71
97
|
The stable version (default) is determined based on the most recent published release,
|
72
|
-
other
|
98
|
+
other options are `--version stable`, `--version preview` and `--version x.y.z` to download the latest stable, preview or version x.y.z respectively.
|
73
99
|
|
74
100
|
By default the firmware will be downloaded to your OS's preferred `Downloads/firmware` folder, but you can speciy a different directory using the `--dir` option.
|
75
101
|
|
@@ -92,8 +118,18 @@ After you have downloaded a firmware you can flash the firmware to a board usin
|
|
92
118
|
This will (try to) autodetect the connected boards, and determine the correct firmware to flash to each board.
|
93
119
|
|
94
120
|
- `mpflash flash` will flash the latest stable firmware to all connected boards.
|
121
|
+
If you have a board withouth a running micropython version, you will need to specify the board and the serial port to flash.
|
95
122
|
- `mpflash flash --serial ? --board ?` will prompt to select a specific serial port and board to flash. (the firmware must be dowloaded earlier)
|
96
123
|
|
124
|
+
In order to flash the firmware some boards need to be put in bootloader mode, this is done automatically by mpflash where possible and supported by the boards hardware and current bootloader.
|
125
|
+
The supported `--bootloader` options are:
|
126
|
+
|
127
|
+
- `touch1200` bootloader is activated by connecting to the board at 1200 baud
|
128
|
+
- `mpy` using micropython to enter the bootloader
|
129
|
+
- `manual` manual intervention is needed to enter the bootloader
|
130
|
+
- `none` mpflash assumes the board is ready to flash
|
131
|
+
|
132
|
+
For ESP32 and ESP8266 boards the `esptool` is used to flash the firmware, and this includes activating the bootloader.
|
97
133
|
|
98
134
|
### Flashing all connected boards with the latest stable firmware
|
99
135
|
```bash
|
mpflash/mpflash/add_firmware.py
CHANGED
@@ -11,7 +11,7 @@ from mpremote.mip import _rewrite_url as rewrite_url # type: ignore
|
|
11
11
|
|
12
12
|
from mpflash.common import FWInfo
|
13
13
|
from mpflash.config import config
|
14
|
-
from mpflash.
|
14
|
+
from mpflash.versions import get_preview_mp_version, get_stable_mp_version
|
15
15
|
|
16
16
|
|
17
17
|
def add_firmware(
|
mpflash/mpflash/ask_input.py
CHANGED
@@ -14,7 +14,7 @@ from .config import config
|
|
14
14
|
from .mpboard_id import (get_known_boards_for_port, get_known_ports,
|
15
15
|
known_stored_boards)
|
16
16
|
from .mpremoteboard import MPRemoteBoard
|
17
|
-
from .
|
17
|
+
from .versions import micropython_versions
|
18
18
|
|
19
19
|
|
20
20
|
def ask_missing_params(
|
@@ -14,16 +14,11 @@ from github import Auth, Github
|
|
14
14
|
from loguru import logger as log
|
15
15
|
from packaging.version import parse
|
16
16
|
|
17
|
-
# from
|
18
|
-
from mpflash.vendor.versions import get_stable_mp_version
|
19
|
-
|
20
|
-
# from stubber.utils.versions import SET_PREVIEW
|
17
|
+
# from mpflash.versions import SET_PREVIEW
|
21
18
|
|
22
19
|
# Token with no permissions to avoid throttling
|
23
20
|
# https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api?apiVersion=2022-11-28#getting-a-higher-rate-limit
|
24
|
-
PAT_NO_ACCESS =
|
25
|
-
"github_pat" + "_11AAHPVFQ0qAkDnSUaMKSp" + "_ZkDl5NRRwBsUN6EYg9ahp1Dvj4FDDONnXVgimxC2EtpY7Q7BUKBoQ0Jq72X"
|
26
|
-
)
|
21
|
+
PAT_NO_ACCESS = "github_pat" + "_11AAHPVFQ0qAkDnSUaMKSp" + "_ZkDl5NRRwBsUN6EYg9ahp1Dvj4FDDONnXVgimxC2EtpY7Q7BUKBoQ0Jq72X"
|
27
22
|
PAT = os.environ.get("GITHUB_TOKEN") or PAT_NO_ACCESS
|
28
23
|
GH_CLIENT = Github(auth=Auth.Token(PAT))
|
29
24
|
|
@@ -40,9 +35,7 @@ def _run_local_git(
|
|
40
35
|
if repo:
|
41
36
|
if isinstance(repo, str):
|
42
37
|
repo = Path(repo)
|
43
|
-
result = subprocess.run(
|
44
|
-
cmd, capture_output=capture_output, check=True, cwd=repo.absolute().as_posix(), encoding="utf-8"
|
45
|
-
)
|
38
|
+
result = subprocess.run(cmd, capture_output=capture_output, check=True, cwd=repo.absolute().as_posix(), encoding="utf-8")
|
46
39
|
else:
|
47
40
|
result = subprocess.run(cmd, capture_output=capture_output, check=True, encoding="utf-8")
|
48
41
|
except (NotADirectoryError, FileNotFoundError) as e: # pragma: no cover
|
@@ -74,9 +67,6 @@ def clone(remote_repo: str, path: Path, shallow: bool = False, tag: Optional[str
|
|
74
67
|
cmd = ["git", "clone"]
|
75
68
|
if shallow:
|
76
69
|
cmd += ["--depth", "1"]
|
77
|
-
if tag in {"stable"}:
|
78
|
-
tag = get_stable_mp_version()
|
79
|
-
|
80
70
|
if tag in {"preview", "latest", "master"}:
|
81
71
|
tag = None
|
82
72
|
cmd += [remote_repo, "--branch", tag, str(path)] if tag else [remote_repo, str(path)]
|
@@ -1,37 +1,2 @@
|
|
1
|
-
import
|
2
|
-
|
3
|
-
from mpflash.common import BootloaderMethod
|
4
|
-
from mpflash.errors import MPFlashError
|
5
|
-
from mpflash.logger import log
|
6
|
-
from mpflash.mpremoteboard import MPRemoteBoard
|
7
|
-
|
8
|
-
from .manual import enter_bootloader_manual
|
9
|
-
from .micropython import enter_bootloader_mpy
|
10
|
-
from .touch1200 import enter_bootloader_cdc_1200bps
|
11
|
-
|
12
|
-
|
13
|
-
def enter_bootloader(
|
14
|
-
mcu: MPRemoteBoard,
|
15
|
-
method: BootloaderMethod = BootloaderMethod.MPY,
|
16
|
-
timeout: int = 10,
|
17
|
-
wait_after: int = 2,
|
18
|
-
):
|
19
|
-
"""Enter the bootloader mode for the board"""
|
20
|
-
if method == BootloaderMethod.NONE:
|
21
|
-
# NO bootloader requested, so must be OK to flash
|
22
|
-
return True
|
23
|
-
|
24
|
-
log.info(f"Entering bootloader on {mcu.board} on {mcu.serialport} using method: {method.value}")
|
25
|
-
if method == BootloaderMethod.MPY:
|
26
|
-
result = enter_bootloader_mpy(mcu, timeout=timeout)
|
27
|
-
elif method == BootloaderMethod.MANUAL:
|
28
|
-
result = enter_bootloader_manual(mcu, timeout=timeout)
|
29
|
-
elif method == BootloaderMethod.TOUCH_1200:
|
30
|
-
result = enter_bootloader_cdc_1200bps(mcu, timeout=timeout)
|
31
|
-
else:
|
32
|
-
raise MPFlashError(f"Unknown bootloader method {method}")
|
33
|
-
if result:
|
34
|
-
time.sleep(wait_after)
|
35
|
-
else:
|
36
|
-
log.error(f"Failed to enter bootloader on {mcu.serialport}")
|
37
|
-
return result
|
1
|
+
from .activate import enter_bootloader # type: ignore
|
2
|
+
from .detect import in_bootloader # type: ignore
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import time
|
2
|
+
|
3
|
+
from mpflash.bootloader.detect import in_bootloader
|
4
|
+
from mpflash.common import BootloaderMethod
|
5
|
+
from mpflash.errors import MPFlashError
|
6
|
+
from mpflash.logger import log
|
7
|
+
from mpflash.mpremoteboard import MPRemoteBoard
|
8
|
+
|
9
|
+
from .manual import enter_bootloader_manual
|
10
|
+
from .micropython import enter_bootloader_mpy
|
11
|
+
from .touch1200 import enter_bootloader_touch_1200bps
|
12
|
+
|
13
|
+
BL_OPTIONS = {
|
14
|
+
"stm32": [BootloaderMethod.TOUCH_1200, BootloaderMethod.MPY, BootloaderMethod.MANUAL],
|
15
|
+
"rp2": [BootloaderMethod.TOUCH_1200, BootloaderMethod.MPY, BootloaderMethod.MANUAL],
|
16
|
+
"samd": [BootloaderMethod.TOUCH_1200, BootloaderMethod.MPY, BootloaderMethod.MANUAL],
|
17
|
+
"esp32": [BootloaderMethod.NONE],
|
18
|
+
"esp8266": [BootloaderMethod.NONE],
|
19
|
+
}
|
20
|
+
|
21
|
+
|
22
|
+
def enter_bootloader(
|
23
|
+
mcu: MPRemoteBoard,
|
24
|
+
method: BootloaderMethod = BootloaderMethod.MPY,
|
25
|
+
timeout: int = 10,
|
26
|
+
wait_after: int = 2,
|
27
|
+
):
|
28
|
+
"""Enter the bootloader mode for the board"""
|
29
|
+
if method == BootloaderMethod.NONE:
|
30
|
+
# NO bootloader requested, so must be OK to flash
|
31
|
+
return True
|
32
|
+
elif method == BootloaderMethod.AUTO:
|
33
|
+
# build a list of options to try for this board
|
34
|
+
bl_list = BL_OPTIONS.get(mcu.port, [BootloaderMethod.MPY, BootloaderMethod.MANUAL])
|
35
|
+
else:
|
36
|
+
bl_list = [method, BootloaderMethod.MANUAL]
|
37
|
+
log.info(f"Entering bootloader on {mcu.serialport} using methods {[bl.value for bl in bl_list]}")
|
38
|
+
for method in bl_list:
|
39
|
+
try:
|
40
|
+
if method == BootloaderMethod.MPY:
|
41
|
+
result = enter_bootloader_mpy(mcu, timeout=timeout)
|
42
|
+
elif method == BootloaderMethod.MANUAL:
|
43
|
+
result = enter_bootloader_manual(mcu, timeout=timeout)
|
44
|
+
elif method == BootloaderMethod.TOUCH_1200:
|
45
|
+
result = enter_bootloader_touch_1200bps(mcu, timeout=timeout)
|
46
|
+
except MPFlashError as e:
|
47
|
+
log.warning(f"Failed to enter bootloader on {mcu.serialport} using {method.value}")
|
48
|
+
log.exception(e)
|
49
|
+
result = False
|
50
|
+
if not result:
|
51
|
+
# try a next method
|
52
|
+
continue
|
53
|
+
|
54
|
+
# todo - check every second or so for up to max wait time
|
55
|
+
time.sleep(wait_after)
|
56
|
+
# check if bootloader was entered
|
57
|
+
if in_bootloader(mcu):
|
58
|
+
return True
|
59
|
+
|
60
|
+
return result
|