mposcli 0.7.0__tar.gz → 0.7.1__tar.gz

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 (52) hide show
  1. {mposcli-0.7.0 → mposcli-0.7.1}/PKG-INFO +6 -3
  2. {mposcli-0.7.0 → mposcli-0.7.1}/README.md +5 -2
  3. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/__init__.py +1 -1
  4. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/cli_app/build.py +2 -2
  5. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/cli_app/copy_mpos.py +3 -3
  6. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/cli_app/flash.py +2 -2
  7. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/cli_app/run_deskop.py +2 -2
  8. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/cli_app/shell.py +2 -2
  9. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/cli_app/update.py +3 -3
  10. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/cli_dev/code_style.py +1 -1
  11. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/cli_dev/packaging.py +1 -1
  12. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/cli_dev/shell_completion.py +2 -2
  13. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/cli_dev/testing.py +1 -1
  14. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/cli_dev/update_readme_history.py +1 -1
  15. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/fs_utils.py +1 -1
  16. mposcli-0.7.1/mposcli/shared_tyro.py +17 -0
  17. {mposcli-0.7.0 → mposcli-0.7.1}/uv.lock +266 -247
  18. {mposcli-0.7.0 → mposcli-0.7.1}/.editorconfig +0 -0
  19. {mposcli-0.7.0 → mposcli-0.7.1}/.github/workflows/tests.yml +0 -0
  20. {mposcli-0.7.0 → mposcli-0.7.1}/.gitignore +0 -0
  21. {mposcli-0.7.0 → mposcli-0.7.1}/.idea/.gitignore +0 -0
  22. {mposcli-0.7.0 → mposcli-0.7.1}/.pre-commit-config.yaml +0 -0
  23. {mposcli-0.7.0 → mposcli-0.7.1}/.pre-commit-hooks.yaml +0 -0
  24. {mposcli-0.7.0 → mposcli-0.7.1}/.run/Template Python tests.run.xml +0 -0
  25. {mposcli-0.7.0 → mposcli-0.7.1}/.run/Template Python.run.xml +0 -0
  26. {mposcli-0.7.0 → mposcli-0.7.1}/.run/Unittests __all__.run.xml +0 -0
  27. {mposcli-0.7.0 → mposcli-0.7.1}/.run/cli --help.run.xml +0 -0
  28. {mposcli-0.7.0 → mposcli-0.7.1}/.run/dev-cli --help.run.xml +0 -0
  29. {mposcli-0.7.0 → mposcli-0.7.1}/.run/dev-cli test.run.xml +0 -0
  30. {mposcli-0.7.0 → mposcli-0.7.1}/.venv-app/.gitignore +0 -0
  31. {mposcli-0.7.0 → mposcli-0.7.1}/.venv-app/lib/python3.14/site-packages/cli_base/tests/shell_complete_snapshots/.gitignore +0 -0
  32. {mposcli-0.7.0 → mposcli-0.7.1}/cli.py +0 -0
  33. {mposcli-0.7.0 → mposcli-0.7.1}/dev-cli.py +0 -0
  34. {mposcli-0.7.0 → mposcli-0.7.1}/dist/.gitignore +0 -0
  35. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/__main__.py +0 -0
  36. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/cli_app/__init__.py +0 -0
  37. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/cli_dev/__init__.py +0 -0
  38. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/cli_dev/__main__.py +0 -0
  39. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/constants.py +0 -0
  40. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/mpos_utils.py +0 -0
  41. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/tests/__init__.py +0 -0
  42. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/tests/test_doctests.py +0 -0
  43. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/tests/test_mpremote_cp_utils.py +0 -0
  44. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/tests/test_project_setup.py +0 -0
  45. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/tests/test_readme.py +0 -0
  46. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/tests/test_readme_history.py +0 -0
  47. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/tools.py +0 -0
  48. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/user_input.py +0 -0
  49. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/utilities/__init__.py +0 -0
  50. {mposcli-0.7.0 → mposcli-0.7.1}/mposcli/utilities/mpremote.py +0 -0
  51. {mposcli-0.7.0 → mposcli-0.7.1}/noxfile.py +0 -0
  52. {mposcli-0.7.0 → mposcli-0.7.1}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mposcli
