iqm-pulla 9.7.0__py3-none-any.whl → 9.8.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/pulla/pulla.py CHANGED
@@ -248,57 +248,57 @@ class Pulla:
248
248
  logger.info("Waiting for the job to finish...")
249
249
 
250
250
  while True:
251
- sweep_data = self._station_control.get_sweep(job_id)
251
+ job_data = self._station_control.get_job(job_id)
252
252
  sc_result = StationControlResult(sweep_id=job_id, task_id=job_id, status=TaskStatus.PENDING)
253
253
 
254
- if sweep_data.job_status <= JobExecutorStatus.EXECUTION_STARTED: # type: ignore[operator]
254
+ if job_data.job_status <= JobExecutorStatus.EXECUTION_STARTED: # type: ignore[operator]
255
255
  # Wait in the task queue while showing a progress bar
256
256
 
257
257
  interrupted = self._station_control._wait_job_completion(str(job_id), get_progress_bar_callback()) # type: ignore[attr-defined]
258
258
  if interrupted:
259
259
  raise KeyboardInterrupt
260
-
261
- elif sweep_data.job_status == JobExecutorStatus.READY:
262
- logger.info("Sweep status: %s", str(sweep_data.job_status))
263
-
264
- sc_result.status = TaskStatus.READY
265
- sc_result.result = map_sweep_results_to_logical_qubits(
266
- self._station_control.get_sweep_results(job_id),
267
- context["readout_mappings"],
268
- context["options"].heralding_mode,
269
- )
270
- sc_result.start_time = (
271
- sweep_data.begin_timestamp.isoformat() if sweep_data.begin_timestamp else None
272
- )
273
- sc_result.end_time = sweep_data.end_timestamp.isoformat() if sweep_data.end_timestamp else None
274
-
275
- if verbose:
276
- # TODO: Consider using just 'logger.debug' here and remove 'verbose'
277
- logger.info(sc_result.result)
278
-
279
- return sc_result
280
-
281
- elif sweep_data.job_status == JobExecutorStatus.FAILED:
282
- sc_result.status = TaskStatus.FAILED
283
- sc_result.start_time = (
284
- sweep_data.begin_timestamp.isoformat() if sweep_data.begin_timestamp else None
285
- )
286
- sc_result.end_time = sweep_data.end_timestamp.isoformat() if sweep_data.end_timestamp else None
287
- job = self._station_control.get_job(job_id)
288
- sc_result.message = job["job_error"] # type: ignore[index]
289
- logger.error("Submission failed! Error: %s", sc_result.message)
290
- return sc_result
291
-
292
- elif sweep_data.job_status == JobExecutorStatus.ABORTED:
293
- sc_result.status = TaskStatus.FAILED
294
- sc_result.start_time = (
295
- sweep_data.begin_timestamp.isoformat() if sweep_data.begin_timestamp else None
296
- )
297
- sc_result.end_time = sweep_data.end_timestamp.isoformat() if sweep_data.end_timestamp else None
298
- job = self._station_control.get_job(job_id)
299
- sc_result.message = job["job_error"] # type: ignore[index]
300
- logger.error("Submission was revoked!")
301
- return sc_result
260
+ else:
261
+ # job is not in queue or executing, so we can query the sweep
262
+ sweep_data = self._station_control.get_sweep(job_id)
263
+ if job_data.job_status == JobExecutorStatus.READY:
264
+ logger.info("Sweep status: %s", str(sweep_data.job_status))
265
+
266
+ sc_result.status = TaskStatus.READY
267
+ sc_result.result = map_sweep_results_to_logical_qubits(
268
+ self._station_control.get_sweep_results(job_id),
269
+ context["readout_mappings"],
270
+ context["options"].heralding_mode,
271
+ )
272
+ sc_result.start_time = (
273
+ sweep_data.begin_timestamp.isoformat() if sweep_data.begin_timestamp else None
274
+ )
275
+ sc_result.end_time = sweep_data.end_timestamp.isoformat() if sweep_data.end_timestamp else None
276
+
277
+ if verbose:
278
+ # TODO: Consider using just 'logger.debug' here and remove 'verbose'
279
+ logger.info(sc_result.result)
280
+
281
+ return sc_result
282
+
283
+ if job_data.job_status == JobExecutorStatus.FAILED:
284
+ sc_result.status = TaskStatus.FAILED
285
+ sc_result.start_time = (
286
+ sweep_data.begin_timestamp.isoformat() if sweep_data.begin_timestamp else None
287
+ )
288
+ sc_result.end_time = sweep_data.end_timestamp.isoformat() if sweep_data.end_timestamp else None
289
+ sc_result.message = str(job_data.job_error)
290
+ logger.error("Submission failed! Error: %s", sc_result.message)
291
+ return sc_result
292
+
293
+ if job_data.job_status == JobExecutorStatus.ABORTED:
294
+ sc_result.status = TaskStatus.FAILED
295
+ sc_result.start_time = (
296
+ sweep_data.begin_timestamp.isoformat() if sweep_data.begin_timestamp else None
297
+ )
298
+ sc_result.end_time = sweep_data.end_timestamp.isoformat() if sweep_data.end_timestamp else None
299
+ sc_result.message = str(job_data.job_error)
300
+ logger.error("Submission was revoked!")
301
+ return sc_result
302
302
 
