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/get_cpython.py
CHANGED
@@ -1,101 +1,101 @@
|
|
1
|
-
"""
|
2
|
-
Download or update the MicroPython compatibility modules from pycopy and stores them in the all_stubs folder
|
3
|
-
The all_stubs folder should be mapped/symlinked to the micropython_stubs/stubs repo/folder
|
4
|
-
"""
|
5
|
-
# pragma: no cover
|
6
|
-
import json
|
7
|
-
import os
|
8
|
-
import pkgutil
|
9
|
-
import shutil
|
10
|
-
import subprocess
|
11
|
-
import tempfile
|
12
|
-
from pathlib import Path
|
13
|
-
from typing import Optional, Union
|
14
|
-
|
15
|
-
from loguru import logger as log
|
16
|
-
|
17
|
-
from . import __version__
|
18
|
-
|
19
|
-
from . import utils
|
20
|
-
from .utils.config import CONFIG
|
21
|
-
|
22
|
-
# # log = logging.getLogger(__name__)
|
23
|
-
|
24
|
-
|
25
|
-
def get_core(requirements: str, stub_path: Optional[Union[str, Path]] = None, family: str = "core"):
|
26
|
-
"Download MicroPython compatibility modules"
|
27
|
-
if not stub_path:
|
28
|
-
stub_path = CONFIG.stub_path / "cpython-core" # pragma: no cover
|
29
|
-
stub_path = Path(stub_path)
|
30
|
-
|
31
|
-
# use pip to download requirements file to build folder in one go
|
32
|
-
# pip install --no-compile --no-cache-dir --target ./scratch/test --upgrade -r ./src/micropython.txt
|
33
|
-
|
34
|
-
os.makedirs(stub_path, exist_ok=True)
|
35
|
-
# get a temp dir and clean up afterwards
|
36
|
-
with tempfile.TemporaryDirectory() as tmpdir:
|
37
|
-
build_path = Path(tmpdir).absolute()
|
38
|
-
# os.makedirs(build_path, exist_ok=True)
|
39
|
-
mod_manifest = None
|
40
|
-
modlist = []
|
41
|
-
|
42
|
-
# within package/mymodule1.py, for example
|
43
|
-
|
44
|
-
data = pkgutil.get_data(__name__, "data/" + requirements)
|
45
|
-
if not data: # pragma: no cover
|
46
|
-
raise FileNotFoundError("Resource Not found")
|
47
|
-
temp_file = tempfile.NamedTemporaryFile(prefix="requirements", suffix=".txt", delete=False)
|
48
|
-
with temp_file.file as fp:
|
49
|
-
fp.write(data)
|
50
|
-
fp.close
|
51
|
-
#
|
52
|
-
req_filename = temp_file.name
|
53
|
-
|
54
|
-
try:
|
55
|
-
subprocess.run(
|
56
|
-
[
|
57
|
-
"pip",
|
58
|
-
"install",
|
59
|
-
"--target",
|
60
|
-
build_path.as_posix(),
|
61
|
-
"-r",
|
62
|
-
req_filename,
|
63
|
-
"--no-cache-dir",
|
64
|
-
"--no-compile",
|
65
|
-
"--upgrade",
|
66
|
-
"--no-binary=:all:",
|
67
|
-
],
|
68
|
-
capture_output=False,
|
69
|
-
check=True,
|
70
|
-
)
|
71
|
-
|
72
|
-
except OSError as err: # pragma: no cover
|
73
|
-
log.error(
|
74
|
-
"An error occurred while trying to run pip to download the MicroPython compatibility modules from PyPi: {}".format(err)
|
75
|
-
)
|
76
|
-
|
77
|
-
# copy *.py files in build folder to stub_path
|
78
|
-
# sort by filename to reduce churn in the repo
|
79
|
-
for filename in sorted(build_path.rglob("*.py")):
|
80
|
-
log.debug("pipped : {}".format(filename.name))
|
81
|
-
# f_name, f_ext = os.path.splitext(os.path.basename(filename)) # pylint: disable=unused-variable
|
82
|
-
modlist.append({"file": filename.name, "module": filename.stem})
|
83
|
-
try:
|
84
|
-
shutil.copy2(filename, stub_path)
|
85
|
-
except OSError as err: # pragma: no cover
|
86
|
-
log.exception(err)
|
87
|
-
|
88
|
-
# build modules.json
|
89
|
-
mod_manifest = utils.manifest(family="cpython-core", port=family, version=__version__, stubtype="core", platform="cpython")
|
90
|
-
mod_manifest["modules"] += modlist
|
91
|
-
|
92
|
-
if mod_manifest and len(modlist):
|
93
|
-
# write the the module manifest for the cpython core modules
|
94
|
-
with open(stub_path / "modules.json", "w") as outfile:
|
95
|
-
json.dump(mod_manifest, outfile, indent=4, sort_keys=True)
|
96
|
-
|
97
|
-
|
98
|
-
if __name__ == "__main__":
|
99
|
-
# just run a quick test
|
100
|
-
# logging.basicConfig(format="%(levelname)-8s:%(message)s", level=logging.INFO)
|
101
|
-
get_core(requirements="requirements-core-pycopy.txt", stub_path="./scratch/cpython_common")
|
1
|
+
"""
|
2
|
+
Download or update the MicroPython compatibility modules from pycopy and stores them in the all_stubs folder
|
3
|
+
The all_stubs folder should be mapped/symlinked to the micropython_stubs/stubs repo/folder
|
4
|
+
"""
|
5
|
+
# pragma: no cover
|
6
|
+
import json
|
7
|
+
import os
|
8
|
+
import pkgutil
|
9
|
+
import shutil
|
10
|
+
import subprocess
|
11
|
+
import tempfile
|
12
|
+
from pathlib import Path
|
13
|
+
from typing import Optional, Union
|
14
|
+
|
15
|
+
from loguru import logger as log
|
16
|
+
|
17
|
+
from . import __version__
|
18
|
+
|
19
|
+
from . import utils
|
20
|
+
from .utils.config import CONFIG
|
21
|
+
|
22
|
+
# # log = logging.getLogger(__name__)
|
23
|
+
|
24
|
+
|
25
|
+
def get_core(requirements: str, stub_path: Optional[Union[str, Path]] = None, family: str = "core"):
|
26
|
+
"Download MicroPython compatibility modules"
|
27
|
+
if not stub_path:
|
28
|
+
stub_path = CONFIG.stub_path / "cpython-core" # pragma: no cover
|
29
|
+
stub_path = Path(stub_path)
|
30
|
+
|
31
|
+
# use pip to download requirements file to build folder in one go
|
32
|
+
# pip install --no-compile --no-cache-dir --target ./scratch/test --upgrade -r ./src/micropython.txt
|
33
|
+
|
34
|
+
os.makedirs(stub_path, exist_ok=True)
|
35
|
+
# get a temp dir and clean up afterwards
|
36
|
+
with tempfile.TemporaryDirectory() as tmpdir:
|
37
|
+
build_path = Path(tmpdir).absolute()
|
38
|
+
# os.makedirs(build_path, exist_ok=True)
|
39
|
+
mod_manifest = None
|
40
|
+
modlist = []
|
41
|
+
|
42
|
+
# within package/mymodule1.py, for example
|
43
|
+
|
44
|
+
data = pkgutil.get_data(__name__, "data/" + requirements)
|
45
|
+
if not data: # pragma: no cover
|
46
|
+
raise FileNotFoundError("Resource Not found")
|
47
|
+
temp_file = tempfile.NamedTemporaryFile(prefix="requirements", suffix=".txt", delete=False)
|
48
|
+
with temp_file.file as fp:
|
49
|
+
fp.write(data)
|
50
|
+
fp.close
|
51
|
+
#
|
52
|
+
req_filename = temp_file.name
|
53
|
+
|
54
|
+
try:
|
55
|
+
subprocess.run(
|
56
|
+
[
|
57
|
+
"pip",
|
58
|
+
"install",
|
59
|
+
"--target",
|
60
|
+
build_path.as_posix(),
|
61
|
+
"-r",
|
62
|
+
req_filename,
|
63
|
+
"--no-cache-dir",
|
64
|
+
"--no-compile",
|
65
|
+
"--upgrade",
|
66
|
+
"--no-binary=:all:",
|
67
|
+
],
|
68
|
+
capture_output=False,
|
69
|
+
check=True,
|
70
|
+
)
|
71
|
+
|
72
|
+
except OSError as err: # pragma: no cover
|
73
|
+
log.error(
|
74
|
+
"An error occurred while trying to run pip to download the MicroPython compatibility modules from PyPi: {}".format(err)
|
75
|
+
)
|
76
|
+
|
77
|
+
# copy *.py files in build folder to stub_path
|
78
|
+
# sort by filename to reduce churn in the repo
|
79
|
+
for filename in sorted(build_path.rglob("*.py")):
|
80
|
+
log.debug("pipped : {}".format(filename.name))
|
81
|
+
# f_name, f_ext = os.path.splitext(os.path.basename(filename)) # pylint: disable=unused-variable
|
82
|
+
modlist.append({"file": filename.name, "module": filename.stem})
|
83
|
+
try:
|
84
|
+
shutil.copy2(filename, stub_path)
|
85
|
+
except OSError as err: # pragma: no cover
|
86
|
+
log.exception(err)
|
87
|
+
|
88
|
+
# build modules.json
|
89
|
+
mod_manifest = utils.manifest(family="cpython-core", port=family, version=__version__, stubtype="core", platform="cpython")
|
90
|
+
mod_manifest["modules"] += modlist
|
91
|
+
|
92
|
+
if mod_manifest and len(modlist):
|
93
|
+
# write the the module manifest for the cpython core modules
|
94
|
+
with open(stub_path / "modules.json", "w") as outfile:
|
95
|
+
json.dump(mod_manifest, outfile, indent=4, sort_keys=True)
|
96
|
+
|
97
|
+
|
98
|
+
if __name__ == "__main__":
|
99
|
+
# just run a quick test
|
100
|
+
# logging.basicConfig(format="%(levelname)-8s:%(message)s", level=logging.INFO)
|
101
|
+
get_core(requirements="requirements-core-pycopy.txt", stub_path="./scratch/cpython_common")
|
stubber/get_lobo.py
CHANGED
@@ -1,59 +1,59 @@
|
|
1
|
-
#!/usr/bin/env python3
|
2
|
-
"""
|
3
|
-
Collect modules and python stubs from the Loboris MicroPython source project and stores them in the all_stubs folder
|
4
|
-
The all_stubs folder should be mapped/symlinked to the micropython_stubs/stubs repo/folder
|
5
|
-
"""
|
6
|
-
|
7
|
-
# pylint: disable= line-too-long
|
8
|
-
# Copyright (c) 2020 Jos Verlinde
|
9
|
-
# MIT license
|
10
|
-
from pathlib import Path
|
11
|
-
from typing import Optional
|
12
|
-
|
13
|
-
from . import downloader, utils
|
14
|
-
from .utils.config import CONFIG
|
15
|
-
|
16
|
-
FAMILY = "loboris"
|
17
|
-
PORT = "esp32_lobo"
|
18
|
-
|
19
|
-
|
20
|
-
def get_frozen(stub_path: Optional[Path] = None, *, repo: Optional[str] = None, version: str = "3.2.24"):
|
21
|
-
"Download Loboris frozen modules direct from github repo"
|
22
|
-
if stub_path is None:
|
23
|
-
stub_path = CONFIG.stub_path / "{}-{}-frozen".format(FAMILY, utils.clean_version(version, flat=True))
|
24
|
-
else:
|
25
|
-
stub_path = Path(stub_path)
|
26
|
-
|
27
|
-
if not repo:
|
28
|
-
repo = "https://raw.githubusercontent.com/loboris/MicroPython_ESP32_psRAM_LoBo/master/MicroPython_BUILD/components/micropython/esp32/modules/{}"
|
29
|
-
|
30
|
-
frozen_modules = [
|
31
|
-
"README.md",
|
32
|
-
"ak8963.py",
|
33
|
-
"freesans20.py",
|
34
|
-
"functools.py",
|
35
|
-
"logging.py",
|
36
|
-
"microWebSocket.py",
|
37
|
-
"microWebSrv.py",
|
38
|
-
"microWebTemplate.py",
|
39
|
-
"mpu6500.py",
|
40
|
-
"mpu9250.py",
|
41
|
-
"pye.py",
|
42
|
-
"ssd1306.py",
|
43
|
-
"tpcalib.py",
|
44
|
-
# "upip.py",
|
45
|
-
# "upip_utarfile.py",
|
46
|
-
# "upysh.py",
|
47
|
-
"urequests.py",
|
48
|
-
"writer.py",
|
49
|
-
]
|
50
|
-
# download
|
51
|
-
downloader.download_files(repo, frozen_modules, stub_path)
|
52
|
-
# make a manifest
|
53
|
-
utils.make_manifest(
|
54
|
-
stub_path,
|
55
|
-
FAMILY,
|
56
|
-
port="esp32",
|
57
|
-
version=version,
|
58
|
-
stubtype="frozen",
|
59
|
-
)
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
"""
|
3
|
+
Collect modules and python stubs from the Loboris MicroPython source project and stores them in the all_stubs folder
|
4
|
+
The all_stubs folder should be mapped/symlinked to the micropython_stubs/stubs repo/folder
|
5
|
+
"""
|
6
|
+
|
7
|
+
# pylint: disable= line-too-long
|
8
|
+
# Copyright (c) 2020 Jos Verlinde
|
9
|
+
# MIT license
|
10
|
+
from pathlib import Path
|
11
|
+
from typing import Optional
|
12
|
+
|
13
|
+
from . import downloader, utils
|
14
|
+
from .utils.config import CONFIG
|
15
|
+
|
16
|
+
FAMILY = "loboris"
|
17
|
+
PORT = "esp32_lobo"
|
18
|
+
|
19
|
+
|
20
|
+
def get_frozen(stub_path: Optional[Path] = None, *, repo: Optional[str] = None, version: str = "3.2.24"):
|
21
|
+
"Download Loboris frozen modules direct from github repo"
|
22
|
+
if stub_path is None:
|
23
|
+
stub_path = CONFIG.stub_path / "{}-{}-frozen".format(FAMILY, utils.clean_version(version, flat=True))
|
24
|
+
else:
|
25
|
+
stub_path = Path(stub_path)
|
26
|
+
|
27
|
+
if not repo:
|
28
|
+
repo = "https://raw.githubusercontent.com/loboris/MicroPython_ESP32_psRAM_LoBo/master/MicroPython_BUILD/components/micropython/esp32/modules/{}"
|
29
|
+
|
30
|
+
frozen_modules = [
|
31
|
+
"README.md",
|
32
|
+
"ak8963.py",
|
33
|
+
"freesans20.py",
|
34
|
+
"functools.py",
|
35
|
+
"logging.py",
|
36
|
+
"microWebSocket.py",
|
37
|
+
"microWebSrv.py",
|
38
|
+
"microWebTemplate.py",
|
39
|
+
"mpu6500.py",
|
40
|
+
"mpu9250.py",
|
41
|
+
"pye.py",
|
42
|
+
"ssd1306.py",
|
43
|
+
"tpcalib.py",
|
44
|
+
# "upip.py",
|
45
|
+
# "upip_utarfile.py",
|
46
|
+
# "upysh.py",
|
47
|
+
"urequests.py",
|
48
|
+
"writer.py",
|
49
|
+
]
|
50
|
+
# download
|
51
|
+
downloader.download_files(repo, frozen_modules, stub_path)
|
52
|
+
# make a manifest
|
53
|
+
utils.make_manifest(
|
54
|
+
stub_path,
|
55
|
+
FAMILY,
|
56
|
+
port="esp32",
|
57
|
+
version=version,
|
58
|
+
stubtype="frozen",
|
59
|
+
)
|