bec-server 3.150.2__tar.gz → 3.151.0__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 (209) hide show
  1. {bec_server-3.150.2 → bec_server-3.151.0}/PKG-INFO +1 -1
  2. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/beamline_state_manager.py +2 -3
  3. {bec_server-3.150.2 → bec_server-3.151.0}/pyproject.toml +1 -1
  4. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_file_writer/test_file_writer_manager.py +24 -9
  5. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_beamline_state_manager.py +46 -11
  6. {bec_server-3.150.2 → bec_server-3.151.0}/.gitignore +0 -0
  7. {bec_server-3.150.2 → bec_server-3.151.0}/.zed/debug.json +0 -0
  8. {bec_server-3.150.2 → bec_server-3.151.0}/README.md +0 -0
  9. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/__init__.py +0 -0
  10. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/actors/__init__.py +0 -0
  11. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/actors/actor.py +0 -0
  12. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/actors/builtin_actor_manager.py +0 -0
  13. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/actors/manager.py +0 -0
  14. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/actors/scan_interlock.py +0 -0
  15. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/actors/worker.py +0 -0
  16. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/bec_server_utils/__init__.py +0 -0
  17. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/bec_server_utils/launch.py +0 -0
  18. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/bec_server_utils/service_handler.py +0 -0
  19. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/bec_server_utils/subprocess_launch.py +0 -0
  20. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/bec_server_utils/tmux_launch.py +0 -0
  21. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/data_processing/__init__.py +0 -0
  22. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/data_processing/cli/__init__.py +0 -0
  23. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/data_processing/cli/launch.py +0 -0
  24. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/data_processing/dap_server.py +0 -0
  25. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/data_processing/dap_service.py +0 -0
  26. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/data_processing/dap_service_manager.py +0 -0
  27. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/data_processing/lmfit1d_service.py +0 -0
  28. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/device_server/__init__.py +0 -0
  29. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/device_server/bec_message_handler.py +0 -0
  30. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/device_server/cli/__init__.py +0 -0
  31. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/device_server/cli/launch.py +0 -0
  32. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/device_server/device_server.py +0 -0
  33. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/device_server/devices/__init__.py +0 -0
  34. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/device_server/devices/config_update_handler.py +0 -0
  35. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/device_server/devices/device_serializer.py +0 -0
  36. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/device_server/devices/devicemanager.py +0 -0
  37. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/device_server/friendly_device_exceptions.py +0 -0
  38. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/device_server/rpc_handler.py +0 -0
  39. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/device_server/tests/__init__.py +0 -0
  40. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/device_server/tests/utils.py +0 -0
  41. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/file_writer/__init__.py +0 -0
  42. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/file_writer/async_writer.py +0 -0
  43. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/file_writer/cli/__init__.py +0 -0
  44. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/file_writer/cli/launch.py +0 -0
  45. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/file_writer/default_writer.py +0 -0
  46. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/file_writer/file_writer.py +0 -0
  47. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/file_writer/file_writer_manager.py +0 -0
  48. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/file_writer/merged_dicts.py +0 -0
  49. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/file_writer_plugins/__init__.py +0 -0
  50. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/file_writer_plugins/cSAXS.py +0 -0
  51. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/procedures/Containerfile.bec_linux_base +0 -0
  52. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/procedures/Containerfile.requirements +0 -0
  53. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/procedures/Containerfile.worker +0 -0
  54. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/procedures/__init__.py +0 -0
  55. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/procedures/_dev_runner.py +0 -0
  56. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/procedures/builtin_procedures.py +0 -0
  57. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/procedures/constants.py +0 -0
  58. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/procedures/container_utils.py +0 -0
  59. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/procedures/container_worker.py +0 -0
  60. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/procedures/manager.py +0 -0
  61. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/procedures/oop_worker_base.py +0 -0
  62. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/procedures/procedure_registry.py +0 -0
  63. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/procedures/protocol.py +0 -0
  64. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/procedures/subprocess_worker.py +0 -0
  65. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/procedures/worker_base.py +0 -0
  66. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_bundler/__init__.py +0 -0
  67. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_bundler/bec_emitter.py +0 -0
  68. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_bundler/cli/__init__.py +0 -0
  69. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_bundler/cli/launch.py +0 -0
  70. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_bundler/emitter.py +0 -0
  71. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_bundler/scan_bundler.py +0 -0
  72. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/__init__.py +0 -0
  73. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/cli/__init__.py +0 -0
  74. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/cli/launch.py +0 -0
  75. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/direct_scan_worker.py +0 -0
  76. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/errors.py +0 -0
  77. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/generator_scan_worker.py +0 -0
  78. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/instruction_handler.py +0 -0
  79. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/path_optimization.py +0 -0
  80. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scan_assembler.py +0 -0
  81. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scan_guard.py +0 -0
  82. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scan_gui_models.py +0 -0
  83. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scan_manager.py +0 -0
  84. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scan_plugins/__init__.py +0 -0
  85. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scan_plugins/otf_scan.py +0 -0
  86. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scan_queue.py +0 -0
  87. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scan_server.py +0 -0
  88. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scan_stubs.py +0 -0
  89. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scan_worker.py +0 -0
  90. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/__init__.py +0 -0
  91. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/acquire.py +0 -0
  92. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/cont_line_scan.py +0 -0
  93. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/fermat_scan.py +0 -0
  94. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/grid_scan.py +0 -0
  95. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/hexagonal_scan.py +0 -0
  96. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/legacy_scans.py +0 -0
  97. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/line_scan.py +0 -0
  98. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/line_sweep_scan.py +0 -0
  99. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/list_scan.py +0 -0
  100. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/log_scan.py +0 -0
  101. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/move.py +0 -0
  102. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/multi_region_grid_scan.py +0 -0
  103. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/multi_region_line_scan.py +0 -0
  104. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/position_generators.py +0 -0
  105. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/round_roi_scan.py +0 -0
  106. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/round_scan.py +0 -0
  107. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/scan_actions.py +0 -0
  108. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/scan_argument_modifier.py +0 -0
  109. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/scan_base.py +0 -0
  110. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/scan_components.py +0 -0
  111. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/scan_modifier.py +0 -0
  112. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/time_scan.py +0 -0
  113. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/scans/updated_move.py +0 -0
  114. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/tests/__init__.py +0 -0
  115. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/tests/fixtures.py +0 -0
  116. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/tests/scan_fixtures.py +0 -0
  117. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/tests/scan_hook_tests.py +0 -0
  118. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/tests/utils.py +0 -0
  119. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scan_server/types.py +0 -0
  120. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scihub/__init__.py +0 -0
  121. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scihub/atlas/__init__.py +0 -0
  122. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scihub/atlas/atlas_active_client_emitter.py +0 -0
  123. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scihub/atlas/atlas_connector.py +0 -0
  124. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scihub/atlas/atlas_forwarder.py +0 -0
  125. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scihub/atlas/atlas_metadata_handler.py +0 -0
  126. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scihub/atlas/config_handler.py +0 -0
  127. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scihub/cli/__init__.py +0 -0
  128. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scihub/cli/launch.py +0 -0
  129. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scihub/scihub.py +0 -0
  130. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scihub/service_handler/__init__.py +0 -0
  131. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/scihub/service_handler/service_handler.py +0 -0
  132. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/test/__init__.py +0 -0
  133. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/test/actor_test_utils.py +0 -0
  134. {bec_server-3.150.2 → bec_server-3.151.0}/bec_server/test/helpers.py +0 -0
  135. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_actors/test_actors.py +0 -0
  136. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_bec_server_utils/test_main.py +0 -0
  137. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_bec_server_utils/test_service_handler.py +0 -0
  138. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_bec_server_utils/test_tmux_launch.py +0 -0
  139. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_data_processing/conftest.py +0 -0
  140. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_data_processing/test_dap_cli_launch.py +0 -0
  141. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_data_processing/test_dap_server.py +0 -0
  142. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_data_processing/test_dap_service_manager.py +0 -0
  143. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_data_processing/test_lmfit1d_service.py +0 -0
  144. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_device_server/conftest.py +0 -0
  145. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_device_server/test_config_handler.py +0 -0
  146. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_device_server/test_device_instructions.py +0 -0
  147. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_device_server/test_device_manager_ds.py +0 -0
  148. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_device_server/test_device_serializer.py +0 -0
  149. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_device_server/test_device_server.py +0 -0
  150. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_device_server/test_device_server_cli_launch.py +0 -0
  151. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_device_server/test_rpc_handler.py +0 -0
  152. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_file_writer/conftest.py +0 -0
  153. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_file_writer/test_async_file_writer.py +0 -0
  154. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_file_writer/test_file_writer.py +0 -0
  155. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_file_writer/test_file_writer_cli_launch.py +0 -0
  156. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_bundler/conftest.py +0 -0
  157. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_bundler/test_bec_emitter.py +0 -0
  158. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_bundler/test_scan_bundler.py +0 -0
  159. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_bundler/test_scan_bundler_cli_launch.py +0 -0
  160. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/conftest.py +0 -0
  161. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/__init__.py +0 -0
  162. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_acquire.py +0 -0
  163. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_cont_line_scan.py +0 -0
  164. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_fermat_scan.py +0 -0
  165. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_grid_scan.py +0 -0
  166. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_hexagonal_scan.py +0 -0
  167. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_line_scan.py +0 -0
  168. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_line_sweep_scan.py +0 -0
  169. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_list_scan.py +0 -0
  170. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_log_scan.py +0 -0
  171. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_move_scan.py +0 -0
  172. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_multi_region_grid_scan.py +0 -0
  173. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_multi_region_line_scan.py +0 -0
  174. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_position_generators.py +0 -0
  175. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_relative_scan_return_to_start.py +0 -0
  176. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_round_roi_scan.py +0 -0
  177. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_round_scan.py +0 -0
  178. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_scan_actions.py +0 -0
  179. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_scan_components.py +0 -0
  180. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_time_scan.py +0 -0
  181. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/scans_v4/test_updated_move_scan.py +0 -0
  182. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_builtin_actor_manager.py +0 -0
  183. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_container_utils.py +0 -0
  184. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_direct_scan_worker.py +0 -0
  185. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_generator_scan_worker.py +0 -0
  186. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_instruction_handler.py +0 -0
  187. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_legacy_scans.py +0 -0
  188. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_path_optimization.py +0 -0
  189. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_procedure_container_worker.py +0 -0
  190. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_procedures.py +0 -0
  191. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_scan_argument_modifier.py +0 -0
  192. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_scan_assembler.py +0 -0
  193. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_scan_guard.py +0 -0
  194. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_scan_gui_models.py +0 -0
  195. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_scan_interlock.py +0 -0
  196. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_scan_modifier.py +0 -0
  197. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_scan_server_cli_launch.py +0 -0
  198. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_scan_server_queue.py +0 -0
  199. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_scan_server_scan_manager.py +0 -0
  200. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_scan_stub_status.py +0 -0
  201. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_scan_stubs.py +0 -0
  202. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scan_server/test_scan_worker.py +0 -0
  203. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scihub/conftest.py +0 -0
  204. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scihub/test_atlas_active_client_emitter.py +0 -0
  205. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scihub/test_atlas_config_handler.py +0 -0
  206. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scihub/test_atlas_connector.py +0 -0
  207. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scihub/test_atlas_forwarder.py +0 -0
  208. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scihub/test_atlas_metadata_handler.py +0 -0
  209. {bec_server-3.150.2 → bec_server-3.151.0}/tests/tests_scihub/test_scihub_cli_launch.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bec-server
