uniqc.visualization.timeline module¶
Circuit scheduling and timeline visualization.
This module computes a left-compacted schedule from a compiled circuit and can
render both the existing table-style PDF timeline and static HTML/SVG views.
Logical circuits require gate-duration data from backend metadata,
chip-characterization data, or explicit gate_durations overrides. Pulse
data that already carries start times remains supported without duration data.
- class uniqc.visualization.timeline.TimelineGate(index, name, qubits, params=(), cbits=(), control_qubits=(), start=0.0, duration=0.0, end=0.0, layer=0, raw=None)[source]¶
Bases:
objectOne scheduled operation.
- Parameters:
- class uniqc.visualization.timeline.TimelineSchedule(gates, qubits, total_duration, unit='ns', gate_durations=None)[source]¶
Bases:
objectScheduled circuit timeline.
- Parameters:
- gates: tuple[TimelineGate, ...]¶
- uniqc.visualization.timeline.circuit_to_html(circuit, output_path=None, *, title='Quantum circuit')[source]¶
Render a static HTML/SVG circuit diagram without timing requirements.
- uniqc.visualization.timeline.create_time_line_table(layer_dict, qubit_list, time_line)[source]¶
Create a pandas DataFrame-like timeline table from legacy layer data.
- uniqc.visualization.timeline.format_result(compiled_prog, *, backend_info=None, chip_characterization=None, gate_durations=None, compile_to_basis=True, basis_gates=None)[source]¶
Format a program into legacy
(gate_layers, qubits, time_line)data.
- uniqc.visualization.timeline.plot_time_line(compiled_prog, figure_save_path=PosixPath('/home/runner/work/UnifiedQuantum/UnifiedQuantum/docs/timeline_plot'), *, backend_info=None, chip_characterization=None, gate_durations=None, compile_to_basis=True, basis_gates=None)[source]¶
Plot the quantum circuit timeline as table-style PDF files.
- uniqc.visualization.timeline.plot_time_line_html(compiled_prog, output_path=None, *, backend_info=None, chip_characterization=None, gate_durations=None, compile_to_basis=True, basis_gates=None, title='Quantum circuit timeline', unit='ns')[source]¶
Render a scheduled timeline as static HTML/SVG.
Each gate carries an SVG
titletooltip with its qubits, parameters, start time, duration, and end time.
- uniqc.visualization.timeline.schedule_circuit(compiled_prog, *, backend_info=None, chip_characterization=None, gate_durations=None, compile_to_basis=True, basis_gates=None, unit='ns')[source]¶
Schedule a compiled circuit by left-compacting gates on qubit resources.
Important
Whenever
compile_to_basis=True(the default), this function callsuniqc.compile.compile(), which requires Qiskit. Qiskit is a core dependency installed by default withunified-quantum; if it fails to import, the install is broken (reinstall withpip install --upgrade unified-quantum). There is no native-only bypass: even if the input circuit already uses only chip-native gates (e.g. CZ/SX/RZ),schedule_circuitwill still callcompile()to collect timing data unless every entry already carries an explicitstarttime. To skipcompile()entirely you must pass pulse / timeline data where every entry hasstart_timeset, and passcompile_to_basis=False(otherwiseTimelineDurationErroris raised).- Parameters:
compiled_prog (Any) – A
Circuit-like object, OriginIR text, JSON pulse data, or a list of gate dictionaries.backend_info (Any | None) – Backend metadata used to resolve gate durations.
BackendInfo.extramay containgate_durations,single_qubit_gate_time,two_qubit_gate_time, andmeasure_time.chip_characterization (Any | None) – Backend metadata used to resolve gate durations.
BackendInfo.extramay containgate_durations,single_qubit_gate_time,two_qubit_gate_time, andmeasure_time.gate_durations (dict[str, float] | None) – Explicit duration overrides. Gate names are case-insensitive. Generic keys
"1q","2q", and"measure"are supported.compile_to_basis (bool) – Logical circuits must be compiled to basis gates before scheduling. This flag defaults to
Trueand may only be disabled for inputs that already carry explicit start times.basis_gates (list[str] | None) – Basis gate override forwarded to
compile()whencompile_to_basis=True.unit (str) – Display unit label for renderers. Numeric values are not converted.
- Raises:
TimelineDurationError – If the circuit lacks explicit start times and a non-virtual operation cannot be assigned a duration from backend metadata or overrides.
- Return type: