Added
- Registered "qubo" coefficients program type under `qbraid.programs.typer.QuboCoefficientsDict` ([820](https://github.com/qBraid/qBraid/pull/820))
- Added option to create a `ConversionGraph` using only specific nodes ([822](https://github.com/qBraid/qBraid/pull/822))
- Added option to include all registered program types in `ConversionGraph`, even if they don't have any supported conversions ([822](https://github.com/qBraid/qBraid/pull/822))
- Added method that maps all nodes in a `ConversionGraph` to their corresponding `ExperimentType` ([822](https://github.com/qBraid/qBraid/pull/822))
- Added option to `ConversionGraph` while only showing nodes matching given `ExperimentType` value(s) ([822](https://github.com/qBraid/qBraid/pull/822))
python
from qbraid import ConversionGraph, ExperimentType
graph = ConversionGraph(nodes=["qasm2", "qasm3", "qubo"], include_isolated=True)
for alias, exp_type in graph.get_node_experiment_types().items():
print(alias, exp_type.value)
graph.plot(experiment_type=ExperimentType.GATE_MODEL)
- Added conditional for OQC device `OFFLINE` status when unavailable + outside live window ([826](https://github.com/qBraid/qBraid/pull/826))
- Added units for OQC device pricing (USD) ([826](https://github.com/qBraid/qBraid/pull/826))
Improved / Modified
- Separated runtime device `transform` and `to_ir` logic into separate steps ([819](https://github.com/qBraid/qBraid/pull/819))
- Updated runtime validation step to handle program batches and not re-warn for device-related checks ([819](https://github.com/qBraid/qBraid/pull/819))
- Updated runtime device transpile method and target profile to allow for lists of `ProgramSpec` ([819](https://github.com/qBraid/qBraid/pull/819))
- Updated native runtime logic for NEC vector annealer to support "qubo" program spec type. Offset argument / attribute removed from `qbraid.programs.annealing.Problem`. `QbraidDevice.run` flow now derives "offset" paramater from `params` argument (of type `QuboSolveParams`, now required). This allows a more straightfoward procedure (with more visiblity) when submitting programs from `pyqubo.Module`. See code example below. ([820](https://github.com/qBraid/qBraid/pull/820))
python
from qbraid import QbraidProvider
from qbraid.runtime.schemas import QuboSolveParams
s1, s2, s3, s4 = [pyqubo.Spin(f"s{i}") for i in range(1, 5)]
H = (4 * s1 + 2 * s2 + 7 * s3 + s4) ** 2
model = H.compile()
qubo, offset = model.to_qubo()
params = QuboSolveParams(offset=offset)
provider = QbraidProvider()
device = provider.get_device("nec_vector_annealer")
job = device.run(qubo, params=params)
- IonQ multicircuit jobs and input data format field added explicitly ([825](https://github.com/qBraid/qBraid/pull/825))
- OQC provider url + timeout params added to `__init__`, and target profile updates to include new device metadata fields returned by `OQCClient`, particularly in relation to Toshiko QPU ([825](https://github.com/qBraid/qBraid/pull/825))
- Updated `random_circuit` function to use transpiler to consider all possible random circuit generators package funcs starting from the one with the closest conversion path to the specified target package. Reverses the logic of `ConversionGraph.get_sorted_closest_targets` with new function `ConversionGraph.get_sorted_closest_sources()` ([829](https://github.com/qBraid/qBraid/pull/829))
Fixed
- Fixed `qasm2_to_qasm3()` conversion error cause by `qbraid/transpiler/conversions/qasm2/qelib_qasm3.qasm` not being included in `MANIFEST.in` ([825](https://github.com/qBraid/qBraid/pull/825))
- Fixed docs CSS so stable/latest words show up (previously white and blended into the background so weren't visible) ([826](https://github.com/qBraid/qBraid/pull/826))
Dependencies
- Updated `pyqasm` optional dependency to `0.0.3` ([824](https://github.com/qBraid/qBraid/pull/824))
- Updated `oqc-qcass-client` optional dependnecy to `3.11.0` ([826](https://github.com/qBraid/qBraid/pull/826))