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.
Files changed (152) hide show
  1. {micropython_stubber-1.20.5.dist-info → micropython_stubber-1.23.0.dist-info}/LICENSE +30 -30
  2. {micropython_stubber-1.20.5.dist-info → micropython_stubber-1.23.0.dist-info}/METADATA +1 -1
  3. micropython_stubber-1.23.0.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 -236
  8. mpflash/mpflash/bootloader/__init__.py +37 -36
  9. mpflash/mpflash/bootloader/manual.py +102 -102
  10. mpflash/mpflash/bootloader/micropython.py +10 -10
  11. mpflash/mpflash/bootloader/touch1200.py +45 -45
  12. mpflash/mpflash/cli_download.py +129 -129
  13. mpflash/mpflash/cli_flash.py +219 -219
  14. mpflash/mpflash/cli_group.py +98 -98
  15. mpflash/mpflash/cli_list.py +81 -81
  16. mpflash/mpflash/cli_main.py +41 -41
  17. mpflash/mpflash/common.py +164 -164
  18. mpflash/mpflash/config.py +43 -47
  19. mpflash/mpflash/connected.py +74 -74
  20. mpflash/mpflash/download.py +360 -360
  21. mpflash/mpflash/downloaded.py +130 -129
  22. mpflash/mpflash/errors.py +9 -9
  23. mpflash/mpflash/flash.py +55 -52
  24. mpflash/mpflash/flash_esp.py +59 -59
  25. mpflash/mpflash/flash_stm32.py +18 -24
  26. mpflash/mpflash/flash_stm32_cube.py +111 -111
  27. mpflash/mpflash/flash_stm32_dfu.py +104 -101
  28. mpflash/mpflash/flash_uf2.py +89 -67
  29. mpflash/mpflash/flash_uf2_boardid.py +15 -15
  30. mpflash/mpflash/flash_uf2_linux.py +129 -123
  31. mpflash/mpflash/flash_uf2_macos.py +37 -34
  32. mpflash/mpflash/flash_uf2_windows.py +38 -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 +226 -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 -91
  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 +171 -170
  51. mpflash/poetry.lock +1588 -1588
  52. mpflash/pyproject.toml +64 -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 -986
  59. stubber/board/createstubs_db.py +825 -825
  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 -766
  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 -454
  75. stubber/codemod/_partials/__init__.py +48 -48
  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 +55 -51
  88. stubber/commands/clone_cmd.py +77 -66
  89. stubber/commands/config_cmd.py +29 -29
  90. stubber/commands/enrich_folder_cmd.py +71 -70
  91. stubber/commands/get_core_cmd.py +71 -69
  92. stubber/commands/get_docstubs_cmd.py +89 -87
  93. stubber/commands/get_frozen_cmd.py +114 -112
  94. stubber/commands/get_mcu_cmd.py +61 -56
  95. stubber/commands/merge_cmd.py +67 -66
  96. stubber/commands/publish_cmd.py +119 -119
  97. stubber/commands/stub_cmd.py +31 -30
  98. stubber/commands/switch_cmd.py +62 -54
  99. stubber/commands/variants_cmd.py +49 -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 -262
  116. stubber/publish/database.py +18 -18
  117. stubber/publish/defaults.py +45 -45
  118. stubber/publish/enums.py +24 -24
  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 -146
  123. stubber/publish/pathnames.py +51 -51
  124. stubber/publish/publish.py +120 -120
  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 -822
  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 +655 -610
  137. stubber/tools/readme.md +7 -6
  138. stubber/update_fallback.py +117 -117
  139. stubber/update_module_list.py +123 -123
  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.5.dist-info/RECORD +0 -159
  151. {micropython_stubber-1.20.5.dist-info → micropython_stubber-1.23.0.dist-info}/WHEEL +0 -0
  152. {micropython_stubber-1.20.5.dist-info → micropython_stubber-1.23.0.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,159 +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=ipkRIMb_kl4j9o8f_LtpX8jL8dZnTeGiTvE87fA8LBw,8953
5
- mpflash/mpflash/bootloader/__init__.py,sha256=-izynXMMvv-6PLFf3wjvDj_E4dCwdTrKqhrcYYfsGQc,1308
6
- mpflash/mpflash/bootloader/manual.py,sha256=4FNQg0JpyRmfISrDDfZ5j9iQBK-Jyrnz8nLqKf1ZEuc,3104
7
- mpflash/mpflash/bootloader/micropython.py,sha256=QQJlXUnyVA4cRS2O4GbrQhpKhFFvxtQC5G6WQcSCbp8,409
8
- mpflash/mpflash/bootloader/touch1200.py,sha256=AJ4GPLtvCR5LDDe5Uu_5Rg8OI2JHxEB-blzCcO5x9Tc,1511
9
- mpflash/mpflash/cli_download.py,sha256=zufBC0xNPZCq28mG_fepupziizbm86wTpfNEszkei9Q,3656
10
- mpflash/mpflash/cli_flash.py,sha256=KOn1T9lThFs5pkhWZY_QCEdyB66xk6eJjS3n995hwPk,7354
11
- mpflash/mpflash/cli_group.py,sha256=MsySUNipL8xkQAu4yuQPkFLoZNtQ5RPWtX3diHHrPdE,2334
12
- mpflash/mpflash/cli_list.py,sha256=_3XzR8RyjlojbOqGKm_TLwcQojCb4OgCYi7mcjjoflI,2046
13
- mpflash/mpflash/cli_main.py,sha256=MHhU1cAYEhwOpHG2p3OEfwpSrn9-J2foGVZqby_HO8k,1134
14
- mpflash/mpflash/common.py,sha256=gkj71hGibMEcmThJ5LSrAV5vp6SpJAJNLHWO4GjB040,5929
15
- mpflash/mpflash/config.py,sha256=VqaS6dT1UFigVmYRtVVBTi7cNQ6UKReaN4VUj3D5Ip4,1166
16
- mpflash/mpflash/connected.py,sha256=CBG_DJ33OPWAPbX-ICQpL1LcFOhNYpLUSB0Q5v7gi9s,3029
17
- mpflash/mpflash/download.py,sha256=VFV0XP8mTnBXOeo_JbyHBjIQJ0PUUiXu8hoO0lAxid8,14235
18
- mpflash/mpflash/downloaded.py,sha256=cHq_fWUuZ0sXOCs5d3NIf3etUDsAXtnwnO7tkRqJE9A,4870
19
- mpflash/mpflash/errors.py,sha256=IAidY3qkZsXy6Pm1rdmVFmGyg81ywHhse3itaPctA2w,247
20
- mpflash/mpflash/flash.py,sha256=U17kp3ftG-noqhgA1HSYxK945sLhIR-Rh3xZgckT4H8,1927
21
- mpflash/mpflash/flash_esp.py,sha256=dEc_B7-f1BMUGBMrwIm83ulcCqaS5MlrPAp3FCNgNfk,2311
22
- mpflash/mpflash/flash_stm32.py,sha256=d4BoQl3a9Tchnvn2ZTuq2MpYBB4MTaRukwtEncI95k0,823
23
- mpflash/mpflash/flash_stm32_cube.py,sha256=w7aGWjReeWUKl0Q3ZjXH8BRqNO1Tk9AO7gtRNUg1c9Y,3970
24
- mpflash/mpflash/flash_stm32_dfu.py,sha256=G70EZodWb-aRi507Jxbys-VEwbBGU1oZacow3_nq-d4,2972
25
- mpflash/mpflash/flash_uf2.py,sha256=2IKgEOnlsB9bILJWHILMKbGo9b39NKazBWp1-T_eKKs,2463
26
- mpflash/mpflash/flash_uf2_boardid.py,sha256=U5wGM8VA3wEpUxQCMtuXpMZZomdVH8J_Zd5_GekUMuU,423
27
- mpflash/mpflash/flash_uf2_linux.py,sha256=Oy9V4g7JSuks2hHFeO_OHdBKSGktbqZOtsivuxfl-xg,4055
28
- mpflash/mpflash/flash_uf2_macos.py,sha256=fGz-LGoYKX772sqJb4pAvcMw-2Orlc83ecOIk0-1GYc,987
29
- mpflash/mpflash/flash_uf2_windows.py,sha256=a-iIGPkwIoUXA7atCz0_uZp-kipSL24P-IE5ka1B1Mk,1025
30
- mpflash/mpflash/list.py,sha256=0TawTkwhjKPPj7nTHoDn8nQ54WOkGRurP1BJVeg956g,2963
31
- mpflash/mpflash/logger.py,sha256=dI_H_a7EOdQJyvoeRHQuYeZuTKYVUS3DUPTLhE9rkdM,1098
32
- mpflash/mpflash/mpboard_id/__init__.py,sha256=9IS8E-4eimd_bclgGgWE1wGEx0IRzKnu5Jzl8pQih_g,3816
33
- mpflash/mpflash/mpboard_id/add_boards.py,sha256=OWclyLWf9L-pCVmZ22b-xQYfvi3yQVsJHmGMgMzWxoU,9684
34
- mpflash/mpflash/mpboard_id/board.py,sha256=CwtBux8y7GDUe7CADVxL8YefGRl9Fg8OAJBUhgaBYCI,1151
35
- mpflash/mpflash/mpboard_id/board_id.py,sha256=uVBbqksE1S4RPO1kNAVk4-xJWj6vwAX6QeuE0ekkZEc,2964
36
- mpflash/mpflash/mpboard_id/board_info.zip,sha256=F6YowS96DAqjten4ySe4MXgZwPtE-saZOUfY5OQkqKk,19759
37
- mpflash/mpflash/mpboard_id/store.py,sha256=4lLEff6a30lIOb4fOYYzanE4G4qfgikfprmpV1eUf2U,1536
38
- mpflash/mpflash/mpremoteboard/__init__.py,sha256=fJ_N1F6R3CfP9F7pmocb5l8yRvzmSmtHi4u_uTQHR1w,7683
39
- mpflash/mpflash/mpremoteboard/mpy_fw_info.py,sha256=6AQbN3jtQgllqWQYl4e-63KeEtV08EXk8_JnM6XBkvo,4554
40
- mpflash/mpflash/mpremoteboard/runner.py,sha256=-PgzAeBGbyXaAUlwyiw4mcINsP2U1XRRjP1_QdBrxpg,4786
41
- mpflash/mpflash/uf2disk.py,sha256=4_P2l-kedM7VSliA2u706LQLxvu3xWSod1-lj-xjZis,298
42
- mpflash/mpflash/vendor/basicgit.py,sha256=sflgCv7apLbV2w8F6gmhc-3kuqDnnS4tdGol6JT2uTM,9545
43
- mpflash/mpflash/vendor/click_aliases.py,sha256=c853EHSlkE2DvFqeFvFpwXKuJj3_jsXDP7iotVOKaAw,3156
44
- mpflash/mpflash/vendor/dfu.py,sha256=ZXMcE6aH4-43Wh4tbQT4U-q-BU3RUiL3JAxmP_QAK2s,5755
45
- mpflash/mpflash/vendor/pydfu.py,sha256=_MdBRo1EeNeKDqFPSTB5tNL1jGSBJgsVeVjE5e7Pb8s,20542
46
- mpflash/mpflash/vendor/readme.md,sha256=iIIZxuLUIGHQ0KODzYVtMezsztvyxCXcNJp_AzwTIPk,86
47
- mpflash/mpflash/vendor/versions.py,sha256=thk1a5wEEhXIQoL0zZ7oooeFyQeSoI00CIUbZF0b3rI,3783
48
- mpflash/mpflash/worklist.py,sha256=MKHDynttVP3lsHSfb7DEqeQ2mRV0da96lD4lIcS_zQY,5962
49
- mpflash/poetry.lock,sha256=nazCqSd9wbD-8YFG3UMOyO8JfV1sQlchNsh-O0H7yqE,119577
50
- mpflash/pyproject.toml,sha256=phWxCni9TdlEMsN7ArG-dRDhpwbGL3kXULr1K6TDAro,1651
51
- mpflash/README.md,sha256=1SVCxNG88akXYv1BOeLvqwfI9phy8PdkfJ2sqxL_nkE,13680
52
- mpflash/stm32_udev_rules.md,sha256=uxvC8FvU7K0R1QQUqCIvVfW9yfWYlIHhIVtirAjQVHE,2684
53
- stubber/__init__.py,sha256=mu1ef5O9zEsBrHCk1VLUFfWs2r9h-HAGeLMHCbrgQuo,49
54
- stubber/basicgit.py,sha256=sflgCv7apLbV2w8F6gmhc-3kuqDnnS4tdGol6JT2uTM,9545
55
- stubber/board/board_info.csv,sha256=K2VSmfR013fN-oJWkQUmiQ19w09dVwJHDquPy6QmMhY,8627
56
- stubber/board/boot.py,sha256=XjWlKErU5nI1HJSugXIP_3hlwgRQboE6sJrpcbSygnk,1120
57
- stubber/board/createstubs.py,sha256=_hy_bxiv7FPTbKD66Gw8WCXQAXIWY0Nf2_18I9CIVYM,32922
58
- stubber/board/createstubs_db.py,sha256=c4UtzBY7XRD5lDL9JqcXJWg4qb7XYrIloPBWEpTJKis,30383
59
- stubber/board/createstubs_db_min.py,sha256=c9zdIoc94RfgiDsb-L2Z_PV83EbtzaR_kC_jYQ8ePGQ,11473
60
- stubber/board/createstubs_db_mpy.mpy,sha256=QnV60Zxf_zjpJIZFmTmfGDERQU5GGS_AZ3jBQuVIIKk,9536
61
- stubber/board/createstubs_lvgl.py,sha256=CTe7eq1ACRK_JJxavaqDD8znn29nSWJiHHTZ_ps6EhM,27217
62
- stubber/board/createstubs_lvgl_min.py,sha256=jLkWYmeboI2A8feMC7pT7cYWttLejQTuX7WAEZCylhw,27207
63
- stubber/board/createstubs_lvgl_mpy.mpy,sha256=ex-nlq2V5e8anQBJvRWEEc-FzU7nlwg5NSrZ8vOadIA,9267
64
- stubber/board/createstubs_mem.py,sha256=N-JRZ9mGi0rhPCY-oxrjAXSajFXXL_GxYko1v3K40lQ,28719
65
- stubber/board/createstubs_mem_min.py,sha256=KL_ro2hkhn_5gcioaXWdoBRHxeWwzdc9fxOlIRksctg,11019
66
- stubber/board/createstubs_mem_mpy.mpy,sha256=VHfdVvClxKd5SEbGNq4PDIJGa-EavxYih7IhODfIpOk,9118
67
- stubber/board/createstubs_min.py,sha256=saSoVmNEariIiA4CUCjylg-SI1L5IGGb0vPepXqR2Nc,13699
68
- stubber/board/createstubs_mpy.mpy,sha256=W3DnSocykRO0CanCMjwbR1nHVgMtDqsNJ3BK1ElFpL8,12388
69
- stubber/board/fw_info.py,sha256=6AQbN3jtQgllqWQYl4e-63KeEtV08EXk8_JnM6XBkvo,4554
70
- stubber/board/info.py,sha256=b7SOPZHVsVhaayKCwVkFZlYu0BW-UFI7LuG1Eop9480,5629
71
- stubber/board/main.py,sha256=f6V3tdt6sPZVLuwemT-NLuK9GySfW2c2J6PJMOOWQQw,413
72
- stubber/board/modulelist.txt,sha256=f5WxcG8OBjwhZFDtvxllGDp-6bmH9M5A9knc_6YE7xI,2900
73
- stubber/board/pyrightconfig.json,sha256=6oHS4aDOfwKBAFeUPsCGJzEXpUgBZsPaF0M4P-N26D4,1376
74
- stubber/bulk/mcu_stubber.py,sha256=R5twR8f-44O1PIXTWwyAu96sK-2Y8o4zel9FtjuCxVI,16347
75
- stubber/codemod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
- stubber/codemod/_partials/__init__.py,sha256=LVJ-QkEKlc5IqOZ-bYrNXWRd9J5eolsTR_kRTyS9p6w,1430
77
- stubber/codemod/_partials/db_main.py,sha256=ZKzxV0LOEyHu1zcsBr4xRf9i1a4Jyh808sdbmcmkrWE,4003
78
- stubber/codemod/_partials/lvgl_main.py,sha256=9BAJP6P1R2SQVbNya2ujes35eATa56D_Ri2_PjeRBq0,1964
79
- stubber/codemod/_partials/modules_reader.py,sha256=dJj-H0ncUWVtilSyohQ-dyiUZOjQObds_-llwy_LkYU,2046
80
- stubber/codemod/add_comment.py,sha256=CZMjtKO9aarZo1E60QXo80CLJAH05z_ylK6Vvjvb0ls,1965
81
- stubber/codemod/add_method.py,sha256=fZH-RGi_pzFpi3tF_0AMDbA9A94dlgXMrc3ItpY3Ylw,2609
82
- stubber/codemod/board.py,sha256=HDNS8saQIdoPH74MNG9mte0MRBqCOcy3d6f_I0H9J2I,11881
83
- stubber/codemod/enrich.py,sha256=y1qUMnpgMHHgT7hN_Cp5Fmtv3psNAzYM7oHj_bSmT5A,5438
84
- stubber/codemod/merge_docstub.py,sha256=0F8_RWVOqwX4PTmxOX0NQrI7rYBkig9n3MHCqkEG5K4,12681
85
- stubber/codemod/modify_list.py,sha256=xrpFBKug273D9E02owUheZD418BvsIHIZCFj4YDjTxU,2118
86
- stubber/codemod/utils.py,sha256=itARwbMps9UlzMaf4F3wJLJXJvtD-HYq1T1xw96zmR8,2459
87
- stubber/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
- stubber/commands/build_cmd.py,sha256=a3wW-SLw0HKl3b_7knqoUjMRHbZ14S6oeIQyEnf5-js,2461
89
- stubber/commands/cli.py,sha256=pHtViupghgqKMxbyk5_Zz-qHx6i-BGdnTqRO-kngH2E,1850
90
- stubber/commands/clone_cmd.py,sha256=mKTfB9eXKX06lTYyon1VioEDIfTPX5dYp-r9Qo87qIg,2673
91
- stubber/commands/config_cmd.py,sha256=8g80QAuqBpYpivf35M2XcNxTOqapCRrnIATyen4cg5I,993
92
- stubber/commands/enrich_folder_cmd.py,sha256=aGkydAsjyM9LHB99bcjxz_jyDGgOmisZyysbDhZxres,1853
93
- stubber/commands/get_core_cmd.py,sha256=AsD53kuSJmiWUQ9g1d7qFLX7U-Ej_rtyjt3plOLNjjE,2277
94
- stubber/commands/get_docstubs_cmd.py,sha256=AJkPlVmKRqm5f5ChkcQ3sF86adJdx9N_-P-cR0M1bNg,3001
95
- stubber/commands/get_frozen_cmd.py,sha256=OyuTXRMbrGG4-CnQpzz9Itli9-dMO5WeEOtX8DIJptk,3941
96
- stubber/commands/get_mcu_cmd.py,sha256=uDodn57wdc9rHt7WSmHCFI-zTT1XrebPEaWN-G43E2Y,2015
97
- stubber/commands/merge_cmd.py,sha256=2gQYxqapVGD8WMBsqRES7xjIS8acu4hTyutr1OANpAo,1673
98
- stubber/commands/publish_cmd.py,sha256=myvgP7Y-pb-nyrMVMelNmIVHbxeK4g1ZXmQtxASblkk,2910
99
- stubber/commands/stub_cmd.py,sha256=St3UlrVdbkddXystDG2NmKLq_1RbE-gNxlE7ShwQwaw,1186
100
- stubber/commands/switch_cmd.py,sha256=DM73QU4Vo3ifr01rv-xSmlxp36T20josOt9-cyUWUDU,1796
101
- stubber/commands/variants_cmd.py,sha256=QDm-KtDFIa9_Jl21vjArrW7OrToR8VfwK22pRo0e6CE,1284
102
- stubber/cst_transformer.py,sha256=XbvGTUmhhFWW_Ig8Pu6lFdkBS_NCEmJ1oQQm4H1XSrM,6479
103
- stubber/data/board_info.csv,sha256=K2VSmfR013fN-oJWkQUmiQ19w09dVwJHDquPy6QmMhY,8627
104
- stubber/data/board_info.json,sha256=jyvBN5seoxx7Z7B3UpvMn7H8xWCpmG4VtFSPb8PjmZI,58939
105
- stubber/data/micropython_tags.csv,sha256=HQnzPN7jLmgKX3QvobsPMZa-xMb0exglriFziBjaRz8,1909
106
- stubber/data/requirements-core-micropython.txt,sha256=6RQWWbLh8YVcD_l1-hjg6wX_Fm1LmNEwy5NExKJIkeg,1317
107
- stubber/data/requirements-core-pycopy.txt,sha256=tW71l6FIuoQY1tuxkDgeN4Uw8IIp0YrlhhaaqSGSOA8,1051
108
- stubber/downloader.py,sha256=UbrvPg8xaX5xcdAaFUe2pdDBor5clyTl3yzh7r7FLdc,1206
109
- stubber/freeze/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
- stubber/freeze/common.py,sha256=fydpiBQvwwBM-Uib12NG1k51Pm5gUmPa19UFj6ZTD5E,2639
111
- stubber/freeze/freeze_folder.py,sha256=9jLa6M1Uie6MOBnXezrrBYkM9sq4Ja6bz7RGsFpIZJw,2491
112
- stubber/freeze/freeze_manifest_2.py,sha256=djruxIe8DkkYq9FM4Zj4VQg-UmG8kcYbRiIWIbqgZGk,4061
113
- stubber/freeze/get_frozen.py,sha256=n1Hh59P88BL9nQnLnjUqnoPToW6pkgN2o1222amxwfM,5290
114
- stubber/get_cpython.py,sha256=1YR8QxJq32yI_ZvUVWdNwiTxw2X5F4xdUgCxCFheEpw,3784
115
- stubber/get_lobo.py,sha256=jyysWbeEwNuZZtkTudJP1QbyVvh-TwFom5cE7iCi9lE,1776
116
- stubber/minify.py,sha256=QC5TbyNH7xJRauo8IMJgMnKGocqdjEXGb6YQgBvMTTA,15026
117
- stubber/publish/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
- stubber/publish/bump.py,sha256=qSb1DpaIxgyoH3YcPU1XKyDKgqkomxSm0WWf1sAVh0Y,3262
119
- stubber/publish/candidates.py,sha256=bhuLATHm19pfIdZ91tqEas8ADE0dU_RABVWxGYKGCxw,10672
120
- stubber/publish/database.py,sha256=CLy5oiLasA-YzTTXi9d01qLAyk7NpugCDUOa5R9Ac2g,623
121
- stubber/publish/defaults.py,sha256=-Ey04lflKVnT0xO8r8AGliQSdtek9Dm_LDjpwvAnAVk,1636
122
- stubber/publish/enums.py,sha256=Z_x798ArtxyjQIRRY43GDGNB9BD4uPfpeGsXYdj31w0,780
123
- stubber/publish/helpers.py,sha256=909umfKUHBMBoVnAanop1vKx8loCrWntlfiiG6z89lY,716
124
- stubber/publish/merge_docstubs.py,sha256=bo35onpFgcmcqExKSbpbZKprVs2D_feSy0awNZ09a7A,5319
125
- stubber/publish/missing_class_methods.py,sha256=i_tPnGpEpmu53N3exPCrwR1HprxxBpgHgLAZSwJCb4o,1823
126
- stubber/publish/package.py,sha256=yKIYKzbSXlh71_1QpTQ_8fXAAYkteqyXmAtWwfNL8bM,5274
127
- stubber/publish/pathnames.py,sha256=O-9519j6FTIlmTFyDWqCxdG3k8MWhDI89rClBrgUONQ,1811
128
- stubber/publish/publish.py,sha256=812OS3jVJcWs09DkMJxqoKiYXUg9xJSejFyXlhd-mTI,3953
129
- stubber/publish/pypi.py,sha256=Mu1F7Xx4e0NPWK1_Erck6QGEfdY8w67EBeWFi6JiAzk,1240
130
- stubber/publish/stubpackage.py,sha256=45yquQiBlJhacYEOmAHP6BgDfl1EtUWjdDLx06rCWgE,44731
131
- stubber/rst/__init__.py,sha256=5VcbDCotIICa2xnJDs_gw2sFXpjjGOZZbwCrNKXy1OE,293
132
- stubber/rst/classsort.py,sha256=YCmF4QEYXqZ1Yu2FZb1iPQBrVkq-mrZaBaRcSUlC7ZE,2655
133
- stubber/rst/lookup.py,sha256=RrxEC6otlQDQKjmc0s3rEvZzB48P0JO0c41jfuuuBiU,20186
134
- stubber/rst/output_dict.py,sha256=cpBXRtUD-uh0EgjWIBiRrMLBmIAEXjoJFSOAg-qJQiU,14755
135
- stubber/rst/reader.py,sha256=-upWvHL1CsEVdyDi0n3B_FSW6VRP5TWRM4Er1nP55HU,33700
136
- stubber/rst/report_return.py,sha256=WZJSbgjsjxFeCeY-vLms56gv_x3TubaGXGQ8--d8RqI,2814
137
- stubber/rst/rst_utils.py,sha256=q4MCmhCeI0fnx6KNVdgz1nE4_hAK4T-F7oAMBnmwZ4w,17817
138
- stubber/stubber.py,sha256=41zvyaDQt25Y8IRsMvcQR68LxDZrTz_iVJpEQ5D3VWc,1634
139
- stubber/stubs_from_docs.py,sha256=34hHae5zWjlFyO0lXhEjyV2IyuX4akwO1VNb01ylcLY,2833
140
- stubber/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
- stubber/tools/manifestfile.py,sha256=D5Plwj5LRDe6zq5m-ETKfum0vFAykka70WXSEHl83a4,23721
142
- stubber/tools/readme.md,sha256=kH7dA2Rs4BLCXa2ILoTDIj3sJHcGYtDPntyxVIOXvtI,199
143
- stubber/update_fallback.py,sha256=NUxp1sN1-8BLPd0rpExTcYBppUXYWPP8dOcjNeLY2Zo,4921
144
- stubber/update_module_list.py,sha256=P6V6Z-PgiNdL6UghtSRNLoUiHxEpp_s7ESgF6A0MyjM,4009
145
- stubber/utils/__init__.py,sha256=nV9FsOZsJ_hXsyUv4j0Qqp-PKycxyIktU9IoLs4kQmQ,225
146
- stubber/utils/config.py,sha256=Jg4eHhgKim4uP4IqZRWykRNiX1r-SXC2xSrbsVprGAA,4859
147
- stubber/utils/makeversionhdr.py,sha256=dO8sWLAY_ifT1IJJ1-JJ2z_thvfqJnK3c1_bHF_UI28,1953
148
- stubber/utils/manifest.py,sha256=XBYCkxtYVAdUcch1784eHPAXlXfyfjco4WnRXxBHZYA,3273
149
- stubber/utils/post.py,sha256=oSFZdoP6JwEeAOvsBo3kTk7l8ff_AVtL2Y4VIjzujlE,2837
150
- stubber/utils/repos.py,sha256=nNr6Wy-UfIivMPB-1dCzqLJMueqlwQbQA2ha882CnRs,5815
151
- stubber/utils/stubmaker.py,sha256=qld_Wfm9f4EuzedXlX1Ky0i0BJdR75oOOTha13_ekz0,5238
152
- stubber/utils/typed_config_toml.py,sha256=ikifCIZGNhS_uqsfp6IwIpxdtZqbLtywprjWG_Q0y8o,2629
153
- stubber/utils/versions.py,sha256=4cGr-4Nbgqzoi-iJC08b_LFZH-CiyTNODlT-ihv4ZE0,3901
154
- stubber/variants.py,sha256=-o4TgotbKaCcYBdXkutPaBSR1JdxWmOAiuNT1UlahYc,3784
155
- micropython_stubber-1.20.5.dist-info/entry_points.txt,sha256=NQi_M36fgq5k6giSuASas3LrpF6CVdkzfvJC0ja73_g,55
156
- micropython_stubber-1.20.5.dist-info/LICENSE,sha256=Fx9qrL45ayRXgH6QzttboqZEjKXms0w1t_b_nkOqYCU,1572
157
- micropython_stubber-1.20.5.dist-info/METADATA,sha256=HwORjeijeI8TVYN7UV0nnE3ZsPfcBhsGPv1soNzvPzk,19158
158
- micropython_stubber-1.20.5.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
159
- micropython_stubber-1.20.5.dist-info/RECORD,,