iqm-station-control-client 11.2.1__py3-none-any.whl → 12.0.0__py3-none-any.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.
- iqm/station_control/client/authentication.py +239 -0
- iqm/station_control/client/iqm_server/error.py +0 -30
- iqm/station_control/client/iqm_server/grpc_utils.py +0 -156
- iqm/station_control/client/iqm_server/iqm_server_client.py +0 -503
- iqm/station_control/client/list_models.py +16 -11
- iqm/station_control/client/qon.py +1 -1
- iqm/station_control/client/serializers/run_serializers.py +5 -4
- iqm/station_control/client/serializers/struct_serializer.py +1 -1
- iqm/station_control/client/station_control.py +140 -154
- iqm/station_control/client/utils.py +4 -42
- iqm/station_control/interface/models/__init__.py +21 -2
- iqm/station_control/interface/models/circuit.py +348 -0
- iqm/station_control/interface/models/dynamic_quantum_architecture.py +61 -3
- iqm/station_control/interface/models/jobs.py +42 -13
- iqm/station_control/interface/models/observation_set.py +28 -4
- iqm/station_control/interface/models/run.py +8 -8
- iqm/station_control/interface/models/sweep.py +7 -1
- iqm/station_control/interface/models/type_aliases.py +1 -2
- iqm/station_control/interface/station_control.py +1 -1
- {iqm_station_control_client-11.2.1.dist-info → iqm_station_control_client-12.0.0.dist-info}/METADATA +35 -36
- iqm_station_control_client-12.0.0.dist-info/RECORD +42 -0
- .DS_Store +0 -0
- iqm/.DS_Store +0 -0
- iqm/station_control/.DS_Store +0 -0
- iqm/station_control/client/.DS_Store +0 -0
- iqm/station_control/client/iqm_server/.DS_Store +0 -0
- iqm/station_control/client/iqm_server/__init__.py +0 -14
- iqm/station_control/client/iqm_server/proto/__init__.py +0 -43
- iqm/station_control/client/iqm_server/proto/calibration_pb2.py +0 -48
- iqm/station_control/client/iqm_server/proto/calibration_pb2.pyi +0 -45
- iqm/station_control/client/iqm_server/proto/calibration_pb2_grpc.py +0 -152
- iqm/station_control/client/iqm_server/proto/common_pb2.py +0 -43
- iqm/station_control/client/iqm_server/proto/common_pb2.pyi +0 -32
- iqm/station_control/client/iqm_server/proto/common_pb2_grpc.py +0 -17
- iqm/station_control/client/iqm_server/proto/job_pb2.py +0 -57
- iqm/station_control/client/iqm_server/proto/job_pb2.pyi +0 -107
- iqm/station_control/client/iqm_server/proto/job_pb2_grpc.py +0 -436
- iqm/station_control/client/iqm_server/proto/qc_pb2.py +0 -51
- iqm/station_control/client/iqm_server/proto/qc_pb2.pyi +0 -57
- iqm/station_control/client/iqm_server/proto/qc_pb2_grpc.py +0 -163
- iqm/station_control/client/iqm_server/proto/uuid_pb2.py +0 -39
- iqm/station_control/client/iqm_server/proto/uuid_pb2.pyi +0 -26
- iqm/station_control/client/iqm_server/proto/uuid_pb2_grpc.py +0 -17
- iqm/station_control/client/iqm_server/testing/__init__.py +0 -13
- iqm/station_control/client/iqm_server/testing/iqm_server_mock.py +0 -102
- iqm_station_control_client-11.2.1-py3-none-any.whl +0 -0
- iqm_station_control_client-11.2.1.dist-info/RECORD +0 -65
- {iqm_station_control_client-11.2.1.dist-info → iqm_station_control_client-12.0.0.dist-info}/LICENSE.txt +0 -0
- {iqm_station_control_client-11.2.1.dist-info → iqm_station_control_client-12.0.0.dist-info}/WHEEL +0 -0
- {iqm_station_control_client-11.2.1.dist-info → iqm_station_control_client-12.0.0.dist-info}/top_level.txt +0 -0
|
@@ -1,436 +0,0 @@
|
|
|
1
|
-
# Copyright 2025 IQM
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
|
15
|
-
"""Client and server classes corresponding to protobuf-defined services."""
|
|
16
|
-
import grpc
|
|
17
|
-
|
|
18
|
-
from . import common_pb2 as common__pb2
|
|
19
|
-
from . import job_pb2 as job__pb2
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class JobsStub(object):
|
|
23
|
-
"""
|
|
24
|
-
User job management APIs.
|
|
25
|
-
"""
|
|
26
|
-
|
|
27
|
-
def __init__(self, channel):
|
|
28
|
-
"""Constructor.
|
|
29
|
-
|
|
30
|
-
Args:
|
|
31
|
-
channel: A grpc.Channel.
|
|
32
|
-
"""
|
|
33
|
-
self.SubmitJobV1 = channel.unary_unary(
|
|
34
|
-
'/iqm.server.Jobs/SubmitJobV1',
|
|
35
|
-
request_serializer=job__pb2.SubmitJobRequestV1.SerializeToString,
|
|
36
|
-
response_deserializer=job__pb2.JobV1.FromString,
|
|
37
|
-
)
|
|
38
|
-
self.GetJobV1 = channel.unary_unary(
|
|
39
|
-
'/iqm.server.Jobs/GetJobV1',
|
|
40
|
-
request_serializer=job__pb2.JobLookupV1.SerializeToString,
|
|
41
|
-
response_deserializer=job__pb2.JobV1.FromString,
|
|
42
|
-
)
|
|
43
|
-
self.SubscribeToJobV1 = channel.unary_stream(
|
|
44
|
-
'/iqm.server.Jobs/SubscribeToJobV1',
|
|
45
|
-
request_serializer=job__pb2.JobLookupV1.SerializeToString,
|
|
46
|
-
response_deserializer=job__pb2.JobEventV1.FromString,
|
|
47
|
-
)
|
|
48
|
-
self.GetJobPayloadV1 = channel.unary_stream(
|
|
49
|
-
'/iqm.server.Jobs/GetJobPayloadV1',
|
|
50
|
-
request_serializer=job__pb2.JobLookupV1.SerializeToString,
|
|
51
|
-
response_deserializer=common__pb2.DataChunk.FromString,
|
|
52
|
-
)
|
|
53
|
-
self.GetJobResultsV1 = channel.unary_stream(
|
|
54
|
-
'/iqm.server.Jobs/GetJobResultsV1',
|
|
55
|
-
request_serializer=job__pb2.JobLookupV1.SerializeToString,
|
|
56
|
-
response_deserializer=common__pb2.DataChunk.FromString,
|
|
57
|
-
)
|
|
58
|
-
self.CancelJobV1 = channel.unary_unary(
|
|
59
|
-
'/iqm.server.Jobs/CancelJobV1',
|
|
60
|
-
request_serializer=job__pb2.JobLookupV1.SerializeToString,
|
|
61
|
-
response_deserializer=job__pb2.JobV1.FromString,
|
|
62
|
-
)
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
class JobsServicer(object):
|
|
66
|
-
"""
|
|
67
|
-
User job management APIs.
|
|
68
|
-
"""
|
|
69
|
-
|
|
70
|
-
def SubmitJobV1(self, request, context):
|
|
71
|
-
"""
|
|
72
|
-
Submits a new job to the quantum computer. If the submit succeeds, returns
|
|
73
|
-
the handle for the submitted job.
|
|
74
|
-
|
|
75
|
-
## Errors
|
|
76
|
-
In case of an error, a GRPC error status is returned with some optional additional
|
|
77
|
-
details. The possible error cases are described below:
|
|
78
|
-
|
|
79
|
-
### Invalid payload
|
|
80
|
-
This error is returned if the given job payload is not accepted by the
|
|
81
|
-
target quantum computer. Note that different quantum computers might
|
|
82
|
-
accept different payloads.
|
|
83
|
-
```
|
|
84
|
-
Code = "INVALID_ARGUMENT"
|
|
85
|
-
Metadata.error_code = "invalid_payload"
|
|
86
|
-
Details = https://protobuf.dev/reference/protobuf/google.protobuf/#value
|
|
87
|
-
{
|
|
88
|
-
"errors": [<list-of-error-messages>]
|
|
89
|
-
}
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### Job type not supported
|
|
93
|
-
This error is returned if the target quantum computer does not support the
|
|
94
|
-
given job type (circuit, pulse).
|
|
95
|
-
```
|
|
96
|
-
Code = "INVALID_ARGUMENT"
|
|
97
|
-
Metadata.error_code = "job_type_not_supported"
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### User job quota exceeded
|
|
101
|
-
This error is returned if the user has already submitted the maximum allowed
|
|
102
|
-
amount of jobs to the queue. Quota can be freed by either waiting for existing
|
|
103
|
-
jobs to finish or manually cancelling them (either via the API or the web).
|
|
104
|
-
```
|
|
105
|
-
Code = "RESOURCE_EXHAUSTED"
|
|
106
|
-
Metadata.error_code = "quota_exceeded"
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### Account does not have any active or upcoming timeslots
|
|
110
|
-
This error is returned if the job is submitted with the `use_timeslot` flag enabled,
|
|
111
|
-
but the user's account does not have active or upcoming timeslots booked.
|
|
112
|
-
```
|
|
113
|
-
Code = "FAILED_PRECONDITION"
|
|
114
|
-
Metadata.error_code = "no_booked_timeslots"
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
### Timeslot is required to execute job
|
|
118
|
-
This error is returned if the target quantum computer requires timeslot to execute
|
|
119
|
-
jobs but `use_timeslot` was unset (or set to `false`).
|
|
120
|
-
```
|
|
121
|
-
Code = "FAILED_PRECONDITION"
|
|
122
|
-
Metadata.error_code = "timeslot_required"
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Quantum computer not found
|
|
126
|
-
This error is returned if the `qc_id` does not match any existing quantum computer.
|
|
127
|
-
```
|
|
128
|
-
Code = "NOT_FOUND"
|
|
129
|
-
Metadata.error_code = "not_found"
|
|
130
|
-
```
|
|
131
|
-
"""
|
|
132
|
-
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
133
|
-
context.set_details('Method not implemented!')
|
|
134
|
-
raise NotImplementedError('Method not implemented!')
|
|
135
|
-
|
|
136
|
-
def GetJobV1(self, request, context):
|
|
137
|
-
"""
|
|
138
|
-
Get job details by JobLookup. Returns the job if the user job exists.
|
|
139
|
-
User needs to be authorised to access the job data, i.e. the job must be created by the user.
|
|
140
|
-
|
|
141
|
-
## Errors
|
|
142
|
-
In case of an error, a GRPC error status is returned with some optional additional
|
|
143
|
-
details. The possible error cases are described below:
|
|
144
|
-
|
|
145
|
-
### Job not found
|
|
146
|
-
This error is returned if the JobLookup does not match any existing job.
|
|
147
|
-
```
|
|
148
|
-
Code = "NOT_FOUND"
|
|
149
|
-
Metadata.error_code = "not_found"
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### Quantum computer not found
|
|
153
|
-
This error is returned if quantum computer associated with the job does not match any existing quantum computer.
|
|
154
|
-
```
|
|
155
|
-
Code = "NOT_FOUND"
|
|
156
|
-
Metadata.error_code = "not_found"
|
|
157
|
-
```
|
|
158
|
-
"""
|
|
159
|
-
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
160
|
-
context.set_details('Method not implemented!')
|
|
161
|
-
raise NotImplementedError('Method not implemented!')
|
|
162
|
-
|
|
163
|
-
def SubscribeToJobV1(self, request, context):
|
|
164
|
-
"""
|
|
165
|
-
Subscribes to the job changes. Returns a stream that emits the job at subscription
|
|
166
|
-
moment and after that the changed job every time when the job state changes. The stream
|
|
167
|
-
will end automatically when the job is considered as "final" and won't be updated
|
|
168
|
-
anymore in the future (cancelled, interrupted, failed, completed).
|
|
169
|
-
|
|
170
|
-
The stream may also emit empty `Keepalive` messages to indicate that job is still being
|
|
171
|
-
processed but hasn't been updated. Clients may ignore these keepalive messages.
|
|
172
|
-
|
|
173
|
-
## Errors
|
|
174
|
-
|
|
175
|
-
### Job not found
|
|
176
|
-
If the job does not exist with the given lookup, the following error is
|
|
177
|
-
returned upon the subscription.
|
|
178
|
-
```
|
|
179
|
-
Code = "NOT_FOUND"
|
|
180
|
-
Metadata.error_code = "not_found"
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### Job deleted during the subscription
|
|
184
|
-
If the job gets deleted during the open subscription, the subscription stream will
|
|
185
|
-
emit the following error and close immediately after that.
|
|
186
|
-
```
|
|
187
|
-
Code = "ABORTED"
|
|
188
|
-
Metadata.error_code = "job_deleted"
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### Server cancellation
|
|
192
|
-
If server wants to cancel the subscription (e.g. due to restarts or maintenance), the
|
|
193
|
-
subscription stream will emit the following error and close immediately after that.
|
|
194
|
-
```
|
|
195
|
-
Code = "ABORTED"
|
|
196
|
-
Metadata.error_code = "server_cancel"
|
|
197
|
-
```
|
|
198
|
-
"""
|
|
199
|
-
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
200
|
-
context.set_details('Method not implemented!')
|
|
201
|
-
raise NotImplementedError('Method not implemented!')
|
|
202
|
-
|
|
203
|
-
def GetJobPayloadV1(self, request, context):
|
|
204
|
-
"""
|
|
205
|
-
Get job payload as GRPC data chunk streams by JobLookup . Returns the job input data if the user job exists.
|
|
206
|
-
User needs to be authorised to access the job.
|
|
207
|
-
|
|
208
|
-
## Errors
|
|
209
|
-
In case of an error, a GRPC error status is returned with some optional additional
|
|
210
|
-
details. The possible error cases are described below:
|
|
211
|
-
|
|
212
|
-
### Job not found
|
|
213
|
-
This error is returned if the JobLookup does not match any existing job.
|
|
214
|
-
```
|
|
215
|
-
Code = "NOT_FOUND"
|
|
216
|
-
Metadata.error_code = "not_found"
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
### Job payload not found
|
|
220
|
-
This error is returned if the job payload is not found.
|
|
221
|
-
```
|
|
222
|
-
Code = "NOT_FOUND"
|
|
223
|
-
Metadata.error_code = "not_found"
|
|
224
|
-
```
|
|
225
|
-
"""
|
|
226
|
-
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
227
|
-
context.set_details('Method not implemented!')
|
|
228
|
-
raise NotImplementedError('Method not implemented!')
|
|
229
|
-
|
|
230
|
-
def GetJobResultsV1(self, request, context):
|
|
231
|
-
"""
|
|
232
|
-
Get job result as GRPC data chunk streams by JobLookup. Returns the job measurements data if the user job exists.
|
|
233
|
-
User needs to be authorised to access the job.
|
|
234
|
-
|
|
235
|
-
## Errors
|
|
236
|
-
In case of an error, a GRPC error status is returned with some optional additional
|
|
237
|
-
details. The possible error cases are described below:
|
|
238
|
-
|
|
239
|
-
### Job not found
|
|
240
|
-
This error is returned if the JobLookup does not match any existing job.
|
|
241
|
-
```
|
|
242
|
-
Code = "NOT_FOUND"
|
|
243
|
-
Metadata.error_code = "not_found"
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
### Job results not found
|
|
247
|
-
This error is returned if the job results is not found.
|
|
248
|
-
```
|
|
249
|
-
Code = "NOT_FOUND"
|
|
250
|
-
Metadata.error_code = "not_found"
|
|
251
|
-
```
|
|
252
|
-
"""
|
|
253
|
-
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
254
|
-
context.set_details('Method not implemented!')
|
|
255
|
-
raise NotImplementedError('Method not implemented!')
|
|
256
|
-
|
|
257
|
-
def CancelJobV1(self, request, context):
|
|
258
|
-
"""
|
|
259
|
-
Cancel a queued job by JobLookup. Returns the updated job when cancelled.
|
|
260
|
-
User needs to be authorised to access the job.
|
|
261
|
-
|
|
262
|
-
## Errors
|
|
263
|
-
In case of an error, a GRPC error status is returned with some optional additional
|
|
264
|
-
details. The possible error cases are described below:
|
|
265
|
-
|
|
266
|
-
### Job not found
|
|
267
|
-
This error is returned if the JobLookup does not match any existing user job.
|
|
268
|
-
```
|
|
269
|
-
Code = "NOT_FOUND"
|
|
270
|
-
Metadata.error_code = "not_found"
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
### Can't cancel job from QC because it's already in final state
|
|
274
|
-
This error is returned if the job measurements is not found.
|
|
275
|
-
```
|
|
276
|
-
Code = "FAILED_PRECONDITION"
|
|
277
|
-
Metadata.error_code = "job_not_submitted_to_qc"
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
### Quantum computer not found
|
|
281
|
-
This error is returned if quantum computer associated with the job does not match any existing quantum computer.
|
|
282
|
-
```
|
|
283
|
-
Code = "NOT_FOUND"
|
|
284
|
-
Metadata.error_code = "not_found"
|
|
285
|
-
```
|
|
286
|
-
"""
|
|
287
|
-
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
288
|
-
context.set_details('Method not implemented!')
|
|
289
|
-
raise NotImplementedError('Method not implemented!')
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
def add_JobsServicer_to_server(servicer, server):
|
|
293
|
-
rpc_method_handlers = {
|
|
294
|
-
'SubmitJobV1': grpc.unary_unary_rpc_method_handler(
|
|
295
|
-
servicer.SubmitJobV1,
|
|
296
|
-
request_deserializer=job__pb2.SubmitJobRequestV1.FromString,
|
|
297
|
-
response_serializer=job__pb2.JobV1.SerializeToString,
|
|
298
|
-
),
|
|
299
|
-
'GetJobV1': grpc.unary_unary_rpc_method_handler(
|
|
300
|
-
servicer.GetJobV1,
|
|
301
|
-
request_deserializer=job__pb2.JobLookupV1.FromString,
|
|
302
|
-
response_serializer=job__pb2.JobV1.SerializeToString,
|
|
303
|
-
),
|
|
304
|
-
'SubscribeToJobV1': grpc.unary_stream_rpc_method_handler(
|
|
305
|
-
servicer.SubscribeToJobV1,
|
|
306
|
-
request_deserializer=job__pb2.JobLookupV1.FromString,
|
|
307
|
-
response_serializer=job__pb2.JobEventV1.SerializeToString,
|
|
308
|
-
),
|
|
309
|
-
'GetJobPayloadV1': grpc.unary_stream_rpc_method_handler(
|
|
310
|
-
servicer.GetJobPayloadV1,
|
|
311
|
-
request_deserializer=job__pb2.JobLookupV1.FromString,
|
|
312
|
-
response_serializer=common__pb2.DataChunk.SerializeToString,
|
|
313
|
-
),
|
|
314
|
-
'GetJobResultsV1': grpc.unary_stream_rpc_method_handler(
|
|
315
|
-
servicer.GetJobResultsV1,
|
|
316
|
-
request_deserializer=job__pb2.JobLookupV1.FromString,
|
|
317
|
-
response_serializer=common__pb2.DataChunk.SerializeToString,
|
|
318
|
-
),
|
|
319
|
-
'CancelJobV1': grpc.unary_unary_rpc_method_handler(
|
|
320
|
-
servicer.CancelJobV1,
|
|
321
|
-
request_deserializer=job__pb2.JobLookupV1.FromString,
|
|
322
|
-
response_serializer=job__pb2.JobV1.SerializeToString,
|
|
323
|
-
),
|
|
324
|
-
}
|
|
325
|
-
generic_handler = grpc.method_handlers_generic_handler(
|
|
326
|
-
'iqm.server.Jobs', rpc_method_handlers)
|
|
327
|
-
server.add_generic_rpc_handlers((generic_handler,))
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
# This class is part of an EXPERIMENTAL API.
|
|
331
|
-
class Jobs(object):
|
|
332
|
-
"""
|
|
333
|
-
User job management APIs.
|
|
334
|
-
"""
|
|
335
|
-
|
|
336
|
-
@staticmethod
|
|
337
|
-
def SubmitJobV1(request,
|
|
338
|
-
target,
|
|
339
|
-
options=(),
|
|
340
|
-
channel_credentials=None,
|
|
341
|
-
call_credentials=None,
|
|
342
|
-
insecure=False,
|
|
343
|
-
compression=None,
|
|
344
|
-
wait_for_ready=None,
|
|
345
|
-
timeout=None,
|
|
346
|
-
metadata=None):
|
|
347
|
-
return grpc.experimental.unary_unary(request, target, '/iqm.server.Jobs/SubmitJobV1',
|
|
348
|
-
job__pb2.SubmitJobRequestV1.SerializeToString,
|
|
349
|
-
job__pb2.JobV1.FromString,
|
|
350
|
-
options, channel_credentials,
|
|
351
|
-
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
352
|
-
|
|
353
|
-
@staticmethod
|
|
354
|
-
def GetJobV1(request,
|
|
355
|
-
target,
|
|
356
|
-
options=(),
|
|
357
|
-
channel_credentials=None,
|
|
358
|
-
call_credentials=None,
|
|
359
|
-
insecure=False,
|
|
360
|
-
compression=None,
|
|
361
|
-
wait_for_ready=None,
|
|
362
|
-
timeout=None,
|
|
363
|
-
metadata=None):
|
|
364
|
-
return grpc.experimental.unary_unary(request, target, '/iqm.server.Jobs/GetJobV1',
|
|
365
|
-
job__pb2.JobLookupV1.SerializeToString,
|
|
366
|
-
job__pb2.JobV1.FromString,
|
|
367
|
-
options, channel_credentials,
|
|
368
|
-
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
369
|
-
|
|
370
|
-
@staticmethod
|
|
371
|
-
def SubscribeToJobV1(request,
|
|
372
|
-
target,
|
|
373
|
-
options=(),
|
|
374
|
-
channel_credentials=None,
|
|
375
|
-
call_credentials=None,
|
|
376
|
-
insecure=False,
|
|
377
|
-
compression=None,
|
|
378
|
-
wait_for_ready=None,
|
|
379
|
-
timeout=None,
|
|
380
|
-
metadata=None):
|
|
381
|
-
return grpc.experimental.unary_stream(request, target, '/iqm.server.Jobs/SubscribeToJobV1',
|
|
382
|
-
job__pb2.JobLookupV1.SerializeToString,
|
|
383
|
-
job__pb2.JobEventV1.FromString,
|
|
384
|
-
options, channel_credentials,
|
|
385
|
-
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
386
|
-
|
|
387
|
-
@staticmethod
|
|
388
|
-
def GetJobPayloadV1(request,
|
|
389
|
-
target,
|
|
390
|
-
options=(),
|
|
391
|
-
channel_credentials=None,
|
|
392
|
-
call_credentials=None,
|
|
393
|
-
insecure=False,
|
|
394
|
-
compression=None,
|
|
395
|
-
wait_for_ready=None,
|
|
396
|
-
timeout=None,
|
|
397
|
-
metadata=None):
|
|
398
|
-
return grpc.experimental.unary_stream(request, target, '/iqm.server.Jobs/GetJobPayloadV1',
|
|
399
|
-
job__pb2.JobLookupV1.SerializeToString,
|
|
400
|
-
common__pb2.DataChunk.FromString,
|
|
401
|
-
options, channel_credentials,
|
|
402
|
-
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
403
|
-
|
|
404
|
-
@staticmethod
|
|
405
|
-
def GetJobResultsV1(request,
|
|
406
|
-
target,
|
|
407
|
-
options=(),
|
|
408
|
-
channel_credentials=None,
|
|
409
|
-
call_credentials=None,
|
|
410
|
-
insecure=False,
|
|
411
|
-
compression=None,
|
|
412
|
-
wait_for_ready=None,
|
|
413
|
-
timeout=None,
|
|
414
|
-
metadata=None):
|
|
415
|
-
return grpc.experimental.unary_stream(request, target, '/iqm.server.Jobs/GetJobResultsV1',
|
|
416
|
-
job__pb2.JobLookupV1.SerializeToString,
|
|
417
|
-
common__pb2.DataChunk.FromString,
|
|
418
|
-
options, channel_credentials,
|
|
419
|
-
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
420
|
-
|
|
421
|
-
@staticmethod
|
|
422
|
-
def CancelJobV1(request,
|
|
423
|
-
target,
|
|
424
|
-
options=(),
|
|
425
|
-
channel_credentials=None,
|
|
426
|
-
call_credentials=None,
|
|
427
|
-
insecure=False,
|
|
428
|
-
compression=None,
|
|
429
|
-
wait_for_ready=None,
|
|
430
|
-
timeout=None,
|
|
431
|
-
metadata=None):
|
|
432
|
-
return grpc.experimental.unary_unary(request, target, '/iqm.server.Jobs/CancelJobV1',
|
|
433
|
-
job__pb2.JobLookupV1.SerializeToString,
|
|
434
|
-
job__pb2.JobV1.FromString,
|
|
435
|
-
options, channel_credentials,
|
|
436
|
-
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# Copyright 2025 IQM
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
# -*- coding: utf-8 -*-
|
|
15
|
-
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
16
|
-
# source: qc.proto
|
|
17
|
-
# Protobuf Python Version: 4.25.1
|
|
18
|
-
"""Generated protocol buffer code."""
|
|
19
|
-
from google.protobuf import descriptor as _descriptor
|
|
20
|
-
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
21
|
-
from google.protobuf import symbol_database as _symbol_database
|
|
22
|
-
from google.protobuf.internal import builder as _builder
|
|
23
|
-
# @@protoc_insertion_point(imports)
|
|
24
|
-
|
|
25
|
-
_sym_db = _symbol_database.Default()
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
from . import common_pb2 as common__pb2
|
|
29
|
-
from . import uuid_pb2 as uuid__pb2
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x08qc.proto\x12\niqm.server\x1a\x0c\x63ommon.proto\x1a\nuuid.proto\"T\n\x17QuantumComputerLookupV1\x12\x1e\n\x02id\x18\x01 \x01(\x0b\x32\x10.iqm.server.UuidH\x00\x12\x0f\n\x05\x61lias\x18\x02 \x01(\tH\x00\x42\x08\n\x06lookup\"\x1e\n\x1cListQuantumComputerFiltersV1\"V\n\x11QuantumComputerV1\x12\x1c\n\x02id\x18\x01 \x02(\x0b\x32\x10.iqm.server.Uuid\x12\r\n\x05\x61lias\x18\x02 \x02(\t\x12\x14\n\x0c\x64isplay_name\x18\x03 \x02(\t\"F\n\x16QuantumComputersListV1\x12,\n\x05items\x18\x01 \x03(\x0b\x32\x1d.iqm.server.QuantumComputerV1\"Y\n\x1fQuantumComputerResourceLookupV1\x12\x1f\n\x05qc_id\x18\x01 \x02(\x0b\x32\x10.iqm.server.Uuid\x12\x15\n\rresource_name\x18\x02 \x02(\t2\xbc\x02\n\x10QuantumComputers\x12Z\n\x14GetQuantumComputerV1\x12#.iqm.server.QuantumComputerLookupV1\x1a\x1d.iqm.server.QuantumComputerV1\x12\x66\n\x16ListQuantumComputersV1\x12(.iqm.server.ListQuantumComputerFiltersV1\x1a\".iqm.server.QuantumComputersListV1\x12\x64\n\x1cGetQuantumComputerResourceV1\x12+.iqm.server.QuantumComputerResourceLookupV1\x1a\x15.iqm.server.DataChunk0\x01')
|
|
33
|
-
|
|
34
|
-
_globals = globals()
|
|
35
|
-
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
36
|
-
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'qc_pb2', _globals)
|
|
37
|
-
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
38
|
-
DESCRIPTOR._options = None
|
|
39
|
-
_globals['_QUANTUMCOMPUTERLOOKUPV1']._serialized_start=50
|
|
40
|
-
_globals['_QUANTUMCOMPUTERLOOKUPV1']._serialized_end=134
|
|
41
|
-
_globals['_LISTQUANTUMCOMPUTERFILTERSV1']._serialized_start=136
|
|
42
|
-
_globals['_LISTQUANTUMCOMPUTERFILTERSV1']._serialized_end=166
|
|
43
|
-
_globals['_QUANTUMCOMPUTERV1']._serialized_start=168
|
|
44
|
-
_globals['_QUANTUMCOMPUTERV1']._serialized_end=254
|
|
45
|
-
_globals['_QUANTUMCOMPUTERSLISTV1']._serialized_start=256
|
|
46
|
-
_globals['_QUANTUMCOMPUTERSLISTV1']._serialized_end=326
|
|
47
|
-
_globals['_QUANTUMCOMPUTERRESOURCELOOKUPV1']._serialized_start=328
|
|
48
|
-
_globals['_QUANTUMCOMPUTERRESOURCELOOKUPV1']._serialized_end=417
|
|
49
|
-
_globals['_QUANTUMCOMPUTERS']._serialized_start=420
|
|
50
|
-
_globals['_QUANTUMCOMPUTERS']._serialized_end=736
|
|
51
|
-
# @@protoc_insertion_point(module_scope)
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# Copyright 2025 IQM
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
from . import common_pb2 as _common_pb2
|
|
15
|
-
from . import uuid_pb2 as _uuid_pb2
|
|
16
|
-
from google.protobuf.internal import containers as _containers
|
|
17
|
-
from google.protobuf import descriptor as _descriptor
|
|
18
|
-
from google.protobuf import message as _message
|
|
19
|
-
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
|
|
20
|
-
|
|
21
|
-
DESCRIPTOR: _descriptor.FileDescriptor
|
|
22
|
-
|
|
23
|
-
class QuantumComputerLookupV1(_message.Message):
|
|
24
|
-
__slots__ = ("id", "alias")
|
|
25
|
-
ID_FIELD_NUMBER: _ClassVar[int]
|
|
26
|
-
ALIAS_FIELD_NUMBER: _ClassVar[int]
|
|
27
|
-
id: _uuid_pb2.Uuid
|
|
28
|
-
alias: str
|
|
29
|
-
def __init__(self, id: _Optional[_Union[_uuid_pb2.Uuid, _Mapping]] = ..., alias: _Optional[str] = ...) -> None: ...
|
|
30
|
-
|
|
31
|
-
class ListQuantumComputerFiltersV1(_message.Message):
|
|
32
|
-
__slots__ = ()
|
|
33
|
-
def __init__(self) -> None: ...
|
|
34
|
-
|
|
35
|
-
class QuantumComputerV1(_message.Message):
|
|
36
|
-
__slots__ = ("id", "alias", "display_name")
|
|
37
|
-
ID_FIELD_NUMBER: _ClassVar[int]
|
|
38
|
-
ALIAS_FIELD_NUMBER: _ClassVar[int]
|
|
39
|
-
DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
40
|
-
id: _uuid_pb2.Uuid
|
|
41
|
-
alias: str
|
|
42
|
-
display_name: str
|
|
43
|
-
def __init__(self, id: _Optional[_Union[_uuid_pb2.Uuid, _Mapping]] = ..., alias: _Optional[str] = ..., display_name: _Optional[str] = ...) -> None: ...
|
|
44
|
-
|
|
45
|
-
class QuantumComputersListV1(_message.Message):
|
|
46
|
-
__slots__ = ("items",)
|
|
47
|
-
ITEMS_FIELD_NUMBER: _ClassVar[int]
|
|
48
|
-
items: _containers.RepeatedCompositeFieldContainer[QuantumComputerV1]
|
|
49
|
-
def __init__(self, items: _Optional[_Iterable[_Union[QuantumComputerV1, _Mapping]]] = ...) -> None: ...
|
|
50
|
-
|
|
51
|
-
class QuantumComputerResourceLookupV1(_message.Message):
|
|
52
|
-
__slots__ = ("qc_id", "resource_name")
|
|
53
|
-
QC_ID_FIELD_NUMBER: _ClassVar[int]
|
|
54
|
-
RESOURCE_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
55
|
-
qc_id: _uuid_pb2.Uuid
|
|
56
|
-
resource_name: str
|
|
57
|
-
def __init__(self, qc_id: _Optional[_Union[_uuid_pb2.Uuid, _Mapping]] = ..., resource_name: _Optional[str] = ...) -> None: ...
|