uniqc.backend_adapter.task.optional_deps module

Optional dependency management with clear error messages.

This module provides utilities for handling optional dependencies across different quantum cloud platforms. When a dependency is not installed, users receive clear instructions on how to install it.

Usage:

# Check if dependency is available
from uniqc.backend_adapter.task.optional_deps import QUARK_AVAILABLE
if QUARK_AVAILABLE:
    from uniqc.backend_adapter.task.adapters.quark_adapter import QuarkAdapter

# Require dependency with error message
from uniqc.backend_adapter.task.optional_deps import require
quark = require("quark", "quark")  # Raises MissingDependencyError if not installed
uniqc.backend_adapter.task.optional_deps.check_cqlib()[source]

Check if the cqlib (TianYan / 天衍) package is available.

Returns:

True if cqlib can be imported, False otherwise.

uniqc.backend_adapter.task.optional_deps.check_lqcloud()[source]

Check if the lqcloud (LogicalQubit / 逻辑比特) package is available.

Returns:

True if lqcloud can be imported, False otherwise.

uniqc.backend_adapter.task.optional_deps.check_pyqpanda3()[source]

Check if the pyqpanda3 package is available.

Returns:

True if pyqpanda3 can be imported, False otherwise.

uniqc.backend_adapter.task.optional_deps.check_qiskit()[source]

Check if the qiskit and qiskit_ibm_runtime packages are available.

Returns:

True if both packages can be imported, False otherwise.

uniqc.backend_adapter.task.optional_deps.check_quark()[source]

Check if the QuarkStudio package is available.

Returns:

True if from quark import Task succeeds, False otherwise.

uniqc.backend_adapter.task.optional_deps.check_quarkcircuit()[source]

Check if QuarkStudio’s circuit metadata module is available.

uniqc.backend_adapter.task.optional_deps.check_qutip()[source]

Check if the QuTiP-based simulation stack is available.

Returns:

True if qutip and qutip_qip can be imported, False otherwise.

uniqc.backend_adapter.task.optional_deps.check_simulation(target='cpp')[source]

Check simulation support for a specific backend family.

Parameters:

target – Which simulation capability to check. - "cpp": built-in C++ simulator extension (default) - "qutip": QuTiP-based simulation stack - "all": both C++ simulator and QuTiP stack

Returns:

True if the requested simulation target is available, False otherwise.

Raises:

ValueError – If target is not one of "cpp", "qutip", or "all".

uniqc.backend_adapter.task.optional_deps.check_uniqc_cpp()[source]

Check if the uniqc_cpp C++ simulator extension is available.

Returns:

True if uniqc_cpp can be imported, False otherwise.

uniqc.backend_adapter.task.optional_deps.require(name, extra, install_hint=None)[source]

Import an optional module with a clear error message if missing.

Parameters:
  • name – The module name to import (e.g., ‘qiskit’, ‘cqlib’).

  • extra – The pip extras name for installation (e.g., ‘qiskit’). Note: as of the current release, qiskit is a core dependency (no extra).

  • install_hint – Optional explicit install / recovery hint that overrides the default unified-quantum[{extra}] message.

Returns:

The imported module.

Raises:

MissingDependencyError – If the module cannot be imported.