iqm.iqm_client.models.NativeOperation#

class iqm.iqm_client.models.NativeOperation(name: str, arity: int, args_required: dict[str, tuple[type, ...]] = <factory>, args_not_required: dict[str, tuple[type, ...]] = <factory>, symmetric: bool = False, renamed_to: str = '', factorizable: bool = False, no_calibration_needed: bool = False)#

Bases: object

Describes a native operation on the quantum computer.

Attributes

factorizable

Iff True, any multi-component instance of this operation can be broken down to single-component instances, and calibration data is specific to single-component loci.

no_calibration_needed

Iff true, the operation is always allowed on all QPU loci regardless of calibration state.

renamed_to

If nonempty, indicates that this operation name is deprecated, and IQM client will auto-rename it to the new name.

symmetric

True iff the effect of operation is symmetric in the locus components it acts on.

name

Name of the operation.

arity

Number of locus components (usually qubits) the operation acts on.

args_required

Maps names of required operation parameters to their allowed types.

args_not_required

Maps names of optional operation parameters to their allowed types.

Methods

__delattr__(name)

Implement delattr(self, name).

__eq__(other)

Return self==value.

__hash__()

Return hash(self).

__repr__()

Return repr(self).

__setattr__(name, value)

Implement setattr(self, name, value).

Parameters:
name: str#

Name of the operation.

arity: int#

Number of locus components (usually qubits) the operation acts on. Zero means the operation can be applied on any number of locus components.

args_required: dict[str, tuple[type, ...]]#

Maps names of required operation parameters to their allowed types.

args_not_required: dict[str, tuple[type, ...]]#

Maps names of optional operation parameters to their allowed types.

symmetric: bool = False#

True iff the effect of operation is symmetric in the locus components it acts on. Only meaningful if arity != 1.

renamed_to: str = ''#

If nonempty, indicates that this operation name is deprecated, and IQM client will auto-rename it to the new name.

factorizable: bool = False#

Iff True, any multi-component instance of this operation can be broken down to single-component instances, and calibration data is specific to single-component loci.

no_calibration_needed: bool = False#

Iff true, the operation is always allowed on all QPU loci regardless of calibration state. Typically a metaoperation like barrier.