uniqc.backend_adapter.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:

https://docs.quantum.ibm.com/qiskit-ibm-runtime

class uniqc.backend_adapter.task.adapters.ibm_adapter.IBMAdapter(proxy=None)[source]

Bases: QuantumAdapter

Deprecated: delegates to QiskitAdapter.

Deprecated since version IBMAdapter: is deprecated. Use QiskitAdapter instead, which uses qiskit-ibm-runtime for task submission.

This class is kept for backwards compatibility and delegates all operations to an internal QiskitAdapter instance.

Parameters:

proxy (dict[str, str] | str | None)

get_chip_characterization(backend_name)[source]

Return per-qubit and per-pair calibration data for an IBM backend.

Delegates to QiskitAdapter.

Parameters:

backend_name (str) – IBM backend name, e.g. "ibm_brisbane".

Return type:

ChipCharacterization or None

is_available()[source]

Return True if the required packages / credentials are configured.

Defaults to False so that subclasses must explicitly opt-in, avoiding the risk of an unconfigured adapter incorrectly reporting availability.

Return type:

bool

list_backends()[source]

List IBM backends — delegates to QiskitAdapter.

Return type:

list[dict[str, Any]]

name: str = 'ibm'
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'.

Parameters:

taskids (list[str]) – List of task identifiers.

Returns:

status, result (list of results).

Return type:

dict with keys

query_sync(taskid, interval=2.0, timeout=60.0, retry=5)[source]
Parameters:
Return type:

list[dict[str, Any]]

submit(circuit, *, shots=1000, **kwargs)[source]

Submit a circuit to the backend and return a task ID.

Parameters:
  • circuit (Any) – Provider-native circuit object (result of translate_circuit).

  • shots (int) – Number of measurement shots.

  • **kwargs (Any) – Additional provider-specific parameters (e.g. chip_id, auto_mapping, circuit_optimize).

Returns:

Task ID assigned by the backend.

Return type:

str

submit_batch(circuits, *, shots=1000, **kwargs)[source]

Submit multiple circuits as a single batch.

Parameters:
  • circuits (list[Any]) – List of provider-native circuit objects.

  • shots (int) – Number of measurement shots.

  • **kwargs (Any) – Additional provider-specific parameters.

Returns:

Task IDs (one per circuit), or a single task ID if the backend returns a group ID.

Return type:

list[str]

translate_circuit(originir)[source]

Translate an OriginIR circuit string to the provider’s native circuit type.

Parameters:

originir (str) – Circuit in OriginIR format.

Returns:

Provider-specific circuit object.

Return type:

Any