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.
Files changed (153) hide show
  1. {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.2.dist-info}/LICENSE +30 -30
  2. {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.2.dist-info}/METADATA +32 -15
  3. micropython_stubber-1.23.2.dist-info/RECORD +158 -0
  4. micropython_stubber-1.23.2.dist-info/entry_points.txt +5 -0
  5. mpflash/README.md +220 -194
  6. mpflash/libusb_flash.ipynb +203 -203
  7. mpflash/mpflash/add_firmware.py +98 -98
  8. mpflash/mpflash/ask_input.py +236 -236
  9. mpflash/mpflash/basicgit.py +284 -284
  10. mpflash/mpflash/bootloader/__init__.py +2 -2
  11. mpflash/mpflash/bootloader/activate.py +60 -60
  12. mpflash/mpflash/bootloader/detect.py +82 -82
  13. mpflash/mpflash/bootloader/manual.py +101 -101
  14. mpflash/mpflash/bootloader/micropython.py +12 -12
  15. mpflash/mpflash/bootloader/touch1200.py +36 -36
  16. mpflash/mpflash/cli_download.py +129 -129
  17. mpflash/mpflash/cli_flash.py +224 -219
  18. mpflash/mpflash/cli_group.py +111 -111
  19. mpflash/mpflash/cli_list.py +87 -81
  20. mpflash/mpflash/cli_main.py +39 -39
  21. mpflash/mpflash/common.py +210 -165
  22. mpflash/mpflash/config.py +44 -44
  23. mpflash/mpflash/connected.py +96 -78
  24. mpflash/mpflash/download.py +364 -364
  25. mpflash/mpflash/downloaded.py +130 -130
  26. mpflash/mpflash/errors.py +9 -9
  27. mpflash/mpflash/flash/__init__.py +55 -55
  28. mpflash/mpflash/flash/esp.py +59 -59
  29. mpflash/mpflash/flash/stm32.py +19 -19
  30. mpflash/mpflash/flash/stm32_dfu.py +104 -104
  31. mpflash/mpflash/flash/uf2/__init__.py +88 -88
  32. mpflash/mpflash/flash/uf2/boardid.py +15 -15
  33. mpflash/mpflash/flash/uf2/linux.py +136 -130
  34. mpflash/mpflash/flash/uf2/macos.py +42 -42
  35. mpflash/mpflash/flash/uf2/uf2disk.py +12 -12
  36. mpflash/mpflash/flash/uf2/windows.py +43 -43
  37. mpflash/mpflash/flash/worklist.py +170 -170
  38. mpflash/mpflash/list.py +106 -99
  39. mpflash/mpflash/logger.py +41 -41
  40. mpflash/mpflash/mpboard_id/__init__.py +93 -93
  41. mpflash/mpflash/mpboard_id/add_boards.py +251 -251
  42. mpflash/mpflash/mpboard_id/board.py +37 -37
  43. mpflash/mpflash/mpboard_id/board_id.py +86 -86
  44. mpflash/mpflash/mpboard_id/store.py +43 -43
  45. mpflash/mpflash/mpremoteboard/__init__.py +266 -222
  46. mpflash/mpflash/mpremoteboard/mpy_fw_info.py +141 -141
  47. mpflash/mpflash/mpremoteboard/runner.py +140 -140
  48. mpflash/mpflash/vendor/click_aliases.py +91 -91
  49. mpflash/mpflash/vendor/dfu.py +165 -165
  50. mpflash/mpflash/vendor/pydfu.py +605 -605
  51. mpflash/mpflash/vendor/readme.md +2 -2
  52. mpflash/mpflash/versions.py +135 -135
  53. mpflash/poetry.lock +1599 -1599
  54. mpflash/pyproject.toml +65 -65
  55. mpflash/stm32_udev_rules.md +62 -62
  56. stubber/__init__.py +3 -3
  57. stubber/board/board_info.csv +193 -193
  58. stubber/board/boot.py +34 -34
  59. stubber/board/createstubs.py +1004 -986
  60. stubber/board/createstubs_db.py +826 -825
  61. stubber/board/createstubs_db_min.py +332 -331
  62. stubber/board/createstubs_db_mpy.mpy +0 -0
  63. stubber/board/createstubs_lvgl.py +741 -741
  64. stubber/board/createstubs_lvgl_min.py +741 -741
  65. stubber/board/createstubs_mem.py +767 -766
  66. stubber/board/createstubs_mem_min.py +307 -306
  67. stubber/board/createstubs_mem_mpy.mpy +0 -0
  68. stubber/board/createstubs_min.py +295 -294
  69. stubber/board/createstubs_mpy.mpy +0 -0
  70. stubber/board/fw_info.py +141 -141
  71. stubber/board/info.py +183 -183
  72. stubber/board/main.py +19 -19
  73. stubber/board/modulelist.txt +247 -247
  74. stubber/board/pyrightconfig.json +34 -34
  75. stubber/bulk/mcu_stubber.py +437 -454
  76. stubber/codemod/_partials/__init__.py +48 -48
  77. stubber/codemod/_partials/db_main.py +147 -147
  78. stubber/codemod/_partials/lvgl_main.py +77 -77
  79. stubber/codemod/_partials/modules_reader.py +80 -80
  80. stubber/codemod/add_comment.py +53 -53
  81. stubber/codemod/add_method.py +65 -65
  82. stubber/codemod/board.py +317 -317
  83. stubber/codemod/enrich.py +151 -145
  84. stubber/codemod/merge_docstub.py +284 -284
  85. stubber/codemod/modify_list.py +54 -54
  86. stubber/codemod/utils.py +56 -56
  87. stubber/commands/build_cmd.py +94 -94
  88. stubber/commands/cli.py +49 -55
  89. stubber/commands/clone_cmd.py +78 -78
  90. stubber/commands/config_cmd.py +29 -29
  91. stubber/commands/enrich_folder_cmd.py +71 -71
  92. stubber/commands/get_core_cmd.py +71 -71
  93. stubber/commands/get_docstubs_cmd.py +92 -89
  94. stubber/commands/get_frozen_cmd.py +117 -114
  95. stubber/commands/get_mcu_cmd.py +102 -61
  96. stubber/commands/merge_cmd.py +66 -66
  97. stubber/commands/publish_cmd.py +118 -118
  98. stubber/commands/stub_cmd.py +31 -31
  99. stubber/commands/switch_cmd.py +62 -62
  100. stubber/commands/variants_cmd.py +48 -48
  101. stubber/cst_transformer.py +178 -178
  102. stubber/data/board_info.csv +193 -193
  103. stubber/data/board_info.json +1729 -1729
  104. stubber/data/micropython_tags.csv +15 -15
  105. stubber/data/requirements-core-micropython.txt +38 -38
  106. stubber/data/requirements-core-pycopy.txt +39 -39
  107. stubber/downloader.py +37 -36
  108. stubber/freeze/common.py +72 -68
  109. stubber/freeze/freeze_folder.py +69 -69
  110. stubber/freeze/freeze_manifest_2.py +126 -113
  111. stubber/freeze/get_frozen.py +131 -127
  112. stubber/get_cpython.py +112 -101
  113. stubber/get_lobo.py +59 -59
  114. stubber/minify.py +423 -419
  115. stubber/publish/bump.py +86 -86
  116. stubber/publish/candidates.py +275 -256
  117. stubber/publish/database.py +18 -18
  118. stubber/publish/defaults.py +40 -40
  119. stubber/publish/enums.py +24 -24
  120. stubber/publish/helpers.py +29 -29
  121. stubber/publish/merge_docstubs.py +136 -130
  122. stubber/publish/missing_class_methods.py +51 -49
  123. stubber/publish/package.py +150 -146
  124. stubber/publish/pathnames.py +51 -51
  125. stubber/publish/publish.py +120 -120
  126. stubber/publish/pypi.py +42 -38
  127. stubber/publish/stubpackage.py +1055 -1027
  128. stubber/rst/__init__.py +9 -9
  129. stubber/rst/classsort.py +78 -77
  130. stubber/rst/lookup.py +533 -530
  131. stubber/rst/output_dict.py +401 -401
  132. stubber/rst/reader.py +814 -814
  133. stubber/rst/report_return.py +77 -69
  134. stubber/rst/rst_utils.py +541 -540
  135. stubber/stubber.py +38 -38
  136. stubber/stubs_from_docs.py +90 -90
  137. stubber/tools/manifestfile.py +654 -654
  138. stubber/tools/readme.md +6 -6
  139. stubber/update_fallback.py +117 -117
  140. stubber/update_module_list.py +123 -123
  141. stubber/utils/__init__.py +6 -6
  142. stubber/utils/config.py +137 -125
  143. stubber/utils/makeversionhdr.py +54 -54
  144. stubber/utils/manifest.py +90 -90
  145. stubber/utils/post.py +80 -79
  146. stubber/utils/repos.py +156 -150
  147. stubber/utils/stubmaker.py +139 -139
  148. stubber/utils/typed_config_toml.py +80 -77
  149. stubber/variants.py +106 -106
  150. micropython_stubber-1.23.1.dist-info/RECORD +0 -159
  151. micropython_stubber-1.23.1.dist-info/entry_points.txt +0 -3
  152. mpflash/basicgit.py +0 -288
  153. {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.2.dist-info}/WHEEL +0 -0
