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.
Files changed (32) hide show
  1. iqm/station_control/client/iqm_server/__init__.py +14 -0
  2. iqm/station_control/client/iqm_server/error.py +30 -0
  3. iqm/station_control/client/iqm_server/grpc_utils.py +154 -0
  4. iqm/station_control/client/iqm_server/iqm_server_client.py +332 -0
  5. iqm/station_control/client/iqm_server/meta_class.py +38 -0
  6. iqm/station_control/client/iqm_server/proto/__init__.py +43 -0
  7. iqm/station_control/client/iqm_server/proto/calibration_pb2.py +48 -0
  8. iqm/station_control/client/iqm_server/proto/calibration_pb2.pyi +45 -0
  9. iqm/station_control/client/iqm_server/proto/calibration_pb2_grpc.py +152 -0
  10. iqm/station_control/client/iqm_server/proto/common_pb2.py +43 -0
  11. iqm/station_control/client/iqm_server/proto/common_pb2.pyi +32 -0
  12. iqm/station_control/client/iqm_server/proto/common_pb2_grpc.py +17 -0
  13. iqm/station_control/client/iqm_server/proto/job_pb2.py +57 -0
  14. iqm/station_control/client/iqm_server/proto/job_pb2.pyi +107 -0
  15. iqm/station_control/client/iqm_server/proto/job_pb2_grpc.py +436 -0
  16. iqm/station_control/client/iqm_server/proto/qc_pb2.py +51 -0
  17. iqm/station_control/client/iqm_server/proto/qc_pb2.pyi +57 -0
  18. iqm/station_control/client/iqm_server/proto/qc_pb2_grpc.py +163 -0
  19. iqm/station_control/client/iqm_server/proto/uuid_pb2.py +39 -0
  20. iqm/station_control/client/iqm_server/proto/uuid_pb2.pyi +26 -0
  21. iqm/station_control/client/iqm_server/proto/uuid_pb2_grpc.py +17 -0
  22. iqm/station_control/client/iqm_server/testing/__init__.py +13 -0
  23. iqm/station_control/client/iqm_server/testing/iqm_server_mock.py +102 -0
  24. iqm/station_control/client/serializers/task_serializers.py +28 -1
  25. iqm/station_control/client/station_control.py +77 -1
  26. iqm/station_control/client/utils.py +16 -1
  27. {iqm_station_control_client-3.11.dist-info → iqm_station_control_client-3.13.dist-info}/METADATA +2 -1
  28. iqm_station_control_client-3.13.dist-info/RECORD +52 -0
  29. iqm_station_control_client-3.11.dist-info/RECORD +0 -29
  30. {iqm_station_control_client-3.11.dist-info → iqm_station_control_client-3.13.dist-info}/LICENSE.txt +0 -0
  31. {iqm_station_control_client-3.11.dist-info → iqm_station_control_client-3.13.dist-info}/WHEEL +0 -0
  32. {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: ...