303
303
  time.sleep(1)
304
304
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-pulla
3
- Version: 9.7.0
3
+ Version: 9.8.0
4
4
  Summary: Client library for pulse-level access to an IQM quantum computer
5
5
  Author-email: IQM Finland Oy <developers@meetiqm.com>
6
6
  License: Apache License
@@ -239,8 +239,8 @@ Provides-Extra: qiskit
239
239
  Requires-Dist: iqm-exa-common <27,>=26 ; extra == 'qiskit'
240
240
  Requires-Dist: iqm-station-control-client <10,>=9 ; extra == 'qiskit'
241
241
  Requires-Dist: iqm-pulse <11,>=10 ; extra == 'qiskit'
242
- Requires-Dist: iqm-client <31,>=30 ; extra == 'qiskit'
243
242
  Requires-Dist: iqm-client[qiskit] <31,>=30 ; extra == 'qiskit'
243
+ Requires-Dist: iqm-client <31,>=30 ; extra == 'qiskit'
244
244
 
245
245
  IQM Pulla
246
246
  #########
@@ -11,7 +11,7 @@ iqm/cpc/interface/compiler.py,sha256=2x3ZhL4WcyjwlSoZ3KhlmRcLxboz_ptS0M_rdX1z0c8
11
11
  iqm/pulla/__init__.py,sha256=fj5Qh8R9K-z6q5g9-CySBZsG8d33nU7hCHrqIIB8_-0,901
12
12
  iqm/pulla/calibration.py,sha256=c_SNlTxXC0y-ahDY7JY53N7SofU5WUWMrNBogtdfHl4,4523
13
13
  iqm/pulla/interface.py,sha256=yymQo4REHYcUOWgPxPYq9IixS9bBZ27LXLQgJhzET58,5400
14
- iqm/pulla/pulla.py,sha256=IpW6VLbpx7Qroy47sbybmNmv4jVr2fyd_zx-sdKMklA,14109
14
+ iqm/pulla/pulla.py,sha256=RWsUgtCy_wAgm8TDk6uZEmaG_v-lTBFzx43qpA1CfQU,14243
15
15
  iqm/pulla/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  iqm/pulla/quantum_architecture.py,sha256=mJH9e9fdkblg6LrgN7qd-Ui3Igawf-hGd2Z7ZclQg04,6260
17
17
  iqm/pulla/utils.py,sha256=TTAOFhNW59VFAjnu6ZicmHXvp-GI_f66oh6IC1zFQKE,24732
@@ -19,9 +19,9 @@ iqm/pulla/utils_cirq.py,sha256=8SBy6w7cr4AmnCgKwh7dBWwBGfGKxnoEMv9-1yfKs0A,777
19
19
  iqm/pulla/utils_dd.py,sha256=SxYAuRBgvYELKjeXpFbP4mM0xCCivDk7WUHw7oEXfMo,1695
20
20
  iqm/pulla/utils_qir.py,sha256=SKQyYwqluMOqfts6jdhP6ik8BvAIppwaq6-_sY0MO8M,11503
21
21
  iqm/pulla/utils_qiskit.py,sha256=RBrAf_KbxlL8DI078mtN8nK1pdfAbd4yk7DJSZVEFSs,10397
22
- iqm_pulla-9.7.0.dist-info/AUTHORS.rst,sha256=iCStz7WP5Jk7uMnn9jRA4ybS14X4yeUW2SsWE-OTaRk,328
23
- iqm_pulla-9.7.0.dist-info/LICENSE.txt,sha256=cCj_biRA4Q8A77vxR8AuvAf-DZ5G79yxR_3lYY6TrmA,11333
24
- iqm_pulla-9.7.0.dist-info/METADATA,sha256=mSSW_T5amveL2CvjouRXL_IoyUQ5My2r5D4JgyZqyrQ,17695
25
- iqm_pulla-9.7.0.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
26
- iqm_pulla-9.7.0.dist-info/top_level.txt,sha256=NB4XRfyDS6_wG9gMsyX-9LTU7kWnTQxNvkbzIxGv3-c,4
27
- iqm_pulla-9.7.0.dist-info/RECORD,,
22
+ iqm_pulla-9.8.0.dist-info/AUTHORS.rst,sha256=iCStz7WP5Jk7uMnn9jRA4ybS14X4yeUW2SsWE-OTaRk,328
23
+ iqm_pulla-9.8.0.dist-info/LICENSE.txt,sha256=cCj_biRA4Q8A77vxR8AuvAf-DZ5G79yxR_3lYY6TrmA,11333
24
+ iqm_pulla-9.8.0.dist-info/METADATA,sha256=1pt45T-YC8ejygXb1q90CZKSQr4sAZcfwK0mN4e9U_0,17695
25
+ iqm_pulla-9.8.0.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
26
+ iqm_pulla-9.8.0.dist-info/top_level.txt,sha256=NB4XRfyDS6_wG9gMsyX-9LTU7kWnTQxNvkbzIxGv3-c,4
27
+ iqm_pulla-9.8.0.dist-info/RECORD,,