bec-server 4.2.1__tar.gz → 4.3.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.
- {bec_server-4.2.1 → bec_server-4.3.0}/PKG-INFO +1 -1
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scan_manager.py +4 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/fermat_scan.py +12 -2
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/grid_scan.py +4 -1
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/hexagonal_scan.py +10 -1
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/line_scan.py +4 -1
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/log_scan.py +4 -1
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/multi_region_grid_scan.py +4 -1
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/multi_region_line_scan.py +4 -1
- bec_server-4.3.0/bec_server/scan_server/scans/path_optimization.py +5 -0
- bec_server-4.3.0/bec_server/scan_server/scans/position_generators.py +33 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/round_roi_scan.py +13 -1
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/round_scan.py +11 -1
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/scan_base.py +12 -1
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/scan_components.py +2 -2
- {bec_server-4.2.1 → bec_server-4.3.0}/pyproject.toml +1 -1
- bec_server-4.3.0/tests/tests_scan_server/scans/test_position_preview.py +61 -0
- bec_server-4.3.0/tests/tests_scan_server/test_path_optimization.py +14 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_scan_server_scan_manager.py +11 -0
- bec_server-4.2.1/bec_server/scan_server/scans/path_optimization.py +0 -503
- bec_server-4.2.1/bec_server/scan_server/scans/position_generators.py +0 -565
- bec_server-4.2.1/tests/tests_scan_server/scans/test_position_generators.py +0 -212
- bec_server-4.2.1/tests/tests_scan_server/test_path_optimization.py +0 -276
- {bec_server-4.2.1 → bec_server-4.3.0}/.gitignore +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/.zed/debug.json +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/README.md +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/actors/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/actors/actor.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/actors/builtin_actor_manager.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/actors/manager.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/actors/scan_interlock.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/actors/worker.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/bec_server_utils/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/bec_server_utils/launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/bec_server_utils/service_handler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/bec_server_utils/subprocess_launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/bec_server_utils/tmux_launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/data_processing/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/data_processing/cli/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/data_processing/cli/launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/data_processing/dap_server.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/data_processing/dap_service.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/data_processing/dap_service_manager.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/data_processing/lmfit1d_service.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/device_server/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/device_server/bec_message_handler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/device_server/cli/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/device_server/cli/launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/device_server/device_server.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/device_server/devices/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/device_server/devices/config_update_handler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/device_server/devices/device_serializer.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/device_server/devices/devicemanager.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/device_server/friendly_device_exceptions.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/device_server/ophyd_callback_monitor.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/device_server/rpc_handler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/device_server/tests/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/device_server/tests/utils.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/file_writer/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/file_writer/async_writer.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/file_writer/cli/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/file_writer/cli/launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/file_writer/default_writer.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/file_writer/file_writer.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/file_writer/file_writer_manager.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/file_writer/merged_dicts.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/procedures/Containerfile.bec_linux_base +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/procedures/Containerfile.requirements +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/procedures/Containerfile.worker +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/procedures/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/procedures/_dev_runner.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/procedures/builtin_procedures.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/procedures/constants.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/procedures/container_utils.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/procedures/container_worker.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/procedures/manager.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/procedures/oop_worker_base.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/procedures/procedure_registry.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/procedures/protocol.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/procedures/subprocess_worker.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/procedures/worker_base.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_bundler/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_bundler/bec_emitter.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_bundler/cli/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_bundler/cli/launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_bundler/emitter.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_bundler/scan_bundler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/beamline_state_manager.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/cli/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/cli/launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/device_lock_registry.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/direct_scan_worker.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/errors.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/instruction_handler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scan_assembler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scan_guard.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scan_queue.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scan_server.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scan_worker.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/acquire.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/cont_line_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/device_rpc.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/line_sweep_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/list_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/move.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/scan_actions.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/scan_argument_modifier.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/scan_modifier.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/scan_status.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/time_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/updated_move.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/tests/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/tests/fixtures.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/tests/scan_fixtures.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/tests/scan_hook_tests.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/tests/utils.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scihub/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scihub/atlas/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scihub/atlas/atlas_active_client_emitter.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scihub/atlas/atlas_connector.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scihub/atlas/atlas_forwarder.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scihub/atlas/atlas_metadata_handler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scihub/atlas/atlas_plugin_repo_emitter.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scihub/atlas/config_handler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scihub/cli/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scihub/cli/launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scihub/scihub.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scihub/service_handler/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scihub/service_handler/service_handler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/test/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/test/actor_test_utils.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/bec_server/test/helpers.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_actors/test_actors.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_bec_server_utils/test_main.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_bec_server_utils/test_service_handler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_bec_server_utils/test_subprocess_launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_bec_server_utils/test_tmux_launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_data_processing/conftest.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_data_processing/test_dap_cli_launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_data_processing/test_dap_server.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_data_processing/test_dap_service_manager.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_data_processing/test_lmfit1d_service.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_device_server/conftest.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_device_server/test_config_handler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_device_server/test_device_instructions.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_device_server/test_device_manager_ds.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_device_server/test_device_serializer.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_device_server/test_device_server.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_device_server/test_device_server_cli_launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_device_server/test_ophyd_callback_monitor.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_device_server/test_rpc_handler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_file_writer/conftest.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_file_writer/test_async_file_writer.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_file_writer/test_file_writer.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_file_writer/test_file_writer_cli_launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_file_writer/test_file_writer_manager.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_bundler/conftest.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_bundler/test_bec_emitter.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_bundler/test_scan_bundler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_bundler/test_scan_bundler_cli_launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/conftest.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/__init__.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_acquire.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_cont_line_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_device_rpc_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_fermat_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_grid_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_hexagonal_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_line_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_line_sweep_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_list_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_log_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_move_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_multi_region_grid_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_multi_region_line_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_relative_scan_return_to_start.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_round_roi_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_round_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_scan_actions.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_scan_components.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_scan_status.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_time_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/scans/test_updated_move_scan.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_beamline_state_manager.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_builtin_actor_manager.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_container_utils.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_device_lock_registry.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_direct_scan_worker.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_instruction_handler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_procedure_container_worker.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_procedures.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_scan_argument_modifier.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_scan_assembler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_scan_fixture_imports.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_scan_guard.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_scan_interlock.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_scan_modifier.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_scan_server_cli_launch.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_scan_server_queue.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_scan_worker.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scihub/conftest.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scihub/test_atlas_active_client_emitter.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scihub/test_atlas_config_handler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scihub/test_atlas_connector.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scihub/test_atlas_forwarder.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scihub/test_atlas_metadata_handler.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scihub/test_atlas_plugin_repo_emitter.py +0 -0
- {bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scihub/test_scihub_cli_launch.py +0 -0
|
@@ -164,6 +164,10 @@ class ScanManager:
|
|
|
164
164
|
"doc": scan_doc_with_modifiers(scan_cls),
|
|
165
165
|
"signature": scan_signature_with_modifiers(scan_cls),
|
|
166
166
|
"gui_visibility": gui_visibility,
|
|
167
|
+
"position_preview": getattr(scan_cls, "position_preview", None),
|
|
168
|
+
"position_preview_parameter_mapping": getattr(
|
|
169
|
+
scan_cls, "position_preview_parameter_mapping", {}
|
|
170
|
+
),
|
|
167
171
|
}
|
|
168
172
|
|
|
169
173
|
@staticmethod
|
|
@@ -20,11 +20,11 @@ from typing import Annotated
|
|
|
20
20
|
|
|
21
21
|
import numpy as np
|
|
22
22
|
|
|
23
|
+
from bec_lib import position_generators
|
|
23
24
|
from bec_lib.device import DeviceBase
|
|
24
25
|
from bec_lib.logger import bec_logger
|
|
26
|
+
from bec_lib.position_generators import Direction
|
|
25
27
|
from bec_lib.scan_args import DefaultArgType, ScanArgument, Units
|
|
26
|
-
from bec_server.scan_server.scans import position_generators
|
|
27
|
-
from bec_server.scan_server.scans.position_generators import Direction
|
|
28
28
|
from bec_server.scan_server.scans.scan_base import ScanBase, ScanType
|
|
29
29
|
from bec_server.scan_server.scans.scan_modifier import scan_hook
|
|
30
30
|
|
|
@@ -59,6 +59,16 @@ class FermatSpiralScan(ScanBase):
|
|
|
59
59
|
],
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
+
position_preview = "bec_lib.position_generators.fermat_spiral_pos"
|
|
63
|
+
position_preview_parameter_mapping = {
|
|
64
|
+
"m1_start": "start_motor1",
|
|
65
|
+
"m1_stop": "stop_motor1",
|
|
66
|
+
"m2_start": "start_motor2",
|
|
67
|
+
"m2_stop": "stop_motor2",
|
|
68
|
+
"step": "step",
|
|
69
|
+
"spiral_type": "spiral_type",
|
|
70
|
+
}
|
|
71
|
+
|
|
62
72
|
def __init__(
|
|
63
73
|
self,
|
|
64
74
|
motor1: DeviceBase,
|
|
@@ -20,10 +20,10 @@ from typing import Annotated
|
|
|
20
20
|
|
|
21
21
|
import numpy as np
|
|
22
22
|
|
|
23
|
+
from bec_lib import position_generators
|
|
23
24
|
from bec_lib.device import DeviceBase
|
|
24
25
|
from bec_lib.logger import bec_logger
|
|
25
26
|
from bec_lib.scan_args import DefaultArgType, ScanArgument
|
|
26
|
-
from bec_server.scan_server.scans import position_generators
|
|
27
27
|
from bec_server.scan_server.scans.scan_base import ScanBase, ScanType, bundle_args
|
|
28
28
|
from bec_server.scan_server.scans.scan_modifier import scan_hook
|
|
29
29
|
|
|
@@ -69,6 +69,9 @@ class GridScan(ScanBase):
|
|
|
69
69
|
],
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
+
position_preview = "bec_lib.position_generators.nd_grid_positions"
|
|
73
|
+
position_preview_parameter_mapping = {"axes": {"bundle": [1, 2, 3]}, "snaked": "snaked"}
|
|
74
|
+
|
|
72
75
|
def __init__(
|
|
73
76
|
self,
|
|
74
77
|
*args,
|
|
@@ -20,9 +20,9 @@ from typing import Annotated
|
|
|
20
20
|
|
|
21
21
|
import numpy as np
|
|
22
22
|
|
|
23
|
+
from bec_lib import position_generators
|
|
23
24
|
from bec_lib.device import DeviceBase
|
|
24
25
|
from bec_lib.scan_args import DefaultArgType, ScanArgument
|
|
25
|
-
from bec_server.scan_server.scans import position_generators
|
|
26
26
|
from bec_server.scan_server.scans.scan_base import ScanBase, ScanType
|
|
27
27
|
from bec_server.scan_server.scans.scan_modifier import scan_hook
|
|
28
28
|
|
|
@@ -53,6 +53,15 @@ class HexagonalScan(ScanBase):
|
|
|
53
53
|
],
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
+
position_preview = "bec_lib.position_generators.hex_grid_2d"
|
|
57
|
+
position_preview_parameter_mapping = {
|
|
58
|
+
"axes": [
|
|
59
|
+
["start_motor1", "stop_motor1", "step_motor1"],
|
|
60
|
+
["start_motor2", "stop_motor2", "step_motor2"],
|
|
61
|
+
],
|
|
62
|
+
"snaked": "snaked",
|
|
63
|
+
}
|
|
64
|
+
|
|
56
65
|
def __init__(
|
|
57
66
|
self,
|
|
58
67
|
motor1: DeviceBase,
|
|
@@ -20,9 +20,9 @@ from typing import Annotated
|
|
|
20
20
|
|
|
21
21
|
import numpy as np
|
|
22
22
|
|
|
23
|
+
from bec_lib import position_generators
|
|
23
24
|
from bec_lib.device import DeviceBase
|
|
24
25
|
from bec_lib.scan_args import DefaultArgType, ScanArgument
|
|
25
|
-
from bec_server.scan_server.scans import position_generators
|
|
26
26
|
from bec_server.scan_server.scans.scan_base import ScanBase, ScanType, bundle_args
|
|
27
27
|
from bec_server.scan_server.scans.scan_modifier import scan_hook
|
|
28
28
|
|
|
@@ -64,6 +64,9 @@ class LineScan(ScanBase):
|
|
|
64
64
|
],
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
position_preview = "bec_lib.position_generators.line_scan_positions"
|
|
68
|
+
position_preview_parameter_mapping = {"axes": {"bundle": [1, 2]}, "steps": "steps"}
|
|
69
|
+
|
|
67
70
|
def __init__(
|
|
68
71
|
self,
|
|
69
72
|
*args,
|
|
@@ -20,9 +20,9 @@ from typing import Annotated
|
|
|
20
20
|
|
|
21
21
|
import numpy as np
|
|
22
22
|
|
|
23
|
+
from bec_lib import position_generators
|
|
23
24
|
from bec_lib.device import DeviceBase
|
|
24
25
|
from bec_lib.scan_args import DefaultArgType, ScanArgument
|
|
25
|
-
from bec_server.scan_server.scans import position_generators
|
|
26
26
|
from bec_server.scan_server.scans.scan_base import ScanBase, ScanType, bundle_args
|
|
27
27
|
from bec_server.scan_server.scans.scan_modifier import scan_hook
|
|
28
28
|
|
|
@@ -64,6 +64,9 @@ class LogScan(ScanBase):
|
|
|
64
64
|
],
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
position_preview = "bec_lib.position_generators.log_scan_positions"
|
|
68
|
+
position_preview_parameter_mapping = {"axes": {"bundle": [1, 2]}, "steps": "steps"}
|
|
69
|
+
|
|
67
70
|
def __init__(
|
|
68
71
|
self,
|
|
69
72
|
*args,
|
{bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/multi_region_grid_scan.py
RENAMED
|
@@ -18,9 +18,9 @@ from __future__ import annotations
|
|
|
18
18
|
|
|
19
19
|
import numpy as np
|
|
20
20
|
|
|
21
|
+
from bec_lib import position_generators
|
|
21
22
|
from bec_lib.device import DeviceBase
|
|
22
23
|
from bec_lib.scan_args import DefaultArgType
|
|
23
|
-
from bec_server.scan_server.scans import position_generators
|
|
24
24
|
from bec_server.scan_server.scans.scan_base import ScanBase, ScanType
|
|
25
25
|
from bec_server.scan_server.scans.scan_modifier import scan_hook
|
|
26
26
|
|
|
@@ -44,6 +44,9 @@ class MultiRegionGridScan(ScanBase):
|
|
|
44
44
|
"Acquisition Parameters": ["exp_time", "settling_time", "burst_at_each_point"],
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
position_preview = "bec_lib.position_generators.multi_region_grid_positions"
|
|
48
|
+
position_preview_parameter_mapping = {"regions": "regions", "snaked": "snaked"}
|
|
49
|
+
|
|
47
50
|
def __init__(
|
|
48
51
|
self,
|
|
49
52
|
motor1: DeviceBase,
|
{bec_server-4.2.1 → bec_server-4.3.0}/bec_server/scan_server/scans/multi_region_line_scan.py
RENAMED
|
@@ -18,9 +18,9 @@ from __future__ import annotations
|
|
|
18
18
|
|
|
19
19
|
import numpy as np
|
|
20
20
|
|
|
21
|
+
from bec_lib import position_generators
|
|
21
22
|
from bec_lib.device import DeviceBase
|
|
22
23
|
from bec_lib.scan_args import DefaultArgType
|
|
23
|
-
from bec_server.scan_server.scans import position_generators
|
|
24
24
|
from bec_server.scan_server.scans.scan_base import ScanBase, ScanType
|
|
25
25
|
from bec_server.scan_server.scans.scan_modifier import scan_hook
|
|
26
26
|
|
|
@@ -50,6 +50,9 @@ class MultiRegionLineScan(ScanBase):
|
|
|
50
50
|
],
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
position_preview = "bec_lib.position_generators.multi_region_line_positions"
|
|
54
|
+
position_preview_parameter_mapping = {"regions": "regions"}
|
|
55
|
+
|
|
53
56
|
def __init__(
|
|
54
57
|
self,
|
|
55
58
|
motor: DeviceBase,
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"""Compatibility imports; use :mod:`bec_lib.position_generators` for new code."""
|
|
2
|
+
|
|
3
|
+
from bec_lib.position_generators import (
|
|
4
|
+
Direction,
|
|
5
|
+
fermat_spiral_pos,
|
|
6
|
+
get_round_roi_scan_positions,
|
|
7
|
+
hex_grid_2d,
|
|
8
|
+
line_scan_positions,
|
|
9
|
+
log_scan_positions,
|
|
10
|
+
multi_region_grid_positions,
|
|
11
|
+
multi_region_line_positions,
|
|
12
|
+
nd_grid_positions,
|
|
13
|
+
oscillating_positions,
|
|
14
|
+
rotate_points,
|
|
15
|
+
round_scan_positions,
|
|
16
|
+
spiral_positions,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
__all__ = [
|
|
20
|
+
"Direction",
|
|
21
|
+
"rotate_points",
|
|
22
|
+
"spiral_positions",
|
|
23
|
+
"line_scan_positions",
|
|
24
|
+
"log_scan_positions",
|
|
25
|
+
"oscillating_positions",
|
|
26
|
+
"multi_region_line_positions",
|
|
27
|
+
"multi_region_grid_positions",
|
|
28
|
+
"nd_grid_positions",
|
|
29
|
+
"fermat_spiral_pos",
|
|
30
|
+
"round_scan_positions",
|
|
31
|
+
"get_round_roi_scan_positions",
|
|
32
|
+
"hex_grid_2d",
|
|
33
|
+
]
|
|
@@ -20,9 +20,9 @@ from typing import Annotated
|
|
|
20
20
|
|
|
21
21
|
import numpy as np
|
|
22
22
|
|
|
23
|
+
from bec_lib import position_generators
|
|
23
24
|
from bec_lib.device import DeviceBase
|
|
24
25
|
from bec_lib.scan_args import DefaultArgType, ScanArgument
|
|
25
|
-
from bec_server.scan_server.scans import position_generators
|
|
26
26
|
from bec_server.scan_server.scans.scan_base import ScanBase, ScanType
|
|
27
27
|
from bec_server.scan_server.scans.scan_modifier import scan_hook
|
|
28
28
|
|
|
@@ -54,6 +54,18 @@ class RoundROIScan(ScanBase):
|
|
|
54
54
|
],
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
+
position_preview = "bec_lib.position_generators.get_round_roi_scan_positions"
|
|
58
|
+
position_preview_parameter_mapping = {
|
|
59
|
+
"motor_1_start": "start_motor_1",
|
|
60
|
+
"motor_1_stop": "stop_motor_1",
|
|
61
|
+
"motor_2_start": "start_motor_2",
|
|
62
|
+
"motor_2_stop": "stop_motor_2",
|
|
63
|
+
"radial_step": "shell_spacing",
|
|
64
|
+
"points_in_first_shell": "pos_in_first_ring",
|
|
65
|
+
"center_1": "center_1",
|
|
66
|
+
"center_2": "center_2",
|
|
67
|
+
}
|
|
68
|
+
|
|
57
69
|
def __init__(
|
|
58
70
|
self,
|
|
59
71
|
motor_1: DeviceBase,
|
|
@@ -20,9 +20,9 @@ from typing import Annotated
|
|
|
20
20
|
|
|
21
21
|
import numpy as np
|
|
22
22
|
|
|
23
|
+
from bec_lib import position_generators
|
|
23
24
|
from bec_lib.device import DeviceBase
|
|
24
25
|
from bec_lib.scan_args import DefaultArgType, ScanArgument
|
|
25
|
-
from bec_server.scan_server.scans import position_generators
|
|
26
26
|
from bec_server.scan_server.scans.scan_base import ScanBase, ScanType
|
|
27
27
|
from bec_server.scan_server.scans.scan_modifier import scan_hook
|
|
28
28
|
|
|
@@ -60,6 +60,16 @@ class RoundScan(ScanBase):
|
|
|
60
60
|
],
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
position_preview = "bec_lib.position_generators.round_scan_positions"
|
|
64
|
+
position_preview_parameter_mapping = {
|
|
65
|
+
"inner_radius": "inner_radius",
|
|
66
|
+
"outer_radius": "outer_radius",
|
|
67
|
+
"number_of_rings": "number_of_rings",
|
|
68
|
+
"points_in_first_ring": "pos_in_first_ring",
|
|
69
|
+
"center_1": "center_1",
|
|
70
|
+
"center_2": "center_2",
|
|
71
|
+
}
|
|
72
|
+
|
|
63
73
|
def __init__(
|
|
64
74
|
self,
|
|
65
75
|
motor_1: DeviceBase,
|
|
@@ -64,6 +64,10 @@ class ScanInfo(BaseModel):
|
|
|
64
64
|
scan_number: Annotated[int | None, Field(description="Scan number, if applicable")] = None
|
|
65
65
|
dataset_number: Annotated[int | None, Field(description="Dataset number, if applicable")] = None
|
|
66
66
|
|
|
67
|
+
# Preview metadata uses the same mapping as the advertised scan definition.
|
|
68
|
+
position_preview: str | None = None
|
|
69
|
+
position_preview_parameter_mapping: dict = Field(default_factory=dict)
|
|
70
|
+
|
|
67
71
|
# Scan parameters
|
|
68
72
|
num_points: Annotated[int, Field(description="Number of points in the scan.")] = 0
|
|
69
73
|
positions: Annotated[
|
|
@@ -168,6 +172,8 @@ class ScanBase(ABC):
|
|
|
168
172
|
arg_bundle_size = {"bundle": len(arg_input), "min": None, "max": None}
|
|
169
173
|
is_scan = True
|
|
170
174
|
is_internal = False
|
|
175
|
+
position_preview: str | None = None
|
|
176
|
+
position_preview_parameter_mapping: dict = {}
|
|
171
177
|
|
|
172
178
|
def __init__(
|
|
173
179
|
self,
|
|
@@ -207,7 +213,12 @@ class ScanBase(ABC):
|
|
|
207
213
|
if data is not None:
|
|
208
214
|
optional_kwargs[kwarg] = data
|
|
209
215
|
self.scan_info = ScanInfo(
|
|
210
|
-
scan_name=self.scan_name,
|
|
216
|
+
scan_name=self.scan_name,
|
|
217
|
+
scan_id=scan_id,
|
|
218
|
+
scan_type=self.scan_type,
|
|
219
|
+
position_preview=self.position_preview,
|
|
220
|
+
position_preview_parameter_mapping=self.position_preview_parameter_mapping,
|
|
221
|
+
**optional_kwargs,
|
|
211
222
|
)
|
|
212
223
|
self.update_scan_info(monitored=monitored, on_request=on_request)
|
|
213
224
|
|
|
@@ -6,9 +6,9 @@ from typing import TYPE_CHECKING, Callable, Literal
|
|
|
6
6
|
import numpy as np
|
|
7
7
|
|
|
8
8
|
from bec_lib.device import DeviceBase
|
|
9
|
+
from bec_lib.path_optimization import PathOptimizerMixin
|
|
10
|
+
from bec_lib.position_generators import Direction
|
|
9
11
|
from bec_server.scan_server.errors import LimitError
|
|
10
|
-
from bec_server.scan_server.scans.path_optimization import PathOptimizerMixin
|
|
11
|
-
from bec_server.scan_server.scans.position_generators import Direction
|
|
12
12
|
|
|
13
13
|
if TYPE_CHECKING:
|
|
14
14
|
from bec_lib.devicemanager import DeviceContainer
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"""Preview metadata must reproduce the trajectory executed by each scan."""
|
|
2
|
+
|
|
3
|
+
import inspect
|
|
4
|
+
import json
|
|
5
|
+
|
|
6
|
+
import numpy as np
|
|
7
|
+
import pytest
|
|
8
|
+
|
|
9
|
+
from bec_lib import position_generators
|
|
10
|
+
from bec_lib.scan_preview import generate_scan_positions
|
|
11
|
+
from bec_server.scan_server.scans import position_generators as legacy_generators
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@pytest.mark.parametrize(
|
|
15
|
+
"name,args,kwargs",
|
|
16
|
+
[
|
|
17
|
+
("line_scan", ("samx", -1, 1, "samy", -2, 2), {"steps": 5}),
|
|
18
|
+
("log_scan", ("samx", -1, 1, "samy", -2, 2), {"steps": 5}),
|
|
19
|
+
("grid_scan", ("samx", -1, 1, 3, "samy", -2, 2, 4), {"snaked": False}),
|
|
20
|
+
("hexagonal_scan", ("samx", -1, 1, 0.5, "samy", -2, 2, 0.5), {}),
|
|
21
|
+
("fermat_scan", ("samx", -1, 1, "samy", -2, 2, 0.5), {"spiral_type": 1}),
|
|
22
|
+
("round_scan", ("samx", "samy", 0, 2, 3, 4), {"center_1": 1}),
|
|
23
|
+
("round_roi_scan", ("samx", -2, 2, "samy", -2, 2, 0.5, 4), {"center_2": 1}),
|
|
24
|
+
("multi_region_line_scan", ("samx",), {"regions": [(-1, 0, 3), (0, 2, 4)]}),
|
|
25
|
+
("multi_region_grid_scan", ("samx", "samy"), {"regions": [((-1, 1, 3), (-2, 2, 4))]}),
|
|
26
|
+
],
|
|
27
|
+
)
|
|
28
|
+
def test_advertised_preview_matches_scan(scan_assembler, name, args, kwargs):
|
|
29
|
+
scan = scan_assembler(name, *args, relative=False, **kwargs)
|
|
30
|
+
cls = type(scan)
|
|
31
|
+
bound = inspect.signature(cls).bind(*args, relative=False, **kwargs)
|
|
32
|
+
bound.apply_defaults()
|
|
33
|
+
info = json.loads(
|
|
34
|
+
json.dumps(
|
|
35
|
+
{
|
|
36
|
+
"position_preview": cls.position_preview,
|
|
37
|
+
"position_preview_parameter_mapping": cls.position_preview_parameter_mapping,
|
|
38
|
+
"arg_bundle_size": cls.arg_bundle_size,
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
)
|
|
42
|
+
preview = generate_scan_positions(info, bound.arguments)
|
|
43
|
+
scan.prepare_scan()
|
|
44
|
+
np.testing.assert_allclose(preview, scan.positions)
|
|
45
|
+
assert scan.scan_info.position_preview == info["position_preview"]
|
|
46
|
+
assert (
|
|
47
|
+
scan.scan_info.position_preview_parameter_mapping
|
|
48
|
+
== info["position_preview_parameter_mapping"]
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
published_info = scan.actions._build_scan_status_info({}, {}, None)
|
|
52
|
+
assert published_info["position_preview"] == info["position_preview"]
|
|
53
|
+
assert (
|
|
54
|
+
published_info["position_preview_parameter_mapping"]
|
|
55
|
+
== info["position_preview_parameter_mapping"]
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def test_legacy_import_preserves_function_and_direction_identity():
|
|
60
|
+
assert legacy_generators.line_scan_positions is position_generators.line_scan_positions
|
|
61
|
+
assert legacy_generators.Direction is position_generators.Direction
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"""Legacy optimizer imports must preserve the shared implementation identity."""
|
|
2
|
+
|
|
3
|
+
from bec_lib.path_optimization import PathOptimizerMixin, PathQualityStats
|
|
4
|
+
from bec_server.scan_server.scans.path_optimization import (
|
|
5
|
+
PathOptimizerMixin as LegacyPathOptimizerMixin,
|
|
6
|
+
)
|
|
7
|
+
from bec_server.scan_server.scans.path_optimization import (
|
|
8
|
+
PathQualityStats as LegacyPathQualityStats,
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def test_legacy_optimizer_imports_preserve_identity():
|
|
13
|
+
assert LegacyPathOptimizerMixin is PathOptimizerMixin
|
|
14
|
+
assert LegacyPathQualityStats is PathQualityStats
|
{bec_server-4.2.1 → bec_server-4.3.0}/tests/tests_scan_server/test_scan_server_scan_manager.py
RENAMED
|
@@ -222,3 +222,14 @@ def test_scan_manager_plugins_require_current_scan_base():
|
|
|
222
222
|
def test_scan_manager_preserves_published_scan_base_class(scan_manager):
|
|
223
223
|
assert scan_manager.available_scans
|
|
224
224
|
assert {info["base_class"] for info in scan_manager.available_scans.values()} == {"ScanBaseV4"}
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
def test_scan_manager_advertises_preview_metadata(scan_manager):
|
|
228
|
+
info = scan_manager.available_scans["line_scan"]
|
|
229
|
+
assert info["position_preview"] == "bec_lib.position_generators.line_scan_positions"
|
|
230
|
+
assert info["position_preview_parameter_mapping"] == {
|
|
231
|
+
"axes": {"bundle": [1, 2]},
|
|
232
|
+
"steps": "steps",
|
|
233
|
+
}
|
|
234
|
+
assert scan_manager.available_scans["time_scan"]["position_preview"] is None
|
|
235
|
+
assert scan_manager.available_scans["time_scan"]["position_preview_parameter_mapping"] == {}
|