micropython-stubber 1.19.0__tar.gz → 1.20.0__tar.gz

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 (152) hide show
  1. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/PKG-INFO +1 -1
  2. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/pyproject.toml +1 -1
  3. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/cli_flash.py +9 -4
  4. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/cli_group.py +1 -1
  5. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/flash_uf2.py +1 -1
  6. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/list.py +27 -11
  7. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/mpremoteboard/__init__.py +6 -5
  8. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/worklist.py +1 -1
  9. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/poetry.lock +84 -83
  10. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/pyproject.toml +1 -1
  11. micropython_stubber-1.20.0/src/stubber/__init__.py +3 -0
  12. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/createstubs.py +2 -1
  13. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/createstubs_db.py +2 -2
  14. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/createstubs_db_min.py +1 -1
  15. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/createstubs_db_mpy.mpy +0 -0
  16. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/createstubs_mem.py +2 -2
  17. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/createstubs_mem_min.py +1 -1
  18. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/createstubs_mem_mpy.mpy +0 -0
  19. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/createstubs_min.py +2 -2
  20. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/createstubs_mpy.mpy +0 -0
  21. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/modulelist.txt +1 -0
  22. micropython_stubber-1.19.0/src/stubber/commands/mcu_cmd.py → micropython_stubber-1.20.0/src/stubber/commands/get_mcu_cmd.py +20 -3
  23. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/stubber.py +1 -9
  24. micropython_stubber-1.20.0/src/stubber/update_fallback.py +117 -0
  25. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/utils/config.py +6 -0
  26. micropython_stubber-1.19.0/src/stubber/__init__.py +0 -3
  27. micropython_stubber-1.19.0/src/stubber/commands/get_lobo_cmd.py +0 -58
  28. micropython_stubber-1.19.0/src/stubber/commands/minify_cmd.py +0 -60
  29. micropython_stubber-1.19.0/src/stubber/commands/upd_fallback_cmd.py +0 -36
  30. micropython_stubber-1.19.0/src/stubber/commands/upd_module_list_cmd.py +0 -18
  31. micropython_stubber-1.19.0/src/stubber/update_fallback.py +0 -117
  32. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/LICENSE +0 -0
  33. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/readme.md +0 -0
  34. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/README.md +0 -0
  35. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/libusb_flash.ipynb +0 -0
  36. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/__init__.py +0 -0
  37. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/ask_input.py +0 -0
  38. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/cli_download.py +0 -0
  39. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/cli_list.py +0 -0
  40. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/cli_main.py +0 -0
  41. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/common.py +0 -0
  42. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/config.py +0 -0
  43. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/download.py +0 -0
  44. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/downloaded.py +0 -0
  45. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/errors.py +0 -0
  46. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/flash.py +0 -0
  47. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/flash_esp.py +0 -0
  48. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/flash_stm32.py +0 -0
  49. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/flash_stm32_cube.py +0 -0
  50. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/flash_stm32_dfu.py +0 -0
  51. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/flash_uf2_boardid.py +0 -0
  52. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/flash_uf2_linux.py +0 -0
  53. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/flash_uf2_windows.py +0 -0
  54. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/logger.py +0 -0
  55. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/mpboard_id/__init__.py +0 -0
  56. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/mpboard_id/board_id.py +0 -0
  57. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/mpboard_id/board_info.csv +0 -0
  58. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/mpboard_id/board_info.json +0 -0
  59. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/mpremoteboard/mpy_fw_info.py +0 -0
  60. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/mpremoteboard/runner.py +0 -0
  61. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/vendor/dfu.py +0 -0
  62. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/vendor/pydfu.py +0 -0
  63. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/vendor/readme.md +0 -0
  64. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/mpflash/vendor/versions.py +0 -0
  65. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/mpflash/stm32_udev_rules.md +0 -0
  66. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/basicgit.py +0 -0
  67. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/board_info.csv +0 -0
  68. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/boot.py +0 -0
  69. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/createstubs_lvgl.py +0 -0
  70. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/createstubs_lvgl_min.py +0 -0
  71. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/createstubs_lvgl_mpy.mpy +0 -0
  72. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/fw_info.py +0 -0
  73. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/info.py +0 -0
  74. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/main.py +0 -0
  75. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/board/pyrightconfig.json +0 -0
  76. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/bulk/mcu_stubber.py +0 -0
  77. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/codemod/__init__.py +0 -0
  78. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/codemod/_partials/__init__.py +0 -0
  79. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/codemod/_partials/db_main.py +0 -0
  80. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/codemod/_partials/lvgl_main.py +0 -0
  81. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/codemod/_partials/modules_reader.py +0 -0
  82. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/codemod/add_comment.py +0 -0
  83. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/codemod/add_method.py +0 -0
  84. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/codemod/board.py +0 -0
  85. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/codemod/enrich.py +0 -0
  86. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/codemod/merge_docstub.py +0 -0
  87. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/codemod/modify_list.py +0 -0
  88. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/codemod/utils.py +0 -0
  89. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/commands/__init__.py +0 -0
  90. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/commands/build_cmd.py +0 -0
  91. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/commands/cli.py +0 -0
  92. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/commands/clone_cmd.py +0 -0
  93. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/commands/config_cmd.py +0 -0
  94. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/commands/enrich_folder_cmd.py +0 -0
  95. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/commands/get_core_cmd.py +0 -0
  96. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/commands/get_docstubs_cmd.py +0 -0
  97. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/commands/get_frozen_cmd.py +0 -0
  98. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/commands/merge_cmd.py +0 -0
  99. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/commands/publish_cmd.py +0 -0
  100. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/commands/stub_cmd.py +0 -0
  101. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/commands/switch_cmd.py +0 -0
  102. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/commands/variants_cmd.py +0 -0
  103. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/cst_transformer.py +0 -0
  104. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/data/board_info.csv +0 -0
  105. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/data/board_info.json +0 -0
  106. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/data/micropython_tags.csv +0 -0
  107. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/data/requirements-core-micropython.txt +0 -0
  108. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/data/requirements-core-pycopy.txt +0 -0
  109. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/downloader.py +0 -0
  110. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/freeze/__init__.py +0 -0
  111. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/freeze/common.py +0 -0
  112. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/freeze/freeze_folder.py +0 -0
  113. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/freeze/freeze_manifest_2.py +0 -0
  114. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/freeze/get_frozen.py +0 -0
  115. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/get_cpython.py +0 -0
  116. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/get_lobo.py +0 -0
  117. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/minify.py +0 -0
  118. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/publish/__init__.py +0 -0
  119. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/publish/bump.py +0 -0
  120. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/publish/candidates.py +0 -0
  121. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/publish/database.py +0 -0
  122. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/publish/defaults.py +0 -0
  123. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/publish/enums.py +0 -0
  124. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/publish/helpers.py +0 -0
  125. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/publish/merge_docstubs.py +0 -0
  126. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/publish/missing_class_methods.py +0 -0
  127. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/publish/package.py +0 -0
  128. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/publish/pathnames.py +0 -0
  129. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/publish/publish.py +0 -0
  130. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/publish/pypi.py +0 -0
  131. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/publish/stubpackage.py +0 -0
  132. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/rst/__init__.py +0 -0
  133. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/rst/classsort.py +0 -0
  134. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/rst/lookup.py +0 -0
  135. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/rst/output_dict.py +0 -0
  136. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/rst/reader.py +0 -0
  137. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/rst/report_return.py +0 -0
  138. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/rst/rst_utils.py +0 -0
  139. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/stubs_from_docs.py +0 -0
  140. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/tools/__init__.py +0 -0
  141. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/tools/manifestfile.py +0 -0
  142. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/tools/readme.md +0 -0
  143. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/update_module_list.py +0 -0
  144. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/utils/__init__.py +0 -0
  145. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/utils/makeversionhdr.py +0 -0
  146. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/utils/manifest.py +0 -0
  147. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/utils/post.py +0 -0
  148. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/utils/repos.py +0 -0
  149. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/utils/stubmaker.py +0 -0
  150. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/utils/typed_config_toml.py +0 -0
  151. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/utils/versions.py +0 -0
  152. {micropython_stubber-1.19.0 → micropython_stubber-1.20.0}/src/stubber/variants.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: micropython-stubber
