from typing import Dict, List, Sequence, Mapping, Optional, Tuple, final
from typing_extensions import Self
from qcs_sdk import RegisterData
from qcs_sdk.client import QCSClient
from qcs_sdk.qvm import QVMOptions, QVMClient
__all__ = [
'AddressRequest',
'ExpectationRequest',
'MultishotMeasureRequest',
'MultishotRequest',
'MultishotResponse',
'WavefunctionRequest',
'get_version_info',
'get_version_info_async',
'get_wavefunction',
'get_wavefunction_async',
'measure_expectation',
'measure_expectation_async',
'run',
'run_and_measure',
'run_and_measure_async',
'run_async',
]
def get_version_info(
client: QVMClient, options: Optional[QVMOptions] = None
) -> str:
...
async def get_version_info_async(
client: QVMClient, options: Optional[QVMOptions] = None
) -> str:
...
@final
class AddressRequest:
@staticmethod
def include_all() -> AddressRequest:
...
@staticmethod
def exclude_all() -> AddressRequest:
...
@staticmethod
def from_indices(indices: Sequence[int]) -> AddressRequest:
...
@final
class MultishotRequest:
def __new__(
cls,
program: str,
shots: int,
addresses: Mapping[str, AddressRequest],
measurement_noise: Optional[Tuple[float, float, float]],
gate_noise: Optional[Tuple[float, float, float]],
rng_seed: Optional[int],
) -> Self: ...
@property
def compiled_quil(self) -> str: ...
@compiled_quil.setter
def compiled_quil(self, value: str): ...
@property
def trials(self) -> int: ...
@trials.setter
def trials(self, value: int): ...
@property
def addresses(self) -> Dict[str, AddressRequest]: ...
@addresses.setter
def addresses(self, value: Dict[str, AddressRequest]): ...
@property
def measurement_noise(self) -> Tuple[float, float, float]: ...
@measurement_noise.setter
def measurement_noise(self, value: Tuple[float, float, float]): ...
@property
def gate_noise(self) -> Tuple[float, float, float]: ...
@gate_noise.setter
def gate_noise(self, value: Tuple[float, float, float]): ...
@property
def rng_seed(self) -> Optional[int]: ...
@rng_seed.setter
def rng_seed(self, value: Optional[int]): ...
@final
class MultishotResponse:
@property
def registers(self) -> Dict[str, RegisterData]: ...
@registers.setter
def registers(self, value: Mapping[str, RegisterData]): ...
def run(
request: MultishotRequest,
client: QVMClient,
options: Optional[QVMOptions] = None,
) -> MultishotResponse:
...
async def run_async(
request: MultishotRequest,
client: QVMClient,
options: Optional[QVMOptions] = None,
) -> MultishotResponse:
...
@final
class MultishotMeasureRequest:
def __new__(
cls,
compiled_quil: str,
trials: int,
qubits: Sequence[int],
measurement_noise: Optional[Tuple[float, float, float]] = None,
gate_noise: Optional[Tuple[float, float, float]] = None,
rng_seed: Optional[int] = None,
) -> Self: ...
@property
def compiled_quil(self) -> str: ...
@compiled_quil.setter
def compiled_quil(self, value: str): ...
@property
def trials(self) -> int: ...
@trials.setter
def trials(self, value: int): ...
@property
def qubits(self) -> List[int]: ...
@qubits.setter
def qubits(self, value: Sequence[int]): ...
@property
def measurement_noise(self) -> Optional[Tuple[float, float, float]]: ...
@measurement_noise.setter
def measurement_noise(self, value: Optional[Tuple[float, float, float]]): ...
@property
def gate_noise(self) -> Tuple[float, float, float]: ...
@gate_noise.setter
def gate_noise(self, value: Tuple[float, float, float]): ...
@property
def rng_seed(self) -> Optional[int]: ...
@rng_seed.setter
def rng_seed(self, value: Optional[int]): ...
def run_and_measure(
request: MultishotMeasureRequest,
client: QVMClient,
options: Optional[QVMOptions] = None,
) -> List[List[int]]:
...
def run_and_measure_async(
request: MultishotMeasureRequest,
client: QVMClient,
options: Optional[QVMOptions] = None,
) -> List[List[int]]:
...
@final
class ExpectationRequest:
def __new__(
cls, state_preparation: str, operators: Sequence, rng_seed: Optional[int] = None
) -> Self: ...
@property
def state_preparation(self) -> str: ...
@state_preparation.setter
def state_preparation(self, value: str): ...
@property
def operators(self) -> List: ...
@operators.setter
def operators(self, value: Sequence): ...
@property
def rng_seed(self) -> Optional[int]: ...
@rng_seed.setter
def rng_seed(self, value: Optional[int]): ...
def measure_expectation(
request: ExpectationRequest,
client: QVMClient,
options: Optional[QVMOptions] = None,
) -> List[float]:
...
def measure_expectation_async(
request: ExpectationRequest,
client: QVMClient,
options: Optional[QVMOptions] = None,
) -> List[float]:
...
@final
class WavefunctionRequest:
def __new__(
cls,
compiled_quil: str,
measurement_noise: Optional[Tuple[float, float, float]] = None,
gate_noise: Optional[Tuple[float, float, float]] = None,
rng_seed: Optional[int] = None,
) -> Self: ...
@property
def compiled_quil(self) -> str: ...
@compiled_quil.setter
def compiled_quil(self, value: str): ...
@property
def measurement_noise(self) -> Tuple[float, float, float]: ...
@measurement_noise.setter
def measurement_noise(self, value: Tuple[float, float, float]): ...
@property
def gate_noise(self) -> Tuple[float, float, float]: ...
@gate_noise.setter
def gate_noise(self, value: Tuple[float, float, float]): ...
@property
def rng_seed(self) -> Optional[int]: ...
@rng_seed.setter
def rng_seed(self, value: Optional[int]): ...
def get_wavefunction(
request: WavefunctionRequest,
client: QVMClient,
options: Optional[QVMOptions] = None,
) -> bytes:
...
def get_wavefunction_async(
request: WavefunctionRequest,
client: QVMClient,
options: Optional[QVMOptions] = None,
) -> List[int]:
...