uniqc.visualization.circuit_render.model module

Data model and normalization for circuit rendering.

The render pipeline is:

Circuit | OriginIR-ext str | OpenQASM str | JSON-ish list
    -> DrawCircuit          (this module)
    -> Layout               (layout.py)
    -> primitives           (svg.py)
    -> svg / text / latex / html / mpl / png

DrawOp mirrors the OriginIR-ext opcode tuple (operation, qubits, cbits, params, dagger, controls) and adds the constructs that only exist in the structured program tree (MeasureOp/ResetOp/ClassicalOp/IfBlock/WhileBlock) or in headers (QRAMDECL).

class uniqc.visualization.circuit_render.model.DrawCircuit(n_qubits, n_cbits, params=<factory>, ops=<factory>)[source]

Bases: object

Normalized, render-ready circuit description.

n_cbits
n_qubits
ops
params
class uniqc.visualization.circuit_render.model.DrawOp(op, qubits=(), params=(), cbits=(), dagger=False, controls=(), name=None, cond=None, note=None, addr=0, data=0, raw='', col=-1, index=-1)[source]

Bases: object

One drawable operation (gate, marker, or classical construct).

addr = 0
cbits = ()
col = -1
cond = None
controls = ()
dagger = False
data = 0
index = -1
name = None
note = None
op
params = ()
qubits = ()
raw = ''
uniqc.visualization.circuit_render.model.GREEK_SYMBOL_NAMES = {'alpha': 'α', 'beta': 'β', 'delta': 'δ', 'gamma': 'γ', 'lam': 'λ', 'lambda': 'λ', 'mu': 'μ', 'phi': 'φ', 'pi': 'π', 'theta': 'θ'}

Latin parameter names rendered as Greek letters when the output charset supports it (SVG / HTML / matplotlib / quantikz).

uniqc.visualization.circuit_render.model.display_param(p, *, greek=True)[source]

Render one opcode parameter as display text.

Numbers are returned unchanged (the caller formats / pi-converts them); sympy expressions are stringified with array elements alpha_2 rendered as alpha[2] and common names mapped to Greek letters when greek.

uniqc.visualization.circuit_render.model.display_param_ascii(text)[source]

ASCII-safe fallback for a display parameter string.

uniqc.visualization.circuit_render.model.to_draw_circuit(circuit)[source]

Normalize a circuit-like object into a DrawCircuit.

Accepts a Circuit, an OriginIR(-ext) or OpenQASM 2.0 string, a JSON string of gate dicts, or a list of gate dicts.