micropython-stubber 1.20.5__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.5.dist-info → micropython_stubber-1.20.6.dist-info}/LICENSE +30 -30
  2. {micropython_stubber-1.20.5.dist-info → micropython_stubber-1.20.6.dist-info}/METADATA +1 -1
  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 -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 +47 -47
  19. mpflash/mpflash/connected.py +74 -74
  20. mpflash/mpflash/download.py +360 -360
  21. mpflash/mpflash/downloaded.py +129 -129
  22. mpflash/mpflash/errors.py +9 -9
  23. mpflash/mpflash/flash.py +52 -52
  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 -34
  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 -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 +170 -170
  51. mpflash/poetry.lock +1588 -1588
  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 -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 +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 -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 +610 -610
  137. stubber/tools/readme.md +5 -5
  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.20.6.dist-info}/WHEEL +0 -0
  152. {micropython_stubber-1.20.5.dist-info → micropython_stubber-1.20.6.dist-info}/entry_points.txt +0 -0
@@ -1,119 +1,119 @@
1
- """
2
- Commandline interface to publish stubs.
3
- """
4
-
5
- from typing import List, Union
6
-
7
- import click
8
- from loguru import logger as log
9
- from tabulate import tabulate
10
-
11
- from stubber.commands.cli import stubber_cli
12
- from stubber.publish.defaults import GENERIC_U
13
- from stubber.publish.publish import publish_multiple
14
- from stubber.utils.config import CONFIG
15
-
16
-
17
- @stubber_cli.command(name="publish")
18
- @click.option("--family", default="micropython", type=str, show_default=True)
19
- @click.option(
20
- "--version",
21
- "--Version",
22
- "-V",
23
- "versions",
24
- multiple=True,
25
- default=[CONFIG.stable_version],
26
- show_default=True,
27
- help="multiple: ",
28
- )
29
- @click.option(
30
- "--port",
31
- "-p",
32
- "ports",
33
- multiple=True,
34
- default=["all"],
35
- show_default=True,
36
- help="multiple: ",
37
- )
38
- @click.option(
39
- "--board",
40
- "-b",
41
- "boards",
42
- multiple=True,
43
- default=[GENERIC_U], # or "all" ?
44
- show_default=True,
45
- help="multiple: ",
46
- )
47
- @click.option(
48
- "--pypi/--test-pypi",
49
- "production",
50
- is_flag=True,
51
- default=False,
52
- show_default=True,
53
- prompt="Publish to PYPI (y) or Test-PYPI (n)",
54
- help="publish to PYPI or Test-PYPI",
55
- )
56
- @click.option(
57
- "--build",
58
- is_flag=True,
59
- default=False,
60
- help="build before publish",
61
- )
62
- @click.option(
63
- "--force",
64
- is_flag=True,
65
- default=False,
66
- help="create new post release even if no changes detected",
67
- )
68
- @click.option(
69
- "--dry-run",
70
- is_flag=True,
71
- default=False,
72
- help="Do not actually publish, just show what would be done",
73
- )
74
- @click.option(
75
- "--clean",
76
- is_flag=True,
77
- default=False,
78
- help="clean folders after processing and publishing",
79
- )
80
- def cli_publish(
81
- family: str,
82
- versions: Union[str, List[str]],
83
- ports: Union[str, List[str]],
84
- boards: Union[str, List[str]],
85
- production: bool = True,
86
- build: bool = False,
87
- force: bool = False,
88
- dry_run: bool = False,
89
- clean: bool = False,
90
- ):
91
- """
92
- Commandline interface to publish stubs.
93
- """
94
- # lists please
95
- versions = list(versions)
96
- ports = list(ports)
97
- boards = list(boards)
98
-
99
- if len(versions) > 1:
100
- raise NotImplementedError(
101
- "Multiple versions are not supported yet\n See https://github.com/Josverl/micropython-stubber/issues/487"
102
- )
103
-
104
- # db = get_database(publish_path=CONFIG.publish_path, production=production)
105
- destination = "pypi" if production else "test-pypi"
106
- log.info(f"Publish {family} {versions} {ports} {boards} to {destination}")
107
-
108
- results = publish_multiple(
109
- family=family,
110
- versions=versions,
111
- ports=ports,
112
- boards=boards,
113
- production=production,
114
- build=build,
115
- force=force,
116
- dry_run=dry_run,
117
- clean=clean,
118
- )
119
- log.info(tabulate(results, headers="keys"))
1
+ """
2
+ Commandline interface to publish stubs.
3
+ """
4
+
5
+ from typing import List, Union
6
+
7
+ import click
8
+ from loguru import logger as log
9
+ from tabulate import tabulate
10
+
11
+ from stubber.commands.cli import stubber_cli
12
+ from stubber.publish.defaults import GENERIC_U
13
+ from stubber.publish.publish import publish_multiple
14
+ from stubber.utils.config import CONFIG
15
+
16
+
17
+ @stubber_cli.command(name="publish")
18
+ @click.option("--family", default="micropython", type=str, show_default=True)
19
+ @click.option(
20
+ "--version",
21
+ "--Version",
22
+ "-V",
23
+ "versions",
24
+ multiple=True,
25
+ default=[CONFIG.stable_version],
26
+ show_default=True,
27
+ help="multiple: ",
28
+ )
29
+ @click.option(
30
+ "--port",
31
+ "-p",
32
+ "ports",
33
+ multiple=True,
34
+ default=["all"],
35
+ show_default=True,
36
+ help="multiple: ",
37
+ )
38
+ @click.option(
39
+ "--board",
40
+ "-b",
41
+ "boards",
42
+ multiple=True,
43
+ default=[GENERIC_U], # or "all" ?
44
+ show_default=True,
45
+ help="multiple: ",
46
+ )
47
+ @click.option(
48
+ "--pypi/--test-pypi",
49
+ "production",
50
+ is_flag=True,
51
+ default=False,
52
+ show_default=True,
53
+ prompt="Publish to PYPI (y) or Test-PYPI (n)",
54
+ help="publish to PYPI or Test-PYPI",
55
+ )
56
+ @click.option(
57
+ "--build",
58
+ is_flag=True,
59
+ default=False,
60
+ help="build before publish",
61
+ )
62
+ @click.option(
63
+ "--force",
64
+ is_flag=True,
65
+ default=False,
66
+ help="create new post release even if no changes detected",
67
+ )
68
+ @click.option(
69
+ "--dry-run",
70
+ is_flag=True,
71
+ default=False,
72
+ help="Do not actually publish, just show what would be done",
73
+ )
74
+ @click.option(
75
+ "--clean",
76
+ is_flag=True,
77
+ default=False,
78
+ help="clean folders after processing and publishing",
79
+ )
80
+ def cli_publish(
81
+ family: str,
82
+ versions: Union[str, List[str]],
83
+ ports: Union[str, List[str]],
84
+ boards: Union[str, List[str]],
85
+ production: bool = True,
86
+ build: bool = False,
87
+ force: bool = False,
88
+ dry_run: bool = False,
89
+ clean: bool = False,
90
+ ):
91
+ """
92
+ Commandline interface to publish stubs.
93
+ """
94
+ # lists please
95
+ versions = list(versions)
96
+ ports = list(ports)
97
+ boards = list(boards)
98
+
99
+ if len(versions) > 1:
100
+ raise NotImplementedError(
101
+ "Multiple versions are not supported yet\n See https://github.com/Josverl/micropython-stubber/issues/487"
102
+ )
103
+
104
+ # db = get_database(publish_path=CONFIG.publish_path, production=production)
105
+ destination = "pypi" if production else "test-pypi"
106
+ log.info(f"Publish {family} {versions} {ports} {boards} to {destination}")
107
+
108
+ results = publish_multiple(
109
+ family=family,
110
+ versions=versions,
111
+ ports=ports,
112
+ boards=boards,
113
+ production=production,
114
+ build=build,
115
+ force=force,
116
+ dry_run=dry_run,
117
+ clean=clean,
118
+ )
119
+ log.info(tabulate(results, headers="keys"))
@@ -1,30 +1,30 @@
1
- """Create or update .pyi type hint files."""
2
- ##########################################################################################
3
- # stub
4
- ##########################################################################################
5
-
6
- from loguru import logger as log
7
- from pathlib import Path
8
- from typing import Union
9
-
10
- import click
11
- from stubber.utils import generate_pyi_files
12
- from stubber.utils.post import do_post_processing
13
-
14
- from .cli import stubber_cli
15
-
16
- ##########################################################################################
17
- # log = logging.getLogger("stubber")
18
- #########################################################################################
19
-
20
-
21
- @stubber_cli.command(name="stub")
22
- @click.option("--source", "-s", type=click.Path(exists=True, file_okay=True, dir_okay=True))
23
- def cli_stub(source: Union[str, Path]):
24
- "Create or update .pyi type hint files."
25
-
26
- log.info("Generate type hint files (pyi) in folder: {}".format(source))
27
- OK = generate_pyi_files(Path(source))
28
- # do not generate pyi files twice
29
- do_post_processing([Path(source)], stubgen=False, black=True, autoflake=False)
30
- return 0 if OK else 1
1
+ """Create or update .pyi type hint files."""
2
+ ##########################################################################################
3
+ # stub
4
+ ##########################################################################################
5
+
6
+ from loguru import logger as log
7
+ from pathlib import Path
8
+ from typing import Union
9
+
10
+ import click
11
+ from stubber.utils import generate_pyi_files
12
+ from stubber.utils.post import do_post_processing
13
+
14
+ from .cli import stubber_cli
15
+
16
+ ##########################################################################################
17
+ # log = logging.getLogger("stubber")
18
+ #########################################################################################
19
+
20
+
21
+ @stubber_cli.command(name="stub")
22
+ @click.option("--source", "-s", type=click.Path(exists=True, file_okay=True, dir_okay=True))
23
+ def cli_stub(source: Union[str, Path]):
24
+ "Create or update .pyi type hint files."
25
+
26
+ log.info("Generate type hint files (pyi) in folder: {}".format(source))
27
+ OK = generate_pyi_files(Path(source))
28
+ # do not generate pyi files twice
29
+ do_post_processing([Path(source)], stubgen=False, black=True, autoflake=False)
30
+ return 0 if OK else 1
@@ -1,54 +1,54 @@
1
- """
2
- switch to a specific version of the micropython repos
3
- """
4
-
5
-
6
- from pathlib import Path
7
- from typing import Optional, Union
8
-
9
- import click
10
-
11
- import stubber.basicgit as git
12
- from stubber.utils.config import CONFIG
13
- from stubber.utils.repos import fetch_repos, repo_paths
14
- from stubber.utils.versions import SET_PREVIEW, V_PREVIEW
15
-
16
- from .cli import stubber_cli
17
-
18
- ##########################################################################################
19
- # log = logging.getLogger("stubber")
20
- #########################################################################################
21
-
22
-
23
- # get version list from Git tags in the repo that is provided on the command line
24
-
25
- try:
26
- VERSION_LIST = git.get_tags("micropython/micropython", minver="v1.9.3") + [V_PREVIEW, "latest"]
27
- except Exception:
28
- # offline fallback
29
- VERSION_LIST = ["v1.91.1", "v1.20.1", "v1.21.0", "v1.22.1", "preview"]
30
-
31
-
32
- @stubber_cli.command(name="switch")
33
- @click.argument("tag", required=False, type=click.Choice(VERSION_LIST, case_sensitive=False))
34
- @click.option("--path", "-p", default=CONFIG.repo_path.as_posix(), type=click.Path(file_okay=False, dir_okay=True))
35
- def cli_switch(path: Union[str, Path], tag: Optional[str] = None):
36
- """
37
- Switch to a specific version of the micropython repos.
38
-
39
- The Micropython-lib repo will be checked out to a commit that corresponds
40
- in time to that version tag, in order to allow non-current versions to be
41
- stubbed correctly.
42
-
43
- The repros must be cloned already
44
- """
45
-
46
- try:
47
- mpy_path, mpy_lib_path = repo_paths(Path(path))
48
- except Exception:
49
- return -1
50
- if not tag or tag in SET_PREVIEW:
51
- tag = V_PREVIEW
52
-
53
- result = fetch_repos(tag, mpy_path, mpy_lib_path)
54
- return -1 if result else 0
1
+ """
2
+ switch to a specific version of the micropython repos
3
+ """
4
+
5
+
6
+ from pathlib import Path
7
+ from typing import Optional, Union
8
+
9
+ import click
10
+
11
+ import stubber.basicgit as git
12
+ from stubber.utils.config import CONFIG
13
+ from stubber.utils.repos import fetch_repos, repo_paths
14
+ from stubber.utils.versions import SET_PREVIEW, V_PREVIEW
15
+
16
+ from .cli import stubber_cli
17
+
18
+ ##########################################################################################
19
+ # log = logging.getLogger("stubber")
20
+ #########################################################################################
21
+
22
+
23
+ # get version list from Git tags in the repo that is provided on the command line
24
+
25
+ try:
26
+ VERSION_LIST = git.get_tags("micropython/micropython", minver="v1.9.3") + [V_PREVIEW, "latest", "stable"]
27
+ except Exception:
28
+ # offline fallback
29
+ VERSION_LIST = ["v1.91.1", "v1.20.1", "v1.21.0", "v1.22.1", "preview", "stable"]
30
+
31
+
32
+ @stubber_cli.command(name="switch")
33
+ @click.argument("tag", required=False, type=click.Choice(VERSION_LIST, case_sensitive=False))
34
+ @click.option("--path", "-p", default=CONFIG.repo_path.as_posix(), type=click.Path(file_okay=False, dir_okay=True))
35
+ def cli_switch(path: Union[str, Path], tag: Optional[str] = None):
36
+ """
37
+ Switch to a specific version of the micropython repos.
38
+
39
+ The Micropython-lib repo will be checked out to a commit that corresponds
40
+ in time to that version tag, in order to allow non-current versions to be
41
+ stubbed correctly.
42
+
43
+ The repros must be cloned already
44
+ """
45
+
46
+ try:
47
+ mpy_path, mpy_lib_path = repo_paths(Path(path))
48
+ except Exception:
49
+ return -1
50
+ if not tag or tag in SET_PREVIEW:
51
+ tag = V_PREVIEW
52
+
53
+ result = fetch_repos(tag, mpy_path, mpy_lib_path)
54
+ return -1 if result else 0
@@ -1,48 +1,48 @@
1
- """Create all variant of createstubs*.py."""
2
- from pathlib import Path
3
-
4
- import click
5
- from loguru import logger as log
6
- from stubber.utils.config import CONFIG
7
- from stubber.variants import create_variants
8
- import stubber
9
-
10
- from .cli import stubber_cli
11
-
12
-
13
- @click.option(
14
- "--version",
15
- "--Version",
16
- "-V",
17
- "version",
18
- default=CONFIG.stable_version,
19
- show_default=True,
20
- help="The version of mpy-cross to use",
21
- )
22
- @click.option(
23
- "--target",
24
- "-t",
25
- "target_folder",
26
- default=None,
27
- type=click.Path(exists=False, file_okay=False, dir_okay=True),
28
- help="Target folder for the createstubs*.py/.mpy files",
29
- show_default=True,
30
- )
31
- @stubber_cli.command(name="make-variants")
32
- @click.pass_context
33
- def cli_variants(
34
- ctx: click.Context,
35
- target_folder: str = "",
36
- version: str = CONFIG.stable_version,
37
- ) -> int:
38
- """Update all variants of createstubs*.py."""
39
- board_path = Path(stubber.__file__).parent / "board"
40
- if target_folder:
41
- target_path = Path(target_folder).absolute()
42
- target_path.mkdir(parents=True, exist_ok=True)
43
- else:
44
- target_path = board_path
45
- create_variants(board_path, target_path=target_path, version=version)
46
-
47
- log.info("Done!")
48
- return 0
1
+ """Create all variant of createstubs*.py."""
2
+ from pathlib import Path
3
+
4
+ import click
5
+ from loguru import logger as log
6
+ from stubber.utils.config import CONFIG
7
+ from stubber.variants import create_variants
8
+ import stubber
9
+
10
+ from .cli import stubber_cli
11
+
12
+
13
+ @click.option(
14
+ "--version",
15
+ "--Version",
16
+ "-V",
17
+ "version",
18
+ default=CONFIG.stable_version,
19
+ show_default=True,
20
+ help="The version of mpy-cross to use",
21
+ )
22
+ @click.option(
23
+ "--target",
24
+ "-t",
25
+ "target_folder",
26
+ default=None,
27
+ type=click.Path(exists=False, file_okay=False, dir_okay=True),
28
+ help="Target folder for the createstubs*.py/.mpy files",
29
+ show_default=True,
30
+ )
31
+ @stubber_cli.command(name="make-variants")
32
+ @click.pass_context
33
+ def cli_variants(
34
+ ctx: click.Context,
35
+ target_folder: str = "",
36
+ version: str = CONFIG.stable_version,
37
+ ) -> int:
38
+ """Update all variants of createstubs*.py."""
39
+ board_path = Path(stubber.__file__).parent / "board"
40
+ if target_folder:
41
+ target_path = Path(target_folder).absolute()
42
+ target_path.mkdir(parents=True, exist_ok=True)
43
+ else:
44
+ target_path = board_path
45
+ create_variants(board_path, target_path=target_path, version=version)
46
+
47
+ log.info("Done!")
48
+ return 0