Skip to main content

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, and xquad.vm surfaces.

License

AGPL-3.0-or-later.

Release files for xquad 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xquad 0.3.2
File Size Uploaded
xquad-0.3.2.tar.gz 10.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xquad 0.3.2
File Interpreter ABI Platform
xquad-0.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 22.3 kB

Release files / xquad-0.3.2.tar.gz

Download URL xquad-0.3.2.tar.gz
Size 10.3 kB
Tags Source
SHA-256 checksum
How to use checksums
675c14b73ae0d1a34c4e4b5ad872d42bf60e7d21c8bd4804502fb71153646b30
BLAKE2b-256 checksum
How to use checksums
dd5905cc2f7a36fe1fb312014dc875eaedcec784858013132294125d9d144b48
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.3.2-py3-none-any.whl

Download URL xquad-0.3.2-py3-none-any.whl
Size 12.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
060ebb0ec639206be8cbc7a0f3d2c6c28d60eec7858e50332002d87982299fb3
BLAKE2b-256 checksum
How to use checksums
76bfc1d72c4da483d9e40218e99018295dca7c99813f9ba0b7b4c32f1b856252
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.5
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page