Providers

QMProvider

qiskit_qm_provider.providers.qm_provider.QMProvider

The standard provider for connecting to a local or server-based Quantum Orchestration Platform where the QuAM state is stored locally.

QMProvider is hardware-agnostic: users supply their own QuamRoot subclass (via quam_cls) and their own QMBackend subclass (via backend_cls) to match their specific hardware. When these are omitted, the provider falls back to FluxTunableQuam (from quam-builder) and the base QMBackend, respectively.

__init__(state_folder_path: Optional[str] = None, quam_cls: Type[QuamRoot] | None = None)

Initializes the provider.

  • state_folder_path: Path to the local QuAM state folder.

  • quam_cls: QuamRoot subclass to use for loading the machine. Defaults to FluxTunableQuam from quam-builder.

get_backend(machine: Optional[QuamRoot] = None, backend_cls: Type[QMBackend] | None = None, **backend_options) -> QMBackend

Returns a QMBackend (or subclass) instance.

  • machine: Optional pre-loaded QuAM instance. If None, loads from state_folder_path.

  • backend_cls: QMBackend subclass to instantiate (e.g. FluxTunableTransmonBackend or a custom subclass). Defaults to the base QMBackend.

  • **backend_options: Options passed to the backend constructor (e.g. qmm, name, shots, simulate).

get_machine() -> QuamRoot

Loads and returns the latest QuAM state from the state_folder_path.


QmSaasProvider

qiskit_qm_provider.providers.qm_saas_provider.QmSaasProvider

Provider for connecting to the Quantum Machines SaaS simulation platform.

Requires the qm-saas extras: pip install qiskit-qm-provider[qm-saas].

__init__(email: Optional[str], password: Optional[str], host: Optional[str], version: Optional[str])

Initializes the SaaS provider.

  • email, password, host: Credentials for the SaaS platform. If None, attempts to read from ~/qm_saas_config.json.

  • version: Optional QOP version string.

get_backend(quam_state_folder_path=None, simulation_config=None, quam_cls=None, backend_cls=None) -> QMBackend

Returns a QMBackend (or subclass) instance connected to a SaaS simulator.

  • quam_state_folder_path: Path to the QuAM state.

  • simulation_config: Simulation configuration (defaults to 10 000 clock cycles).

  • quam_cls: QuamRoot subclass for the machine.

  • backend_cls: QMBackend subclass to instantiate. Defaults to the base QMBackend.


IQCCProvider

qiskit_qm_provider.providers.iqcc_cloud_provider.IQCCProvider

Provider for accessing devices at the Israeli Quantum Computing Center (IQCC).

Requires the iqcc extras: pip install qiskit-qm-provider[iqcc].

IQCC backends are flux-tunable transmon machines; the provider always returns a FluxTunableTransmonBackend.

__init__(api_token: Optional[str] = None)

Initializes the IQCC provider.

  • api_token: API token for IQCC authentication.

get_machine(name: str, quam_state_folder_path: Optional[str] = None, quam_cls: Type[QuamRoot] | None = None) -> QuamRoot

Fetches the latest QuAM state for the given IQCC device and returns a loaded QuAM instance.

  • name: Name of the quantum computer (e.g., "arbel").

  • quam_state_folder_path: Optional path to the QuAM state folder. If omitted, the provider falls back to the QUAM_STATE_PATH environment variable. Supplying an explicit path is recommended for tests and non-interactive environments.

  • quam_cls: Optional QuamRoot subclass to use for loading the machine. If omitted, the provider defaults to the IQCC-specific QuAM implementation from iqcc_calibration_tools (when available), and otherwise falls back to the standard FluxTunableQuam from quam-builder.

get_backend(name: str | QuamRoot, quam_state_folder_path: Optional[str] = None, quam_cls: Type[QuamRoot] | None = None) -> FluxTunableTransmonBackend

Returns a FluxTunableTransmonBackend for the specified IQCC device or a pre-loaded QuAM instance.

  • name: Either the name of the quantum computer (e.g., "arbel") or a pre-loaded QuAM instance.

  • quam_state_folder_path: Optional path to the QuAM state folder when name is a string. If omitted, falls back to the QUAM_STATE_PATH environment variable.

  • quam_cls: Optional QuamRoot subclass to use when loading the machine. If omitted, the same default resolution as in get_machine is used (IQCC-specific QuAM from iqcc_calibration_tools when present, otherwise FluxTunableQuam from quam-builder).