qpandalite.task.adapters package#

Submodules#

qpandalite.task.adapters.base module#

Base adapter interface for quantum cloud backends.

Every backend adapter must implement this interface, providing: 1. Translation from OriginIR string to the provider's native circuit type. 2. Task submission via the provider's Python SDK (not raw REST). 3. Task status query and result retrieval.

The adapter layer replaces all direct requests REST calls within the task modules. Each adapter is a stateful object that holds the provider session / client and configuration.

class qpandalite.task.adapters.base.QuantumAdapter[源代码]

基类:ABC

Abstract base class for quantum cloud backend adapters.

Subclass this for each backend (originq_cloud, quafu, ibm, ...). Each adapter is instantiated once per task module and reused.

is_available()[源代码]

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.

返回类型:

bool

name: str = 'base'
abstractmethod query(taskid)[源代码]

Query a single task's status and result.

参数:

taskid (str) -- Task identifier.

返回:

  • status: 'success' | 'failed' | 'running'

  • result: execution result (present when status is 'success' or 'failed')

返回类型:

dict with keys

abstractmethod query_batch(taskids)[源代码]

Query multiple tasks' status and merge results.

Overall status is the worst case: 'failed' > 'running' > 'success'.

参数:

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

返回:

status, result (list of results).

返回类型:

dict with keys

abstractmethod submit(circuit, *, shots=1000, **kwargs)[源代码]

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

参数:
  • 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).

返回:

Task ID assigned by the backend.

返回类型:

str

abstractmethod submit_batch(circuits, *, shots=1000, **kwargs)[源代码]

Submit multiple circuits as a single batch.

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

  • shots (int) -- Number of measurement shots.

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

返回:

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

返回类型:

list[str]

abstractmethod translate_circuit(originir)[源代码]

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

参数:

originir (str) -- Circuit in OriginIR format.

返回:

Provider-specific circuit object.

返回类型:

Any

qpandalite.task.adapters.originq_adapter module#

OriginQ Cloud backend adapter.

Submits OriginIR circuits to the OriginQ Cloud service and retrieves results via the Python-native API (pyqpanda3 when available, or the HTTP REST API as a fallback). All HTTP communication is encapsulated in this adapter — no raw requests calls leak outside.

class qpandalite.task.adapters.originq_adapter.OriginQAdapter[源代码]

基类:QuantumAdapter

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

Communication is routed through _OriginQHttpClient — no raw requests calls in the platform task modules.

is_available()[源代码]

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

返回:

True if api_key, submit_url, and query_url are all configured.

返回类型:

bool

name: str = 'origin_qcloud'
query(taskid)[源代码]

Query a single task's status.

参数:

taskid (str)

返回类型:

dict[str, Any]

query_batch(taskids)[源代码]

Query multiple tasks and merge results.

参数:

taskids (list[str])

返回类型:

dict[str, Any]

query_sync(taskid, interval=2.0, timeout=60.0, retry=5)[源代码]

Poll task status until completion or timeout.

参数:
  • taskid (str | list[str])

  • interval (float)

  • timeout (float)

  • retry (int)

返回类型:

list[dict[str, Any]]

submit(circuit, *, shots=1000, **kwargs)[源代码]

Submit a single circuit to OriginQ Cloud.

参数:
  • circuit (str)

  • shots (int)

  • kwargs (Any)

返回类型:

str

submit_batch(circuits, *, shots=1000, **kwargs)[源代码]

Submit circuits as a group, splitting if needed.

参数:
  • circuits (list[str])

  • shots (int)

  • kwargs (Any)

返回类型:

str | list[str]

translate_circuit(originir)[源代码]

OriginQ Cloud accepts OriginIR strings directly.

参数:

originir (str)

返回类型:

str

qpandalite.task.adapters.qiskit_adapter module#

Qiskit backend adapter.

Translates OriginIR circuits to Qiskit QuantumCircuit objects and submits via the qiskit / qiskit_ibm_provider packages. No raw REST calls.

class qpandalite.task.adapters.qiskit_adapter.QiskitAdapter[源代码]

基类:QuantumAdapter

Adapter for IBM Quantum backends via Qiskit.

is_available()[源代码]

Check if the Qiskit adapter is available (IBM provider initialized).

返回:

True if the IBM provider was successfully initialized.

返回类型:

bool

name: str = 'ibm'
query(taskid)[源代码]

Query a single IBM Quantum job's status.

参数:

taskid (str)

返回类型:

dict[str, Any]

query_batch(taskids)[源代码]

Query multiple IBM Quantum jobs and merge results.

参数:

taskids (list[str])

返回类型:

dict[str, Any]

query_sync(taskid, interval=2.0, timeout=60.0, retry=5)[源代码]

Poll task status until completion or timeout.

参数:
  • taskid (str | list[str])

  • interval (float)

  • timeout (float)

  • retry (int)

返回类型:

list[dict[str, Any]]

submit(circuit, *, shots=1000, **kwargs)[源代码]

Submit a single circuit to IBM Quantum.

参数:
  • circuit (qiskit.QuantumCircuit)

  • shots (int)

  • kwargs (Any)

返回类型:

str

submit_batch(circuits, *, shots=1000, **kwargs)[源代码]

Submit multiple circuits as a batch. Returns a single job ID.

参数:
  • circuits (list['qiskit.QuantumCircuit'])

  • shots (int)

  • kwargs (Any)

返回类型:

str

translate_circuit(originir)[源代码]

Translate an OriginIR string to a Qiskit QuantumCircuit.

The conversion path is OriginIR → QASM string → Qiskit QuantumCircuit. This is the most compatible route given the current API surface of qpandalite.circuit_builder.qcircuit (which exposes QASM export but not a direct Qiskit-native constructor). An optimised direct path can be evaluated in a future iteration if needed.

参数:

originir (str)

返回类型:

qiskit.QuantumCircuit

qpandalite.task.adapters.quafu_adapter module#

Quafu backend adapter.

Translates OriginIR circuits to Quafu QuantumCircuit objects and submits via the quafu package (User / Task API). No raw REST calls.

class qpandalite.task.adapters.quafu_adapter.QuafuAdapter[源代码]

基类:QuantumAdapter

Adapter for the BAQIS Quafu (ScQ) quantum cloud platform.

VALID_CHIP_IDS = frozenset({'Dongling', 'ScQ-P10', 'ScQ-P10C', 'ScQ-P136', 'ScQ-P18'})
property api_token: str

Return the API token used for Quafu authentication.

返回:

The Quafu API token.

返回类型:

str

is_available()[源代码]

Check if the Quafu adapter is available (quafu package installed).

返回:

True if the quafu package was successfully imported.

返回类型:

bool

name: str = 'quafu'
query(taskid)[源代码]

Query a single Quafu task's status via SDK Task.retrieve().

Uses the internally maintained history dict so the caller does not need to pass any additional context.

参数:

taskid (str)

返回类型:

dict[str, Any]

query_batch(taskids)[源代码]

Query multiple Quafu tasks and merge results.

参数:

taskids (list[str])

返回类型:

dict[str, Any]

submit(circuit, *, shots=10000, **kwargs)[源代码]

Submit a single circuit to Quafu.

参数:
  • circuit (QuantumCircuit)

  • shots (int)

  • kwargs (Any)

返回类型:

str

submit_batch(circuits, *, shots=10000, **kwargs)[源代码]

Submit multiple circuits as a group to Quafu.

参数:
  • circuits (list['QuantumCircuit'])

  • shots (int)

  • kwargs (Any)

返回类型:

list[str]

translate_circuit(originir)[源代码]

Translate an OriginIR string to a Quafu QuantumCircuit.

参数:

originir (str)

返回类型:

QuantumCircuit

Module contents#

Quantum cloud backend adapters.

Each adapter provides a consistent interface (submit / query / translate) for a specific quantum computing provider, encapsulating all network communication within the adapter layer.

class qpandalite.task.adapters.OriginQAdapter[源代码]

基类:QuantumAdapter

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

Communication is routed through _OriginQHttpClient — no raw requests calls in the platform task modules.

is_available()[源代码]

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

返回:

True if api_key, submit_url, and query_url are all configured.

返回类型:

bool

name: str = 'origin_qcloud'
query(taskid)[源代码]

Query a single task's status.

参数:

taskid (str)

返回类型:

dict[str, Any]

query_batch(taskids)[源代码]

Query multiple tasks and merge results.

参数:

taskids (list[str])

返回类型:

dict[str, Any]

query_sync(taskid, interval=2.0, timeout=60.0, retry=5)[源代码]

Poll task status until completion or timeout.

参数:
  • taskid (str | list[str])

  • interval (float)

  • timeout (float)

  • retry (int)

返回类型:

list[dict[str, Any]]

submit(circuit, *, shots=1000, **kwargs)[源代码]

Submit a single circuit to OriginQ Cloud.

参数:
  • circuit (str)

  • shots (int)

  • kwargs (Any)

返回类型:

str

submit_batch(circuits, *, shots=1000, **kwargs)[源代码]

Submit circuits as a group, splitting if needed.

参数:
  • circuits (list[str])

  • shots (int)

  • kwargs (Any)

返回类型:

str | list[str]

translate_circuit(originir)[源代码]

OriginQ Cloud accepts OriginIR strings directly.

参数:

originir (str)

返回类型:

str

class qpandalite.task.adapters.QiskitAdapter[源代码]

基类:QuantumAdapter

Adapter for IBM Quantum backends via Qiskit.

is_available()[源代码]

