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

Built distribution (wheel)

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

Total release size: 70.1 kB

Release files / xquad-0.5.2.tar.gz

Download URL xquad-0.5.2.tar.gz
Size 42.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7f8d257c334a1c6e38fc3f825532f1147009c7423b0de9df3a430ac7f3425c75
BLAKE2b-256 checksum
How to use checksums
87370344959c772e65cc79110f6e5b8f2c360a1e8c52bcbdf32c1b481940bcef
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.2-py3-none-any.whl

Download URL xquad-0.5.2-py3-none-any.whl
Size 27.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2be1eacb77ee07162ab6732ca39dff355ebdc4effa6a0a509f557ab69f744ac5
BLAKE2b-256 checksum
How to use checksums
7de670b416adbb551c49c6eb8d32e4e465979cd35ecacb64991423717bd48290
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.2

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