xquad -- Primary user-facing package for the XQuad toolchain
xquad is the Python distribution most users should install. It provides the interactive Program / Session / RunResult API, a unified VM wrapper that dispatches to either the Rust or Python interpreter, and re-exports the lower-level peer packages (xqffi, xqcp, xqsa) under a single namespace.
Install
pip install xquad
Pulls xqffi, xqcp, xqsa, and xqvm_py as runtime dependencies.
Peer installs stay valid (pip install xqffi xqcp xqsa) if you only
need a subset.
Interactive usage
Load a program once, run it with different calldata, inspect outputs by slot:
from xquad.program import Program
program = Program.from_source("""
PUSH 0
INPUT r0
PUSH 1
INPUT r1
LOAD r0
LOAD r1
ADD
STOW r2
PUSH 0
OUTPUT r2
HALT
""")
session = program.session(output_slots=1)
session.set_calldata([40, 2])
result = session.run()
assert dict(result.outputs) == {0: 42}
Program.load(bytes) takes wire-format bytecode; Session.run() returns a RunResult with dict-keyed outputs (unset slots present as None), residual stack, and step count.
Full pipeline
Compile a problem via the DSL, execute, sample:
from xquad import cp, sa
from xquad.vm import VM, VMBackend
problem = cp.Problem("MyProblem")
# ... define inputs, model, objective, decoder ...
programs = problem.compile()
vm = VM(backend=VMBackend.RUST) # or VMBackend.PYTHON for the reference interpreter
vm.set_output_slots(1)
vm.run(programs.encoder)
model = vm.outputs()[0]
sample = sa.SolverDWaveCPU().solve(model).sample
Re-exports of peer packages are identity, not copies:
import xquad, xqcp
assert xquad.cp.Problem is xqcp.Problem # always True
So isinstance works whether the caller imported directly from the peer or via the umbrella.
Subnamespaces
xquad.* |
Origin | Contents |
|---|---|---|
xquad.program |
first-party | Interactive API -- Program, Session, RunResult |
xquad.vm |
first-party | Unified VM wrapper with backend dispatch (VMBackend.RUST / VMBackend.PYTHON) |
xquad.types |
first-party | Canonical Python type aliases used across the API |
xquad.asm |
re-exports xqffi.asm |
parse_xqasm, assemble_source, disassemble |
xquad.verifier |
re-exports xqffi.verifier |
verify, verify_source |
xquad.cp |
re-exports xqcp |
DSL -- Problem, Types, expression builders |
xquad.sa |
re-exports xqsa |
Solvers -- SolverDWaveCPU, Solver |
Lower-level escape hatches remain available directly via the peer packages (xqffi.vm.Vm for the raw FFI one-shot surface; xqvm_py.Executor for the pure-Python reference VM).
Also see
xqffi-- PyO3 FFI bindings (low-level / conformance).xqvm_py-- pure-Python reference VM (conformance oracle).xqcp-- constraint-programming DSL.xqsa-- solver adapters.- Running Programs -- end-to-end tour including the Program/Session,
xqffi.vm, andxquad.vmsurfaces.
License
AGPL-3.0-or-later.
Release files for xquad 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xquad-0.4.1.tar.gz | 17.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xquad-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.1 kB
Release files / xquad-0.4.1.tar.gz
| Download URL | xquad-0.4.1.tar.gz |
|---|---|
| Size | 17.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
08752727594de0a958d119b75a7b19c9bbda191e21b0d7dcc6f38473823985e2
|
|
BLAKE2b-256 checksum How to use checksums |
616a0008099f85f46222ec73e61e4590eb5ffc0d072f8a92337fa44368ed1a79
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Release files / xquad-0.4.1-py3-none-any.whl
| Download URL | xquad-0.4.1-py3-none-any.whl |
|---|---|
| Size | 14.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4a7bb0aaae866b7d48876b5b4d30313e43a3e65823a866c1d6c0c9c6e84c78e6
|
|
BLAKE2b-256 checksum How to use checksums |
f5cace0672561acaca27e554ca8bb88d7561716dfac0307986ad7f4c88ec1ffa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|