uniqc.task.adapters.dummy_adapter module#

Dummy adapter for local simulation without real quantum hardware.

This adapter provides a drop-in replacement for cloud backends using local simulation. It’s useful for: - Development and testing without cloud access - Offline development - Quick prototyping and debugging - Running circuits when API tokens are not available

The dummy adapter uses the built-in OriginIR simulator to execute circuits and returns results in the same format as cloud backends.

Usage:

from uniqc.task.adapters.dummy_adapter import DummyAdapter

# Create adapter with default settings adapter = DummyAdapter()

# Or with noise simulation adapter = DummyAdapter(noise_model={‘depol’: 0.01})

# Submit and query (results are immediately available) task_id = adapter.submit(originir_circuit, shots=1000) result = adapter.query(task_id)

Environment Variable:

UNIQC_DUMMY: Set to ‘true’, ‘1’, or ‘yes’ to enable dummy mode globally. When set, all task submissions use local simulation instead of real quantum backends.

class uniqc.task.adapters.dummy_adapter.DummyAdapter(noise_model=None, available_qubits=None, available_topology=None)[source]#

Bases: QuantumAdapter

Local simulator adapter that mimics cloud backends.

This adapter executes circuits locally using the built-in OriginIR simulator instead of submitting to real quantum hardware. It provides the same interface as cloud adapters, making it a drop-in replacement.

Features: - Immediate result availability (no waiting for queue) - Optional noise simulation - Deterministic task IDs (based on circuit hash) - Same result format as cloud backends

Variables:
  • name (str) – Adapter identifier (‘dummy’).

  • noise_model – Optional noise configuration for simulation.

  • available_qubits – List of qubit indices available for simulation.

  • available_topology – List of [u, v] edges defining qubit connectivity.

Parameters:
  • noise_model (Optional[Dict[str, Any]])

  • available_qubits (Optional[List[int]])

  • available_topology (Optional[List[List[int]]])

Example

>>> adapter = DummyAdapter()
>>> task_id = adapter.submit("QINIT 2\nH q[0]\nCNOT q[0] q[1]\nMEASURE")
>>> result = adapter.query(task_id)
>>> print(result['status'])
'success'
clear_cache()[source]#

Clear the internal result cache.

Return type:

None

is_available()[source]#

Check if the dummy adapter is available.

Returns:

True if the C++ simulation backend is available.

Return type:

bool

name: str = 'dummy'#
query(taskid)[source]#

Retrieve the cached result for a task.

Since dummy tasks are executed immediately on submission, results are always available instantly.

Parameters:

taskid (str) – Task identifier.

Returns:

Result dict with ‘status’ and ‘result’ (or ‘error’) keys.

Return type:

Dict[str, Any]

query_batch(taskids)[source]#

Query multiple tasks and merge results.

Parameters:

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

Returns:

Combined result dict with overall status and merged results.

Return type:

Dict[str, Any]

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

Simulate a circuit locally and cache the result.

The circuit is executed immediately using the local simulator, and results are cached for later retrieval via query().

Parameters:
  • circuit (str) – Circuit in OriginIR format (or pre-translated).

  • shots (int) – Number of measurement shots.

  • **kwargs (Any) – Additional parameters (ignored for dummy adapter).

Returns:

Task ID for result retrieval.

Return type:

str

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

Simulate multiple circuits locally.

Parameters:
  • circuits (List[str]) – List of circuits in OriginIR format.

  • shots (int) – Number of measurement shots per circuit.

  • **kwargs (Any) – Additional parameters (ignored).

Returns:

List of task IDs, one per circuit.

Return type:

List[str]

translate_circuit(originir)[source]#

Return the OriginIR string unchanged.

The dummy adapter accepts OriginIR directly, so no translation needed.

Parameters:

originir (str) – Circuit in OriginIR format.

Returns:

The same OriginIR string.

Return type:

str