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 VM wrapper over the Rust interpreter, and re-exports the lower-level peer packages (xqffi, xqcp, xqsa) under a single namespace.

Install

pip install xquad

Pulls xqffi, xqcp, and xqsa 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

problem = cp.Problem("MyProblem")
# ... define inputs, model, objective, decoder ...
programs = problem.compile()

vm = VM()
vm.set_output_slots(1)
vm.run(programs.encoder)
model = vm.outputs()[0]

sample = sa.SolverCPU().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 VM wrapper over the Rust interpreter: assembles source, keeps calldata and limits across runs
xquad.types re-exports xqffi.vm Domain, XqmxModel, XqmxSample, triu, XqvmError and its faults, VM limits
xquad.asm is xqffi.asm parse_xqasm, assemble_source, disassemble
xquad.verifier is xqffi.verifier verify, verify_source
xquad.cp is xqcp DSL -- Problem, Types, expression builders
xquad.sa is xqsa Solvers -- SolverCPU, Solver

The raw FFI surface stays available as xqffi.vm.Vm.

Also see

  • xqffi -- PyO3 FFI bindings (low-level / conformance).
  • 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.

Metadata

Release files for xquad 0.5.0

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.5.0
File Size Uploaded Provenance Actions
xquad-0.5.0.tar.gz 42.2 kB Without provenance Details for xquad-0.5.0.tar.gz

Built distribution (wheel)

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

Total release size: 70.1 kB

Release files / xquad-0.5.0.tar.gz

Download URL xquad-0.5.0.tar.gz
Size 42.2 kB
Tags Source
SHA-256 checksum
How to use checksums
98eb66650803a41d22e5b7d05a921038e547ac90d982009bb1cb202042d06382
BLAKE2b-256 checksum
How to use checksums
8b95f77e4ce93075c7b883614ca7bf2a8c1b52b31fbc49db49f281e20656626e
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.5.0-py3-none-any.whl

Download URL xquad-0.5.0-py3-none-any.whl
Size 27.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d23b078c480b932e5676efb634f418465ad947f3bd108b53b0af9c3a5cdc2ca8
BLAKE2b-256 checksum
How to use checksums
b2436711a12edbccf2cee6c9814706aa03918424ebe9785e7d99863a0142e538
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.5

Security for xquad 0.5.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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