uniqc.task.adapters.ibm_adapter module#
IBM Quantum backend adapter using QiskitRuntimeService.
Uses QiskitRuntimeService from qiskit-ibm-runtime to list backends
and submit/query tasks. This is the recommended IBM approach as of 2024+,
superseding the raw REST API which is blocked by Cloudflare on quantum.ibm.com.
- QiskitRuntimeService reference:
- class uniqc.task.adapters.ibm_adapter.IBMAdapter(proxy=None)[source]#
Bases:
QuantumAdapterAdapter for IBM Quantum using QiskitRuntimeService.
This adapter sets up proxy environment variables from the IBM config before initialising
QiskitRuntimeService, which internally handles IAM authentication and Cloudflare-protected endpoints.- list_backends()[source]#
Return raw IBM Quantum backend metadata via QiskitRuntimeService.
- Returns:
name,num_qubits,status,simulator,description, and others from the API response.- Return type:
List of dicts with keys
- query(taskid)[source]#
Query a single task’s status and result.
- Parameters:
taskid (str) – Task identifier.
- Returns:
status:'success'|'failed'|'running'result: execution result (present when status is'success'or'failed')
- Return type:
dict with keys
- query_batch(taskids)[source]#
Query multiple tasks’ status and merge results.
Overall status is the worst case:
'failed'>'running'>'success'.
- submit(circuit, *, shots=1000, **kwargs)[source]#
Submit a circuit to the backend and return a task ID.