sima-cli 2.1.10__tar.gz → 2.1.12__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.
- {sima_cli-2.1.10/sima_cli.egg-info → sima_cli-2.1.12}/PKG-INFO +56 -16
- {sima_cli-2.1.10 → sima_cli-2.1.12}/README.md +53 -13
- {sima_cli-2.1.10 → sima_cli-2.1.12}/pyproject.toml +2 -2
- {sima_cli-2.1.10 → sima_cli-2.1.12}/setup.cfg +1 -1
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/__version__.py +1 -1
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/app_zoo/commands.py +23 -1
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/auth/auth0.py +14 -9
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/auth/devportal.py +12 -4
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/cli.py +26 -12
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/data/resources_public.yaml +2 -2
- sima_cli-2.1.12/sima_cli/install/compatibility.py +213 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/metadata_installer.py +180 -54
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/metadata_validator.py +80 -6
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/package_builder.py +12 -1
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/registry.py +65 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/commands.py +184 -3
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/install.py +87 -12
- sima_cli-2.1.12/sima_cli/sdk/linux_devkit_network.py +3 -0
- sima_cli-2.1.12/sima_cli/sdk/linux_shared_network.py +1425 -0
- sima_cli-2.1.12/sima_cli/sdk/network_doctor.py +920 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/preinstall.py +80 -42
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/utils.py +46 -21
- sima_cli-2.1.12/sima_cli/utils/deprecation.py +8 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/pkg_update_check.py +82 -8
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/vulcan/commands.py +4 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12/sima_cli.egg-info}/PKG-INFO +56 -16
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli.egg-info/SOURCES.txt +10 -1
- sima_cli-2.1.12/tests/unit/test_appzoo_commands.py +37 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_auth.py +32 -3
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_auth0.py +35 -0
- sima_cli-2.1.12/tests/unit/test_deprecation.py +29 -0
- sima_cli-2.1.12/tests/unit/test_generate_cli_markdown_docs.py +90 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_install_stub.py +81 -2
- sima_cli-2.1.12/tests/unit/test_metadata_installer.py +572 -0
- sima_cli-2.1.12/tests/unit/test_metadata_validator.py +114 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_package_builder.py +132 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_pkg_update_check.py +63 -7
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_sdk_image_detection.py +409 -20
- sima_cli-2.1.12/tests/unit/test_sdk_linux_shared_network.py +402 -0
- sima_cli-2.1.12/tests/unit/test_sdk_network_doctor.py +282 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_sdk_preinstall.py +103 -4
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_vulcan.py +114 -0
- sima_cli-2.1.10/sima_cli/auth/oauth.py +0 -203
- sima_cli-2.1.10/sima_cli/sdk/linux_shared_network.py +0 -579
- sima_cli-2.1.10/tests/unit/test_metadata_installer.py +0 -207
- {sima_cli-2.1.10 → sima_cli-2.1.12}/LICENSE +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/MANIFEST.in +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/requirements.txt +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/setup.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/__main__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/app_zoo/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/app_zoo/app.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/auth/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/auth/login.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/data/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/data/resources_internal.yaml +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/deploy_only/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/deploy_only/device/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/deploy_only/device/commands.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/deploy_only/mpk/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/deploy_only/mpk/commands.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/discover/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/discover/discover.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/discover/linuxll.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/download/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/download/downloader.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/github_assets.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/hostdriver.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/metadata_info.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/optiview.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/palette.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/mla/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/mla/meminfo.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/model_zoo/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/model_zoo/model.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/network/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/network/network.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/playbooks/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/playbooks/commands.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/playbooks/manager.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/cmdexec.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/config.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/neat.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/requirements.json +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/script.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/stop.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/uninstall.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/serial/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/serial/serial.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/storage/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/storage/nvme.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/storage/sdcard.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/bmaptool.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/bootimg.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/cleanlog.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/elxr.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/local.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/netboot.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/query.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/remote.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/updater.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/upgrade/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/upgrade/selfupdate.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/api_common.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/artifactory.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/common.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/config.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/config_loader.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/container_registries.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/device_api.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/disk.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/docker.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/env.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/errors.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/mpk_api.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/net.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/network.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/pcie.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/serializers.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/services.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/tag.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/vulcan/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/vulcan/artifacts.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli.egg-info/dependency_links.txt +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli.egg-info/entry_points.txt +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli.egg-info/requires.txt +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli.egg-info/top_level.txt +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/e2e/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/__init__.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_app_zoo.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_cli.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_cli_stdio.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_cli_update.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_cli_update_rerun.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_docker_utils.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_download.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_elxr_update.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_firmware.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_model_zoo.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_netboot.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_sdk_uninstall.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_selfupdate.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_skills_commands.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_skills_manager.py +0 -0
- {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_utils.py +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sima-cli
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.12
|
|
4
4
|
Summary: CLI tool for SiMa Developer Portal to download models, firmware, and apps.
|
|
5
|
-
Home-page: https://
|
|
5
|
+
Home-page: https://community.sima.ai/
|
|
6
6
|
Author: SiMa.ai
|
|
7
7
|
Author-email: "Sima.ai" <support@sima.ai>
|
|
8
8
|
License: MIT
|
|
9
|
-
Project-URL: Homepage, https://
|
|
9
|
+
Project-URL: Homepage, https://community.sima.ai/
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
11
|
Classifier: Operating System :: OS Independent
|
|
12
12
|
Classifier: Development Status :: 3 - Alpha
|
|
@@ -41,12 +41,12 @@ Dynamic: requires-python
|
|
|
41
41
|
[](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
|
|
42
42
|
[](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
|
|
43
43
|
[](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
|
|
44
|
-
[&label=e2e%20macOS&logo=apple&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
|
|
45
45
|
[&label=e2e%20Windows&logo=windows&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
|
|
46
46
|
[&label=e2e%20Ubuntu%20x86&logo=ubuntu&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
|
|
47
47
|
[&label=e2e%20Ubuntu%20ARM64&logo=ubuntu&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
|
|
48
48
|
|
|
49
|
-
`sima-cli` is the command-line interface for SiMa developer workflows.
|
|
49
|
+
`sima-cli` is the command-line interface for SiMa developer workflows. Use it to authenticate, set up SDK containers, update DevKits, install packages, download artifacts, and access Model Zoo and App Zoo content.
|
|
50
50
|
|
|
51
51
|
## Documentation
|
|
52
52
|
|
|
@@ -59,16 +59,45 @@ Use the generated docs for detailed options, arguments, subcommands, and full he
|
|
|
59
59
|
|
|
60
60
|
## Installation
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
For most users, install the latest official release from the public installer URL for your operating system.
|
|
63
|
+
|
|
64
|
+
### Linux, macOS, and DevKit
|
|
65
|
+
|
|
66
|
+
Run the installer from a terminal:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
curl -fsSL https://artifacts.neat.sima.ai/sima-cli/linux-mac.sh | bash
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
After installation, open a new terminal or reload your shell profile, then verify the install:
|
|
63
73
|
|
|
64
74
|
```bash
|
|
65
|
-
|
|
66
|
-
|
|
75
|
+
sima-cli --version
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Windows PowerShell
|
|
79
|
+
|
|
80
|
+
Download and run the Windows installer from PowerShell:
|
|
81
|
+
|
|
82
|
+
```powershell
|
|
83
|
+
Invoke-WebRequest https://artifacts.neat.sima.ai/sima-cli/windows.bat -OutFile windows.bat
|
|
84
|
+
.\windows.bat
|
|
67
85
|
```
|
|
68
86
|
|
|
69
|
-
|
|
87
|
+
After installation, open a new Command Prompt or PowerShell window, then verify the install:
|
|
88
|
+
|
|
89
|
+
```powershell
|
|
90
|
+
sima-cli --version
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Advanced: choose a branch or release
|
|
94
|
+
|
|
95
|
+
Use `install.py` only when you need to choose a specific tested branch build or release instead of installing the latest official PyPI release.
|
|
96
|
+
|
|
97
|
+
On Linux, macOS, or DevKit:
|
|
70
98
|
|
|
71
99
|
```bash
|
|
100
|
+
curl -fsSL https://artifacts.neat.sima.ai/sima-cli/install.py -o sima-cli-install.py
|
|
72
101
|
python3 sima-cli-install.py
|
|
73
102
|
```
|
|
74
103
|
|
|
@@ -82,10 +111,19 @@ python3 sima-cli-install.py v2.1.6 latest
|
|
|
82
111
|
On Windows PowerShell:
|
|
83
112
|
|
|
84
113
|
```powershell
|
|
85
|
-
Invoke-WebRequest https://artifacts.
|
|
86
|
-
python .\sima-cli-install.py
|
|
114
|
+
Invoke-WebRequest https://artifacts.neat.sima.ai/sima-cli/install.py -OutFile sima-cli-install.py
|
|
115
|
+
python .\sima-cli-install.py
|
|
87
116
|
```
|
|
88
117
|
|
|
118
|
+
To install a specific branch or release:
|
|
119
|
+
|
|
120
|
+
```powershell
|
|
121
|
+
python .\sima-cli-install.py feature/my-branch latest
|
|
122
|
+
python .\sima-cli-install.py v2.1.6 latest
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Release tags such as `v2.1.6` install from public PyPI. Branch names install tested artifacts from `artifacts.neat.sima.ai/sima-cli`.
|
|
126
|
+
|
|
89
127
|
Public PyPI releases can also be installed directly:
|
|
90
128
|
|
|
91
129
|
```bash
|
|
@@ -96,15 +134,15 @@ pip install sima-cli
|
|
|
96
134
|
|
|
97
135
|
```bash
|
|
98
136
|
sima-cli --help
|
|
137
|
+
sima-cli --version
|
|
99
138
|
sima-cli login
|
|
100
|
-
sima-cli version
|
|
101
139
|
```
|
|
102
140
|
|
|
103
141
|
Use `--internal` or `SIMA_CLI_INTERNAL=1` when internal Artifactory resources are required:
|
|
104
142
|
|
|
105
143
|
```bash
|
|
106
144
|
sima-cli --internal login
|
|
107
|
-
SIMA_CLI_INTERNAL=1 sima-cli install -v 2.1.
|
|
145
|
+
SIMA_CLI_INTERNAL=1 sima-cli install -v 2.1.2 tools/model-compiler/amd64
|
|
108
146
|
```
|
|
109
147
|
|
|
110
148
|
## Common Workflows
|
|
@@ -116,10 +154,13 @@ sima-cli sdk setup
|
|
|
116
154
|
sima-cli sdk neat
|
|
117
155
|
```
|
|
118
156
|
|
|
119
|
-
Install
|
|
157
|
+
Install Model Compiler from package metadata:
|
|
120
158
|
|
|
121
159
|
```bash
|
|
122
|
-
|
|
160
|
+
# amd64 host
|
|
161
|
+
sima-cli install -v 2.1.2 tools/model-compiler/amd64
|
|
162
|
+
# arm64 host
|
|
163
|
+
sima-cli install -v 2.1.2 tools/model-compiler/arm64
|
|
123
164
|
```
|
|
124
165
|
|
|
125
166
|
Download or install Neat artifacts:
|
|
@@ -165,7 +206,6 @@ sima-cli appzoo list
|
|
|
165
206
|
| `sima-cli selfupdate` | Update sima-cli manually. | [docs](docs/sima-cli/commands/sima-cli-selfupdate.md) |
|
|
166
207
|
| `sima-cli serial` | Connect to the UART serial console of a DevKit. | [docs](docs/sima-cli/commands/sima-cli-serial.md) |
|
|
167
208
|
| `sima-cli update` | Update a SiMa DevKit or remote device. | [docs](docs/sima-cli/commands/sima-cli-update.md) |
|
|
168
|
-
| `sima-cli version` | Show the installed CLI version. | [docs](docs/sima-cli/commands/sima-cli-version.md) |
|
|
169
209
|
|
|
170
210
|
## Development
|
|
171
211
|
|
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
[](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
|
|
8
8
|
[](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
|
|
9
9
|
[](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
|
|
10
|
-
[&label=e2e%20macOS&logo=apple&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
|
|
11
11
|
[&label=e2e%20Windows&logo=windows&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
|
|
12
12
|
[&label=e2e%20Ubuntu%20x86&logo=ubuntu&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
|
|
13
13
|
[&label=e2e%20Ubuntu%20ARM64&logo=ubuntu&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
|
|
14
14
|
|
|
15
|
-
`sima-cli` is the command-line interface for SiMa developer workflows.
|
|
15
|
+
`sima-cli` is the command-line interface for SiMa developer workflows. Use it to authenticate, set up SDK containers, update DevKits, install packages, download artifacts, and access Model Zoo and App Zoo content.
|
|
16
16
|
|
|
17
17
|
## Documentation
|
|
18
18
|
|
|
@@ -25,16 +25,45 @@ Use the generated docs for detailed options, arguments, subcommands, and full he
|
|
|
25
25
|
|
|
26
26
|
## Installation
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
For most users, install the latest official release from the public installer URL for your operating system.
|
|
29
|
+
|
|
30
|
+
### Linux, macOS, and DevKit
|
|
31
|
+
|
|
32
|
+
Run the installer from a terminal:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
curl -fsSL https://artifacts.neat.sima.ai/sima-cli/linux-mac.sh | bash
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
After installation, open a new terminal or reload your shell profile, then verify the install:
|
|
29
39
|
|
|
30
40
|
```bash
|
|
31
|
-
|
|
32
|
-
|
|
41
|
+
sima-cli --version
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Windows PowerShell
|
|
45
|
+
|
|
46
|
+
Download and run the Windows installer from PowerShell:
|
|
47
|
+
|
|
48
|
+
```powershell
|
|
49
|
+
Invoke-WebRequest https://artifacts.neat.sima.ai/sima-cli/windows.bat -OutFile windows.bat
|
|
50
|
+
.\windows.bat
|
|
33
51
|
```
|
|
34
52
|
|
|
35
|
-
|
|
53
|
+
After installation, open a new Command Prompt or PowerShell window, then verify the install:
|
|
54
|
+
|
|
55
|
+
```powershell
|
|
56
|
+
sima-cli --version
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Advanced: choose a branch or release
|
|
60
|
+
|
|
61
|
+
Use `install.py` only when you need to choose a specific tested branch build or release instead of installing the latest official PyPI release.
|
|
62
|
+
|
|
63
|
+
On Linux, macOS, or DevKit:
|
|
36
64
|
|
|
37
65
|
```bash
|
|
66
|
+
curl -fsSL https://artifacts.neat.sima.ai/sima-cli/install.py -o sima-cli-install.py
|
|
38
67
|
python3 sima-cli-install.py
|
|
39
68
|
```
|
|
40
69
|
|
|
@@ -48,10 +77,19 @@ python3 sima-cli-install.py v2.1.6 latest
|
|
|
48
77
|
On Windows PowerShell:
|
|
49
78
|
|
|
50
79
|
```powershell
|
|
51
|
-
Invoke-WebRequest https://artifacts.
|
|
52
|
-
python .\sima-cli-install.py
|
|
80
|
+
Invoke-WebRequest https://artifacts.neat.sima.ai/sima-cli/install.py -OutFile sima-cli-install.py
|
|
81
|
+
python .\sima-cli-install.py
|
|
53
82
|
```
|
|
54
83
|
|
|
84
|
+
To install a specific branch or release:
|
|
85
|
+
|
|
86
|
+
```powershell
|
|
87
|
+
python .\sima-cli-install.py feature/my-branch latest
|
|
88
|
+
python .\sima-cli-install.py v2.1.6 latest
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Release tags such as `v2.1.6` install from public PyPI. Branch names install tested artifacts from `artifacts.neat.sima.ai/sima-cli`.
|
|
92
|
+
|
|
55
93
|
Public PyPI releases can also be installed directly:
|
|
56
94
|
|
|
57
95
|
```bash
|
|
@@ -62,15 +100,15 @@ pip install sima-cli
|
|
|
62
100
|
|
|
63
101
|
```bash
|
|
64
102
|
sima-cli --help
|
|
103
|
+
sima-cli --version
|
|
65
104
|
sima-cli login
|
|
66
|
-
sima-cli version
|
|
67
105
|
```
|
|
68
106
|
|
|
69
107
|
Use `--internal` or `SIMA_CLI_INTERNAL=1` when internal Artifactory resources are required:
|
|
70
108
|
|
|
71
109
|
```bash
|
|
72
110
|
sima-cli --internal login
|
|
73
|
-
SIMA_CLI_INTERNAL=1 sima-cli install -v 2.1.
|
|
111
|
+
SIMA_CLI_INTERNAL=1 sima-cli install -v 2.1.2 tools/model-compiler/amd64
|
|
74
112
|
```
|
|
75
113
|
|
|
76
114
|
## Common Workflows
|
|
@@ -82,10 +120,13 @@ sima-cli sdk setup
|
|
|
82
120
|
sima-cli sdk neat
|
|
83
121
|
```
|
|
84
122
|
|
|
85
|
-
Install
|
|
123
|
+
Install Model Compiler from package metadata:
|
|
86
124
|
|
|
87
125
|
```bash
|
|
88
|
-
|
|
126
|
+
# amd64 host
|
|
127
|
+
sima-cli install -v 2.1.2 tools/model-compiler/amd64
|
|
128
|
+
# arm64 host
|
|
129
|
+
sima-cli install -v 2.1.2 tools/model-compiler/arm64
|
|
89
130
|
```
|
|
90
131
|
|
|
91
132
|
Download or install Neat artifacts:
|
|
@@ -131,7 +172,6 @@ sima-cli appzoo list
|
|
|
131
172
|
| `sima-cli selfupdate` | Update sima-cli manually. | [docs](docs/sima-cli/commands/sima-cli-selfupdate.md) |
|
|
132
173
|
| `sima-cli serial` | Connect to the UART serial console of a DevKit. | [docs](docs/sima-cli/commands/sima-cli-serial.md) |
|
|
133
174
|
| `sima-cli update` | Update a SiMa DevKit or remote device. | [docs](docs/sima-cli/commands/sima-cli-update.md) |
|
|
134
|
-
| `sima-cli version` | Show the installed CLI version. | [docs](docs/sima-cli/commands/sima-cli-version.md) |
|
|
135
175
|
|
|
136
176
|
## Development
|
|
137
177
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "sima-cli"
|
|
7
|
-
version = "2.1.
|
|
7
|
+
version = "2.1.12"
|
|
8
8
|
description = "CLI tool for SiMa Developer Portal to download models, firmware, and apps."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.8"
|
|
@@ -37,7 +37,7 @@ dependencies = [
|
|
|
37
37
|
]
|
|
38
38
|
|
|
39
39
|
[project.urls]
|
|
40
|
-
Homepage = "https://
|
|
40
|
+
Homepage = "https://community.sima.ai/"
|
|
41
41
|
|
|
42
42
|
[project.scripts]
|
|
43
43
|
sima-cli = "sima_cli.cli:main"
|
|
@@ -5,7 +5,7 @@ author_email = support@sima.ai
|
|
|
5
5
|
description = CLI tool for SiMa Developer Portal to download models, firmware, and apps.
|
|
6
6
|
long_description = file: README.md
|
|
7
7
|
long_description_content_type = text/markdown
|
|
8
|
-
url = https://
|
|
8
|
+
url = https://community.sima.ai/
|
|
9
9
|
license = MIT
|
|
10
10
|
classifiers =
|
|
11
11
|
Programming Language :: Python :: 3
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# sima_cli/__version__.py
|
|
2
|
-
__version__ = "2.1.
|
|
2
|
+
__version__ = "2.1.12"
|
|
@@ -1,9 +1,31 @@
|
|
|
1
1
|
|
|
2
2
|
import click
|
|
3
|
+
from rich.console import Console
|
|
4
|
+
from rich.panel import Panel
|
|
3
5
|
|
|
4
6
|
from sima_cli.app_zoo.app import list_apps, download_app, describe_app, clone_apps
|
|
7
|
+
from sima_cli.utils.deprecation import should_show_post_neat_ga_deprecation_notice
|
|
5
8
|
from sima_cli.utils.tag import resolve_version
|
|
6
9
|
|
|
10
|
+
console = Console()
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def show_appzoo_deprecation_notice() -> None:
|
|
14
|
+
if not should_show_post_neat_ga_deprecation_notice():
|
|
15
|
+
return
|
|
16
|
+
|
|
17
|
+
console.print(
|
|
18
|
+
Panel(
|
|
19
|
+
"[yellow]App Zoo is compatible with legacy Palette SDKs and will be deprecated soon.[/yellow]\n\n"
|
|
20
|
+
"Use https://developer.sima.ai/examples to access current example applications.",
|
|
21
|
+
title="App Zoo Deprecation Notice",
|
|
22
|
+
border_style="yellow",
|
|
23
|
+
style="yellow",
|
|
24
|
+
expand=False,
|
|
25
|
+
)
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
|
|
7
29
|
@click.group()
|
|
8
30
|
@click.option(
|
|
9
31
|
"-v", "--ver", "--version",
|
|
@@ -15,6 +37,7 @@ from sima_cli.utils.tag import resolve_version
|
|
|
15
37
|
def appzoo(ctx, ver):
|
|
16
38
|
"""Access sample apps from the App Zoo."""
|
|
17
39
|
ctx.ensure_object(dict)
|
|
40
|
+
show_appzoo_deprecation_notice()
|
|
18
41
|
internal = ctx.obj.get("internal", False)
|
|
19
42
|
if not internal:
|
|
20
43
|
ver = resolve_version(ver)
|
|
@@ -71,4 +94,3 @@ def register_appzoo_commands(main):
|
|
|
71
94
|
register_appzoo_commands(main)
|
|
72
95
|
"""
|
|
73
96
|
main.add_command(appzoo)
|
|
74
|
-
|
|
@@ -32,8 +32,8 @@ USERINFO_AUDIENCE = PROD_USERINFO_AUDIENCE
|
|
|
32
32
|
LATEST_EULA_GRANT = "LatestEULA"
|
|
33
33
|
DOC_ACCESS_GRANT = "DocsAccess"
|
|
34
34
|
DOC_ACCESS_GRANT_ALIASES = (DOC_ACCESS_GRANT, "DocAccess")
|
|
35
|
-
PROD_DISCOURSE_URL = "https://
|
|
36
|
-
STAGING_DISCOURSE_URL = "https://
|
|
35
|
+
PROD_DISCOURSE_URL = "https://community.sima.ai/login"
|
|
36
|
+
STAGING_DISCOURSE_URL = "https://community-dev.sima.ai/login"
|
|
37
37
|
|
|
38
38
|
# ─────────────────────────────────────────────
|
|
39
39
|
# Configuration loader
|
|
@@ -286,7 +286,7 @@ def request_device_code(auth_cfg):
|
|
|
286
286
|
|
|
287
287
|
def poll_for_token(auth_cfg, device_code, interval):
|
|
288
288
|
"""Step 2: Poll for user authorization."""
|
|
289
|
-
print(f"⏳ Waiting for
|
|
289
|
+
print(f"⏳ Waiting for authorization. Complete the browser login above; checking every {interval} seconds.")
|
|
290
290
|
while True:
|
|
291
291
|
time.sleep(interval)
|
|
292
292
|
resp = requests.post(
|
|
@@ -333,16 +333,21 @@ def login_auth0(auth_cfg):
|
|
|
333
333
|
highlighted_url = click.style(verify_complete, fg="cyan", bold=True)
|
|
334
334
|
highlighted_code = click.style(user_code, fg="yellow", bold=True)
|
|
335
335
|
|
|
336
|
-
print(
|
|
336
|
+
print("🔐 sima-cli needs you to authorize this device login.")
|
|
337
|
+
print(f"⏰ Login link/code expires in {expires_in} minutes.\n")
|
|
337
338
|
|
|
338
339
|
# Auto-open browser if possible
|
|
339
|
-
if is_browser_available() and verify_complete:
|
|
340
|
+
if is_browser_available() and verify_complete and webbrowser.open(verify_complete):
|
|
340
341
|
print(f"🌐 Opening browser for login → {highlighted_url}")
|
|
341
|
-
|
|
342
|
+
print("After signing in, return to this terminal. sima-cli will continue automatically.")
|
|
342
343
|
else:
|
|
343
|
-
print("
|
|
344
|
-
print(
|
|
345
|
-
print(
|
|
344
|
+
print("⚠️ A browser could not be opened from this environment.")
|
|
345
|
+
print("Action required:")
|
|
346
|
+
print(" 1. Open this URL in a browser on your workstation:")
|
|
347
|
+
print(f" {highlighted_url}")
|
|
348
|
+
print(" 2. Sign in with your SiMa Developer Portal account.")
|
|
349
|
+
print(f" 3. If prompted, confirm this code: {highlighted_code}")
|
|
350
|
+
print(" 4. Return to this terminal. sima-cli will continue automatically after authorization.")
|
|
346
351
|
|
|
347
352
|
return poll_for_token(auth_cfg, data["device_code"], data["interval"])
|
|
348
353
|
|
|
@@ -40,15 +40,14 @@ HOST_DOCKER_CONTEXTS_DIR = os.path.join(os.path.expanduser("~"), ".docker", "con
|
|
|
40
40
|
# Detect staging or production environment
|
|
41
41
|
is_staging = False
|
|
42
42
|
if os.getenv("USE_STAGING_DEV_PORTAL", "false").lower() in ("1", "true", "yes"):
|
|
43
|
-
DEV_PORTAL = "https://
|
|
43
|
+
DEV_PORTAL = "https://community-dev.sima.ai"
|
|
44
44
|
DOCS_PORTAL = "https://docs-dev.sima.ai"
|
|
45
45
|
is_staging = True
|
|
46
46
|
else:
|
|
47
|
-
DEV_PORTAL = "https://
|
|
47
|
+
DEV_PORTAL = "https://community.sima.ai"
|
|
48
48
|
DOCS_PORTAL = "https://docs.sima.ai"
|
|
49
49
|
|
|
50
50
|
# Derived endpoints
|
|
51
|
-
LOGIN_URL = f"{DEV_PORTAL}/session"
|
|
52
51
|
DEV_PORTAL_LOGIN_URL = f"{DEV_PORTAL}/login"
|
|
53
52
|
DUMMY_CHECK_URL = f"{DOCS_PORTAL}/pkg_downloads/validation"
|
|
54
53
|
ACCESS_REQUEST_FORM_URL = "https://www2.sima.ai/l/1041271/2025-05-05/37bndg"
|
|
@@ -70,8 +69,17 @@ HEADERS = {
|
|
|
70
69
|
|
|
71
70
|
|
|
72
71
|
def _prompt_manual_developer_portal_login(confirm_completion: bool = False) -> bool:
|
|
72
|
+
next_step = (
|
|
73
|
+
"After signing in and accepting the EULA, return here and confirm when prompted."
|
|
74
|
+
if confirm_completion
|
|
75
|
+
else "After signing in and accepting the EULA, rerun the command that required authentication."
|
|
76
|
+
)
|
|
73
77
|
click.secho(
|
|
74
|
-
|
|
78
|
+
"\nA browser could not be opened from this environment.\n"
|
|
79
|
+
"Open the following URL in a browser on your workstation to authenticate "
|
|
80
|
+
"with the SiMa Developer Portal and accept the EULA if prompted:\n\n"
|
|
81
|
+
f"{DEV_PORTAL_LOGIN_URL}\n\n"
|
|
82
|
+
f"{next_step}\n",
|
|
75
83
|
fg="green",
|
|
76
84
|
)
|
|
77
85
|
if confirm_completion:
|
|
@@ -82,6 +82,7 @@ def _rerun_current_command() -> None:
|
|
|
82
82
|
# Entry point for the CLI tool using Click's command group decorator
|
|
83
83
|
@click.group(context_settings=dict(help_option_names=["-h", "--help", "-?"], max_content_width=120))
|
|
84
84
|
@click.option('-i', '--internal', is_flag=True, help="Use internal Artifactory resources, Authorized Sima employees only")
|
|
85
|
+
@click.version_option(version=f"{__version__}", message="SiMa CLI version: %(version)s")
|
|
85
86
|
@click.pass_context
|
|
86
87
|
def main(ctx, internal):
|
|
87
88
|
"""
|
|
@@ -143,14 +144,6 @@ def login(ctx):
|
|
|
143
144
|
internal = ctx.obj.get("internal", False)
|
|
144
145
|
perform_login.login("internal" if internal else "external")
|
|
145
146
|
|
|
146
|
-
# ----------------------
|
|
147
|
-
# Version Command
|
|
148
|
-
# ----------------------
|
|
149
|
-
@main.command(name="version")
|
|
150
|
-
def version_cmd():
|
|
151
|
-
"""Show the version of the CLI tool."""
|
|
152
|
-
click.echo(f"SiMa CLI version: {__version__}")
|
|
153
|
-
|
|
154
147
|
# ----------------------
|
|
155
148
|
# Logout Command
|
|
156
149
|
# ----------------------
|
|
@@ -586,7 +579,7 @@ ALL_COMPONENTS = SDK_DEPENDENT_COMPONENTS | SDK_INDEPENDENT_COMPONENTS
|
|
|
586
579
|
default=".",
|
|
587
580
|
show_default=True,
|
|
588
581
|
type=click.Path(file_okay=False, dir_okay=True, path_type=str),
|
|
589
|
-
help="Directory where
|
|
582
|
+
help="Directory where package resources are downloaded and installed.",
|
|
590
583
|
)
|
|
591
584
|
@click.option("--json", "json_output", is_flag=True, help="With --neat or --vulcan, print resolved metadata URL and exit.")
|
|
592
585
|
@click.option(
|
|
@@ -662,6 +655,7 @@ def install_cmd(
|
|
|
662
655
|
install_dir=install_dir,
|
|
663
656
|
force=force,
|
|
664
657
|
json_output=json_output,
|
|
658
|
+
command_name="sima-cli install",
|
|
665
659
|
)
|
|
666
660
|
return None
|
|
667
661
|
|
|
@@ -670,7 +664,13 @@ def install_cmd(
|
|
|
670
664
|
if component:
|
|
671
665
|
click.echo(f"⚠️ Component '{component}' is ignored when using --metadata. Proceeding with metadata-based installation.")
|
|
672
666
|
click.echo(f"🔧 Installing generic component from metadata URL: {mirror}")
|
|
673
|
-
install_from_metadata(
|
|
667
|
+
install_from_metadata(
|
|
668
|
+
metadata_url=mirror,
|
|
669
|
+
internal=internal,
|
|
670
|
+
install_dir=install_dir,
|
|
671
|
+
force=force,
|
|
672
|
+
command_name="sima-cli install",
|
|
673
|
+
)
|
|
674
674
|
return None
|
|
675
675
|
|
|
676
676
|
# No component and no metadata: error
|
|
@@ -680,7 +680,13 @@ def install_cmd(
|
|
|
680
680
|
|
|
681
681
|
# if user specified gh: as component, treat it the same as -m
|
|
682
682
|
if component.startswith("gh:"):
|
|
683
|
-
install_from_metadata(
|
|
683
|
+
install_from_metadata(
|
|
684
|
+
metadata_url=component,
|
|
685
|
+
internal=False,
|
|
686
|
+
install_dir=install_dir,
|
|
687
|
+
force=force,
|
|
688
|
+
command_name="sima-cli install",
|
|
689
|
+
)
|
|
684
690
|
return None
|
|
685
691
|
|
|
686
692
|
# if the user specified cr: or ghcr: as component, install from container registry
|
|
@@ -714,8 +720,16 @@ def install_cmd(
|
|
|
714
720
|
try:
|
|
715
721
|
metadata_url = metadata_resolver(component, version, tag)
|
|
716
722
|
click.echo(f"🔧 Installing '{component}' from resolved metadata: {metadata_url}")
|
|
717
|
-
if install_from_metadata(
|
|
723
|
+
if install_from_metadata(
|
|
724
|
+
metadata_url=metadata_url,
|
|
725
|
+
internal=internal,
|
|
726
|
+
install_dir=install_dir,
|
|
727
|
+
force=force,
|
|
728
|
+
command_name="sima-cli install",
|
|
729
|
+
):
|
|
718
730
|
click.echo("✅ Installation complete.")
|
|
731
|
+
except click.ClickException:
|
|
732
|
+
raise
|
|
719
733
|
except Exception as e:
|
|
720
734
|
click.echo(f"❌ Failed to resolve metadata for component '{component}': {e}")
|
|
721
735
|
ctx.exit(1)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
artifactory:
|
|
2
|
-
url: "https://
|
|
2
|
+
url: "https://community.sima.ai"
|
|
3
3
|
|
|
4
4
|
auth:
|
|
5
5
|
auth_url: "/login"
|
|
@@ -18,4 +18,4 @@ auth-dev:
|
|
|
18
18
|
client-id: Rjrv1TXE5VWjMmCmWyT6OmLYEN1K5AIS
|
|
19
19
|
|
|
20
20
|
download:
|
|
21
|
-
download_url: "https://docs.sima.ai/pkg_downloads/"
|
|
21
|
+
download_url: "https://docs.sima.ai/pkg_downloads/"
|