iqm-station-control-client 9.3.0__py3-none-any.whl → 9.5.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.
@@ -145,7 +145,7 @@ class _StationControlClientBase(StationControlInterface):
145
145
  params: dict[str, Any] | None = None,
146
146
  json_str: str | None = None,
147
147
  octets: bytes | None = None,
148
- timeout: int = 120,
148
+ timeout: int = 600,
149
149
  ) -> requests.Response:
150
150
  """Send an HTTP request.
151
151
 
@@ -159,6 +159,7 @@ class _StationControlClientBase(StationControlInterface):
159
159
  params: HTTP query parameters to store in the query string of the request URL.
160
160
  json_str: JSON string to store in the body, may contain arbitrary Unicode characters.
161
161
  octets: Pre-serialized binary data to store in the body.
162
+ timeout: Timeout for the request in seconds.
162
163
 
163
164
  Returns:
164
165
  Response to the request.
@@ -46,51 +46,78 @@ class JobError(PydanticBase):
46
46
 
47
47
 
48
48
  class JobData(PydanticBase):
49
- """Job response data model"""
49
+ """Status, artifacts and metadata of a job."""
50
50
 
51
51
  job_id: UUID
52
+ """Unique ID of the job."""
52
53
  job_status: JobExecutorStatus
54
+ """Current job status."""
53
55
  job_result: JobResult
56
+ """Progress information for the job.""" # FIXME why is it called JobResult? can it be None?
57
+ # job_result: The output of a progressing or a successful job. This includes progress indicators.
54
58
  job_error: JobError | None
59
+ """Error message(s) for a failed job."""
55
60
  position: int | None
61
+ """If the job is not completed, its position in the current queue.
62
+ 1 means this task will be executed next. In other cases the value is 0."""
56
63
 
57
64
 
58
65
  @functools.total_ordering
59
66
  class JobExecutorStatus(Enum):
60
- """Enumeration of different states a job can be in. The ordering of these statuses is important,
61
- and execution logic relies on it. Thus, if a new status is added, ensure that it is slotted
67
+ """Different states a job can be in.
68
+
69
+ The ordering of these statuses is important, and execution logic relies on it.
70
+ Thus, if a new status is added, ensure that it is slotted
62
71
  in at the appropriate place. See the :meth:`__lt__` implementation for further details.
63
72
  """
64
73
 
65
74
  # Received by the server
66
75
  RECEIVED = "received"
76
+ """The job has been received by the server."""
67
77
 
68
78
  # Validating the job
69
79
  VALIDATION_STARTED = "validation_started"
80
+ """The job is being validated."""
70
81
  VALIDATION_ENDED = "validation_ended"
82
+ """The job passed validation."""
71
83
 
72
84
  # Running PulLA
73
85
  FETCH_CALIBRATION_STARTED = "fetch_calibration_started"
86
+ """Calibration data for the job is being fetched."""
74
87
  FETCH_CALIBRATION_ENDED = "fetch_calibration_ended"
88
+ """Calibration data for the job has been fetched."""
75
89
  COMPILATION_STARTED = "compilation_started"
90
+ """The job is being compiled."""
76
91
  COMPILATION_ENDED = "compilation_ended"
92
+ """The job has been succesfully compiled."""
77
93
 
78
94
  # Executing sweep
79
95
  SAVE_SWEEP_METADATA_STARTED = "save_sweep_metadata_started"
96
+ """Metadata about the sweep is being stored to database."""
80
97
  SAVE_SWEEP_METADATA_ENDED = "save_sweep_metadata_ended"
98
+ """Metadata about the sweep has been stored to database."""
81
99
  PENDING_EXECUTION = "pending_execution"
100
+ """The job is ready for execution and is waiting for its turn in the queue."""
82
101
  EXECUTION_STARTED = "execution_started"
102
+ """The job has started executing on the instruments."""
83
103
  EXECUTION_ENDED = "execution_ended"
104
+ """The job has finished execution on the instruments."""
84
105
  POST_PROCESSING_PENDING = "post_processing_pending"
106
+ """The job has finished execution and is awaiting further processing."""
85
107
  POST_PROCESSING_STARTED = "post_processing_started"
108
+ """Execution artifacts are being constructed and persisted."""
86
109
  POST_PROCESSING_ENDED = "post_processing_ended"
110
+ """Execution artifacts have been constructed and persisted."""
111
+
87
112
  READY = "ready"
113
+ """The job has completed."""
88
114
 
89
115
  # Job failed, can happen at any stage
