labwired (Python)
Run microcontroller firmware in the LabWired simulator and test it with pytest.
Time is virtual: execution advances only inside run_for and expect.
Install
pip install labwired
Wheels are abi3: one wheel per platform covers CPython 3.9 and newer (Linux x86_64/aarch64, macOS arm64/x86_64, Windows x64).
Test firmware with pytest
The package installs a pytest plugin with a sim fixture:
def test_boot_banner(sim):
with sim("firmware.elf", chip="stm32f103") as s:
s.expect(r"boot ok", timeout="10ms")
s.send("ping\n")
assert s.expect("pong", timeout="5ms").text == "pong"
Run it with pytest. Give --labwired-chip <name> to set a default chip for
every sim(...) call. On a failure, the report shows the UART transcript.
API summary
Sim(elf, chip=... | system=..., uart=None): one ELF on one machine.run_for(duration),expect(pattern, timeout): advance virtual time.read_uart()returns text (invalid UTF-8 becomes U+FFFD).read_uart_bytes()returns the raw bytes.send(text),send_bytes(data),read_u32,write_u32,read_memory,snapshot(),restore(snap),set_input,set_pin,frames().run_firmware(elf, chip=..., duration="1s", expect=...): one-shot helper.
Metadata
Release files for labwired 0.25.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| labwired-0.25.0.tar.gz | 12.7 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| labwired-0.25.0-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| labwired-0.25.0-cp39-abi3-manylinux_2_28_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| labwired-0.25.0-cp39-abi3-manylinux_2_28_aarch64.whl | CPython 3.9 | abi3 | Linux glibc 2.28+ ARM64 | Details |
| labwired-0.25.0-cp39-abi3-macosx_11_0_arm64.whl | CPython 3.9 | abi3 | macOS 11.0+ ARM64 | Details |
| labwired-0.25.0-cp39-abi3-macosx_10_12_x86_64.whl | CPython 3.9 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 61.1 MB
Release files / labwired-0.25.0.tar.gz
| Download URL | labwired-0.25.0.tar.gz |
|---|---|
| Size | 12.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b4c3a60ea46a1e5053c7727a159c48c598be9766e3a349276adc55b28056f497
|
|
BLAKE2b-256 checksum How to use checksums |
17856811b7f648d8b90821d60f05cc39cea74baf9653f7e18da4c6225665896f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency logRelease files / labwired-0.25.0-cp39-abi3-win_amd64.whl
| Download URL | labwired-0.25.0-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 9.6 MB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
88bcb0a710d528587ec24be3cffa753332f69fa2a291aa453988a92102159938
|
|
BLAKE2b-256 checksum How to use checksums |
2ad540b76560d6c9510d6395ffc5b5a44154facd8f66c2aa02b62e3f2d2427c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency logRelease files / labwired-0.25.0-cp39-abi3-manylinux_2_28_x86_64.whl
| Download URL | labwired-0.25.0-cp39-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 10.0 MB |
| Tags | CPython 3.9 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
af16664e817becff4bca9c4915cf1ca2df9efa3e97d044f7a33c654244567e71
|
|
BLAKE2b-256 checksum How to use checksums |
e57a782c63654005b0b0181ed07142bd3efbf072e48e66cf1117aec71b7374d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency logRelease files / labwired-0.25.0-cp39-abi3-manylinux_2_28_aarch64.whl
| Download URL | labwired-0.25.0-cp39-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 9.7 MB |
| Tags | CPython 3.9 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
a6f1c8604f6360e9d132a5e2e5fcf61e3e24a2605e0c9e82c8f9720ef025d4cc
|
|
BLAKE2b-256 checksum How to use checksums |
50ccc5860b8fb1055416f1e770757aba81fda78b6dc02c6c96f899c509d3118c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency logRelease files / labwired-0.25.0-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | labwired-0.25.0-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 9.4 MB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
83d6a1fb6335875454e8cfdc4df0a9486447e0ce860c5e6dcc97597c0b87a7d2
|
|
BLAKE2b-256 checksum How to use checksums |
3d5e39adc313978d3321d95979979eb09369726aa246872cd42e11f46c929fd0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency logRelease files / labwired-0.25.0-cp39-abi3-macosx_10_12_x86_64.whl
| Download URL | labwired-0.25.0-cp39-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 9.6 MB |
| Tags | CPython 3.9 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
3c224a70c58d802c29283b53b66b978b61b541415114d70c5d830e84cd65e033
|
|
BLAKE2b-256 checksum How to use checksums |
6815b3410ad794d7bdea6e44a4a9bcb21d5ae6c434dc461361102c73fb3b57dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency log