Python client library for the Wisent Wire hardware testing platform API
Project description
Wisent Wire Python SDK
Python client library for the WisentWire hardware testing platform.
Installation
pip install wisent-wire-sdk
Quick start
from wisentwire import WisentWireClient
# Cognito auth (production / integration)
client = WisentWireClient(
base_url="https://int.wisent-wire.com",
email="user@company.com",
password="secret",
)
# Local dev (header-based, no Cognito)
client = WisentWireClient(
base_url="http://localhost:7998",
email="dev@test.com",
local=True,
)
# Pre-existing token
client = WisentWireClient(
base_url="https://int.wisent-wire.com",
token="eyJhbGciOi...",
)
Usage
WisentWires
wws = client.list_wisentwires()
ww = client.get_wisentwire(ww_id=1)
Power supply
client.set_power_supply(ww_id=1, state="ON", voltage=5.0, current=2.0)
shadow = client.wait_shadow_state(ww_id=1, expected_state="ON")
print(shadow.reported.voltage_setpoint)
Firmware & flash
fw = client.upload_firmware("app.bin", firmware_bytes, "STM32F4")
job_id = client.flash(ww_id=1, firmware_id=fw.id)
client.wait_flash_complete(ww_id=1, job_id=job_id)
UART
client.send_uart_ascii(ww_id=1, text="HELLO")
msg = client.wait_for_uart_rx(ww_id=1, match_hex="48454C4C4F")
print(msg.bytes_hex)
Telemetry
readings = client.get_power_telemetry(ww_id=1)
Reservations
reservations = client.list_reservations()
Organization
org = client.get_organization()
members = client.list_members()
Error handling
All API errors raise typed exceptions inheriting from WisentWireError:
from wisentwire import NotFoundError, ConflictError
try:
client.get_wisentwire(ww_id=999)
except NotFoundError as e:
print(f"WisentWire not found: {e}")
| HTTP status | Exception |
|---|---|
| 400 | BadRequestError |
| 401 | AuthenticationError |
| 403 | ForbiddenError |
| 404 | NotFoundError |
| 409 | ConflictError |
| 429 | RateLimitError |
| 503 | ServiceUnavailableError |
Development
pip install -e ".[dev]"
pytest tests/ -v
Requirements
- Python >= 3.10
requests>= 2.28tenacity>= 8.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
wisent_wire_sdk-0.1.1.tar.gz
(25.7 kB
view details)
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 wisent_wire_sdk-0.1.1.tar.gz.
File metadata
- Download URL: wisent_wire_sdk-0.1.1.tar.gz
- Upload date:
- Size: 25.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff8d6aab3fd6b07a21c3dcad0b4d7537d3b504fadc3e2a73c13000e2dedbe8da
|
|
| MD5 |
01048e34110410f00c0140b3b4419c6e
|
|
| BLAKE2b-256 |
1c67e3deee0432e687dc7a88519c306e03788f63f34290784fbd541c72c5cc2e
|
File details
Details for the file wisent_wire_sdk-0.1.1-py3-none-any.whl.
File metadata
- Download URL: wisent_wire_sdk-0.1.1-py3-none-any.whl
- Upload date:
- Size: 30.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce4f72d5c90240d2de0762316fadbca5ce4cbfe71241421f81302c4d52001bc0
|
|
| MD5 |
e597a7038712f195b22b34a8b0bc985c
|
|
| BLAKE2b-256 |
943d89bb0740b32081e60898f9383495e73b7980e3f61d5df1952a9ac640ab4b
|