micropython-stubber 1.20.4__py3-none-any.whl → 1.20.6__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 (152) hide show
  1. {micropython_stubber-1.20.4.dist-info → micropython_stubber-1.20.6.dist-info}/LICENSE +30 -30
  2. {micropython_stubber-1.20.4.dist-info → micropython_stubber-1.20.6.dist-info}/METADATA +4 -4
  3. micropython_stubber-1.20.6.dist-info/RECORD +159 -0
  4. mpflash/README.md +184 -184
  5. mpflash/libusb_flash.ipynb +203 -203
  6. mpflash/mpflash/add_firmware.py +98 -98
  7. mpflash/mpflash/ask_input.py +236 -226
  8. mpflash/mpflash/bootloader/__init__.py +37 -0
  9. mpflash/mpflash/bootloader/manual.py +102 -0
  10. mpflash/mpflash/bootloader/micropython.py +10 -0
  11. mpflash/mpflash/bootloader/touch1200.py +45 -0
  12. mpflash/mpflash/cli_download.py +129 -128
  13. mpflash/mpflash/cli_flash.py +219 -212
  14. mpflash/mpflash/cli_group.py +98 -92
  15. mpflash/mpflash/cli_list.py +81 -77
  16. mpflash/mpflash/cli_main.py +41 -38
  17. mpflash/mpflash/common.py +164 -151
  18. mpflash/mpflash/config.py +47 -31
  19. mpflash/mpflash/connected.py +74 -74
  20. mpflash/mpflash/download.py +360 -361
  21. mpflash/mpflash/downloaded.py +129 -129
  22. mpflash/mpflash/errors.py +9 -5
  23. mpflash/mpflash/flash.py +52 -69
  24. mpflash/mpflash/flash_esp.py +59 -59
  25. mpflash/mpflash/flash_stm32.py +24 -24
  26. mpflash/mpflash/flash_stm32_cube.py +111 -111
  27. mpflash/mpflash/flash_stm32_dfu.py +101 -101
  28. mpflash/mpflash/flash_uf2.py +67 -67
  29. mpflash/mpflash/flash_uf2_boardid.py +15 -15
  30. mpflash/mpflash/flash_uf2_linux.py +123 -123
  31. mpflash/mpflash/flash_uf2_macos.py +34 -37
  32. mpflash/mpflash/flash_uf2_windows.py +34 -34
  33. mpflash/mpflash/list.py +89 -89
  34. mpflash/mpflash/logger.py +41 -41
  35. mpflash/mpflash/mpboard_id/__init__.py +93 -93
  36. mpflash/mpflash/mpboard_id/add_boards.py +255 -255
  37. mpflash/mpflash/mpboard_id/board.py +37 -37
  38. mpflash/mpflash/mpboard_id/board_id.py +86 -86
  39. mpflash/mpflash/mpboard_id/store.py +43 -43
  40. mpflash/mpflash/mpremoteboard/__init__.py +221 -221
  41. mpflash/mpflash/mpremoteboard/mpy_fw_info.py +141 -141
  42. mpflash/mpflash/mpremoteboard/runner.py +140 -140
  43. mpflash/mpflash/uf2disk.py +12 -12
  44. mpflash/mpflash/vendor/basicgit.py +288 -288
  45. mpflash/mpflash/vendor/click_aliases.py +91 -0
  46. mpflash/mpflash/vendor/dfu.py +165 -165
  47. mpflash/mpflash/vendor/pydfu.py +605 -605
  48. mpflash/mpflash/vendor/readme.md +2 -2
  49. mpflash/mpflash/vendor/versions.py +119 -117
  50. mpflash/mpflash/worklist.py +170 -170
  51. mpflash/poetry.lock +1588 -1623
  52. mpflash/pyproject.toml +60 -60
  53. mpflash/stm32_udev_rules.md +62 -62
  54. stubber/__init__.py +3 -3
  55. stubber/basicgit.py +294 -288
  56. stubber/board/board_info.csv +193 -193
  57. stubber/board/boot.py +34 -34
  58. stubber/board/createstubs.py +986 -987
  59. stubber/board/createstubs_db.py +825 -826
  60. stubber/board/createstubs_db_min.py +331 -331
  61. stubber/board/createstubs_db_mpy.mpy +0 -0
  62. stubber/board/createstubs_lvgl.py +741 -741
  63. stubber/board/createstubs_lvgl_min.py +741 -741
  64. stubber/board/createstubs_mem.py +766 -767
  65. stubber/board/createstubs_mem_min.py +306 -306
  66. stubber/board/createstubs_mem_mpy.mpy +0 -0
  67. stubber/board/createstubs_min.py +294 -294
  68. stubber/board/createstubs_mpy.mpy +0 -0
  69. stubber/board/fw_info.py +141 -141
  70. stubber/board/info.py +183 -183
  71. stubber/board/main.py +19 -19
  72. stubber/board/modulelist.txt +247 -247
  73. stubber/board/pyrightconfig.json +34 -34
  74. stubber/bulk/mcu_stubber.py +454 -455
  75. stubber/codemod/_partials/__init__.py +48 -50
  76. stubber/codemod/_partials/db_main.py +147 -147
  77. stubber/codemod/_partials/lvgl_main.py +77 -77
  78. stubber/codemod/_partials/modules_reader.py +80 -80
  79. stubber/codemod/add_comment.py +53 -53
  80. stubber/codemod/add_method.py +65 -65
  81. stubber/codemod/board.py +317 -317
  82. stubber/codemod/enrich.py +145 -145
  83. stubber/codemod/merge_docstub.py +284 -284
  84. stubber/codemod/modify_list.py +54 -54
  85. stubber/codemod/utils.py +57 -57
  86. stubber/commands/build_cmd.py +94 -94
  87. stubber/commands/cli.py +51 -51
  88. stubber/commands/clone_cmd.py +66 -66
  89. stubber/commands/config_cmd.py +29 -29
  90. stubber/commands/enrich_folder_cmd.py +70 -70
  91. stubber/commands/get_core_cmd.py +69 -69
  92. stubber/commands/get_docstubs_cmd.py +87 -87
  93. stubber/commands/get_frozen_cmd.py +112 -112
  94. stubber/commands/get_mcu_cmd.py +56 -56
  95. stubber/commands/merge_cmd.py +66 -66
  96. stubber/commands/publish_cmd.py +119 -119
  97. stubber/commands/stub_cmd.py +30 -30
  98. stubber/commands/switch_cmd.py +54 -54
  99. stubber/commands/variants_cmd.py +48 -48
  100. stubber/cst_transformer.py +178 -178
  101. stubber/data/board_info.csv +193 -193
  102. stubber/data/board_info.json +1729 -1729
  103. stubber/data/micropython_tags.csv +15 -15
  104. stubber/data/requirements-core-micropython.txt +38 -38
  105. stubber/data/requirements-core-pycopy.txt +39 -39
  106. stubber/downloader.py +36 -36
  107. stubber/freeze/common.py +68 -68
  108. stubber/freeze/freeze_folder.py +69 -69
  109. stubber/freeze/freeze_manifest_2.py +113 -113
  110. stubber/freeze/get_frozen.py +127 -127
  111. stubber/get_cpython.py +101 -101
  112. stubber/get_lobo.py +59 -59
  113. stubber/minify.py +418 -418
  114. stubber/publish/bump.py +86 -86
  115. stubber/publish/candidates.py +262 -283
  116. stubber/publish/database.py +18 -18
  117. stubber/publish/defaults.py +45 -45
  118. stubber/publish/enums.py +24 -30
  119. stubber/publish/helpers.py +29 -29
  120. stubber/publish/merge_docstubs.py +130 -130
  121. stubber/publish/missing_class_methods.py +49 -49
  122. stubber/publish/package.py +146 -177
  123. stubber/publish/pathnames.py +51 -51
  124. stubber/publish/publish.py +120 -121
  125. stubber/publish/pypi.py +38 -38
  126. stubber/publish/stubpackage.py +1029 -1029
  127. stubber/rst/__init__.py +9 -9
  128. stubber/rst/classsort.py +77 -77
  129. stubber/rst/lookup.py +530 -530
  130. stubber/rst/output_dict.py +401 -401
  131. stubber/rst/reader.py +822 -823
  132. stubber/rst/report_return.py +69 -69
  133. stubber/rst/rst_utils.py +540 -540
  134. stubber/stubber.py +38 -38
  135. stubber/stubs_from_docs.py +90 -90
  136. stubber/tools/manifestfile.py +610 -610
  137. stubber/tools/readme.md +5 -5
  138. stubber/update_fallback.py +117 -117
  139. stubber/update_module_list.py +123 -125
  140. stubber/utils/__init__.py +5 -5
  141. stubber/utils/config.py +127 -127
  142. stubber/utils/makeversionhdr.py +54 -54
  143. stubber/utils/manifest.py +92 -92
  144. stubber/utils/post.py +79 -79
  145. stubber/utils/repos.py +157 -154
  146. stubber/utils/stubmaker.py +139 -139
  147. stubber/utils/typed_config_toml.py +77 -77
  148. stubber/utils/versions.py +128 -120
  149. stubber/variants.py +106 -106
  150. micropython_stubber-1.20.4.dist-info/RECORD +0 -154
  151. {micropython_stubber-1.20.4.dist-info → micropython_stubber-1.20.6.dist-info}/WHEEL +0 -0
  152. {micropython_stubber-1.20.4.dist-info → micropython_stubber-1.20.6.dist-info}/entry_points.txt +0 -0
