uniqc.task.adapters.originq_adapter module#

OriginQ Cloud backend adapter.

Submits OriginIR circuits to the OriginQ Cloud service using pyqpanda3.

Installation:

pip install unified-quantum[originq]

class uniqc.task.adapters.originq_adapter.OriginQAdapter[source]#

Bases: QuantumAdapter

Adapter for OriginQ Cloud (本源量子云) using pyqpanda3.

This adapter uses pyqpanda3’s QCloudService API for cloud task submission, which simplifies configuration by only requiring an API key.

Note

The pyqpanda3 package is required for this adapter. Install with: pip install unified-quantum[originq]

is_available()[source]#

Check if the OriginQ adapter is available (credentials configured).

Returns:

True if api_key is configured.

Return type:

bool

list_backends()[source]#

Return raw OriginQ Cloud backend metadata.

For each hardware backend (non-simulator), fetches chip_info() to populate qubit count, topology, fidelity, and coherence data.

Returns:

name, available, num_qubits, topology (list of [u, v] edge pairs), available_qubits, avg_1q_fidelity, avg_2q_fidelity, avg_readout_fidelity, coherence_t1, coherence_t2.

Return type:

List of dicts with keys

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

Query a single task’s status.

Parameters:

taskid (str) – Task ID to query.

Returns:

taskid, status, result (if completed)

Return type:

dict with keys

query_batch(taskids)[source]#

Query multiple tasks and merge results.

Parameters:

taskids (list[str]) – List of task IDs to query.

Returns:

Combined result dict with status and merged results.

Return type:

dict[str, Any]

query_sync(taskid, interval=2.0, timeout=60.0, retry=5)[source]#

Poll task status until completion or timeout.

Parameters:
  • taskid (str | list[str]) – Task ID or list of task IDs.

  • interval (float) – Polling interval in seconds.

  • timeout (float) – Maximum wait time in seconds.

  • retry (int) – Number of retries on query failure.

Returns:

List of result dicts.

Raises:
Return type:

list[dict[str, Any]]

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

Submit a single circuit to OriginQ Cloud.

Parameters:
  • circuit (str) – OriginIR format circuit string.

  • shots (int) – Number of measurement shots.

  • **kwargs (Any) – Additional options: - backend_name: Backend name (e.g., ‘origin:wuyuan:d5’) - circuit_optimize: Enable circuit optimization (default: True) - measurement_amend: Enable measurement amendment (default: False) - auto_mapping: Enable automatic qubit mapping (default: False)

Returns:

Task ID string.

Return type:

str

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

Submit circuits as a group.

Note: pyqpanda3 handles batch submission internally. This method submits circuits sequentially if needed for grouping.

Parameters:
  • circuits (list[str]) – List of OriginIR format circuit strings.

  • shots (int) – Number of measurement shots.

  • **kwargs (Any) – Additional options (see submit()).

Returns:

Single task ID or list of task IDs if split into groups.

Return type:

str | list[str]

translate_circuit(originir)[source]#

Convert OriginIR string to QProg using pyqpanda3.

Parameters:

originir (str) – OriginIR format circuit string.

Returns:

QProg object for pyqpanda3.

Return type:

Any