micropython-stubber 1.23.1.post1__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 (152) hide show
  1. {micropython_stubber-1.23.1.post1.dist-info → micropython_stubber-1.23.2.dist-info}/LICENSE +30 -30
  2. {micropython_stubber-1.23.1.post1.dist-info → micropython_stubber-1.23.2.dist-info}/METADATA +4 -4
  3. micropython_stubber-1.23.2.dist-info/RECORD +158 -0
  4. mpflash/README.md +220 -220
  5. mpflash/libusb_flash.ipynb +203 -203
  6. mpflash/mpflash/add_firmware.py +98 -98
  7. mpflash/mpflash/ask_input.py +236 -236
  8. mpflash/mpflash/basicgit.py +284 -284
  9. mpflash/mpflash/bootloader/__init__.py +2 -2
  10. mpflash/mpflash/bootloader/activate.py +60 -60
  11. mpflash/mpflash/bootloader/detect.py +82 -82
  12. mpflash/mpflash/bootloader/manual.py +101 -101
  13. mpflash/mpflash/bootloader/micropython.py +12 -12
  14. mpflash/mpflash/bootloader/touch1200.py +36 -36
  15. mpflash/mpflash/cli_download.py +129 -129
  16. mpflash/mpflash/cli_flash.py +224 -216
  17. mpflash/mpflash/cli_group.py +111 -111
  18. mpflash/mpflash/cli_list.py +87 -87
  19. mpflash/mpflash/cli_main.py +39 -39
  20. mpflash/mpflash/common.py +210 -166
  21. mpflash/mpflash/config.py +44 -44
  22. mpflash/mpflash/connected.py +96 -77
  23. mpflash/mpflash/download.py +364 -364
  24. mpflash/mpflash/downloaded.py +130 -130
  25. mpflash/mpflash/errors.py +9 -9
  26. mpflash/mpflash/flash/__init__.py +55 -55
  27. mpflash/mpflash/flash/esp.py +59 -59
  28. mpflash/mpflash/flash/stm32.py +19 -19
  29. mpflash/mpflash/flash/stm32_dfu.py +104 -104
  30. mpflash/mpflash/flash/uf2/__init__.py +88 -88
  31. mpflash/mpflash/flash/uf2/boardid.py +15 -15
  32. mpflash/mpflash/flash/uf2/linux.py +136 -130
  33. mpflash/mpflash/flash/uf2/macos.py +42 -42
  34. mpflash/mpflash/flash/uf2/uf2disk.py +12 -12
  35. mpflash/mpflash/flash/uf2/windows.py +43 -43
  36. mpflash/mpflash/flash/worklist.py +170 -170
  37. mpflash/mpflash/list.py +106 -106
  38. mpflash/mpflash/logger.py +41 -41
  39. mpflash/mpflash/mpboard_id/__init__.py +93 -93
  40. mpflash/mpflash/mpboard_id/add_boards.py +251 -251
  41. mpflash/mpflash/mpboard_id/board.py +37 -37
  42. mpflash/mpflash/mpboard_id/board_id.py +86 -86
  43. mpflash/mpflash/mpboard_id/store.py +43 -43
  44. mpflash/mpflash/mpremoteboard/__init__.py +266 -266
  45. mpflash/mpflash/mpremoteboard/mpy_fw_info.py +141 -141
  46. mpflash/mpflash/mpremoteboard/runner.py +140 -140
  47. mpflash/mpflash/vendor/click_aliases.py +91 -91
  48. mpflash/mpflash/vendor/dfu.py +165 -165
  49. mpflash/mpflash/vendor/pydfu.py +605 -605
  50. mpflash/mpflash/vendor/readme.md +2 -2
  51. mpflash/mpflash/versions.py +135 -135
  52. mpflash/poetry.lock +1599 -1599
  53. mpflash/pyproject.toml +65 -65
  54. mpflash/stm32_udev_rules.md +62 -62
  55. stubber/__init__.py +3 -3
  56. stubber/board/board_info.csv +193 -193
  57. stubber/board/boot.py +34 -34
  58. stubber/board/createstubs.py +1004 -986
  59. stubber/board/createstubs_db.py +826 -825
  60. stubber/board/createstubs_db_min.py +332 -331
  61. stubber/board/createstubs_db_mpy.mpy +0 -0
  62. stubber/board/createstubs_lvgl.py +741 -741
  63. stubber/board/createstubs_lvgl_min.py +741 -741
  64. stubber/board/createstubs_mem.py +767 -766
  65. stubber/board/createstubs_mem_min.py +307 -306
  66. stubber/board/createstubs_mem_mpy.mpy +0 -0
  67. stubber/board/createstubs_min.py +295 -294
  68. stubber/board/createstubs_mpy.mpy +0 -0
  69. stubber/board/fw_info.py +141 -141
  70. stubber/board/info.py +183 -183
  71. stubber/board/main.py +19 -19
  72. stubber/board/modulelist.txt +247 -247
  73. stubber/board/pyrightconfig.json +34 -34
  74. stubber/bulk/mcu_stubber.py +437 -437
  75. stubber/codemod/_partials/__init__.py +48 -48
  76. stubber/codemod/_partials/db_main.py +147 -147
  77. stubber/codemod/_partials/lvgl_main.py +77 -77
  78. stubber/codemod/_partials/modules_reader.py +80 -80
  79. stubber/codemod/add_comment.py +53 -53
  80. stubber/codemod/add_method.py +65 -65
  81. stubber/codemod/board.py +317 -317
  82. stubber/codemod/enrich.py +151 -145
  83. stubber/codemod/merge_docstub.py +284 -284
  84. stubber/codemod/modify_list.py +54 -54
  85. stubber/codemod/utils.py +56 -56
  86. stubber/commands/build_cmd.py +94 -94
  87. stubber/commands/cli.py +49 -49
  88. stubber/commands/clone_cmd.py +78 -78
  89. stubber/commands/config_cmd.py +29 -29
  90. stubber/commands/enrich_folder_cmd.py +71 -71
  91. stubber/commands/get_core_cmd.py +71 -71
  92. stubber/commands/get_docstubs_cmd.py +92 -92
  93. stubber/commands/get_frozen_cmd.py +117 -117
  94. stubber/commands/get_mcu_cmd.py +102 -102
  95. stubber/commands/merge_cmd.py +66 -66
  96. stubber/commands/publish_cmd.py +118 -118
  97. stubber/commands/stub_cmd.py +31 -31
  98. stubber/commands/switch_cmd.py +62 -62
  99. stubber/commands/variants_cmd.py +48 -48
  100. stubber/cst_transformer.py +178 -178
  101. stubber/data/board_info.csv +193 -193
  102. stubber/data/board_info.json +1729 -1729
  103. stubber/data/micropython_tags.csv +15 -15
  104. stubber/data/requirements-core-micropython.txt +38 -38
  105. stubber/data/requirements-core-pycopy.txt +39 -39
  106. stubber/downloader.py +37 -37
  107. stubber/freeze/common.py +72 -72
  108. stubber/freeze/freeze_folder.py +69 -69
  109. stubber/freeze/freeze_manifest_2.py +126 -126
  110. stubber/freeze/get_frozen.py +131 -131
  111. stubber/get_cpython.py +112 -112
  112. stubber/get_lobo.py +59 -59
  113. stubber/minify.py +423 -423
  114. stubber/publish/bump.py +86 -86
  115. stubber/publish/candidates.py +275 -275
  116. stubber/publish/database.py +18 -18
  117. stubber/publish/defaults.py +40 -40
  118. stubber/publish/enums.py +24 -24
  119. stubber/publish/helpers.py +29 -29
  120. stubber/publish/merge_docstubs.py +136 -132
  121. stubber/publish/missing_class_methods.py +51 -51
  122. stubber/publish/package.py +150 -150
  123. stubber/publish/pathnames.py +51 -51
  124. stubber/publish/publish.py +120 -120
  125. stubber/publish/pypi.py +42 -42
  126. stubber/publish/stubpackage.py +1055 -1051
  127. stubber/rst/__init__.py +9 -9
  128. stubber/rst/classsort.py +78 -78
  129. stubber/rst/lookup.py +533 -531
  130. stubber/rst/output_dict.py +401 -401
  131. stubber/rst/reader.py +814 -814
  132. stubber/rst/report_return.py +77 -77
  133. stubber/rst/rst_utils.py +541 -541
  134. stubber/stubber.py +38 -38
  135. stubber/stubs_from_docs.py +90 -90
  136. stubber/tools/manifestfile.py +654 -654
  137. stubber/tools/readme.md +6 -6
  138. stubber/update_fallback.py +117 -117
  139. stubber/update_module_list.py +123 -123
  140. stubber/utils/__init__.py +6 -6
  141. stubber/utils/config.py +137 -137
  142. stubber/utils/makeversionhdr.py +54 -54
  143. stubber/utils/manifest.py +90 -90
  144. stubber/utils/post.py +80 -80
  145. stubber/utils/repos.py +156 -156
  146. stubber/utils/stubmaker.py +139 -139
  147. stubber/utils/typed_config_toml.py +80 -80
  148. stubber/variants.py +106 -106
  149. micropython_stubber-1.23.1.post1.dist-info/RECORD +0 -159
  150. mpflash/basicgit.py +0 -288
  151. {micropython_stubber-1.23.1.post1.dist-info → micropython_stubber-1.23.2.dist-info}/WHEEL +0 -0
  152. {micropython_stubber-1.23.1.post1.dist-info → micropython_stubber-1.23.2.dist-info}/entry_points.txt +0 -0
@@ -1,159 +0,0 @@
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/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