Skip to main content

Standalone Python provider SDK wrapper for Ekstra.OS

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.0.tar.gz (6.4 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.0-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ekstra_provider_sdk-0.1.0.tar.gz
  • Upload date:
  • Size: 6.4 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.0.tar.gz
Algorithm Hash digest
SHA256 c2866f0a7344874a666121d47b78483a5a431a4367e881fd92cd25e21beefcc1
MD5 509f61233143ce9e65460895bc6410e4
BLAKE2b-256 4e20fb51a1112166e00d3bcbaa08fd9d80477b4883eb566649384c0b64835a19

See more details on using hashes here.

Provenance

The following attestation bundles were made for ekstra_provider_sdk-0.1.0.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.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ekstra_provider_sdk-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4a1fd8dc1ea42e70395fca932cf22b24e7d286923d397fc22ea55ffb78abbe86
MD5 f5831d2dd6b6697f66bff8eb58743646
BLAKE2b-256 1f60c21d1939dc14f3c80923024a257ab442e11d82772a3865ce5344006edd13

See more details on using hashes here.

Provenance

The following attestation bundles were made for ekstra_provider_sdk-0.1.0-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