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:
DxPipeClientModelComponentConnectionJobMetaServiceResultStreamLogMessagePlotMessageTableMessageInspectMessageContainerMessageDxPipeErrorAuthErrorAPIErrorNotFoundErrorValidationError
Examples
examples/quickstart.py: create, save, run, and fetch resultsexamples/transient_streaming.py: stream transient online results and send commands during executionexamples/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:
- Update
versioninpyproject.toml. - Run the release script from the
dxpipe-sdkdirectory. - 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 buildpython -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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dxpipe_sdk-0.1.6.tar.gz.
File metadata
- Download URL: dxpipe_sdk-0.1.6.tar.gz
- Upload date:
- Size: 23.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03c662137c312dcc0b32e029e4b8698ea967c46973d7682e3be75d41c3baab9f
|
|
| MD5 |
a67d6a4d055fb06e483fe956976d6261
|
|
| BLAKE2b-256 |
58a990e7574cae32aa7a65e7192c74aaa5ca122488694feebdd54cd5c1e13c21
|
File details
Details for the file dxpipe_sdk-0.1.6-py3-none-any.whl.
File metadata
- Download URL: dxpipe_sdk-0.1.6-py3-none-any.whl
- Upload date:
- Size: 22.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce3d94a641e83b32ceec61f1110aede53dbea044c58698d01720eb1f74b08ab4
|
|
| MD5 |
1732b6bccca465c6b740a66e3344c0a9
|
|
| BLAKE2b-256 |
f9bf2db841427a8841fc596728164577d48e7cbc60d4dc34b011f0421e1edb41
|