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:
objectNormalized, 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:
objectOne 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_2rendered asalpha[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.