bec-server 2.12.2__tar.gz → 2.12.4__tar.gz

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 (114) hide show
  1. {bec_server-2.12.2 → bec_server-2.12.4}/PKG-INFO +1 -1
  2. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/scan_manager.py +0 -1
  3. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/scan_plugins/otf_scan.py +1 -3
  4. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/scan_stubs.py +10 -0
  5. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/scan_worker.py +3 -4
  6. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/scans.py +18 -44
  7. {bec_server-2.12.2 → bec_server-2.12.4}/pyproject.toml +1 -1
  8. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_file_writer/test_file_writer.py +0 -1
  9. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scan_server/test_scan_worker.py +1 -2
  10. {bec_server-2.12.2 → bec_server-2.12.4}/.gitignore +0 -0
  11. {bec_server-2.12.2 → bec_server-2.12.4}/README.md +0 -0
  12. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/__init__.py +0 -0
  13. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/bec_server_utils/__init__.py +0 -0
  14. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/bec_server_utils/launch.py +0 -0
  15. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/bec_server_utils/service_handler.py +0 -0
  16. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/bec_server_utils/subprocess_launch.py +0 -0
  17. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/bec_server_utils/tmux_launch.py +0 -0
  18. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/data_processing/__init__.py +0 -0
  19. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/data_processing/cli/__init__.py +0 -0
  20. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/data_processing/cli/launch.py +0 -0
  21. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/data_processing/dap_server.py +0 -0
  22. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/data_processing/dap_service.py +0 -0
  23. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/data_processing/dap_service_manager.py +0 -0
  24. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/data_processing/lmfit1d_service.py +0 -0
  25. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/device_server/__init__.py +0 -0
  26. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/device_server/cli/__init__.py +0 -0
  27. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/device_server/cli/launch.py +0 -0
  28. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/device_server/device_server.py +0 -0
  29. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/device_server/devices/__init__.py +0 -0
  30. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/device_server/devices/config_update_handler.py +0 -0
  31. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/device_server/devices/device_serializer.py +0 -0
  32. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/device_server/devices/devicemanager.py +0 -0
  33. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/device_server/rpc_mixin.py +0 -0
  34. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/device_server/tests/__init__.py +0 -0
  35. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/device_server/tests/utils.py +0 -0
  36. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/file_writer/__init__.py +0 -0
  37. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/file_writer/cli/__init__.py +0 -0
  38. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/file_writer/cli/launch.py +0 -0
  39. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/file_writer/default_writer.py +0 -0
  40. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/file_writer/file_writer.py +0 -0
  41. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/file_writer/file_writer_manager.py +0 -0
  42. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/file_writer/merged_dicts.py +0 -0
  43. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/file_writer_plugins/__init__.py +0 -0
  44. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/file_writer_plugins/cSAXS.py +0 -0
  45. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_bundler/__init__.py +0 -0
  46. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_bundler/bec_emitter.py +0 -0
  47. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_bundler/bluesky_emitter.py +0 -0
  48. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_bundler/cli/__init__.py +0 -0
  49. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_bundler/cli/launch.py +0 -0
  50. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_bundler/emitter.py +0 -0
  51. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_bundler/scan_bundler.py +0 -0
  52. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/__init__.py +0 -0
  53. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/cli/__init__.py +0 -0
  54. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/cli/launch.py +0 -0
  55. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/device_validation.py +0 -0
  56. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/errors.py +0 -0
  57. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/path_optimization.py +0 -0
  58. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/scan_assembler.py +0 -0
  59. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/scan_guard.py +0 -0
  60. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/scan_plugins/__init__.py +0 -0
  61. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/scan_queue.py +0 -0
  62. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/scan_server.py +0 -0
  63. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/tests/__init__.py +0 -0
  64. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/tests/fixtures.py +0 -0
  65. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scan_server/tests/utils.py +0 -0
  66. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scihub/__init__.py +0 -0
  67. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scihub/cli/__init__.py +0 -0
  68. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scihub/cli/launch.py +0 -0
  69. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scihub/repeated_timer.py +0 -0
  70. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scihub/scibec/__init__.py +0 -0
  71. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scihub/scibec/config_handler.py +0 -0
  72. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scihub/scibec/scibec_connector.py +0 -0
  73. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scihub/scibec/scibec_metadata_handler.py +0 -0
  74. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scihub/scihub.py +0 -0
  75. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scihub/scilog/__init__.py +0 -0
  76. {bec_server-2.12.2 → bec_server-2.12.4}/bec_server/scihub/scilog/scilog.py +0 -0
  77. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_bec_server_utils/test_main.py +0 -0
  78. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_bec_server_utils/test_service_handler.py +0 -0
  79. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_bec_server_utils/test_tmux_launch.py +0 -0
  80. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_data_processing/conftest.py +0 -0
  81. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_data_processing/test_dap_cli_launch.py +0 -0
  82. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_data_processing/test_dap_server.py +0 -0
  83. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_data_processing/test_dap_service_manager.py +0 -0
  84. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_data_processing/test_lmfit1d_service.py +0 -0
  85. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_device_server/conftest.py +0 -0
  86. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_device_server/test_config_handler.py +0 -0
  87. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_device_server/test_device_manager_ds.py +0 -0
  88. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_device_server/test_device_serializer.py +0 -0
  89. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_device_server/test_device_server.py +0 -0
  90. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_device_server/test_device_server_cli_launch.py +0 -0
  91. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_device_server/test_rpc_mixin.py +0 -0
  92. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_file_writer/conftest.py +0 -0
  93. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_file_writer/test_file_writer_cli_launch.py +0 -0
  94. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_file_writer/test_file_writer_manager.py +0 -0
  95. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scan_bundler/conftest.py +0 -0
  96. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scan_bundler/test_bec_emitter.py +0 -0
  97. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scan_bundler/test_bluesky_emitter.py +0 -0
  98. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scan_bundler/test_emitter.py +0 -0
  99. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scan_bundler/test_scan_bundler.py +0 -0
  100. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scan_bundler/test_scan_bundler_cli_launch.py +0 -0
  101. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scan_server/conftest.py +0 -0
  102. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scan_server/test_path_optimization.py +0 -0
  103. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scan_server/test_scan_guard.py +0 -0
  104. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scan_server/test_scan_server_cli_launch.py +0 -0
  105. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scan_server/test_scan_server_queue.py +0 -0
  106. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scan_server/test_scan_stubs.py +0 -0
  107. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scan_server/test_scans.py +0 -0
  108. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scihub/conftest.py +0 -0
  109. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scihub/test_repeated_timer.py +0 -0
  110. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scihub/test_scibec_config_handler.py +0 -0
  111. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scihub/test_scibec_connector.py +0 -0
  112. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scihub/test_scibec_metadata_handler.py +0 -0
  113. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scihub/test_scihub_cli_launch.py +0 -0
  114. {bec_server-2.12.2 → bec_server-2.12.4}/tests/tests_scihub/test_scilog_connector.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec-server
3
- Version: 2.12.2
3
+ Version: 2.12.4
4
4
  Summary: BEC server
5
5
  Project-URL: Bug Tracker, https://gitlab.psi.ch/bec/bec/issues
6
6
  Project-URL: Homepage, https://gitlab.psi.ch/bec/bec
@@ -77,7 +77,6 @@ class ScanManager:
77
77
  "arg_input": scan_cls.arg_input,
78
78
  "required_kwargs": scan_cls.required_kwargs,
79
79
  "arg_bundle_size": scan_cls.arg_bundle_size,
80
- "scan_report_hint": scan_cls.scan_report_hint,
81
80
  "doc": scan_cls.__doc__ or scan_cls.__init__.__doc__,
82
81
  "signature": signature_to_dict(scan_cls.__init__),
83
82
  }
@@ -8,7 +8,6 @@ logger = bec_logger.logger
8
8
 
9
9
  class OTFScan(SyncFlyScanBase):
10
10
  scan_name = "otf_scan"
11
- scan_report_hint = "table"
12
11
  required_kwargs = ["e1", "e2", "time"]
13
12
  arg_input = {}
14
13
  arg_bundle_size = {"bundle": len(arg_input), "min": None, "max": None}
@@ -66,7 +65,6 @@ class OTFScan(SyncFlyScanBase):
66
65
 
67
66
  class HystScan(ScanBase):
68
67
  scan_name = "hyst_scan"
69
- scan_report_hint = "table"
70
68
  required_kwargs = []