3
- Version: 0.7.0
3
+ Version: 0.7.1
4
4
  Summary: CLI helper for MicroPythonOS: https://github.com/MicroPythonOS/MicroPythonOS
5
5
  Project-URL: Documentation, https://github.com/jedie/mposcli
6
6
  Project-URL: Source, https://github.com/jedie/mposcli
@@ -355,6 +355,9 @@ completion,test,update,update-readme-history,update-test-snapshot-files,version}
355
355
 
356
356
  [comment]: <> (✂✂✂ auto generated history start ✂✂✂)
357
357
 
358
+ * [v0.7.1](https://github.com/jedie/mposcli/compare/v0.7.0...v0.7.1)
359
+ * 2026-03-24 - Warn if non executeable build found
360
+ * 2026-03-24 - Set log level to WARNING as default
358
361
  * [v0.7.0](https://github.com/jedie/mposcli/compare/v0.6.0...v0.7.0)
359
362
  * 2026-03-24 - Safe diskspace in mposcli update / update-submodules
360
363
  * 2026-03-22 - Use "retry loop" for copy, too
@@ -365,11 +368,11 @@ completion,test,update,update-readme-history,update-test-snapshot-files,version}
365
368
  * 2026-03-05 - Enhance "cp" command and auto restart "mpremote repl"
366
369
  * 2026-03-03 - Refactor "cp" command
367
370
  * 2026-03-03 - flash command: use port auto detection as default
368
- * [v0.4.1](https://github.com/jedie/mposcli/compare/v0.4.0...v0.4.1)
369
- * 2026-02-27 - Use "--force" for pulling submodules to overwrite local changes
370
371
 
371
372
  <details><summary>Expand older history entries ...</summary>
372
373
 
374
+ * [v0.4.1](https://github.com/jedie/mposcli/compare/v0.4.0...v0.4.1)
375
+ * 2026-02-27 - Use "--force" for pulling submodules to overwrite local changes
373
376
  * [v0.4.0](https://github.com/jedie/mposcli/compare/v0.3.0...v0.4.0)
374
377
  * 2026-02-24 - NEW command: "cp-app" to install/update internal_filesystem/apps
375
378
  * 2026-02-24 - Log skipped files
@@ -340,6 +340,9 @@ completion,test,update,update-readme-history,update-test-snapshot-files,version}
340
340
 
341
341
  [comment]: <> (✂✂✂ auto generated history start ✂✂✂)
342
342
 
343
+ * [v0.7.1](https://github.com/jedie/mposcli/compare/v0.7.0...v0.7.1)
344
+ * 2026-03-24 - Warn if non executeable build found
345
+ * 2026-03-24 - Set log level to WARNING as default
343
346
  * [v0.7.0](https://github.com/jedie/mposcli/compare/v0.6.0...v0.7.0)
344
347
  * 2026-03-24 - Safe diskspace in mposcli update / update-submodules
345
348
  * 2026-03-22 - Use "retry loop" for copy, too
@@ -350,11 +353,11 @@ completion,test,update,update-readme-history,update-test-snapshot-files,version}
350
353
  * 2026-03-05 - Enhance "cp" command and auto restart "mpremote repl"
351
354
  * 2026-03-03 - Refactor "cp" command
352
355
  * 2026-03-03 - flash command: use port auto detection as default
353
- * [v0.4.1](https://github.com/jedie/mposcli/compare/v0.4.0...v0.4.1)
354
- * 2026-02-27 - Use "--force" for pulling submodules to overwrite local changes
355
356
 
356
357
  <details><summary>Expand older history entries ...</summary>
357
358
 
359
+ * [v0.4.1](https://github.com/jedie/mposcli/compare/v0.4.0...v0.4.1)
360
+ * 2026-02-27 - Use "--force" for pulling submodules to overwrite local changes
358
361
  * [v0.4.0](https://github.com/jedie/mposcli/compare/v0.3.0...v0.4.0)
359
362
  * 2026-02-24 - NEW command: "cp-app" to install/update internal_filesystem/apps
360
363
  * 2026-02-24 - Log skipped files
@@ -4,5 +4,5 @@
4
4
  """
5
5
 
6
6
  # See https://packaging.python.org/en/latest/specifications/version-specifiers/
7
- __version__ = '0.7.0'
7
+ __version__ = '0.7.1'
8
8
  __author__ = 'Jens Diemer <cookiecutter_templates@jensdiemer.de>'
@@ -5,11 +5,11 @@ import tyro
5
5
  from bx_py_utils.path import assert_is_file
6
6
  from cli_base.cli_tools.subprocess_utils import verbose_check_call
7
7
  from cli_base.cli_tools.verbosity import setup_logging
8
- from cli_base.tyro_commands import TyroVerbosityArgType
9
8
  from rich import print # noqa
10
9
 
11
10
  from mposcli.cli_app import app
12
11
  from mposcli.mpos_utils import get_mpos_path
12
+ from mposcli.shared_tyro import DEFAULT_VERBOSITY, TyroVerbosityArgType
13
13
 
14
14
 
15
15
  logger = logging.getLogger(__name__)
@@ -24,7 +24,7 @@ def build(
24
24
  ),
25
25
  ] = 'unix',
26
26
  /,
27
- verbosity: TyroVerbosityArgType = 1,
27
+ verbosity: TyroVerbosityArgType = DEFAULT_VERBOSITY,
28
28
  ):
29
29
  """
30
30
  Build MicroPythonOS by calling: ./scripts/build_mpos.sh <target>
@@ -7,11 +7,11 @@ import tyro
7
7
  from bx_py_utils.path import assert_is_dir
8
8
  from cli_base.cli_tools.subprocess_utils import verbose_check_call
9
9
  from cli_base.cli_tools.verbosity import setup_logging
10
- from cli_base.tyro_commands import TyroVerbosityArgType
11
10
  from rich import print
12
11
 
13
12
  from mposcli.cli_app import app
14
13
  from mposcli.mpos_utils import get_mpos_path
14
+ from mposcli.shared_tyro import DEFAULT_VERBOSITY, TyroVerbosityArgType
15
15
  from mposcli.tools import get_mpremote_bin
16
16
  from mposcli.user_input import choose_newest_modified_directory, get_newest_files
17
17
  from mposcli.utilities.mpremote import MpOsPathResolver, check_call_loop, start_mpremote_repl
@@ -39,7 +39,7 @@ def cp(
39
39
  bool,
40
40
  tyro.conf.arg(help='After flashing/verify start REPL with mpremote to see the output of the device?'),
41
41
  ] = True,
42
- verbosity: TyroVerbosityArgType = 1,
42
+ verbosity: TyroVerbosityArgType = DEFAULT_VERBOSITY,
43
43
  ):
44
44
  """
45
45
  Copy/update internal_filesystem/lib/mpos files to the device via "mpremote fs cp".
@@ -112,7 +112,7 @@ def cp_app(
112
112
  bool,
113
113
  tyro.conf.arg(help='After flashing/verify start REPL with mpremote to see the output of the device?'),
114
114
  ] = True,
115
- verbosity: TyroVerbosityArgType = 1,
115
+ verbosity: TyroVerbosityArgType = DEFAULT_VERBOSITY,
116
116
  ):
117
117
  """
118
118
  Copy/update internal_filesystem/apps to the device via "mpremote fs cp".
@@ -4,11 +4,11 @@ from typing import Annotated
4
4
  import tyro
5
5
  from cli_base.cli_tools.subprocess_utils import verbose_check_call
6
6
  from cli_base.cli_tools.verbosity import setup_logging
7
- from cli_base.tyro_commands import TyroVerbosityArgType
8
7
  from rich import print
9
8
 
10
9
  from mposcli.cli_app import app
11
10
  from mposcli.mpos_utils import get_mpos_path
11
+ from mposcli.shared_tyro import DEFAULT_VERBOSITY, TyroVerbosityArgType
12
12
  from mposcli.tools import get_esptool_bin, get_mpremote_bin
13
13
  from mposcli.user_input import file_chooser
14
14
 
@@ -34,7 +34,7 @@ def flash(
34
34
  bool,
35
35
  tyro.conf.arg(help='After flashing/verify start REPL with mpremote to see the output of the device?'),
36
36
  ] = True,
37
- verbosity: TyroVerbosityArgType = 1,
37
+ verbosity: TyroVerbosityArgType = DEFAULT_VERBOSITY,
38
38
  ):
39
39
  """
40
40
  Flash MicroPythonOS to the device. Display a file chooser to select the image to flash.
@@ -9,12 +9,12 @@ import tyro
9
9
  from bx_py_utils.path import assert_is_file
10
10
  from cli_base.cli_tools.subprocess_utils import verbose_check_call
11
11
  from cli_base.cli_tools.verbosity import setup_logging
12
- from cli_base.tyro_commands import TyroVerbosityArgType
13
12
  from rich import print
14
13
 
15
14
  from mposcli.cli_app import app
16
15
  from mposcli.fs_utils import list_executables
17
16
  from mposcli.mpos_utils import get_mpos_path
17
+ from mposcli.shared_tyro import DEFAULT_VERBOSITY, TyroVerbosityArgType
18
18
  from mposcli.user_input import file_chooser
19
19
 
20
20
 
@@ -40,7 +40,7 @@ def run_desktop(
40
40
  ' If omitted, shows a file chooser to select one from the lvgl_micropython build directory.'
41
41
  ),
42
42
  ] = None,
43
- verbosity: TyroVerbosityArgType = 1,
43
+ verbosity: TyroVerbosityArgType = DEFAULT_VERBOSITY,
44
44
  ):
45
45
  """
46
46
  Run MicroPythonOS on desktop.
@@ -5,10 +5,10 @@ from typing import Annotated
5
5
  import tyro
6
6
  from cli_base.cli_tools.subprocess_utils import verbose_check_call
7
7
  from cli_base.cli_tools.verbosity import setup_logging
8
- from cli_base.tyro_commands import TyroVerbosityArgType
9
8
 
10
9
  from mposcli.cli_app import app
11
10
  from mposcli.mpos_utils import get_mpos_path
11
+ from mposcli.shared_tyro import DEFAULT_VERBOSITY, TyroVerbosityArgType
12
12
  from mposcli.tools import get_mpremote_bin
13
13
  from mposcli.utilities.mpremote import start_mpremote_repl
14
14
 
@@ -22,7 +22,7 @@ def shell(
22
22
  bool,
23
23
  tyro.conf.arg(help='Reset the device before starting the REPL?'),
24
24
  ] = False,
25
- verbosity: TyroVerbosityArgType = 1,
25
+ verbosity: TyroVerbosityArgType = DEFAULT_VERBOSITY,
26
26
  ):
27
27
  """
28
28
  Start a REPL shell connected to the device using mpremote. Optional reset before starting the REPL.
@@ -5,11 +5,11 @@ from typing import Annotated
5
5
  import tyro
6
6
  from cli_base.cli_tools.git import Git
7
7
  from cli_base.cli_tools.verbosity import setup_logging
8
- from cli_base.tyro_commands import TyroVerbosityArgType
9
8
  from rich import print
10
9
 
11
10
  from mposcli.cli_app import app
12
11
  from mposcli.mpos_utils import get_mpos_path
12
+ from mposcli.shared_tyro import DEFAULT_VERBOSITY, TyroVerbosityArgType
13
13
 
14
14
 
15
15
  logger = logging.getLogger(__name__)
@@ -44,7 +44,7 @@ def update_submodules(
44
44
  bool,
45
45
  tyro.conf.arg(help='Submodules only a shallow clone with --depth=1?'),
46
46
  ] = False,
47
- verbosity: TyroVerbosityArgType = 1,
47
+ verbosity: TyroVerbosityArgType = DEFAULT_VERBOSITY,
48
48
  ):
49
49
  """
50
50
  Updates MicroPythonOS git submodules only.
@@ -67,7 +67,7 @@ def update(
67
67
  bool,
68
68
  tyro.conf.arg(help='Submodules only a shallow clone with --depth=1?'),
69
69
  ] = False,
70
- verbosity: TyroVerbosityArgType = 1,
70
+ verbosity: TyroVerbosityArgType = DEFAULT_VERBOSITY,
71
71
  ):
72
72
  """
73
73
  Update MicroPythonOS repository. Assume that there is a "origin" and/or "upstream" remote configured.
@@ -1,7 +1,7 @@
1
1
  from cli_base.cli_tools.code_style import assert_code_style
2
- from cli_base.tyro_commands import TyroVerbosityArgType
3
2
 
4
3
  from mposcli.cli_dev import PACKAGE_ROOT, app
4
+ from mposcli.shared_tyro import TyroVerbosityArgType
5
5
 
6
6
 
7
7
  @app.command
@@ -4,11 +4,11 @@ from cli_base.cli_tools.dev_tools import run_unittest_cli
4
4
  from cli_base.cli_tools.subprocess_utils import ToolsExecutor
5
5
  from cli_base.cli_tools.verbosity import setup_logging
6
6
  from cli_base.run_pip_audit import run_pip_audit
7
- from cli_base.tyro_commands import TyroVerbosityArgType
8
7
  from manageprojects.utilities.publish import publish_package
9
8
 
10
9
  import mposcli
11
10
  from mposcli.cli_dev import PACKAGE_ROOT, app
11
+ from mposcli.shared_tyro import TyroVerbosityArgType
12
12
 
13
13
 
14
14
  logger = logging.getLogger(__name__)
@@ -2,17 +2,17 @@ import logging
2
2
 
3
3
  from cli_base.cli_tools.shell_completion import setup_tyro_shell_completion
4
4
  from cli_base.cli_tools.verbosity import setup_logging
5
- from cli_base.tyro_commands import TyroVerbosityArgType
6
5
  from rich import print # noqa
7
6
 
8
7
  from mposcli.cli_dev import app
8
+ from mposcli.shared_tyro import DEFAULT_VERBOSITY, TyroVerbosityArgType
9
9
 
10
10
 
11
11
  logger = logging.getLogger(__name__)
12
12
 
13
13
 
14
14
  @app.command
15
- def shell_completion(verbosity: TyroVerbosityArgType = 1, remove: bool = False) -> None:
15
+ def shell_completion(verbosity: TyroVerbosityArgType = DEFAULT_VERBOSITY, remove: bool = False) -> None:
16
16
  """
17
17
  Setup shell completion for this CLI (Currently only for bash shell)
18
18
  """
@@ -1,9 +1,9 @@
1
1
  from cli_base.cli_tools.dev_tools import run_coverage, run_nox, run_unittest_cli
2
2
  from cli_base.cli_tools.subprocess_utils import verbose_check_call
3
3
  from cli_base.cli_tools.test_utils.snapshot import UpdateTestSnapshotFiles
4
- from cli_base.tyro_commands import TyroVerbosityArgType
5
4
 
6
5
  from mposcli.cli_dev import PACKAGE_ROOT, app
6
+ from mposcli.shared_tyro import TyroVerbosityArgType
7
7
 
8
8
 
9
9
  @app.command
@@ -4,10 +4,10 @@ from pathlib import Path
4
4
 
5
5
  from cli_base.cli_tools import git_history
6
6
  from cli_base.cli_tools.verbosity import setup_logging
7
- from cli_base.tyro_commands import TyroVerbosityArgType
8
7
  from rich import print
9
8
 
10
9
  from mposcli.cli_dev import app
10
+ from mposcli.shared_tyro import TyroVerbosityArgType
11
11
 
12
12
 
13
13
  logger = logging.getLogger(__name__)
@@ -22,5 +22,5 @@ def list_executables(directory: Path) -> list[Path]:
22
22
  if os.access(entry, os.X_OK):
23
23
  executables.append(entry)
24
24
  else:
25
- logger.info('Skipping non-executable file: %s', entry)
25
+ logger.warning('%s is not executable! (Hint: "chmod +x <filename>")', entry)
26
26
  return executables
@@ -0,0 +1,17 @@
1
+ from typing import Annotated
2
+
3
+ import tyro
4
+ from tyro.conf import UseCounterAction
5
+
6
+
7
+ DEFAULT_VERBOSITY = 1 # Display warnings by default
8
+
9
+ # https://brentyi.github.io/tyro/examples/04_additional/12_counters/
10
+ TyroVerbosityArgType = Annotated[
11
+ UseCounterAction[int],
12
+ tyro.conf.arg(
13
+ aliases=['-v'],
14
+ help='Verbosity level; e.g.: -v, -vv, -vvv, etc.',
15
+ default=DEFAULT_VERBOSITY,
16
+ ),
17
+ ]