Source code for qiskit.pulse.instructions.snapshot
# This code is part of Qiskit.
# (C) Copyright IBM 2019.
# This code is licensed under the Apache License, Version 2.0. You may
# obtain a copy of this license in the LICENSE.txt file in the root directory
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
# Any modifications or derivative works of this code must retain this
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""A simulator instruction to capture output within a simulation. The types of snapshot
instructions available are determined by the simulator being used.
from typing import Optional, Tuple
from qiskit.pulse.channels import SnapshotChannel
from qiskit.pulse.exceptions import PulseError
from qiskit.pulse.instructions.instruction import Instruction
"""An instruction targeted for simulators, to capture a moment in the simulation."""
def __init__(self, label: str, snapshot_type: str = "statevector", name: Optional[str] = None):
"""Create new snapshot.
label: Snapshot label which is used to identify the snapshot in the output.
snapshot_type: Type of snapshot, e.g., “state” (take a snapshot of the quantum state).
The types of snapshots offered are defined by the simulator used.
name: Snapshot name which defaults to ``label``. This parameter is only for display
purposes and is not taken into account during comparison.
self._channel = SnapshotChannel()
if name is None:
name = label
super().__init__(operands=(label, snapshot_type), name=name)
"""Called after initialization to validate instruction data.
PulseError: If snapshot label is invalid.
if not isinstance(self.label, str):
raise PulseError("Snapshot label must be a string.")
def label(self) -> str:
"""Label of snapshot."""
def type(self) -> str:
"""Type of snapshot."""
def channel(self) -> SnapshotChannel:
"""Return the :py:class:`~qiskit.pulse.channels.Channel` that this instruction is
scheduled on; trivially, a ``SnapshotChannel``.
def channels(self) -> Tuple[SnapshotChannel]:
"""Returns the channels that this schedule uses."""
def duration(self) -> int:
"""Duration of this instruction."""
[docs] def is_parameterized(self) -> bool:
"""Return True iff the instruction is parameterized."""