micropython-stubber 1.23.1__py3-none-any.whl → 1.23.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.2.dist-info}/LICENSE +30 -30
- {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.2.dist-info}/METADATA +32 -15
- micropython_stubber-1.23.2.dist-info/RECORD +158 -0
- micropython_stubber-1.23.2.dist-info/entry_points.txt +5 -0
- mpflash/README.md +220 -194
- mpflash/libusb_flash.ipynb +203 -203
- mpflash/mpflash/add_firmware.py +98 -98
- mpflash/mpflash/ask_input.py +236 -236
- mpflash/mpflash/basicgit.py +284 -284
- mpflash/mpflash/bootloader/__init__.py +2 -2
- mpflash/mpflash/bootloader/activate.py +60 -60
- mpflash/mpflash/bootloader/detect.py +82 -82
- mpflash/mpflash/bootloader/manual.py +101 -101
- mpflash/mpflash/bootloader/micropython.py +12 -12
- mpflash/mpflash/bootloader/touch1200.py +36 -36
- mpflash/mpflash/cli_download.py +129 -129
- mpflash/mpflash/cli_flash.py +224 -219
- mpflash/mpflash/cli_group.py +111 -111
- mpflash/mpflash/cli_list.py +87 -81
- mpflash/mpflash/cli_main.py +39 -39
- mpflash/mpflash/common.py +210 -165
- mpflash/mpflash/config.py +44 -44
- mpflash/mpflash/connected.py +96 -78
- mpflash/mpflash/download.py +364 -364
- mpflash/mpflash/downloaded.py +130 -130
- mpflash/mpflash/errors.py +9 -9
- mpflash/mpflash/flash/__init__.py +55 -55
- mpflash/mpflash/flash/esp.py +59 -59
- mpflash/mpflash/flash/stm32.py +19 -19
- mpflash/mpflash/flash/stm32_dfu.py +104 -104
- mpflash/mpflash/flash/uf2/__init__.py +88 -88
- mpflash/mpflash/flash/uf2/boardid.py +15 -15
- mpflash/mpflash/flash/uf2/linux.py +136 -130
- mpflash/mpflash/flash/uf2/macos.py +42 -42
- mpflash/mpflash/flash/uf2/uf2disk.py +12 -12
- mpflash/mpflash/flash/uf2/windows.py +43 -43
- mpflash/mpflash/flash/worklist.py +170 -170
- mpflash/mpflash/list.py +106 -99
- mpflash/mpflash/logger.py +41 -41
- mpflash/mpflash/mpboard_id/__init__.py +93 -93
- mpflash/mpflash/mpboard_id/add_boards.py +251 -251
- 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 +266 -222
- mpflash/mpflash/mpremoteboard/mpy_fw_info.py +141 -141
- mpflash/mpflash/mpremoteboard/runner.py +140 -140
- 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/versions.py +135 -135
- mpflash/poetry.lock +1599 -1599
- mpflash/pyproject.toml +65 -65
- mpflash/stm32_udev_rules.md +62 -62
- stubber/__init__.py +3 -3
- stubber/board/board_info.csv +193 -193
- stubber/board/boot.py +34 -34
- stubber/board/createstubs.py +1004 -986
- stubber/board/createstubs_db.py +826 -825
- stubber/board/createstubs_db_min.py +332 -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 +767 -766
- stubber/board/createstubs_mem_min.py +307 -306
- stubber/board/createstubs_mem_mpy.mpy +0 -0
- stubber/board/createstubs_min.py +295 -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 +437 -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 +151 -145
- stubber/codemod/merge_docstub.py +284 -284
- stubber/codemod/modify_list.py +54 -54
- stubber/codemod/utils.py +56 -56
- stubber/commands/build_cmd.py +94 -94
- stubber/commands/cli.py +49 -55
- stubber/commands/clone_cmd.py +78 -78
- stubber/commands/config_cmd.py +29 -29
- stubber/commands/enrich_folder_cmd.py +71 -71
- stubber/commands/get_core_cmd.py +71 -71
- stubber/commands/get_docstubs_cmd.py +92 -89
- stubber/commands/get_frozen_cmd.py +117 -114
- stubber/commands/get_mcu_cmd.py +102 -61
- stubber/commands/merge_cmd.py +66 -66
- stubber/commands/publish_cmd.py +118 -118
- stubber/commands/stub_cmd.py +31 -31
- stubber/commands/switch_cmd.py +62 -62
- stubber/commands/variants_cmd.py +48 -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 +37 -36
- stubber/freeze/common.py +72 -68
- stubber/freeze/freeze_folder.py +69 -69
- stubber/freeze/freeze_manifest_2.py +126 -113
- stubber/freeze/get_frozen.py +131 -127
- stubber/get_cpython.py +112 -101
- stubber/get_lobo.py +59 -59
- stubber/minify.py +423 -419
- stubber/publish/bump.py +86 -86
- stubber/publish/candidates.py +275 -256
- stubber/publish/database.py +18 -18
- stubber/publish/defaults.py +40 -40
- stubber/publish/enums.py +24 -24
- stubber/publish/helpers.py +29 -29
- stubber/publish/merge_docstubs.py +136 -130
- stubber/publish/missing_class_methods.py +51 -49
- stubber/publish/package.py +150 -146
- stubber/publish/pathnames.py +51 -51
- stubber/publish/publish.py +120 -120
- stubber/publish/pypi.py +42 -38
- stubber/publish/stubpackage.py +1055 -1027
- stubber/rst/__init__.py +9 -9
- stubber/rst/classsort.py +78 -77
- stubber/rst/lookup.py +533 -530
- stubber/rst/output_dict.py +401 -401
- stubber/rst/reader.py +814 -814
- stubber/rst/report_return.py +77 -69
- stubber/rst/rst_utils.py +541 -540
- stubber/stubber.py +38 -38
- stubber/stubs_from_docs.py +90 -90
- stubber/tools/manifestfile.py +654 -654
- stubber/tools/readme.md +6 -6
- stubber/update_fallback.py +117 -117
- stubber/update_module_list.py +123 -123
- stubber/utils/__init__.py +6 -6
- stubber/utils/config.py +137 -125
- stubber/utils/makeversionhdr.py +54 -54
- stubber/utils/manifest.py +90 -90
- stubber/utils/post.py +80 -79
- stubber/utils/repos.py +156 -150
- stubber/utils/stubmaker.py +139 -139
- stubber/utils/typed_config_toml.py +80 -77
- stubber/variants.py +106 -106
- micropython_stubber-1.23.1.dist-info/RECORD +0 -159
- micropython_stubber-1.23.1.dist-info/entry_points.txt +0 -3
- mpflash/basicgit.py +0 -288
- {micropython_stubber-1.23.1.dist-info → micropython_stubber-1.23.2.dist-info}/WHEEL +0 -0
mpflash/mpflash/cli_group.py
CHANGED
@@ -1,111 +1,111 @@
|
|
1
|
-
"""
|
2
|
-
Main entry point for the CLI group.
|
3
|
-
Additional comands are added in the submodules.
|
4
|
-
"""
|
5
|
-
|
6
|
-
import rich_click as click
|
7
|
-
|
8
|
-
from mpflash.vendor.click_aliases import ClickAliasedGroup
|
9
|
-
|
10
|
-
from .config import __version__, config
|
11
|
-
from .logger import log, make_quiet, set_loglevel
|
12
|
-
|
13
|
-
|
14
|
-
def cb_verbose(ctx, param, value):
|
15
|
-
"""Callback to set the log level to DEBUG if verbose is set"""
|
16
|
-
if value and not config.quiet:
|
17
|
-
# log.debug(f"Setting verbose mode to {value}")
|
18
|
-
config.verbose = True
|
19
|
-
if value > 1:
|
20
|
-
set_loglevel("TRACE")
|
21
|
-
else:
|
22
|
-
set_loglevel("DEBUG")
|
23
|
-
log.debug(f"version: {__version__}")
|
24
|
-
else:
|
25
|
-
set_loglevel("INFO")
|
26
|
-
config.verbose = False
|
27
|
-
return value
|
28
|
-
|
29
|
-
|
30
|
-
def cb_interactive(ctx, param, value: bool):
|
31
|
-
log.trace(f"Setting interactive mode to {value}")
|
32
|
-
config.interactive = value
|
33
|
-
return value
|
34
|
-
|
35
|
-
|
36
|
-
def cb_test(ctx, param, value):
|
37
|
-
if value:
|
38
|
-
log.trace(f"Setting tests to {value}")
|
39
|
-
config.tests = value
|
40
|
-
return value
|
41
|
-
|
42
|
-
def cb_usb(ctx, param, value: bool):
|
43
|
-
config.usb = bool(value)
|
44
|
-
return value
|
45
|
-
|
46
|
-
|
47
|
-
def cb_quiet(ctx, param, value):
|
48
|
-
log.trace(f"Setting quiet mode to {value}")
|
49
|
-
if value:
|
50
|
-
make_quiet()
|
51
|
-
return value
|
52
|
-
|
53
|
-
|
54
|
-
@click.group(cls=ClickAliasedGroup)
|
55
|
-
# @click.group()
|
56
|
-
@click.version_option(package_name="mpflash")
|
57
|
-
@click.option(
|
58
|
-
"--quiet",
|
59
|
-
"-q",
|
60
|
-
is_eager=True,
|
61
|
-
is_flag=True,
|
62
|
-
help="Suppresses all output.",
|
63
|
-
callback=cb_quiet,
|
64
|
-
envvar="MPFLASH_QUIET",
|
65
|
-
show_default=True,
|
66
|
-
)
|
67
|
-
@click.option(
|
68
|
-
"--interactive/--no-interactive",
|
69
|
-
"-i/-x",
|
70
|
-
is_eager=True,
|
71
|
-
help="Suppresses all request for Input.",
|
72
|
-
callback=cb_interactive,
|
73
|
-
# envvar="MPFLASH_QUIET",
|
74
|
-
default=True,
|
75
|
-
show_default=True,
|
76
|
-
)
|
77
|
-
@click.option(
|
78
|
-
"-V",
|
79
|
-
"--verbose",
|
80
|
-
is_eager=True,
|
81
|
-
count=True,
|
82
|
-
help="Enables verbose mode.",
|
83
|
-
callback=cb_verbose,
|
84
|
-
)
|
85
|
-
@click.option(
|
86
|
-
"--usb",
|
87
|
-
"-u",
|
88
|
-
is_eager=True,
|
89
|
-
is_flag=True,
|
90
|
-
default=False,
|
91
|
-
help="Shows USB location of the connected boards.",
|
92
|
-
callback=cb_usb,
|
93
|
-
show_default=True,
|
94
|
-
)
|
95
|
-
@click.option(
|
96
|
-
"--test",
|
97
|
-
is_eager=True,
|
98
|
-
help="Test a specific feature.",
|
99
|
-
callback=cb_test,
|
100
|
-
multiple=True,
|
101
|
-
default=[],
|
102
|
-
envvar="MPFLASH_TEST",
|
103
|
-
metavar="FLAG",
|
104
|
-
)
|
105
|
-
def cli(**kwargs):
|
106
|
-
"""mpflash - MicroPython flashing tool.
|
107
|
-
|
108
|
-
A CLI to download and flash MicroPython firmware to different ports and boards.
|
109
|
-
"""
|
110
|
-
# all functionality is added in the submodules
|
111
|
-
pass
|
1
|
+
"""
|
2
|
+
Main entry point for the CLI group.
|
3
|
+
Additional comands are added in the submodules.
|
4
|
+
"""
|
5
|
+
|
6
|
+
import rich_click as click
|
7
|
+
|
8
|
+
from mpflash.vendor.click_aliases import ClickAliasedGroup
|
9
|
+
|
10
|
+
from .config import __version__, config
|
11
|
+
from .logger import log, make_quiet, set_loglevel
|
12
|
+
|
13
|
+
|
14
|
+
def cb_verbose(ctx, param, value):
|
15
|
+
"""Callback to set the log level to DEBUG if verbose is set"""
|
16
|
+
if value and not config.quiet:
|
17
|
+
# log.debug(f"Setting verbose mode to {value}")
|
18
|
+
config.verbose = True
|
19
|
+
if value > 1:
|
20
|
+
set_loglevel("TRACE")
|
21
|
+
else:
|
22
|
+
set_loglevel("DEBUG")
|
23
|
+
log.debug(f"version: {__version__}")
|
24
|
+
else:
|
25
|
+
set_loglevel("INFO")
|
26
|
+
config.verbose = False
|
27
|
+
return value
|
28
|
+
|
29
|
+
|
30
|
+
def cb_interactive(ctx, param, value: bool):
|
31
|
+
log.trace(f"Setting interactive mode to {value}")
|
32
|
+
config.interactive = value
|
33
|
+
return value
|
34
|
+
|
35
|
+
|
36
|
+
def cb_test(ctx, param, value):
|
37
|
+
if value:
|
38
|
+
log.trace(f"Setting tests to {value}")
|
39
|
+
config.tests = value
|
40
|
+
return value
|
41
|
+
|
42
|
+
def cb_usb(ctx, param, value: bool):
|
43
|
+
config.usb = bool(value)
|
44
|
+
return value
|
45
|
+
|
46
|
+
|
47
|
+
def cb_quiet(ctx, param, value):
|
48
|
+
log.trace(f"Setting quiet mode to {value}")
|
49
|
+
if value:
|
50
|
+
make_quiet()
|
51
|
+
return value
|
52
|
+
|
53
|
+
|
54
|
+
@click.group(cls=ClickAliasedGroup)
|
55
|
+
# @click.group()
|
56
|
+
@click.version_option(package_name="mpflash")
|
57
|
+
@click.option(
|
58
|
+
"--quiet",
|
59
|
+
"-q",
|
60
|
+
is_eager=True,
|
61
|
+
is_flag=True,
|
62
|
+
help="Suppresses all output.",
|
63
|
+
callback=cb_quiet,
|
64
|
+
envvar="MPFLASH_QUIET",
|
65
|
+
show_default=True,
|
66
|
+
)
|
67
|
+
@click.option(
|
68
|
+
"--interactive/--no-interactive",
|
69
|
+
"-i/-x",
|
70
|
+
is_eager=True,
|
71
|
+
help="Suppresses all request for Input.",
|
72
|
+
callback=cb_interactive,
|
73
|
+
# envvar="MPFLASH_QUIET",
|
74
|
+
default=True,
|
75
|
+
show_default=True,
|
76
|
+
)
|
77
|
+
@click.option(
|
78
|
+
"-V",
|
79
|
+
"--verbose",
|
80
|
+
is_eager=True,
|
81
|
+
count=True,
|
82
|
+
help="Enables verbose mode.",
|
83
|
+
callback=cb_verbose,
|
84
|
+
)
|
85
|
+
@click.option(
|
86
|
+
"--usb",
|
87
|
+
"-u",
|
88
|
+
is_eager=True,
|
89
|
+
is_flag=True,
|
90
|
+
default=False,
|
91
|
+
help="Shows USB location of the connected boards.",
|
92
|
+
callback=cb_usb,
|
93
|
+
show_default=True,
|
94
|
+
)
|
95
|
+
@click.option(
|
96
|
+
"--test",
|
97
|
+
is_eager=True,
|
98
|
+
help="Test a specific feature.",
|
99
|
+
callback=cb_test,
|
100
|
+
multiple=True,
|
101
|
+
default=[],
|
102
|
+
envvar="MPFLASH_TEST",
|
103
|
+
metavar="FLAG",
|
104
|
+
)
|
105
|
+
def cli(**kwargs):
|
106
|
+
"""mpflash - MicroPython flashing tool.
|
107
|
+
|
108
|
+
A CLI to download and flash MicroPython firmware to different ports and boards.
|
109
|
+
"""
|
110
|
+
# all functionality is added in the submodules
|
111
|
+
pass
|
mpflash/mpflash/cli_list.py
CHANGED
@@ -1,81 +1,87 @@
|
|
1
|
-
import json
|
2
|
-
from typing import List
|
3
|
-
|
4
|
-
import rich_click as click
|
5
|
-
from rich import print
|
6
|
-
|
7
|
-
from .cli_group import cli
|
8
|
-
from .connected import list_mcus
|
9
|
-
from .list import show_mcus
|
10
|
-
from .logger import make_quiet
|
11
|
-
|
12
|
-
|
13
|
-
@cli.command(
|
14
|
-
"list",
|
15
|
-
help="List the connected MCU boards. alias: devs",
|
16
|
-
aliases=["devs"],
|
17
|
-
)
|
18
|
-
@click.option(
|
19
|
-
"--json",
|
20
|
-
"-j",
|
21
|
-
"as_json",
|
22
|
-
is_flag=True,
|
23
|
-
default=False,
|
24
|
-
show_default=True,
|
25
|
-
help="""Output in json format""",
|
26
|
-
)
|
27
|
-
@click.option(
|
28
|
-
"--serial",
|
29
|
-
"--serial-port",
|
30
|
-
"-s",
|
31
|
-
"serial",
|
32
|
-
default=["*"],
|
33
|
-
multiple=True,
|
34
|
-
show_default=True,
|
35
|
-
help="
|
36
|
-
metavar="SERIALPORT",
|
37
|
-
)
|
38
|
-
@click.option(
|
39
|
-
"--ignore",
|
40
|
-
"-i",
|
41
|
-
is_eager=True,
|
42
|
-
help="Serial port(s) to ignore. Defaults to MPFLASH_IGNORE.",
|
43
|
-
multiple=True,
|
44
|
-
default=[],
|
45
|
-
envvar="MPFLASH_IGNORE",
|
46
|
-
show_default=True,
|
47
|
-
metavar="SERIALPORT",
|
48
|
-
)
|
49
|
-
@click.option(
|
50
|
-
"--bluetooth/--no-bluetooth",
|
51
|
-
"-b/-nb",
|
52
|
-
is_flag=True,
|
53
|
-
default=False,
|
54
|
-
show_default=True,
|
55
|
-
help="""Include bluetooth ports in the list""",
|
56
|
-
)
|
57
|
-
@click.option(
|
58
|
-
"--progress/--no-progress",
|
59
|
-
# "-p/-np", -p is already used for --port
|
60
|
-
"progress",
|
61
|
-
is_flag=True,
|
62
|
-
default=True,
|
63
|
-
show_default=True,
|
64
|
-
help="""Show progress""",
|
65
|
-
)
|
66
|
-
def cli_list_mcus(serial: List[str], ignore: List[str], bluetooth: bool, as_json: bool, progress: bool = True) -> int:
|
67
|
-
"""List the connected MCU boards, and output in a nice table or json."""
|
68
|
-
serial = list(serial)
|
69
|
-
ignore = list(ignore)
|
70
|
-
if as_json:
|
71
|
-
# avoid noise in json output
|
72
|
-
make_quiet()
|
73
|
-
# TODO? Ask user to select a serialport if [?] is given ?
|
74
|
-
|
75
|
-
conn_mcus = list_mcus(ignore=ignore, include=serial, bluetooth=bluetooth)
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
1
|
+
import json
|
2
|
+
from typing import List
|
3
|
+
|
4
|
+
import rich_click as click
|
5
|
+
from rich import print
|
6
|
+
|
7
|
+
from .cli_group import cli
|
8
|
+
from .connected import list_mcus
|
9
|
+
from .list import show_mcus
|
10
|
+
from .logger import make_quiet
|
11
|
+
|
12
|
+
|
13
|
+
@cli.command(
|
14
|
+
"list",
|
15
|
+
help="List the connected MCU boards. alias: devs",
|
16
|
+
aliases=["devs"],
|
17
|
+
)
|
18
|
+
@click.option(
|
19
|
+
"--json",
|
20
|
+
"-j",
|
21
|
+
"as_json",
|
22
|
+
is_flag=True,
|
23
|
+
default=False,
|
24
|
+
show_default=True,
|
25
|
+
help="""Output in json format""",
|
26
|
+
)
|
27
|
+
@click.option(
|
28
|
+
"--serial",
|
29
|
+
"--serial-port",
|
30
|
+
"-s",
|
31
|
+
"serial",
|
32
|
+
default=["*"],
|
33
|
+
multiple=True,
|
34
|
+
show_default=True,
|
35
|
+
help="Serial port(s) (or globs) to list. ",
|
36
|
+
metavar="SERIALPORT",
|
37
|
+
)
|
38
|
+
@click.option(
|
39
|
+
"--ignore",
|
40
|
+
"-i",
|
41
|
+
is_eager=True,
|
42
|
+
help="Serial port(s) (or globs) to ignore. Defaults to MPFLASH_IGNORE.",
|
43
|
+
multiple=True,
|
44
|
+
default=[],
|
45
|
+
envvar="MPFLASH_IGNORE",
|
46
|
+
show_default=True,
|
47
|
+
metavar="SERIALPORT",
|
48
|
+
)
|
49
|
+
@click.option(
|
50
|
+
"--bluetooth/--no-bluetooth",
|
51
|
+
"-b/-nb",
|
52
|
+
is_flag=True,
|
53
|
+
default=False,
|
54
|
+
show_default=True,
|
55
|
+
help="""Include bluetooth ports in the list""",
|
56
|
+
)
|
57
|
+
@click.option(
|
58
|
+
"--progress/--no-progress",
|
59
|
+
# "-p/-np", -p is already used for --port
|
60
|
+
"progress",
|
61
|
+
is_flag=True,
|
62
|
+
default=True,
|
63
|
+
show_default=True,
|
64
|
+
help="""Show progress""",
|
65
|
+
)
|
66
|
+
def cli_list_mcus(serial: List[str], ignore: List[str], bluetooth: bool, as_json: bool, progress: bool = True) -> int:
|
67
|
+
"""List the connected MCU boards, and output in a nice table or json."""
|
68
|
+
serial = list(serial)
|
69
|
+
ignore = list(ignore)
|
70
|
+
if as_json:
|
71
|
+
# avoid noise in json output
|
72
|
+
make_quiet()
|
73
|
+
# TODO? Ask user to select a serialport if [?] is given ?
|
74
|
+
|
75
|
+
conn_mcus = list_mcus(ignore=ignore, include=serial, bluetooth=bluetooth)
|
76
|
+
# ignore boards that have the [micropython-stubber] ignore flag set
|
77
|
+
conn_mcus = [item for item in conn_mcus if not (item.toml.get("mpflash", {}).get("ignore", False))]
|
78
|
+
if as_json:
|
79
|
+
# remove the path and firmware attibutes from the json output as they are always empty
|
80
|
+
for mcu in conn_mcus:
|
81
|
+
del mcu.path
|
82
|
+
del mcu.firmware
|
83
|
+
print(json.dumps([mcu.__dict__ for mcu in conn_mcus], indent=4))
|
84
|
+
progress = False
|
85
|
+
if progress:
|
86
|
+
show_mcus(conn_mcus, refresh=False)
|
87
|
+
return 0 if conn_mcus else 1
|
mpflash/mpflash/cli_main.py
CHANGED
@@ -1,39 +1,39 @@
|
|
1
|
-
"""mpflash is a CLI to download and flash MicroPython firmware to various boards."""
|
2
|
-
|
3
|
-
import os
|
4
|
-
|
5
|
-
import click.exceptions as click_exceptions
|
6
|
-
from loguru import logger as log
|
7
|
-
|
8
|
-
from .cli_download import cli_download
|
9
|
-
from .cli_flash import cli_flash_board
|
10
|
-
from .cli_group import cli
|
11
|
-
from .cli_list import cli_list_mcus
|
12
|
-
|
13
|
-
|
14
|
-
def mpflash():
|
15
|
-
cli.add_command(cli_list_mcus)
|
16
|
-
cli.add_command(cli_download)
|
17
|
-
cli.add_command(cli_flash_board)
|
18
|
-
|
19
|
-
# cli(auto_envvar_prefix="MPFLASH")
|
20
|
-
if False and os.environ.get("COMPUTERNAME").startswith("JOSVERL"):
|
21
|
-
# intentional less error suppression on dev machine
|
22
|
-
result = cli(standalone_mode=False)
|
23
|
-
else:
|
24
|
-
try:
|
25
|
-
result = cli(standalone_mode=True)
|
26
|
-
exit(result)
|
27
|
-
except AttributeError as e:
|
28
|
-
log.error(f"Error: {e}")
|
29
|
-
exit(-1)
|
30
|
-
except click_exceptions.ClickException as e:
|
31
|
-
log.error(f"Error: {e}")
|
32
|
-
exit(-2)
|
33
|
-
except click_exceptions.Abort as e:
|
34
|
-
# Aborted - Ctrl-C
|
35
|
-
exit(-3)
|
36
|
-
|
37
|
-
|
38
|
-
if __name__ == "__main__":
|
39
|
-
mpflash()
|
1
|
+
"""mpflash is a CLI to download and flash MicroPython firmware to various boards."""
|
2
|
+
|
3
|
+
import os
|
4
|
+
|
5
|
+
import click.exceptions as click_exceptions
|
6
|
+
from loguru import logger as log
|
7
|
+
|
8
|
+
from .cli_download import cli_download
|
9
|
+
from .cli_flash import cli_flash_board
|
10
|
+
from .cli_group import cli
|
11
|
+
from .cli_list import cli_list_mcus
|
12
|
+
|
13
|
+
|
14
|
+
def mpflash():
|
15
|
+
cli.add_command(cli_list_mcus)
|
16
|
+
cli.add_command(cli_download)
|
17
|
+
cli.add_command(cli_flash_board)
|
18
|
+
|
19
|
+
# cli(auto_envvar_prefix="MPFLASH")
|
20
|
+
if False and os.environ.get("COMPUTERNAME").startswith("JOSVERL"):
|
21
|
+
# intentional less error suppression on dev machine
|
22
|
+
result = cli(standalone_mode=False)
|
23
|
+
else:
|
24
|
+
try:
|
25
|
+
result = cli(standalone_mode=True)
|
26
|
+
exit(result)
|
27
|
+
except AttributeError as e:
|
28
|
+
log.error(f"Error: {e}")
|
29
|
+
exit(-1)
|
30
|
+
except click_exceptions.ClickException as e:
|
31
|
+
log.error(f"Error: {e}")
|
32
|
+
exit(-2)
|
33
|
+
except click_exceptions.Abort as e:
|
34
|
+
# Aborted - Ctrl-C
|
35
|
+
exit(-3)
|
36
|
+
|
37
|
+
|
38
|
+
if __name__ == "__main__":
|
39
|
+
mpflash()
|