micropython-stubber 1.20.5__py3-none-any.whl → 1.23.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.20.5.dist-info → micropython_stubber-1.23.0.dist-info}/LICENSE +30 -30
- {micropython_stubber-1.20.5.dist-info → micropython_stubber-1.23.0.dist-info}/METADATA +1 -1
- micropython_stubber-1.23.0.dist-info/RECORD +159 -0
- mpflash/README.md +184 -184
- mpflash/libusb_flash.ipynb +203 -203
- mpflash/mpflash/add_firmware.py +98 -98
- mpflash/mpflash/ask_input.py +236 -236
- mpflash/mpflash/bootloader/__init__.py +37 -36
- mpflash/mpflash/bootloader/manual.py +102 -102
- mpflash/mpflash/bootloader/micropython.py +10 -10
- mpflash/mpflash/bootloader/touch1200.py +45 -45
- mpflash/mpflash/cli_download.py +129 -129
- mpflash/mpflash/cli_flash.py +219 -219
- mpflash/mpflash/cli_group.py +98 -98
- mpflash/mpflash/cli_list.py +81 -81
- mpflash/mpflash/cli_main.py +41 -41
- mpflash/mpflash/common.py +164 -164
- mpflash/mpflash/config.py +43 -47
- mpflash/mpflash/connected.py +74 -74
- mpflash/mpflash/download.py +360 -360
- mpflash/mpflash/downloaded.py +130 -129
- mpflash/mpflash/errors.py +9 -9
- mpflash/mpflash/flash.py +55 -52
- mpflash/mpflash/flash_esp.py +59 -59
- mpflash/mpflash/flash_stm32.py +18 -24
- mpflash/mpflash/flash_stm32_cube.py +111 -111
- mpflash/mpflash/flash_stm32_dfu.py +104 -101
- mpflash/mpflash/flash_uf2.py +89 -67
- mpflash/mpflash/flash_uf2_boardid.py +15 -15
- mpflash/mpflash/flash_uf2_linux.py +129 -123
- mpflash/mpflash/flash_uf2_macos.py +37 -34
- mpflash/mpflash/flash_uf2_windows.py +38 -34
- mpflash/mpflash/list.py +89 -89
- mpflash/mpflash/logger.py +41 -41
- mpflash/mpflash/mpboard_id/__init__.py +93 -93
- mpflash/mpflash/mpboard_id/add_boards.py +255 -255
- mpflash/mpflash/mpboard_id/board.py +37 -37
- mpflash/mpflash/mpboard_id/board_id.py +86 -86
- mpflash/mpflash/mpboard_id/store.py +43 -43
- mpflash/mpflash/mpremoteboard/__init__.py +226 -221
- mpflash/mpflash/mpremoteboard/mpy_fw_info.py +141 -141
- mpflash/mpflash/mpremoteboard/runner.py +140 -140
- mpflash/mpflash/uf2disk.py +12 -12
- mpflash/mpflash/vendor/basicgit.py +288 -288
- mpflash/mpflash/vendor/click_aliases.py +91 -91
- mpflash/mpflash/vendor/dfu.py +165 -165
- mpflash/mpflash/vendor/pydfu.py +605 -605
- mpflash/mpflash/vendor/readme.md +2 -2
- mpflash/mpflash/vendor/versions.py +119 -117
- mpflash/mpflash/worklist.py +171 -170
- mpflash/poetry.lock +1588 -1588
- mpflash/pyproject.toml +64 -60
- mpflash/stm32_udev_rules.md +62 -62
- stubber/__init__.py +3 -3
- stubber/basicgit.py +294 -288
- stubber/board/board_info.csv +193 -193
- stubber/board/boot.py +34 -34
- stubber/board/createstubs.py +986 -986
- stubber/board/createstubs_db.py +825 -825
- stubber/board/createstubs_db_min.py +331 -331
- stubber/board/createstubs_db_mpy.mpy +0 -0
- stubber/board/createstubs_lvgl.py +741 -741
- stubber/board/createstubs_lvgl_min.py +741 -741
- stubber/board/createstubs_mem.py +766 -766
- stubber/board/createstubs_mem_min.py +306 -306
- stubber/board/createstubs_mem_mpy.mpy +0 -0
- stubber/board/createstubs_min.py +294 -294
- stubber/board/createstubs_mpy.mpy +0 -0
- stubber/board/fw_info.py +141 -141
- stubber/board/info.py +183 -183
- stubber/board/main.py +19 -19
- stubber/board/modulelist.txt +247 -247
- stubber/board/pyrightconfig.json +34 -34
- stubber/bulk/mcu_stubber.py +454 -454
- stubber/codemod/_partials/__init__.py +48 -48
- stubber/codemod/_partials/db_main.py +147 -147
- stubber/codemod/_partials/lvgl_main.py +77 -77
- stubber/codemod/_partials/modules_reader.py +80 -80
- stubber/codemod/add_comment.py +53 -53
- stubber/codemod/add_method.py +65 -65
- stubber/codemod/board.py +317 -317
- stubber/codemod/enrich.py +145 -145
- stubber/codemod/merge_docstub.py +284 -284
- stubber/codemod/modify_list.py +54 -54
- stubber/codemod/utils.py +57 -57
- stubber/commands/build_cmd.py +94 -94
- stubber/commands/cli.py +55 -51
- stubber/commands/clone_cmd.py +77 -66
- stubber/commands/config_cmd.py +29 -29
- stubber/commands/enrich_folder_cmd.py +71 -70
- stubber/commands/get_core_cmd.py +71 -69
- stubber/commands/get_docstubs_cmd.py +89 -87
- stubber/commands/get_frozen_cmd.py +114 -112
- stubber/commands/get_mcu_cmd.py +61 -56
- stubber/commands/merge_cmd.py +67 -66
- stubber/commands/publish_cmd.py +119 -119
- stubber/commands/stub_cmd.py +31 -30
- stubber/commands/switch_cmd.py +62 -54
- stubber/commands/variants_cmd.py +49 -48
- stubber/cst_transformer.py +178 -178
- stubber/data/board_info.csv +193 -193
- stubber/data/board_info.json +1729 -1729
- stubber/data/micropython_tags.csv +15 -15
- stubber/data/requirements-core-micropython.txt +38 -38
- stubber/data/requirements-core-pycopy.txt +39 -39
- stubber/downloader.py +36 -36
- stubber/freeze/common.py +68 -68
- stubber/freeze/freeze_folder.py +69 -69
- stubber/freeze/freeze_manifest_2.py +113 -113
- stubber/freeze/get_frozen.py +127 -127
- stubber/get_cpython.py +101 -101
- stubber/get_lobo.py +59 -59
- stubber/minify.py +418 -418
- stubber/publish/bump.py +86 -86
- stubber/publish/candidates.py +262 -262
- stubber/publish/database.py +18 -18
- stubber/publish/defaults.py +45 -45
- stubber/publish/enums.py +24 -24
- stubber/publish/helpers.py +29 -29
- stubber/publish/merge_docstubs.py +130 -130
- stubber/publish/missing_class_methods.py +49 -49
- stubber/publish/package.py +146 -146
- stubber/publish/pathnames.py +51 -51
- stubber/publish/publish.py +120 -120
- stubber/publish/pypi.py +38 -38
- stubber/publish/stubpackage.py +1029 -1029
- stubber/rst/__init__.py +9 -9
- stubber/rst/classsort.py +77 -77
- stubber/rst/lookup.py +530 -530
- stubber/rst/output_dict.py +401 -401
- stubber/rst/reader.py +822 -822
- stubber/rst/report_return.py +69 -69
- stubber/rst/rst_utils.py +540 -540
- stubber/stubber.py +38 -38
- stubber/stubs_from_docs.py +90 -90
- stubber/tools/manifestfile.py +655 -610
- stubber/tools/readme.md +7 -6
- stubber/update_fallback.py +117 -117
- stubber/update_module_list.py +123 -123
- stubber/utils/__init__.py +5 -5
- stubber/utils/config.py +127 -127
- stubber/utils/makeversionhdr.py +54 -54
- stubber/utils/manifest.py +92 -92
- stubber/utils/post.py +79 -79
- stubber/utils/repos.py +157 -154
- stubber/utils/stubmaker.py +139 -139
- stubber/utils/typed_config_toml.py +77 -77
- stubber/utils/versions.py +128 -120
- stubber/variants.py +106 -106
- micropython_stubber-1.20.5.dist-info/RECORD +0 -159
- {micropython_stubber-1.20.5.dist-info → micropython_stubber-1.23.0.dist-info}/WHEEL +0 -0
- {micropython_stubber-1.20.5.dist-info → micropython_stubber-1.23.0.dist-info}/entry_points.txt +0 -0
stubber/rst/__init__.py
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
""".rst processing"""
|
2
|
-
# sourcery skip: no-wildcard-imports
|
3
|
-
from .classsort import *
|
4
|
-
from .lookup import *
|
5
|
-
from .output_dict import *
|
6
|
-
from .rst_utils import *
|
7
|
-
|
8
|
-
# combine all _all__s
|
9
|
-
__all__ = classsort.__all__ + lookup.__all__ + output_dict.__all__ + rst_utils.__all__ # type: ignore
|
1
|
+
""".rst processing"""
|
2
|
+
# sourcery skip: no-wildcard-imports
|
3
|
+
from .classsort import *
|
4
|
+
from .lookup import *
|
5
|
+
from .output_dict import *
|
6
|
+
from .rst_utils import *
|
7
|
+
|
8
|
+
# combine all _all__s
|
9
|
+
__all__ = classsort.__all__ + lookup.__all__ + output_dict.__all__ + rst_utils.__all__ # type: ignore
|
stubber/rst/classsort.py
CHANGED
@@ -1,77 +1,77 @@
|
|
1
|
-
"""
|
2
|
-
Sort list of classess in parent-child order
|
3
|
-
note that this does not take multiple inheritance into account
|
4
|
-
ref : https://stackoverflow.com/questions/34964878/python-generate-a-dictionarytree-from-a-list-of-tuples/35049729#35049729
|
5
|
-
with modification
|
6
|
-
"""
|
7
|
-
import re
|
8
|
-
from typing import List
|
9
|
-
|
10
|
-
from loguru import logger as log
|
11
|
-
|
12
|
-
__all__ = ["sort_classes"]
|
13
|
-
RE_CLASS = re.compile(r"class\s+(?P<class>\w+)(\((?P<parent>\w*)\))?")
|
14
|
-
|
15
|
-
|
16
|
-
def sort_classes(classes: List[str]):
|
17
|
-
"sort a list of classes to respect the parent-child order"
|
18
|
-
# Note this only takes single decedents in perspective
|
19
|
-
# pass 1: create nodes dictionary
|
20
|
-
nodes = {"": {"id": "root", "children": []}}
|
21
|
-
|
22
|
-
for c in classes:
|
23
|
-
m = RE_CLASS.match(c)
|
24
|
-
if m:
|
25
|
-
# parent_name = m.group("parent")
|
26
|
-
class_name = m.group("class").strip()
|
27
|
-
nodes[class_name] = {"id": class_name, "class": c, "children": []}
|
28
|
-
|
29
|
-
# pass 2: create trees and parent-child relations
|
30
|
-
forest = []
|
31
|
-
forest.append(nodes[""]) # add root node to connect
|
32
|
-
for c in classes:
|
33
|
-
m = RE_CLASS.match(c)
|
34
|
-
if not m:
|
35
|
-
continue
|
36
|
-
if m.group("parent"): # parent specified
|
37
|
-
parent_name = m.group("parent").split(",")[0].strip() # just use first parent
|
38
|
-
else:
|
39
|
-
parent_name = ""
|
40
|
-
|
41
|
-
class_name = m.group("class").strip()
|
42
|
-
node = nodes[class_name]
|
43
|
-
|
44
|
-
# either make the node a new tree or link it to its parent
|
45
|
-
if class_name == parent_name:
|
46
|
-
# start a new tree in the forest
|
47
|
-
forest.append(node)
|
48
|
-
else:
|
49
|
-
# add new_node as child to parent
|
50
|
-
try:
|
51
|
-
parent = nodes[parent_name]
|
52
|
-
except KeyError:
|
53
|
-
# Parent not defined in this module, add as child to root
|
54
|
-
parent = nodes[""]
|
55
|
-
if "children" not in parent:
|
56
|
-
# ensure parent has a 'children' field
|
57
|
-
parent["children"] = []
|
58
|
-
children = parent["children"]
|
59
|
-
children.append(node) # type:ignore
|
60
|
-
|
61
|
-
# step 3: simple function to print
|
62
|
-
def list_node(node, sorted: List[str]):
|
63
|
-
try:
|
64
|
-
sorted.append(node["class"])
|
65
|
-
log.trace(node["id"], node["class"])
|
66
|
-
except KeyError:
|
67
|
-
log.trace(node["id"])
|
68
|
-
log.trace(node["id"])
|
69
|
-
if node.get("children", False):
|
70
|
-
for child in node["children"]:
|
71
|
-
list_node(child, sorted)
|
72
|
-
|
73
|
-
l_sorted: List[str] = []
|
74
|
-
|
75
|
-
for node in forest:
|
76
|
-
list_node(node, l_sorted)
|
77
|
-
return l_sorted
|
1
|
+
"""
|
2
|
+
Sort list of classess in parent-child order
|
3
|
+
note that this does not take multiple inheritance into account
|
4
|
+
ref : https://stackoverflow.com/questions/34964878/python-generate-a-dictionarytree-from-a-list-of-tuples/35049729#35049729
|
5
|
+
with modification
|
6
|
+
"""
|
7
|
+
import re
|
8
|
+
from typing import List
|
9
|
+
|
10
|
+
from loguru import logger as log
|
11
|
+
|
12
|
+
__all__ = ["sort_classes"]
|
13
|
+
RE_CLASS = re.compile(r"class\s+(?P<class>\w+)(\((?P<parent>\w*)\))?")
|
14
|
+
|
15
|
+
|
16
|
+
def sort_classes(classes: List[str]):
|
17
|
+
"sort a list of classes to respect the parent-child order"
|
18
|
+
# Note this only takes single decedents in perspective
|
19
|
+
# pass 1: create nodes dictionary
|
20
|
+
nodes = {"": {"id": "root", "children": []}}
|
21
|
+
|
22
|
+
for c in classes:
|
23
|
+
m = RE_CLASS.match(c)
|
24
|
+
if m:
|
25
|
+
# parent_name = m.group("parent")
|
26
|
+
class_name = m.group("class").strip()
|
27
|
+
nodes[class_name] = {"id": class_name, "class": c, "children": []}
|
28
|
+
|
29
|
+
# pass 2: create trees and parent-child relations
|
30
|
+
forest = []
|
31
|
+
forest.append(nodes[""]) # add root node to connect
|
32
|
+
for c in classes:
|
33
|
+
m = RE_CLASS.match(c)
|
34
|
+
if not m:
|
35
|
+
continue
|
36
|
+
if m.group("parent"): # parent specified
|
37
|
+
parent_name = m.group("parent").split(",")[0].strip() # just use first parent
|
38
|
+
else:
|
39
|
+
parent_name = ""
|
40
|
+
|
41
|
+
class_name = m.group("class").strip()
|
42
|
+
node = nodes[class_name]
|
43
|
+
|
44
|
+
# either make the node a new tree or link it to its parent
|
45
|
+
if class_name == parent_name:
|
46
|
+
# start a new tree in the forest
|
47
|
+
forest.append(node)
|
48
|
+
else:
|
49
|
+
# add new_node as child to parent
|
50
|
+
try:
|
51
|
+
parent = nodes[parent_name]
|
52
|
+
except KeyError:
|
53
|
+
# Parent not defined in this module, add as child to root
|
54
|
+
parent = nodes[""]
|
55
|
+
if "children" not in parent:
|
56
|
+
# ensure parent has a 'children' field
|
57
|
+
parent["children"] = []
|
58
|
+
children = parent["children"]
|
59
|
+
children.append(node) # type:ignore
|
60
|
+
|
61
|
+
# step 3: simple function to print
|
62
|
+
def list_node(node, sorted: List[str]):
|
63
|
+
try:
|
64
|
+
sorted.append(node["class"])
|
65
|
+
log.trace(node["id"], node["class"])
|
66
|
+
except KeyError:
|
67
|
+
log.trace(node["id"])
|
68
|
+
log.trace(node["id"])
|
69
|
+
if node.get("children", False):
|
70
|
+
for child in node["children"]:
|
71
|
+
list_node(child, sorted)
|
72
|
+
|
73
|
+
l_sorted: List[str] = []
|
74
|
+
|
75
|
+
for node in forest:
|
76
|
+
list_node(node, l_sorted)
|
77
|
+
return l_sorted
|