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

# 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.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.1.1.tar.gz (25.7 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.1.1-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

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

Hashes for wisent_wire_sdk-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ff8d6aab3fd6b07a21c3dcad0b4d7537d3b504fadc3e2a73c13000e2dedbe8da
MD5 01048e34110410f00c0140b3b4419c6e
BLAKE2b-256 1c67e3deee0432e687dc7a88519c306e03788f63f34290784fbd541c72c5cc2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wisent_wire_sdk-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ce4f72d5c90240d2de0762316fadbca5ce4cbfe71241421f81302c4d52001bc0
MD5 e597a7038712f195b22b34a8b0bc985c
BLAKE2b-256 943d89bb0740b32081e60898f9383495e73b7980e3f61d5df1952a9ac640ab4b

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