90
116
  FAILED = "failed"
117
+ """The job has failed. Error message(s) may be available."""
91
118
 
92
- # Job aborted
93
119
  ABORTED = "aborted"
120
+ """The job has been aborted."""
94
121
 
95
122
  def __str__(self):
96
123
  return self.name.lower()
@@ -109,7 +136,7 @@ class JobExecutorStatus(Enum):
109
136
  return self.name == other.name
110
137
 
111
138
  def __lt__(self, other):
112
- """Enable comparison according to definition order.
139
+ """Comparison according to definition order.
113
140
 
114
141
  :meta public:
115
142
 
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- """Observation related station control interface models."""
14
+ """Observation related Station Control interface models."""
15
15
 
16
16
  from datetime import datetime
17
17
  from typing import Any
@@ -35,7 +35,7 @@ class ObservationBase(PydanticBase):
35
35
  uncertainty: Uncertainty | None = None
36
36
  """Uncertainty of the observation value. ``None`` means unknown."""
37
37
  invalid: bool = False
38
- """Flag indicating if the object is invalid. Automated systems must not use invalid objects."""
38
+ """Flag indicating if the observation is invalid. Automated systems must not use invalid observations."""
39
39
 
40
40
 
41
41
  class ObservationDefinition(ObservationBase):
@@ -92,4 +92,4 @@ class ObservationUpdate(PydanticBase):
92
92
  observation_id: int
93
93
  """Unique identifier of the observation."""
94
94
  invalid: bool
95
- """Flag indicating if the object is invalid. Automated systems must not use invalid objects."""
95
+ """Flag indicating if the observation is invalid. Automated systems must not use invalid observations."""
@@ -33,7 +33,7 @@ class ObservationSetBase(PydanticBase):
33
33
  describes_id: uuid.UUID | None = Field(default=None)
34
34
  """Unique identifier of the observation set this observation set describes."""
35
35
  invalid: bool = Field(default=False)
36
- """Flag indicating if the object is invalid. Automated systems must not use invalid objects."""
36
+ """Flag indicating if the set is invalid. Automated systems must not use invalid sets."""
37
37
 
38
38
 
39
39
  class ObservationSetDefinition(ObservationSetBase):
@@ -71,10 +71,10 @@ class ObservationSetUpdate(PydanticBase):
71
71
  """Database IDs of the observations belonging to the observation set.
72
72
 
73
73
  This will only add new observations to the observation set, deleting existing ones is not possible.
74
- Setting this to `None` or omitting it will leave existing observation_ids as is with no changes.
74
+ Setting this to ``None`` or omitting it will leave existing :attr:`observation_ids` as is with no changes.
75
75
  """
76
76
  invalid: bool
77
- """Flag indicating if the object is invalid. Automated systems must not use invalid objects."""
77
+ """Flag indicating if the set is invalid. Automated systems must not use invalid sets."""
78
78
 
79
79
 
80
80
  class ObservationSetWithObservations(ObservationSetData):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-station-control-client
3
- Version: 9.3.0
3
+ Version: 9.5.0
4
4
  Summary: Python client for communicating with Station Control Service
5
5
  Author-email: IQM Finland Oy <info@meetiqm.com>
6
6
  License: Apache License
@@ -1,6 +1,6 @@
1
1
  iqm/station_control/client/__init__.py,sha256=1ND-AkIE9xLGIscH3WN44eyll9nlFhXeyCm-8EDFGQ4,942
2
2
  iqm/station_control/client/list_models.py,sha256=7JJyn5jCBOvMBJWdsVsPRLhtChMxqLa6O9hElpeXEt8,2701
3
- iqm/station_control/client/station_control.py,sha256=S-0YdGLKla0v98ntABbij7sXXxP-CwkynbzqQRf21s0,28167
3
+ iqm/station_control/client/station_control.py,sha256=tEvqS1KFrF6auNuF-UwFF-DfikWga6iC35HvnLMmTPw,28224
4
4
  iqm/station_control/client/utils.py,sha256=-6K4KgOgA4iyUCqX-w26JvFxlwlGBehGj4tIWCEbn74,3360
5
5
  iqm/station_control/client/iqm_server/__init__.py,sha256=nLsRHN1rnOKXwuzaq_liUpAYV3sis5jkyHccSdacV7U,624
6
6
  iqm/station_control/client/iqm_server/error.py,sha256=a8l7UTnzfbD8KDHP-uOve77S6LR1ai9uM_J_xHbLs0Y,1175