71
69
  arg_input = {
72
70
  "field_motor": ScanArgType.DEVICE,
@@ -124,7 +122,7 @@ class HystScan(ScanBase):
124
122
  self._current_scan_motor_index += self._scan_motor_direction
125
123
 
126
124
  def scan_core(self):
127
- # yield from self._move_and_wait(self.positions[0])
125
+ # yield from self._move_scan_motors_and_wait(self.positions[0])
128
126
  status = yield from self.stubs.send_rpc_and_wait(
129
127
  "field_x", "ramprate.set", self.default_ramp_rate
130
128
  )
@@ -1,3 +1,8 @@
1
+ """
2
+ Scan stubs are commands that can be used to control devices during a scan. They typically yield device messages that are
3
+ consumed by the scan worker and potentially forwarded to the device server.
4
+ """
5
+
1
6
  from __future__ import annotations
2
7
 
3
8
  import threading
@@ -20,6 +25,11 @@ logger = bec_logger.logger
20
25
 
21
26
 
22
27
  class ScanStubs:
28
+ """
29
+ Scan stubs are commands that can be used to control devices during a scan. They typically yield device messages that are
30
+ consumed by the scan worker and potentially forwarded to the device server.
31
+ """
32
+
23
33
  def __init__(
24
34
  self,
25
35
  connector: ConnectorBase,
@@ -74,11 +74,11 @@ class ScanWorker(threading.Thread):
74
74
 
75
75
  self._initialize_scan_info(active_rb, instr, num_points)
76
76
 
77
- # only append the table_wait if the scan is not using scan_progress
77
+ # only append the scan_progress if the scan is not using device_progress
78
78
  if not self.scan_report_instructions or not self.scan_report_instructions[-1].get(
79
- "scan_progress"
79
+ "device_progress"
80
80
  ):
81
- self.scan_report_instructions.append({"table_wait": num_points})
81
+ self.scan_report_instructions.append({"scan_progress": num_points})
82
82
  self.current_instruction_queue_item.parent.queue_manager.send_queue_status()
83
83
 
84
84
  self._send_scan_status("open")
@@ -655,7 +655,6 @@ class ScanWorker(threading.Thread):
655
655
  "settling_time": active_rb.scan.settling_time,
656
656
  "readout_time": active_rb.scan.readout_time,
657
657
  "acquisition_config": active_rb.scan.acquisition_config,
658
- "scan_report_hint": active_rb.scan.scan_report_hint,
659
658
  "scan_report_devices": active_rb.scan.scan_report_devices,
660
659
  "monitor_sync": active_rb.scan.monitor_sync,
661
660
  "num_points": num_points,
@@ -180,7 +180,6 @@ class RequestBase(ABC):
180
180
  """
181
181
 
182
182
  scan_name = ""
183
- scan_report_hint = None
184
183
  arg_input = {"device": ScanArgType.DEVICE}
185
184
  arg_bundle_size = {"bundle": len(arg_input), "min": 1, "max": None}
186
185
  required_kwargs = []
@@ -318,7 +317,6 @@ class ScanBase(RequestBase, PathOptimizerMixin):
318
317
 
319
318
  Attributes:
320
319
  scan_name (str): name of the scan
321
- scan_report_hint (str): hint for the scan report
322
320
  scan_type (str): scan type. Can be "step" or "fly"
323
321
  arg_input (list): list of scan argument types
324
322
  arg_bundle_size (dict):
@@ -330,7 +328,6 @@ class ScanBase(RequestBase, PathOptimizerMixin):
330
328
  """
331
329
 
332
330
  scan_name = ""
333
- scan_report_hint = None
334
331
  scan_type = "step"
335
332
  arg_input = {"device": ScanArgType.DEVICE}
336
333
  arg_bundle_size = {"bundle": len(arg_input), "min": 1, "max": None}
@@ -340,10 +337,6 @@ class ScanBase(RequestBase, PathOptimizerMixin):
340
337
  # perform pre-move action before the pre_scan trigger is sent
341
338
  pre_move = True
342
339
 
343
- # # synchronize primary readings with the scan motor readings. Set to False if the master device
344
- # # does not provide single readouts or are too fast to be synchronized with primary readings
345
- # enforce_sync = True
346
-
347
340
  def __init__(
348
341
  self,
349
342
  *args,
@@ -471,7 +464,7 @@ class ScanBase(RequestBase, PathOptimizerMixin):
471
464
 
472
465
  def return_to_start(self):
473
466
  """return to the start position"""
474
- yield from self._move_and_wait(self.start_pos)
467
+ yield from self._move_scan_motors_and_wait(self.start_pos)
475
468
 
476
469
  def finalize(self):
477
470
  """finalize the scan"""
@@ -488,7 +481,7 @@ class ScanBase(RequestBase, PathOptimizerMixin):
488
481
  yield from self.close_scan()
489
482
 
490
483
  def _at_each_point(self, ind=None, pos=None):
491
- yield from self._move_and_wait(pos)
484
+ yield from self._move_scan_motors_and_wait(pos)
492
485
  if ind > 0:
493
486
  yield from self.stubs.wait(
494
487
  wait_type="read", group="primary", wait_group="readout_primary"
@@ -505,7 +498,7 @@ class ScanBase(RequestBase, PathOptimizerMixin):
505
498
 
506
499
  self.point_id += 1
507
500
 
508
- def _move_and_wait(self, pos):
501
+ def _move_scan_motors_and_wait(self, pos):
509
502
  if not isinstance(pos, list) and not isinstance(pos, np.ndarray):
510
503
  pos = [pos]
511
504
  if len(pos) == 0:
@@ -528,7 +521,7 @@ class ScanBase(RequestBase, PathOptimizerMixin):
528
521
  perform additional tasks before the scan is started. This
529
522
  """
530
523
  if self.pre_move and len(self.positions) > 0:
531
- yield from self._move_and_wait(self.positions[0])
524
+ yield from self._move_scan_motors_and_wait(self.positions[0])
532
525
  yield from self.stubs.pre_scan()
533
526
 
534
527
  def run(self):
@@ -633,7 +626,6 @@ class ScanStub(RequestBase):
633
626
 
634
627
  class OpenScanDef(ScanStub):
635
628
  scan_name = "open_scan_def"
636
- scan_report_hint = None
637
629
  arg_input = {}
638
630
  arg_bundle_size = {"bundle": len(arg_input), "min": 0, "max": 0}
639
631
 
@@ -643,7 +635,6 @@ class OpenScanDef(ScanStub):
643
635
 
644
636
  class CloseScanDef(ScanStub):
645
637
  scan_name = "close_scan_def"
646
- scan_report_hint = "table"
647
638
  arg_input = {}
648
639
  arg_bundle_size = {"bundle": len(arg_input), "min": 0, "max": 0}
649
640
 
@@ -664,7 +655,6 @@ class DeviceRPC(ScanStub):
664
655
  scan_name = "device_rpc"
665
656
  arg_input = [ScanArgType.DEVICE, ScanArgType.STR, ScanArgType.LIST, ScanArgType.DICT]
666
657
  arg_bundle_size = {"bundle": len(arg_input), "min": 1, "max": 1}
667
- scan_report_hint = None
668
658
 
669
659
  def _get_scan_motors(self):
670
660
  pass
@@ -678,7 +668,6 @@ class Move(RequestBase):
678
668
  scan_name = "mv"
679
669
  arg_input = {"device": ScanArgType.DEVICE, "target": ScanArgType.FLOAT}
680
670
  arg_bundle_size = {"bundle": len(arg_input), "min": 1, "max": None}
681
- scan_report_hint = None
682
671
  required_kwargs = ["relative"]
683
672
 
684
673
  def __init__(self, *args, relative=False, **kwargs):
@@ -728,19 +717,7 @@ class Move(RequestBase):
728
717
  self._check_limits()
729
718
 
730
719
  def scan_report_instructions(self):
731
- if not self.scan_report_hint:
732
- yield None
733
- return
734
- yield from self.stubs.scan_report_instruction(
735
- {
736
- "readback": {
737
- "RID": self.metadata["RID"],
738
- "devices": self.scan_motors,
739
- "start": self.start_pos,
740
- "end": self.positions[0],
741
- }
742
- }
743
- )
720
+ yield None
744
721
 
745
722
  def run(self):
746
723
  self.initialize()
@@ -764,7 +741,6 @@ class UpdatedMove(Move):
764
741
  """
765
742
 
766
743
  scan_name = "umv"
767
- scan_report_hint = "readback"
768
744
 
769
745
  def _at_each_point(self, pos=None):
770
746
  for ii, motor in enumerate(self.scan_motors):
@@ -775,10 +751,21 @@ class UpdatedMove(Move):
775
751
  for motor in self.scan_motors:
776
752
  yield from self.stubs.wait(wait_type="move", device=motor, wait_group="scan_motor")
777
753
 
754
+ def scan_report_instructions(self):
755
+ yield from self.stubs.scan_report_instruction(
756
+ {
757
+ "readback": {
758
+ "RID": self.metadata["RID"],
759
+ "devices": self.scan_motors,
760
+ "start": self.start_pos,
761
+ "end": self.positions[0],
762
+ }
763
+ }
764
+ )
765
+
778
766
 
779
767
  class Scan(ScanBase):
780
768
  scan_name = "grid_scan"
781
- scan_report_hint = "table"
782
769
  arg_input = {
783
770
  "device": ScanArgType.DEVICE,
784
771
  "start": ScanArgType.FLOAT,
@@ -832,7 +819,6 @@ class Scan(ScanBase):
832
819
 
833
820
  class FermatSpiralScan(ScanBase):
834
821
  scan_name = "fermat_scan"
835
- scan_report_hint = "table"
836
822
  required_kwargs = ["step", "relative"]
837
823
  arg_input = {
838
824
  "device": ScanArgType.DEVICE,
@@ -898,7 +884,6 @@ class FermatSpiralScan(ScanBase):
898
884
 
899
885
  class RoundScan(ScanBase):
900
886
  scan_name = "round_scan"
901
- scan_report_hint = "table"
902
887
  required_kwargs = ["relative"]
903
888
  arg_input = {
904
889
  "motor_1": ScanArgType.DEVICE,
@@ -956,7 +941,6 @@ class RoundScan(ScanBase):
956
941
 
957
942
  class ContLineScan(ScanBase):
958
943
  scan_name = "cont_line_scan"
959
- scan_report_hint = "table"
960
944
  required_kwargs = ["steps", "relative"]
961
945
  arg_input = {
962
946
  "device": ScanArgType.DEVICE,
@@ -1014,7 +998,7 @@ class ContLineScan(ScanBase):
1014
998
  self.point_id += 1
1015
999
 
1016
1000
  def scan_core(self):
1017
- yield from self._move_and_wait(self.positions[0] - self.offset)
1001
+ yield from self._move_scan_motors_and_wait(self.positions[0] - self.offset)
1018
1002
  # send the slow motor on its way
1019
1003
  yield from self.stubs.set(
1020
1004
  device=self.scan_motors[0], value=self.positions[-1][0], wait_group="scan_motor"
@@ -1038,7 +1022,6 @@ class ContLineScan(ScanBase):
1038
1022
 
1039
1023
  class RoundScanFlySim(SyncFlyScanBase):
1040
1024
  scan_name = "round_scan_fly"
1041
- scan_report_hint = "table"
1042
1025
  scan_type = "fly"
1043
1026
  pre_move = False
1044
1027
  required_kwargs = ["relative"]
@@ -1120,7 +1103,6 @@ class RoundScanFlySim(SyncFlyScanBase):
1120
1103
 
1121
1104
  class RoundROIScan(ScanBase):
1122
1105
  scan_name = "round_roi_scan"
1123
- scan_report_hint = "table"
1124
1106
  required_kwargs = ["dr", "nth", "relative"]
1125
1107
  arg_input = {
1126
1108
  "motor_1": ScanArgType.DEVICE,
@@ -1175,7 +1157,6 @@ class RoundROIScan(ScanBase):
1175
1157
 
1176
1158
  class ListScan(ScanBase):
1177
1159
  scan_name = "list_scan"
1178
- scan_report_hint = "table"
1179
1160
  required_kwargs = ["relative"]
1180
1161
  arg_input = {"device": ScanArgType.DEVICE, "positions": ScanArgType.LIST}
1181
1162
  arg_bundle_size = {"bundle": len(arg_input), "min": 1, "max": None}
@@ -1208,7 +1189,6 @@ class ListScan(ScanBase):
1208
1189
 
1209
1190
  class TimeScan(ScanBase):
1210
1191
  scan_name = "time_scan"
1211
- scan_report_hint = "table"
1212
1192
  required_kwargs = ["points", "interval"]
1213
1193
  arg_input = {}
1214
1194
  arg_bundle_size = {"bundle": len(arg_input), "min": None, "max": None}
@@ -1275,7 +1255,6 @@ class TimeScan(ScanBase):
1275
1255
 
1276
1256
  class MonitorScan(ScanBase):
1277
1257
  scan_name = "monitor_scan"
1278
- scan_report_hint = "table"
1279
1258
  required_kwargs = ["relative"]
1280
1259
  arg_input = {
1281
1260
  "device": ScanArgType.DEVICE,
@@ -1367,7 +1346,6 @@ class MonitorScan(ScanBase):
1367
1346
 
1368
1347
  class Acquire(ScanBase):
1369
1348
  scan_name = "acquire"
1370
- scan_report_hint = "table"
1371
1349
  required_kwargs = []
1372
1350
  arg_input = {}
1373
1351
  arg_bundle_size = {"bundle": len(arg_input), "min": None, "max": None}
@@ -1429,7 +1407,6 @@ class Acquire(ScanBase):
1429
1407
 
1430
1408
  class LineScan(ScanBase):
1431
1409
  scan_name = "line_scan"
1432
- scan_report_hint = "table"
1433
1410
  required_kwargs = ["steps", "relative"]
1434
1411
  arg_input = {
1435
1412
  "device": ScanArgType.DEVICE,
@@ -1484,7 +1461,6 @@ class ScanComponent(ScanBase):
1484
1461
 
1485
1462
  class OpenInteractiveScan(ScanComponent):
1486
1463
  scan_name = "open_interactive_scan"
1487
- scan_report_hint = ""
1488
1464
  required_kwargs = []
1489
1465
  arg_input = {"device": ScanArgType.DEVICE}
1490
1466
  arg_bundle_size = {"bundle": len(arg_input), "min": 1, "max": None}
@@ -1528,7 +1504,6 @@ class OpenInteractiveScan(ScanComponent):
1528
1504
 
1529
1505
  class AddInteractiveScanPoint(ScanComponent):
1530
1506
  scan_name = "interactive_scan_trigger"
1531
- scan_report_hint = ""
1532
1507
  arg_input = {"device": ScanArgType.DEVICE}
1533
1508
  arg_bundle_size = {"bundle": len(arg_input), "min": 1, "max": None}
1534
1509
 
@@ -1575,7 +1550,6 @@ class AddInteractiveScanPoint(ScanComponent):
1575
1550
 
1576
1551
  class CloseInteractiveScan(ScanComponent):
1577
1552
  scan_name = "close_interactive_scan"
1578
- scan_report_hint = ""
1579
1553
  arg_input = {}
1580
1554
  arg_bundle_size = {"bundle": len(arg_input), "min": None, "max": None}
1581
1555
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec-server"
7
- version = "2.12.2"
7
+ version = "2.12.4"
8
8
  description = "BEC server"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
@@ -128,7 +128,6 @@ def test_create_device_data_storage(file_writer_manager_mock_with_dm):
128
128
  "scan_number": 88,
129
129
  "dataset_number": 88,
130
130
  "exp_time": 0.1,
131
- "scan_report_hint": "table",
132
131
  "scan_report_devices": ["samx"],
133
132
  "scan_msgs": [
134
133
  "ScanQueueMessage(({'scan_type': 'monitor_scan', 'parameter': {'args': {'samx':"
@@ -1072,7 +1072,7 @@ def test_open_scan(scan_worker_mock, instr, corr_num_points, scan_id):
1072
1072
  assert worker.scan_motors == ["bpm4i"]
1073
1073
  init_mock.assert_called_once_with(active_rb, instr, corr_num_points)
1074
1074
  assert active_rb.scan_report_instructions == [
1075
- {"table_wait": corr_num_points}
1075
+ {"scan_progress": corr_num_points}
1076
1076
  ]
1077
1077
  queue_status_mock.assert_called_once()
1078
1078
  send_mock.assert_called_once_with("open")
@@ -1109,7 +1109,6 @@ def test_initialize_scan_info(scan_worker_mock, msg):
1109
1109
  assert worker.current_scan_info["RID"] == "something"
1110
1110
  assert worker.current_scan_info["scan_number"] == 2
1111
1111
  assert worker.current_scan_info["dataset_number"] == 3
1112
- assert worker.current_scan_info["scan_report_hint"] == rb.scan.scan_report_hint
1113
1112
  assert worker.current_scan_info["scan_report_devices"] == rb.scan.scan_report_devices
1114
1113
  assert worker.current_scan_info["num_points"] == 100
1115
1114
  assert worker.current_scan_info["scan_msgs"] == []
File without changes
File without changes