iqm-station-control-client 3.11__py3-none-any.whl → 3.13__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/iqm_server/__init__.py +14 -0
- iqm/station_control/client/iqm_server/error.py +30 -0
- iqm/station_control/client/iqm_server/grpc_utils.py +154 -0
- iqm/station_control/client/iqm_server/iqm_server_client.py +332 -0
- iqm/station_control/client/iqm_server/meta_class.py +38 -0
- iqm/station_control/client/iqm_server/proto/__init__.py +43 -0
- iqm/station_control/client/iqm_server/proto/calibration_pb2.py +48 -0
- iqm/station_control/client/iqm_server/proto/calibration_pb2.pyi +45 -0
- iqm/station_control/client/iqm_server/proto/calibration_pb2_grpc.py +152 -0
- iqm/station_control/client/iqm_server/proto/common_pb2.py +43 -0
- iqm/station_control/client/iqm_server/proto/common_pb2.pyi +32 -0
- iqm/station_control/client/iqm_server/proto/common_pb2_grpc.py +17 -0
- iqm/station_control/client/iqm_server/proto/job_pb2.py +57 -0
- iqm/station_control/client/iqm_server/proto/job_pb2.pyi +107 -0
- iqm/station_control/client/iqm_server/proto/job_pb2_grpc.py +436 -0
- iqm/station_control/client/iqm_server/proto/qc_pb2.py +51 -0
- iqm/station_control/client/iqm_server/proto/qc_pb2.pyi +57 -0
- iqm/station_control/client/iqm_server/proto/qc_pb2_grpc.py +163 -0
- iqm/station_control/client/iqm_server/proto/uuid_pb2.py +39 -0
- iqm/station_control/client/iqm_server/proto/uuid_pb2.pyi +26 -0
- iqm/station_control/client/iqm_server/proto/uuid_pb2_grpc.py +17 -0
- iqm/station_control/client/iqm_server/testing/__init__.py +13 -0
- iqm/station_control/client/iqm_server/testing/iqm_server_mock.py +102 -0
- iqm/station_control/client/serializers/task_serializers.py +28 -1
- iqm/station_control/client/station_control.py +77 -1
- iqm/station_control/client/utils.py +16 -1
- {iqm_station_control_client-3.11.dist-info → iqm_station_control_client-3.13.dist-info}/METADATA +2 -1
- iqm_station_control_client-3.13.dist-info/RECORD +52 -0
- iqm_station_control_client-3.11.dist-info/RECORD +0 -29
- {iqm_station_control_client-3.11.dist-info → iqm_station_control_client-3.13.dist-info}/LICENSE.txt +0 -0
- {iqm_station_control_client-3.11.dist-info → iqm_station_control_client-3.13.dist-info}/WHEEL +0 -0
- {iqm_station_control_client-3.11.dist-info → iqm_station_control_client-3.13.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
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 google.protobuf import timestamp_pb2 as _timestamp_pb2
|
|
15
|
+
from . import common_pb2 as _common_pb2
|
|
16
|
+
from . import uuid_pb2 as _uuid_pb2
|
|
17
|
+
from google.protobuf import descriptor as _descriptor
|
|
18
|
+
from google.protobuf import message as _message
|
|
19
|
+
from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union
|
|
20
|
+
|
|
21
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
22
|
+
|
|
23
|
+
class LatestQuantumComputerCalibrationLookupV1(_message.Message):
|
|
24
|
+
__slots__ = ("qc_id",)
|
|
25
|
+
QC_ID_FIELD_NUMBER: _ClassVar[int]
|
|
26
|
+
qc_id: _uuid_pb2.Uuid
|
|
27
|
+
def __init__(self, qc_id: _Optional[_Union[_uuid_pb2.Uuid, _Mapping]] = ...) -> None: ...
|
|
28
|
+
|
|
29
|
+
class CalibrationLookupV1(_message.Message):
|
|
30
|
+
__slots__ = ("id",)
|
|
31
|
+
ID_FIELD_NUMBER: _ClassVar[int]
|
|
32
|
+
id: _uuid_pb2.Uuid
|
|
33
|
+
def __init__(self, id: _Optional[_Union[_uuid_pb2.Uuid, _Mapping]] = ...) -> None: ...
|
|
34
|
+
|
|
35
|
+
class CalibrationMetadataV1(_message.Message):
|
|
36
|
+
__slots__ = ("id", "created_at", "dut_label", "is_valid")
|
|
37
|
+
ID_FIELD_NUMBER: _ClassVar[int]
|
|
38
|
+
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
|
39
|
+
DUT_LABEL_FIELD_NUMBER: _ClassVar[int]
|
|
40
|
+
IS_VALID_FIELD_NUMBER: _ClassVar[int]
|
|
41
|
+
id: _uuid_pb2.Uuid
|
|
42
|
+
created_at: _timestamp_pb2.Timestamp
|
|
43
|
+
dut_label: str
|
|
44
|
+
is_valid: bool
|
|
45
|
+
def __init__(self, id: _Optional[_Union[_uuid_pb2.Uuid, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., dut_label: _Optional[str] = ..., is_valid: bool = ...) -> None: ...
|
|
@@ -0,0 +1,152 @@
|
|
|
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 calibration_pb2 as calibration__pb2
|
|
19
|
+
from . import common_pb2 as common__pb2
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class CalibrationsStub(object):
|
|
23
|
+
"""Missing associated documentation comment in .proto file."""
|
|
24
|
+
|
|
25
|
+
def __init__(self, channel):
|
|
26
|
+
"""Constructor.
|
|
27
|
+
|
|
28
|
+
Args:
|
|
29
|
+
channel: A grpc.Channel.
|
|
30
|
+
"""
|
|
31
|
+
self.GetLatestQuantumComputerCalibrationV1 = channel.unary_unary(
|
|
32
|
+
'/iqm.server.Calibrations/GetLatestQuantumComputerCalibrationV1',
|
|
33
|
+
request_serializer=calibration__pb2.LatestQuantumComputerCalibrationLookupV1.SerializeToString,
|
|
34
|
+
response_deserializer=calibration__pb2.CalibrationMetadataV1.FromString,
|
|
35
|
+
)
|
|
36
|
+
self.GetCalibrationV1 = channel.unary_unary(
|
|
37
|
+
'/iqm.server.Calibrations/GetCalibrationV1',
|
|
38
|
+
request_serializer=calibration__pb2.CalibrationLookupV1.SerializeToString,
|
|
39
|
+
response_deserializer=calibration__pb2.CalibrationMetadataV1.FromString,
|
|
40
|
+
)
|
|
41
|
+
self.GetFullCalibrationDataV1 = channel.unary_stream(
|
|
42
|
+
'/iqm.server.Calibrations/GetFullCalibrationDataV1',
|
|
43
|
+
request_serializer=calibration__pb2.CalibrationLookupV1.SerializeToString,
|
|
44
|
+
response_deserializer=common__pb2.DataChunk.FromString,
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class CalibrationsServicer(object):
|
|
49
|
+
"""Missing associated documentation comment in .proto file."""
|
|
50
|
+
|
|
51
|
+
def GetLatestQuantumComputerCalibrationV1(self, request, context):
|
|
52
|
+
"""Missing associated documentation comment in .proto file."""
|
|
53
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
54
|
+
context.set_details('Method not implemented!')
|
|
55
|
+
raise NotImplementedError('Method not implemented!')
|
|
56
|
+
|
|
57
|
+
def GetCalibrationV1(self, request, context):
|
|
58
|
+
"""Missing associated documentation comment in .proto file."""
|
|
59
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
60
|
+
context.set_details('Method not implemented!')
|
|
61
|
+
raise NotImplementedError('Method not implemented!')
|
|
62
|
+
|
|
63
|
+
def GetFullCalibrationDataV1(self, request, context):
|
|
64
|
+
"""*
|
|
65
|
+
Get the calibration set for a given QC.
|
|
66
|
+
|
|
67
|
+
The calibration set is returned as bytes data that contains the JSON
|
|
68
|
+
representation of the calibration set data. If the calibration set is
|
|
69
|
+
not found, a `NOT_FOUND` error status is returned.
|
|
70
|
+
"""
|
|
71
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
72
|
+
context.set_details('Method not implemented!')
|
|
73
|
+
raise NotImplementedError('Method not implemented!')
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def add_CalibrationsServicer_to_server(servicer, server):
|
|
77
|
+
rpc_method_handlers = {
|
|
78
|
+
'GetLatestQuantumComputerCalibrationV1': grpc.unary_unary_rpc_method_handler(
|
|
79
|
+
servicer.GetLatestQuantumComputerCalibrationV1,
|
|
80
|
+
request_deserializer=calibration__pb2.LatestQuantumComputerCalibrationLookupV1.FromString,
|
|
81
|
+
response_serializer=calibration__pb2.CalibrationMetadataV1.SerializeToString,
|
|
82
|
+
),
|
|
83
|
+
'GetCalibrationV1': grpc.unary_unary_rpc_method_handler(
|
|
84
|
+
servicer.GetCalibrationV1,
|
|
85
|
+
request_deserializer=calibration__pb2.CalibrationLookupV1.FromString,
|
|
86
|
+
response_serializer=calibration__pb2.CalibrationMetadataV1.SerializeToString,
|
|
87
|
+
),
|
|
88
|
+
'GetFullCalibrationDataV1': grpc.unary_stream_rpc_method_handler(
|
|
89
|
+
servicer.GetFullCalibrationDataV1,
|
|
90
|
+
request_deserializer=calibration__pb2.CalibrationLookupV1.FromString,
|
|
91
|
+
response_serializer=common__pb2.DataChunk.SerializeToString,
|
|
92
|
+
),
|
|
93
|
+
}
|
|
94
|
+
generic_handler = grpc.method_handlers_generic_handler(
|
|
95
|
+
'iqm.server.Calibrations', rpc_method_handlers)
|
|
96
|
+
server.add_generic_rpc_handlers((generic_handler,))
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
# This class is part of an EXPERIMENTAL API.
|
|
100
|
+
class Calibrations(object):
|
|
101
|
+
"""Missing associated documentation comment in .proto file."""
|
|
102
|
+
|
|
103
|
+
@staticmethod
|
|
104
|
+
def GetLatestQuantumComputerCalibrationV1(request,
|
|
105
|
+
target,
|
|
106
|
+
options=(),
|
|
107
|
+
channel_credentials=None,
|
|
108
|
+
call_credentials=None,
|
|
109
|
+
insecure=False,
|
|
110
|
+
compression=None,
|
|
111
|
+
wait_for_ready=None,
|
|
112
|
+
timeout=None,
|
|
113
|
+
metadata=None):
|
|
114
|
+
return grpc.experimental.unary_unary(request, target, '/iqm.server.Calibrations/GetLatestQuantumComputerCalibrationV1',
|
|
115
|
+
calibration__pb2.LatestQuantumComputerCalibrationLookupV1.SerializeToString,
|
|
116
|
+
calibration__pb2.CalibrationMetadataV1.FromString,
|
|
117
|
+
options, channel_credentials,
|
|
118
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
119
|
+
|
|
120
|
+
@staticmethod
|
|
121
|
+
def GetCalibrationV1(request,
|
|
122
|
+
target,
|
|
123
|
+
options=(),
|
|
124
|
+
channel_credentials=None,
|
|
125
|
+
call_credentials=None,
|
|
126
|
+
insecure=False,
|
|
127
|
+
compression=None,
|
|
128
|
+
wait_for_ready=None,
|
|
129
|
+
timeout=None,
|
|
130
|
+
metadata=None):
|
|
131
|
+
return grpc.experimental.unary_unary(request, target, '/iqm.server.Calibrations/GetCalibrationV1',
|
|
132
|
+
calibration__pb2.CalibrationLookupV1.SerializeToString,
|
|
133
|
+
calibration__pb2.CalibrationMetadataV1.FromString,
|
|
134
|
+
options, channel_credentials,
|
|
135
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
136
|
+
|
|
137
|
+
@staticmethod
|
|
138
|
+
def GetFullCalibrationDataV1(request,
|
|
139
|
+
target,
|
|
140
|
+
options=(),
|
|
141
|
+
channel_credentials=None,
|
|
142
|
+
call_credentials=None,
|
|
143
|
+
insecure=False,
|
|
144
|
+
compression=None,
|
|
145
|
+
wait_for_ready=None,
|
|
146
|
+
timeout=None,
|
|
147
|
+
metadata=None):
|
|
148
|
+
return grpc.experimental.unary_stream(request, target, '/iqm.server.Calibrations/GetFullCalibrationDataV1',
|
|
149
|
+
calibration__pb2.CalibrationLookupV1.SerializeToString,
|
|
150
|
+
common__pb2.DataChunk.FromString,
|
|
151
|
+
options, channel_credentials,
|
|
152
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
@@ -0,0 +1,43 @@
|
|
|
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: common.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
|
+
|
|
29
|
+
|
|
30
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x63ommon.proto\x12\niqm.server\"\x07\n\x05\x45mpty\"\x0b\n\tKeepalive\"\x19\n\tDataChunk\x12\x0c\n\x04\x64\x61ta\x18\x01 \x02(\x0c')
|
|
31
|
+
|
|
32
|
+
_globals = globals()
|
|
33
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
34
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'common_pb2', _globals)
|
|
35
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
36
|
+
DESCRIPTOR._options = None
|
|
37
|
+
_globals['_EMPTY']._serialized_start=28
|
|
38
|
+
_globals['_EMPTY']._serialized_end=35
|
|
39
|
+
_globals['_KEEPALIVE']._serialized_start=37
|
|
40
|
+
_globals['_KEEPALIVE']._serialized_end=48
|
|
41
|
+
_globals['_DATACHUNK']._serialized_start=50
|
|
42
|
+
_globals['_DATACHUNK']._serialized_end=75
|
|
43
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,32 @@
|
|
|
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 google.protobuf import descriptor as _descriptor
|
|
15
|
+
from google.protobuf import message as _message
|
|
16
|
+
from typing import ClassVar as _ClassVar, Optional as _Optional
|
|
17
|
+
|
|
18
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
19
|
+
|
|
20
|
+
class Empty(_message.Message):
|
|
21
|
+
__slots__ = ()
|
|
22
|
+
def __init__(self) -> None: ...
|
|
23
|
+
|
|
24
|
+
class Keepalive(_message.Message):
|
|
25
|
+
__slots__ = ()
|
|
26
|
+
def __init__(self) -> None: ...
|
|
27
|
+
|
|
28
|
+
class DataChunk(_message.Message):
|
|
29
|
+
__slots__ = ("data",)
|
|
30
|
+
DATA_FIELD_NUMBER: _ClassVar[int]
|
|
31
|
+
data: bytes
|
|
32
|
+
def __init__(self, data: _Optional[bytes] = ...) -> None: ...
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
+
|
|
@@ -0,0 +1,57 @@
|
|
|
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: job.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
|
+
from . import qc_pb2 as qc__pb2
|
|
31
|
+
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tjob.proto\x12\niqm.server\x1a\x0c\x63ommon.proto\x1a\nuuid.proto\x1a\x08qc.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xcf\x03\n\x05JobV1\x12\x1c\n\x02id\x18\x01 \x02(\x0b\x32\x10.iqm.server.Uuid\x12!\n\x04type\x18\x02 \x02(\x0e\x32\x13.iqm.server.JobType\x12\x37\n\x10quantum_computer\x18\x03 \x02(\x0b\x32\x1d.iqm.server.QuantumComputerV1\x12,\n\x05input\x18\x05 \x02(\x0b\x32\x1d.iqm.server.JobInputSummaryV1\x12%\n\x06status\x18\x06 \x02(\x0e\x32\x15.iqm.server.JobStatus\x12\x16\n\x0equeue_position\x18\x07 \x01(\r\x12\r\n\x05\x65rror\x18\x08 \x01(\t\x12.\n\ncreated_at\x18\t \x02(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\n \x02(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x38\n\x14\x65xecution_started_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x12\x65xecution_ended_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"[\n\x11JobInputSummaryV1\x12%\n\x08job_type\x18\x01 \x02(\x0e\x32\x13.iqm.server.JobType\x12\r\n\x05shots\x18\x02 \x02(\x05\x12\x10\n\x08\x63ircuits\x18\x03 \x02(\x05\"f\n\nJobEventV1\x12*\n\tkeepalive\x18\x01 \x01(\x0b\x32\x15.iqm.server.KeepaliveH\x00\x12#\n\x06update\x18\x02 \x01(\x0b\x32\x11.iqm.server.JobV1H\x00\x42\x07\n\x05value\"+\n\x0bJobLookupV1\x12\x1c\n\x02id\x18\x01 \x02(\x0b\x32\x10.iqm.server.Uuid\"\x7f\n\x12SubmitJobRequestV1\x12\x1f\n\x05qc_id\x18\x01 \x02(\x0b\x32\x10.iqm.server.Uuid\x12!\n\x04type\x18\x02 \x02(\x0e\x32\x13.iqm.server.JobType\x12\x0f\n\x07payload\x18\x03 \x02(\x0c\x12\x14\n\x0cuse_timeslot\x18\x04 \x01(\x08*!\n\x07JobType\x12\x0b\n\x07\x43IRCUIT\x10\x00\x12\t\n\x05PULSE\x10\x01*c\n\tJobStatus\x12\x0c\n\x08IN_QUEUE\x10\x00\x12\r\n\tEXECUTING\x10\x01\x12\r\n\tCOMPLETED\x10\x02\x12\r\n\tCANCELLED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\x0f\n\x0bINTERRUPTED\x10\x05\x32\x8c\x03\n\x04Jobs\x12@\n\x0bSubmitJobV1\x12\x1e.iqm.server.SubmitJobRequestV1\x1a\x11.iqm.server.JobV1\x12\x36\n\x08GetJobV1\x12\x17.iqm.server.JobLookupV1\x1a\x11.iqm.server.JobV1\x12\x45\n\x10SubscribeToJobV1\x12\x17.iqm.server.JobLookupV1\x1a\x16.iqm.server.JobEventV10\x01\x12\x43\n\x0fGetJobPayloadV1\x12\x17.iqm.server.JobLookupV1\x1a\x15.iqm.server.DataChunk0\x01\x12\x43\n\x0fGetJobResultsV1\x12\x17.iqm.server.JobLookupV1\x1a\x15.iqm.server.DataChunk0\x01\x12\x39\n\x0b\x43\x61ncelJobV1\x12\x17.iqm.server.JobLookupV1\x1a\x11.iqm.server.JobV1')
|
|
35
|
+
|
|
36
|
+
_globals = globals()
|
|
37
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
38
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'job_pb2', _globals)
|
|
39
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
40
|
+
DESCRIPTOR._options = None
|
|
41
|
+
_globals['_JOBTYPE']._serialized_start=931
|
|
42
|
+
_globals['_JOBTYPE']._serialized_end=964
|
|
43
|
+
_globals['_JOBSTATUS']._serialized_start=966
|
|
44
|
+
_globals['_JOBSTATUS']._serialized_end=1065
|
|
45
|
+
_globals['_JOBV1']._serialized_start=95
|
|
46
|
+
_globals['_JOBV1']._serialized_end=558
|
|
47
|
+
_globals['_JOBINPUTSUMMARYV1']._serialized_start=560
|
|
48
|
+
_globals['_JOBINPUTSUMMARYV1']._serialized_end=651
|
|
49
|
+
_globals['_JOBEVENTV1']._serialized_start=653
|
|
50
|
+
_globals['_JOBEVENTV1']._serialized_end=755
|
|
51
|
+
_globals['_JOBLOOKUPV1']._serialized_start=757
|
|
52
|
+
_globals['_JOBLOOKUPV1']._serialized_end=800
|
|
53
|
+
_globals['_SUBMITJOBREQUESTV1']._serialized_start=802
|
|
54
|
+
_globals['_SUBMITJOBREQUESTV1']._serialized_end=929
|
|
55
|
+
_globals['_JOBS']._serialized_start=1068
|
|
56
|
+
_globals['_JOBS']._serialized_end=1464
|
|
57
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,107 @@
|
|
|
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 . import qc_pb2 as _qc_pb2
|
|
17
|
+
from google.protobuf import timestamp_pb2 as _timestamp_pb2
|
|
18
|
+
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
|
19
|
+
from google.protobuf import descriptor as _descriptor
|
|
20
|
+
from google.protobuf import message as _message
|
|
21
|
+
from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union
|
|
22
|
+
|
|
23
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
24
|
+
|
|
25
|
+
class JobType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
26
|
+
__slots__ = ()
|
|
27
|
+
CIRCUIT: _ClassVar[JobType]
|
|
28
|
+
PULSE: _ClassVar[JobType]
|
|
29
|
+
|
|
30
|
+
class JobStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
31
|
+
__slots__ = ()
|
|
32
|
+
IN_QUEUE: _ClassVar[JobStatus]
|
|
33
|
+
EXECUTING: _ClassVar[JobStatus]
|
|
34
|
+
COMPLETED: _ClassVar[JobStatus]
|
|
35
|
+
CANCELLED: _ClassVar[JobStatus]
|
|
36
|
+
FAILED: _ClassVar[JobStatus]
|
|
37
|
+
INTERRUPTED: _ClassVar[JobStatus]
|
|
38
|
+
CIRCUIT: JobType
|
|
39
|
+
PULSE: JobType
|
|
40
|
+
IN_QUEUE: JobStatus
|
|
41
|
+
EXECUTING: JobStatus
|
|
42
|
+
COMPLETED: JobStatus
|
|
43
|
+
CANCELLED: JobStatus
|
|
44
|
+
FAILED: JobStatus
|
|
45
|
+
INTERRUPTED: JobStatus
|
|
46
|
+
|
|
47
|
+
class JobV1(_message.Message):
|
|
48
|
+
__slots__ = ("id", "type", "quantum_computer", "input", "status", "queue_position", "error", "created_at", "updated_at", "execution_started_at", "execution_ended_at")
|
|
49
|
+
ID_FIELD_NUMBER: _ClassVar[int]
|
|
50
|
+
TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
51
|
+
QUANTUM_COMPUTER_FIELD_NUMBER: _ClassVar[int]
|
|
52
|
+
INPUT_FIELD_NUMBER: _ClassVar[int]
|
|
53
|
+
STATUS_FIELD_NUMBER: _ClassVar[int]
|
|
54
|
+
QUEUE_POSITION_FIELD_NUMBER: _ClassVar[int]
|
|
55
|
+
ERROR_FIELD_NUMBER: _ClassVar[int]
|
|
56
|
+
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
|
57
|
+
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
|
58
|
+
EXECUTION_STARTED_AT_FIELD_NUMBER: _ClassVar[int]
|
|
59
|
+
EXECUTION_ENDED_AT_FIELD_NUMBER: _ClassVar[int]
|
|
60
|
+
id: _uuid_pb2.Uuid
|
|
61
|
+
type: JobType
|
|
62
|
+
quantum_computer: _qc_pb2.QuantumComputerV1
|
|
63
|
+
input: JobInputSummaryV1
|
|
64
|
+
status: JobStatus
|
|
65
|
+
queue_position: int
|
|
66
|
+
error: str
|
|
67
|
+
created_at: _timestamp_pb2.Timestamp
|
|
68
|
+
updated_at: _timestamp_pb2.Timestamp
|
|
69
|
+
execution_started_at: _timestamp_pb2.Timestamp
|
|
70
|
+
execution_ended_at: _timestamp_pb2.Timestamp
|
|
71
|
+
def __init__(self, id: _Optional[_Union[_uuid_pb2.Uuid, _Mapping]] = ..., type: _Optional[_Union[JobType, str]] = ..., quantum_computer: _Optional[_Union[_qc_pb2.QuantumComputerV1, _Mapping]] = ..., input: _Optional[_Union[JobInputSummaryV1, _Mapping]] = ..., status: _Optional[_Union[JobStatus, str]] = ..., queue_position: _Optional[int] = ..., error: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., execution_started_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., execution_ended_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
|
72
|
+
|
|
73
|
+
class JobInputSummaryV1(_message.Message):
|
|
74
|
+
__slots__ = ("job_type", "shots", "circuits")
|
|
75
|
+
JOB_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
76
|
+
SHOTS_FIELD_NUMBER: _ClassVar[int]
|
|
77
|
+
CIRCUITS_FIELD_NUMBER: _ClassVar[int]
|
|
78
|
+
job_type: JobType
|
|
79
|
+
shots: int
|
|
80
|
+
circuits: int
|
|
81
|
+
def __init__(self, job_type: _Optional[_Union[JobType, str]] = ..., shots: _Optional[int] = ..., circuits: _Optional[int] = ...) -> None: ...
|
|
82
|
+
|
|
83
|
+
class JobEventV1(_message.Message):
|
|
84
|
+
__slots__ = ("keepalive", "update")
|
|
85
|
+
KEEPALIVE_FIELD_NUMBER: _ClassVar[int]
|
|
86
|
+
UPDATE_FIELD_NUMBER: _ClassVar[int]
|
|
87
|
+
keepalive: _common_pb2.Keepalive
|
|
88
|
+
update: JobV1
|
|
89
|
+
def __init__(self, keepalive: _Optional[_Union[_common_pb2.Keepalive, _Mapping]] = ..., update: _Optional[_Union[JobV1, _Mapping]] = ...) -> None: ...
|
|
90
|
+
|
|
91
|
+
class JobLookupV1(_message.Message):
|
|
92
|
+
__slots__ = ("id",)
|
|
93
|
+
ID_FIELD_NUMBER: _ClassVar[int]
|
|
94
|
+
id: _uuid_pb2.Uuid
|
|
95
|
+
def __init__(self, id: _Optional[_Union[_uuid_pb2.Uuid, _Mapping]] = ...) -> None: ...
|
|
96
|
+
|
|
97
|
+
class SubmitJobRequestV1(_message.Message):
|
|
98
|
+
__slots__ = ("qc_id", "type", "payload", "use_timeslot")
|
|
99
|
+
QC_ID_FIELD_NUMBER: _ClassVar[int]
|
|
100
|
+
TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
101
|
+
PAYLOAD_FIELD_NUMBER: _ClassVar[int]
|
|
102
|
+
USE_TIMESLOT_FIELD_NUMBER: _ClassVar[int]
|
|
103
|
+
qc_id: _uuid_pb2.Uuid
|
|
104
|
+
type: JobType
|
|
105
|
+
payload: bytes
|
|
106
|
+
use_timeslot: bool
|
|
107
|
+
def __init__(self, qc_id: _Optional[_Union[_uuid_pb2.Uuid, _Mapping]] = ..., type: _Optional[_Union[JobType, str]] = ..., payload: _Optional[bytes] = ..., use_timeslot: bool = ...) -> None: ...
|