micropython-stubber 1.23.1__py3-none-any.whl → 1.23.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.2.dist-info}/LICENSE +30 -30
  2. {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.2.dist-info}/METADATA +32 -15
  3. micropython_stubber-1.23.2.dist-info/RECORD +158 -0
  4. micropython_stubber-1.23.2.dist-info/entry_points.txt +5 -0
  5. mpflash/README.md +220 -194
  6. mpflash/libusb_flash.ipynb +203 -203
  7. mpflash/mpflash/add_firmware.py +98 -98
  8. mpflash/mpflash/ask_input.py +236 -236
  9. mpflash/mpflash/basicgit.py +284 -284
  10. mpflash/mpflash/bootloader/__init__.py +2 -2
  11. mpflash/mpflash/bootloader/activate.py +60 -60
  12. mpflash/mpflash/bootloader/detect.py +82 -82
  13. mpflash/mpflash/bootloader/manual.py +101 -101
  14. mpflash/mpflash/bootloader/micropython.py +12 -12
  15. mpflash/mpflash/bootloader/touch1200.py +36 -36
  16. mpflash/mpflash/cli_download.py +129 -129
  17. mpflash/mpflash/cli_flash.py +224 -219
  18. mpflash/mpflash/cli_group.py +111 -111
  19. mpflash/mpflash/cli_list.py +87 -81
  20. mpflash/mpflash/cli_main.py +39 -39
  21. mpflash/mpflash/common.py +210 -165
  22. mpflash/mpflash/config.py +44 -44
  23. mpflash/mpflash/connected.py +96 -78
  24. mpflash/mpflash/download.py +364 -364
  25. mpflash/mpflash/downloaded.py +130 -130
  26. mpflash/mpflash/errors.py +9 -9
  27. mpflash/mpflash/flash/__init__.py +55 -55
  28. mpflash/mpflash/flash/esp.py +59 -59
  29. mpflash/mpflash/flash/stm32.py +19 -19
  30. mpflash/mpflash/flash/stm32_dfu.py +104 -104
  31. mpflash/mpflash/flash/uf2/__init__.py +88 -88
  32. mpflash/mpflash/flash/uf2/boardid.py +15 -15
  33. mpflash/mpflash/flash/uf2/linux.py +136 -130
  34. mpflash/mpflash/flash/uf2/macos.py +42 -42
  35. mpflash/mpflash/flash/uf2/uf2disk.py +12 -12
  36. mpflash/mpflash/flash/uf2/windows.py +43 -43
  37. mpflash/mpflash/flash/worklist.py +170 -170
  38. mpflash/mpflash/list.py +106 -99
  39. mpflash/mpflash/logger.py +41 -41
  40. mpflash/mpflash/mpboard_id/__init__.py +93 -93
  41. mpflash/mpflash/mpboard_id/add_boards.py +251 -251
  42. mpflash/mpflash/mpboard_id/board.py +37 -37
  43. mpflash/mpflash/mpboard_id/board_id.py +86 -86
  44. mpflash/mpflash/mpboard_id/store.py +43 -43
  45. mpflash/mpflash/mpremoteboard/__init__.py +266 -222
  46. mpflash/mpflash/mpremoteboard/mpy_fw_info.py +141 -141
  47. mpflash/mpflash/mpremoteboard/runner.py +140 -140
  48. mpflash/mpflash/vendor/click_aliases.py +91 -91
  49. mpflash/mpflash/vendor/dfu.py +165 -165
  50. mpflash/mpflash/vendor/pydfu.py +605 -605
  51. mpflash/mpflash/vendor/readme.md +2 -2
  52. mpflash/mpflash/versions.py +135 -135
  53. mpflash/poetry.lock +1599 -1599
  54. mpflash/pyproject.toml +65 -65
  55. mpflash/stm32_udev_rules.md +62 -62
  56. stubber/__init__.py +3 -3
  57. stubber/board/board_info.csv +193 -193
  58. stubber/board/boot.py +34 -34
  59. stubber/board/createstubs.py +1004 -986
  60. stubber/board/createstubs_db.py +826 -825
  61. stubber/board/createstubs_db_min.py +332 -331
  62. stubber/board/createstubs_db_mpy.mpy +0 -0
  63. stubber/board/createstubs_lvgl.py +741 -741
  64. stubber/board/createstubs_lvgl_min.py +741 -741
  65. stubber/board/createstubs_mem.py +767 -766
  66. stubber/board/createstubs_mem_min.py +307 -306
  67. stubber/board/createstubs_mem_mpy.mpy +0 -0
  68. stubber/board/createstubs_min.py +295 -294
  69. stubber/board/createstubs_mpy.mpy +0 -0
  70. stubber/board/fw_info.py +141 -141
  71. stubber/board/info.py +183 -183
  72. stubber/board/main.py +19 -19
  73. stubber/board/modulelist.txt +247 -247
  74. stubber/board/pyrightconfig.json +34 -34
  75. stubber/bulk/mcu_stubber.py +437 -454
  76. stubber/codemod/_partials/__init__.py +48 -48
  77. stubber/codemod/_partials/db_main.py +147 -147
  78. stubber/codemod/_partials/lvgl_main.py +77 -77
  79. stubber/codemod/_partials/modules_reader.py +80 -80
  80. stubber/codemod/add_comment.py +53 -53
  81. stubber/codemod/add_method.py +65 -65
  82. stubber/codemod/board.py +317 -317
  83. stubber/codemod/enrich.py +151 -145
  84. stubber/codemod/merge_docstub.py +284 -284
  85. stubber/codemod/modify_list.py +54 -54
  86. stubber/codemod/utils.py +56 -56
  87. stubber/commands/build_cmd.py +94 -94
  88. stubber/commands/cli.py +49 -55
  89. stubber/commands/clone_cmd.py +78 -78
  90. stubber/commands/config_cmd.py +29 -29
  91. stubber/commands/enrich_folder_cmd.py +71 -71
  92. stubber/commands/get_core_cmd.py +71 -71
  93. stubber/commands/get_docstubs_cmd.py +92 -89
  94. stubber/commands/get_frozen_cmd.py +117 -114
  95. stubber/commands/get_mcu_cmd.py +102 -61
  96. stubber/commands/merge_cmd.py +66 -66
  97. stubber/commands/publish_cmd.py +118 -118
  98. stubber/commands/stub_cmd.py +31 -31
  99. stubber/commands/switch_cmd.py +62 -62
  100. stubber/commands/variants_cmd.py +48 -48
  101. stubber/cst_transformer.py +178 -178
  102. stubber/data/board_info.csv +193 -193
  103. stubber/data/board_info.json +1729 -1729
  104. stubber/data/micropython_tags.csv +15 -15
  105. stubber/data/requirements-core-micropython.txt +38 -38
  106. stubber/data/requirements-core-pycopy.txt +39 -39
  107. stubber/downloader.py +37 -36
  108. stubber/freeze/common.py +72 -68
  109. stubber/freeze/freeze_folder.py +69 -69
  110. stubber/freeze/freeze_manifest_2.py +126 -113
  111. stubber/freeze/get_frozen.py +131 -127
  112. stubber/get_cpython.py +112 -101
  113. stubber/get_lobo.py +59 -59
  114. stubber/minify.py +423 -419
  115. stubber/publish/bump.py +86 -86
  116. stubber/publish/candidates.py +275 -256
  117. stubber/publish/database.py +18 -18
  118. stubber/publish/defaults.py +40 -40
  119. stubber/publish/enums.py +24 -24
  120. stubber/publish/helpers.py +29 -29
  121. stubber/publish/merge_docstubs.py +136 -130
  122. stubber/publish/missing_class_methods.py +51 -49
  123. stubber/publish/package.py +150 -146
  124. stubber/publish/pathnames.py +51 -51
  125. stubber/publish/publish.py +120 -120
  126. stubber/publish/pypi.py +42 -38
  127. stubber/publish/stubpackage.py +1055 -1027
  128. stubber/rst/__init__.py +9 -9
  129. stubber/rst/classsort.py +78 -77
  130. stubber/rst/lookup.py +533 -530
  131. stubber/rst/output_dict.py +401 -401
  132. stubber/rst/reader.py +814 -814
  133. stubber/rst/report_return.py +77 -69
  134. stubber/rst/rst_utils.py +541 -540
  135. stubber/stubber.py +38 -38
  136. stubber/stubs_from_docs.py +90 -90
  137. stubber/tools/manifestfile.py +654 -654
  138. stubber/tools/readme.md +6 -6
  139. stubber/update_fallback.py +117 -117
  140. stubber/update_module_list.py +123 -123
  141. stubber/utils/__init__.py +6 -6
  142. stubber/utils/config.py +137 -125
  143. stubber/utils/makeversionhdr.py +54 -54
  144. stubber/utils/manifest.py +90 -90
  145. stubber/utils/post.py +80 -79
  146. stubber/utils/repos.py +156 -150
  147. stubber/utils/stubmaker.py +139 -139
  148. stubber/utils/typed_config_toml.py +80 -77
  149. stubber/variants.py +106 -106
  150. micropython_stubber-1.23.1.dist-info/RECORD +0 -159
  151. micropython_stubber-1.23.1.dist-info/entry_points.txt +0 -3
  152. mpflash/basicgit.py +0 -288
  153. {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.2.dist-info}/WHEEL +0 -0
