Skip to main content

Standalone Python provider SDK for the Ekstra motion network

Project description

Ekstra.OS Python Provider SDK

This folder presents the standalone Python SDK surface for Ekstra.OS.

Current implementation:

  • source: ekstra_os/providers/sdk.py
  • primary class: ProviderSDK
  • package wrapper: sdk/python/src/ekstra_provider_sdk
  • purpose: minimal provider helper for publishing MotionSample events into motiond

Install shape

Package metadata now lives in sdk/python/pyproject.toml.

The distributable package name is:

ekstra-provider-sdk

Published install:

pip install ekstra-provider-sdk

Primary import:

from ekstra_provider_sdk import MotionSample, ProviderSDK

What it supports today

  1. Provider identity connect
  2. Provider manifest registration
  3. Attested provider registration
  4. Heartbeat management
  5. Motion sample publish
  6. Automatic reconnect on publish failure

Primary source

from ekstra_provider_sdk import MotionSample, ProviderSDK

provider = ProviderSDK(
    provider_id="python-provider",
    actor_id="actor-1",
    parts=["hand.right"],
)
provider.connect({"name": "Python Provider"})

sample = MotionSample(
    actor_id="actor-1",
    part="hand.right",
    frame="device:python",
    timestamp=1.0,
)
provider.publish_sample("motion.samples", sample)
provider.close()

Test

$env:PYTEST_DISABLE_PLUGIN_AUTOLOAD='1'
python -m pytest -q ekstra_os/tests/test_provider_sdk.py ekstra_os/tests/test_python_sdk_package.py
python sdk/python/scripts/smoke_build_install.py

Current status

  • Verified locally on 2026-03-13
  • Builds as a standalone Python distribution under sdk/python
  • Still depends on the main ekstra-os runtime package for the underlying implementation

Release

Python release tags:

python-sdk-vX.Y.Z

The release workflow verifies:

  1. provider SDK tests
  2. wheel and sdist build
  3. clean virtual environment install smoke
  4. twine check
  5. publish only on release tags or explicit manual release

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

ekstra_provider_sdk-0.1.1.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

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

ekstra_provider_sdk-0.1.1-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file ekstra_provider_sdk-0.1.1.tar.gz.

File metadata

  • Download URL: ekstra_provider_sdk-0.1.1.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ekstra_provider_sdk-0.1.1.tar.gz
Algorithm Hash digest
SHA256 52c3a2d58387bf71b289ef5f796bd130eb1184da9a89bc31db67027ce2c11ffd
MD5 fd93dbff25faf55f0a2749b0b5402ea8
BLAKE2b-256 9d5c6f26377266543a755d9f75a94b80c3c5100c4f3fff5a3771f2c6cdf2027e

See more details on using hashes here.

Provenance

The following attestation bundles were made for ekstra_provider_sdk-0.1.1.tar.gz:

Publisher: python-sdk-release.yml on imxdemetri/ekstra-os

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

File details

Details for the file ekstra_provider_sdk-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ekstra_provider_sdk-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 adf08d85b9ad2e8c658334108036b62ba5511e6f82a33dd4d553e6df2041526e
MD5 f886217516629d5e4b1d37a38c0282ef
BLAKE2b-256 5717e020c6e3d5794d2da89406b5dc136a58ec7b9b8d1cddaaa0b3f9a906d418

See more details on using hashes here.

Provenance

The following attestation bundles were made for ekstra_provider_sdk-0.1.1-py3-none-any.whl:

Publisher: python-sdk-release.yml on imxdemetri/ekstra-os

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