mposcli 0.1.0__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 (43) hide show
  1. mposcli-0.1.0/.editorconfig +20 -0
  2. mposcli-0.1.0/.github/workflows/tests.yml +81 -0
  3. mposcli-0.1.0/.gitignore +15 -0
  4. mposcli-0.1.0/.idea/.gitignore +3 -0
  5. mposcli-0.1.0/.pre-commit-config.yaml +7 -0
  6. mposcli-0.1.0/.pre-commit-hooks.yaml +13 -0
  7. mposcli-0.1.0/.run/Template Python tests.run.xml +21 -0
  8. mposcli-0.1.0/.run/Template Python.run.xml +27 -0
  9. mposcli-0.1.0/.run/Unittests __all__.run.xml +21 -0
  10. mposcli-0.1.0/.run/cli --help.run.xml +26 -0
  11. mposcli-0.1.0/.run/dev-cli --help.run.xml +26 -0
  12. mposcli-0.1.0/.run/dev-cli test.run.xml +26 -0
  13. mposcli-0.1.0/.venv-app/.gitignore +1 -0
  14. mposcli-0.1.0/PKG-INFO +178 -0
  15. mposcli-0.1.0/README.md +163 -0
  16. mposcli-0.1.0/cli.py +71 -0
  17. mposcli-0.1.0/dev-cli.py +73 -0
  18. mposcli-0.1.0/dist/.gitignore +1 -0
  19. mposcli-0.1.0/mposcli/__init__.py +8 -0
  20. mposcli-0.1.0/mposcli/__main__.py +10 -0
  21. mposcli-0.1.0/mposcli/cli_app/__init__.py +41 -0
  22. mposcli-0.1.0/mposcli/cli_app/build.py +46 -0
  23. mposcli-0.1.0/mposcli/cli_app/run_deskop.py +105 -0
  24. mposcli-0.1.0/mposcli/cli_app/update.py +35 -0
  25. mposcli-0.1.0/mposcli/cli_dev/__init__.py +70 -0
  26. mposcli-0.1.0/mposcli/cli_dev/__main__.py +10 -0
  27. mposcli-0.1.0/mposcli/cli_dev/code_style.py +12 -0
  28. mposcli-0.1.0/mposcli/cli_dev/packaging.py +62 -0
  29. mposcli-0.1.0/mposcli/cli_dev/shell_completion.py +23 -0
  30. mposcli-0.1.0/mposcli/cli_dev/testing.py +52 -0
  31. mposcli-0.1.0/mposcli/cli_dev/update_readme_history.py +33 -0
  32. mposcli-0.1.0/mposcli/constants.py +8 -0
  33. mposcli-0.1.0/mposcli/fs_utils.py +6 -0
  34. mposcli-0.1.0/mposcli/mpos_utils.py +28 -0
  35. mposcli-0.1.0/mposcli/tests/__init__.py +36 -0
  36. mposcli-0.1.0/mposcli/tests/test_doctests.py +10 -0
  37. mposcli-0.1.0/mposcli/tests/test_project_setup.py +46 -0
  38. mposcli-0.1.0/mposcli/tests/test_readme.py +88 -0
  39. mposcli-0.1.0/mposcli/tests/test_readme_history.py +9 -0
  40. mposcli-0.1.0/mposcli/user_input.py +37 -0
  41. mposcli-0.1.0/noxfile.py +27 -0
  42. mposcli-0.1.0/pyproject.toml +146 -0
  43. mposcli-0.1.0/uv.lock +1558 -0