stubber/get_cpython.py CHANGED
@@ -1,101 +1,112 @@
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
+
6
+ # pragma: no cover
7
+ import json
8
+ import os
9
+ import pkgutil
10
+ import shutil
11
+ import subprocess
12
+ import tempfile
13
+ from pathlib import Path
14
+ from typing import Optional, Union
15
+
16
+ from mpflash.logger import log
17
+
18
+ from . import __version__
19
+
20
+ from . import utils
21
+ from .utils.config import CONFIG
22
+
23
+ # # log = logging.getLogger(__name__)
24
+
25
+
26
+ def get_core(
27
+ requirements: str, stub_path: Optional[Union[str, Path]] = None, family: str = "core"
28
+ ):
29
+ "Download MicroPython compatibility modules"
30
+ if not stub_path:
31
+ stub_path = CONFIG.stub_path / "cpython-core" # pragma: no cover
32
+ stub_path = Path(stub_path)
33
+
34
+ # use pip to download requirements file to build folder in one go
35
+ # pip install --no-compile --no-cache-dir --target ./scratch/test --upgrade -r ./src/micropython.txt
36
+
37
+ os.makedirs(stub_path, exist_ok=True)
38
+ # get a temp dir and clean up afterwards
39
+ with tempfile.TemporaryDirectory() as tmpdir:
40
+ build_path = Path(tmpdir).absolute()
41
+ # os.makedirs(build_path, exist_ok=True)
42
+ mod_manifest = None
43
+ modlist = []
44
+
45
+ # within package/mymodule1.py, for example
46
+
47
+ data = pkgutil.get_data(__name__, "data/" + requirements)
48
+ if not data: # pragma: no cover
49
+ raise FileNotFoundError("Resource Not found")
50
+ temp_file = tempfile.NamedTemporaryFile(prefix="requirements", suffix=".txt", delete=False)
51
+ with temp_file.file as fp:
52
+ fp.write(data)
53
+ fp.close
54
+ #
55
+ req_filename = temp_file.name
56
+
57
+ try:
58
+ subprocess.run(
59
+ [
60
+ "pip",
61
+ "install",
62
+ "--target",
63
+ build_path.as_posix(),
64
+ "-r",
65
+ req_filename,
66
+ "--no-cache-dir",
67
+ "--no-compile",
68
+ "--upgrade",
69
+ "--no-binary=:all:",
70
+ ],
71
+ capture_output=False,
72
+ check=True,
73
+ )
74
+
75
+ except OSError as err: # pragma: no cover
76
+ log.error(
77
+ "An error occurred while trying to run pip to download the MicroPython compatibility modules from PyPi: {}".format(
78
+ err
79
+ )
80
+ )
81
+
82
+ # copy *.py files in build folder to stub_path
83
+ # sort by filename to reduce churn in the repo
84
+ for filename in sorted(build_path.rglob("*.py")):
85
+ log.debug("pipped : {}".format(filename.name))
86
+ # f_name, f_ext = os.path.splitext(os.path.basename(filename)) # pylint: disable=unused-variable
87
+ modlist.append({"file": filename.name, "module": filename.stem})
88
+ try:
89
+ shutil.copy2(filename, stub_path)
90
+ except OSError as err: # pragma: no cover
91
+ log.exception(err)
92
+
93
+ # build modules.json
94
+ mod_manifest = utils.manifest(
95
+ family="cpython-core",
96
+ port=family,
97
+ version=__version__,
98
+ stubtype="core",
99
+ platform="cpython",
100
+ )
101
+ mod_manifest["modules"] += modlist
102
+
103
+ if mod_manifest and len(modlist):
104
+ # write the the module manifest for the cpython core modules
105
+ with open(stub_path / "modules.json", "w") as outfile:
106
+ json.dump(mod_manifest, outfile, indent=4, sort_keys=True)
107
+
108
+
109
+ if __name__ == "__main__":
110
+ # just run a quick test
111
+ # logging.basicConfig(format="%(levelname)-8s:%(message)s", level=logging.INFO)
112
+ 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
+ )