3
- Version: 1.19.0
3
+ Version: 1.20.0
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
@@ -8,7 +8,7 @@ repo-path = "./repos"
8
8
 
9
9
  [tool.poetry]
10
10
  name = "micropython-stubber"
11
- version = "1.19.0"
11
+ version = "1.20.0"
12
12
  description = "Tooling to create and maintain stubs for MicroPython"
13
13
  authors = ["Jos Verlinde <jos_verlinde@hotmail.com>"]
14
14
  license = "MIT"
@@ -13,7 +13,7 @@ from .cli_group import cli
13
13
  from .cli_list import show_mcus
14
14
  from .config import config
15
15
  from .flash import flash_list
16
- from .worklist import WorkList, full_auto_worklist, manual_worklist, single_auto_worklist
16
+ from .worklist import MPRemoteBoard, WorkList, full_auto_worklist, manual_worklist, single_auto_worklist
17
17
 
18
18
  # #########################################################################################################
19
19
  # CLI
@@ -104,6 +104,11 @@ def cli_flash_board(**kwargs):
104
104
  if not params.boards or params.boards == []:
105
105
  # nothing specified - detect connected boards
106
106
  params.ports, params.boards = connected_ports_boards()
107
+ if params.boards == []:
108
+ # No MicroPython boards detected, but it could be unflashed or not in bootloader mode
109
+ # Ask for serial port and board_id to flash
110
+ params.serial = "?"
111
+ params.boards = ["?"]
107
112
  else:
108
113
  for board_id in params.boards:
109
114
  if board_id == "":
@@ -130,9 +135,9 @@ def cli_flash_board(**kwargs):
130
135
  if len(params.versions) > 1:
131
136
  log.error(f"Only one version can be flashed at a time, not {params.versions}")
132
137
  raise MPFlashError("Only one version can be flashed at a time")
133
- if len(params.boards) > 1:
134
- log.error(f"Only one board can be flashed at a time, not {params.boards}")
135
- raise MPFlashError("Only one board can be flashed at a time")
138
+ # if len(params.boards) > 1:
139
+ # log.error(f"Only one board can be flashed at a time, not {params.boards}")
140
+ # raise MPFlashError("Only one board can be flashed at a time")
136
141
 
137
142
  params.versions = [clean_version(v) for v in params.versions]
138
143
  worklist: WorkList = []
@@ -11,7 +11,7 @@ from .logger import make_quiet, set_loglevel
11
11
 
12
12
  def cb_verbose(ctx, param, value):
13
13
  """Callback to set the log level to DEBUG if verbose is set"""
14
- if value:
14
+ if value and not config.quiet:
15
15
  set_loglevel("DEBUG")
16
16
  config.verbose = True
17
17
  else:
