Skip to main content

Python SDK for DxPipe model editing and simulation workflows

Project description

dxpipe-sdk

dxpipe-sdk is a Python SDK for DxPipe model editing, simulation execution, streaming result retrieval, and runtime command control.

Features

  • Token-based authentication against the DxPipe backend
  • Create models for supported workspace types and open existing models
  • Add, remove, connect, and configure components in the model graph
  • Save model snapshots and start simulation jobs
  • Poll or stream logs, plots, tables, inspect data, and container messages
  • Send runtime commands to components during online or transient execution

Requirements

  • Python 3.10 or later
  • A reachable DxPipe service endpoint
  • A DxPipe account that can obtain access tokens

Install

Install from a built wheel or from PyPI after publication:

pip install dxpipe-sdk

For local development in this repository:

pip install -e .

Quick Start

from dxpipe_sdk import DxPipeClient

client = DxPipeClient(
    base_url="http://localhost:8000",
    username="admin",
    password="your-password",
)

model = client.create_model(
    name="sdk-demo-model",
    workspace_type="lps_online",
    description="Created by dxpipe-sdk",
)

source = model.add_component("Source", position=(0, 0))
pipe = model.add_component("Pipe", position=(240, 0))
load = model.add_component("Load", position=(480, 0))

model.connect(source, "0", pipe, "0")
model.connect(pipe, "1", load, "0")

model.save()
job = model.run(timeout=120, image="dxpipe")

for message in job.stream_results(timeout=2):
    print(message.get("type"), message.get("key"))

Public API

The package currently exports these main entry points:

  • DxPipeClient
  • Model
  • Component
  • Connection
  • Job
  • MetaService
  • ResultStream
  • LogMessage
  • PlotMessage
  • TableMessage
  • InspectMessage
  • ContainerMessage
  • DxPipeError
  • AuthError
  • APIError
  • NotFoundError
  • ValidationError

Examples

  • examples/quickstart.py: create, save, run, and fetch results
  • examples/transient_streaming.py: stream transient online results and send commands during execution
  • examples/run_existing_model.py: open an existing model by ID and run it

Release Validation

Build and metadata check:

python -m build
python -m twine check dist/*

Minimal install smoke test with the built wheel:

python -m venv .smoke-venv
.smoke-venv\Scripts\python -m pip install dist\dxpipe_sdk-0.1.2-py3-none-any.whl
.smoke-venv\Scripts\python -c "from dxpipe_sdk import DxPipeClient, Model, Job, ResultStream; print('smoke ok')"

Release Workflow

If you want to publish a new version yourself, the repository now includes a reusable PowerShell script:

.\scripts\release.ps1 -Repository pypi -Token "pypi-..."

Recommended process:

  1. Update version in pyproject.toml.
  2. Run the release script from the dxpipe-sdk directory.
  3. Wait for PyPI index propagation if the published install smoke test fails on the first try.

The script performs these steps automatically:

  • clean dist/
  • python -m build
  • python -m twine check dist/*
  • python -m unittest tests.test_public_api
  • install the built wheel into a temporary virtual environment for a local smoke test
  • upload to PyPI or TestPyPI
  • create a fresh temporary virtual environment and install the published package for a post-publish smoke test

Examples:

# Full publish to PyPI
.\scripts\release.ps1 -Repository pypi -Token "pypi-..."

# Full publish to TestPyPI
.\scripts\release.ps1 -Repository testpypi -Token "pypi-..."

# Local validation only, without upload
.\scripts\release.ps1 -SkipUpload -SkipSmokeTest

You can also avoid passing tokens on the command line by using environment variables:

$env:PYPI_TOKEN = "pypi-..."
.\scripts\release.ps1 -Repository pypi

License

This package is currently distributed as proprietary software.

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

dxpipe_sdk-0.1.5.tar.gz (22.8 kB view details)

Uploaded Source

Built Distribution

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

dxpipe_sdk-0.1.5-py3-none-any.whl (21.9 kB view details)

Uploaded Python 3

File details

Details for the file dxpipe_sdk-0.1.5.tar.gz.

File metadata

  • Download URL: dxpipe_sdk-0.1.5.tar.gz
  • Upload date:
  • Size: 22.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for dxpipe_sdk-0.1.5.tar.gz
Algorithm Hash digest
SHA256 27a3804576060314f2621fc1808955d1773556a9a71681106673c7c6977dbc6a
MD5 de27994da65739d01fb276ba44ea8626
BLAKE2b-256 79071742438e3b9914e24adeb7d7c4d15fe3dabacf109eaa1b33d4fc85323f80

See more details on using hashes here.

File details

Details for the file dxpipe_sdk-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: dxpipe_sdk-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 21.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for dxpipe_sdk-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 28aafd05908f104eb3103982c6af8cd3cf53af2eadbe606cc43d6fbd13de5ef2
MD5 5cef6ad9c3bd0109dedcd841eefec9a5
BLAKE2b-256 a24492e1878015abd0039322f99788d069f09d70c5af6b7e22998aa61ca88887

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