micropython-stubber 1.20.5__py3-none-any.whl → 1.23.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {micropython_stubber-1.20.5.dist-info → micropython_stubber-1.23.0.dist-info}/LICENSE +30 -30
- {micropython_stubber-1.20.5.dist-info → micropython_stubber-1.23.0.dist-info}/METADATA +1 -1
- micropython_stubber-1.23.0.dist-info/RECORD +159 -0
- mpflash/README.md +184 -184
- mpflash/libusb_flash.ipynb +203 -203
- mpflash/mpflash/add_firmware.py +98 -98
- mpflash/mpflash/ask_input.py +236 -236
- mpflash/mpflash/bootloader/__init__.py +37 -36
- mpflash/mpflash/bootloader/manual.py +102 -102
- mpflash/mpflash/bootloader/micropython.py +10 -10
- mpflash/mpflash/bootloader/touch1200.py +45 -45
- mpflash/mpflash/cli_download.py +129 -129
- mpflash/mpflash/cli_flash.py +219 -219
- mpflash/mpflash/cli_group.py +98 -98
- mpflash/mpflash/cli_list.py +81 -81
- mpflash/mpflash/cli_main.py +41 -41
- mpflash/mpflash/common.py +164 -164
- mpflash/mpflash/config.py +43 -47
- mpflash/mpflash/connected.py +74 -74
- mpflash/mpflash/download.py +360 -360
- mpflash/mpflash/downloaded.py +130 -129
- mpflash/mpflash/errors.py +9 -9
- mpflash/mpflash/flash.py +55 -52
- mpflash/mpflash/flash_esp.py +59 -59
- mpflash/mpflash/flash_stm32.py +18 -24
- mpflash/mpflash/flash_stm32_cube.py +111 -111
- mpflash/mpflash/flash_stm32_dfu.py +104 -101
- mpflash/mpflash/flash_uf2.py +89 -67
- mpflash/mpflash/flash_uf2_boardid.py +15 -15
- mpflash/mpflash/flash_uf2_linux.py +129 -123
- mpflash/mpflash/flash_uf2_macos.py +37 -34
- mpflash/mpflash/flash_uf2_windows.py +38 -34
- mpflash/mpflash/list.py +89 -89
- mpflash/mpflash/logger.py +41 -41
- mpflash/mpflash/mpboard_id/__init__.py +93 -93
- mpflash/mpflash/mpboard_id/add_boards.py +255 -255
- mpflash/mpflash/mpboard_id/board.py +37 -37
- mpflash/mpflash/mpboard_id/board_id.py +86 -86
- mpflash/mpflash/mpboard_id/store.py +43 -43
- mpflash/mpflash/mpremoteboard/__init__.py +226 -221
- mpflash/mpflash/mpremoteboard/mpy_fw_info.py +141 -141
- mpflash/mpflash/mpremoteboard/runner.py +140 -140
- mpflash/mpflash/uf2disk.py +12 -12
- mpflash/mpflash/vendor/basicgit.py +288 -288
- mpflash/mpflash/vendor/click_aliases.py +91 -91
- mpflash/mpflash/vendor/dfu.py +165 -165
- mpflash/mpflash/vendor/pydfu.py +605 -605
- mpflash/mpflash/vendor/readme.md +2 -2
- mpflash/mpflash/vendor/versions.py +119 -117
- mpflash/mpflash/worklist.py +171 -170
- mpflash/poetry.lock +1588 -1588
- mpflash/pyproject.toml +64 -60
- mpflash/stm32_udev_rules.md +62 -62
- stubber/__init__.py +3 -3
- stubber/basicgit.py +294 -288
- stubber/board/board_info.csv +193 -193
- stubber/board/boot.py +34 -34
- stubber/board/createstubs.py +986 -986
- stubber/board/createstubs_db.py +825 -825
- stubber/board/createstubs_db_min.py +331 -331
- stubber/board/createstubs_db_mpy.mpy +0 -0
- stubber/board/createstubs_lvgl.py +741 -741
- stubber/board/createstubs_lvgl_min.py +741 -741
- stubber/board/createstubs_mem.py +766 -766
- stubber/board/createstubs_mem_min.py +306 -306
- stubber/board/createstubs_mem_mpy.mpy +0 -0
- stubber/board/createstubs_min.py +294 -294
- stubber/board/createstubs_mpy.mpy +0 -0
- stubber/board/fw_info.py +141 -141
- stubber/board/info.py +183 -183
- stubber/board/main.py +19 -19
- stubber/board/modulelist.txt +247 -247
- stubber/board/pyrightconfig.json +34 -34
- stubber/bulk/mcu_stubber.py +454 -454
- stubber/codemod/_partials/__init__.py +48 -48
- stubber/codemod/_partials/db_main.py +147 -147
- stubber/codemod/_partials/lvgl_main.py +77 -77
- stubber/codemod/_partials/modules_reader.py +80 -80
- stubber/codemod/add_comment.py +53 -53
- stubber/codemod/add_method.py +65 -65
- stubber/codemod/board.py +317 -317
- stubber/codemod/enrich.py +145 -145
- stubber/codemod/merge_docstub.py +284 -284
- stubber/codemod/modify_list.py +54 -54
- stubber/codemod/utils.py +57 -57
- stubber/commands/build_cmd.py +94 -94
- stubber/commands/cli.py +55 -51
- stubber/commands/clone_cmd.py +77 -66
- stubber/commands/config_cmd.py +29 -29
- stubber/commands/enrich_folder_cmd.py +71 -70
- stubber/commands/get_core_cmd.py +71 -69
- stubber/commands/get_docstubs_cmd.py +89 -87
- stubber/commands/get_frozen_cmd.py +114 -112
- stubber/commands/get_mcu_cmd.py +61 -56
- stubber/commands/merge_cmd.py +67 -66
- stubber/commands/publish_cmd.py +119 -119
- stubber/commands/stub_cmd.py +31 -30
- stubber/commands/switch_cmd.py +62 -54
- stubber/commands/variants_cmd.py +49 -48
- stubber/cst_transformer.py +178 -178
- stubber/data/board_info.csv +193 -193
- stubber/data/board_info.json +1729 -1729
- stubber/data/micropython_tags.csv +15 -15
- stubber/data/requirements-core-micropython.txt +38 -38
- stubber/data/requirements-core-pycopy.txt +39 -39
- stubber/downloader.py +36 -36
- stubber/freeze/common.py +68 -68
- stubber/freeze/freeze_folder.py +69 -69
- stubber/freeze/freeze_manifest_2.py +113 -113
- stubber/freeze/get_frozen.py +127 -127
- stubber/get_cpython.py +101 -101
- stubber/get_lobo.py +59 -59
- stubber/minify.py +418 -418
- stubber/publish/bump.py +86 -86
- stubber/publish/candidates.py +262 -262
- stubber/publish/database.py +18 -18
- stubber/publish/defaults.py +45 -45
- stubber/publish/enums.py +24 -24
- stubber/publish/helpers.py +29 -29
- stubber/publish/merge_docstubs.py +130 -130
- stubber/publish/missing_class_methods.py +49 -49
- stubber/publish/package.py +146 -146
- stubber/publish/pathnames.py +51 -51
- stubber/publish/publish.py +120 -120
- stubber/publish/pypi.py +38 -38
- stubber/publish/stubpackage.py +1029 -1029
- stubber/rst/__init__.py +9 -9
- stubber/rst/classsort.py +77 -77
- stubber/rst/lookup.py +530 -530
- stubber/rst/output_dict.py +401 -401
- stubber/rst/reader.py +822 -822
- stubber/rst/report_return.py +69 -69
- stubber/rst/rst_utils.py +540 -540
- stubber/stubber.py +38 -38
- stubber/stubs_from_docs.py +90 -90
- stubber/tools/manifestfile.py +655 -610
- stubber/tools/readme.md +7 -6
- stubber/update_fallback.py +117 -117
- stubber/update_module_list.py +123 -123
- stubber/utils/__init__.py +5 -5
- stubber/utils/config.py +127 -127
- stubber/utils/makeversionhdr.py +54 -54
- stubber/utils/manifest.py +92 -92
- stubber/utils/post.py +79 -79
- stubber/utils/repos.py +157 -154
- stubber/utils/stubmaker.py +139 -139
- stubber/utils/typed_config_toml.py +77 -77
- stubber/utils/versions.py +128 -120
- stubber/variants.py +106 -106
- micropython_stubber-1.20.5.dist-info/RECORD +0 -159
- {micropython_stubber-1.20.5.dist-info → micropython_stubber-1.23.0.dist-info}/WHEEL +0 -0
- {micropython_stubber-1.20.5.dist-info → micropython_stubber-1.23.0.dist-info}/entry_points.txt +0 -0
stubber/commands/publish_cmd.py
CHANGED
@@ -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 rich_click as 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"))
|
stubber/commands/stub_cmd.py
CHANGED
@@ -1,30 +1,31 @@
|
|
1
|
-
"""Create or update .pyi type hint files."""
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
from
|
8
|
-
from
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
from stubber.utils
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
@
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
1
|
+
"""Create or update .pyi type hint files."""
|
2
|
+
|
3
|
+
##########################################################################################
|
4
|
+
# stub
|
5
|
+
##########################################################################################
|
6
|
+
|
7
|
+
from loguru import logger as log
|
8
|
+
from pathlib import Path
|
9
|
+
from typing import Union
|
10
|
+
|
11
|
+
import rich_click as click
|
12
|
+
from stubber.utils import generate_pyi_files
|
13
|
+
from stubber.utils.post import do_post_processing
|
14
|
+
|
15
|
+
from .cli import stubber_cli
|
16
|
+
|
17
|
+
##########################################################################################
|
18
|
+
# log = logging.getLogger("stubber")
|
19
|
+
#########################################################################################
|
20
|
+
|
21
|
+
|
22
|
+
@stubber_cli.command(name="stub")
|
23
|
+
@click.option("--source", "-s", type=click.Path(exists=True, file_okay=True, dir_okay=True))
|
24
|
+
def cli_stub(source: Union[str, Path]):
|
25
|
+
"Create or update .pyi type hint files."
|
26
|
+
|
27
|
+
log.info("Generate type hint files (pyi) in folder: {}".format(source))
|
28
|
+
OK = generate_pyi_files(Path(source))
|
29
|
+
# do not generate pyi files twice
|
30
|
+
do_post_processing([Path(source)], stubgen=False, black=True, autoflake=False)
|
31
|
+
return 0 if OK else 1
|
stubber/commands/switch_cmd.py
CHANGED
@@ -1,54 +1,62 @@
|
|
1
|
-
"""
|
2
|
-
switch to a specific version of the micropython repos
|
3
|
-
"""
|
4
|
-
|
5
|
-
|
6
|
-
from
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
from stubber.utils.
|
13
|
-
from stubber.utils.
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
"""
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
1
|
+
"""
|
2
|
+
switch to a specific version of the micropython repos
|
3
|
+
"""
|
4
|
+
|
5
|
+
from pathlib import Path
|
6
|
+
from typing import Optional, Union
|
7
|
+
|
8
|
+
import rich_click as click
|
9
|
+
|
10
|
+
import stubber.basicgit as git
|
11
|
+
from stubber.utils.config import CONFIG
|
12
|
+
from stubber.utils.repos import fetch_repos, repo_paths
|
13
|
+
from stubber.utils.versions import SET_PREVIEW, V_PREVIEW
|
14
|
+
|
15
|
+
from .cli import stubber_cli
|
16
|
+
|
17
|
+
##########################################################################################
|
18
|
+
# log = logging.getLogger("stubber")
|
19
|
+
#########################################################################################
|
20
|
+
|
21
|
+
|
22
|
+
# get version list from Git tags in the repo that is provided on the command line
|
23
|
+
|
24
|
+
try:
|
25
|
+
VERSION_LIST = git.get_tags("micropython/micropython", minver="v1.9.3") + [
|
26
|
+
V_PREVIEW,
|
27
|
+
"latest",
|
28
|
+
"stable",
|
29
|
+
]
|
30
|
+
except Exception:
|
31
|
+
# offline fallback
|
32
|
+
VERSION_LIST = ["v1.91.1", "v1.20.1", "v1.21.0", "v1.22.1", "preview", "stable"]
|
33
|
+
|
34
|
+
|
35
|
+
@stubber_cli.command(name="switch")
|
36
|
+
@click.argument("tag", required=False, type=click.Choice(VERSION_LIST, case_sensitive=False))
|
37
|
+
@click.option(
|
38
|
+
"--path",
|
39
|
+
"-p",
|
40
|
+
default=CONFIG.repo_path.as_posix(),
|
41
|
+
type=click.Path(file_okay=False, dir_okay=True),
|
42
|
+
)
|
43
|
+
def cli_switch(path: Union[str, Path], tag: Optional[str] = None):
|
44
|
+
"""
|
45
|
+
Switch to a specific version of the micropython repos.
|
46
|
+
|
47
|
+
The Micropython-lib repo will be checked out to a commit that corresponds
|
48
|
+
in time to that version tag, in order to allow non-current versions to be
|
49
|
+
stubbed correctly.
|
50
|
+
|
51
|
+
The repros must be cloned already
|
52
|
+
"""
|
53
|
+
|
54
|
+
try:
|
55
|
+
mpy_path, mpy_lib_path = repo_paths(Path(path))
|
56
|
+
except Exception:
|
57
|
+
return -1
|
58
|
+
if not tag or tag in SET_PREVIEW:
|
59
|
+
tag = V_PREVIEW
|
60
|
+
|
61
|
+
result = fetch_repos(tag, mpy_path, mpy_lib_path)
|
62
|
+
return -1 if result else 0
|
stubber/commands/variants_cmd.py
CHANGED
@@ -1,48 +1,49 @@
|
|
1
|
-
"""Create all variant of createstubs*.py."""
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
from
|
7
|
-
from stubber.
|
8
|
-
import
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
"--
|
16
|
-
"
|
17
|
-
"
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
"
|
25
|
-
"
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
@
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
target_path
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
1
|
+
"""Create all variant of createstubs*.py."""
|
2
|
+
|
3
|
+
from pathlib import Path
|
4
|
+
|
5
|
+
import rich_click as click
|
6
|
+
from loguru import logger as log
|
7
|
+
from stubber.utils.config import CONFIG
|
8
|
+
from stubber.variants import create_variants
|
9
|
+
import stubber
|
10
|
+
|
11
|
+
from .cli import stubber_cli
|
12
|
+
|
13
|
+
|
14
|
+
@click.option(
|
15
|
+
"--version",
|
16
|
+
"--Version",
|
17
|
+
"-V",
|
18
|
+
"version",
|
19
|
+
default=CONFIG.stable_version,
|
20
|
+
show_default=True,
|
21
|
+
help="The version of mpy-cross to use",
|
22
|
+
)
|
23
|
+
@click.option(
|
24
|
+
"--target",
|
25
|
+
"-t",
|
26
|
+
"target_folder",
|
27
|
+
default=None,
|
28
|
+
type=click.Path(exists=False, file_okay=False, dir_okay=True),
|
29
|
+
help="Target folder for the createstubs*.py/.mpy files",
|
30
|
+
show_default=True,
|
31
|
+
)
|
32
|
+
@stubber_cli.command(name="make-variants")
|
33
|
+
@click.pass_context
|
34
|
+
def cli_variants(
|
35
|
+
ctx: click.Context,
|
36
|
+
target_folder: str = "",
|
37
|
+
version: str = CONFIG.stable_version,
|
38
|
+
) -> int:
|
39
|
+
"""Update all variants of createstubs*.py."""
|
40
|
+
board_path = Path(stubber.__file__).parent / "board"
|
41
|
+
if target_folder:
|
42
|
+
target_path = Path(target_folder).absolute()
|
43
|
+
target_path.mkdir(parents=True, exist_ok=True)
|
44
|
+
else:
|
45
|
+
target_path = board_path
|
46
|
+
create_variants(board_path, target_path=target_path, version=version)
|
47
|
+
|
48
|
+
log.info("Done!")
|
49
|
+
return 0
|