@@ -0,0 +1,20 @@
1
+ # see https://editorconfig.org
2
+ root = true
3
+
4
+ [*]
5
+ indent_style = space
6
+ indent_size = 4
7
+ end_of_line = lf
8
+ charset = utf-8
9
+ trim_trailing_whitespace = true
10
+ insert_final_newline = true
11
+
12
+ [*.py]
13
+ max_line_length = 119
14
+
15
+ [{Makefile,**.mk}]
16
+ indent_style = tab
17
+ insert_final_newline = false
18
+
19
+ [{*.yaml,*.yml}]
20
+ indent_size = 2
@@ -0,0 +1,81 @@
1
+
2
+ name: tests
3
+ permissions:
4
+ contents: read
5
+
6
+ on:
7
+ push:
8
+ branches:
9
+ - main
10
+ pull_request:
11
+ schedule:
12
+ - cron: '0 8 * * *'
13
+
14
+ jobs:
15
+ test:
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ python-version: ["3.14", "3.13", "3.12"]
20
+ os: [ubuntu-latest, macos-latest] # TODO: windows-latest
21
+ runs-on: ${{ matrix.os }}
22
+ steps:
23
+ - name: Checkout
24
+ run: |
25
+ echo $GITHUB_REF $GITHUB_SHA
26
+ git clone https://github.com/$GITHUB_REPOSITORY.git .
27
+ git fetch origin $GITHUB_SHA:temporary-ci-branch
28
+ git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA)
29
+
30
+ - name: 'Set up Python ${{ matrix.python-version }}'
31
+ uses: actions/setup-python@main
32
+ # https://github.com/marketplace/actions/setup-python
33
+ with:
34
+ python-version: '${{ matrix.python-version }}'
35
+ cache: 'pip' # caching pip dependencies
36
+ cache-dependency-path: '**/requirements.*.txt'
37
+
38
+ - name: Install uv and set the Python version
39
+ # https://docs.astral.sh/uv/guides/integration/github/#multiple-python-versions
40
+ uses: astral-sh/setup-uv@main
41
+ with:
42
+ python-version: ${{ matrix.python-version }}
43
+
44
+ - name: 'Bootstrap app venv'
45
+ # The first CLI call will create the .venv
46
+ run: |
47
+ ./cli.py version
48
+
49
+ - name: 'app CLI help'
50
+ run: |
51
+ ./cli.py --help
52
+
53
+ - name: 'Bootstrap dev venv'
54
+ # The first CLI call will create the .venv
55
+ run: |
56
+ ./dev-cli.py version
57
+
58
+ - name: 'dev CLI help'
59
+ run: |
60
+ ./dev-cli.py --help
61
+
62
+ - name: 'Run pip-audit'
63
+ run: |
64
+ ./dev-cli.py pip-audit
65
+
66
+ - name: 'Run tests with Python v${{ matrix.python-version }}'
67
+ env:
68
+ PYTHONUNBUFFERED: 1
69
+ PYTHONWARNINGS: always
70
+ run: |
71
+ ./dev-cli.py coverage
72
+
73
+ - name: 'Upload coverage report'
74
+ uses: codecov/codecov-action@main
75
+ # https://github.com/marketplace/actions/codecov
76
+ with:
77
+ # https://docs.codecov.com/docs/codecov-tokens#example-github-actions--official-codecov-action
78
+ token: ${{ secrets.CODECOV_TOKEN }}
79
+ fail_ci_if_error: false
80
+ verbose: true
81
+
@@ -0,0 +1,15 @@
1
+ .*
2
+ *.egg-info
3
+ __pycache__
4
+ /dist/
5
+ /build/
6
+ /coverage.*
7
+ *.orig
8
+
9
+ !.github
10
+ !.run
11
+ !.editorconfig
12
+ !.gitignore
13
+ !.pre-commit-config.yaml
14
+ !.pre-commit-hooks.yaml
15
+ !.gitkeep
@@ -0,0 +1,3 @@
1
+ # Default ignored files
2
+ /shelf/
3
+ /workspace.xml
@@ -0,0 +1,7 @@
1
+ # pre-commit plugin configuration
2
+ # See https://pre-commit.com for more information
3
+ repos:
4
+ - repo: https://github.com/jedie/cli-base-utilities
5
+ rev: v0.27.4
6
+ hooks:
7
+ - id: update-readme-history
@@ -0,0 +1,13 @@
1
+ # https://pre-commit.com/#creating-new-hooks
2
+ - id: update-readme-history
3
+ name: cli-base-utilities
4
+ description: >-
5
+ Update history in README.md from git log.
6
+ entry: "python -m cli_base update-readme-history -v"
7
+ language: python
8
+ language_version: python3
9
+ require_serial: true
10
+ pass_filenames: false
11
+ always_run: true
12
+ verbose: true
13
+ stages: [pre-commit, post-rewrite, pre-push]
@@ -0,0 +1,21 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="true" type="tests" factoryName="Unittests">
3
+ <module name="mposcli" />
4
+ <option name="ENV_FILES" value="" />
5
+ <option name="INTERPRETER_OPTIONS" value="" />
6
+ <option name="PARENT_ENVS" value="true" />
7
+ <option name="SDK_HOME" value="$PROJECT_DIR$/.venv/bin/python3" />
8
+ <option name="SDK_NAME" value="uv (mposcli) (2)" />
9
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/../MicroPythonOS" />
10
+ <option name="IS_MODULE_SDK" value="false" />
11
+ <option name="ADD_CONTENT_ROOTS" value="false" />
12
+ <option name="ADD_SOURCE_ROOTS" value="false" />
13
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
14
+ <option name="RUN_TOOL" value="" />
15
+ <option name="_new_pattern" value="&quot;&quot;" />
16
+ <option name="_new_additionalArguments" value="&quot;&quot;" />
17
+ <option name="_new_target" value="&quot;&quot;" />
18
+ <option name="_new_targetType" value="&quot;PATH&quot;" />
19
+ <method v="2" />
20
+ </configuration>
21
+ </component>
@@ -0,0 +1,27 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="true" type="PythonConfigurationType" factoryName="Python">
3
+ <module name="mposcli" />
4
+ <option name="ENV_FILES" value="" />
5
+ <option name="INTERPRETER_OPTIONS" value="" />
6
+ <option name="PARENT_ENVS" value="true" />
7
+ <envs>
8
+ <env name="PYTHONUNBUFFERED" value="1" />
9
+ </envs>
10
+ <option name="SDK_HOME" value="" />
11
+ <option name="SDK_NAME" value="uv (mposcli) (2)" />
12
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
13
+ <option name="IS_MODULE_SDK" value="false" />
14
+ <option name="ADD_CONTENT_ROOTS" value="false" />
15
+ <option name="ADD_SOURCE_ROOTS" value="false" />
16
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
17
+ <option name="RUN_TOOL" value="false" />
18
+ <option name="SCRIPT_NAME" value="" />
19
+ <option name="PARAMETERS" value="" />
20
+ <option name="SHOW_COMMAND_LINE" value="false" />
21
+ <option name="EMULATE_TERMINAL" value="true" />
22
+ <option name="MODULE_MODE" value="false" />
23
+ <option name="REDIRECT_INPUT" value="false" />
24
+ <option name="INPUT_FILE" value="" />
25
+ <method v="2" />
26
+ </configuration>
27
+ </component>
@@ -0,0 +1,21 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="Unittests **all**" type="tests" factoryName="Unittests">
3
+ <module name="mposcli" />
4
+ <option name="ENV_FILES" value="" />
5
+ <option name="INTERPRETER_OPTIONS" value="" />
6
+ <option name="PARENT_ENVS" value="true" />
7
+ <option name="SDK_HOME" value="$PROJECT_DIR$/.venv/bin/python3" />
8
+ <option name="SDK_NAME" value="uv (mposcli) (2)" />
9
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
10
+ <option name="IS_MODULE_SDK" value="false" />
11
+ <option name="ADD_CONTENT_ROOTS" value="false" />
12
+ <option name="ADD_SOURCE_ROOTS" value="false" />
13
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
14
+ <option name="RUN_TOOL" value="" />
15
+ <option name="_new_pattern" value="&quot;&quot;" />
16
+ <option name="_new_additionalArguments" value="&quot;&quot;" />
17
+ <option name="_new_target" value="&quot;&quot;" />
18
+ <option name="_new_targetType" value="&quot;CUSTOM&quot;" />
19
+ <method v="2" />
20
+ </configuration>
21
+ </component>
@@ -0,0 +1,26 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="cli --help" type="PythonConfigurationType" factoryName="Python">
3
+ <module name="mposcli" />
4
+ <option name="ENV_FILES" value="" />
5
+ <option name="INTERPRETER_OPTIONS" value="" />
6
+ <option name="PARENT_ENVS" value="true" />
7
+ <envs>
8
+ <env name="PYTHONUNBUFFERED" value="1" />
9
+ </envs>
10
+ <option name="SDK_HOME" value="" />
11
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
12
+ <option name="IS_MODULE_SDK" value="true" />
13
+ <option name="ADD_CONTENT_ROOTS" value="false" />
14
+ <option name="ADD_SOURCE_ROOTS" value="false" />
15
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
16
+ <option name="RUN_TOOL" value="false" />
17
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/cli.py" />
18
+ <option name="PARAMETERS" value="" />
19
+ <option name="SHOW_COMMAND_LINE" value="false" />
20
+ <option name="EMULATE_TERMINAL" value="true" />
21
+ <option name="MODULE_MODE" value="false" />
22
+ <option name="REDIRECT_INPUT" value="false" />
23
+ <option name="INPUT_FILE" value="" />
24
+ <method v="2" />
25
+ </configuration>
26
+ </component>
@@ -0,0 +1,26 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="dev-cli --help" type="PythonConfigurationType" factoryName="Python">
3
+ <module name="mposcli" />
4
+ <option name="ENV_FILES" value="" />
5
+ <option name="INTERPRETER_OPTIONS" value="" />
6
+ <option name="PARENT_ENVS" value="true" />
7
+ <envs>
8
+ <env name="PYTHONUNBUFFERED" value="1" />
9
+ </envs>
10
+ <option name="SDK_HOME" value="" />
11
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
12
+ <option name="IS_MODULE_SDK" value="true" />
13
+ <option name="ADD_CONTENT_ROOTS" value="false" />
14
+ <option name="ADD_SOURCE_ROOTS" value="false" />
15
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
16
+ <option name="RUN_TOOL" value="false" />
17
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/dev-cli.py" />
18
+ <option name="PARAMETERS" value="" />
19
+ <option name="SHOW_COMMAND_LINE" value="false" />
20
+ <option name="EMULATE_TERMINAL" value="true" />
21
+ <option name="MODULE_MODE" value="false" />
22
+ <option name="REDIRECT_INPUT" value="false" />
23
+ <option name="INPUT_FILE" value="" />
24
+ <method v="2" />
25
+ </configuration>
26
+ </component>
@@ -0,0 +1,26 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="dev-cli test" type="PythonConfigurationType" factoryName="Python">
3
+ <module name="mposcli" />
4
+ <option name="ENV_FILES" value="" />
5
+ <option name="INTERPRETER_OPTIONS" value="" />
6
+ <option name="PARENT_ENVS" value="true" />
7
+ <envs>
8
+ <env name="PYTHONUNBUFFERED" value="1" />
9
+ </envs>
10
+ <option name="SDK_HOME" value="" />
11
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
12
+ <option name="IS_MODULE_SDK" value="true" />
13
+ <option name="ADD_CONTENT_ROOTS" value="false" />
14
+ <option name="ADD_SOURCE_ROOTS" value="false" />
15
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
16
+ <option name="RUN_TOOL" value="false" />
17
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/dev-cli.py" />
18
+ <option name="PARAMETERS" value="test" />
19
+ <option name="SHOW_COMMAND_LINE" value="false" />
20
+ <option name="EMULATE_TERMINAL" value="true" />
21
+ <option name="MODULE_MODE" value="false" />
22
+ <option name="REDIRECT_INPUT" value="false" />
23
+ <option name="INPUT_FILE" value="" />
24
+ <method v="2" />
25
+ </configuration>
26
+ </component>
@@ -0,0 +1 @@
1
+ *
mposcli-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,178 @@
1
+ Metadata-Version: 2.4
2
+ Name: mposcli
3
+ Version: 0.1.0
4
+ Summary: CLI helper for MicroPythonOS: https://github.com/MicroPythonOS/MicroPythonOS
5
+ Project-URL: Documentation, https://github.com/jedie/mposcli
6
+ Project-URL: Source, https://github.com/jedie/mposcli
7
+ Author-email: Jens Diemer <cookiecutter_templates@jensdiemer.de>
8
+ License: GPL-3.0-or-later
9
+ Requires-Python: >=3.12
10
+ Requires-Dist: bx-py-utils
11
+ Requires-Dist: cli-base-utilities>=0.27.4
12
+ Requires-Dist: rich
13
+ Requires-Dist: tyro
14
+ Description-Content-Type: text/markdown
15
+
16
+ # mposcli
17
+
18
+ [![tests](https://github.com/jedie/mposcli/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/jedie/mposcli/actions/workflows/tests.yml)
19
+ [![codecov](https://codecov.io/github/jedie/mposcli/branch/main/graph/badge.svg)](https://app.codecov.io/github/jedie/mposcli)
20
+ [![mposcli @ PyPi](https://img.shields.io/pypi/v/mposcli?label=mposcli%20%40%20PyPi)](https://pypi.org/project/mposcli/)
21
+ [![Python Versions](https://img.shields.io/pypi/pyversions/mposcli)](https://github.com/jedie/mposcli/blob/main/pyproject.toml)
22
+ [![License GPL-3.0-or-later](https://img.shields.io/pypi/l/mposcli)](https://github.com/jedie/mposcli/blob/main/LICENSE)
23
+
24
+ Experimental CLI helper for MicroPythonOS: https://github.com/MicroPythonOS/MicroPythonOS
25
+
26
+ Main Idea: Install it via pipx (see below) and use `mposcli` command in MicroPythonOS repository path.
27
+
28
+ ## CLI
29
+
30
+ [comment]: <> (✂✂✂ auto generated main help start ✂✂✂)
31
+ ```
32
+ usage: mposcli [-h] {build,run-desktop,update-submodules,version}
33
+
34
+
35
+
36
+ ╭─ options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
37
+ │ -h, --help show this help message and exit │
38
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
39
+ ╭─ subcommands ────────────────────────────────────────────────────────────────────────────────────────────────────────╮
40
+ │ (required) │
41
+ │ • build Build MicroPythonOS by calling: ./scripts/build_mpos.sh <target> see: │
42
+ │ https://docs.micropythonos.com/os-development/ │
43
+ │ • run-desktop Run MicroPythonOS on desktop. see: │
44
+ │ https://docs.micropythonos.com/getting-started/running/#running-on-desktop │
45
+ │ • update-submodules Update MicroPythonOS repository and all submodules see: │
46
+ │ https://docs.micropythonos.com/os-development/linux/#optional-updating-the-code │
47
+ │ • version Print version and exit │
48
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
49
+ ```
50
+ [comment]: <> (✂✂✂ auto generated main help end ✂✂✂)
51
+
52
+
53
+ ## CLI - build
54
+
55
+ [comment]: <> (✂✂✂ auto generated build start ✂✂✂)
56
+ ```
57
+ usage: mposcli build [-h] [--target {esp32,esp32s3,unix,macOS}] [-v]
58
+
59
+ Build MicroPythonOS by calling: ./scripts/build_mpos.sh <target> see: https://docs.micropythonos.com/os-development/
60
+
61
+ ╭─ options ────────────────────────────────────────────────────────────────╮
62
+ │ -h, --help show this help message and exit │
63
+ │ --target {esp32,esp32s3,unix,macOS} │
64
+ │ Target platform to build for. (default: unix) │
65
+ │ -v, --verbosity Verbosity level; e.g.: -v, -vv, -vvv, etc. (repeatable) │
66
+ ╰──────────────────────────────────────────────────────────────────────────╯
67
+ ```
68
+ [comment]: <> (✂✂✂ auto generated build end ✂✂✂)
69
+
70
+
71
+
72
+ ## CLI - run-desktop
73
+
74
+
75
+ [comment]: <> (✂✂✂ auto generated run-desktop start ✂✂✂)
76
+ ```
77
+ usage: mposcli run-desktop [-h] [--heapsize INT] [--script {None}|STR] [--binary {None}|STR] [-v]
78
+
79
+ Run MicroPythonOS on desktop. see: https://docs.micropythonos.com/getting-started/running/#running-on-desktop
80
+
81
+ ╭─ options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
82
+ │ -h, --help show this help message and exit │
83
+ │ --heapsize INT Heap size in MB (default: 8, same as PSRAM on many ESP32-S3 boards) (default: 8) │
84
+ │ --script {None}|STR Script file (.py) or app name to run. If omitted, starts normally. (default: None) │
85
+ │ --binary {None}|STR Optional name of the binary to start. If omitted, shows a file chooser to select one from the │
86
+ │ lvgl_micropython build directory. (default: None) │
87
+ │ -v, --verbosity Verbosity level; e.g.: -v, -vv, -vvv, etc. (repeatable) │
88
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
89
+ ```
90
+ [comment]: <> (✂✂✂ auto generated run-desktop end ✂✂✂)
91
+
92
+
93
+ ## CLI - update-submodules
94
+
95
+
96
+ [comment]: <> (✂✂✂ auto generated update-submodules start ✂✂✂)
97
+ ```
98
+ usage: mposcli update-submodules [-h] [-v]
99
+
100
+ Update MicroPythonOS repository and all submodules see: https://docs.micropythonos.com/os-development/linux/#optional-updating-the-code
101
+
102
+ ╭─ options ────────────────────────────────────────────────────────────────╮
103
+ │ -h, --help show this help message and exit │
104
+ │ -v, --verbosity Verbosity level; e.g.: -v, -vv, -vvv, etc. (repeatable) │
105
+ ╰──────────────────────────────────────────────────────────────────────────╯
106
+ ```
107
+ [comment]: <> (✂✂✂ auto generated update-submodules end ✂✂✂)
108
+
109
+
110
+
111
+
112
+
113
+
114
+ ## start development
115
+
116
+ At least `uv` is needed. Install e.g.: via pipx:
117
+ ```bash
118
+ apt-get install pipx
119
+ pipx install uv
120
+ ```
121
+
122
+ Clone the project and just start the CLI help commands.
123
+ A virtual environment will be created/updated automatically.
124
+
125
+ ```bash
126
+ ~$ git clone https://github.com/jedie/mposcli.git
127
+ ~$ cd mposcli
128
+ ~/mposcli$ ./cli.py --help
129
+ ~/mposcli$ ./dev-cli.py --help
130
+ ```
131
+
132
+ [comment]: <> (✂✂✂ auto generated dev help start ✂✂✂)
133
+ ```
134
+ usage: ./dev-cli.py [-h] {coverage,install,lint,mypy,nox,pip-audit,publish,shell-completion,test,update,update-readme-history,update-test-snapshot-files,version}
135
+
136
+
137
+
138
+ ╭─ options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
139
+ │ -h, --help show this help message and exit │
140
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
141
+ ╭─ subcommands ────────────────────────────────────────────────────────────────────────────────────────────────────────╮
142
+ │ (required) │
143
+ │ • coverage Run tests and show coverage report. │
144
+ │ • install Install requirements and 'mposcli' via pip as editable. │
145
+ │ • lint Check/fix code style by run: "ruff check --fix" │
146
+ │ • mypy Run Mypy (configured in pyproject.toml) │
147
+ │ • nox Run nox │
148
+ │ • pip-audit Run pip-audit check against current requirements files │
149
+ │ • publish Build and upload this project to PyPi │
150
+ │ • shell-completion │
151
+ │ Setup shell completion for this CLI (Currently only for bash shell) │
152
+ │ • test Run unittests │
153
+ │ • update Update dependencies (uv.lock) and git pre-commit hooks │
154
+ │ • update-readme-history │
155
+ │ Update project history base on git commits/tags in README.md Will be exited with 1 if the README.md │
156
+ │ was updated otherwise with 0. │
157
+ │ │
158
+ │ Also, callable via e.g.: │
159
+ │ python -m cli_base update-readme-history -v │
160
+ │ • update-test-snapshot-files │
161
+ │ Update all test snapshot files (by remove and recreate all snapshot files) │
162
+ │ • version Print version and exit │
163
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
164
+ ```
165
+ [comment]: <> (✂✂✂ auto generated dev help end ✂✂✂)
166
+
167
+
168
+ ## History
169
+
170
+ [comment]: <> (✂✂✂ auto generated history start ✂✂✂)
171
+
172
+ * [**dev**](https://github.com/jedie/mposcli/compare/1695026...main)
173
+ * 2026-02-16 - Add "update-submodules" command
174
+ * 2026-02-16 - Add "build" command
175
+ * 2026-02-16 - CLI command: "run-desktop"
176
+ * 2026-02-16 - first commit
177
+
178
+ [comment]: <> (✂✂✂ auto generated history end ✂✂✂)