bec-server 4.0.1__tar.gz → 4.0.2__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.0.1 → bec_server-4.0.2}/PKG-INFO +1 -1
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/file_writer/async_writer.py +16 -4
- {bec_server-4.0.1 → bec_server-4.0.2}/pyproject.toml +1 -1
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_file_writer/test_async_file_writer.py +56 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/.gitignore +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/.zed/debug.json +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/README.md +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/actors/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/actors/actor.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/actors/builtin_actor_manager.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/actors/manager.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/actors/scan_interlock.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/actors/worker.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/bec_server_utils/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/bec_server_utils/launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/bec_server_utils/service_handler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/bec_server_utils/subprocess_launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/bec_server_utils/tmux_launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/data_processing/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/data_processing/cli/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/data_processing/cli/launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/data_processing/dap_server.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/data_processing/dap_service.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/data_processing/dap_service_manager.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/data_processing/lmfit1d_service.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/bec_message_handler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/cli/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/cli/launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/device_server.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/devices/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/devices/config_update_handler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/devices/device_serializer.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/devices/devicemanager.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/friendly_device_exceptions.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/ophyd_callback_monitor.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/rpc_handler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/tests/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/tests/utils.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/file_writer/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/file_writer/cli/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/file_writer/cli/launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/file_writer/default_writer.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/file_writer/file_writer.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/file_writer/file_writer_manager.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/file_writer/merged_dicts.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/procedures/Containerfile.bec_linux_base +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/procedures/Containerfile.requirements +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/procedures/Containerfile.worker +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/procedures/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/procedures/_dev_runner.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/procedures/builtin_procedures.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/procedures/constants.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/procedures/container_utils.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/procedures/container_worker.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/procedures/manager.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/procedures/oop_worker_base.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/procedures/procedure_registry.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/procedures/protocol.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/procedures/subprocess_worker.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/procedures/worker_base.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_bundler/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_bundler/bec_emitter.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_bundler/cli/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_bundler/cli/launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_bundler/emitter.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_bundler/scan_bundler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/beamline_state_manager.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/cli/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/cli/launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/device_lock_registry.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/direct_scan_worker.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/errors.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/instruction_handler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scan_assembler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scan_guard.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scan_manager.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scan_queue.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scan_server.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scan_worker.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/acquire.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/cont_line_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/device_rpc.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/fermat_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/grid_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/hexagonal_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/line_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/line_sweep_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/list_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/log_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/move.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/multi_region_grid_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/multi_region_line_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/path_optimization.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/position_generators.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/round_roi_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/round_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/scan_actions.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/scan_argument_modifier.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/scan_base.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/scan_components.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/scan_modifier.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/scan_status.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/time_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/updated_move.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/tests/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/tests/fixtures.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/tests/scan_fixtures.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/tests/scan_hook_tests.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/tests/utils.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scihub/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scihub/atlas/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scihub/atlas/atlas_active_client_emitter.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scihub/atlas/atlas_connector.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scihub/atlas/atlas_forwarder.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scihub/atlas/atlas_metadata_handler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scihub/atlas/atlas_plugin_repo_emitter.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scihub/atlas/config_handler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scihub/cli/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scihub/cli/launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scihub/scihub.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scihub/service_handler/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scihub/service_handler/service_handler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/test/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/test/actor_test_utils.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/bec_server/test/helpers.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_actors/test_actors.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_bec_server_utils/test_main.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_bec_server_utils/test_service_handler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_bec_server_utils/test_subprocess_launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_bec_server_utils/test_tmux_launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_data_processing/conftest.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_data_processing/test_dap_cli_launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_data_processing/test_dap_server.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_data_processing/test_dap_service_manager.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_data_processing/test_lmfit1d_service.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_device_server/conftest.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_device_server/test_config_handler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_device_server/test_device_instructions.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_device_server/test_device_manager_ds.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_device_server/test_device_serializer.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_device_server/test_device_server.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_device_server/test_device_server_cli_launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_device_server/test_ophyd_callback_monitor.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_device_server/test_rpc_handler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_file_writer/conftest.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_file_writer/test_file_writer.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_file_writer/test_file_writer_cli_launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_file_writer/test_file_writer_manager.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_bundler/conftest.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_bundler/test_bec_emitter.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_bundler/test_scan_bundler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_bundler/test_scan_bundler_cli_launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/conftest.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/__init__.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_acquire.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_cont_line_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_device_rpc_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_fermat_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_grid_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_hexagonal_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_line_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_line_sweep_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_list_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_log_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_move_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_multi_region_grid_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_multi_region_line_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_position_generators.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_relative_scan_return_to_start.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_round_roi_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_round_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_scan_actions.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_scan_components.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_scan_status.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_time_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_updated_move_scan.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_beamline_state_manager.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_builtin_actor_manager.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_container_utils.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_device_lock_registry.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_direct_scan_worker.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_instruction_handler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_path_optimization.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_procedure_container_worker.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_procedures.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_scan_argument_modifier.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_scan_assembler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_scan_fixture_imports.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_scan_guard.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_scan_interlock.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_scan_modifier.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_scan_server_cli_launch.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_scan_server_queue.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_scan_server_scan_manager.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_scan_worker.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scihub/conftest.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scihub/test_atlas_active_client_emitter.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scihub/test_atlas_config_handler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scihub/test_atlas_connector.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scihub/test_atlas_forwarder.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scihub/test_atlas_metadata_handler.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scihub/test_atlas_plugin_repo_emitter.py +0 -0
- {bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scihub/test_scihub_cli_launch.py +0 -0
|
@@ -303,7 +303,12 @@ class AsyncWriter(threading.Thread):
|
|
|
303
303
|
if key == "value":
|
|
304
304
|
self.write_value_data(signal_group, value, async_update)
|
|
305
305
|
elif key == "timestamp":
|
|
306
|
-
self.write_timestamp_data(
|
|
306
|
+
self.write_timestamp_data(
|
|
307
|
+
signal_group,
|
|
308
|
+
value,
|
|
309
|
+
replace=isinstance(async_update, dict)
|
|
310
|
+
and async_update.get("type") == "replace",
|
|
311
|
+
)
|
|
307
312
|
else: # pragma: no cover
|
|
308
313
|
# this should never happen as the keys are fixed in the pydantic model
|
|
309
314
|
msg = f"Unknown key: {key}. Data will not be written."
|
|
@@ -354,7 +359,7 @@ class AsyncWriter(threading.Thread):
|
|
|
354
359
|
|
|
355
360
|
elif update_type == "replace":
|
|
356
361
|
# store the data to be written after the scan is complete
|
|
357
|
-
self.device_data_replace[signal_group.name] = value
|
|
362
|
+
self.device_data_replace[signal_group.name] = np.asarray(value)
|
|
358
363
|
else:
|
|
359
364
|
msg = f"Unknown async update type: {update_type}. Data will not be written."
|
|
360
365
|
self.connector.raise_alarm(
|
|
@@ -578,19 +583,26 @@ class AsyncWriter(threading.Thread):
|
|
|
578
583
|
)
|
|
579
584
|
self.cursor[signal_group.name][row_index] = value.shape[1]
|
|
580
585
|
|
|
581
|
-
def write_timestamp_data(
|
|
586
|
+
def write_timestamp_data(
|
|
587
|
+
self, signal_group: h5py.Group, value: Any, replace: bool = False
|
|
588
|
+
) -> None:
|
|
582
589
|
"""
|
|
583
590
|
Write the timestamp data to the file.
|
|
584
591
|
Timestamp data is always written as a 1D array, irrespective of the async update type.
|
|
592
|
+
Replacement updates retain only the latest timestamps.
|
|
585
593
|
|
|
586
594
|
Args:
|
|
587
595
|
signal_group (h5py.Group): The group to write the data to
|
|
588
|
-
value (
|
|
596
|
+
value (Any): The timestamp data to write
|
|
597
|
+
replace (bool): Whether to replace existing timestamps instead of appending
|
|
589
598
|
"""
|
|
590
599
|
if not isinstance(value, (list, np.ndarray)):
|
|
591
600
|
value = [value]
|
|
592
601
|
if "timestamp" not in signal_group:
|
|
593
602
|
create_dataset_safe(signal_group, "timestamp", data=value, maxshape=(None,))
|
|
603
|
+
elif replace:
|
|
604
|
+
signal_group["timestamp"].resize((len(value),))
|
|
605
|
+
signal_group["timestamp"][:] = value
|
|
594
606
|
else:
|
|
595
607
|
signal_group["timestamp"].resize((len(signal_group["timestamp"]) + len(value),))
|
|
596
608
|
signal_group["timestamp"][-len(value) :] = value
|
|
@@ -591,9 +591,65 @@ def test_async_writer_replace(async_writer, data):
|
|
|
591
591
|
# read the data back
|
|
592
592
|
with h5py.File(async_writer.file_path, "r") as f:
|
|
593
593
|
out = f[async_writer.BASE_PATH]["monitor_async"]["monitor_async"]["value"][:]
|
|
594
|
+
timestamps = f[async_writer.BASE_PATH]["monitor_async"]["monitor_async"]["timestamp"][:]
|
|
594
595
|
|
|
595
596
|
assert out.shape == (10,)
|
|
596
597
|
assert np.allclose(out, data[-1].signals["monitor_async"]["value"])
|
|
598
|
+
assert np.array_equal(timestamps, [data[-1].signals["monitor_async"]["timestamp"]])
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
@pytest.mark.parametrize(
|
|
602
|
+
"values",
|
|
603
|
+
[
|
|
604
|
+
(0, 7),
|
|
605
|
+
(0.0, 1.2),
|
|
606
|
+
(False, True),
|
|
607
|
+
(np.int64(0), np.int64(7)),
|
|
608
|
+
(np.float64(0.0), np.float64(1.2)),
|
|
609
|
+
],
|
|
610
|
+
)
|
|
611
|
+
def test_async_writer_replace_scalar(async_writer, values):
|
|
612
|
+
"""Write only the latest scalar value and timestamp after scan completion."""
|
|
613
|
+
for timestamp, value in enumerate(values, start=1):
|
|
614
|
+
message = messages.DeviceMessage(
|
|
615
|
+
signals={"monitor_async": {"value": value, "timestamp": float(timestamp)}},
|
|
616
|
+
metadata={"async_update": {"type": "replace"}},
|
|
617
|
+
)
|
|
618
|
+
async_writer.write_data({"monitor_async": [message]})
|
|
619
|
+
|
|
620
|
+
group = async_writer.file_handle[f"{async_writer.BASE_PATH}/monitor_async/monitor_async"]
|
|
621
|
+
try:
|
|
622
|
+
assert "value" not in group
|
|
623
|
+
async_writer.write_data({}, write_replace=True)
|
|
624
|
+
assert group["value"].shape == ()
|
|
625
|
+
assert group["value"][()] == values[-1]
|
|
626
|
+
assert np.array_equal(group["timestamp"][:], [2.0])
|
|
627
|
+
finally:
|
|
628
|
+
async_writer.file_handle.close()
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
@pytest.mark.parametrize("update_type", ["replace", "add", "add_slice"])
|
|
632
|
+
@pytest.mark.parametrize("timestamps", [[1, 2, 3], [1]])
|
|
633
|
+
def test_async_writer_timestamp_aggregation(async_writer, update_type, timestamps):
|
|
634
|
+
"""Keep replacement timestamps together and preserve append behavior for other updates."""
|
|
635
|
+
metadata = {"type": update_type}
|
|
636
|
+
if update_type == "add":
|
|
637
|
+
metadata["max_shape"] = [None]
|
|
638
|
+
elif update_type == "add_slice":
|
|
639
|
+
metadata.update(max_shape=[None, None], index=0)
|
|
640
|
+
|
|
641
|
+
for timestamp in (timestamps, [4, 5]):
|
|
642
|
+
message = messages.DeviceMessage(
|
|
643
|
+
signals={"monitor_async": {"value": np.array([6, 7]), "timestamp": timestamp}},
|
|
644
|
+
metadata={"async_update": metadata},
|
|
645
|
+
)
|
|
646
|
+
async_writer.write_data({"monitor_async": [message]})
|
|
647
|
+
async_writer.write_data({}, write_replace=True)
|
|
648
|
+
|
|
649
|
+
group = async_writer.file_handle[f"{async_writer.BASE_PATH}/monitor_async/monitor_async"]
|
|
650
|
+
expected = [4, 5] if update_type == "replace" else timestamps + [4, 5]
|
|
651
|
+
assert np.array_equal(group["timestamp"][:], expected)
|
|
652
|
+
async_writer.file_handle.close()
|
|
597
653
|
|
|
598
654
|
|
|
599
655
|
def test_async_writer_async_signal(async_writer):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/devices/config_update_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/bec_server/device_server/friendly_device_exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/multi_region_grid_scan.py
RENAMED
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/multi_region_line_scan.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scan_server/scans/scan_argument_modifier.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/bec_server/scihub/atlas/atlas_active_client_emitter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_bec_server_utils/test_subprocess_launch.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_data_processing/test_dap_service_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_device_server/test_device_server_cli_launch.py
RENAMED
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_device_server/test_ophyd_callback_monitor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_file_writer/test_file_writer_cli_launch.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_bundler/test_scan_bundler_cli_launch.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_multi_region_grid_scan.py
RENAMED
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_multi_region_line_scan.py
RENAMED
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_position_generators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/scans/test_updated_move_scan.py
RENAMED
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_beamline_state_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_procedure_container_worker.py
RENAMED
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_scan_argument_modifier.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_scan_server_cli_launch.py
RENAMED
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scan_server/test_scan_server_scan_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_server-4.0.1 → bec_server-4.0.2}/tests/tests_scihub/test_atlas_active_client_emitter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|