| Name | smpclient JSON |
| Version |
5.1.1
JSON |
| download |
| home_page | None |
| Summary | Simple Management Protocol (SMP) Client for remotely managing MCU firmware |
| upload_time | 2025-10-12 21:03:25 |
| maintainer | None |
| docs_url | None |
| author | JP Hutchins |
| requires_python | <4,>=3.9 |
| license | None |
| keywords |
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
|
# Simple Management Protocol (SMP) Client
`smpclient` implements the transport layer of the Simple Management Protocol. This library can be
used as a dependency in applications that use SMP over **serial (UART or USB)**, **Bluetooth (BLE)**,
or **UDP** connections. Some abstractions are provided for common routines like upgrading device
firmware.
If you don't need a library with the transport layer implemented, then you might prefer to use
[smp](https://github.com/JPHutchins/smp) instead. The SMP specification can be found
[here](https://docs.zephyrproject.org/latest/services/device_mgmt/smp_protocol.html).
If you'd like an SMP CLI application instead of a library, then you should try
[smpmgr](https://github.com/intercreate/smpmgr).
## Install
`smpclient` is [distributed by PyPI](https://pypi.org/project/smpclient/) and can be installed with `poetry`, `pip`, and other dependency managers.
## User Documentation
Documentation is in the source code so that it is available to your editor.
An online version is generated and available [here](https://intercreate.github.io/smpclient/).
## Development Quickstart
> Assumes that you've already [setup your development environment](#development-environment-setup).
1. activate [envr](https://github.com/JPhutchins/envr), the environment manager for **bash**, **zsh**, and **PS**:
```
. ./envr.ps1
```
2. run `poetry install` when pulling in new changes
3. run `lint` after making changes
4. run `test` after making changes
5. add library dependencies with `poetry`:
```
poetry add <my_new_dependency>
```
6. add test or other development dependencies using [poetry groups](https://python-poetry.org/docs/managing-dependencies#dependency-groups):
```
poetry add -G dev <my_dev_dependency>
```
7. run tests for all supported python versions:
```
tox
```
## Development Environment Setup
### Install Dependencies
- poetry: https://python-poetry.org/docs/#installation
### Create the venv
```
poetry install
```
The `venv` should be installed to `.venv`.
### Activate envr
> [envr](https://github.com/JPhutchins/envr) supports **bash**, **zsh**, and **PS** in Linux, MacOS, and Windows. If you are using an unsupported shell, you can activate the `.venv` environment manually, use `poetry run` and `poetry shell`, and refer to `envr-default` for useful aliases.
```
. ./envr.ps1
```
### Verify Your Setup
To verify the installation, make sure that all of the tests are passing using these envr aliases:
```
lint
test
```
### Enable the githooks
> The pre-commit hook will run the linters but not the unit tests.
```
git config core.hooksPath .githooks
```
Raw data
{
"_id": null,
"home_page": null,
"name": "smpclient",
"maintainer": null,
"docs_url": null,
"requires_python": "<4,>=3.9",
"maintainer_email": null,
"keywords": null,
"author": "JP Hutchins",
"author_email": "jphutchins@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/4f/63/b54f1467d9ee0b61d9116ef4dcda66d60f3819d4cc0783cab198b65e0d64/smpclient-5.1.1.tar.gz",
"platform": null,
"description": "# Simple Management Protocol (SMP) Client \n\n`smpclient` implements the transport layer of the Simple Management Protocol. This library can be\nused as a dependency in applications that use SMP over **serial (UART or USB)**, **Bluetooth (BLE)**,\nor **UDP** connections. Some abstractions are provided for common routines like upgrading device\nfirmware.\n\nIf you don't need a library with the transport layer implemented, then you might prefer to use\n[smp](https://github.com/JPHutchins/smp) instead. The SMP specification can be found\n[here](https://docs.zephyrproject.org/latest/services/device_mgmt/smp_protocol.html).\n\nIf you'd like an SMP CLI application instead of a library, then you should try\n[smpmgr](https://github.com/intercreate/smpmgr).\n\n## Install\n\n`smpclient` is [distributed by PyPI](https://pypi.org/project/smpclient/) and can be installed with `poetry`, `pip`, and other dependency managers.\n\n## User Documentation\n\nDocumentation is in the source code so that it is available to your editor.\nAn online version is generated and available [here](https://intercreate.github.io/smpclient/).\n\n## Development Quickstart\n\n> Assumes that you've already [setup your development environment](#development-environment-setup).\n\n1. activate [envr](https://github.com/JPhutchins/envr), the environment manager for **bash**, **zsh**, and **PS**:\n ```\n . ./envr.ps1\n ```\n2. run `poetry install` when pulling in new changes\n3. run `lint` after making changes\n4. run `test` after making changes\n5. add library dependencies with `poetry`:\n ```\n poetry add <my_new_dependency>\n ```\n6. add test or other development dependencies using [poetry groups](https://python-poetry.org/docs/managing-dependencies#dependency-groups):\n ```\n poetry add -G dev <my_dev_dependency>\n ```\n7. run tests for all supported python versions:\n ```\n tox\n ```\n\n## Development Environment Setup\n\n### Install Dependencies\n\n- poetry: https://python-poetry.org/docs/#installation\n\n### Create the venv\n\n```\npoetry install\n```\n\nThe `venv` should be installed to `.venv`.\n\n### Activate envr\n\n> [envr](https://github.com/JPhutchins/envr) supports **bash**, **zsh**, and **PS** in Linux, MacOS, and Windows. If you are using an unsupported shell, you can activate the `.venv` environment manually, use `poetry run` and `poetry shell`, and refer to `envr-default` for useful aliases.\n\n```\n. ./envr.ps1\n```\n\n### Verify Your Setup\n\nTo verify the installation, make sure that all of the tests are passing using these envr aliases:\n\n```\nlint\ntest\n```\n\n### Enable the githooks\n\n> The pre-commit hook will run the linters but not the unit tests.\n\n```\ngit config core.hooksPath .githooks\n```\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Simple Management Protocol (SMP) Client for remotely managing MCU firmware",
"version": "5.1.1",
"project_urls": {
"Documentation": "https://intercreate.github.io/smpclient",
"Homepage": "https://www.intercreate.io",
"Issues": "https://github.com/intercreate/smpclient/issues",
"Repository": "https://github.com/intercreate/smpclient.git"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "01d082ae06e7731b72a997a5bdcb1788ed8a6108052f2df76629bb5b0e399e7f",
"md5": "232e572dfaeabc551801b5744af9d572",
"sha256": "f73d5c2a2f3e25da14aa0beb973ce82ca0ae2f3ac6baee015cd49ab469f5cc66"
},
"downloads": -1,
"filename": "smpclient-5.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "232e572dfaeabc551801b5744af9d572",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4,>=3.9",
"size": 31137,
"upload_time": "2025-10-12T21:03:24",
"upload_time_iso_8601": "2025-10-12T21:03:24.585009Z",
"url": "https://files.pythonhosted.org/packages/01/d0/82ae06e7731b72a997a5bdcb1788ed8a6108052f2df76629bb5b0e399e7f/smpclient-5.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4f63b54f1467d9ee0b61d9116ef4dcda66d60f3819d4cc0783cab198b65e0d64",
"md5": "174904f91bbbd27db9bf9fa49a711bec",
"sha256": "559440479a92a66c37108f1f9614c609db91f5f0b810fbab2db1d68062ee372a"
},
"downloads": -1,
"filename": "smpclient-5.1.1.tar.gz",
"has_sig": false,
"md5_digest": "174904f91bbbd27db9bf9fa49a711bec",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4,>=3.9",
"size": 24910,
"upload_time": "2025-10-12T21:03:25",
"upload_time_iso_8601": "2025-10-12T21:03:25.643503Z",
"url": "https://files.pythonhosted.org/packages/4f/63/b54f1467d9ee0b61d9116ef4dcda66d60f3819d4cc0783cab198b65e0d64/smpclient-5.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-12 21:03:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "intercreate",
"github_project": "smpclient",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "smpclient"
}