3
- Version: 3.150.2
3
+ Version: 3.151.0
4
4
  Summary: BEC server
5
5
  Project-URL: Bug Tracker, https://github.com/bec-project/bec/issues
6
6
  Project-URL: Homepage, https://github.com/bec-project/bec
@@ -4,6 +4,7 @@ import traceback
4
4
 
5
5
  from bec_lib import bl_states, messages
6
6
  from bec_lib.alarm_handler import Alarms
7
+ from bec_lib.bl_state_manager import _state_class_for_state_type
7
8
  from bec_lib.devicemanager import DeviceManagerBase
8
9
  from bec_lib.endpoints import MessageEndpoints
9
10
  from bec_lib.messages import ErrorInfo
@@ -75,9 +76,7 @@ class BeamlineStateManager:
75
76
  self.connector.raise_alarm(severity=Alarms.WARNING, info=info)
76
77
 
77
78
  for state_name, state in added_states.items():
78
- state_class = getattr(bl_states, state.state_type)
79
- if not issubclass(state_class, bl_states.BeamlineState):
80
- raise ValueError(f"State type {state.state_type} not found in beamline states.")
79
+ state_class = _state_class_for_state_type(state.state_type)
81
80
  model_cls = state_class.CONFIG_CLASS
82
81
  model_instance = model_cls(**state.parameters)
