qcs 0.26.2-rc.0

High level interface for running Quil on a QPU
Documentation
# This file is automatically generated by pyo3_stub_gen
# ruff: noqa: E501, F401

import builtins
import collections.abc
import typing
from qcs_sdk import RegisterData
from qcs_sdk.qvm import QVMClient, QVMOptions

class AddressRequest:
    r"""
    An enum encapsulating the different ways to request data back from the QVM for an address.
    """
    @typing.final
    class ExcludeAll(AddressRequest):
        r"""
        Exclude all values for the address.
        """
        __match_args__ = ()
        def __getitem__(self, key: builtins.int) -> typing.Any: ...
        def __len__(self) -> builtins.int: ...
        def __new__(cls) -> AddressRequest.ExcludeAll: ...
    
    @typing.final
    class IncludeAll(AddressRequest):
        r"""
        Get all values for the address.
        """
        __match_args__ = ()
        def __getitem__(self, key: builtins.int) -> typing.Any: ...
        def __len__(self) -> builtins.int: ...
        def __new__(cls) -> AddressRequest.IncludeAll: ...
    
    @typing.final
    class Indices(AddressRequest):
        r"""
        A list of specific indices to get back for the address.
        """
        __match_args__ = ("_0",)
        @property
        def _0(self) -> builtins.list[builtins.int]: ...
        def __getitem__(self, key: builtins.int) -> typing.Any: ...
        def __len__(self) -> builtins.int: ...
        def __new__(cls, _0: typing.Sequence[builtins.int]) -> AddressRequest.Indices: ...
    
    ...

@typing.final
class ExpectationRequest:
    r"""
    The request body needed for a [`measure_expectation`] request to the QVM.
    """
    @property
    def operators(self) -> builtins.list[builtins.str]:
        r"""
        A list of Pauli operators to measure.
        """
    @property
    def rng_seed(self) -> typing.Optional[builtins.int]:
        r"""
        An optional seed for the random number generator.
        """
    @property
    def state_preparation(self) -> builtins.str:
        r"""
        A Quil program defining the state.
        """
    def __new__(cls, state_preparation: builtins.str, operators: typing.Sequence[builtins.str], rng_seed: typing.Optional[builtins.int] = None) -> ExpectationRequest:
        r"""
        Creates a new `ExpectationRequest` using the given parameters.
        """

@typing.final
class MultishotMeasureRequest:
    r"""
    The request body needed for a [`run_and_measure`] request to the QVM.
    """
    @property
    def compiled_quil(self) -> builtins.str:
        r"""
        The Quil program to run.
        """
    @property
    def gate_noise(self) -> typing.Optional[tuple[builtins.float, builtins.float, builtins.float]]:
        r"""
        Simulated gate noise for the X, Y, and Z axes.
        """
    @property
    def measurement_noise(self) -> typing.Optional[tuple[builtins.float, builtins.float, builtins.float]]:
        r"""
        Simulated measurement noise for the X, Y, and Z axes.
        """
    @property
    def qubits(self) -> builtins.list[builtins.int]:
        r"""
        Qubits to measure
        """
    @property
    def rng_seed(self) -> typing.Optional[builtins.int]:
        r"""
        An optional seed for the random number generator.
        """
    @property
    def trials(self) -> builtins.int: ...
    @trials.setter
    def trials(self, value: builtins.int) -> None: ...
    def __new__(cls, compiled_quil: builtins.str, trials: builtins.int, qubits: builtins.list[builtins.int], measurement_noise: typing.Optional[tuple[builtins.float, builtins.float, builtins.float]] = None, gate_noise: typing.Optional[tuple[builtins.float, builtins.float, builtins.float]] = None, rng_seed: typing.Optional[builtins.int] = None) -> MultishotMeasureRequest:
        r"""
        Construct a new `MultishotMeasureRequest` using the given parameters.
        """