@@ -56,6 +56,6 @@ def flash_uf2(mcu: MPRemoteBoard, fw_file: Path, erase: bool) -> Optional[MPRemo
56
56
  log.success("Done copying, resetting the board and wait for it to restart")
57
57
  if sys.platform in ["linux", "darwin"]:
58
58
  dismount_uf2()
59
- for _ in track(range(5 + 2)):
59
+ for _ in track(range(5 + 2), description="Waiting for the board to restart", transient=True):
60
60
  time.sleep(1) # 5 secs to short on linux
61
61
  return mcu
@@ -1,14 +1,18 @@
1
1
  from typing import List
2
2
 
3
3
  from rich import print
4
- from rich.progress import track
5
- from rich.table import Table
4
+ from rich.progress import BarColumn, Progress, SpinnerColumn, TextColumn, TimeElapsedColumn, track
5
+ from rich.table import Column, Table
6
6
 
7
7
  from mpflash.mpremoteboard import MPRemoteBoard
8
8
 
9
9
  from .config import config
10
10
  from .logger import console
11
11
 
12
+ rp_spinner = SpinnerColumn(finished_text="✅")
13
+ rp_text = TextColumn("{task.description} {task.fields[device]}", table_column=Column())
14
+ rp_bar = BarColumn(bar_width=None, table_column=Column())
15
+
12
16
 
13
17
  def list_mcus(bluetooth: bool = False):
14
18
  """
@@ -21,12 +25,24 @@ def list_mcus(bluetooth: bool = False):
21
25
  """
22
26
  conn_mcus = [MPRemoteBoard(sp) for sp in MPRemoteBoard.connected_boards(bluetooth) if sp not in config.ignore_ports]
23
27
 
24
- for mcu in track(conn_mcus, description="Getting board info", transient=True, update_period=0.1):
28
+ # a lot of boilerplate to show a progress bar with the comport currenlty scanned
29
+ with Progress(rp_spinner, rp_text, rp_bar, TimeElapsedColumn()) as progress:
30
+ tsk_scan = progress.add_task("[green]Scanning", visible=False, total=None)
31
+ progress.tasks[tsk_scan].fields["device"] = "..."
32
+ progress.tasks[tsk_scan].visible = True
33
+ progress.start_task(tsk_scan)
25
34
  try:
26
- mcu.get_mcu_info()
27
- except ConnectionError as e:
28
- print(f"Error: {e}")
29
- continue
35
+ for mcu in conn_mcus:
36
+ progress.update(tsk_scan, device=mcu.serialport.replace("/dev/", ""))
37
+ try:
38
+ mcu.get_mcu_info()
39
+ except ConnectionError as e:
40
+ print(f"Error: {e}")
41
+ continue
42
+ finally:
43
+ # transient
44
+ progress.stop_task(tsk_scan)
45
+ progress.tasks[tsk_scan].visible = False
30
46
  return conn_mcus
31
47
 
32
48
 
@@ -38,11 +54,10 @@ def show_mcus(
38
54
  """Show the list of connected boards in a nice table"""
39
55
  table = Table(
40
56
  title=title,
41
- title_style="bold",
42
- header_style="bold blue",
57
+ title_style="magenta",
58
+ header_style="bold magenta",
43
59
  collapse_padding=True,
44
60
  width=110,
45
- row_styles=["blue", "yellow"],
46
61
  )
47
62
  table.add_column("Serial", overflow="fold")
48
63
  table.add_column("Family")
@@ -59,11 +74,12 @@ def show_mcus(
59
74
  mcu.get_mcu_info()
60
75
  except ConnectionError:
61
76
  continue
77
+ description = f"[italic bright_cyan]{mcu.description}" if mcu.description else ""
62
78
  table.add_row(
63
79
  mcu.serialport.replace("/dev/", ""),
64
80
  mcu.family,
65
81
  mcu.port,
66
- f"{mcu.board}\n{mcu.description}".strip(),
82
+ f"{mcu.board}\n{description}".strip(),
67
83
  # mcu.variant,
68
84
  mcu.cpu,
69
85
  mcu.version,
@@ -65,8 +65,9 @@ class MPRemoteBoard:
65
65
 
66
66
  @staticmethod
67
67
  def connected_boards(bluetooth: bool = False) -> List[str]:
68
+ # TODO: rename to connected_comports
68
69
  """
69
- Get a list of connected boards.
70
+ Get a list of connected comports.
70
71
 
71
72
  Parameters:
72
73
  - bluetooth (bool): Whether to include Bluetooth ports. Default is False.
@@ -74,14 +75,14 @@ class MPRemoteBoard:
74
75
  Returns:
75
76
  - List[str]: A list of connected board ports.
76
77
  """
77
- ports = serial.tools.list_ports.comports()
78
+ comports = serial.tools.list_ports.comports()
78
79
 
79
80
  if not bluetooth:
80
81
  # filter out bluetooth ports
81
- ports = [p for p in ports if "bluetooth" not in p.description.lower()]
82
- ports = [p for p in ports if "BTHENUM" not in p.hwid]
82
+ comports = [p for p in comports if "bluetooth" not in p.description.lower()]
83
+ comports = [p for p in comports if "BTHENUM" not in p.hwid]
83
84
 
84
- return sorted([p.device for p in ports])
85
+ return sorted([p.device for p in comports])
85
86
 
86
87
  @retry(stop=stop_after_attempt(RETRIES), wait=wait_fixed(1), reraise=True) # type: ignore ## retry_error_cls=ConnectionError,
87
88
  def get_mcu_info(self, timeout: int = 2):
@@ -24,7 +24,7 @@ def auto_update(
24
24
  *,
25
25
  selector: Optional[Dict[str, str]] = None,
26
26
  ) -> WorkList:
27
- """Builds a list of boards to update based on the connected boards and the firmware available
27
+ """Builds a list of boards to update based on the connected boards and the firmwares available locally in the firmware folder.
28
28
 
29
29
  Args:
30
30
  conn_boards (List[MPRemoteBoard]): List of connected boards
@@ -211,17 +211,17 @@ files = [
211
211
 
212
212
  [[package]]
213
213
  name = "bitstring"
214
- version = "4.1.4"
214
+ version = "4.2.1"
215
215
  description = "Simple construction, analysis and modification of binary data."
216
216
  optional = false
217
- python-versions = ">=3.7"
217
+ python-versions = ">=3.8"
218
218
  files = [
219
- {file = "bitstring-4.1.4-py3-none-any.whl", hash = "sha256:da46c4d6f8f3fb75a85566fdd33d5083ba8b8f268ed76f34eefe5a00da426192"},
220
- {file = "bitstring-4.1.4.tar.gz", hash = "sha256:94f3f1c45383ebe8fd4a359424ffeb75c2f290760ae8fcac421b44f89ac85213"},
219
+ {file = "bitstring-4.2.1-py3-none-any.whl", hash = "sha256:9ae5d89072b065d640d645d37c0efcd27284b2f79f1c48cc1cd38b54e1932b4f"},
220
+ {file = "bitstring-4.2.1.tar.gz", hash = "sha256:8abb5a661588c764bacf1a23d64c7bb57517d2841e3e6f54fb8c057119e0540d"},
221
221
  ]
222
222
 
223
223
  [package.dependencies]
224
- bitarray = ">=2.8.0,<3.0.0"
224
+ bitarray = ">=2.9.0,<3.0.0"
225
225
 
226
226
  [[package]]
227
227
  name = "blessed"
@@ -450,63 +450,63 @@ files = [
450
450
 
451
451
  [[package]]
452
452
  name = "coverage"
453
- version = "7.4.4"
453
+ version = "7.5.0"
454
454
  description = "Code coverage measurement for Python"
455
455
  optional = false
456
456
  python-versions = ">=3.8"
457
457
  files = [
458
- {file = "coverage-7.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0be5efd5127542ef31f165de269f77560d6cdef525fffa446de6f7e9186cfb2"},
459
- {file = "coverage-7.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ccd341521be3d1b3daeb41960ae94a5e87abe2f46f17224ba5d6f2b8398016cf"},
460
- {file = "coverage-7.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fa497a8ab37784fbb20ab699c246053ac294d13fc7eb40ec007a5043ec91f8"},
461
- {file = "coverage-7.4.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b1a93009cb80730c9bca5d6d4665494b725b6e8e157c1cb7f2db5b4b122ea562"},
462
- {file = "coverage-7.4.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:690db6517f09336559dc0b5f55342df62370a48f5469fabf502db2c6d1cffcd2"},
463
- {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:09c3255458533cb76ef55da8cc49ffab9e33f083739c8bd4f58e79fecfe288f7"},
464
- {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8ce1415194b4a6bd0cdcc3a1dfbf58b63f910dcb7330fe15bdff542c56949f87"},
465
- {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b91cbc4b195444e7e258ba27ac33769c41b94967919f10037e6355e998af255c"},
466
- {file = "coverage-7.4.4-cp310-cp310-win32.whl", hash = "sha256:598825b51b81c808cb6f078dcb972f96af96b078faa47af7dfcdf282835baa8d"},
467
- {file = "coverage-7.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:09ef9199ed6653989ebbcaacc9b62b514bb63ea2f90256e71fea3ed74bd8ff6f"},
468
- {file = "coverage-7.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0f9f50e7ef2a71e2fae92774c99170eb8304e3fdf9c8c3c7ae9bab3e7229c5cf"},
469
- {file = "coverage-7.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:623512f8ba53c422fcfb2ce68362c97945095b864cda94a92edbaf5994201083"},
470
- {file = "coverage-7.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0513b9508b93da4e1716744ef6ebc507aff016ba115ffe8ecff744d1322a7b63"},
471
- {file = "coverage-7.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40209e141059b9370a2657c9b15607815359ab3ef9918f0196b6fccce8d3230f"},
472
- {file = "coverage-7.4.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a2b2b78c78293782fd3767d53e6474582f62443d0504b1554370bde86cc8227"},
473
- {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:73bfb9c09951125d06ee473bed216e2c3742f530fc5acc1383883125de76d9cd"},
474
- {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f384c3cc76aeedce208643697fb3e8437604b512255de6d18dae3f27655a384"},
475
- {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:54eb8d1bf7cacfbf2a3186019bcf01d11c666bd495ed18717162f7eb1e9dd00b"},
476
- {file = "coverage-7.4.4-cp311-cp311-win32.whl", hash = "sha256:cac99918c7bba15302a2d81f0312c08054a3359eaa1929c7e4b26ebe41e9b286"},
477
- {file = "coverage-7.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:b14706df8b2de49869ae03a5ccbc211f4041750cd4a66f698df89d44f4bd30ec"},
478
- {file = "coverage-7.4.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:201bef2eea65e0e9c56343115ba3814e896afe6d36ffd37bab783261db430f76"},
479
- {file = "coverage-7.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:41c9c5f3de16b903b610d09650e5e27adbfa7f500302718c9ffd1c12cf9d6818"},
480
- {file = "coverage-7.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d898fe162d26929b5960e4e138651f7427048e72c853607f2b200909794ed978"},
481
- {file = "coverage-7.4.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ea79bb50e805cd6ac058dfa3b5c8f6c040cb87fe83de10845857f5535d1db70"},
482
- {file = "coverage-7.4.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce4b94265ca988c3f8e479e741693d143026632672e3ff924f25fab50518dd51"},
483
- {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:00838a35b882694afda09f85e469c96367daa3f3f2b097d846a7216993d37f4c"},
484
- {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:fdfafb32984684eb03c2d83e1e51f64f0906b11e64482df3c5db936ce3839d48"},
485
- {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:69eb372f7e2ece89f14751fbcbe470295d73ed41ecd37ca36ed2eb47512a6ab9"},
486
- {file = "coverage-7.4.4-cp312-cp312-win32.whl", hash = "sha256:137eb07173141545e07403cca94ab625cc1cc6bc4c1e97b6e3846270e7e1fea0"},
487
- {file = "coverage-7.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:d71eec7d83298f1af3326ce0ff1d0ea83c7cb98f72b577097f9083b20bdaf05e"},
488
- {file = "coverage-7.4.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d5ae728ff3b5401cc320d792866987e7e7e880e6ebd24433b70a33b643bb0384"},
489
- {file = "coverage-7.4.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cc4f1358cb0c78edef3ed237ef2c86056206bb8d9140e73b6b89fbcfcbdd40e1"},
490
- {file = "coverage-7.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8130a2aa2acb8788e0b56938786c33c7c98562697bf9f4c7d6e8e5e3a0501e4a"},
491
- {file = "coverage-7.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf271892d13e43bc2b51e6908ec9a6a5094a4df1d8af0bfc360088ee6c684409"},
492
- {file = "coverage-7.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4cdc86d54b5da0df6d3d3a2f0b710949286094c3a6700c21e9015932b81447e"},
493
- {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ae71e7ddb7a413dd60052e90528f2f65270aad4b509563af6d03d53e979feafd"},
494
- {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:38dd60d7bf242c4ed5b38e094baf6401faa114fc09e9e6632374388a404f98e7"},
495
- {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa5b1c1bfc28384f1f53b69a023d789f72b2e0ab1b3787aae16992a7ca21056c"},
496
- {file = "coverage-7.4.4-cp38-cp38-win32.whl", hash = "sha256:dfa8fe35a0bb90382837b238fff375de15f0dcdb9ae68ff85f7a63649c98527e"},
497
- {file = "coverage-7.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:b2991665420a803495e0b90a79233c1433d6ed77ef282e8e152a324bbbc5e0c8"},
498
- {file = "coverage-7.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3b799445b9f7ee8bf299cfaed6f5b226c0037b74886a4e11515e569b36fe310d"},
499
- {file = "coverage-7.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b4d33f418f46362995f1e9d4f3a35a1b6322cb959c31d88ae56b0298e1c22357"},
500
- {file = "coverage-7.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aadacf9a2f407a4688d700e4ebab33a7e2e408f2ca04dbf4aef17585389eff3e"},
501
- {file = "coverage-7.4.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c95949560050d04d46b919301826525597f07b33beba6187d04fa64d47ac82e"},
502
- {file = "coverage-7.4.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff7687ca3d7028d8a5f0ebae95a6e4827c5616b31a4ee1192bdfde697db110d4"},
503
- {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5fc1de20b2d4a061b3df27ab9b7c7111e9a710f10dc2b84d33a4ab25065994ec"},
504
- {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c74880fc64d4958159fbd537a091d2a585448a8f8508bf248d72112723974cbd"},
505
- {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:742a76a12aa45b44d236815d282b03cfb1de3b4323f3e4ec933acfae08e54ade"},
506
- {file = "coverage-7.4.4-cp39-cp39-win32.whl", hash = "sha256:d89d7b2974cae412400e88f35d86af72208e1ede1a541954af5d944a8ba46c57"},
507
- {file = "coverage-7.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:9ca28a302acb19b6af89e90f33ee3e1906961f94b54ea37de6737b7ca9d8827c"},
508
- {file = "coverage-7.4.4-pp38.pp39.pp310-none-any.whl", hash = "sha256:b2c5edc4ac10a7ef6605a966c58929ec6c1bd0917fb8c15cb3363f65aa40e677"},
509
- {file = "coverage-7.4.4.tar.gz", hash = "sha256:c901df83d097649e257e803be22592aedfd5182f07b3cc87d640bbb9afd50f49"},
458
+ {file = "coverage-7.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:432949a32c3e3f820af808db1833d6d1631664d53dd3ce487aa25d574e18ad1c"},
459
+ {file = "coverage-7.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2bd7065249703cbeb6d4ce679c734bef0ee69baa7bff9724361ada04a15b7e3b"},
460
+ {file = "coverage-7.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbfe6389c5522b99768a93d89aca52ef92310a96b99782973b9d11e80511f932"},
461
+ {file = "coverage-7.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:39793731182c4be939b4be0cdecde074b833f6171313cf53481f869937129ed3"},
462
+ {file = "coverage-7.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85a5dbe1ba1bf38d6c63b6d2c42132d45cbee6d9f0c51b52c59aa4afba057517"},
463
+ {file = "coverage-7.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:357754dcdfd811462a725e7501a9b4556388e8ecf66e79df6f4b988fa3d0b39a"},
464
+ {file = "coverage-7.5.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a81eb64feded34f40c8986869a2f764f0fe2db58c0530d3a4afbcde50f314880"},
465
+ {file = "coverage-7.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:51431d0abbed3a868e967f8257c5faf283d41ec882f58413cf295a389bb22e58"},
466
+ {file = "coverage-7.5.0-cp310-cp310-win32.whl", hash = "sha256:f609ebcb0242d84b7adeee2b06c11a2ddaec5464d21888b2c8255f5fd6a98ae4"},
467
+ {file = "coverage-7.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:6782cd6216fab5a83216cc39f13ebe30adfac2fa72688c5a4d8d180cd52e8f6a"},
468
+ {file = "coverage-7.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e768d870801f68c74c2b669fc909839660180c366501d4cc4b87efd6b0eee375"},
469
+ {file = "coverage-7.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:84921b10aeb2dd453247fd10de22907984eaf80901b578a5cf0bb1e279a587cb"},
470
+ {file = "coverage-7.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:710c62b6e35a9a766b99b15cdc56d5aeda0914edae8bb467e9c355f75d14ee95"},
471
+ {file = "coverage-7.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c379cdd3efc0658e652a14112d51a7668f6bfca7445c5a10dee7eabecabba19d"},
472
+ {file = "coverage-7.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fea9d3ca80bcf17edb2c08a4704259dadac196fe5e9274067e7a20511fad1743"},
473
+ {file = "coverage-7.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:41327143c5b1d715f5f98a397608f90ab9ebba606ae4e6f3389c2145410c52b1"},
474
+ {file = "coverage-7.5.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:565b2e82d0968c977e0b0f7cbf25fd06d78d4856289abc79694c8edcce6eb2de"},
475
+ {file = "coverage-7.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cf3539007202ebfe03923128fedfdd245db5860a36810136ad95a564a2fdffff"},
476
+ {file = "coverage-7.5.0-cp311-cp311-win32.whl", hash = "sha256:bf0b4b8d9caa8d64df838e0f8dcf68fb570c5733b726d1494b87f3da85db3a2d"},
477
+ {file = "coverage-7.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c6384cc90e37cfb60435bbbe0488444e54b98700f727f16f64d8bfda0b84656"},
478
+ {file = "coverage-7.5.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fed7a72d54bd52f4aeb6c6e951f363903bd7d70bc1cad64dd1f087980d309ab9"},
479
+ {file = "coverage-7.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cbe6581fcff7c8e262eb574244f81f5faaea539e712a058e6707a9d272fe5b64"},
480
+ {file = "coverage-7.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad97ec0da94b378e593ef532b980c15e377df9b9608c7c6da3506953182398af"},
481
+ {file = "coverage-7.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd4bacd62aa2f1a1627352fe68885d6ee694bdaebb16038b6e680f2924a9b2cc"},
482
+ {file = "coverage-7.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:adf032b6c105881f9d77fa17d9eebe0ad1f9bfb2ad25777811f97c5362aa07f2"},
483
+ {file = "coverage-7.5.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4ba01d9ba112b55bfa4b24808ec431197bb34f09f66f7cb4fd0258ff9d3711b1"},
484
+ {file = "coverage-7.5.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:f0bfe42523893c188e9616d853c47685e1c575fe25f737adf473d0405dcfa7eb"},
485
+ {file = "coverage-7.5.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a9a7ef30a1b02547c1b23fa9a5564f03c9982fc71eb2ecb7f98c96d7a0db5cf2"},
486
+ {file = "coverage-7.5.0-cp312-cp312-win32.whl", hash = "sha256:3c2b77f295edb9fcdb6a250f83e6481c679335ca7e6e4a955e4290350f2d22a4"},
487
+ {file = "coverage-7.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:427e1e627b0963ac02d7c8730ca6d935df10280d230508c0ba059505e9233475"},
488
+ {file = "coverage-7.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9dd88fce54abbdbf4c42fb1fea0e498973d07816f24c0e27a1ecaf91883ce69e"},
489
+ {file = "coverage-7.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a898c11dca8f8c97b467138004a30133974aacd572818c383596f8d5b2eb04a9"},
490
+ {file = "coverage-7.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07dfdd492d645eea1bd70fb1d6febdcf47db178b0d99161d8e4eed18e7f62fe7"},
491
+ {file = "coverage-7.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3d117890b6eee85887b1eed41eefe2e598ad6e40523d9f94c4c4b213258e4a4"},
492
+ {file = "coverage-7.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6afd2e84e7da40fe23ca588379f815fb6dbbb1b757c883935ed11647205111cb"},
493
+ {file = "coverage-7.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a9960dd1891b2ddf13a7fe45339cd59ecee3abb6b8326d8b932d0c5da208104f"},
494
+ {file = "coverage-7.5.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ced268e82af993d7801a9db2dbc1d2322e786c5dc76295d8e89473d46c6b84d4"},
495
+ {file = "coverage-7.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e7c211f25777746d468d76f11719e64acb40eed410d81c26cefac641975beb88"},
496
+ {file = "coverage-7.5.0-cp38-cp38-win32.whl", hash = "sha256:262fffc1f6c1a26125d5d573e1ec379285a3723363f3bd9c83923c9593a2ac25"},
497
+ {file = "coverage-7.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:eed462b4541c540d63ab57b3fc69e7d8c84d5957668854ee4e408b50e92ce26a"},
498
+ {file = "coverage-7.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d0194d654e360b3e6cc9b774e83235bae6b9b2cac3be09040880bb0e8a88f4a1"},
499
+ {file = "coverage-7.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:33c020d3322662e74bc507fb11488773a96894aa82a622c35a5a28673c0c26f5"},
500
+ {file = "coverage-7.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbdf2cae14a06827bec50bd58e49249452d211d9caddd8bd80e35b53cb04631"},
501
+ {file = "coverage-7.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3235d7c781232e525b0761730e052388a01548bd7f67d0067a253887c6e8df46"},
502
+ {file = "coverage-7.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2de4e546f0ec4b2787d625e0b16b78e99c3e21bc1722b4977c0dddf11ca84e"},
503
+ {file = "coverage-7.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4d0e206259b73af35c4ec1319fd04003776e11e859936658cb6ceffdeba0f5be"},
504
+ {file = "coverage-7.5.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2055c4fb9a6ff624253d432aa471a37202cd8f458c033d6d989be4499aed037b"},
505
+ {file = "coverage-7.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:075299460948cd12722a970c7eae43d25d37989da682997687b34ae6b87c0ef0"},
506
+ {file = "coverage-7.5.0-cp39-cp39-win32.whl", hash = "sha256:280132aada3bc2f0fac939a5771db4fbb84f245cb35b94fae4994d4c1f80dae7"},
507
+ {file = "coverage-7.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:c58536f6892559e030e6924896a44098bc1290663ea12532c78cef71d0df8493"},
508
+ {file = "coverage-7.5.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:2b57780b51084d5223eee7b59f0d4911c31c16ee5aa12737c7a02455829ff067"},
509
+ {file = "coverage-7.5.0.tar.gz", hash = "sha256:cf62d17310f34084c59c01e027259076479128d11e4661bb6c9acb38c5e19bb8"},
510
510
  ]
511
511
 
512
512
  [package.extras]
@@ -596,13 +596,13 @@ files = [
596
596
 
597
597
  [[package]]
598
598
  name = "ecdsa"
599
- version = "0.18.0"
599
+ version = "0.19.0"
600
600
  description = "ECDSA cryptographic signature library (pure python)"
601
601
  optional = false
602
- python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
602
+ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.6"
603
603
  files = [
604
- {file = "ecdsa-0.18.0-py2.py3-none-any.whl", hash = "sha256:80600258e7ed2f16b9aa1d7c295bd70194109ad5a30fdee0eaeefef1d4c559dd"},
605
- {file = "ecdsa-0.18.0.tar.gz", hash = "sha256:190348041559e21b22a1d65cee485282ca11a6f81d503fddb84d5017e9ed1e49"},
604
+ {file = "ecdsa-0.19.0-py2.py3-none-any.whl", hash = "sha256:2cea9b88407fdac7bbeca0833b189e4c9c53f2ef1e1eaa29f6224dbc809b707a"},
605
+ {file = "ecdsa-0.19.0.tar.gz", hash = "sha256:60eaad1199659900dd0af521ed462b793bbdf867432b3948e87416ae4caf6bf8"},
606
606
  ]
607
607
 
608
608
  [package.dependencies]
@@ -652,13 +652,13 @@ hsm = ["python-pkcs11"]
652
652
 
653
653
  [[package]]
654
654
  name = "exceptiongroup"
655
- version = "1.2.0"
655
+ version = "1.2.1"
656
656
  description = "Backport of PEP 654 (exception groups)"
657
657
  optional = false
658
658
  python-versions = ">=3.7"
659
659
  files = [
660
- {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"},
661
- {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"},
660
+ {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"},
661
+ {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"},
662
662
  ]
663
663
 
664
664
  [package.extras]
@@ -691,13 +691,13 @@ pyreadline3 = {version = "*", markers = "sys_platform == \"win32\" and python_ve
691
691
 
692
692
  [[package]]
693
693
  name = "idna"
694
- version = "3.6"
694
+ version = "3.7"
695
695
  description = "Internationalized Domain Names in Applications (IDNA)"
696
696
  optional = false
697
697
  python-versions = ">=3.5"
698
698
  files = [
699
- {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"},
700
- {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"},
699
+ {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"},
700
+ {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"},
701
701
  ]
702
702
 
703
703
  [[package]]
@@ -921,28 +921,29 @@ test = ["deepdiff (>=6.7.1)", "rich (>=13.7.0)"]
921
921
 
922
922
  [[package]]
923
923
  name = "platformdirs"
924
- version = "4.2.0"
925
- description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
924
+ version = "4.2.1"
925
+ description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
926
926
  optional = false
927
927
  python-versions = ">=3.8"
928
928
  files = [
929
- {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"},
930
- {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"},
929
+ {file = "platformdirs-4.2.1-py3-none-any.whl", hash = "sha256:17d5a1161b3fd67b390023cb2d3b026bbd40abde6fdb052dfbd3a29c3ba22ee1"},
930
+ {file = "platformdirs-4.2.1.tar.gz", hash = "sha256:031cd18d4ec63ec53e82dceaac0417d218a6863f7745dfcc9efe7793b7039bdf"},
931
931
  ]
932
932
 
933
933
  [package.extras]
934
934
  docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"]
935
935
  test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"]
936
+ type = ["mypy (>=1.8)"]
936
937
 
937
938
  [[package]]
938
939
  name = "pluggy"
939
- version = "1.4.0"
940
+ version = "1.5.0"
940
941
  description = "plugin and hook calling mechanisms for python"
941
942
  optional = false
942
943
  python-versions = ">=3.8"
943
944
  files = [
944
- {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"},
945
- {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"},
945
+ {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"},
946
+ {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"},
946
947
  ]
947
948
 
948
949
  [package.extras]
@@ -1360,18 +1361,18 @@ xmod = "*"
1360
1361
 
1361
1362
  [[package]]
1362
1363
  name = "setuptools"
1363
- version = "69.2.0"
1364
+ version = "69.5.1"
1364
1365
  description = "Easily download, build, install, upgrade, and uninstall Python packages"
1365
1366
  optional = false
1366
1367
  python-versions = ">=3.8"
1367
1368
  files = [
1368
- {file = "setuptools-69.2.0-py3-none-any.whl", hash = "sha256:c21c49fb1042386df081cb5d86759792ab89efca84cf114889191cd09aacc80c"},
1369
- {file = "setuptools-69.2.0.tar.gz", hash = "sha256:0ff4183f8f42cd8fa3acea16c45205521a4ef28f73c6391d8a25e92893134f2e"},
1369
+ {file = "setuptools-69.5.1-py3-none-any.whl", hash = "sha256:c636ac361bc47580504644275c9ad802c50415c7522212252c033bd15f301f32"},
1370
+ {file = "setuptools-69.5.1.tar.gz", hash = "sha256:6c1fccdac05a97e598fb0ae3bbed5904ccb317337a51139dcd51453611bbb987"},
1370
1371
  ]
1371
1372
 
1372
1373
  [package.extras]
1373
- docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
1374
- testing = ["build[virtualenv]", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
1374
+ docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
1375
+ testing = ["build[virtualenv]", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
1375
1376
  testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"]
1376
1377
 
1377
1378
  [[package]]
@@ -1434,13 +1435,13 @@ files = [
1434
1435
 
1435
1436
  [[package]]
1436
1437
  name = "typing-extensions"
1437
- version = "4.10.0"
1438
+ version = "4.11.0"
1438
1439
  description = "Backported and Experimental Type Hints for Python 3.8+"
1439
1440
  optional = false
1440
1441
  python-versions = ">=3.8"
1441
1442
  files = [
1442
- {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"},
1443
- {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"},
1443
+ {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"},
1444
+ {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"},
1444
1445
  ]
1445
1446
 
1446
1447
  [[package]]
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "mpflash"
3
- version = "0.6.0"
3
+ version = "0.7.0"
4
4
  description = "Flash and download tool for MicroPython firmwares"
5
5
  authors = ["Jos Verlinde <jos_verlinde@hotmail.com>"]
6
6
  license = "MIT"
@@ -0,0 +1,3 @@
1
+ """get the version"""
2
+
3
+ __version__ = "1.20.0"
@@ -24,7 +24,7 @@ try:
24
24
  except ImportError:
25
25
  from ucollections import OrderedDict # type: ignore
26
26
 
27
- __version__ = "v1.19.0"
27
+ __version__ = "v1.20.0"
28
28
  ENOENT = 2
29
29
  _MAX_CLASS_LEVEL = 2 # Max class nesting
30
30
  LIBS = ["lib", "/lib", "/sd/lib", "/flash/lib", "."]
@@ -951,6 +951,7 @@ def main():
951
951
  "uwebsocket",
952
952
  "uzlib",
953
953
  "version",
954
+ "vfs",
954
955
  "websocket",
955
956
  "websocket_helper",
956
957
  "wipy",
@@ -18,7 +18,7 @@ Create stubs for (all) modules on a MicroPython board.
18
18
  - cross compilation, using mpy-cross, to avoid the compilation step on the micropython device
19
19
 
20
20
 
21
- This variant was generated from createstubs.py by micropython-stubber v1.19.0
21
+ This variant was generated from createstubs.py by micropython-stubber v1.20.0
22
22
  """
23
23
 
24
24
  # Copyright (c) 2019-2024 Jos Verlinde
@@ -43,7 +43,7 @@ try:
43
43
  except ImportError:
44
44
  from ucollections import OrderedDict # type: ignore
45
45
 
46
- __version__ = "v1.19.0"
46
+ __version__ = "v1.20.0"
47
47
  ENOENT = 2
48
48
  _MAX_CLASS_LEVEL = 2 # Max class nesting
49
49
  LIBS = ["lib", "/lib", "/sd/lib", "/flash/lib", "."]
@@ -51,7 +51,7 @@ try:from machine import reset
51
51
  except O:pass
52
52
  try:from collections import OrderedDict as l
53
53
  except O:from ucollections import OrderedDict as l
54
- __version__='v1.19.0'
54
+ __version__='v1.20.0'
55
55
  A3=2
56
56
  A4=2
57
57
  A5=['lib','/lib','/sd/lib','/flash/lib',J]
@@ -9,7 +9,7 @@
9
9
  - cross compilation, using mpy-cross,
10
10
  to avoid the compilation step on the micropython device
11
11
 
12
- This variant was generated from createstubs.py by micropython-stubber v1.19.0
12
+ This variant was generated from createstubs.py by micropython-stubber v1.20.0
13
13
  """
14
14
 
15
15
  # Copyright (c) 2019-2024 Jos Verlinde
@@ -34,7 +34,7 @@ try:
34
34
  except ImportError:
35
35
  from ucollections import OrderedDict # type: ignore
36
36
 
37
- __version__ = "v1.19.0"
37
+ __version__ = "v1.20.0"
38
38
  ENOENT = 2
39
39
  _MAX_CLASS_LEVEL = 2 # Max class nesting
40
40
  LIBS = ["lib", "/lib", "/sd/lib", "/flash/lib", "."]
@@ -47,7 +47,7 @@ try:from machine import reset
47
47
  except N:pass
48
48
  try:from collections import OrderedDict as g
49
49
  except N:from ucollections import OrderedDict as g
50
- __version__='v1.19.0'
50
+ __version__='v1.20.0'
51
51
  y=2
52
52
  z=2
53
53
  A0=['lib','/lib','/sd/lib','/flash/lib',J]
@@ -50,7 +50,7 @@ try:from machine import reset
50
50
  except N:pass
51
51
  try:from collections import OrderedDict as h
52
52
  except N:from ucollections import OrderedDict as h
53
- __version__='v1.19.0'
53
+ __version__='v1.20.0'
54
54
  A0=2
55
55
  A1=2
56
56
  A5=['lib','/lib','/sd/lib','/flash/lib',J]
@@ -287,7 +287,7 @@ def read_path():
287
287
  def j():
288
288
  try:A=bytes('abc',encoding='utf8');B=j.__module__;return H
289
289
  except(k,I):return U
290
- def main():stubber=Stubber(path=read_path());stubber.clean();stubber.modules=['WM8960','_OTA','_asyncio','_boot_fat','_coap','_espnow','_flash_control_OTA','_main_pybytes','_mqtt','_mqtt_core','_msg_handl','_onewire','_periodical_pin','_pybytes','_pybytes_ca','_pybytes_config','_pybytes_config_reader','_pybytes_connection','_pybytes_constants','_pybytes_debug','_pybytes_library','_pybytes_machine_learning','_pybytes_main','_pybytes_protocol','_pybytes_pyconfig','_pybytes_pymesh_config','_rp2','_terminal','_thread','_uasyncio','_urequest','adcfft','aioble/__init__','aioble/central','aioble/client','aioble/core','aioble/device','aioble/l2cap','aioble/peripheral','aioble/security','aioble/server','aioespnow','ak8963','apa102','apa106','argparse','array','asyncio/__init__','asyncio/core','asyncio/event','asyncio/funcs','asyncio/lock','asyncio/stream','binascii','bluetooth','breakout_as7262','breakout_bh1745','breakout_bme280','breakout_bme68x','breakout_bmp280','breakout_dotmatrix','breakout_encoder','breakout_icp10125','breakout_ioexpander','breakout_ltr559','breakout_matrix11x7','breakout_mics6814','breakout_msa301','breakout_paa5100','breakout_pmw3901','breakout_potentiometer','breakout_rgbmatrix5x5','breakout_rtc','breakout_scd41','breakout_sgp30','breakout_trackball','breakout_vl53l5cx','btree','cmath','collections','crypto','cryptolib','curl','deflate','dht','display','display_driver_utils','ds18x20','encoder','errno','esp','esp32','espidf','espnow','ffi','flashbdev','framebuf','freesans20','fs_driver','functools','galactic','gc','gfx_pack','gsm','hashlib','heapq','hub75','ili9341','ili9XXX','imagetools','inisetup','interstate75','io','jpegdec','json','lcd160cr','lodepng',w,'lsm6dsox','lv_colors','lv_utils','lvgl','lwip','machine','math','microWebSocket','microWebSrv','microWebTemplate',b,'mip','mip/__init__','mip/__main__','motor','mpu6500','mpu9250','neopixel','network','ntptime','onewire','os','pcf85063a','picoexplorer','picographics','picokeypad','picoscroll','picounicorn','picowireless','pimoroni','pimoroni_bus','pimoroni_i2c','plasma','platform','pyb',g,'pye','qrcode','queue','random','requests','requests/__init__','rp2','rtch','samd','select','servo','socket','ssd1306','ssh','ssl','stm','struct',v,'termios','time','tpcalib','uarray','uasyncio/__init__','uasyncio/core','uasyncio/event','uasyncio/funcs','uasyncio/lock','uasyncio/stream','uasyncio/tasks','ubinascii','ubluetooth','ucollections','ucrypto','ucryptolib','uctypes','uerrno','uftpd','uhashlib','uheapq','uio','ujson','ulab','ulab/approx','ulab/compare','ulab/fft','ulab/filter','ulab/linalg','ulab/numerical','ulab/poly','ulab/user','ulab/vector','umachine','umqtt/__init__','umqtt/robust','umqtt/simple','uos','uplatform','uqueue','urandom','ure','urequests','urllib/urequest','uselect','usocket','ussl','ustruct','usys','utelnetserver','utime','utimeq','uwebsocket','uzlib',C,'websocket','websocket_helper','wipy','writer','xpt2046','ymodem','zephyr','zlib'];F.collect();stubber.create_all_stubs()
290
+ def main():stubber=Stubber(path=read_path());stubber.clean();stubber.modules=['WM8960','_OTA','_asyncio','_boot_fat','_coap','_espnow','_flash_control_OTA','_main_pybytes','_mqtt','_mqtt_core','_msg_handl','_onewire','_periodical_pin','_pybytes','_pybytes_ca','_pybytes_config','_pybytes_config_reader','_pybytes_connection','_pybytes_constants','_pybytes_debug','_pybytes_library','_pybytes_machine_learning','_pybytes_main','_pybytes_protocol','_pybytes_pyconfig','_pybytes_pymesh_config','_rp2','_terminal','_thread','_uasyncio','_urequest','adcfft','aioble/__init__','aioble/central','aioble/client','aioble/core','aioble/device','aioble/l2cap','aioble/peripheral','aioble/security','aioble/server','aioespnow','ak8963','apa102','apa106','argparse','array','asyncio/__init__','asyncio/core','asyncio/event','asyncio/funcs','asyncio/lock','asyncio/stream','binascii','bluetooth','breakout_as7262','breakout_bh1745','breakout_bme280','breakout_bme68x','breakout_bmp280','breakout_dotmatrix','breakout_encoder','breakout_icp10125','breakout_ioexpander','breakout_ltr559','breakout_matrix11x7','breakout_mics6814','breakout_msa301','breakout_paa5100','breakout_pmw3901','breakout_potentiometer','breakout_rgbmatrix5x5','breakout_rtc','breakout_scd41','breakout_sgp30','breakout_trackball','breakout_vl53l5cx','btree','cmath','collections','crypto','cryptolib','curl','deflate','dht','display','display_driver_utils','ds18x20','encoder','errno','esp','esp32','espidf','espnow','ffi','flashbdev','framebuf','freesans20','fs_driver','functools','galactic','gc','gfx_pack','gsm','hashlib','heapq','hub75','ili9341','ili9XXX','imagetools','inisetup','interstate75','io','jpegdec','json','lcd160cr','lodepng',w,'lsm6dsox','lv_colors','lv_utils','lvgl','lwip','machine','math','microWebSocket','microWebSrv','microWebTemplate',b,'mip','mip/__init__','mip/__main__','motor','mpu6500','mpu9250','neopixel','network','ntptime','onewire','os','pcf85063a','picoexplorer','picographics','picokeypad','picoscroll','picounicorn','picowireless','pimoroni','pimoroni_bus','pimoroni_i2c','plasma','platform','pyb',g,'pye','qrcode','queue','random','requests','requests/__init__','rp2','rtch','samd','select','servo','socket','ssd1306','ssh','ssl','stm','struct',v,'termios','time','tpcalib','uarray','uasyncio/__init__','uasyncio/core','uasyncio/event','uasyncio/funcs','uasyncio/lock','uasyncio/stream','uasyncio/tasks','ubinascii','ubluetooth','ucollections','ucrypto','ucryptolib','uctypes','uerrno','uftpd','uhashlib','uheapq','uio','ujson','ulab','ulab/approx','ulab/compare','ulab/fft','ulab/filter','ulab/linalg','ulab/numerical','ulab/poly','ulab/user','ulab/vector','umachine','umqtt/__init__','umqtt/robust','umqtt/simple','uos','uplatform','uqueue','urandom','ure','urequests','urllib/urequest','uselect','usocket','ussl','ustruct','usys','utelnetserver','utime','utimeq','uwebsocket','uzlib',C,'vfs','websocket','websocket_helper','wipy','writer','xpt2046','ymodem','zephyr','zlib'];F.collect();stubber.create_all_stubs()
291
291
  if __name__=='__main__'or j():
292
292
  if not A4('no_auto_stubber.txt'):
293
293
  try:F.threshold(4*1024);F.enable()