Check if the Qiskit adapter is available (IBM provider initialized).

返回:

True if the IBM provider was successfully initialized.

返回类型:

bool

name: str = 'ibm'
query(taskid)[源代码]

Query a single IBM Quantum job's status.

参数:

taskid (str)

返回类型:

dict[str, Any]

query_batch(taskids)[源代码]

Query multiple IBM Quantum jobs and merge results.

参数:

taskids (list[str])

返回类型:

dict[str, Any]

query_sync(taskid, interval=2.0, timeout=60.0, retry=5)[源代码]

Poll task status until completion or timeout.

参数:
  • taskid (str | list[str])

  • interval (float)

  • timeout (float)

  • retry (int)

返回类型:

list[dict[str, Any]]

submit(circuit, *, shots=1000, **kwargs)[源代码]

Submit a single circuit to IBM Quantum.

参数:
  • circuit (qiskit.QuantumCircuit)

  • shots (int)

  • kwargs (Any)

返回类型:

str

submit_batch(circuits, *, shots=1000, **kwargs)[源代码]

Submit multiple circuits as a batch. Returns a single job ID.

参数:
  • circuits (list['qiskit.QuantumCircuit'])

  • shots (int)

  • kwargs (Any)

返回类型:

str

translate_circuit(originir)[源代码]

Translate an OriginIR string to a Qiskit QuantumCircuit.

The conversion path is OriginIR → QASM string → Qiskit QuantumCircuit. This is the most compatible route given the current API surface of qpandalite.circuit_builder.qcircuit (which exposes QASM export but not a direct Qiskit-native constructor). An optimised direct path can be evaluated in a future iteration if needed.

参数:

originir (str)

返回类型:

qiskit.QuantumCircuit

class qpandalite.task.adapters.QuafuAdapter[源代码]

基类:QuantumAdapter

Adapter for the BAQIS Quafu (ScQ) quantum cloud platform.

VALID_CHIP_IDS = frozenset({'Dongling', 'ScQ-P10', 'ScQ-P10C', 'ScQ-P136', 'ScQ-P18'})
property api_token: str

Return the API token used for Quafu authentication.

返回:

The Quafu API token.

返回类型:

str

is_available()[源代码]

Check if the Quafu adapter is available (quafu package installed).

返回:

True if the quafu package was successfully imported.

返回类型:

bool

name: str = 'quafu'
query(taskid)[源代码]

Query a single Quafu task's status via SDK Task.retrieve().

Uses the internally maintained history dict so the caller does not need to pass any additional context.

参数:

taskid (str)

返回类型:

dict[str, Any]

query_batch(taskids)[源代码]

Query multiple Quafu tasks and merge results.

参数:

taskids (list[str])

返回类型:

dict[str, Any]

submit(circuit, *, shots=10000, **kwargs)[源代码]

Submit a single circuit to Quafu.

参数:
  • circuit (QuantumCircuit)

  • shots (int)

  • kwargs (Any)

返回类型:

str

submit_batch(circuits, *, shots=10000, **kwargs)[源代码]

Submit multiple circuits as a group to Quafu.

参数:
  • circuits (list['QuantumCircuit'])

  • shots (int)

  • kwargs (Any)

返回类型:

list[str]

translate_circuit(originir)[源代码]

Translate an OriginIR string to a Quafu QuantumCircuit.

参数:

originir (str)

返回类型:

QuantumCircuit

class qpandalite.task.adapters.QuantumAdapter[源代码]

基类:ABC

Abstract base class for quantum cloud backend adapters.

Subclass this for each backend (originq_cloud, quafu, ibm, ...). Each adapter is instantiated once per task module and reused.

is_available()[源代码]

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.

返回类型:

bool

name: str = 'base'
abstractmethod query(taskid)[源代码]

Query a single task's status and result.

参数:

taskid (str) -- Task identifier.

返回:

  • status: 'success' | 'failed' | 'running'

  • result: execution result (present when status is 'success' or 'failed')

返回类型:

dict with keys

abstractmethod query_batch(taskids)[源代码]

Query multiple tasks' status and merge results.

Overall status is the worst case: 'failed' > 'running' > 'success'.

参数:

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

返回:

status, result (list of results).

返回类型:

dict with keys

abstractmethod submit(circuit, *, shots=1000, **kwargs)[源代码]

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

参数:
  • 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).

返回:

Task ID assigned by the backend.

返回类型:

str

abstractmethod submit_batch(circuits, *, shots=1000, **kwargs)[源代码]

Submit multiple circuits as a single batch.

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

  • shots (int) -- Number of measurement shots.

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

返回:

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

返回类型:

list[str]

abstractmethod translate_circuit(originir)[源代码]

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

参数:

originir (str) -- Circuit in OriginIR format.

返回:

Provider-specific circuit object.

返回类型:

Any