qcs-sdk-python 0.26.0__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- README-py.md +111 -0
- THIRDPARTY.yaml +40894 -0
- qcs_sdk/__init__.py +23 -0
- qcs_sdk/__init__.pyi +441 -0
- qcs_sdk/_qcs_sdk.cp313-win_amd64.pyd +0 -0
- qcs_sdk/_tracing_subscriber/.stubtest-allowlist +7 -0
- qcs_sdk/_tracing_subscriber/__init__.py +17 -0
- qcs_sdk/_tracing_subscriber/__init__.pyi +131 -0
- qcs_sdk/_tracing_subscriber/common/__init__.py +18 -0
- qcs_sdk/_tracing_subscriber/common/__init__.pyi +46 -0
- qcs_sdk/_tracing_subscriber/layers/__init__.py +18 -0
- qcs_sdk/_tracing_subscriber/layers/__init__.pyi +30 -0
- qcs_sdk/_tracing_subscriber/layers/file/__init__.py +19 -0
- qcs_sdk/_tracing_subscriber/layers/file/__init__.pyi +42 -0
- qcs_sdk/_tracing_subscriber/layers/otel_otlp/__init__.py +18 -0
- qcs_sdk/_tracing_subscriber/layers/otel_otlp/__init__.pyi +118 -0
- qcs_sdk/_tracing_subscriber/layers/otel_otlp_file/__init__.py +18 -0
- qcs_sdk/_tracing_subscriber/layers/otel_otlp_file/__init__.pyi +38 -0
- qcs_sdk/_tracing_subscriber/subscriber/__init__.py +18 -0
- qcs_sdk/_tracing_subscriber/subscriber/__init__.pyi +25 -0
- qcs_sdk/client.pyi +124 -0
- qcs_sdk/compiler/__init__.pyi +5 -0
- qcs_sdk/compiler/quilc.pyi +316 -0
- qcs_sdk/diagnostics.pyi +36 -0
- qcs_sdk/qpu/__init__.pyi +216 -0
- qcs_sdk/qpu/api.pyi +484 -0
- qcs_sdk/qpu/experimental/__init__.pyi +5 -0
- qcs_sdk/qpu/experimental/random.pyi +98 -0
- qcs_sdk/qpu/isa.pyi +472 -0
- qcs_sdk/qpu/translation.pyi +180 -0
- qcs_sdk/qvm/__init__.pyi +162 -0
- qcs_sdk/qvm/api.pyi +236 -0
- qcs_sdk_python-0.26.0.dist-info/METADATA +130 -0
- qcs_sdk_python-0.26.0.dist-info/RECORD +36 -0
- qcs_sdk_python-0.26.0.dist-info/WHEEL +4 -0
- qcs_sdk_python-0.26.0.dist-info/sboms/qcs.cyclonedx.json +19204 -0
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
# This file is automatically generated by pyo3_stub_gen
|
|
2
|
+
# ruff: noqa: E501, F401
|
|
3
|
+
|
|
4
|
+
import builtins
|
|
5
|
+
import collections.abc
|
|
6
|
+
import typing
|
|
7
|
+
from qcs_sdk import QcsSdkError
|
|
8
|
+
from qcs_sdk.qpu.isa import InstructionSetArchitecture
|
|
9
|
+
from quil.program import Program
|
|
10
|
+
|
|
11
|
+
@typing.final
|
|
12
|
+
class CompilationResult:
|
|
13
|
+
r"""
|
|
14
|
+
The result of compiling a Quil program to native quil with `quilc`
|
|
15
|
+
"""
|
|
16
|
+
@property
|
|
17
|
+
def native_quil_metadata(self) -> typing.Optional[NativeQuilMetadata]:
|
|
18
|
+
r"""
|
|
19
|
+
Metadata about the compiled program
|
|
20
|
+
"""
|
|
21
|
+
@property
|
|
22
|
+
def program(self) -> Program:
|
|
23
|
+
r"""
|
|
24
|
+
The compiled program
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
@typing.final
|
|
28
|
+
class CompilerOpts:
|
|
29
|
+
r"""
|
|
30
|
+
A set of options that determine the behavior of compiling programs with quilc
|
|
31
|
+
"""
|
|
32
|
+
def __new__(cls, timeout: typing.Optional[builtins.float] = 30.0, protoquil: typing.Optional[builtins.bool] = None) -> CompilerOpts:
|
|
33
|
+
r"""
|
|
34
|
+
Create a new instance of `CompilerOpts`.
|
|
35
|
+
"""
|
|
36
|
+
@staticmethod
|
|
37
|
+
def default() -> CompilerOpts:
|
|
38
|
+
r"""
|
|
39
|
+
Create a new instance of `CompilerOpts` with default values.
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
@typing.final
|
|
43
|
+
class ConjugateByCliffordRequest:
|
|
44
|
+
r"""
|
|
45
|
+
Request to conjugate a Pauli Term by a Clifford element.
|
|
46
|
+
"""
|
|
47
|
+
@property
|
|
48
|
+
def clifford(self) -> builtins.str:
|
|
49
|
+
r"""
|
|
50
|
+
Clifford element.
|
|
51
|
+
"""
|
|
52
|
+
@property
|
|
53
|
+
def pauli(self) -> PauliTerm:
|
|
54
|
+
r"""
|
|
55
|
+
Pauli Term to conjugate.
|
|
56
|
+
"""
|
|
57
|
+
def __new__(cls, pauli: PauliTerm, clifford: builtins.str) -> ConjugateByCliffordRequest: ...
|
|
58
|
+
|
|
59
|
+
@typing.final
|
|
60
|
+
class ConjugatePauliByCliffordRequest:
|
|
61
|
+
r"""
|
|
62
|
+
The "outer" request shape for a `conjugate_pauli_by_clifford` request.
|
|
63
|
+
"""
|
|
64
|
+
@property
|
|
65
|
+
def args(self) -> builtins.list[ConjugateByCliffordRequest]: ...
|
|
66
|
+
|
|
67
|
+
@typing.final
|
|
68
|
+
class ConjugatePauliByCliffordResponse:
|
|
69
|
+
r"""
|
|
70
|
+
Conjugate Pauli by Clifford response.
|
|
71
|
+
"""
|
|
72
|
+
@property
|
|
73
|
+
def pauli(self) -> builtins.str:
|
|
74
|
+
r"""
|
|
75
|
+
Description of the encoded Pauli.
|
|
76
|
+
"""
|
|
77
|
+
@property
|
|
78
|
+
def phase(self) -> builtins.int:
|
|
79
|
+
r"""
|
|
80
|
+
Encoded global phase factor on the emitted Pauli.
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
@typing.final
|
|
84
|
+
class GenerateRandomizedBenchmarkingSequenceResponse:
|
|
85
|
+
r"""
|
|
86
|
+
Randomly generated benchmarking sequence response.
|
|
87
|
+
"""
|
|
88
|
+
@property
|
|
89
|
+
def sequence(self) -> builtins.list[builtins.list[builtins.int]]:
|
|
90
|
+
r"""
|
|
91
|
+
List of Cliffords, each expressed as a list of generator indices.
|
|
92
|
+
"""
|
|
93
|
+
|
|
94
|
+
@typing.final
|
|
95
|
+
class NativeQuilMetadata:
|
|
96
|
+
r"""
|
|
97
|
+
Metadata about a program compiled to native quil.
|
|
98
|
+
"""
|
|
99
|
+
def __eq__(self, other: builtins.object) -> builtins.bool: ...
|
|
100
|
+
def __getnewargs__(self) -> tuple[typing.Optional[builtins.list[builtins.int]], typing.Optional[builtins.int], typing.Optional[builtins.int], typing.Optional[builtins.int], typing.Optional[builtins.float], typing.Optional[builtins.float], typing.Optional[builtins.int], typing.Optional[builtins.float]]: ...
|
|
101
|
+
def __new__(cls, final_rewiring: typing.Optional[typing.Sequence[builtins.int]], gate_depth: typing.Optional[builtins.int], gate_volume: typing.Optional[builtins.int], multiqubit_gate_depth: typing.Optional[builtins.int], program_duration: typing.Optional[builtins.float], program_fidelity: typing.Optional[builtins.float], topological_swaps: typing.Optional[builtins.int], qpu_runtime_estimation: typing.Optional[builtins.float]) -> NativeQuilMetadata:
|
|
102
|
+
r"""
|
|
103
|
+
Construct a new `NativeQuilMetadata` from arguments.
|
|
104
|
+
"""
|
|
105
|
+
def __repr__(self) -> builtins.str:
|
|
106
|
+
r"""
|
|
107
|
+
Implements `__repr__` for Python in terms of the Rust
|
|
108
|
+
[`Debug`](std::fmt::Debug) implementation.
|
|
109
|
+
"""
|
|
110
|
+
|
|
111
|
+
@typing.final
|
|
112
|
+
class PauliTerm:
|
|
113
|
+
r"""
|
|
114
|
+
Pauli Term
|
|
115
|
+
"""
|
|
116
|
+
@property
|
|
117
|
+
def indices(self) -> builtins.list[builtins.int]:
|
|
118
|
+
r"""
|
|
119
|
+
Qubit indices onto which the factors of the Pauli term are applied.
|
|
120
|
+
"""
|
|
121
|
+
@property
|
|
122
|
+
def symbols(self) -> builtins.list[builtins.str]:
|
|
123
|
+
r"""
|
|
124
|
+
Ordered factors of the Pauli term.
|
|
125
|
+
"""
|
|
126
|
+
def __new__(cls, indices: typing.Sequence[builtins.int], symbols: typing.Sequence[builtins.str]) -> PauliTerm: ...
|
|
127
|
+
|
|
128
|
+
@typing.final
|
|
129
|
+
class QuilcClient:
|
|
130
|
+
r"""
|
|
131
|
+
Client used to communicate with Quilc.
|
|
132
|
+
"""
|
|
133
|
+
def __new__(cls) -> QuilcClient: ...
|
|
134
|
+
@staticmethod
|
|
135
|
+
def new_libquil() -> QuilcClient: ...
|
|
136
|
+
@staticmethod
|
|
137
|
+
def new_rpcq(endpoint: builtins.str) -> QuilcClient:
|
|
138
|
+
r"""
|
|
139
|
+
Construct a `QuilcClient` that uses RPCQ to communicate with Quilc.
|
|
140
|
+
"""
|
|
141
|
+
|
|
142
|
+
class QuilcError(QcsSdkError):
|
|
143
|
+
r"""
|
|
144
|
+
Errors encountered compiling a Quil program.
|
|
145
|
+
"""
|
|
146
|
+
...
|
|
147
|
+
|
|
148
|
+
@typing.final
|
|
149
|
+
class RandomizedBenchmarkingRequest:
|
|
150
|
+
r"""
|
|
151
|
+
Request to generate a randomized benchmarking sequence.
|
|
152
|
+
"""
|
|
153
|
+
@property
|
|
154
|
+
def depth(self) -> builtins.int:
|
|
155
|
+
r"""
|
|
156
|
+
Depth of the benchmarking sequence.
|
|
157
|
+
"""
|
|
158
|
+
@property
|
|
159
|
+
def gateset(self) -> builtins.list[builtins.str]:
|
|
160
|
+
r"""
|
|
161
|
+
List of Quil programs, each describing a Clifford.
|
|
162
|
+
"""
|
|
163
|
+
@property
|
|
164
|
+
def interleaver(self) -> typing.Optional[builtins.str]:
|
|
165
|
+
r"""
|
|
166
|
+
Fixed Clifford, specified as a Quil string, to interleave through an RB sequence.
|
|
167
|
+
"""
|
|
168
|
+
@property
|
|
169
|
+
def qubits(self) -> builtins.int:
|
|
170
|
+
r"""
|
|
171
|
+
Number of qubits involved in the benchmarking sequence.
|
|
172
|
+
"""
|
|
173
|
+
@property
|
|
174
|
+
def seed(self) -> typing.Optional[builtins.int]:
|
|
175
|
+
r"""
|
|
176
|
+
PRNG seed. Set this to guarantee repeatable results.
|
|
177
|
+
"""
|
|
178
|
+
def __new__(cls, depth: builtins.int, qubits: builtins.int, gateset: typing.Sequence[builtins.str], seed: typing.Optional[builtins.int], interleaver: typing.Optional[builtins.str]) -> RandomizedBenchmarkingRequest: ...
|
|
179
|
+
|
|
180
|
+
@typing.final
|
|
181
|
+
class TargetDevice:
|
|
182
|
+
r"""
|
|
183
|
+
Description of a device to compile for.
|
|
184
|
+
"""
|
|
185
|
+
@staticmethod
|
|
186
|
+
def from_isa(isa: InstructionSetArchitecture) -> TargetDevice:
|
|
187
|
+
r"""
|
|
188
|
+
Create a [`TargetDevice`] based on an [`InstructionSetArchitecture`].
|
|
189
|
+
|
|
190
|
+
# Errors
|
|
191
|
+
|
|
192
|
+
Returns a [`QuilcError`] if the [`InstructionSetArchitecture`]
|
|
193
|
+
cannot be converted into a format that Quilc understands.
|
|
194
|
+
"""
|
|
195
|
+
@staticmethod
|
|
196
|
+
def from_json(value: builtins.str) -> TargetDevice:
|
|
197
|
+
r"""
|
|
198
|
+
Create a [`TargetDevice`] from a JSON string.
|
|
199
|
+
|
|
200
|
+
# Errors
|
|
201
|
+
|
|
202
|
+
Returns a [`QuilcError`] if the JSON is malformed.
|
|
203
|
+
"""
|
|
204
|
+
|
|
205
|
+
def compile_program(quil: builtins.str, target: TargetDevice, client: QuilcClient, options: typing.Optional[CompilerOpts] = None) -> CompilationResult:
|
|
206
|
+
r"""
|
|
207
|
+
Compile a quil program for a target device.
|
|
208
|
+
|
|
209
|
+
:param quil: The Quil program to compile.
|
|
210
|
+
:param target: Architectural description of device to compile for.
|
|
211
|
+
:param client: Client used to send compilation requests to Quilc.
|
|
212
|
+
:param options: Optional compiler options. If ``None``, default values are used.
|
|
213
|
+
|
|
214
|
+
:raises QuilcError: If compilation fails.
|
|
215
|
+
"""
|
|
216
|
+
|
|
217
|
+
def compile_program_async(quil: builtins.str, target: TargetDevice, client: QuilcClient, options: typing.Optional[CompilerOpts] = None) -> collections.abc.Awaitable[CompilationResult]:
|
|
218
|
+
r"""
|
|
219
|
+
Compile a quil program for a target device.
|
|
220
|
+
|
|
221
|
+
:param quil: The Quil program to compile.
|
|
222
|
+
:param target: Architectural description of device to compile for.
|
|
223
|
+
:param client: Client used to send compilation requests to Quilc.
|
|
224
|
+
:param options: Optional compiler options. If ``None``, default values are used.
|
|
225
|
+
|
|
226
|
+
:raises QuilcError: If compilation fails.
|
|
227
|
+
"""
|
|
228
|
+
|
|
229
|
+
def conjugate_pauli_by_clifford(request: ConjugateByCliffordRequest, client: QuilcClient) -> ConjugatePauliByCliffordResponse:
|
|
230
|
+
r"""
|
|
231
|
+
Given a circuit that consists only of elements of the Clifford group, return its action on a PauliTerm.
|
|
232
|
+
In particular, for Clifford C, and Pauli P, this returns the PauliTerm representing CPC^{\dagger}.
|
|
233
|
+
|
|
234
|
+
:param request: Pauli Term conjugation request.
|
|
235
|
+
:param client: Client used to send compilation requests to Quilc.
|
|
236
|
+
|
|
237
|
+
:raises QuilcError: If there is a failure connecting to Quilc or if the request is malformed.
|
|
238
|
+
"""
|
|
239
|
+
|
|
240
|
+
def conjugate_pauli_by_clifford_async(request: ConjugateByCliffordRequest, client: QuilcClient) -> collections.abc.Awaitable[ConjugatePauliByCliffordResponse]:
|
|
241
|
+
r"""
|
|
242
|
+
Given a circuit that consists only of elements of the Clifford group, return its action on a PauliTerm.
|
|
243
|
+
In particular, for Clifford C, and Pauli P, this returns the PauliTerm representing CPC^{\dagger}.
|
|
244
|
+
|
|
245
|
+
:param request: Pauli Term conjugation request.
|
|
246
|
+
:param client: Client used to send compilation requests to Quilc.
|
|
247
|
+
|
|
248
|
+
:raises QuilcError: If there is a failure connecting to Quilc or if the request is malformed.
|
|
249
|
+
"""
|
|
250
|
+
|
|
251
|
+
def generate_randomized_benchmarking_sequence(request: RandomizedBenchmarkingRequest, client: QuilcClient) -> GenerateRandomizedBenchmarkingSequenceResponse:
|
|
252
|
+
r"""
|
|
253
|
+
Construct a randomized benchmarking experiment on the given qubits, decomposing into
|
|
254
|
+
gateset. If interleaver is not provided, the returned sequence will have the form
|
|
255
|
+
|
|
256
|
+
```ignore
|
|
257
|
+
C_1 C_2 ... C_(depth-1) C_inv ,
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
where each C is a Clifford element drawn from gateset, C_{< depth} are randomly selected,
|
|
261
|
+
and C_inv is selected so that the entire sequence composes to the identity. If an
|
|
262
|
+
interleaver G (which must be a Clifford, and which will be decomposed into the native
|
|
263
|
+
gateset) is provided, then the sequence instead takes the form
|
|
264
|
+
|
|
265
|
+
```ignore
|
|
266
|
+
C_1 G C_2 G ... C_(depth-1) G C_inv .
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
:param request: Randomized benchmarking request.
|
|
270
|
+
:param client: Client used to send compilation requests to Quilc.
|
|
271
|
+
|
|
272
|
+
:raises QuilcError: If there is a failure connecting to Quilc or if the request is malformed.
|
|
273
|
+
"""
|
|
274
|
+
|
|
275
|
+
def generate_randomized_benchmarking_sequence_async(request: RandomizedBenchmarkingRequest, client: QuilcClient) -> collections.abc.Awaitable[GenerateRandomizedBenchmarkingSequenceResponse]:
|
|
276
|
+
r"""
|
|
277
|
+
Construct a randomized benchmarking experiment on the given qubits, decomposing into
|
|
278
|
+
gateset. If interleaver is not provided, the returned sequence will have the form
|
|
279
|
+
|
|
280
|
+
```ignore
|
|
281
|
+
C_1 C_2 ... C_(depth-1) C_inv ,
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
where each C is a Clifford element drawn from gateset, C_{< depth} are randomly selected,
|
|
285
|
+
and C_inv is selected so that the entire sequence composes to the identity. If an
|
|
286
|
+
interleaver G (which must be a Clifford, and which will be decomposed into the native
|
|
287
|
+
gateset) is provided, then the sequence instead takes the form
|
|
288
|
+
|
|
289
|
+
```ignore
|
|
290
|
+
C_1 G C_2 G ... C_(depth-1) G C_inv .
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
:param request: Randomized benchmarking request.
|
|
294
|
+
:param client: Client used to send compilation requests to Quilc.
|
|
295
|
+
|
|
296
|
+
:raises QuilcError: If there is a failure connecting to Quilc or if the request is malformed.
|
|
297
|
+
"""
|
|
298
|
+
|
|
299
|
+
def get_version_info(client: QuilcClient) -> builtins.str:
|
|
300
|
+
r"""
|
|
301
|
+
Fetch the version information from the running Quilc service.
|
|
302
|
+
|
|
303
|
+
:param client: Client used to send compilation requests to Quilc.
|
|
304
|
+
|
|
305
|
+
:raises QuilcError: If there is a failure connecting to Quilc.
|
|
306
|
+
"""
|
|
307
|
+
|
|
308
|
+
def get_version_info_async(client: QuilcClient) -> collections.abc.Awaitable[builtins.str]:
|
|
309
|
+
r"""
|
|
310
|
+
Fetch the version information from the running Quilc service.
|
|
311
|
+
|
|
312
|
+
:param client: Client used to send compilation requests to Quilc.
|
|
313
|
+
|
|
314
|
+
:raises QuilcError: If there is a failure connecting to Quilc.
|
|
315
|
+
"""
|
|
316
|
+
|
qcs_sdk/diagnostics.pyi
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# This file is automatically generated by pyo3_stub_gen
|
|
2
|
+
# ruff: noqa: E501, F401
|
|
3
|
+
|
|
4
|
+
import builtins
|
|
5
|
+
import collections.abc
|
|
6
|
+
|
|
7
|
+
def get_report() -> builtins.str:
|
|
8
|
+
r"""
|
|
9
|
+
Return a string describing the package and its environment for use in bug reporting and diagnosis.
|
|
10
|
+
|
|
11
|
+
This is a synchronous wrapper around `get_report_async`.
|
|
12
|
+
Use that version in async environments.
|
|
13
|
+
|
|
14
|
+
Note: this format is not stable and its content may change between versions.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
def get_report_async() -> collections.abc.Awaitable[builtins.str]:
|
|
18
|
+
r"""
|
|
19
|
+
Return a string describing the package and its environment for use in bug reporting and diagnosis.
|
|
20
|
+
|
|
21
|
+
Note: this format is not stable and its content may change between versions.
|
|
22
|
+
|
|
23
|
+
# Python Usage
|
|
24
|
+
|
|
25
|
+
```python
|
|
26
|
+
import asyncio
|
|
27
|
+
from qcs_sdk import diagnostics
|
|
28
|
+
|
|
29
|
+
async def main():
|
|
30
|
+
return await diagnostics.get_report_async()
|
|
31
|
+
|
|
32
|
+
report = asyncio.run(main())
|
|
33
|
+
print(report)
|
|
34
|
+
```
|
|
35
|
+
"""
|
|
36
|
+
|
qcs_sdk/qpu/__init__.pyi
ADDED
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# This file is automatically generated by pyo3_stub_gen
|
|
2
|
+
# ruff: noqa: E501, F401
|
|
3
|
+
|
|
4
|
+
import builtins
|
|
5
|
+
import collections.abc
|
|
6
|
+
import typing
|
|
7
|
+
from qcs_sdk import QcsSdkError, RegisterMap
|
|
8
|
+
from qcs_sdk.client import QCSClient
|
|
9
|
+
from . import api
|
|
10
|
+
from . import experimental
|
|
11
|
+
from . import isa
|
|
12
|
+
from . import translation
|
|
13
|
+
|
|
14
|
+
class ListQuantumProcessorsError(QcsSdkError):
|
|
15
|
+
r"""
|
|
16
|
+
API Errors encountered when trying to list available quantum processors.
|
|
17
|
+
"""
|
|
18
|
+
...
|
|
19
|
+
|
|
20
|
+
class MemoryValues:
|
|
21
|
+
r"""
|
|
22
|
+
A row of data containing the contents of a memory region at the end of a job.
|
|
23
|
+
|
|
24
|
+
There is a variant for each possible type the memory region could be.
|
|
25
|
+
"""
|
|
26
|
+
def __getnewargs__(self) -> tuple[builtins.list[builtins.int] | builtins.list[builtins.float]]: ...
|
|
27
|
+
def __new__(cls, values: typing.Sequence[builtins.int] | typing.Sequence[builtins.float]) -> MemoryValues: ...
|
|
28
|
+
def inner(self) -> builtins.list[builtins.int] | builtins.list[builtins.float]: ...
|
|
29
|
+
@typing.final
|
|
30
|
+
class Binary(MemoryValues):
|
|
31
|
+
r"""
|
|
32
|
+
Values that correspond to a memory region declared with the BIT or OCTET data type.
|
|
33
|
+
"""
|
|
34
|
+
__match_args__ = ("_0",)
|
|
35
|
+
@property
|
|
36
|
+
def _0(self) -> builtins.list[builtins.int]: ...
|
|
37
|
+
def __getitem__(self, key: builtins.int) -> typing.Any: ...
|
|
38
|
+
def __len__(self) -> builtins.int: ...
|
|
39
|
+
def __new__(cls, _0: typing.Sequence[builtins.int]) -> MemoryValues.Binary: ...
|
|
40
|
+
|
|
41
|
+
@typing.final
|
|
42
|
+
class Integer(MemoryValues):
|
|
43
|
+
r"""
|
|
44
|
+
Values that correspond to a memory region declared with the INTEGER data type.
|
|
45
|
+
"""
|
|
46
|
+
__match_args__ = ("_0",)
|
|
47
|
+
@property
|
|
48
|
+
def _0(self) -> builtins.list[builtins.int]: ...
|
|
49
|
+
def __getitem__(self, key: builtins.int) -> typing.Any: ...
|
|
50
|
+
def __len__(self) -> builtins.int: ...
|
|
51
|
+
def __new__(cls, _0: typing.Sequence[builtins.int]) -> MemoryValues.Integer: ...
|
|
52
|
+
|
|
53
|
+
@typing.final
|
|
54
|
+
class Real(MemoryValues):
|
|
55
|
+
r"""
|
|
56
|
+
Values that correspond to a memory region declared with the REAL data type.
|
|
57
|
+
"""
|
|
58
|
+
__match_args__ = ("_0",)
|
|
59
|
+
@property
|
|
60
|
+
def _0(self) -> builtins.list[builtins.float]: ...
|
|
61
|
+
def __getitem__(self, key: builtins.int) -> typing.Any: ...
|
|
62
|
+
def __len__(self) -> builtins.int: ...
|
|
63
|
+
def __new__(cls, _0: typing.Sequence[builtins.float]) -> MemoryValues.Real: ...
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
@typing.final
|
|
67
|
+
class QPUResultData:
|
|
68
|
+
r"""
|
|
69
|
+
Encapsulates data returned from the QPU after executing a job.
|
|
70
|
+
|
|
71
|
+
`QpuResultData` contains "mappings", which map declared memory regions
|
|
72
|
+
in a program (ie. "ro[0]") to that region's readout key in `QpuResultData.readout_values`.
|
|
73
|
+
`readout_values` maps those readout keys to the values emitted for that region
|
|
74
|
+
across all shots.
|
|
75
|
+
|
|
76
|
+
Read more about QPU readout data in the
|
|
77
|
+
[QCS Documentation](https://docs.rigetti.com/qcs/guides/qpus-vs-qvms#qpu-readout-data)
|
|
78
|
+
"""
|
|
79
|
+
@property
|
|
80
|
+
def mappings(self) -> builtins.dict[builtins.str, builtins.str]:
|
|
81
|
+
r"""
|
|
82
|
+
Mappings of a memory region (ie. "ro[0]") to its key name in `readout_values` (ie. "q0").
|
|
83
|
+
"""
|
|
84
|
+
@property
|
|
85
|
+
def memory_values(self) -> builtins.dict[builtins.str, MemoryValues]:
|
|
86
|
+
r"""
|
|
87
|
+
The final contents of each memory region, keyed on region name.
|
|
88
|
+
"""
|
|
89
|
+
@property
|
|
90
|
+
def readout_values(self) -> builtins.dict[builtins.str, ReadoutValues]:
|
|
91
|
+
r"""
|
|
92
|
+
Mapping of a readout values identifier (ie. "q0") to a set of `ReadoutValues`.
|
|
93
|
+
"""
|
|
94
|
+
def __getnewargs__(self) -> tuple[builtins.dict[builtins.str, builtins.str], builtins.dict[builtins.str, ReadoutValues], builtins.dict[builtins.str, MemoryValues]]: ...
|
|
95
|
+
def __new__(cls, mappings: typing.Mapping[builtins.str, builtins.str], readout_values: typing.Mapping[builtins.str, ReadoutValues], memory_values: typing.Mapping[builtins.str, MemoryValues]) -> QPUResultData:
|
|
96
|
+
r"""
|
|
97
|
+
Construct a new `QPUResultData` from mappings and values.
|
|
98
|
+
"""
|
|
99
|
+
def __repr__(self) -> builtins.str:
|
|
100
|
+
r"""
|
|
101
|
+
Implements `__repr__` for Python in terms of the Rust
|
|
102
|
+
[`Debug`](std::fmt::Debug) implementation.
|
|
103
|
+
"""
|
|
104
|
+
def to_raw_readout_data(self) -> RawQPUReadoutData:
|
|
105
|
+
r"""
|
|
106
|
+
Get the raw readout data as a flattened structure.
|
|
107
|
+
"""
|
|
108
|
+
def to_register_map(self) -> RegisterMap:
|
|
109
|
+
r"""
|
|
110
|
+
Convert into a [`RegisterMap`].
|
|
111
|
+
|
|
112
|
+
The [`RegisterMatrix`] for each register will be
|
|
113
|
+
constructed such that each row contains all the final values in the register for a single shot.
|
|
114
|
+
|
|
115
|
+
# Errors
|
|
116
|
+
|
|
117
|
+
Returns a [`RegisterMatrixConversionError`] if the execution data for any of the
|
|
118
|
+
registers would result in a jagged matrix.
|
|
119
|
+
[`QpuResultData`] data is captured per measure,
|
|
120
|
+
meaning a value is returned for every measure to a memory reference, not just once per shot.
|
|
121
|
+
|
|
122
|
+
This is often the case in programs that use mid-circuit measurement or dynamic control flow,
|
|
123
|
+
where measurements to the same memory reference might occur multiple times in a shot, or be
|
|
124
|
+
skipped conditionally. In these cases, building a rectangular [`RegisterMatrix`] would
|
|
125
|
+
necessitate making assumptions about the data that could skew the data in undesirable ways.
|
|
126
|
+
Instead, it's recommended to manually build a matrix from [`QpuResultData`] that accurately
|
|
127
|
+
selects the last value per-shot based on the program that was run.
|
|
128
|
+
"""
|
|
129
|
+
|
|
130
|
+
@typing.final
|
|
131
|
+
class RawQPUReadoutData:
|
|
132
|
+
r"""
|
|
133
|
+
A wrapper type for data returned by the QPU in a more flat structure than
|
|
134
|
+
[`QpuResultData`] offers. This makes it more convenient to work with
|
|
135
|
+
the data if you don't care what type of number the readout values for
|
|
136
|
+
each register contains.
|
|
137
|
+
"""
|
|
138
|
+
@property
|
|
139
|
+
def mappings(self) -> builtins.dict[builtins.str, builtins.str]: ...
|
|
140
|
+
@property
|
|
141
|
+
def memory_values(self) -> builtins.dict[builtins.str, list]: ...
|
|
142
|
+
@property
|
|
143
|
+
def readout_values(self) -> builtins.dict[builtins.str, list]: ...
|
|
144
|
+
def __repr__(self) -> builtins.str:
|
|
145
|
+
r"""
|
|
146
|
+
Implements `__repr__` for Python in terms of the Rust
|
|
147
|
+
[`Debug`](std::fmt::Debug) implementation.
|
|
148
|
+
"""
|
|
149
|
+
|
|
150
|
+
class ReadoutValues:
|
|
151
|
+
r"""
|
|
152
|
+
A row of readout values from the QPU.
|
|
153
|
+
|
|
154
|
+
Each row contains all the values emitted to a memory reference across all shots.
|
|
155
|
+
There is a variant for each possible type the list of readout values could be.
|
|
156
|
+
"""
|
|
157
|
+
def __getnewargs__(self) -> tuple[builtins.list[builtins.int] | builtins.list[builtins.float] | builtins.list[builtins.complex]]: ...
|
|
158
|
+
def __new__(cls, values: typing.Sequence[builtins.int] | typing.Sequence[builtins.float] | typing.Sequence[builtins.complex]) -> ReadoutValues: ...
|
|
159
|
+
def inner(self) -> builtins.list[builtins.int] | builtins.list[builtins.float] | builtins.list[builtins.complex]: ...
|
|
160
|
+
@typing.final
|
|
161
|
+
class Complex(ReadoutValues):
|
|
162
|
+
r"""
|
|
163
|
+
Complex readout values
|
|
164
|
+
"""
|
|
165
|
+
__match_args__ = ("_0",)
|
|
166
|
+
@property
|
|
167
|
+
def _0(self) -> builtins.list[builtins.complex]: ...
|
|
168
|
+
def __getitem__(self, key: builtins.int) -> typing.Any: ...
|
|
169
|
+
def __len__(self) -> builtins.int: ...
|
|
170
|
+
def __new__(cls, _0: typing.Sequence[builtins.complex]) -> ReadoutValues.Complex: ...
|
|
171
|
+
|
|
172
|
+
@typing.final
|
|
173
|
+
class Integer(ReadoutValues):
|
|
174
|
+
r"""
|
|
175
|
+
Integer readout values
|
|
176
|
+
"""
|
|
177
|
+
__match_args__ = ("_0",)
|
|
178
|
+
@property
|
|
179
|
+
def _0(self) -> builtins.list[builtins.int]: ...
|
|
180
|
+
def __getitem__(self, key: builtins.int) -> typing.Any: ...
|
|
181
|
+
def __len__(self) -> builtins.int: ...
|
|
182
|
+
def __new__(cls, _0: typing.Sequence[builtins.int]) -> ReadoutValues.Integer: ...
|
|
183
|
+
|
|
184
|
+
@typing.final
|
|
185
|
+
class Real(ReadoutValues):
|
|
186
|
+
r"""
|
|
187
|
+
Real numbered readout values
|
|
188
|
+
"""
|
|
189
|
+
__match_args__ = ("_0",)
|
|
190
|
+
@property
|
|
191
|
+
def _0(self) -> builtins.list[builtins.float]: ...
|
|
192
|
+
def __getitem__(self, key: builtins.int) -> typing.Any: ...
|
|
193
|
+
def __len__(self) -> builtins.int: ...
|
|
194
|
+
def __new__(cls, _0: typing.Sequence[builtins.float]) -> ReadoutValues.Real: ...
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
def list_quantum_processors(client: typing.Optional[QCSClient] = None, timeout: typing.Optional[builtins.float] = None) -> builtins.list[builtins.str]:
|
|
198
|
+
r"""
|
|
199
|
+
Returns all available Quantum Processor (QPU) IDs.
|
|
200
|
+
|
|
201
|
+
:param client: The ``Qcs`` client to use. Creates one using environment configuration if unset - see https://docs.rigetti.com/qcs/references/qcs-client-configuration
|
|
202
|
+
:param timeout: Maximum duration to wait for API calls to complete, in seconds.
|
|
203
|
+
|
|
204
|
+
:raises ListQuantumProcessorsError: If the request to list available QPU IDs failed.
|
|
205
|
+
"""
|
|
206
|
+
|
|
207
|
+
def list_quantum_processors_async(client: typing.Optional[QCSClient] = None, timeout: typing.Optional[builtins.float] = None) -> collections.abc.Awaitable[builtins.list[builtins.str]]:
|
|
208
|
+
r"""
|
|
209
|
+
Returns all available Quantum Processor (QPU) IDs.
|
|
210
|
+
|
|
211
|
+
:param client: The ``Qcs`` client to use. Creates one using environment configuration if unset - see https://docs.rigetti.com/qcs/references/qcs-client-configuration
|
|
212
|
+
:param timeout: Maximum duration to wait for API calls to complete, in seconds.
|
|
213
|
+
|
|
214
|
+
:raises ListQuantumProcessorsError: If the request to list available QPU IDs failed.
|
|
215
|
+
"""
|
|
216
|
+
|