from __future__ import annotations
import datetime
from enum import Enum
from typing import Dict, Iterable, List, Optional, Sequence, Tuple, Union, final
import numpy as np
from numpy.typing import NDArray
from qcs_sdk.client import QCSClient as QCSClient
from qcs_sdk.compiler.quilc import CompilerOpts, QuilcClient
from qcs_sdk.qpu import QPUResultData, RawQPUReadoutData
from qcs_sdk.qpu.api import ExecutionOptions
from qcs_sdk.qpu.translation import TranslationOptions
from qcs_sdk.qvm import QVMClient, QVMResultData, RawQVMReadoutData
from qcs_sdk.diagnostics import _gather_diagnostics
from qcs_sdk import _tracing_subscriber as _tracing_subscriber
from qcs_sdk import client as client
from qcs_sdk import compiler as compiler
from qcs_sdk import qpu as qpu
from qcs_sdk import qvm as qvm
from qcs_sdk import diagnostics as diagnostics
__all__ = [
'ExeParameter',
'Executable',
'ExecutionData',
'ExecutionError',
'JobHandle',
'QCSClient',
'RegisterData',
'RegisterMap',
'RegisterMatrix',
'RegisterMatrixConversionError',
'ResultData',
'Service',
'_tracing_subscriber',
'client',
'compiler',
'qpu',
'qvm',
'reset_logging',
'__version__',
'_gather_diagnostics',
'diagnostics',
]
__version__: str = ...
class ExecutionError(RuntimeError):
...
@final
class Executable:
def __new__(
cls,
quil: str,
/,
registers: Optional[Sequence[str]] = None,
parameters: Optional[Sequence[ExeParameter]] = None,
shots: Optional[int] = None,
quilc_client: Optional[QuilcClient] = None,
compiler_options: Optional[CompilerOpts] = None,
) -> "Executable": ...
def execute_on_qvm(self, client: QVMClient) -> ExecutionData:
...
async def execute_on_qvm_async(self, client: QVMClient) -> ExecutionData:
...
def execute_on_qpu(
self,
quantum_processor_id: str,
endpoint_id: Optional[str] = None,
translation_options: Optional[TranslationOptions] = None,
execution_options: Optional[ExecutionOptions] = None,
) -> ExecutionData:
...
async def execute_on_qpu_async(
self,
quantum_processor_id: str,
endpoint_id: Optional[str] = None,
translation_options: Optional[TranslationOptions] = None,
execution_options: Optional[ExecutionOptions] = None,
) -> ExecutionData:
...
def submit_to_qpu(
self,
quantum_processor_id: str,
endpoint_id: Optional[str] = None,
translation_options: Optional[TranslationOptions] = None,
execution_options: Optional[ExecutionOptions] = None,
) -> JobHandle:
...
async def submit_to_qpu_async(
self,
quantum_processor_id: str,
endpoint_id: Optional[str] = None,
translation_options: Optional[TranslationOptions] = None,
execution_options: Optional[ExecutionOptions] = None,
) -> JobHandle:
...
def retrieve_results(self, job_handle: JobHandle) -> ExecutionData:
...
async def retrieve_results_async(self, job_handle: JobHandle) -> ExecutionData:
...
@final
class JobHandle:
@property
def job_id(self) -> str:
...
@property
def readout_map(self) -> Dict[str, str]:
...
@final
class ExeParameter:
def __new__(
cls,
name: str,
index: int,
value: float,
) -> "ExeParameter": ...
@property
def name(self) -> str: ...
@name.setter
def name(self, value: str): ...
@property
def index(self) -> int: ...
@index.setter
def index(self, value: int): ...
@property
def value(self) -> float: ...
@value.setter
def value(self, value: float): ...
@final
class Service(Enum):
Quilc = "Quilc"
QVM = "QVM"
QCS = "QCS"
QPU = "QPU"
class RegisterMatrixConversionError(ValueError):
...
@final
class RegisterMatrix:
def is_integer(self) -> bool: ...
def is_real(self) -> bool: ...
def is_complex(self) -> bool: ...
def as_integer(self) -> Optional[NDArray[np.int64]]: ...
def as_real(self) -> Optional[NDArray[np.float64]]: ...
def as_complex(self) -> Optional[NDArray[np.complex128]]: ...
def to_integer(self) -> NDArray[np.int64]: ...
def to_real(self) -> NDArray[np.float64]: ...
def to_complex(self) -> NDArray[np.complex128]: ...
@staticmethod
def from_integer(inner: NDArray[np.int64]) -> "RegisterMatrix": ...
@staticmethod
def from_real(inner: NDArray[np.float64]) -> "RegisterMatrix": ...
@staticmethod
def from_complex(inner: NDArray[np.complex128]) -> "RegisterMatrix": ...
def to_ndarray(self) -> Union[NDArray[np.complex128], NDArray[np.int64], NDArray[np.float64]]:
...
@final
class RegisterMap:
def get_register_matrix(self, register_name: str) -> Optional[RegisterMatrix]:
...
def get(self, key: str, default: Optional[RegisterMatrix] = None) -> Optional[RegisterMatrix]: ...
def items(self) -> Iterable[Tuple[str, RegisterMatrix]]: ...
def keys(self) -> Iterable[str]: ...
def values(self) -> Iterable[RegisterMatrix]: ...
def __iter__(self) -> Iterable[str]: ...
def __getitem__(self, item: str) -> RegisterMatrix: ...
def __contains__(self, key: str) -> bool: ...
def __len__(self) -> int: ...
@final
class ResultData:
def __new__(cls, inner: Union[QPUResultData, QVMResultData]) -> "ResultData":
...
def to_register_map(self) -> RegisterMap:
...
def to_raw_readout_data(self) -> Union[RawQPUReadoutData, RawQVMReadoutData]:
def inner(
self,
) -> Union[QVMResultData, QPUResultData]:
...
def is_qvm(self) -> bool: ...
def is_qpu(self) -> bool: ...
def as_qvm(self) -> Optional[QVMResultData]: ...
def as_qpu(self) -> Optional[QPUResultData]: ...
def to_qvm(self) -> QVMResultData: ...
def to_qpu(self) -> QPUResultData: ...
@staticmethod
def from_qvm(inner: QVMResultData) -> "ResultData": ...
@staticmethod
def from_qpu(inner: QPUResultData) -> "ResultData": ...
@final
class ExecutionData:
def __new__(cls, result_data: ResultData, duration: Optional[datetime.timedelta] = None): ...
@property
def result_data(self) -> ResultData: ...
@result_data.setter
def result_data(self, result_data: ResultData): ...
@property
def duration(self) -> Optional[datetime.timedelta]: ...
@duration.setter
def duration(self, duration: Optional[datetime.timedelta]): ...
@final
class RegisterData:
def __new__(cls, inner: Union[List[List[int]], List[List[float]], List[List[complex]]]) -> "RegisterData": ...
def inner(
self,
) -> Union[List[List[int]], List[List[float]], List[List[complex]]]:
...
def as_ndarray(self) -> Union[NDArray[np.int64], NDArray[np.float64], NDArray[np.complex128]]:
...
def is_i8(self) -> bool: ...
def is_i16(self) -> bool: ...
def is_f64(self) -> bool: ...
def is_complex32(self) -> bool: ...
def as_i8(self) -> Optional[List[List[int]]]: ...
def as_i16(self) -> Optional[List[List[int]]]: ...
def as_f64(self) -> Optional[List[List[float]]]: ...
def as_complex32(self) -> Optional[List[List[complex]]]: ...
def to_i8(self) -> List[List[int]]: ...
def to_i16(self) -> List[List[int]]: ...
def to_f64(self) -> List[List[float]]: ...
def to_complex32(self) -> List[List[complex]]: ...
@staticmethod
def from_i8(inner: Sequence[Sequence[int]]) -> "RegisterData": ...
@staticmethod
def from_i16(inner: Sequence[Sequence[int]]) -> "RegisterData": ...
@staticmethod
def from_f64(inner: Sequence[Sequence[float]]) -> "RegisterData": ...
@staticmethod
def from_complex32(inner: Sequence[Sequence[complex]]) -> "RegisterData": ...
def reset_logging():