83
82
  state_instance = state_class(
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec-server"
7
- version = "3.150.2"
7
+ version = "3.151.0"
8
8
  description = "BEC server"
9
9
  requires-python = ">=3.11"
10
10
  classifiers = [
@@ -317,8 +317,13 @@ def test_file_writer_manager_update_available_beamline_states(file_writer_manage
317
317
  states=[
318
318
  messages.BeamlineStateConfig(
319
319
  name="State1",
320
- state_type="ShutterState",
321
- parameters={"name": "State1", "device": "shutter1"},
320
+ state_type="DeviceWithinLimitsState",
321
+ parameters={
322
+ "name": "State1",
323
+ "device": "samx",
324
+ "low_limit": 0.0,
325
+ "high_limit": 10.0,
326
+ },
322
327
  )
323
328
  ]
324
329
  )
@@ -330,8 +335,13 @@ def test_file_writer_manager_update_available_beamline_states(file_writer_manage
330
335
  states=[
331
336
  messages.BeamlineStateConfig(
332
337
  name="State2",
333
- state_type="ShutterState",
334
- parameters={"name": "State2", "device": "shutter1"},
338
+ state_type="DeviceWithinLimitsState",
339
+ parameters={
340
+ "name": "State2",
341
+ "device": "samx",
342
+ "low_limit": 0.0,
343
+ "high_limit": 10.0,
344
+ },
335
345
  )
336
346
  ]
337
347
  )
@@ -349,7 +359,7 @@ def test_file_writer_manager_updates_scan_storage_with_state(file_writer_manager
349
359
  scan_storage.metadata["status"] = "open"
350
360
  file_manager.scan_storage["scan_id"] = scan_storage
351
361
 
352
- state_msg = messages.BeamlineStateMessage(name="State1", status="valid", label="Shutter")
362
+ state_msg = messages.BeamlineStateMessage(name="State1", status="valid", label="Within limits")
353
363
 
354
364
  file_manager.update_beamline_state(state_msg)
355
365
  assert file_manager.scan_storage["scan_id"].beamline_states["State1"] == [state_msg]
@@ -357,7 +367,7 @@ def test_file_writer_manager_updates_scan_storage_with_state(file_writer_manager
357
367
  # verify that the latest state is kept in the file writer manager
358
368
  assert file_manager.beamline_states["State1"] == state_msg
359
369
 
360
- state_msg2 = messages.BeamlineStateMessage(name="State1", status="valid", label="Shutter")
370
+ state_msg2 = messages.BeamlineStateMessage(name="State1", status="valid", label="Within limits")
361
371
  file_manager.update_beamline_state(state_msg2)
362
372
  assert file_manager.scan_storage["scan_id"].beamline_states["State1"] == [state_msg, state_msg2]
363
373
  assert file_manager.beamline_states["State1"] == state_msg2
@@ -375,15 +385,20 @@ def test_file_writer_manager_removes_beamline_state_subscription(file_writer_man
375
385
  states=[
376
386
  messages.BeamlineStateConfig(
377
387
  name="State1",
378
- state_type="ShutterState",
379
- parameters={"name": "State1", "device": "shutter1"},
388
+ state_type="DeviceWithinLimitsState",
389
+ parameters={
390
+ "name": "State1",
391
+ "device": "samx",
392
+ "low_limit": 0.0,
393
+ "high_limit": 10.0,
394
+ },
380
395
  )
381
396
  ]
382
397
  )
383
398
  file_manager._update_available_beamline_states({"data": msg})
384
399
  assert "State1" in file_manager.beamline_state_subscriptions
385
400
 
386
- state_msg = messages.BeamlineStateMessage(name="State1", status="valid", label="Shutter")
401
+ state_msg = messages.BeamlineStateMessage(name="State1", status="valid", label="Within limits")
387
402
 
388
403
  file_manager.update_beamline_state(state_msg)
389
404
  assert file_manager.scan_storage["scan_id"].beamline_states["State1"] == [state_msg]
@@ -18,8 +18,8 @@ def state_manager(connected_connector, dm_with_devices):
18
18
 
19
19
  @pytest.fixture
20
20
  def fake_bl_states(monkeypatch):
21
- class FakeState(bl_states.BeamlineState[bl_states.DeviceStateConfig]):
22
- CONFIG_CLASS = bl_states.DeviceStateConfig
21
+ class FakeState(bl_states.BeamlineState[bl_states.DeviceWithinLimitsStateConfig]):
22
+ CONFIG_CLASS = bl_states.DeviceWithinLimitsStateConfig
23
23
 
24
24
  def __init__(self, config=None, redis_connector=None, **kwargs):
25
25
  super().__init__(config=config, redis_connector=redis_connector, **kwargs)
@@ -35,7 +35,7 @@ def fake_bl_states(monkeypatch):
35
35
  def restart(self):
36
36
  self.restart_count += 1
37
37
 
38
- monkeypatch.setattr(beamline_state_manager.bl_states, "ShutterState", FakeState)
38
+ monkeypatch.setattr(beamline_state_manager.bl_states, "DeviceWithinLimitsState", FakeState)
39
39
  return FakeState
40
40
 
41
41
 
@@ -71,8 +71,13 @@ def test_state_manager_updates_states(state_manager, connected_connector, fake_b
71
71
  states=[
72
72
  messages.BeamlineStateConfig(
73
73
  name="State1",
74
- state_type="ShutterState",
75
- parameters={"name": "State1", "device": "shutter1"},
74
+ state_type="DeviceWithinLimitsState",
75
+ parameters={
76
+ "name": "State1",
77
+ "device": "samx",
78
+ "low_limit": 0.0,
79
+ "high_limit": 10.0,
80
+ },
76
81
  )
77
82
  ]
78
83
  )
@@ -89,13 +94,23 @@ def test_state_manager_updates_states(state_manager, connected_connector, fake_b
89
94
  states=[
90
95
  messages.BeamlineStateConfig(
91
96
  name="State1",
92
- state_type="ShutterState",
93
- parameters={"name": "State1", "device": "shutter1"},
97
+ state_type="DeviceWithinLimitsState",
98
+ parameters={
99
+ "name": "State1",
100
+ "device": "samx",
101
+ "low_limit": 0.0,
102
+ "high_limit": 10.0,
103
+ },
94
104
  ),
95
105
  messages.BeamlineStateConfig(
96
106
  name="State2",
97
- state_type="ShutterState",
98
- parameters={"name": "State2", "device": "shutter2"},
107
+ state_type="DeviceWithinLimitsState",
108
+ parameters={
109
+ "name": "State2",
110
+ "device": "samy",
111
+ "low_limit": 0.0,
112
+ "high_limit": 10.0,
113
+ },
99
114
  ),
100
115
  ]
101
116
  )
@@ -112,8 +127,13 @@ def test_state_manager_updates_states(state_manager, connected_connector, fake_b
112
127
  states=[
113
128
  messages.BeamlineStateConfig(
114
129
  name="State2",
115
- state_type="ShutterState",
116
- parameters={"name": "State2", "device": "shutter2"},
130
+ state_type="DeviceWithinLimitsState",
131
+ parameters={
132
+ "name": "State2",
133
+ "device": "samy",
134
+ "low_limit": 0.0,
135
+ "high_limit": 10.0,
136
+ },
117
137
  )
118
138
  ]
119
139
  )
@@ -128,6 +148,21 @@ def test_state_manager_updates_states(state_manager, connected_connector, fake_b
128
148
  assert "State2" in state_manager._states
129
149
 
130
150
 
151
+ def test_state_manager_rejects_abstract_state_type(state_manager):
152
+ msg = messages.AvailableBeamlineStatesMessage(
153
+ states=[
154
+ messages.BeamlineStateConfig(
155
+ name="State1",
156
+ state_type="DeviceBeamlineState",
157
+ parameters={"name": "State1", "device": "samx"},
158
+ )
159
+ ]
160
+ )
161
+
162
+ with pytest.raises(ValueError, match="not a concrete beamline state"):
163
+ state_manager.update_states(msg)
164
+
165
+
131
166
  @pytest.mark.timeout(5)
132
167
  def test_states_restarted_when_device_config_updated(
133
168
  state_manager, connected_connector, fake_bl_states
File without changes
File without changes