Skip to main content

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

# API key (recommended — scripts, CI, MCP)
client = WisentWireClient(
    base_url="https://int.wisent-wire.com",
    api_key="wwk_...",   # or set WISENTWIRE_API_KEY env var
)

# Cognito (email + password)
client = WisentWireClient(
    base_url="https://int.wisent-wire.com",
    email="user@company.com",
    password="secret",
)

# Pre-existing bearer token
client = WisentWireClient(
    base_url="https://int.wisent-wire.com",
    token="eyJhbGciOi...",
)

Create an API key from the web app under Settings → API keys. Keys are shown once — store securely. Default expiry is 1 year; max 10 active keys per user.

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.28
  • tenacity >= 8.0

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

wisent_wire_sdk-0.5.0.tar.gz (41.0 kB view details)

Uploaded Source

Built Distribution

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

wisent_wire_sdk-0.5.0-py3-none-any.whl (44.4 kB view details)

Uploaded Python 3

File details

Details for the file wisent_wire_sdk-0.5.0.tar.gz.

File metadata

  • Download URL: wisent_wire_sdk-0.5.0.tar.gz
  • Upload date:
  • Size: 41.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for wisent_wire_sdk-0.5.0.tar.gz
Algorithm Hash digest
SHA256 f90f653716cf129d85d798bc8e421f00a735c5c61b5844a8f4cd772972b99607
MD5 1cd337e626469a6cefe7dc3de725b7ad
BLAKE2b-256 53ca385deea030a53e4e5a6545427e8bf056bf9d2a2ea8edc5a11df2ebf3bb69

See more details on using hashes here.

File details

Details for the file wisent_wire_sdk-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for wisent_wire_sdk-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5ac3bb6291163f6fecb0ffaeb5d078cfddf9bc99995b41fd4fff6c0be99f28d1
MD5 d2d7cb20d519a0d39255b3eaf3a8964e
BLAKE2b-256 c13981dbb78c3af38b0814310de1a28e3d76e684dc6488c4ac7118448623b403

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