Skip to main content

Pyglaze is a library used to operate the devices of Glaze Technologies

Project description

Pyglaze

Pyglaze is a python library used to operate the devices of Glaze Technologies.

Documentation can be found here.

Installation

To install the latest version of the package, simply run

pip install pyglaze

Usage

See our documentation for usage.

pyglaze expects device firmware that reports MimLink operational_state and config_status_reason. Devices that omit those fields are unsupported.

Firmware Updates

Pyglaze supports firmware updates over MimLink via FirmwareUpdater.

Note: pyglaze expects a pre-signed MCUboot image and does not sign firmware itself.

Developers

To install the API with development tools, first clone the repository from our public GitHub repository. Then, from the root of the project, run

uv sync --extra dev --group security --frozen

Run commands through uv run so they use the locked environment:

uv run --frozen pytest
uv run --frozen ruff check .
uv run --group security --frozen pip-audit --strict

Documentation - local build

To build and serve the documentation locally

  1. Checkout the repository (or a specific version)
  2. Run uv sync --extra docs --frozen
  3. Run uv run --frozen mkdocs serve while standing in the project root.

MimLink protocol schema sync

Most developers do not need this. The generated envelope_pb2.py is committed to the repository. This section is only relevant when syncing envelope.proto from the upstream MimLink repo.

pyglaze vendors the MimLink protobuf schema in src/pyglaze/mimlink/proto/envelope.proto. Python codegen is handled by buf, which must be installed separately (e.g. brew install bufbuild/buf/buf). Code generation uses buf remote plugins (pinned in buf.gen.yaml), so no local protoc install is required.

When syncing with upstream MimLink:

  1. Replace src/pyglaze/mimlink/proto/envelope.proto from upstream.
  2. Run ./scripts/generate_mimlink_proto.sh.
  3. Commit the updated envelope_pb2.py.
  4. Run protocol tests: uv run pytest tests/mimlink/.

Bug reporting or feature requests

Please create an issue here and we will look at it ASAP!

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

pyglaze-1.0.1.tar.gz (49.2 kB view details)

Uploaded Source

Built Distribution

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

pyglaze-1.0.1-py3-none-any.whl (58.1 kB view details)

Uploaded Python 3

File details

Details for the file pyglaze-1.0.1.tar.gz.

File metadata

  • Download URL: pyglaze-1.0.1.tar.gz
  • Upload date:
  • Size: 49.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for pyglaze-1.0.1.tar.gz
Algorithm Hash digest
SHA256 360f8c24ad41f21a8382d76ec3089a2f08f1f27f1d772f59fdaeadc7105294a7
MD5 6658bf5fea6b35747676bb6128311d11
BLAKE2b-256 0dcaf6a5b9b900de2599cf701c97f2c5cd6f1e7b2f86d2863115b405c8d9a835

See more details on using hashes here.

File details

Details for the file pyglaze-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: pyglaze-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 58.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for pyglaze-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1c868a2979dd83948b6c2243fd755f1e5a89619df2a8b862799c80fde3507187
MD5 8f68fe850699909dc5421ae9bf032092
BLAKE2b-256 3b471a55e75b2ebf19d580ba45f616b7bbe3f7b427e28f819cd12d1911772ac3

See more details on using hashes here.

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