@typing.final
class MultishotRequest:
    r"""
    The request body needed to make a multishot [`run`] request to the QVM.
    """
    @property
    def addresses(self) -> builtins.dict[builtins.str, AddressRequest]:
        r"""
        The memory regions to include in the response.
        """
    @addresses.setter
    def addresses(self, value: builtins.dict[builtins.str, AddressRequest]) -> None:
        r"""
        The memory regions to include in the response.
        """
    @property
    def compiled_quil(self) -> builtins.str:
        r"""
        The Quil program to run.
        """
    @compiled_quil.setter
    def compiled_quil(self, value: builtins.str) -> None:
        r"""
        The Quil program to run.
        """
    @property
    def gate_noise(self) -> typing.Optional[tuple[builtins.float, builtins.float, builtins.float]]:
        r"""
        Simulated gate noise for the X, Y, and Z axes.
        """
    @gate_noise.setter
    def gate_noise(self, value: typing.Optional[tuple[builtins.float, builtins.float, builtins.float]]) -> None:
        r"""
        Simulated gate noise for the X, Y, and Z axes.
        """
    @property
    def measurement_noise(self) -> typing.Optional[tuple[builtins.float, builtins.float, builtins.float]]:
        r"""
        Simulated measurement noise for the X, Y, and Z axes.
        """
    @measurement_noise.setter
    def measurement_noise(self, value: typing.Optional[tuple[builtins.float, builtins.float, builtins.float]]) -> None:
        r"""
        Simulated measurement noise for the X, Y, and Z axes.
        """
    @property
    def rng_seed(self) -> typing.Optional[builtins.int]:
        r"""
        An optional seed for the random number generator.
        """
    @rng_seed.setter
    def rng_seed(self, value: typing.Optional[builtins.int]) -> None:
        r"""
        An optional seed for the random number generator.
        """
    @property
    def trials(self) -> builtins.int: ...
    @trials.setter
    def trials(self, value: builtins.int) -> None: ...
    def __new__(cls, program: builtins.str, shots: builtins.int, addresses: typing.Mapping[builtins.str, AddressRequest], measurement_noise: typing.Optional[tuple[builtins.float, builtins.float, builtins.float]] = None, gate_noise: typing.Optional[tuple[builtins.float, builtins.float, builtins.float]] = None, rng_seed: typing.Optional[builtins.int] = None) -> MultishotRequest:
        r"""
        Creates a new `MultishotRequest` with the given parameters.
        """

@typing.final
class MultishotResponse:
    r"""
    The response body returned by the QVM after a multishot [`run`] request.
    """
    @property
    def registers(self) -> builtins.dict[builtins.str, RegisterData]:
        r"""
        The requested readout registers and their final values for each shot.
        """

@typing.final
class WavefunctionRequest:
    r"""
    The request body needed to make a [`get_wavefunction`] request to the QVM.
    """
    @property
    def compiled_quil(self) -> builtins.str:
        r"""
        The Quil program to run.
        """
    @property
    def gate_noise(self) -> typing.Optional[tuple[builtins.float, builtins.float, builtins.float]]:
        r"""
        Simulated gate noise for the X, Y, and Z axes.
        """
    @property
    def measurement_noise(self) -> typing.Optional[tuple[builtins.float, builtins.float, builtins.float]]:
        r"""
        Simulated measurement noise for the X, Y, and Z axes.
        """
    @property
    def rng_seed(self) -> typing.Optional[builtins.int]:
        r"""
        An optional seed for the random number generator.
        """
    def __new__(cls, compiled_quil: builtins.str, measurement_noise: typing.Optional[tuple[builtins.float, builtins.float, builtins.float]] = None, gate_noise: typing.Optional[tuple[builtins.float, builtins.float, builtins.float]] = None, rng_seed: typing.Optional[builtins.int] = None) -> WavefunctionRequest:
        r"""
        Create a new `WavefunctionRequest` with the given parameters.
        """

def get_version_info(client: QVMClient, options: typing.Optional[QVMOptions] = None) -> builtins.str: ...

def get_version_info_async(client: QVMClient, options: typing.Optional[QVMOptions] = None) -> collections.abc.Awaitable[builtins.str]: ...

def get_wavefunction(request: WavefunctionRequest, client: QVMClient, options: typing.Optional[QVMOptions] = None) -> builtins.list[builtins.int]: ...

def get_wavefunction_async(request: WavefunctionRequest, client: QVMClient, options: typing.Optional[QVMOptions] = None) -> collections.abc.Awaitable[builtins.list[builtins.int]]: ...

def measure_expectation(request: ExpectationRequest, client: QVMClient, options: typing.Optional[QVMOptions] = None) -> builtins.list[builtins.float]: ...

def measure_expectation_async(request: ExpectationRequest, client: QVMClient, options: typing.Optional[QVMOptions] = None) -> collections.abc.Awaitable[builtins.list[builtins.float]]: ...

def run(request: MultishotRequest, client: QVMClient, options: typing.Optional[QVMOptions] = None) -> MultishotResponse: ...

def run_and_measure(request: MultishotMeasureRequest, client: QVMClient, options: typing.Optional[QVMOptions] = None) -> builtins.list[builtins.list[builtins.int]]: ...

def run_and_measure_async(request: MultishotMeasureRequest, client: QVMClient, options: typing.Optional[QVMOptions] = None) -> collections.abc.Awaitable[builtins.list[builtins.list[builtins.int]]]: ...

def run_async(request: MultishotRequest, client: QVMClient, options: typing.Optional[QVMOptions] = None) -> collections.abc.Awaitable[MultishotResponse]: ...