@@ -40,17 +40,17 @@ iqm/station_control/interface/station_control.py,sha256=Uh9bDEZjc9M5KOYsGjPMYVhn
40
40
  iqm/station_control/interface/models/__init__.py,sha256=Kg-XRLuU7G4Zjtu8LhYD-v3zkCYHzLFaNvC_nukezlQ,1968
41
41
  iqm/station_control/interface/models/dut.py,sha256=Hc_0XllXeIPGWhHsY7PC_jMpi7swpqo3jQQEQVnF3AM,1216
42
42
  iqm/station_control/interface/models/dynamic_quantum_architecture.py,sha256=3YlI9e1XxdbkBzlOdxmzYTccJ8AJRnRSIp-JoBf8Yyw,4698
43
- iqm/station_control/interface/models/jobs.py,sha256=4CVVGMsUOm_UO4w7UH-Shq7cbZe_5MkhGDpoBwHoHkc,5105
43
+ iqm/station_control/interface/models/jobs.py,sha256=-e_mW66vD3FMqQAPFuSwwn9YSTuqIrw-ZqEzlDBFoAc,6547
44
44
  iqm/station_control/interface/models/monitor.py,sha256=ItlgxtBup1hHg64uKeMKiFE7MaRRqSYdVRttsFD_XeU,1352
45
- iqm/station_control/interface/models/observation.py,sha256=FwhlI2xXZ_2-PA-LcDvscHuTbfdTWhw67zSNa9Buuvg,3261
46
- iqm/station_control/interface/models/observation_set.py,sha256=ZNgc-5Yn2o3hmXpjb-3yWGVTz9HNpovu5hhSvDvg5b4,3582
45
+ iqm/station_control/interface/models/observation.py,sha256=IblYdzJN88BNlyxUVR_dIx7BgD_GHGLhHUwy89Fib-I,3281
46
+ iqm/station_control/interface/models/observation_set.py,sha256=EPNv-V_LIHRfJw3PS3kpTECcWqLcDiDFwxf5kuxLFXI,3580
47
47
  iqm/station_control/interface/models/run.py,sha256=uEuAMryG-AjAIBTchftw94GpoSBE5SQK2qmlZZ4tq5k,4097
48
48
  iqm/station_control/interface/models/sequence.py,sha256=boWlMfP3woVgVObW3OaNbxsUV_qHYP1DA-oIBWj6XIo,2723
49
49
  iqm/station_control/interface/models/static_quantum_architecture.py,sha256=gsfJKlYsfZVEK3dqEKXkBSIHiY14DGwNbhPJdNHMtNM,1435
50
50
  iqm/station_control/interface/models/sweep.py,sha256=HFoFIrKhlYmHIBfGltY2O9_J28OvkkZILRbDHuqR0wc,2509
51
51
  iqm/station_control/interface/models/type_aliases.py,sha256=gEYJ8zOpV1m0NVyYUbAL43psp9Lxw_0t68mYlI65Sds,1262
52
- iqm_station_control_client-9.3.0.dist-info/LICENSE.txt,sha256=R6Q7eUrLyoCQgWYorQ8WJmVmWKYU3dxA3jYUp0wwQAw,11332
53
- iqm_station_control_client-9.3.0.dist-info/METADATA,sha256=Fsx6N7-afceIjDh8Fxzz7uZW7TDgcFIQr8__en45OlU,14010
54
- iqm_station_control_client-9.3.0.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
55
- iqm_station_control_client-9.3.0.dist-info/top_level.txt,sha256=NB4XRfyDS6_wG9gMsyX-9LTU7kWnTQxNvkbzIxGv3-c,4
56
- iqm_station_control_client-9.3.0.dist-info/RECORD,,
52
+ iqm_station_control_client-9.5.0.dist-info/LICENSE.txt,sha256=R6Q7eUrLyoCQgWYorQ8WJmVmWKYU3dxA3jYUp0wwQAw,11332
53
+ iqm_station_control_client-9.5.0.dist-info/METADATA,sha256=kQPo_DNjdBnZCaAYr4mxXduU2M04_fFKvu1LSoRRy1I,14010
54
+ iqm_station_control_client-9.5.0.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
55
+ iqm_station_control_client-9.5.0.dist-info/top_level.txt,sha256=NB4XRfyDS6_wG9gMsyX-9LTU7kWnTQxNvkbzIxGv3-c,4
56
+ iqm_station_control_client-9.5.0.dist-info/RECORD,,