stubber/utils/versions.py CHANGED
@@ -1,120 +1,128 @@
1
- """Handle versions of micropython based on the git tags in the repo """
2
-
3
- from pathlib import Path
4
-
5
- from github import Github
6
- from loguru import logger as log
7
- from packaging.version import parse
8
-
9
- import stubber.basicgit as git
10
- import stubber.utils as utils
11
-
12
- OLDEST_VERSION = "1.16"
13
- "This is the oldest MicroPython version to build the stubs on"
14
-
15
- V_PREVIEW = "preview"
16
- "Latest Preview version"
17
-
18
- SET_PREVIEW = {"preview", "latest", "master"}
19
-
20
-
21
- def clean_version(
22
- version: str,
23
- *,
24
- build: bool = False,
25
- patch: bool = False,
26
- commit: bool = False,
27
- drop_v: bool = False,
28
- flat: bool = False,
29
- ):
30
- "Clean up and transform the many flavours of versions"
31
- # 'v1.13.0-103-gb137d064e' --> 'v1.13-103'
32
- if version in {"", "-"}:
33
- return version
34
- if version.lower() == "stable":
35
- _v = get_stable_version()
36
- if not _v:
37
- log.warning("Could not determine the latest stable version")
38
- return "stable"
39
- version = _v
40
- log.info(f"Using latest stable version: {version}")
41
- is_preview = "-preview" in version
42
- nibbles = version.split("-")
43
- ver_ = nibbles[0].lower().lstrip("v")
44
- if not patch and ver_ >= "1.10.0" and ver_ < "1.20.0" and ver_.endswith(".0"):
45
- # remove the last ".0" - but only for versions between 1.10 and 1.20 (because)
46
- nibbles[0] = nibbles[0][:-2]
47
- if len(nibbles) == 1:
48
- version = nibbles[0]
49
- elif build and not is_preview:
50
- version = "-".join(nibbles) if commit else "-".join(nibbles[:-1])
51
- else:
52
- # version = "-".join((nibbles[0], LATEST))
53
- # HACK: this is not always right, but good enough most of the time
54
- if is_preview:
55
- version = "-".join((nibbles[0], V_PREVIEW))
56
- else:
57
- version = V_PREVIEW
58
- if flat:
59
- version = version.strip().replace(".", "_").replace("-", "_")
60
- else:
61
- version = version.strip().replace("_preview", "-preview").replace("_", ".")
62
-
63
- if drop_v:
64
- version = version.lstrip("v")
65
- elif not version.startswith("v") and version.lower() not in SET_PREVIEW:
66
- version = "v" + version
67
- if version in SET_PREVIEW:
68
- version = V_PREVIEW
69
- return version
70
-
71
-
72
- def checkedout_version(path: Path, flat: bool = False) -> str:
73
- """Get the checked-out version of the repo"""
74
- version = git.get_local_tag(path.as_posix())
75
- if not version:
76
- raise ValueError("No valid Tag found")
77
- version = utils.clean_version(version, flat=flat, drop_v=False)
78
- return version
79
-
80
-
81
- def micropython_versions(minver: str = "v1.9.2"):
82
- """Get the list of micropython versions from github tags"""
83
- try:
84
- g = Github()
85
- repo = g.get_repo("micropython/micropython")
86
- versions = [tag.name for tag in repo.get_tags() if parse(tag.name) >= parse(minver)]
87
- # Only keep the last preview
88
- versions = [v for v in versions if not v.endswith(V_PREVIEW) or v == versions[-1]]
89
- except Exception:
90
- versions = [
91
- "v9.99.9-preview",
92
- "v1.22.2",
93
- "v1.22.1",
94
- "v1.22.0",
95
- "v1.21.1",
96
- "v1.21.0",
97
- "v1.20.0",
98
- "v1.19.1",
99
- "v1.19",
100
- "v1.18",
101
- "v1.17",
102
- "v1.16",
103
- "v1.15",
104
- "v1.14",
105
- "v1.13",
106
- "v1.12",
107
- "v1.11",
108
- "v1.10",
109
- "v1.9.4",
110
- "v1.9.3",
111
- ]
112
- versions = [v for v in versions if parse(v) >= parse(minver)]
113
- return sorted(versions)
114
-
115
-
116
- def get_stable_version() -> str:
117
- # read the versions from the git tags
118
- all_versions = micropython_versions(minver="v1.17")
119
- stable_version = [v for v in all_versions if not v.endswith(V_PREVIEW)][-1]
120
- return stable_version
1
+ """Handle versions of micropython based on the git tags in the repo """
2
+
3
+ from functools import lru_cache
4
+ from pathlib import Path
5
+
6
+ from github import Github
7
+ from loguru import logger as log
8
+ from packaging.version import parse
9
+
10
+ import stubber.basicgit as git
11
+ import stubber.utils as utils
12
+
13
+ OLDEST_VERSION = "1.16"
14
+ "This is the oldest MicroPython version to build the stubs on"
15
+
16
+ V_PREVIEW = "preview"
17
+ "Latest preview version"
18
+
19
+ SET_PREVIEW = {"preview", "latest", "master"}
20
+
21
+
22
+ def clean_version(
23
+ version: str,
24
+ *,
25
+ build: bool = False,
26
+ patch: bool = False,
27
+ commit: bool = False,
28
+ drop_v: bool = False,
29
+ flat: bool = False,
30
+ ):
31
+ "Clean up and transform the many flavours of versions"
32
+ # 'v1.13.0-103-gb137d064e' --> 'v1.13-103'
33
+ if version in {"", "-"}:
34
+ return version
35
+ if version.lower() == "stable":
36
+ _v = get_stable_mp_version()
37
+ if not _v:
38
+ log.warning("Could not determine the latest stable version")
39
+ return "stable"
40
+ version = _v
41
+ log.trace(f"Using latest stable version: {version}")
42
+ is_preview = "-preview" in version
43
+ nibbles = version.split("-")
44
+ ver_ = nibbles[0].lower().lstrip("v")
45
+ if not patch and ver_ >= "1.10.0" and ver_ < "1.20.0" and ver_.endswith(".0"):
46
+ # remove the last ".0" - but only for versions between 1.10 and 1.20 (because)
47
+ nibbles[0] = nibbles[0][:-2]
48
+ if len(nibbles) == 1:
49
+ version = nibbles[0]
50
+ elif build and not is_preview:
51
+ version = "-".join(nibbles) if commit else "-".join(nibbles[:-1])
52
+ else:
53
+ # version = "-".join((nibbles[0], LATEST))
54
+ # HACK: this is not always right, but good enough most of the time
55
+ if is_preview:
56
+ version = "-".join((nibbles[0], V_PREVIEW))
57
+ else:
58
+ version = V_PREVIEW
59
+ if flat:
60
+ version = version.strip().replace(".", "_").replace("-", "_")
61
+ else:
62
+ version = version.strip().replace("_preview", "-preview").replace("_", ".")
63
+
64
+ if drop_v:
65
+ version = version.lstrip("v")
66
+ elif not version.startswith("v") and version.lower() not in SET_PREVIEW:
67
+ version = "v" + version
68
+ if version in SET_PREVIEW:
69
+ version = V_PREVIEW
70
+ return version
71
+
72
+
73
+ @lru_cache(maxsize=10)
74
+ def checkedout_version(path: Path, flat: bool = False) -> str:
75
+ """Get the checked-out version of the repo"""
76
+ version = git.get_local_tag(path.as_posix())
77
+ if not version:
78
+ raise ValueError("No valid Tag found")
79
+ version = utils.clean_version(version, flat=flat, drop_v=False)
80
+ return version
81
+
82
+
83
+ def micropython_versions(minver: str = "v1.20", reverse: bool = False):
84
+ """Get the list of micropython versions from github tags"""
85
+ try:
86
+ gh_client = Github()
87
+ repo = gh_client.get_repo("micropython/micropython")
88
+ versions = [tag.name for tag in repo.get_tags() if parse(tag.name) >= parse(minver)]
89
+ # Only keep the last preview
90
+ versions = [v for v in versions if not v.endswith(V_PREVIEW) or v == versions[-1]]
91
+ except Exception:
92
+ versions = [
93
+ "v9.99.9-preview",
94
+ "v1.22.2",
95
+ "v1.22.1",
96
+ "v1.22.0",
97
+ "v1.21.1",
98
+ "v1.21.0",
99
+ "v1.20.0",
100
+ "v1.19.1",
101
+ "v1.19",
102
+ "v1.18",
103
+ "v1.17",
104
+ "v1.16",
105
+ "v1.15",
106
+ "v1.14",
107
+ "v1.13",
108
+ "v1.12",
109
+ "v1.11",
110
+ "v1.10",
111
+ ]
112
+ versions = [v for v in versions if parse(v) >= parse(minver)]
113
+ # remove all but the most recent (preview) version
114
+ versions = versions[:1] + [v for v in versions if "preview" not in v]
115
+ return sorted(versions, reverse=reverse)
116
+
117
+
118
+ def get_stable_mp_version() -> str:
119
+ # read the versions from the git tags
120
+ all_versions = micropython_versions(minver=OLDEST_VERSION)
121
+ return [v for v in all_versions if not v.endswith(V_PREVIEW)][-1]
122
+
123
+
124
+ def get_preview_mp_version() -> str:
125
+ # read the versions from the git tags
126
+ all_versions = micropython_versions(minver=OLDEST_VERSION)
127
+ return [v for v in all_versions if v.endswith(V_PREVIEW)][-1]
128
+
stubber/variants.py CHANGED
@@ -1,106 +1,106 @@
1
- """
2
- Create all variants of createstubs.py
3
- - and minify them
4
- - and cross compile them
5
- """
6
-
7
- import shutil
8
- from pathlib import Path
9
- from typing import List, Optional
10
-
11
- import libcst as cst
12
- import libcst.codemod as codemod
13
- from loguru import logger as log
14
-
15
- from stubber.codemod.board import CreateStubsCodemod, CreateStubsVariant
16
- from stubber.codemod.modify_list import ListChangeSet # type: ignore
17
- from stubber.minify import cross_compile, minify
18
- from stubber.update_module_list import update_module_list
19
- from stubber.utils.post import run_black
20
-
21
- ALL_VARIANTS = list(CreateStubsVariant)
22
-
23
-
24
- def create_variants(
25
- base_path: Path,
26
- *,
27
- target_path: Optional[Path] = None,
28
- version: str = "",
29
- make_variants: List[CreateStubsVariant] = ALL_VARIANTS[:3],
30
- update_modules: bool = True,
31
- ):
32
- """
33
- Create variants of createstubs.py and optionally minify and cross compile them.
34
-
35
- Parameters
36
- ----------
37
- base_path : Path
38
- Path to the base createstubs.py file
39
- target_path : Path, optional
40
- Path to write the variants to, by default None
41
- version : str, optional
42
- Version of mpy-cross to use, by default uses the latest version
43
-
44
- """
45
- if target_path is None:
46
- target_path = base_path
47
- if update_modules:
48
- update_module_list()
49
-
50
- ctx = codemod.CodemodContext()
51
- base_file = base_path / "createstubs.py"
52
- log.info(f"Reading : {base_file}")
53
- base_txt = (base_path / "createstubs.py").read_text(encoding="utf-8")
54
- base_module = cst.parse_module(base_txt)
55
-
56
- for var in make_variants:
57
- # Transform base to createstubs.py variant
58
-
59
- suffix = "" if var == CreateStubsVariant.BASE else f"_{var.value}"
60
-
61
- variant_path = target_path / f"createstubs{suffix}.py"
62
- minified_path = target_path / f"createstubs{suffix}_min.py"
63
- mpy_path = target_path / f"createstubs{suffix}_mpy.mpy" # intentional
64
-
65
- if var == CreateStubsVariant.BASE and target_path != base_path:
66
- log.info(f"Copying base file to {variant_path}")
67
- variant_path.write_text(base_txt)
68
- # copy modules.txt to target_path
69
- shutil.copyfile(base_path / "modulelist.txt", target_path / "modulelist.txt")
70
-
71
- if var != CreateStubsVariant.BASE:
72
- # No need to create base variant as it is the same as the base file
73
- log.info(f"Transforming to {var.value} variant")
74
- cm = CreateStubsCodemod(ctx, variant=var)
75
- variant = cm.transform_module(base_module)
76
-
77
- # write low_mem_variant.code to file
78
- log.info(f"Write variant {var.value} to {variant_path}")
79
- with open(variant_path, "w") as f:
80
- f.write(variant.code)
81
-
82
- # format file with black
83
- run_black(variant_path, capture_output=True)
84
- # TODO: check with pyright if it is valid python
85
-
86
- # Minify file with pyminifier
87
- log.info(f"Minifying to {minified_path.name}")
88
- minify(variant_path, minified_path, keep_report=False, diff=False)
89
-
90
- # str -> path
91
- # read minified file
92
- minified_txt = minified_path.read_text(encoding="utf-8")
93
- cross_compile(minified_txt, mpy_path, version=version)
94
-
95
-
96
- if __name__ == "__main__":
97
- # read base createstubs.py
98
- base_path = Path.cwd() / "src" / "stubber" / "board"
99
- create_variants(base_path)
100
-
101
- # if 0:
102
- # # custom modules (and skip defaults).
103
- # custom_stubs = ListChangeSet.from_strings(add=["mycoolpackage", "othermodule"], replace=True)
104
- # custom_variant = CreateStubsCodemod(ctx, modules=custom_stubs).transform_module(base_module)
105
-
106
- # print(custom_variant.code)
1
+ """
2
+ Create all variants of createstubs.py
3
+ - and minify them
4
+ - and cross compile them
5
+ """
6
+
7
+ import shutil
8
+ from pathlib import Path
9
+ from typing import List, Optional
10
+
11
+ import libcst as cst
12
+ import libcst.codemod as codemod
13
+ from loguru import logger as log
14
+
15
+ from stubber.codemod.board import CreateStubsCodemod, CreateStubsVariant
16
+ from stubber.codemod.modify_list import ListChangeSet # type: ignore
17
+ from stubber.minify import cross_compile, minify
18
+ from stubber.update_module_list import update_module_list
19
+ from stubber.utils.post import run_black
20
+
21
+ ALL_VARIANTS = list(CreateStubsVariant)
22
+
23
+
24
+ def create_variants(
25
+ base_path: Path,
26
+ *,
27
+ target_path: Optional[Path] = None,
28
+ version: str = "",
29
+ make_variants: List[CreateStubsVariant] = ALL_VARIANTS[:3],
30
+ update_modules: bool = True,
31
+ ):
32
+ """
33
+ Create variants of createstubs.py and optionally minify and cross compile them.
34
+
35
+ Parameters
36
+ ----------
37
+ base_path : Path
38
+ Path to the base createstubs.py file
39
+ target_path : Path, optional
40
+ Path to write the variants to, by default None
41
+ version : str, optional
42
+ Version of mpy-cross to use, by default uses the latest published version
43
+
44
+ """
45
+ if target_path is None:
46
+ target_path = base_path
47
+ if update_modules:
48
+ update_module_list()
49
+
50
+ ctx = codemod.CodemodContext()
51
+ base_file = base_path / "createstubs.py"
52
+ log.info(f"Reading : {base_file}")
53
+ base_txt = (base_path / "createstubs.py").read_text(encoding="utf-8")
54
+ base_module = cst.parse_module(base_txt)
55
+
56
+ for var in make_variants:
57
+ # Transform base to createstubs.py variant
58
+
59
+ suffix = "" if var == CreateStubsVariant.BASE else f"_{var.value}"
60
+
61
+ variant_path = target_path / f"createstubs{suffix}.py"
62
+ minified_path = target_path / f"createstubs{suffix}_min.py"
63
+ mpy_path = target_path / f"createstubs{suffix}_mpy.mpy" # intentional
64
+
65
+ if var == CreateStubsVariant.BASE and target_path != base_path:
66
+ log.info(f"Copying base file to {variant_path}")
67
+ variant_path.write_text(base_txt)
68
+ # copy modules.txt to target_path
69
+ shutil.copyfile(base_path / "modulelist.txt", target_path / "modulelist.txt")
70
+
71
+ if var != CreateStubsVariant.BASE:
72
+ # No need to create base variant as it is the same as the base file
73
+ log.info(f"Transforming to {var.value} variant")
74
+ cm = CreateStubsCodemod(ctx, variant=var)
75
+ variant = cm.transform_module(base_module)
76
+
77
+ # write low_mem_variant.code to file
78
+ log.info(f"Write variant {var.value} to {variant_path}")
79
+ with open(variant_path, "w") as f:
80
+ f.write(variant.code)
81
+
82
+ # format file with black
83
+ run_black(variant_path, capture_output=True)
84
+ # TODO: check with pyright if it is valid python
85
+
86
+ # Minify file with pyminifier
87
+ log.info(f"Minifying to {minified_path.name}")
88
+ minify(variant_path, minified_path, keep_report=False, diff=False)
89
+
90
+ # str -> path
91
+ # read minified file
92
+ minified_txt = minified_path.read_text(encoding="utf-8")
93
+ cross_compile(minified_txt, mpy_path, version=version)
94
+
95
+
96
+ if __name__ == "__main__":
97
+ # read base createstubs.py
98
+ base_path = Path.cwd() / "src" / "stubber" / "board"
99
+ create_variants(base_path)
100
+
101
+ # if 0:
102
+ # # custom modules (and skip defaults).
103
+ # custom_stubs = ListChangeSet.from_strings(add=["mycoolpackage", "othermodule"], replace=True)
104
+ # custom_variant = CreateStubsCodemod(ctx, modules=custom_stubs).transform_module(base_module)
105
+
106
+ # print(custom_variant.code)
@@ -1,154 +0,0 @@
1
- mpflash/libusb_flash.ipynb,sha256=7RGtGg1mPPMWrfJOobOfYYwAAhsFpykpTJtfNwevY9o,6631
2
- mpflash/mpflash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- mpflash/mpflash/add_firmware.py,sha256=u_g9mID557fptLEJ1Nld9n27V1R1og8uEkadm0O3YTw,3435
4
- mpflash/mpflash/ask_input.py,sha256=e54WfgktG7Ff8dBUknXioROq3lPNZ-eacUjfmUvFfS0,8496
5
- mpflash/mpflash/cli_download.py,sha256=6ctC4ga6q2LcpHUHMrz1trbePziQpuIFPbjcJnc3K7E,3645
6
- mpflash/mpflash/cli_flash.py,sha256=QHEb-e2ABjISfuGCWpTxOM7kkcTZSQxBXmVaWh3WVnE,7074
7
- mpflash/mpflash/cli_group.py,sha256=nrihkm74X8pX1jPM72W8ljoc5rYL6ggGOQFRaOldhLo,2038
8
- mpflash/mpflash/cli_list.py,sha256=Mdaf13gKZCoLp8Y2ja0L5rYMzkE_t3d4r62bF7isI3E,1997
9
- mpflash/mpflash/cli_main.py,sha256=yABFFf45TpPMcC1qEVARAWe4EI9zui2pUXjoPms0mq8,1030
10
- mpflash/mpflash/common.py,sha256=MmyLadb_z7bhVy6U8jb4f3pnBK8n7x28smFBcA9ZfGg,5608
11
- mpflash/mpflash/config.py,sha256=R7PomStIFHSTnLhpWhw9P2DL_b-8a8Wrja3aY-dPm6A,762
12
- mpflash/mpflash/connected.py,sha256=CBG_DJ33OPWAPbX-ICQpL1LcFOhNYpLUSB0Q5v7gi9s,3029
13
- mpflash/mpflash/download.py,sha256=NErA2SJEhXnTElvq6z4BJl-L-5M_ETJpqX6pM0oubsg,14290
14
- mpflash/mpflash/downloaded.py,sha256=FQuVl21bx4JotfnXufoihexKeJt3gDMqhSWUvVKBSDk,4868
15
- mpflash/mpflash/errors.py,sha256=Q5LR12Wo8iUCg5n_qq4GjdBdBflbvCOdKsRJ5InYRfI,96
16
- mpflash/mpflash/flash.py,sha256=JoskuwaHVYqeG4YW8kgbv26vPFnqDmkTz1VRs-pTRiY,2468
17
- mpflash/mpflash/flash_esp.py,sha256=dEc_B7-f1BMUGBMrwIm83ulcCqaS5MlrPAp3FCNgNfk,2311
18
- mpflash/mpflash/flash_stm32.py,sha256=d4BoQl3a9Tchnvn2ZTuq2MpYBB4MTaRukwtEncI95k0,823
19
- mpflash/mpflash/flash_stm32_cube.py,sha256=w7aGWjReeWUKl0Q3ZjXH8BRqNO1Tk9AO7gtRNUg1c9Y,3970
20
- mpflash/mpflash/flash_stm32_dfu.py,sha256=G70EZodWb-aRi507Jxbys-VEwbBGU1oZacow3_nq-d4,2972
21
- mpflash/mpflash/flash_uf2.py,sha256=2IKgEOnlsB9bILJWHILMKbGo9b39NKazBWp1-T_eKKs,2463
22
- mpflash/mpflash/flash_uf2_boardid.py,sha256=U5wGM8VA3wEpUxQCMtuXpMZZomdVH8J_Zd5_GekUMuU,423
23
- mpflash/mpflash/flash_uf2_linux.py,sha256=Oy9V4g7JSuks2hHFeO_OHdBKSGktbqZOtsivuxfl-xg,4055
24
- mpflash/mpflash/flash_uf2_macos.py,sha256=HGUg2HSw4qalfSP7npLYgos2WlVRxtOVTDcAnBL7qPY,1078
25
- mpflash/mpflash/flash_uf2_windows.py,sha256=a-iIGPkwIoUXA7atCz0_uZp-kipSL24P-IE5ka1B1Mk,1025
26
- mpflash/mpflash/list.py,sha256=0TawTkwhjKPPj7nTHoDn8nQ54WOkGRurP1BJVeg956g,2963
27
- mpflash/mpflash/logger.py,sha256=dI_H_a7EOdQJyvoeRHQuYeZuTKYVUS3DUPTLhE9rkdM,1098
28
- mpflash/mpflash/mpboard_id/__init__.py,sha256=9IS8E-4eimd_bclgGgWE1wGEx0IRzKnu5Jzl8pQih_g,3816
29
- mpflash/mpflash/mpboard_id/add_boards.py,sha256=OWclyLWf9L-pCVmZ22b-xQYfvi3yQVsJHmGMgMzWxoU,9684
30
- mpflash/mpflash/mpboard_id/board.py,sha256=CwtBux8y7GDUe7CADVxL8YefGRl9Fg8OAJBUhgaBYCI,1151
31
- mpflash/mpflash/mpboard_id/board_id.py,sha256=uVBbqksE1S4RPO1kNAVk4-xJWj6vwAX6QeuE0ekkZEc,2964
32
- mpflash/mpflash/mpboard_id/board_info.zip,sha256=F6YowS96DAqjten4ySe4MXgZwPtE-saZOUfY5OQkqKk,19759
33
- mpflash/mpflash/mpboard_id/store.py,sha256=4lLEff6a30lIOb4fOYYzanE4G4qfgikfprmpV1eUf2U,1536
34
- mpflash/mpflash/mpremoteboard/__init__.py,sha256=fJ_N1F6R3CfP9F7pmocb5l8yRvzmSmtHi4u_uTQHR1w,7683
35
- mpflash/mpflash/mpremoteboard/mpy_fw_info.py,sha256=6AQbN3jtQgllqWQYl4e-63KeEtV08EXk8_JnM6XBkvo,4554
36
- mpflash/mpflash/mpremoteboard/runner.py,sha256=-PgzAeBGbyXaAUlwyiw4mcINsP2U1XRRjP1_QdBrxpg,4786
37
- mpflash/mpflash/uf2disk.py,sha256=4_P2l-kedM7VSliA2u706LQLxvu3xWSod1-lj-xjZis,298
38
- mpflash/mpflash/vendor/basicgit.py,sha256=sflgCv7apLbV2w8F6gmhc-3kuqDnnS4tdGol6JT2uTM,9545
39
- mpflash/mpflash/vendor/dfu.py,sha256=ZXMcE6aH4-43Wh4tbQT4U-q-BU3RUiL3JAxmP_QAK2s,5755
40
- mpflash/mpflash/vendor/pydfu.py,sha256=_MdBRo1EeNeKDqFPSTB5tNL1jGSBJgsVeVjE5e7Pb8s,20542
41
- mpflash/mpflash/vendor/readme.md,sha256=iIIZxuLUIGHQ0KODzYVtMezsztvyxCXcNJp_AzwTIPk,86
42
- mpflash/mpflash/vendor/versions.py,sha256=thk1a5wEEhXIQoL0zZ7oooeFyQeSoI00CIUbZF0b3rI,3783
43
- mpflash/mpflash/worklist.py,sha256=MKHDynttVP3lsHSfb7DEqeQ2mRV0da96lD4lIcS_zQY,5962
44
- mpflash/poetry.lock,sha256=pHC8OhQvF5HWKPlw2Ysd39cL4XmJIqDX_Lwo-ngm1SY,121346
45
- mpflash/pyproject.toml,sha256=_5bXWE4UT_tLDBCfel76-sYQHOkreevKnB-CAoMFDNU,1651
46
- mpflash/README.md,sha256=1SVCxNG88akXYv1BOeLvqwfI9phy8PdkfJ2sqxL_nkE,13680
47
- mpflash/stm32_udev_rules.md,sha256=uxvC8FvU7K0R1QQUqCIvVfW9yfWYlIHhIVtirAjQVHE,2684
48
- stubber/__init__.py,sha256=fvRhwc22guCsHccJVu9kqJb0i049HoQgIYH47bz171s,49
49
- stubber/basicgit.py,sha256=sflgCv7apLbV2w8F6gmhc-3kuqDnnS4tdGol6JT2uTM,9545
50
- stubber/board/board_info.csv,sha256=K2VSmfR013fN-oJWkQUmiQ19w09dVwJHDquPy6QmMhY,8627
51
- stubber/board/boot.py,sha256=XjWlKErU5nI1HJSugXIP_3hlwgRQboE6sJrpcbSygnk,1120
52
- stubber/board/createstubs.py,sha256=Mheof3vSwjyQTpm6iOBC2Svlnlz4wkIFcGQjE38V2Lk,32958
53
- stubber/board/createstubs_db.py,sha256=iYiBM2tqlesMhIsMWsDY0pbOHQWyqW4TK_1q5RlVuUU,30419
54
- stubber/board/createstubs_db_min.py,sha256=lzee0uRp9xCdjXL_xzViu-sDS0CrZuQM2MT82vfaYfY,11473
55
- stubber/board/createstubs_db_mpy.mpy,sha256=X5lHvAyRh4xR4fdZCV3GrOnhPlNVGjpl5rFIaw-cZvo,9536
56
- stubber/board/createstubs_lvgl.py,sha256=CTe7eq1ACRK_JJxavaqDD8znn29nSWJiHHTZ_ps6EhM,27217
57
- stubber/board/createstubs_lvgl_min.py,sha256=jLkWYmeboI2A8feMC7pT7cYWttLejQTuX7WAEZCylhw,27207
58
- stubber/board/createstubs_lvgl_mpy.mpy,sha256=ex-nlq2V5e8anQBJvRWEEc-FzU7nlwg5NSrZ8vOadIA,9267
59
- stubber/board/createstubs_mem.py,sha256=3uewT8Nr2ba3vUJzjwNwK8DnHA0bSu7pY8yNMVJownQ,28755
60
- stubber/board/createstubs_mem_min.py,sha256=9eUXrJu_kUPvyRU1ceah_WHIz76Jr4XeJ4OlCR0rzgk,11019
61
- stubber/board/createstubs_mem_mpy.mpy,sha256=XeprD_VBohq9mHJWMpQAwu8LlbgSoFcCdTnDHhLBCrc,9118
62
- stubber/board/createstubs_min.py,sha256=XkBIGgWIK7PeVJ-FhWK0Bsx-GRTJG5b6augb8y-uOLo,13699
63
- stubber/board/createstubs_mpy.mpy,sha256=H5j-M9TXlVvaqOIN6ZG6k5oQ7TpLJE18ULXmV50Jdww,12388
64
- stubber/board/fw_info.py,sha256=6AQbN3jtQgllqWQYl4e-63KeEtV08EXk8_JnM6XBkvo,4554
65
- stubber/board/info.py,sha256=b7SOPZHVsVhaayKCwVkFZlYu0BW-UFI7LuG1Eop9480,5629
66
- stubber/board/main.py,sha256=f6V3tdt6sPZVLuwemT-NLuK9GySfW2c2J6PJMOOWQQw,413
67
- stubber/board/modulelist.txt,sha256=f5WxcG8OBjwhZFDtvxllGDp-6bmH9M5A9knc_6YE7xI,2900
68
- stubber/board/pyrightconfig.json,sha256=6oHS4aDOfwKBAFeUPsCGJzEXpUgBZsPaF0M4P-N26D4,1376
69
- stubber/bulk/mcu_stubber.py,sha256=_1z0LUzcMbEIXIYInMJcAJZbBPTI8yCHgd1-1nlMscM,16379
70
- stubber/codemod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- stubber/codemod/_partials/__init__.py,sha256=4v1lkgSBzFw08gxwujh5sivpbJbYqg5lZeRzgyvN4TE,1561
72
- stubber/codemod/_partials/db_main.py,sha256=ZKzxV0LOEyHu1zcsBr4xRf9i1a4Jyh808sdbmcmkrWE,4003
73
- stubber/codemod/_partials/lvgl_main.py,sha256=9BAJP6P1R2SQVbNya2ujes35eATa56D_Ri2_PjeRBq0,1964
74
- stubber/codemod/_partials/modules_reader.py,sha256=dJj-H0ncUWVtilSyohQ-dyiUZOjQObds_-llwy_LkYU,2046
75
- stubber/codemod/add_comment.py,sha256=CZMjtKO9aarZo1E60QXo80CLJAH05z_ylK6Vvjvb0ls,1965
76
- stubber/codemod/add_method.py,sha256=fZH-RGi_pzFpi3tF_0AMDbA9A94dlgXMrc3ItpY3Ylw,2609
77
- stubber/codemod/board.py,sha256=HDNS8saQIdoPH74MNG9mte0MRBqCOcy3d6f_I0H9J2I,11881
78
- stubber/codemod/enrich.py,sha256=y1qUMnpgMHHgT7hN_Cp5Fmtv3psNAzYM7oHj_bSmT5A,5438
79
- stubber/codemod/merge_docstub.py,sha256=0F8_RWVOqwX4PTmxOX0NQrI7rYBkig9n3MHCqkEG5K4,12681
80
- stubber/codemod/modify_list.py,sha256=xrpFBKug273D9E02owUheZD418BvsIHIZCFj4YDjTxU,2118
81
- stubber/codemod/utils.py,sha256=itARwbMps9UlzMaf4F3wJLJXJvtD-HYq1T1xw96zmR8,2459
82
- stubber/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- stubber/commands/build_cmd.py,sha256=a3wW-SLw0HKl3b_7knqoUjMRHbZ14S6oeIQyEnf5-js,2461
84
- stubber/commands/cli.py,sha256=pHtViupghgqKMxbyk5_Zz-qHx6i-BGdnTqRO-kngH2E,1850
85
- stubber/commands/clone_cmd.py,sha256=mKTfB9eXKX06lTYyon1VioEDIfTPX5dYp-r9Qo87qIg,2673
86
- stubber/commands/config_cmd.py,sha256=8g80QAuqBpYpivf35M2XcNxTOqapCRrnIATyen4cg5I,993
87
- stubber/commands/enrich_folder_cmd.py,sha256=aGkydAsjyM9LHB99bcjxz_jyDGgOmisZyysbDhZxres,1853
88
- stubber/commands/get_core_cmd.py,sha256=AsD53kuSJmiWUQ9g1d7qFLX7U-Ej_rtyjt3plOLNjjE,2277
89
- stubber/commands/get_docstubs_cmd.py,sha256=AJkPlVmKRqm5f5ChkcQ3sF86adJdx9N_-P-cR0M1bNg,3001
90
- stubber/commands/get_frozen_cmd.py,sha256=OyuTXRMbrGG4-CnQpzz9Itli9-dMO5WeEOtX8DIJptk,3941
91
- stubber/commands/get_mcu_cmd.py,sha256=uDodn57wdc9rHt7WSmHCFI-zTT1XrebPEaWN-G43E2Y,2015
92
- stubber/commands/merge_cmd.py,sha256=2gQYxqapVGD8WMBsqRES7xjIS8acu4hTyutr1OANpAo,1673
93
- stubber/commands/publish_cmd.py,sha256=myvgP7Y-pb-nyrMVMelNmIVHbxeK4g1ZXmQtxASblkk,2910
94
- stubber/commands/stub_cmd.py,sha256=St3UlrVdbkddXystDG2NmKLq_1RbE-gNxlE7ShwQwaw,1186
95
- stubber/commands/switch_cmd.py,sha256=DM73QU4Vo3ifr01rv-xSmlxp36T20josOt9-cyUWUDU,1796
96
- stubber/commands/variants_cmd.py,sha256=QDm-KtDFIa9_Jl21vjArrW7OrToR8VfwK22pRo0e6CE,1284
97
- stubber/cst_transformer.py,sha256=XbvGTUmhhFWW_Ig8Pu6lFdkBS_NCEmJ1oQQm4H1XSrM,6479
98
- stubber/data/board_info.csv,sha256=K2VSmfR013fN-oJWkQUmiQ19w09dVwJHDquPy6QmMhY,8627
99
- stubber/data/board_info.json,sha256=jyvBN5seoxx7Z7B3UpvMn7H8xWCpmG4VtFSPb8PjmZI,58939
100
- stubber/data/micropython_tags.csv,sha256=HQnzPN7jLmgKX3QvobsPMZa-xMb0exglriFziBjaRz8,1909
101
- stubber/data/requirements-core-micropython.txt,sha256=6RQWWbLh8YVcD_l1-hjg6wX_Fm1LmNEwy5NExKJIkeg,1317
102
- stubber/data/requirements-core-pycopy.txt,sha256=tW71l6FIuoQY1tuxkDgeN4Uw8IIp0YrlhhaaqSGSOA8,1051
103
- stubber/downloader.py,sha256=UbrvPg8xaX5xcdAaFUe2pdDBor5clyTl3yzh7r7FLdc,1206
104
- stubber/freeze/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
- stubber/freeze/common.py,sha256=fydpiBQvwwBM-Uib12NG1k51Pm5gUmPa19UFj6ZTD5E,2639
106
- stubber/freeze/freeze_folder.py,sha256=9jLa6M1Uie6MOBnXezrrBYkM9sq4Ja6bz7RGsFpIZJw,2491
107
- stubber/freeze/freeze_manifest_2.py,sha256=djruxIe8DkkYq9FM4Zj4VQg-UmG8kcYbRiIWIbqgZGk,4061
108
- stubber/freeze/get_frozen.py,sha256=n1Hh59P88BL9nQnLnjUqnoPToW6pkgN2o1222amxwfM,5290
109
- stubber/get_cpython.py,sha256=1YR8QxJq32yI_ZvUVWdNwiTxw2X5F4xdUgCxCFheEpw,3784
110
- stubber/get_lobo.py,sha256=jyysWbeEwNuZZtkTudJP1QbyVvh-TwFom5cE7iCi9lE,1776
111
- stubber/minify.py,sha256=QC5TbyNH7xJRauo8IMJgMnKGocqdjEXGb6YQgBvMTTA,15026
112
- stubber/publish/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
- stubber/publish/bump.py,sha256=qSb1DpaIxgyoH3YcPU1XKyDKgqkomxSm0WWf1sAVh0Y,3262
114
- stubber/publish/candidates.py,sha256=vR_oNw3fjtWBa6Gvufe28Y6EKV3mWlJ1X6tq9Go0U1g,11576
115
- stubber/publish/database.py,sha256=CLy5oiLasA-YzTTXi9d01qLAyk7NpugCDUOa5R9Ac2g,623
116
- stubber/publish/defaults.py,sha256=-Ey04lflKVnT0xO8r8AGliQSdtek9Dm_LDjpwvAnAVk,1636
117
- stubber/publish/enums.py,sha256=55TrwB7zlbCeXE3EdC4CCVmhRFlie-DlTqFuaAg-qXo,944
118
- stubber/publish/helpers.py,sha256=909umfKUHBMBoVnAanop1vKx8loCrWntlfiiG6z89lY,716
119
- stubber/publish/merge_docstubs.py,sha256=bo35onpFgcmcqExKSbpbZKprVs2D_feSy0awNZ09a7A,5319
120
- stubber/publish/missing_class_methods.py,sha256=i_tPnGpEpmu53N3exPCrwR1HprxxBpgHgLAZSwJCb4o,1823
121
- stubber/publish/package.py,sha256=9Op5nPJNOmjTv3QxVeaL86m6Aak2UlUgcQIcDGBbX5w,6320
122
- stubber/publish/pathnames.py,sha256=O-9519j6FTIlmTFyDWqCxdG3k8MWhDI89rClBrgUONQ,1811
123
- stubber/publish/publish.py,sha256=Iguc0e6u0EZY8G33z7JafvKAp1CkvDIXFTBH8oDqNsc,4016
124
- stubber/publish/pypi.py,sha256=Mu1F7Xx4e0NPWK1_Erck6QGEfdY8w67EBeWFi6JiAzk,1240
125
- stubber/publish/stubpackage.py,sha256=45yquQiBlJhacYEOmAHP6BgDfl1EtUWjdDLx06rCWgE,44731
126
- stubber/rst/__init__.py,sha256=5VcbDCotIICa2xnJDs_gw2sFXpjjGOZZbwCrNKXy1OE,293
127
- stubber/rst/classsort.py,sha256=YCmF4QEYXqZ1Yu2FZb1iPQBrVkq-mrZaBaRcSUlC7ZE,2655
128
- stubber/rst/lookup.py,sha256=9ouUrZO5FoWLMb02C-sUw_IDHrcFldbKgxcEx2J1Wmw,20149
129
- stubber/rst/output_dict.py,sha256=cpBXRtUD-uh0EgjWIBiRrMLBmIAEXjoJFSOAg-qJQiU,14755
130
- stubber/rst/reader.py,sha256=ZR2vrB0xup7qY2zAC6HKKytaiQjlUdr-gxFGamkSfHQ,33382
131
- stubber/rst/report_return.py,sha256=WZJSbgjsjxFeCeY-vLms56gv_x3TubaGXGQ8--d8RqI,2814
132
- stubber/rst/rst_utils.py,sha256=q4MCmhCeI0fnx6KNVdgz1nE4_hAK4T-F7oAMBnmwZ4w,17817
133
- stubber/stubber.py,sha256=41zvyaDQt25Y8IRsMvcQR68LxDZrTz_iVJpEQ5D3VWc,1634
134
- stubber/stubs_from_docs.py,sha256=34hHae5zWjlFyO0lXhEjyV2IyuX4akwO1VNb01ylcLY,2833
135
- stubber/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
- stubber/tools/manifestfile.py,sha256=D5Plwj5LRDe6zq5m-ETKfum0vFAykka70WXSEHl83a4,23721
137
- stubber/tools/readme.md,sha256=kH7dA2Rs4BLCXa2ILoTDIj3sJHcGYtDPntyxVIOXvtI,199
138
- stubber/update_fallback.py,sha256=NUxp1sN1-8BLPd0rpExTcYBppUXYWPP8dOcjNeLY2Zo,4921
139
- stubber/update_module_list.py,sha256=1_dTr33KjJU3MAS5MP6R5S7YIYa2R1IBK4CWpmwusDc,4061
140
- stubber/utils/__init__.py,sha256=nV9FsOZsJ_hXsyUv4j0Qqp-PKycxyIktU9IoLs4kQmQ,225
141
- stubber/utils/config.py,sha256=Jg4eHhgKim4uP4IqZRWykRNiX1r-SXC2xSrbsVprGAA,4859
142
- stubber/utils/makeversionhdr.py,sha256=dO8sWLAY_ifT1IJJ1-JJ2z_thvfqJnK3c1_bHF_UI28,1953
143
- stubber/utils/manifest.py,sha256=XBYCkxtYVAdUcch1784eHPAXlXfyfjco4WnRXxBHZYA,3273
144
- stubber/utils/post.py,sha256=oSFZdoP6JwEeAOvsBo3kTk7l8ff_AVtL2Y4VIjzujlE,2837
145
- stubber/utils/repos.py,sha256=nNr6Wy-UfIivMPB-1dCzqLJMueqlwQbQA2ha882CnRs,5815
146
- stubber/utils/stubmaker.py,sha256=qld_Wfm9f4EuzedXlX1Ky0i0BJdR75oOOTha13_ekz0,5238
147
- stubber/utils/typed_config_toml.py,sha256=ikifCIZGNhS_uqsfp6IwIpxdtZqbLtywprjWG_Q0y8o,2629
148
- stubber/utils/versions.py,sha256=4cGr-4Nbgqzoi-iJC08b_LFZH-CiyTNODlT-ihv4ZE0,3901
149
- stubber/variants.py,sha256=-o4TgotbKaCcYBdXkutPaBSR1JdxWmOAiuNT1UlahYc,3784
150
- micropython_stubber-1.20.4.dist-info/entry_points.txt,sha256=NQi_M36fgq5k6giSuASas3LrpF6CVdkzfvJC0ja73_g,55
151
- micropython_stubber-1.20.4.dist-info/LICENSE,sha256=Fx9qrL45ayRXgH6QzttboqZEjKXms0w1t_b_nkOqYCU,1572
152
- micropython_stubber-1.20.4.dist-info/METADATA,sha256=Hb4UXiHcpXdCA8FG_v0cxH2m8zmSK-amlXIi31HewUQ,19158
153
- micropython_stubber-1.20.4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
154
- micropython_stubber-1.20.4.dist-info/RECORD,,