micropython-stubber 1.19.0__py3-none-any.whl → 1.20.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {micropython_stubber-1.19.0.dist-info → micropython_stubber-1.20.0.dist-info}/METADATA +1 -1
- {micropython_stubber-1.19.0.dist-info → micropython_stubber-1.20.0.dist-info}/RECORD +28 -32
- mpflash/mpflash/cli_flash.py +9 -4
- mpflash/mpflash/cli_group.py +1 -1
- mpflash/mpflash/flash_uf2.py +1 -1
- mpflash/mpflash/list.py +27 -11
- mpflash/mpflash/mpremoteboard/__init__.py +6 -5
- mpflash/mpflash/worklist.py +1 -1
- mpflash/poetry.lock +84 -83
- mpflash/pyproject.toml +1 -1
- stubber/__init__.py +1 -1
- stubber/board/createstubs.py +2 -1
- stubber/board/createstubs_db.py +2 -2
- stubber/board/createstubs_db_min.py +1 -1
- stubber/board/createstubs_db_mpy.mpy +0 -0
- stubber/board/createstubs_mem.py +2 -2
- stubber/board/createstubs_mem_min.py +1 -1
- stubber/board/createstubs_mem_mpy.mpy +0 -0
- stubber/board/createstubs_min.py +2 -2
- stubber/board/createstubs_mpy.mpy +0 -0
- stubber/board/modulelist.txt +1 -0
- stubber/commands/{mcu_cmd.py → get_mcu_cmd.py} +20 -3
- stubber/stubber.py +1 -9
- stubber/update_fallback.py +104 -104
- stubber/utils/config.py +6 -0
- stubber/commands/get_lobo_cmd.py +0 -58
- stubber/commands/minify_cmd.py +0 -60
- stubber/commands/upd_fallback_cmd.py +0 -36
- stubber/commands/upd_module_list_cmd.py +0 -18
- {micropython_stubber-1.19.0.dist-info → micropython_stubber-1.20.0.dist-info}/LICENSE +0 -0
- {micropython_stubber-1.19.0.dist-info → micropython_stubber-1.20.0.dist-info}/WHEEL +0 -0
- {micropython_stubber-1.19.0.dist-info → micropython_stubber-1.20.0.dist-info}/entry_points.txt +0 -0
@@ -2,8 +2,8 @@ mpflash/libusb_flash.ipynb,sha256=sw5MVQvPmH-DJy9kOdXyO80BSjEPMEXf_GJsGk3usrc,64
|
|
2
2
|
mpflash/mpflash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
3
|
mpflash/mpflash/ask_input.py,sha256=NGjCcOx49gW8xuDZK1BQXNOMPy7fUQ5pQamasez1wHI,7793
|
4
4
|
mpflash/mpflash/cli_download.py,sha256=9Rxwo-j7h9_rwMeAgITmfkdiNVi-Wunr1vpx2VjjUNM,3090
|
5
|
-
mpflash/mpflash/cli_flash.py,sha256=
|
6
|
-
mpflash/mpflash/cli_group.py,sha256=
|
5
|
+
mpflash/mpflash/cli_flash.py,sha256=Hld8SGNTJWKB0CTjfG8wGZh8RaC7CtVxhw4--LKTkig,5760
|
6
|
+
mpflash/mpflash/cli_group.py,sha256=nL3H06PHm_XUDlMuRyjgmTYeLnkrLa9mKDdahYw-KRo,1967
|
7
7
|
mpflash/mpflash/cli_list.py,sha256=uxTRPdjFWv5ev4E_pz1JYv8DSFLOtZvTKmVmCiRpEC4,1005
|
8
8
|
mpflash/mpflash/cli_main.py,sha256=VxIpmvk3-2Sr1uB1AMT5bRa0TlrbY28ZaYd6NGZnEe0,632
|
9
9
|
mpflash/mpflash/common.py,sha256=lucFGMLl03qz-5Ic2XVv4g5XVt6hloUU6N5v0tSaUYE,1049
|
@@ -16,48 +16,48 @@ mpflash/mpflash/flash_esp.py,sha256=TjBOk2y1eLrcE8T3iYGypsiskPX7BFNfxYmCuUo_3v4,
|
|
16
16
|
mpflash/mpflash/flash_stm32.py,sha256=d4BoQl3a9Tchnvn2ZTuq2MpYBB4MTaRukwtEncI95k0,823
|
17
17
|
mpflash/mpflash/flash_stm32_cube.py,sha256=w7aGWjReeWUKl0Q3ZjXH8BRqNO1Tk9AO7gtRNUg1c9Y,3970
|
18
18
|
mpflash/mpflash/flash_stm32_dfu.py,sha256=G70EZodWb-aRi507Jxbys-VEwbBGU1oZacow3_nq-d4,2972
|
19
|
-
mpflash/mpflash/flash_uf2.py,sha256=
|
19
|
+
mpflash/mpflash/flash_uf2.py,sha256=KvNPk1zDwQexJfPI5MlIoR7zTD0u-pQQwSHuFQjuMXg,2093
|
20
20
|
mpflash/mpflash/flash_uf2_boardid.py,sha256=WZKucGu_hJ8ymb236uuZbiR6pD6AA_l4LA-7LwtQhq8,414
|
21
21
|
mpflash/mpflash/flash_uf2_linux.py,sha256=LAGkzTImVq-wKo7LGUNlwkUHv1L4rGO7igR5dwxY07o,4298
|
22
22
|
mpflash/mpflash/flash_uf2_windows.py,sha256=dcmA-koavH7duOuNwI0n2aDDbhF1_5ZZ-mXFAXgj8z4,1072
|
23
|
-
mpflash/mpflash/list.py,sha256=
|
23
|
+
mpflash/mpflash/list.py,sha256=G35Pjc8Aw3qqY4dCi-0QtRRZEiJF5EPwyuU7Jx5S63Q,3186
|
24
24
|
mpflash/mpflash/logger.py,sha256=dI_H_a7EOdQJyvoeRHQuYeZuTKYVUS3DUPTLhE9rkdM,1098
|
25
25
|
mpflash/mpflash/mpboard_id/__init__.py,sha256=JYGe7VwpBV4ig2M9a6vJUQrMtgdNjZKHt_Z5N13Ycrs,3509
|
26
26
|
mpflash/mpflash/mpboard_id/board_id.py,sha256=NjKkIUv3sw6X60qy--mieQWrle3WNKw5NwAepMenTHI,2230
|
27
27
|
mpflash/mpflash/mpboard_id/board_info.csv,sha256=KPWDo-zHWfrPGQn9oInsDH-5IdCzhBCs6K_YAmqqSpQ,96983
|
28
28
|
mpflash/mpflash/mpboard_id/board_info.json,sha256=JtVyOMIO1O7vLKzJ0hyXQ4JSxXiQBJyay2hjdNLnZM0,674442
|
29
|
-
mpflash/mpflash/mpremoteboard/__init__.py,sha256=
|
29
|
+
mpflash/mpflash/mpremoteboard/__init__.py,sha256=DxlO_7LiyWDz5hNRI77fzp3sI3fZQ9Sd23dnGLx4Zl0,7017
|
30
30
|
mpflash/mpflash/mpremoteboard/mpy_fw_info.py,sha256=6AQbN3jtQgllqWQYl4e-63KeEtV08EXk8_JnM6XBkvo,4554
|
31
31
|
mpflash/mpflash/mpremoteboard/runner.py,sha256=H3W_xGJvjz7TLtlkDQrCLibgegRWGfsaBOABNbAfP_U,4783
|
32
32
|
mpflash/mpflash/vendor/dfu.py,sha256=oK_MRSOyDJrUuS6D24IMIsfL7oLcrvUq0yp_h4WIY2U,5739
|
33
33
|
mpflash/mpflash/vendor/pydfu.py,sha256=_MdBRo1EeNeKDqFPSTB5tNL1jGSBJgsVeVjE5e7Pb8s,20542
|
34
34
|
mpflash/mpflash/vendor/readme.md,sha256=iIIZxuLUIGHQ0KODzYVtMezsztvyxCXcNJp_AzwTIPk,86
|
35
35
|
mpflash/mpflash/vendor/versions.py,sha256=ooRZjeeYepQHwp12hMu2m0p8nZXQ5s942w5mGkKmgeI,3629
|
36
|
-
mpflash/mpflash/worklist.py,sha256=
|
37
|
-
mpflash/poetry.lock,sha256=
|
38
|
-
mpflash/pyproject.toml,sha256=
|
36
|
+
mpflash/mpflash/worklist.py,sha256=qZsqF3Lf5Bl7QQ31ZLVHewP6WC8fmwQPMbyNgbG7LB4,5299
|
37
|
+
mpflash/poetry.lock,sha256=IFlzAMe4-gKB5OJHkbm7vnGBmJGBI3vcasHkQmiNz7I,120389
|
38
|
+
mpflash/pyproject.toml,sha256=Pv5rFYNPI8K6vH9Fd9JwOi6B-07To0uKPijmTh-bLmc,1628
|
39
39
|
mpflash/README.md,sha256=q_vVktLk3C_3L5nZT6SfiKs7l4zOSYG03zXrHinOLig,12253
|
40
40
|
mpflash/stm32_udev_rules.md,sha256=uxvC8FvU7K0R1QQUqCIvVfW9yfWYlIHhIVtirAjQVHE,2684
|
41
|
-
stubber/__init__.py,sha256=
|
41
|
+
stubber/__init__.py,sha256=o1qcasRklnxYGOP3EFPV2_p14ofWGqNiABgcOKra5-8,49
|
42
42
|
stubber/basicgit.py,sha256=sflgCv7apLbV2w8F6gmhc-3kuqDnnS4tdGol6JT2uTM,9545
|
43
43
|
stubber/board/board_info.csv,sha256=K2VSmfR013fN-oJWkQUmiQ19w09dVwJHDquPy6QmMhY,8627
|
44
44
|
stubber/board/boot.py,sha256=XjWlKErU5nI1HJSugXIP_3hlwgRQboE6sJrpcbSygnk,1120
|
45
|
-
stubber/board/createstubs.py,sha256=
|
46
|
-
stubber/board/createstubs_db.py,sha256=
|
47
|
-
stubber/board/createstubs_db_min.py,sha256=
|
48
|
-
stubber/board/createstubs_db_mpy.mpy,sha256=
|
45
|
+
stubber/board/createstubs.py,sha256=UEsqCBrXA9ipSjwI7FMr2nsZ0HtNBW2LN1kfSnK1bEw,32723
|
46
|
+
stubber/board/createstubs_db.py,sha256=BTaGBSVVIz1SzeRCFGgMeShYd6SdtBV3J8ZHi8iy_Zw,30445
|
47
|
+
stubber/board/createstubs_db_min.py,sha256=Gm1tcNzQ9zcPRt_bHYrUoKLXicHWxUxsOsqHI3TqjPk,11473
|
48
|
+
stubber/board/createstubs_db_mpy.mpy,sha256=0P0crBWixxVHvpPwB2C1kXTK6g7KuEtzE_4EYJDs1M4,9536
|
49
49
|
stubber/board/createstubs_lvgl.py,sha256=CTe7eq1ACRK_JJxavaqDD8znn29nSWJiHHTZ_ps6EhM,27217
|
50
50
|
stubber/board/createstubs_lvgl_min.py,sha256=jLkWYmeboI2A8feMC7pT7cYWttLejQTuX7WAEZCylhw,27207
|
51
51
|
stubber/board/createstubs_lvgl_mpy.mpy,sha256=ex-nlq2V5e8anQBJvRWEEc-FzU7nlwg5NSrZ8vOadIA,9267
|
52
|
-
stubber/board/createstubs_mem.py,sha256=
|
53
|
-
stubber/board/createstubs_mem_min.py,sha256=
|
54
|
-
stubber/board/createstubs_mem_mpy.mpy,sha256=
|
55
|
-
stubber/board/createstubs_min.py,sha256=
|
56
|
-
stubber/board/createstubs_mpy.mpy,sha256=
|
52
|
+
stubber/board/createstubs_mem.py,sha256=2DKVzQEt2qyh9s6iS_mo3u5YZ1htS0xn5ycCFIjQWLQ,28779
|
53
|
+
stubber/board/createstubs_mem_min.py,sha256=mMxSu3TYPmsh_olGJ83b_OBojwwxDeFbVm96H4nJ8WM,11019
|
54
|
+
stubber/board/createstubs_mem_mpy.mpy,sha256=KdYmiWuaqzPMFpOirTpE7uJTyk1k384f87MQtTaL0NM,9118
|
55
|
+
stubber/board/createstubs_min.py,sha256=n5IQQLlxt8AIUplS3onjuekm2H4WAlU2fmYMldpf-rc,13564
|
56
|
+
stubber/board/createstubs_mpy.mpy,sha256=QBmLdLJnPDJJBRZrR27ss6slwUGzredY1f_HrA17f9g,12228
|
57
57
|
stubber/board/fw_info.py,sha256=6AQbN3jtQgllqWQYl4e-63KeEtV08EXk8_JnM6XBkvo,4554
|
58
58
|
stubber/board/info.py,sha256=b7SOPZHVsVhaayKCwVkFZlYu0BW-UFI7LuG1Eop9480,5629
|
59
59
|
stubber/board/main.py,sha256=f6V3tdt6sPZVLuwemT-NLuK9GySfW2c2J6PJMOOWQQw,413
|
60
|
-
stubber/board/modulelist.txt,sha256=
|
60
|
+
stubber/board/modulelist.txt,sha256=LrFH2H7tHZCA960yIa5-6mHItwI5N2LwQZ_IveDoyYs,2775
|
61
61
|
stubber/board/pyrightconfig.json,sha256=6oHS4aDOfwKBAFeUPsCGJzEXpUgBZsPaF0M4P-N26D4,1376
|
62
62
|
stubber/bulk/mcu_stubber.py,sha256=_1z0LUzcMbEIXIYInMJcAJZbBPTI8yCHgd1-1nlMscM,16379
|
63
63
|
stubber/codemod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -81,15 +81,11 @@ stubber/commands/enrich_folder_cmd.py,sha256=aGkydAsjyM9LHB99bcjxz_jyDGgOmisZyys
|
|
81
81
|
stubber/commands/get_core_cmd.py,sha256=oxiDb_r1Ao9N2maeV0EBKosI4nRDNJkDk52xNunYICM,2226
|
82
82
|
stubber/commands/get_docstubs_cmd.py,sha256=xTkuc7k7Od7LUtt_ZohoHaRuE6qhQ80ST0b0ZHKMJrM,2824
|
83
83
|
stubber/commands/get_frozen_cmd.py,sha256=LhtWUL6l2kPUcRQBz19ChwTsdzjai4ryf0UBe52Fu48,3812
|
84
|
-
stubber/commands/
|
85
|
-
stubber/commands/mcu_cmd.py,sha256=ZwYmqGlm-oiivxRGzE8xjmvW0ChYq4jcArSnCoyae8I,1672
|
84
|
+
stubber/commands/get_mcu_cmd.py,sha256=uDodn57wdc9rHt7WSmHCFI-zTT1XrebPEaWN-G43E2Y,2015
|
86
85
|
stubber/commands/merge_cmd.py,sha256=2gQYxqapVGD8WMBsqRES7xjIS8acu4hTyutr1OANpAo,1673
|
87
|
-
stubber/commands/minify_cmd.py,sha256=HOLZxiGnSXIu_5scstZZJJ1Kwjugk0Jf1bfXPen9Td8,2267
|
88
86
|
stubber/commands/publish_cmd.py,sha256=myvgP7Y-pb-nyrMVMelNmIVHbxeK4g1ZXmQtxASblkk,2910
|
89
87
|
stubber/commands/stub_cmd.py,sha256=St3UlrVdbkddXystDG2NmKLq_1RbE-gNxlE7ShwQwaw,1186
|
90
88
|
stubber/commands/switch_cmd.py,sha256=DM73QU4Vo3ifr01rv-xSmlxp36T20josOt9-cyUWUDU,1796
|
91
|
-
stubber/commands/upd_fallback_cmd.py,sha256=5d6lIFa1mTo-2O-gDZKwHOZAo5bvX5mp4iaTIfBSaQc,1056
|
92
|
-
stubber/commands/upd_module_list_cmd.py,sha256=drtjqS2aMd0aM-JJdnyl4jcnbq135lfSVcgK_6eovBk,499
|
93
89
|
stubber/commands/variants_cmd.py,sha256=QDm-KtDFIa9_Jl21vjArrW7OrToR8VfwK22pRo0e6CE,1284
|
94
90
|
stubber/cst_transformer.py,sha256=XbvGTUmhhFWW_Ig8Pu6lFdkBS_NCEmJ1oQQm4H1XSrM,6479
|
95
91
|
stubber/data/board_info.csv,sha256=K2VSmfR013fN-oJWkQUmiQ19w09dVwJHDquPy6QmMhY,8627
|
@@ -127,15 +123,15 @@ stubber/rst/output_dict.py,sha256=cpBXRtUD-uh0EgjWIBiRrMLBmIAEXjoJFSOAg-qJQiU,14
|
|
127
123
|
stubber/rst/reader.py,sha256=ZR2vrB0xup7qY2zAC6HKKytaiQjlUdr-gxFGamkSfHQ,33382
|
128
124
|
stubber/rst/report_return.py,sha256=WZJSbgjsjxFeCeY-vLms56gv_x3TubaGXGQ8--d8RqI,2814
|
129
125
|
stubber/rst/rst_utils.py,sha256=q4MCmhCeI0fnx6KNVdgz1nE4_hAK4T-F7oAMBnmwZ4w,17817
|
130
|
-
stubber/stubber.py,sha256=
|
126
|
+
stubber/stubber.py,sha256=41zvyaDQt25Y8IRsMvcQR68LxDZrTz_iVJpEQ5D3VWc,1634
|
131
127
|
stubber/stubs_from_docs.py,sha256=34hHae5zWjlFyO0lXhEjyV2IyuX4akwO1VNb01ylcLY,2833
|
132
128
|
stubber/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
133
129
|
stubber/tools/manifestfile.py,sha256=D5Plwj5LRDe6zq5m-ETKfum0vFAykka70WXSEHl83a4,23721
|
134
130
|
stubber/tools/readme.md,sha256=kH7dA2Rs4BLCXa2ILoTDIj3sJHcGYtDPntyxVIOXvtI,199
|
135
|
-
stubber/update_fallback.py,sha256=
|
131
|
+
stubber/update_fallback.py,sha256=NUxp1sN1-8BLPd0rpExTcYBppUXYWPP8dOcjNeLY2Zo,4921
|
136
132
|
stubber/update_module_list.py,sha256=QJ-c2K1Wf2SQdpMeGvlVabasKqsN9ZQV4ye5PbSpsWE,4640
|
137
133
|
stubber/utils/__init__.py,sha256=nV9FsOZsJ_hXsyUv4j0Qqp-PKycxyIktU9IoLs4kQmQ,225
|
138
|
-
stubber/utils/config.py,sha256=
|
134
|
+
stubber/utils/config.py,sha256=Jg4eHhgKim4uP4IqZRWykRNiX1r-SXC2xSrbsVprGAA,4859
|
139
135
|
stubber/utils/makeversionhdr.py,sha256=ZRpClirIzNK4saZHPaDuEpXhBRI_Ow_yZOxeNM3D_Ro,1908
|
140
136
|
stubber/utils/manifest.py,sha256=XBYCkxtYVAdUcch1784eHPAXlXfyfjco4WnRXxBHZYA,3273
|
141
137
|
stubber/utils/post.py,sha256=oSFZdoP6JwEeAOvsBo3kTk7l8ff_AVtL2Y4VIjzujlE,2837
|
@@ -144,8 +140,8 @@ stubber/utils/stubmaker.py,sha256=qld_Wfm9f4EuzedXlX1Ky0i0BJdR75oOOTha13_ekz0,52
|
|
144
140
|
stubber/utils/typed_config_toml.py,sha256=ikifCIZGNhS_uqsfp6IwIpxdtZqbLtywprjWG_Q0y8o,2629
|
145
141
|
stubber/utils/versions.py,sha256=R65PAlUCAs9uvTxA6Frco2tHx6ADZCn59JOWI59ZhOo,3790
|
146
142
|
stubber/variants.py,sha256=-o4TgotbKaCcYBdXkutPaBSR1JdxWmOAiuNT1UlahYc,3784
|
147
|
-
micropython_stubber-1.
|
148
|
-
micropython_stubber-1.
|
149
|
-
micropython_stubber-1.
|
150
|
-
micropython_stubber-1.
|
151
|
-
micropython_stubber-1.
|
143
|
+
micropython_stubber-1.20.0.dist-info/entry_points.txt,sha256=NQi_M36fgq5k6giSuASas3LrpF6CVdkzfvJC0ja73_g,55
|
144
|
+
micropython_stubber-1.20.0.dist-info/LICENSE,sha256=Fx9qrL45ayRXgH6QzttboqZEjKXms0w1t_b_nkOqYCU,1572
|
145
|
+
micropython_stubber-1.20.0.dist-info/METADATA,sha256=Ca3hFC3I3QZKJaG2DPXrLXTNv8LB3f2BFJgpuRfhK4k,19096
|
146
|
+
micropython_stubber-1.20.0.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
|
147
|
+
micropython_stubber-1.20.0.dist-info/RECORD,,
|
mpflash/mpflash/cli_flash.py
CHANGED
@@ -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
|
-
|
135
|
-
|
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 = []
|
mpflash/mpflash/cli_group.py
CHANGED
mpflash/mpflash/flash_uf2.py
CHANGED
@@ -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
|
mpflash/mpflash/list.py
CHANGED
@@ -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
|
-
|
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
|
27
|
-
|
28
|
-
|
29
|
-
|
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="
|
42
|
-
header_style="bold
|
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{
|
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
|
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
|
-
|
78
|
+
comports = serial.tools.list_ports.comports()
|
78
79
|
|
79
80
|
if not bluetooth:
|
80
81
|
# filter out bluetooth ports
|
81
|
-
|
82
|
-
|
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
|
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):
|
mpflash/mpflash/worklist.py
CHANGED
@@ -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
|
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
|
mpflash/poetry.lock
CHANGED
@@ -211,17 +211,17 @@ files = [
|
|
211
211
|
|
212
212
|
[[package]]
|
213
213
|
name = "bitstring"
|
214
|
-
version = "4.1
|
214
|
+
version = "4.2.1"
|
215
215
|
description = "Simple construction, analysis and modification of binary data."
|
216
216
|
optional = false
|
217
|
-
python-versions = ">=3.
|
217
|
+
python-versions = ">=3.8"
|
218
218
|
files = [
|
219
|
-
{file = "bitstring-4.1
|
220
|
-
{file = "bitstring-4.1.
|
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.
|
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.
|
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.
|
459
|
-
{file = "coverage-7.
|
460
|
-
{file = "coverage-7.
|
461
|
-
{file = "coverage-7.
|
462
|
-
{file = "coverage-7.
|
463
|
-
{file = "coverage-7.
|
464
|
-
{file = "coverage-7.
|
465
|
-
{file = "coverage-7.
|
466
|
-
{file = "coverage-7.
|
467
|
-
{file = "coverage-7.
|
468
|
-
{file = "coverage-7.
|
469
|
-
{file = "coverage-7.
|
470
|
-
{file = "coverage-7.
|
471
|
-
{file = "coverage-7.
|
472
|
-
{file = "coverage-7.
|
473
|
-
{file = "coverage-7.
|
474
|
-
{file = "coverage-7.
|
475
|
-
{file = "coverage-7.
|
476
|
-
{file = "coverage-7.
|
477
|
-
{file = "coverage-7.
|
478
|
-
{file = "coverage-7.
|
479
|
-
{file = "coverage-7.
|
480
|
-
{file = "coverage-7.
|
481
|
-
{file = "coverage-7.
|
482
|
-
{file = "coverage-7.
|
483
|
-
{file = "coverage-7.
|
484
|
-
{file = "coverage-7.
|
485
|
-
{file = "coverage-7.
|
486
|
-
{file = "coverage-7.
|
487
|
-
{file = "coverage-7.
|
488
|
-
{file = "coverage-7.
|
489
|
-
{file = "coverage-7.
|
490
|
-
{file = "coverage-7.
|
491
|
-
{file = "coverage-7.
|
492
|
-
{file = "coverage-7.
|
493
|
-
{file = "coverage-7.
|
494
|
-
{file = "coverage-7.
|
495
|
-
{file = "coverage-7.
|
496
|
-
{file = "coverage-7.
|
497
|
-
{file = "coverage-7.
|
498
|
-
{file = "coverage-7.
|
499
|
-
{file = "coverage-7.
|
500
|
-
{file = "coverage-7.
|
501
|
-
{file = "coverage-7.
|
502
|
-
{file = "coverage-7.
|
503
|
-
{file = "coverage-7.
|
504
|
-
{file = "coverage-7.
|
505
|
-
{file = "coverage-7.
|
506
|
-
{file = "coverage-7.
|
507
|
-
{file = "coverage-7.
|
508
|
-
{file = "coverage-7.
|
509
|
-
{file = "coverage-7.
|
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.
|
599
|
+
version = "0.19.0"
|
600
600
|
description = "ECDSA cryptographic signature library (pure python)"
|
601
601
|
optional = false
|
602
|
-
python-versions = "
|
602
|
+
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.6"
|
603
603
|
files = [
|
604
|
-
{file = "ecdsa-0.
|
605
|
-
{file = "ecdsa-0.
|
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.
|
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.
|
661
|
-
{file = "exceptiongroup-1.2.
|
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.
|
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.
|
700
|
-
{file = "idna-3.
|
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.
|
925
|
-
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a
|
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.
|
930
|
-
{file = "platformdirs-4.2.
|
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.
|
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.
|
945
|
-
{file = "pluggy-1.
|
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.
|
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.
|
1369
|
-
{file = "setuptools-69.
|
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 (
|
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
|
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.
|
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.
|
1443
|
-
{file = "typing_extensions-4.
|
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]]
|