Skip to main content

Simple Management Protocol (SMP) Client for remotely managing MCU firmware

Project description

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 instead. The SMP specification can be found here.

If you'd like an SMP CLI application instead of a library, then you should try smpmgr.

Install

smpclient is distributed by PyPI 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.

Development Quickstart

Assumes that you've already setup your development environment.

  1. activate 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:
    poetry add -G dev <my_dev_dependency>
    
  7. run tests for all supported python versions:
    tox
    

Development Environment Setup

Install Dependencies

Create the venv

poetry install

The venv should be installed to .venv.

Activate envr

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smpclient-6.1.0.tar.gz (26.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smpclient-6.1.0-py3-none-any.whl (32.9 kB view details)

Uploaded Python 3

File details

Details for the file smpclient-6.1.0.tar.gz.

File metadata

  • Download URL: smpclient-6.1.0.tar.gz
  • Upload date:
  • Size: 26.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for smpclient-6.1.0.tar.gz
Algorithm Hash digest
SHA256 580728400cf4164dd525dd4913ebfd93404879aa06017b40b454454d9c9d9638
MD5 ef249e159fc65c068a938981dcce7bd2
BLAKE2b-256 3b6a6206c0e2fe9c3b525fda1bb5ef0f86f24a2c3a3ab62b7b55cb68af7f0e3a

See more details on using hashes here.

Provenance

The following attestation bundles were made for smpclient-6.1.0.tar.gz:

Publisher: release.yaml on intercreate/smpclient

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file smpclient-6.1.0-py3-none-any.whl.

File metadata

  • Download URL: smpclient-6.1.0-py3-none-any.whl
  • Upload date:
  • Size: 32.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for smpclient-6.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b3aa7318f4084de6c4c6b635ea19a4cf968906a73a04f0f473a9ac6e31fb4696
MD5 f0458d13b21bda502abafef1bc5f0cc9
BLAKE2b-256 79cbecb1a1bf9c6c73e33eff4ff35bd8e30bccae0701257fe2d6c3d565b722ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for smpclient-6.1.0-py3-none-any.whl:

Publisher: release.yaml on intercreate/smpclient

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page