qxmt.devices.base module

qxmt.devices.base module#

class qxmt.devices.base.BaseDevice(platform, device_name, backend_name, n_qubits, shots, random_seed=None, logger=<Logger qxmt.devices.base (INFO)>)

Bases: ABC

Abstract base class for quantum devices.

Parameters:
  • platform (str)

  • device_name (str)

  • backend_name (str | None)

  • n_qubits (int)

  • shots (int | None)

  • random_seed (int | None)

  • logger (Logger)

__init__(platform, device_name, backend_name, n_qubits, shots, random_seed=None, logger=<Logger qxmt.devices.base (INFO)>)

Initialize the quantum device.

Parameters:
  • platform (str) – platform name (ex: pennylane, qulacs, etc.)

  • device_name (str) – device name provided by the platform (ex: default.qubit, default.tensor, etc.)

  • backend_name (Optional[str]) – backend name for the real device

  • n_qubits (int) – number of qubits

  • shots (Optional[int]) – number of shots for the quantum circuit

  • random_seed (Optional[int]) – random seed for the quantum device

  • logger (Logger) – logger instance

Return type:

None

abstractmethod get_backend_name()

Get real machine backend name.

Returns:

backend name

Return type:

str

abstractmethod get_device()

Get the quantum device instance.

Returns:

quantum device instance

Return type:

Any

abstractmethod get_job_ids(created_after=None, created_before=None)

Get the job IDs.

Parameters:
  • created_after (Optional[datetime]) – created datetime of the jobs. If None, start time filter is not applied.

  • created_before (Optional[datetime]) – finished datetime of the jobs. If None, end time filter is not applied.

Returns:

job IDs

Return type:

list[str]

abstractmethod get_provider()

Get real machine provider name.

Returns:

provider name

Return type:

str

is_amazon_device(device_type='all')

Check if the device is an Amazon Braket device.

Parameters:

device_type (Literal["local", "remote", "all"]) – type of Amazon Braket device

Returns:

True if the device is an Amazon Braket device, False otherwise

Return type:

bool

is_ibmq_device()

Check if the device is an IBM Quantum device.

Returns:

True if the device is an IBM Quantum device, False otherwise

Return type:

bool

abstractmethod is_remote()

Check if the device is a remote device.

Returns:

True if the device is a remote device, False otherwise

Return type:

bool

abstractmethod is_simulator()

Check if the device is a simulator or real machine.

Returns:

True if the device is a simulator, False otherwise

Return type:

bool