@@ -1,159 +0,0 @@
1
- mpflash/README.md,sha256=cajL2pq_Fjt7G7cOHp1_uDTf5jmOf6iQwOIvg2X5AJ0,14233
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=Ip5HViXCVAiG88XgJ3Lg_hhBGIF5DKFTNpL-_gQkdV0,3520
15
- mpflash/mpflash/cli_flash.py,sha256=KFuJRNgOZ62m70I_KqxqLfLE69b4bOCj69MOfIWdZRo,7136
16
- mpflash/mpflash/cli_group.py,sha256=JFBtp4qhakJeQkuupEoObHeSFke8eWIU1HjnOZ-JfH0,2504
17
- mpflash/mpflash/cli_list.py,sha256=AvYq5_Z7l0Z4rkbr23TwFNzstuZsQgopFpdcrTLwUvs,1965
18
- mpflash/mpflash/cli_main.py,sha256=cElgh8Soq3U5TEAvrrD1sj7NDi-Eb-pei3QcMI0tlwE,1094
19
- mpflash/mpflash/common.py,sha256=h4pVuOpopn5oIy5NQdbggtOOktTL_c92cS_oUfPG4v8,5783
20
- mpflash/mpflash/config.py,sha256=h2Oq7kSe40tOnglpo02wkpaPHxHNVqyB3uGxreIu57U,1029
21
- mpflash/mpflash/connected.py,sha256=p6RMix-tFr0pfT9TErh0LD1nm24ApTr3CqVGcrnDHk8,3024
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=O0tX4BvclmDMnnjMxCN9Zh8hdL6vnuvS9pLNxYLBya8,3112
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=7uI-5HJgNsQz_EOCW3cRy2xtqXKt9kX51gDSx6HC0Kc,7522
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=MCytD4FfOtlJX5MbeO2yU1GvnqqDQzpjy1jC4e-6nFM,1701
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=_iv2G3QaiGxe7L7W40KahNGyOoKTGw_yyyejMHY6O7Q,15893
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=9hb2__De3eNkF8WKg0CLwYs0lngIDJ0M3nmx2yyuGCU,5293
85
- stubber/codemod/merge_docstub.py,sha256=-F2P9UAD98Xt8ArsNqQJ-AM6bz9H9V9E3S2d17Jk5xg,12397
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=lZfbxPyduDkLDTCGWI_nBc_3lKwZjfWPvq4nVy2v944,2381
90
- stubber/commands/cli.py,sha256=PkwD9c3dkvhbmX5u1eGjSxE8y5Uph0Ke1_x9HTyjA-4,1836
91
- stubber/commands/clone_cmd.py,sha256=_bSv9R6zuYp7N8dpUUMupUMk4dpFEAhRzV8HoaApGHg,2689
92
- stubber/commands/config_cmd.py,sha256=CMFe0IngKPJYrb3kcZ6BObBOh4dW_0Wf7etAuJthB18,964
93
- stubber/commands/enrich_folder_cmd.py,sha256=ysdd_CLdPCiEja4xuFOAX_a89telX4Da7cvkrpXP4lY,1798
94
- stubber/commands/get_core_cmd.py,sha256=VwkZl9g81LvwWu4grrIb2Qo8M5-yXrDEX5mUWJ2uKFo,2240
95
- stubber/commands/get_docstubs_cmd.py,sha256=gGn0cUVledj4GjCqOIM8p2piiarddWknTlU5UqumC44,2935
96
- stubber/commands/get_frozen_cmd.py,sha256=dzIivxAmef2OlVrL914ZCQUs7m9L_rkzTeh1aMsrGmk,3857
97
- stubber/commands/get_mcu_cmd.py,sha256=7xhu8vfaa_nCyE-T-8OIedgpDTyae3KquxvLsL3Dx3E,2018
98
- stubber/commands/merge_cmd.py,sha256=kK8SGfB3SDiNkwyhzFQyyRvmw1q2Q7kswv-ml30ktCw,1605
99
- stubber/commands/publish_cmd.py,sha256=qfSyPXMSPE1qHe0mG9JW_90IK16E_jCF9a47TR1ywN0,2788
100
- stubber/commands/stub_cmd.py,sha256=PzvCppuhY2vRJJEzKbdc87WnrVEd3jPJ7AdtQeUSpn8,1171
101
- stubber/commands/switch_cmd.py,sha256=qfJxshcKZggHsmGX-FBpLj06PAnIfHFU6hmCcFv-n34,1819
102
- stubber/commands/variants_cmd.py,sha256=nJKePmxNzyz82b8E-qcJGvzHGTdFxowxKNOz7KDe1k4,1234
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=TwvdzSdep1jtCpjocqFJdi7c-I5bZSc3dhfDE5zX-ps,1170
110
- stubber/freeze/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
- stubber/freeze/common.py,sha256=gY0JSlXmwZqnoosb91M7W3wy3Ej6w48dTdJP8gKOg-U,2571
112
- stubber/freeze/freeze_folder.py,sha256=-n1w9jxzLjL1Sg-f9VHqHaxsBKDiPGHqBNgeY68pqq8,2422
113
- stubber/freeze/freeze_manifest_2.py,sha256=uogLPLb4bAah5ULkKzhWWadvu0CswGI3TygRqOb5XYc,3948
114
- stubber/freeze/get_frozen.py,sha256=7s0thtTccXmJw6QgfeZaQX-X-STqeBWx_97Nayrffuo,5157
115
- stubber/get_cpython.py,sha256=PEiDn2STECuKeRBSyWx7WuexUpSsyZ-76jQrBvWZY4U,3683
116
- stubber/get_lobo.py,sha256=I6bVpcGX7TaD4CI9UID8R9brOG-bBdeL07j1WsTXQH4,1717
117
- stubber/minify.py,sha256=3PRfq6J8etJLmh0b6WQJQazotUiF0AX0zxrS1ZPRJ44,14616
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=JFR9V77DTwBMo_8Z-cZXHwiAA-751o54kBdVhWwAYpk,10328
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=nQJVloB_iHnsEiILCHIJrS2dgR1bP06LtiXYyaJi4Sc,5189
126
- stubber/publish/missing_class_methods.py,sha256=khb5JcOF6ImLunRZtFa8wMa9whnZkBsAiM1mdxTV9o8,1768
127
- stubber/publish/package.py,sha256=Oo7QM1aDmM2-RPPlKAwytePrno1s4O6J9_P0LRzQRkE,5122
128
- stubber/publish/pathnames.py,sha256=VwBDZZy8vsJkmcHvkRA_eaL2DSdPFRJAjvQ0KNM_288,1754
129
- stubber/publish/publish.py,sha256=DPpzb8Jo5wyvOvJawAEqnleE20bVMZTfYzKXS3DuRqY,3827
130
- stubber/publish/pypi.py,sha256=fuxpVFOvvCXXjdTgEB2vWqMjhwUDDQMiHJ6N98C_JdM,1202
131
- stubber/publish/stubpackage.py,sha256=ntM1FZn2n0zxFWNKzKABQGNPg47T_ZJngmgDrWRv9h0,43666
132
- stubber/rst/__init__.py,sha256=8KUzMFNdDU9X6U1VMU1q5bGu_KGxB1XNcJhzNg7tF98,284
133
- stubber/rst/classsort.py,sha256=jofWVYPQQUzUhN-t2qFJT6381DH46Pjy0fTp5ek5JJU,2578
134
- stubber/rst/lookup.py,sha256=QIX0_xbXydfXgD-7ctni3QJo2hFN7BzsGz-5Bq1owKQ,19656
135
- stubber/rst/output_dict.py,sha256=tH_32ZTNj7BndvY2YcZCa1uB-lLeyJUeltoEkTT_Np8,14354
136
- stubber/rst/reader.py,sha256=LDeH1dTWsg6hPwtXTyPX1sbRkvKqG1dGJKM2TDkBEh4,32758
137
- stubber/rst/report_return.py,sha256=r6WeysP2VygcBM-nk1Jo_iItcxsl6sWgWg6myHTjBFY,2745
138
- stubber/rst/rst_utils.py,sha256=8wfodql00CnO57x8VeNh1yoz7yx_ONa330kWuR1JFoE,17277
139
- stubber/stubber.py,sha256=sScRIAq7vvUZUS9Mzh4Ne6ny0qpsReGNqo0u8vtZXEc,1596
140
- stubber/stubs_from_docs.py,sha256=jcNdbNFQ6qZiVOVzdD8nfBNTubD-jviL_KJDPqOfTxo,2743
141
- stubber/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
- stubber/tools/manifestfile.py,sha256=1P2_MUPZ6PIoHR71pLFKDycknY6N9BG8eUScV-JsUXc,25082
143
- stubber/tools/readme.md,sha256=NJ_g0oeeExhiRs2lMQVekccnR_c2lGLt-snu1RnUIx0,278
144
- stubber/update_fallback.py,sha256=r7pVfUxVkJWVBFDfN_u5XaFJ5jg7FpFSHCFGor1UXU8,4798
145
- stubber/update_module_list.py,sha256=smeu-xSeFgtr1piJNR1JqLzHd3HZ1K5_iaKNRea6dzk,3886
146
- stubber/utils/__init__.py,sha256=FzTO7K7X4pBCRxbZjl15JyRNusidLX7uk_DgYMcIFzM,228
147
- stubber/utils/config.py,sha256=AEKRevg9BHSbXz_5RGZR8bpuwcD3KlPuBIqmGltXu6E,4704
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=qoN-XiNBNMExUdHeXbkjlsvllkG2jKB-ptuApe4kjpc,2758
151
- stubber/utils/repos.py,sha256=qquw-y5V14xqTl7Ivuh8NB5PBy1ZpaScprQFU7zAc7w,5674
152
- stubber/utils/stubmaker.py,sha256=1eMNpZZ-BWBtxLwBO-kz4CywjUe0JexN6QSyAVNICxM,5099
153
- stubber/utils/typed_config_toml.py,sha256=6nlFgHwdCcK_0MJICsstCFgm9M6TblvF-l0_2cpw_cY,2552
154
- stubber/variants.py,sha256=iS3sv8cT7czdI9x4KqzTCPT6hX1CKQ-bIlWnDG6gyoU,3688
155
- micropython_stubber-1.23.1.dist-info/LICENSE,sha256=2zsOXlYgl9W7_XGXcncAXIYfvSVlyNcVBycC6hhlKhA,1542
156
- micropython_stubber-1.23.1.dist-info/METADATA,sha256=5QlsVnjIFbHYFeJ7mWWejAFeON8jPpjoeNbodwomzKo,19197
157
- micropython_stubber-1.23.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
158
- micropython_stubber-1.23.1.dist-info/entry_points.txt,sha256=NQi_M36fgq5k6giSuASas3LrpF6CVdkzfvJC0ja73_g,55
159
- micropython_stubber-1.23.1.dist-info/RECORD,,
@@ -1,3 +0,0 @@
1
- [console_scripts]
2
- stubber=stubber.stubber:stubber_cli
3
-
mpflash/basicgit.py DELETED
@@ -1,288 +0,0 @@
1
- """
2
- Simple Git module, where needed via powershell
3
-
4
- Some of the functions are based on the PyGithub module
5
- """
6
-
7
- import os
8
- import subprocess
9
- from pathlib import Path
10
- from typing import List, Optional, Union
11
-
12
- import cachetools.func
13
- from github import Auth, Github
14
- from loguru import logger as log
15
- from packaging.version import parse
16
-
17
- # from stubber.utils.versions import SET_PREVIEW
18
-
19
- # Token with no permissions to avoid throttling
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
21
- PAT_NO_ACCESS = (
22
- "github_pat" + "_11AAHPVFQ0qAkDnSUaMKSp" + "_ZkDl5NRRwBsUN6EYg9ahp1Dvj4FDDONnXVgimxC2EtpY7Q7BUKBoQ0Jq72X"
23
- )
24
- PAT = os.environ.get("GITHUB_TOKEN") or PAT_NO_ACCESS
25
- GH_CLIENT = Github(auth=Auth.Token(PAT))
26
-
27
-
28
- def _run_local_git(
29
- cmd: List[str],
30
- repo: Optional[Union[Path, str]] = None,
31
- expect_stderr=False,
32
- capture_output=True,
33
- echo_output=True,
34
- ):
35
- "run a external (git) command in the repo's folder and deal with some of the errors"
36
- try:
37
- if repo:
38
- if isinstance(repo, str):
39
- repo = Path(repo)
40
- result = subprocess.run(
41
- cmd, capture_output=capture_output, check=True, cwd=repo.absolute().as_posix(), encoding="utf-8"
42
- )
43
- else:
44
- result = subprocess.run(cmd, capture_output=capture_output, check=True, encoding="utf-8")
45
- except (NotADirectoryError, FileNotFoundError) as e: # pragma: no cover
46
- return None
47
- except subprocess.CalledProcessError as e: # pragma: no cover
48
- # add some logging for github actions
49
- log.error(f"{str(e)} : { e.stderr}")
50
- return None
51
- if result.stderr and result.stderr != b"":
52
- stderr = result.stderr
53
- if "cloning into" in stderr.lower():
54
- # log.info(stderr)
55
- expect_stderr = True
56
- if "warning" in stderr.lower():
57
- log.warning(stderr)
58
- expect_stderr = True
59
- elif capture_output and echo_output: # pragma: no cover
60
- log.info(stderr)
61
- if not expect_stderr:
62
- raise ChildProcessError(stderr)
63
-
64
- if result.returncode and result.returncode < 0:
65
- raise ChildProcessError(result.stderr)
66
- return result
67
-
68
-
69
- def clone(remote_repo: str, path: Path, shallow: bool = False, tag: Optional[str] = None) -> bool:
70
- """git clone [--depth 1] [--branch <tag_name>] <remote> <directory>"""
71
- cmd = ["git", "clone"]
72
- if shallow:
73
- cmd += ["--depth", "1"]
74
- if tag in {"preview", "latest", "master"}:
75
- tag = None
76
- cmd += [remote_repo, "--branch", tag, str(path)] if tag else [remote_repo, str(path)]
77
- if result := _run_local_git(cmd, expect_stderr=True, capture_output=False):
78
- return result.returncode == 0
79
- else:
80
- return False
81
-
82
-
83
- def get_local_tag(repo: Optional[Union[str, Path]] = None, abbreviate: bool = True) -> Union[str, None]:
84
- """
85
- get the most recent git version tag of a local repo
86
- repo Path should be in the form of : repo = "./repo/micropython"
87
-
88
- returns the tag or None
89
- """
90
- if not repo:
91
- repo = Path(".")
92
- elif isinstance(repo, str):
93
- repo = Path(repo)
94
-
95
- result = _run_local_git(
96
- # ["git", "describe", "--tags"],
97
- ["git", "describe", "--tags", "--dirty", "--always", "--match", "v[1-9].*"],
98
- repo=repo.as_posix(),
99
- expect_stderr=True,
100
- )
101
- if not result:
102
- return None
103
- tag: str = result.stdout
104
- tag = tag.replace("\r", "").replace("\n", "")
105
- if not abbreviate or "-" not in tag:
106
- return tag
107
- if "-preview" in tag:
108
- tag = tag.split("-preview")[0] + "-preview"
109
- return tag
110
-
111
-
112
- def get_local_tags(repo: Optional[Path] = None, minver: Optional[str] = None) -> List[str]:
113
- """
114
- get list of all tags of a local repo
115
- """
116
- if not repo:
117
- repo = Path(".")
118
-
119
- result = _run_local_git(["git", "tag", "-l"], repo=repo.as_posix(), expect_stderr=True)
120
- if not result or result.returncode != 0:
121
- return []
122
- tags = result.stdout.replace("\r", "").split("\n")
123
- tags = [tag for tag in tags if tag.startswith("v")]
124
- if minver:
125
- tags = [tag for tag in tags if parse(tag) >= parse(minver)]
126
- return sorted(tags)
127
-
128
-
129
- @cachetools.func.ttl_cache(maxsize=16, ttl=60) # 60 seconds
130
- def get_tags(repo: str, minver: Optional[str] = None) -> List[str]:
131
- """
132
- Get list of tag of a repote github repo
133
- """
134
- if not repo or not isinstance(repo, str) or "/" not in repo: # type: ignore
135
- return []
136
- try:
137
- gh_repo = GH_CLIENT.get_repo(repo)
138
- except ConnectionError as e:
139
- # TODO: unable to capture the exeption
140
- log.warning(f"Unable to get tags - {e}")
141
- return []
142
- tags = [tag.name for tag in gh_repo.get_tags()]
143
- if minver:
144
- tags = [tag for tag in tags if parse(tag) >= parse(minver)]
145
- return sorted(tags)
146
-
147
-
148
- def checkout_tag(tag: str, repo: Optional[Union[str, Path]] = None) -> bool:
149
- """
150
- checkout a specific git tag
151
- """
152
- cmd = ["git", "checkout", tag, "--quiet", "--force"]
153
- result = _run_local_git(cmd, repo=repo, expect_stderr=True, capture_output=True)
154
- if not result:
155
- return False
156
- # actually a good result
157
- msg = {result.stdout}
158
- if msg != {""}:
159
- log.warning(f"git message: {msg}")
160
- return True
161
-
162
-
163
- def sync_submodules(repo: Optional[Union[Path, str]] = None) -> bool:
164
- """
165
- make sure any submodules are in sync
166
- """
167
- cmds = [
168
- ["git", "submodule", "sync", "--quiet"],
169
- # ["git", "submodule", "update", "--quiet"],
170
- ["git", "submodule", "update", "--init", "lib/micropython-lib"],
171
- ]
172
- for cmd in cmds:
173
- if result := _run_local_git(cmd, repo=repo, expect_stderr=True):
174
- # actually a good result
175
- log.debug(result.stderr)
176
- else:
177
- return False
178
- return True
179
-
180
-
181
- def checkout_commit(commit_hash: str, repo: Optional[Union[Path, str]] = None) -> bool:
182
- """
183
- Checkout a specific commit
184
- """
185
- cmd = ["git", "checkout", commit_hash, "--quiet", "--force"]
186
- result = _run_local_git(cmd, repo=repo, expect_stderr=True)
187
- if not result:
188
- return False
189
- # actually a good result
190
- log.debug(result.stderr)
191
- return True
192
-
193
-
194
- def switch_tag(tag: Union[str, Path], repo: Optional[Union[Path, str]] = None) -> bool:
195
- """
196
- switch to the specified version tag of a local repo
197
- repo should be in the form of : path/.git
198
- repo = '../micropython/.git'
199
- returns None
200
- """
201
-
202
- cmd = ["git", "switch", "--detach", tag, "--quiet", "--force"]
203
- result = _run_local_git(cmd, repo=repo, expect_stderr=True)
204
- if not result:
205
- return False
206
- # actually a good result
207
- log.debug(result.stderr)
208
- return True
209
-
210
-
211
- def switch_branch(branch: str, repo: Optional[Union[Path, str]] = None) -> bool:
212
- """
213
- switch to the specified branch in a local repo"
214
- repo should be in the form of : path/.git
215
- repo = '../micropython/.git'
216
- returns None
217
- """
218
- cmd = ["git", "switch", branch, "--quiet", "--force"]
219
- result = _run_local_git(cmd, repo=repo, expect_stderr=True)
220
- if not result:
221
- return False
222
- # actually a good result
223
- log.debug(result.stderr)
224
- return True
225
-
226
-
227
- def fetch(repo: Union[Path, str]) -> bool:
228
- """
229
- fetches a repo
230
- repo should be in the form of : path/.git
231
- repo = '../micropython/.git'
232
- returns True on success
233
- """
234
- if not repo:
235
- raise NotADirectoryError
236
-
237
- cmd = ["git", "fetch", "--all", "--tags", "--quiet"]
238
- result = _run_local_git(cmd, repo=repo, echo_output=False)
239
- return result.returncode == 0 if result else False
240
-
241
-
242
- def pull(repo: Union[Path, str], branch: str = "main") -> bool:
243
- """
244
- pull a repo origin into main
245
- repo should be in the form of : path/.git
246
- repo = '../micropython/.git'
247
- returns True on success
248
- """
249
- if not repo:
250
- raise NotADirectoryError
251
- repo = Path(repo)
252
- # first checkout HEAD
253
- cmd = ["git", "checkout", branch, "--quiet", "--force"]
254
- result = _run_local_git(cmd, repo=repo, expect_stderr=True)
255
- if not result:
256
- log.error("error during git checkout main", result)
257
- return False
258
-
259
- cmd = ["git", "pull", "origin", branch, "--quiet", "--autostash"]
260
- result = _run_local_git(cmd, repo=repo, expect_stderr=True)
261
- if not result:
262
- log.error("error durign pull", result)
263
- return False
264
- return result.returncode == 0
265
-
266
-
267
- def get_git_describe(folder: Optional[str] = None):
268
- """
269
- Based on MicroPython makeversionhdr.py
270
- returns : current git tag, commits ,commit hash : "v1.19.1-841-g3446"
271
- """
272
- # Note: git describe doesn't work if no tag is available
273
- try:
274
- git_describe = subprocess.check_output(
275
- ["git", "describe", "--tags", "--dirty", "--always", "--match", "v[1-9].*"],
276
- stderr=subprocess.STDOUT,
277
- universal_newlines=True,
278
- cwd=folder,
279
- ).strip()
280
- except subprocess.CalledProcessError as er:
281
- if er.returncode == 128:
282
- # git exit code of 128 means no repository found
283
- return None
284
- git_describe = ""
285
- except OSError:
286
- return None
287
- # format
288
- return git_describe