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.
- {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.2.dist-info}/LICENSE +30 -30
- {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.2.dist-info}/METADATA +32 -15
- micropython_stubber-1.23.2.dist-info/RECORD +158 -0
- micropython_stubber-1.23.2.dist-info/entry_points.txt +5 -0
- mpflash/README.md +220 -194
- mpflash/libusb_flash.ipynb +203 -203
- mpflash/mpflash/add_firmware.py +98 -98
- mpflash/mpflash/ask_input.py +236 -236
- mpflash/mpflash/basicgit.py +284 -284
- mpflash/mpflash/bootloader/__init__.py +2 -2
- mpflash/mpflash/bootloader/activate.py +60 -60
- mpflash/mpflash/bootloader/detect.py +82 -82
- mpflash/mpflash/bootloader/manual.py +101 -101
- mpflash/mpflash/bootloader/micropython.py +12 -12
- mpflash/mpflash/bootloader/touch1200.py +36 -36
- mpflash/mpflash/cli_download.py +129 -129
- mpflash/mpflash/cli_flash.py +224 -219
- mpflash/mpflash/cli_group.py +111 -111
- mpflash/mpflash/cli_list.py +87 -81
- mpflash/mpflash/cli_main.py +39 -39
- mpflash/mpflash/common.py +210 -165
- mpflash/mpflash/config.py +44 -44
- mpflash/mpflash/connected.py +96 -78
- mpflash/mpflash/download.py +364 -364
- mpflash/mpflash/downloaded.py +130 -130
- mpflash/mpflash/errors.py +9 -9
- mpflash/mpflash/flash/__init__.py +55 -55
- mpflash/mpflash/flash/esp.py +59 -59
- mpflash/mpflash/flash/stm32.py +19 -19
- mpflash/mpflash/flash/stm32_dfu.py +104 -104
- mpflash/mpflash/flash/uf2/__init__.py +88 -88
- mpflash/mpflash/flash/uf2/boardid.py +15 -15
- mpflash/mpflash/flash/uf2/linux.py +136 -130
- mpflash/mpflash/flash/uf2/macos.py +42 -42
- mpflash/mpflash/flash/uf2/uf2disk.py +12 -12
- mpflash/mpflash/flash/uf2/windows.py +43 -43
- mpflash/mpflash/flash/worklist.py +170 -170
- mpflash/mpflash/list.py +106 -99
- mpflash/mpflash/logger.py +41 -41
- mpflash/mpflash/mpboard_id/__init__.py +93 -93
- mpflash/mpflash/mpboard_id/add_boards.py +251 -251
- 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 +266 -222
- mpflash/mpflash/mpremoteboard/mpy_fw_info.py +141 -141
- mpflash/mpflash/mpremoteboard/runner.py +140 -140
- 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/versions.py +135 -135
- mpflash/poetry.lock +1599 -1599
- mpflash/pyproject.toml +65 -65
- mpflash/stm32_udev_rules.md +62 -62
- stubber/__init__.py +3 -3
- stubber/board/board_info.csv +193 -193
- stubber/board/boot.py +34 -34
- stubber/board/createstubs.py +1004 -986
- stubber/board/createstubs_db.py +826 -825
- stubber/board/createstubs_db_min.py +332 -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 +767 -766
- stubber/board/createstubs_mem_min.py +307 -306
- stubber/board/createstubs_mem_mpy.mpy +0 -0
- stubber/board/createstubs_min.py +295 -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 +437 -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 +151 -145
- stubber/codemod/merge_docstub.py +284 -284
- stubber/codemod/modify_list.py +54 -54
- stubber/codemod/utils.py +56 -56
- stubber/commands/build_cmd.py +94 -94
- stubber/commands/cli.py +49 -55
- stubber/commands/clone_cmd.py +78 -78
- stubber/commands/config_cmd.py +29 -29
- stubber/commands/enrich_folder_cmd.py +71 -71
- stubber/commands/get_core_cmd.py +71 -71
- stubber/commands/get_docstubs_cmd.py +92 -89
- stubber/commands/get_frozen_cmd.py +117 -114
- stubber/commands/get_mcu_cmd.py +102 -61
- stubber/commands/merge_cmd.py +66 -66
- stubber/commands/publish_cmd.py +118 -118
- stubber/commands/stub_cmd.py +31 -31
- stubber/commands/switch_cmd.py +62 -62
- stubber/commands/variants_cmd.py +48 -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 +37 -36
- stubber/freeze/common.py +72 -68
- stubber/freeze/freeze_folder.py +69 -69
- stubber/freeze/freeze_manifest_2.py +126 -113
- stubber/freeze/get_frozen.py +131 -127
- stubber/get_cpython.py +112 -101
- stubber/get_lobo.py +59 -59
- stubber/minify.py +423 -419
- stubber/publish/bump.py +86 -86
- stubber/publish/candidates.py +275 -256
- stubber/publish/database.py +18 -18
- stubber/publish/defaults.py +40 -40
- stubber/publish/enums.py +24 -24
- stubber/publish/helpers.py +29 -29
- stubber/publish/merge_docstubs.py +136 -130
- stubber/publish/missing_class_methods.py +51 -49
- stubber/publish/package.py +150 -146
- stubber/publish/pathnames.py +51 -51
- stubber/publish/publish.py +120 -120
- stubber/publish/pypi.py +42 -38
- stubber/publish/stubpackage.py +1055 -1027
- stubber/rst/__init__.py +9 -9
- stubber/rst/classsort.py +78 -77
- stubber/rst/lookup.py +533 -530
- stubber/rst/output_dict.py +401 -401
- stubber/rst/reader.py +814 -814
- stubber/rst/report_return.py +77 -69
- stubber/rst/rst_utils.py +541 -540
- stubber/stubber.py +38 -38
- stubber/stubs_from_docs.py +90 -90
- stubber/tools/manifestfile.py +654 -654
- stubber/tools/readme.md +6 -6
- stubber/update_fallback.py +117 -117
- stubber/update_module_list.py +123 -123
- stubber/utils/__init__.py +6 -6
- stubber/utils/config.py +137 -125
- stubber/utils/makeversionhdr.py +54 -54
- stubber/utils/manifest.py +90 -90
- stubber/utils/post.py +80 -79
- stubber/utils/repos.py +156 -150
- stubber/utils/stubmaker.py +139 -139
- stubber/utils/typed_config_toml.py +80 -77
- stubber/variants.py +106 -106
- micropython_stubber-1.23.1.dist-info/RECORD +0 -159
- micropython_stubber-1.23.1.dist-info/entry_points.txt +0 -3
- mpflash/basicgit.py +0 -288
- {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.2.dist-info}/WHEEL +0 -0
mpflash/mpflash/vendor/readme.md
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
These modules are vendored from the following repositories:
|
2
|
-
|
1
|
+
These modules are vendored from the following repositories:
|
2
|
+
|
3
3
|
micropython/micropython
|
mpflash/mpflash/versions.py
CHANGED
@@ -1,135 +1,135 @@
|
|
1
|
-
"""
|
2
|
-
#############################################################
|
3
|
-
# Version handling copied from stubber/utils/versions.py
|
4
|
-
#############################################################
|
5
|
-
"""
|
6
|
-
|
7
|
-
from pathlib import Path
|
8
|
-
|
9
|
-
from cache_to_disk import NoCacheCondition, cache_to_disk
|
10
|
-
from loguru import logger as log
|
11
|
-
from packaging.version import parse
|
12
|
-
|
13
|
-
import mpflash.basicgit as git
|
14
|
-
from mpflash.common import GH_CLIENT
|
15
|
-
|
16
|
-
OLDEST_VERSION = "1.16"
|
17
|
-
"This is the oldest MicroPython version to build the stubs on"
|
18
|
-
|
19
|
-
V_PREVIEW = "preview"
|
20
|
-
"Latest preview version"
|
21
|
-
|
22
|
-
SET_PREVIEW = {"preview", "latest", "master"}
|
23
|
-
|
24
|
-
|
25
|
-
def clean_version(
|
26
|
-
version: str,
|
27
|
-
*,
|
28
|
-
build: bool = False,
|
29
|
-
patch: bool = False,
|
30
|
-
commit: bool = False,
|
31
|
-
drop_v: bool = False,
|
32
|
-
flat: bool = False,
|
33
|
-
): # sourcery skip: assign-if-exp
|
34
|
-
"Clean up and transform the many flavours of versions"
|
35
|
-
# 'v1.13.0-103-gb137d064e' --> 'v1.13-103'
|
36
|
-
if version in {"", "-"}:
|
37
|
-
return version
|
38
|
-
if version.lower() == "stable":
|
39
|
-
_v = get_stable_mp_version()
|
40
|
-
if not _v:
|
41
|
-
log.warning("Could not determine the latest stable version")
|
42
|
-
return "stable"
|
43
|
-
version = _v
|
44
|
-
log.trace(f"Using latest stable version: {version}")
|
45
|
-
is_preview = "-preview" in version
|
46
|
-
nibbles = version.split("-")
|
47
|
-
ver_ = nibbles[0].lower().lstrip("v")
|
48
|
-
if not patch and ver_ >= "1.10.0" and ver_ < "1.20.0" and ver_.endswith(".0"):
|
49
|
-
# remove the last ".0" - but only for versions between 1.10 and 1.20 (because)
|
50
|
-
nibbles[0] = nibbles[0][:-2]
|
51
|
-
if len(nibbles) == 1:
|
52
|
-
version = nibbles[0]
|
53
|
-
elif build and not is_preview:
|
54
|
-
# HACK: this is not always right, but good enough most of the time
|
55
|
-
version = "-".join(nibbles) if commit else "-".join(nibbles[:-1])
|
56
|
-
elif is_preview:
|
57
|
-
version = "-".join((nibbles[0], V_PREVIEW))
|
58
|
-
else:
|
59
|
-
version = V_PREVIEW
|
60
|
-
if flat:
|
61
|
-
version = version.strip().replace(".", "_").replace("-", "_")
|
62
|
-
else:
|
63
|
-
version = version.strip().replace("_preview", "-preview").replace("_", ".")
|
64
|
-
|
65
|
-
if drop_v:
|
66
|
-
version = version.lstrip("v")
|
67
|
-
elif not version.startswith("v") and version.lower() not in SET_PREVIEW:
|
68
|
-
version = "v" + version
|
69
|
-
if version in SET_PREVIEW:
|
70
|
-
version = V_PREVIEW
|
71
|
-
return version
|
72
|
-
|
73
|
-
|
74
|
-
@cache_to_disk(n_days_to_cache=1)
|
75
|
-
def micropython_versions(minver: str = "v1.20", reverse: bool = False):
|
76
|
-
"""Get the list of micropython versions from github tags"""
|
77
|
-
cache_it = True
|
78
|
-
try:
|
79
|
-
gh_client = GH_CLIENT
|
80
|
-
repo = gh_client.get_repo("micropython/micropython")
|
81
|
-
versions = [tag.name for tag in repo.get_tags() if parse(tag.name) >= parse(minver)]
|
82
|
-
# Only keep the last preview
|
83
|
-
versions = [v for v in versions if not v.endswith(V_PREVIEW) or v == versions[-1]]
|
84
|
-
except Exception:
|
85
|
-
versions = [
|
86
|
-
"v9.99.9-preview",
|
87
|
-
"v1.22.2",
|
88
|
-
"v1.22.1",
|
89
|
-
"v1.22.0",
|
90
|
-
"v1.21.1",
|
91
|
-
"v1.21.0",
|
92
|
-
"v1.20.0",
|
93
|
-
"v1.19.1",
|
94
|
-
"v1.19",
|
95
|
-
"v1.18",
|
96
|
-
"v1.17",
|
97
|
-
"v1.16",
|
98
|
-
"v1.15",
|
99
|
-
"v1.14",
|
100
|
-
"v1.13",
|
101
|
-
"v1.12",
|
102
|
-
"v1.11",
|
103
|
-
"v1.10",
|
104
|
-
]
|
105
|
-
cache_it = False
|
106
|
-
versions = [v for v in versions if parse(v) >= parse(minver)]
|
107
|
-
# remove all but the most recent (preview) version
|
108
|
-
versions = versions[:1] + [v for v in versions if "preview" not in v]
|
109
|
-
versions = sorted(versions, reverse=reverse)
|
110
|
-
if cache_it:
|
111
|
-
return versions
|
112
|
-
# returns - but does not cache
|
113
|
-
raise NoCacheCondition(function_value=versions)
|
114
|
-
|
115
|
-
|
116
|
-
def get_stable_mp_version() -> str:
|
117
|
-
# read the versions from the git tags
|
118
|
-
all_versions = micropython_versions(minver=OLDEST_VERSION)
|
119
|
-
return [v for v in all_versions if not v.endswith(V_PREVIEW)][-1]
|
120
|
-
|
121
|
-
|
122
|
-
def get_preview_mp_version() -> str:
|
123
|
-
# read the versions from the git tags
|
124
|
-
all_versions = micropython_versions(minver=OLDEST_VERSION)
|
125
|
-
return [v for v in all_versions if v.endswith(V_PREVIEW)][-1]
|
126
|
-
|
127
|
-
|
128
|
-
# Do not cache , same path will have different versions checked out
|
129
|
-
def checkedout_version(path: Path, flat: bool = False) -> str:
|
130
|
-
"""Get the checked-out version of the repo"""
|
131
|
-
version = git.get_local_tag(path.as_posix())
|
132
|
-
if not version:
|
133
|
-
raise ValueError("No valid Tag found")
|
134
|
-
version = clean_version(version, flat=flat, drop_v=False)
|
135
|
-
return version
|
1
|
+
"""
|
2
|
+
#############################################################
|
3
|
+
# Version handling copied from stubber/utils/versions.py
|
4
|
+
#############################################################
|
5
|
+
"""
|
6
|
+
|
7
|
+
from pathlib import Path
|
8
|
+
|
9
|
+
from cache_to_disk import NoCacheCondition, cache_to_disk
|
10
|
+
from loguru import logger as log
|
11
|
+
from packaging.version import parse
|
12
|
+
|
13
|
+
import mpflash.basicgit as git
|
14
|
+
from mpflash.common import GH_CLIENT
|
15
|
+
|
16
|
+
OLDEST_VERSION = "1.16"
|
17
|
+
"This is the oldest MicroPython version to build the stubs on"
|
18
|
+
|
19
|
+
V_PREVIEW = "preview"
|
20
|
+
"Latest preview version"
|
21
|
+
|
22
|
+
SET_PREVIEW = {"preview", "latest", "master"}
|
23
|
+
|
24
|
+
|
25
|
+
def clean_version(
|
26
|
+
version: str,
|
27
|
+
*,
|
28
|
+
build: bool = False,
|
29
|
+
patch: bool = False,
|
30
|
+
commit: bool = False,
|
31
|
+
drop_v: bool = False,
|
32
|
+
flat: bool = False,
|
33
|
+
): # sourcery skip: assign-if-exp
|
34
|
+
"Clean up and transform the many flavours of versions"
|
35
|
+
# 'v1.13.0-103-gb137d064e' --> 'v1.13-103'
|
36
|
+
if version in {"", "-"}:
|
37
|
+
return version
|
38
|
+
if version.lower() == "stable":
|
39
|
+
_v = get_stable_mp_version()
|
40
|
+
if not _v:
|
41
|
+
log.warning("Could not determine the latest stable version")
|
42
|
+
return "stable"
|
43
|
+
version = _v
|
44
|
+
log.trace(f"Using latest stable version: {version}")
|
45
|
+
is_preview = "-preview" in version
|
46
|
+
nibbles = version.split("-")
|
47
|
+
ver_ = nibbles[0].lower().lstrip("v")
|
48
|
+
if not patch and ver_ >= "1.10.0" and ver_ < "1.20.0" and ver_.endswith(".0"):
|
49
|
+
# remove the last ".0" - but only for versions between 1.10 and 1.20 (because)
|
50
|
+
nibbles[0] = nibbles[0][:-2]
|
51
|
+
if len(nibbles) == 1:
|
52
|
+
version = nibbles[0]
|
53
|
+
elif build and not is_preview:
|
54
|
+
# HACK: this is not always right, but good enough most of the time
|
55
|
+
version = "-".join(nibbles) if commit else "-".join(nibbles[:-1])
|
56
|
+
elif is_preview:
|
57
|
+
version = "-".join((nibbles[0], V_PREVIEW))
|
58
|
+
else:
|
59
|
+
version = V_PREVIEW
|
60
|
+
if flat:
|
61
|
+
version = version.strip().replace(".", "_").replace("-", "_")
|
62
|
+
else:
|
63
|
+
version = version.strip().replace("_preview", "-preview").replace("_", ".")
|
64
|
+
|
65
|
+
if drop_v:
|
66
|
+
version = version.lstrip("v")
|
67
|
+
elif not version.startswith("v") and version.lower() not in SET_PREVIEW:
|
68
|
+
version = "v" + version
|
69
|
+
if version in SET_PREVIEW:
|
70
|
+
version = V_PREVIEW
|
71
|
+
return version
|
72
|
+
|
73
|
+
|
74
|
+
@cache_to_disk(n_days_to_cache=1)
|
75
|
+
def micropython_versions(minver: str = "v1.20", reverse: bool = False):
|
76
|
+
"""Get the list of micropython versions from github tags"""
|
77
|
+
cache_it = True
|
78
|
+
try:
|
79
|
+
gh_client = GH_CLIENT
|
80
|
+
repo = gh_client.get_repo("micropython/micropython")
|
81
|
+
versions = [tag.name for tag in repo.get_tags() if parse(tag.name) >= parse(minver)]
|
82
|
+
# Only keep the last preview
|
83
|
+
versions = [v for v in versions if not v.endswith(V_PREVIEW) or v == versions[-1]]
|
84
|
+
except Exception:
|
85
|
+
versions = [
|
86
|
+
"v9.99.9-preview",
|
87
|
+
"v1.22.2",
|
88
|
+
"v1.22.1",
|
89
|
+
"v1.22.0",
|
90
|
+
"v1.21.1",
|
91
|
+
"v1.21.0",
|
92
|
+
"v1.20.0",
|
93
|
+
"v1.19.1",
|
94
|
+
"v1.19",
|
95
|
+
"v1.18",
|
96
|
+
"v1.17",
|
97
|
+
"v1.16",
|
98
|
+
"v1.15",
|
99
|
+
"v1.14",
|
100
|
+
"v1.13",
|
101
|
+
"v1.12",
|
102
|
+
"v1.11",
|
103
|
+
"v1.10",
|
104
|
+
]
|
105
|
+
cache_it = False
|
106
|
+
versions = [v for v in versions if parse(v) >= parse(minver)]
|
107
|
+
# remove all but the most recent (preview) version
|
108
|
+
versions = versions[:1] + [v for v in versions if "preview" not in v]
|
109
|
+
versions = sorted(versions, reverse=reverse)
|
110
|
+
if cache_it:
|
111
|
+
return versions
|
112
|
+
# returns - but does not cache
|
113
|
+
raise NoCacheCondition(function_value=versions)
|
114
|
+
|
115
|
+
|
116
|
+
def get_stable_mp_version() -> str:
|
117
|
+
# read the versions from the git tags
|
118
|
+
all_versions = micropython_versions(minver=OLDEST_VERSION)
|
119
|
+
return [v for v in all_versions if not v.endswith(V_PREVIEW)][-1]
|
120
|
+
|
121
|
+
|
122
|
+
def get_preview_mp_version() -> str:
|
123
|
+
# read the versions from the git tags
|
124
|
+
all_versions = micropython_versions(minver=OLDEST_VERSION)
|
125
|
+
return [v for v in all_versions if v.endswith(V_PREVIEW)][-1]
|
126
|
+
|
127
|
+
|
128
|
+
# Do not cache , same path will have different versions checked out
|
129
|
+
def checkedout_version(path: Path, flat: bool = False) -> str:
|
130
|
+
"""Get the checked-out version of the repo"""
|
131
|
+
version = git.get_local_tag(path.as_posix())
|
132
|
+
if not version:
|
133
|
+
raise ValueError("No valid Tag found")
|
134
|
+
version = clean_version(version, flat=flat, drop_v=False)
|
135
|
+
return version
|