| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks failed
joule-moq-remote host agent / joule-moq-remote · does this change touch it (pull_request) Successful in 23s
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Successful in 20s
wai-app and Create / wai-app · does this change touch it (pull_request) Successful in 30s
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Successful in 39s
joule-code conformance gate / joule-moq-relay, its own energy on a counter (macos) (pull_request) Successful in 1m6s
wai-quantum on every processor / emulated · aarch64-unknown-linux-gnu (pull_request) Successful in 2m29s
joule-code conformance gate / Build + round-trip C1-C4 vectors (pull_request) Successful in 3m36s
wai-quantum on every processor / emulated · powerpc64le-unknown-linux-gnu (pull_request) Successful in 4m2s
wai-quantum on every processor / emulated · loongarch64-unknown-linux-gnu (pull_request) Successful in 5m7s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (pull_request) Successful in 5m9s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (pull_request) Successful in 5m5s
wai-quantum on every processor / emulated · armv7-unknown-linux-gnueabihf (pull_request) Successful in 7m19s
wai-web reach builds / wai-web reach · does this change touch it (pull_request) Successful in 6s
wai-quantum on every processor / emulated · s390x-unknown-linux-gnu (pull_request) Successful in 4m47s
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (pull_request) Successful in 28s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 2m35s
wai-quantum on every processor / emulated · powerpc64-unknown-linux-gnu (pull_request) Successful in 10m50s
wai-quantum on every processor / emulated · sparc64-unknown-linux-gnu (pull_request) Successful in 7m47s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m27s
wai-quantum WebGPU member / member · DX12 and Vulkan (cbio-windows) (pull_request) Successful in 12m23s
wai-quantum on every processor / emulated · riscv64gc-unknown-linux-gnu (pull_request) Successful in 10m40s
wai-quantum on every processor / emulated · i686-unknown-linux-gnu (pull_request) Successful in 9m19s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 35m22s
joule-code conformance gate / joule-moq-ingest, every target (pull_request) Failing after 6m15s
joule-code conformance gate / joule-moq-relay, every target (pull_request) Successful in 8m24s
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 1m25s
wai-audit collector and player integration / does this change touch it (pull_request) Successful in 2m3s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (pull_request) Successful in 59s
wai-audit collector and player integration / collector · linux (pull_request) Successful in 1m2s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (pull_request) Successful in 1m26s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 3m56s
WAI conformance / does this change touch it (pull_request) Successful in 1m33s
WAI operation catalogue / does this change touch it (pull_request) Successful in 1m33s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (pull_request) Successful in 1m41s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 24s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 38s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 52s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (pull_request) Successful in 2m34s
WAI energy receipts / does this change touch it (pull_request) Successful in 1m13s
WAI conformance / faces from keypoints under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m33s
WAI examples / WAI examples · does this change touch them (pull_request) Successful in 1m35s
wai-fleet service / does this change touch it (pull_request) Successful in 1m24s
WAI conformance / fast integer kernels, every x86_64 kernel set (AVX-512 silicon) (pull_request) Successful in 3m8s
WAI JPEG-AI whole decode (pinned inputs, required) / does this change touch it (pull_request) Successful in 1m51s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 3m35s
wai-key-proxy / does this change touch it (pull_request) Successful in 1m12s
wai-fleet service / service · linux (pull_request) Successful in 1m43s
WAI operation catalogue / the catalogue and every door · linux (pull_request) Successful in 4m46s
WAI neural sink gates / does this change touch it (pull_request) Successful in 1m15s
wai-ledger service / does this change touch it (pull_request) Successful in 1m49s
wai-key-proxy / proxy · linux (pull_request) Successful in 1m17s
wai-ops-gpu integer operators on GPUs / does this change touch it (pull_request) Successful in 1m9s
wai-pack / wai-pack · does this change touch it (pull_request) Successful in 1m26s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 1m39s
wai-ledger service / service · linux (pull_request) Successful in 2m12s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 7m15s
wai-quantum command line / does this change touch it (pull_request) Successful in 1m29s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 15m59s
wai-quantum contract / does this change touch it (pull_request) Successful in 1m22s
wai-fleet service / service · macos (pull_request) Successful in 1m3s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 6m25s
wai-pack / wai-pack · linux (pull_request) Successful in 2m35s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 9m16s
wai-quantum dataflow member / does this change touch it (pull_request) Successful in 1m15s
wai-quantum docs, course and locales / does this change touch it (pull_request) Successful in 1m28s
wai-quantum CUDA member / does this change touch it (pull_request) Successful in 1m49s
wai-ledger service / service · macos (pull_request) Successful in 1m1s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 3m57s
wai-quantum contract / the policy is linked, and the deprecations page reads (pull_request) Successful in 4s
wai-quantum signal processor / does this change touch it (pull_request) Successful in 58s
wai-quantum editors / does this change touch it (pull_request) Successful in 59s
wai-quantum resource estimation / does this change touch it (pull_request) Successful in 53s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 11m18s
wai-quantum other formats / does this change touch it (pull_request) Successful in 1m7s
wai-quantum CUDA member / member · CUDA (jetson-hub) (pull_request) Successful in 2m4s
wai-quantum CUDA member / member · CUDA (thor) (pull_request) Successful in 2m5s
wai-quantum command line / command line · linux (pull_request) Successful in 2m44s
wai-pack / wai-pack · macos (pull_request) Successful in 2m18s
wai-quantum dataflow member / member · dataflow device absent (macos) (pull_request) Successful in 29s
wai-quantum contract / API compatibility · linux (pull_request) Successful in 4m39s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 13m47s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:b140) (pull_request) Successful in 3m50s
wai-quantum HIP member / does this change touch it (pull_request) Successful in 1m52s
wai-quantum command line / command line · macos (pull_request) Successful in 1m53s
wai-quantum FPGA member / does this change touch it (pull_request) Successful in 2m46s
wai-quantum for JavaScript / does this change touch it (pull_request) Successful in 1m51s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 16m1s
wai-quantum docs, course and locales / the Studio's words in every locale · linux (pull_request) Successful in 35s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:401e) (pull_request) Successful in 2m46s
wai-quantum editors / editors · macos (pull_request) Successful in 1m15s
wai-quantum OpenQASM reader / does this change touch it (pull_request) Successful in 1m28s
wai-quantum contract / schemas and the committed tool lists · linux (pull_request) Successful in 6m33s
wai-quantum HIP member / member · HIP (framework-128gb) (pull_request) Successful in 1m38s
wai-quantum FPGA member / member · FPGA datapath, simulated (macos) (pull_request) Successful in 1m20s
wai-quantum Metal member / does this change touch it (pull_request) Successful in 1m34s
wai-quantum npu-cores member / does this change touch it (pull_request) Successful in 1m15s
wai-quantum docs, course and locales / the course and the command line's languages · linux (pull_request) Successful in 2m27s
wai-quantum neural-processor member / does this change touch it (pull_request) Successful in 1m3s
wai-quantum CUDA member / member · CUDA absent (linux) (pull_request) Successful in 1m53s
wai-quantum OpenCL member / does this change touch it (pull_request) Successful in 1m9s
wai-quantum pulse and dynamics / does this change touch it (pull_request) Successful in 1m11s
wai-quantum editors / editors · linux (pull_request) Successful in 2m23s
wai-quantum npu-cores member / member · npu-cores, neural processor (framework-128gb silicon) (pull_request) Successful in 1m18s
wai-quantum OpenCL member / member · OpenCL GPU (macos) (pull_request) Successful in 22s
wai-quantum resource estimation / estimation and calibration · linux, release (pull_request) Successful in 1m58s
wai-quantum for Python / does this change touch it (pull_request) Successful in 1m1s
wai-quantum FPGA member / member · FPGA simulation absent (linux) (pull_request) Successful in 24s
wai-quantum OpenCL member / member · OpenCL GPU and CPU (jetson-hub) (pull_request) Successful in 41s
wai-quantum OpenCL member / member · OpenCL GPU (framework-128gb) (pull_request) Successful in 25s
wai-quantum OpenCL member / member · OpenCL GPU and CPU (thor) (pull_request) Successful in 55s
wai-quantum error correction and mitigation / does this change touch it (pull_request) Successful in 1m3s
wai-quantum other formats / the set under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m35s
wai-quantum-qpu / does this change touch it (pull_request) Successful in 1m2s
wai-quantum pulse and dynamics / the same bits · macos (pull_request) Successful in 55s
wai-quantum extension points / does this change touch it (pull_request) Successful in 1m23s
wai-quantum OpenQASM reader / corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 46s
wai-quantum service / does this change touch it (pull_request) Successful in 49s
wai-quantum OpenQASM reader / reader and corpus · linux (pull_request) Successful in 1m49s
wai-quantum matrix-extension member / does this change touch it (pull_request) Successful in 58s
wai-quantum other formats / readers, writers and the set · linux (pull_request) Successful in 3m38s
wai-quantum Metal member / member · Metal absent (linux) (pull_request) Successful in 38s
wai-quantum neural-processor member / member · neural processor absent (linux) (pull_request) Successful in 21s
wai-quantum Metal member / member · Metal (macos) (pull_request) Successful in 3m13s
wai-quantum studio and desktop / does this change touch it (pull_request) Successful in 1m10s
wai-quantum OpenCL member / member · OpenCL absent (linux) (pull_request) Successful in 24s
wai-quantum for Python / python · macos (pull_request) Successful in 1m59s
wai-quantum tensor-engine member / does this change touch it (pull_request) Successful in 1m4s
wai-quantum for JavaScript / javascript · linux (pull_request) Successful in 3m10s
wai-quantum portable tensor program / does this change touch it (pull_request) Successful in 58s
wai-quantum neural-processor member / member · neural processor (macos) (pull_request) Successful in 4m21s
wai-quantum portable tensor program / tensor program · integrated GPU (framework-128gb) (pull_request) Successful in 14s
wai-quantum pulse and dynamics / reader, simulator and pulse jobs under wasm32-wasip2 (wasmtime) (pull_request) Successful in 54s
wai-quantum service / service energy · linux packages (pull_request) Successful in 1m43s
wai-quantum CPU vector units / does this change touch it (pull_request) Successful in 39s
wai-quantum variational and algorithm library / does this change touch it (pull_request) Successful in 1m8s
wai-quantum pulse and dynamics / reader, simulator and pulse jobs · linux, release (pull_request) Successful in 1m32s
wai-quantum CPU vector units / member · vector units, avx2 and avx512 (framework-128gb silicon) (pull_request) Successful in 19s
wai-quantum-qpu / credentials in the keychain (macos) (pull_request) Successful in 1m34s
wai-quantum portable tensor program / tensor program · GPUs (jetson-hub) (pull_request) Successful in 33s
wai-quantum verdicts and repairs / does this change touch it (pull_request) Successful in 1m3s
wai-quantum-qpu / clients against their contracts (linux) (pull_request) Successful in 48s
wai-quantum views in agent hosts / does this change touch it (pull_request) Successful in 1m3s
wai-quantum WebGPU member / does this change touch it (pull_request) Successful in 1m3s
wai-quantum matrix-extension member / member · matrix extension absent (macos) (pull_request) Successful in 40s
wai-sink-android native sink library / does this change touch it (pull_request) Successful in 46s
wai-quantum extension points / the registry under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m2s
wai-quantum for Python / python · linux (pull_request) Successful in 2m48s
wai-quantum error correction and mitigation / codes, decoders, texts and mitigation · linux, release (pull_request) Successful in 2m33s
wai-sink-swift native sink package / does this change touch it (pull_request) Successful in 59s
WAI Studio / does this change touch it (pull_request) Successful in 45s
WAI mbt2018_mean integer decode (regenerated vectors) / does this change touch it (pull_request) Successful in 57s
wai-quantum portable tensor program / tensor program · Metal and the arm64 CPU (macos) (pull_request) Successful in 57s
wai-quantum matrix-extension member / member · matrix extension, emulated (aarch64 Linux) (pull_request) Successful in 18s
wai-quantum extension points / the registry and the example · linux (pull_request) Successful in 2m37s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 3m23s
wai-quantum service / service · macos (pull_request) Successful in 3m43s
wai-web wasm32 / does this change touch it (pull_request) Successful in 1m8s
wai-quantum CPU vector units / member · vector unit absent (macos) (pull_request) Successful in 1m12s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 1m36s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 2m8s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 3m55s
wai-quantum portable tensor program / tensor program · CPU, mutants, GPU builds (pull_request) Successful in 37s
wai-quantum service / service · linux (pull_request) Successful in 5m5s
wai-quantum CPU vector units / member · vector unit, rvv 1024-bit (riscv64, emulated) (pull_request) Successful in 26s
wai-quantum CPU vector units / member · vector unit, sve 128-bit (aarch64, emulated) (pull_request) Successful in 29s
wai-quantum CPU vector units / member · vector unit, rvv 128-bit (riscv64, emulated) (pull_request) Successful in 14s
wai-quantum CPU vector units / member · vector unit, sve 2048-bit (aarch64, emulated) (pull_request) Successful in 10s
wai-quantum CPU vector units / member · vector unit, sve 512-bit (aarch64, emulated) (pull_request) Successful in 9s
wai-quantum signal processor / processor and member · signal processor, emulated (pull_request) Successful in 14m2s
wai-quantum CPU vector units / member · vector unit, avx2 (x86_64 silicon) (pull_request) Successful in 22s
wai-quantum tensor-engine member / member · tensor engine, the kernel toolchain's simulator (linux) (pull_request) Successful in 5m7s
wai-quantum studio and desktop / desktop app · linux (pull_request) Successful in 6m8s
wai-quantum studio and desktop / desktop app · windows (pull_request) Successful in 9m51s
wai-quantum WebGPU member / member · integrated GPU, Vulkan (framework-128gb) (pull_request) Successful in 7m55s
wai-quantum verdicts and repairs / the intent set and the verdict under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m25s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (pull_request) Successful in 7m10s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux, release (pull_request) Successful in 1m51s
wai-quantum verdicts and repairs / verdicts, repairs and the intent set · linux (pull_request) Successful in 1m59s
wai-quantum views in agent hosts / views · the page and its engine (pull_request) Successful in 3m25s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 2m10s
wai-quantum views in agent hosts / views · a scripted host (pull_request) Successful in 3m25s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 7m31s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Successful in 1m18s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Successful in 4m6s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Failing after 21m58s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 38m16s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 27m29s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 13m5s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 6m17s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 11m21s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 6m22s
wai-quantum WebGPU member / member · GPU, Vulkan (jetson-hub) (pull_request) Successful in 19m44s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 17m26s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 11m6s
wai-quantum WebGPU member / member · GPU, Vulkan (thor) (pull_request) Successful in 25m11s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 6m9s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 21m37s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 38m33s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 27m31s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 3m0s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 8m0s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 10m17s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 22m58s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 28m13s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 8m3s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 2m59s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 5m49s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 16m46s
wai-quantum npu-cores member / member · npu-cores absent (linux-arm64) (pull_request) Successful in 2m53s
wai-quantum HIP member / member · HIP absent (linux-arm64) (pull_request) Successful in 4m32s
wai-quantum pulse and dynamics / the same bits · linux-arm64 (pull_request) Successful in 4m10s
wai-quantum extension points / the registry and the example · linux-arm64 (pull_request) Successful in 6m29s
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Successful in 2m39s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (pull_request) Successful in 4m33s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 6m28s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h49m25s
The Python README and its zh-CN translation name the wheel at 0.1.1, the version the docs check holds them to. The views manifest records the new digest of wai-quantum-views's lockfile, which the release moved: rebuilt with wai/wai-quantum-views/build.sh in catthehacker/ubuntu:act-22.04 with Rust 1.98.0, as the views workflow rebuilds it. The page's bytes are unchanged. Co-Authored-By: Claude Opus 5.5 <[email protected]> |
||
| .. | ||
| ci | ||
| notebooks | ||
| python/wai_quantum | ||
| src | ||
| tests | ||
| Cargo.lock | ||
| Cargo.toml | ||
| pyproject.toml | ||
| README.md | ||
| README.zh-CN.md | ||
wai-quantum for Python
WAI Quantum from Python and notebooks, in-process. The package carries the WAI Quantum job engine (the Rust crate wai-quantum's engine, through a pyo3 extension module), so a job planned, run and sealed here gives the same plan, the same result and the same receipt as the wai-quantum command line, the job service, the MCP servers, the Studio and the desktop app.
- The engine:
run,plan,lint,draw(text and SVG),layout,critique,improve,shortcuts,equivalent,verify,seal,canonical,digest,methods,accuracy_classes,bloch,history,estimate,verify_estimate,qec_code,qec_decodeandqec_threshold. - Receipts: every result is sealed with a key you pass (
wai_quantum.Key), and any receipt (one made here, by the command line, by the service or in a browser tab) is checked here, offline. - The job service:
wai_quantum.Service, a client in the standard library alone, forhttps://wai.transaction.science/quantum-jobs/v1. - Notebook widgets:
Circuit,Result,ReceiptandBloch, with static HTML and SVG fallbacks that render in any notebook.
Install
From the Python Package Index. One wheel per platform serves every Python from 3.9 on (the stable ABI, abi3): macOS arm64 and x86_64, Linux x86_64 and arm64 (manylinux 2.17), Windows x86_64.
pip install wai-quantum # the engine and the service client: no other dependency
pip install "wai-quantum[widgets]" # and the notebook widgets (anywidget)
The same wheels are attached, each with its SHA-256, to the wai-quantum-cli-v<version> release on the forge that carries them:
pip install wai_quantum-0.1.1-cp39-abi3-<platform>.whl
To build the wheel yourself, with Rust 1.98 and maturin 1.15.0:
cd wai/wai-quantum-py
maturin build --release --locked -o dist
pip install dist/wai_quantum-*.whl
Use
import wai_quantum as wq
bell = "OPENQASM 3.0; qubit[2] q; bit[2] c; h q[0]; cx q[0], q[1]; c = measure q;"
key = wq.Key.generate() # or Key.from_file(...), Key.demo(); by default, this user's key
job = wq.run(bell, shots=1000, key=key)
job.method, job.accuracy # ('stabilizer', 'exact')
job.counts # {'00': 522, '11': 478}
job.probabilities() # each count over the shots: sampled frequencies
wq.verify(job).valid # True: the receipt seals this request and this result
A job is the service's form as a plain dict (status, method, why, estimate, request, result with its receipt), so json.dumps(job) writes what the service would send. Its helpers read the parts most often wanted: counts, shots, probabilities(), expectations, amplitudes, method, accuracy, receipt, verify().
run takes OpenQASM 3 (or 2) text, a path to a file of it, or a job dict, and the job's fields as keywords: shots, seed, method (auto by default), observables ("Z0 Z1" or {"pauli": "X3 Y4", "coeff": 0.5}), amplitudes (bit strings, qubit n − 1 first), noise (depolarizing_1q, depolarizing_2q, amplitude_damping, dephasing, readout), mitigate (with noise: zne, pea, pec, cdr, vd or readout, or {"method", ...} with its options) and options (per method; wq.methods() lists them). memory_gb (16, the command line's default) bounds what a job may take here, so a job plans onto the same method on both.
src = "OPENQASM 3.0; qubit[2] q; h q[0]; t q[0]; t q[0]; cx q[0], q[1];"
a, b = "qubit[1] q; h q[0]; x q[0]; h q[0];", "qubit[1] q; z q[0];"
job = wq.run(bell, shots=100, intent={"distribution": {"00": 0.5, "11": 0.5}}, key=key)
job.verdict["level"], job.verdict["holds"] # ('proof', True): how far the engine checked, sealed
wq.verdict(job, {"distribution": {"00": 1.0}}) # another intent, worked out here: says it is not sealed
wq.repair("OPENQASM 3.0;\nqubit[1] q\nh q[0];\n") # the fix on the flagged line, and what needs a person
wq.plan(bell) # the method and why, without running
wq.lint("qubit[1] q;\nfoo q[0];") # {'ok': False, 'error': 'line 2: unknown gate foo', 'line': 2}
print(wq.draw(bell)) # the text drawing, as `wai-quantum draw` prints it
svg = wq.draw(bell, format="svg") # the Studio's picture as an SVG document
wq.critique(src); wq.improve(src) # measures and smells; variants proved equivalent
wq.equivalent(a, b) # {'verdict': 'equivalent', 'how': 'tableau', 'why': ...}
wq.bloch("OPENQASM 3.0; qubit[1] q; ry(0.3) q[0];", key=key) # each qubit's reduced state, from the engine
e = wq.estimate(src, qubit="ns-e4", budget=1e-3, key=key) # what a fault-tolerant machine needs, each estimate sealed
wq.verify_estimate(e) # the seals, every receipt, and the request re-run here
wq.estimate(counts={"numQubits": 100, "cczCount": 5000}) # or a logical-counts (or routine=) document
estimate gives the program's logical counts (logical qubits with the ancillas a gate under several controls takes, measurements, T gates, Toffolis, rotations and the T gates in their synthesised words, T depth and depth), the error budget's synthesis share and each rotation's part of it, the code model's calibration from the engine's own decoders, the estimate on the physical qubit and the frontier between physical qubits and runtime, every estimate sealed in the resource-estimate receipt family. export="counts" or "routine" adds the counts as a document. What each number means and assumes is on the estimate page.
c = wq.qec_code("color:7", key=key) # its checks, k, the decoders it takes, its distance certified
wq.qec_code("color:7", certificate=c) # the certificate's witnesses and search run again
wq.qec_decode("surface:5", error=[3, 12]) # its syndrome decoded, the residual judged
wq.qec_decode(memory=(5, 5, 0.003), shots=20000, decoder="correlated") # a circuit-level failure rate
wq.qec_threshold(distances=[3, 5, 7], p=[0.002, 0.004], shots=20000) # rates with their errors
job = wq.run(src, observables=["Z0 Z1"], noise={"depolarizing_2q": 0.02}, mitigate="zne", key=key)
job["result"]["mitigation"] # each value raw and mitigated with its error bar, and what the method assumes
qec_code, qec_decode and qec_threshold are the engine's error correction, as the command line's wai-quantum qec and both MCP servers' qec_* tools answer it, each answer sealed in a job's form (wq.verify checks it). A distance certificate gives, in each sector, the least weight of a logical found, a witness of that weight, and every lighter support ruled out by an exhaustive search; a search stopped by bound settles nothing past it. What each decoder guarantees, and each mitigation method's bias and variance, are on the error-correction page.
Keys and receipts
Key.demo() is the published demo key (the command line's --demo-key): receipts signed with it repeat byte for byte everywhere and prove only that the result is unaltered. Key.generate() makes a key; key.save(path) writes it readable by its owner only, in the command line's form (64 hex digits), so wai-quantum run --key path signs with the same key. With no key given, run signs with this user's key, the command line's own ($WAI_QUANTUM_KEY, else ~/.config/wai/quantum-key, made on first use).
A receipt is an Ed25519 signature over BLAKE3 of the request and the result in their RFC 8785 canonical JSON. wq.canonical(value) gives those bytes and wq.digest(request, result) the digest; wq.seal(request, result, key=...) seals any result. A refusal raises wq.EngineError with the engine's own message, its line where it names one, and its code: the reader's (Q103) or the job layer's (J011), as the message ends with it. wq.repair(program, proposed=...) raises one with J021 for a proposal that changes a line no diagnostic flags. The verdict page has the levels and the rules.
The job service
svc = wq.Service() # $WAI_QUANTUM_SERVICE, or https://wai.transaction.science/quantum-jobs/v1
job = svc.run(bell, shots=1000) # submit and wait
rec = svc.submit(bell, shots=1000) # or: submit, then status / result / cancel
job = svc.result(rec["id"])
svc.verify(job) # checked here, offline; compare its key with svc.describe()["receipt_key"]
The client uses urllib and names itself wai-quantum-python/<version> in each request's User-Agent: the service's edge refuses requests that carry a generic library's default agent. A refusal, a failed or cancelled job, or a service out of reach raises wq.ServiceError with the HTTP status and the service's words.
Notebooks
h = wq.history("start", {"source": src, "by": {"kind": "person"}, "at": 1}, key=key)["history"]
program = "OPENQASM 3.0; qubit[2] q; ry(0.3) q[0]; h q[1];"
wq.Circuit(bell) # the engine's drawing; click a gate: .selected is its operation
wq.Circuit(src, history=h) # each gate marked with whose hand it is in (wq.history)
wq.Result(job) # the counts as bars (or frequencies), the method, the accuracy class, the receipt's check
wq.Receipt(job) # signer, digest, and a verified / INVALID badge the engine computed here
wq.Bloch(program, key=key) # each qubit's Bloch vector; drag to turn the view
Each widget's front end is a small plain ES module (python/wai_quantum/static/). Without the widgets extra, or in a front end without the widget extension, each renders as static HTML (and a Circuit as SVG); a Job displays as its result's card. Every widget shows what the engine said and computes nothing of its own: its data is the engine's answer.
The doc notebooks in notebooks/ run in CI and are held to their stored outputs: getting-started, bell-receipt (a Bell pair with its receipt), equivalence, noisy-run, and service-job (a job on a service started for the run; without one its cells skip).
Versions
The package's public surface is what wai_quantum.__all__ lists and the widgets, with their parameters and what they return. A job is the engine's job JSON, and follows its schemas (wai-quantum/schemas/); its result names the engine that made it (job["result"]["engine"]) and its schema. What each version promises, for how long, and how a change is announced (a deprecated name raises a DeprecationWarning naming its replacement): the policy; what is deprecated: the deprecations.
Tests
ci/check.sh is the whole check, as CI runs it (.github/workflows/wai-quantum-py.yml, on linux and macos): it builds the command line and the job service from this checkout, the wheel with maturin, installs the wheel in a fresh venv with the pinned and hashed test requirements (tests/requirements.lock), runs pytest with every test required, runs the notebooks against a local service, and runs tests/smoke.py on Python 3.9 with the wheel alone. The tests hold the package to the other surfaces: a job run here equals the command line's and the service's (but for each host's time and its word on energy), a receipt sealed here verifies with wai-quantum verify and the command line's verify here, both sign with the same user key, and the widgets' front ends run under node on the data the package builds.
Energy: a run here is not metered; its result says so (energy.unmetered), as the command line's and a browser tab's do. The service meters each job's worker.
Licence: Apache-2.0.