bec-server 2.12.0__tar.gz → 2.12.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-2.12.0 → bec_server-2.12.2}/PKG-INFO +1 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/data_processing/cli/launch.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/data_processing/dap_server.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/data_processing/dap_service.py +2 -2
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/data_processing/dap_service_manager.py +4 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/data_processing/lmfit1d_service.py +4 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/device_server/__init__.py +1 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/device_server/cli/launch.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/device_server/device_server.py +5 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/device_server/devices/config_update_handler.py +4 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/device_server/devices/devicemanager.py +7 -10
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/device_server/rpc_mixin.py +4 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/file_writer/cli/launch.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/file_writer/default_writer.py +1 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/file_writer/file_writer.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/file_writer/file_writer_manager.py +14 -17
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/file_writer_plugins/cSAXS.py +1 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_bundler/bec_emitter.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_bundler/bluesky_emitter.py +2 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_bundler/cli/launch.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_bundler/scan_bundler.py +6 -2
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/cli/launch.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/device_validation.py +4 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/scan_assembler.py +2 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/scan_guard.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/scan_manager.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/scan_plugins/otf_scan.py +1 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/scan_queue.py +67 -64
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/scan_server.py +8 -4
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/scan_stubs.py +4 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/scan_worker.py +5 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/scans.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/tests/utils.py +1 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scihub/cli/launch.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scihub/scibec/config_handler.py +5 -3
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scihub/scibec/scibec_connector.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scihub/scibec/scibec_metadata_handler.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scihub/scihub.py +4 -2
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scihub/scilog/scilog.py +4 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/pyproject.toml +1 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_data_processing/conftest.py +1 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_data_processing/test_dap_server.py +1 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_device_server/conftest.py +1 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_device_server/test_device_manager_ds.py +2 -2
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_device_server/test_device_server.py +4 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_device_server/test_rpc_mixin.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_file_writer/conftest.py +1 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_file_writer/test_file_writer_manager.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scan_bundler/conftest.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scan_bundler/test_bec_emitter.py +2 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scan_bundler/test_bluesky_emitter.py +1 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scan_bundler/test_scan_bundler.py +2 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scan_server/conftest.py +1 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scan_server/test_scan_guard.py +2 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scan_server/test_scan_server_queue.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scan_server/test_scan_stubs.py +2 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scan_server/test_scan_worker.py +2 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scihub/conftest.py +1 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scihub/test_scibec_config_handler.py +2 -2
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scihub/test_scibec_connector.py +3 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scihub/test_scilog_connector.py +2 -1
- {bec_server-2.12.0 → bec_server-2.12.2}/.gitignore +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/README.md +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/bec_server_utils/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/bec_server_utils/launch.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/bec_server_utils/service_handler.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/bec_server_utils/subprocess_launch.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/bec_server_utils/tmux_launch.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/data_processing/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/data_processing/cli/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/device_server/cli/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/device_server/devices/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/device_server/devices/device_serializer.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/device_server/tests/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/device_server/tests/utils.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/file_writer/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/file_writer/cli/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/file_writer/merged_dicts.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/file_writer_plugins/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_bundler/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_bundler/cli/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_bundler/emitter.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/cli/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/errors.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/path_optimization.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/scan_plugins/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/tests/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scan_server/tests/fixtures.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scihub/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scihub/cli/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scihub/repeated_timer.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scihub/scibec/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/bec_server/scihub/scilog/__init__.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_bec_server_utils/test_main.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_bec_server_utils/test_service_handler.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_bec_server_utils/test_tmux_launch.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_data_processing/test_dap_cli_launch.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_data_processing/test_dap_service_manager.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_data_processing/test_lmfit1d_service.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_device_server/test_config_handler.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_device_server/test_device_serializer.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_device_server/test_device_server_cli_launch.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_file_writer/test_file_writer.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_file_writer/test_file_writer_cli_launch.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scan_bundler/test_emitter.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scan_bundler/test_scan_bundler_cli_launch.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scan_server/test_path_optimization.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scan_server/test_scan_server_cli_launch.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scan_server/test_scans.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scihub/test_repeated_timer.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scihub/test_scibec_metadata_handler.py +0 -0
- {bec_server-2.12.0 → bec_server-2.12.2}/tests/tests_scihub/test_scihub_cli_launch.py +0 -0
|
@@ -5,7 +5,9 @@ import argparse
|
|
|
5
5
|
import threading
|
|
6
6
|
|
|
7
7
|
import bec_server.data_processing as data_processing
|
|
8
|
-
from bec_lib import
|
|
8
|
+
from bec_lib.logger import bec_logger
|
|
9
|
+
from bec_lib.redis_connector import RedisConnector
|
|
10
|
+
from bec_lib.service_config import ServiceConfig
|
|
9
11
|
from bec_server.data_processing.lmfit1d_service import LmfitService1D
|
|
10
12
|
|
|
11
13
|
logger = bec_logger.logger
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
from bec_lib import BECClient
|
|
1
|
+
from bec_lib.client import BECClient
|
|
2
2
|
from bec_lib.connector import ConnectorBase
|
|
3
|
+
from bec_lib.logger import bec_logger
|
|
4
|
+
from bec_lib.service_config import ServiceConfig
|
|
3
5
|
|
|
4
6
|
from .dap_service_manager import DAPServiceManager
|
|
5
7
|
|
|
@@ -4,11 +4,11 @@ import abc
|
|
|
4
4
|
from typing import TYPE_CHECKING
|
|
5
5
|
|
|
6
6
|
# import numpy as np
|
|
7
|
-
from bec_lib import bec_logger
|
|
7
|
+
from bec_lib.logger import bec_logger
|
|
8
8
|
from bec_lib.signature_serializer import signature_to_dict
|
|
9
9
|
|
|
10
10
|
if TYPE_CHECKING:
|
|
11
|
-
from bec_lib import BECClient
|
|
11
|
+
from bec_lib.client import BECClient
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
logger = bec_logger.logger
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from bec_lib import
|
|
3
|
+
from bec_lib import messages
|
|
4
|
+
from bec_lib.client import BECClient
|
|
5
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
6
|
+
from bec_lib.logger import bec_logger
|
|
4
7
|
from bec_lib.redis_connector import MessageObject
|
|
5
8
|
|
|
6
9
|
logger = bec_logger.logger
|
|
@@ -8,8 +8,11 @@ from typing import TYPE_CHECKING
|
|
|
8
8
|
import lmfit
|
|
9
9
|
import numpy as np
|
|
10
10
|
|
|
11
|
-
from bec_lib import
|
|
11
|
+
from bec_lib import messages
|
|
12
|
+
from bec_lib.device import DeviceBase
|
|
13
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
12
14
|
from bec_lib.lmfit_serializer import deserialize_param_object, serialize_lmfit_params
|
|
15
|
+
from bec_lib.logger import bec_logger
|
|
13
16
|
from bec_lib.serialization import MsgpackSerialization
|
|
14
17
|
from bec_server.data_processing.dap_service import DAPError, DAPServiceBase
|
|
15
18
|
|
|
@@ -16,7 +16,9 @@ for entry_point in entry_points:
|
|
|
16
16
|
import argparse
|
|
17
17
|
import threading
|
|
18
18
|
|
|
19
|
-
from bec_lib import
|
|
19
|
+
from bec_lib.logger import bec_logger
|
|
20
|
+
from bec_lib.redis_connector import RedisConnector
|
|
21
|
+
from bec_lib.service_config import ServiceConfig
|
|
20
22
|
from bec_server import device_server
|
|
21
23
|
|
|
22
24
|
logger = bec_logger.logger
|
|
@@ -8,9 +8,13 @@ import ophyd
|
|
|
8
8
|
from ophyd import Kind, OphydObject, Staged
|
|
9
9
|
from ophyd.utils import errors as ophyd_errors
|
|
10
10
|
|
|
11
|
-
from bec_lib import
|
|
11
|
+
from bec_lib import messages
|
|
12
|
+
from bec_lib.alarm_handler import Alarms
|
|
13
|
+
from bec_lib.bec_service import BECService
|
|
12
14
|
from bec_lib.connector import ConnectorBase
|
|
13
15
|
from bec_lib.device import OnFailure
|
|
16
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
17
|
+
from bec_lib.logger import bec_logger
|
|
14
18
|
from bec_lib.messages import BECStatus
|
|
15
19
|
from bec_server.device_server.devices.devicemanager import DeviceManagerDS
|
|
16
20
|
from bec_server.device_server.rpc_mixin import RPCMixin
|
{bec_server-2.12.0 → bec_server-2.12.2}/bec_server/device_server/devices/config_update_handler.py
RENAMED
|
@@ -4,7 +4,10 @@ import copy
|
|
|
4
4
|
import traceback
|
|
5
5
|
from typing import TYPE_CHECKING
|
|
6
6
|
|
|
7
|
-
from bec_lib import
|
|
7
|
+
from bec_lib import messages
|
|
8
|
+
from bec_lib.devicemanager import DeviceConfigError
|
|
9
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
10
|
+
from bec_lib.logger import bec_logger
|
|
8
11
|
|
|
9
12
|
if TYPE_CHECKING:
|
|
10
13
|
from devicemanager import DeviceManagerDS
|
|
@@ -18,16 +18,13 @@ from ophyd.ophydobj import OphydObject
|
|
|
18
18
|
from ophyd.signal import EpicsSignalBase
|
|
19
19
|
from typeguard import typechecked
|
|
20
20
|
|
|
21
|
-
from bec_lib import
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
messages,
|
|
29
|
-
plugin_helper,
|
|
30
|
-
)
|
|
21
|
+
from bec_lib import messages, plugin_helper
|
|
22
|
+
from bec_lib.bec_errors import DeviceConfigError
|
|
23
|
+
from bec_lib.bec_service import BECService
|
|
24
|
+
from bec_lib.device import DeviceBase
|
|
25
|
+
from bec_lib.devicemanager import DeviceManagerBase
|
|
26
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
27
|
+
from bec_lib.logger import bec_logger
|
|
31
28
|
from bec_server.device_server.devices.config_update_handler import ConfigUpdateHandler
|
|
32
29
|
from bec_server.device_server.devices.device_serializer import get_device_info
|
|
33
30
|
|
|
@@ -5,7 +5,10 @@ from typing import Any
|
|
|
5
5
|
|
|
6
6
|
import ophyd
|
|
7
7
|
|
|
8
|
-
from bec_lib import
|
|
8
|
+
from bec_lib import messages
|
|
9
|
+
from bec_lib.alarm_handler import Alarms
|
|
10
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
11
|
+
from bec_lib.logger import bec_logger
|
|
9
12
|
from bec_server.device_server.devices import is_serializable, rgetattr
|
|
10
13
|
|
|
11
14
|
logger = bec_logger.logger
|
|
@@ -4,7 +4,9 @@ import argparse
|
|
|
4
4
|
import os
|
|
5
5
|
import threading
|
|
6
6
|
|
|
7
|
-
from bec_lib import
|
|
7
|
+
from bec_lib.logger import bec_logger
|
|
8
|
+
from bec_lib.redis_connector import RedisConnector
|
|
9
|
+
from bec_lib.service_config import ServiceConfig
|
|
8
10
|
from bec_server import file_writer
|
|
9
11
|
|
|
10
12
|
logger = bec_logger.logger
|
|
@@ -9,7 +9,9 @@ import typing
|
|
|
9
9
|
|
|
10
10
|
import h5py
|
|
11
11
|
|
|
12
|
-
from bec_lib import
|
|
12
|
+
from bec_lib import messages, plugin_helper
|
|
13
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
14
|
+
from bec_lib.logger import bec_logger
|
|
13
15
|
|
|
14
16
|
from .default_writer import NeXus_format as default_NeXus_format
|
|
15
17
|
from .merged_dicts import merge_dicts
|
|
@@ -3,19 +3,16 @@ from __future__ import annotations
|
|
|
3
3
|
import threading
|
|
4
4
|
import traceback
|
|
5
5
|
|
|
6
|
-
from bec_lib import
|
|
7
|
-
BECService,
|
|
8
|
-
DeviceManagerBase,
|
|
9
|
-
MessageEndpoints,
|
|
10
|
-
ServiceConfig,
|
|
11
|
-
bec_logger,
|
|
12
|
-
messages,
|
|
13
|
-
threadlocked,
|
|
14
|
-
)
|
|
6
|
+
from bec_lib import messages
|
|
15
7
|
from bec_lib.alarm_handler import Alarms
|
|
16
8
|
from bec_lib.async_data import AsyncDataHandler
|
|
9
|
+
from bec_lib.bec_service import BECService
|
|
10
|
+
from bec_lib.devicemanager import DeviceManagerBase
|
|
11
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
17
12
|
from bec_lib.file_utils import FileWriter
|
|
13
|
+
from bec_lib.logger import bec_logger
|
|
18
14
|
from bec_lib.redis_connector import MessageObject, RedisConnector
|
|
15
|
+
from bec_lib.service_config import ServiceConfig
|
|
19
16
|
from bec_server.file_writer.file_writer import NexusFileWriter
|
|
20
17
|
|
|
21
18
|
logger = bec_logger.logger
|
|
@@ -254,7 +251,6 @@ class FileWriterManager(BECService):
|
|
|
254
251
|
msgs
|
|
255
252
|
)
|
|
256
253
|
|
|
257
|
-
@threadlocked
|
|
258
254
|
def check_storage_status(self, scan_id: str) -> None:
|
|
259
255
|
"""
|
|
260
256
|
Check if the scan storage is ready to be written to file and write it if it is.
|
|
@@ -262,13 +258,14 @@ class FileWriterManager(BECService):
|
|
|
262
258
|
Args:
|
|
263
259
|
scan_id (str): Scan ID
|
|
264
260
|
"""
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
self.
|
|
271
|
-
|
|
261
|
+
with self._lock:
|
|
262
|
+
if not self.scan_storage.get(scan_id):
|
|
263
|
+
return
|
|
264
|
+
self.update_baseline_reading(scan_id)
|
|
265
|
+
self.update_file_references(scan_id)
|
|
266
|
+
if self.scan_storage[scan_id].ready_to_write():
|
|
267
|
+
self.update_async_data(scan_id)
|
|
268
|
+
self.write_file(scan_id)
|
|
272
269
|
|
|
273
270
|
def write_file(self, scan_id: str) -> None:
|
|
274
271
|
"""
|
|
@@ -2,7 +2,9 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from typing import TYPE_CHECKING
|
|
4
4
|
|
|
5
|
-
from bec_lib import
|
|
5
|
+
from bec_lib import messages
|
|
6
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
7
|
+
from bec_lib.logger import bec_logger
|
|
6
8
|
|
|
7
9
|
from .emitter import EmitterBase
|
|
8
10
|
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
import argparse
|
|
5
5
|
import threading
|
|
6
6
|
|
|
7
|
-
from bec_lib import
|
|
7
|
+
from bec_lib.logger import bec_logger
|
|
8
|
+
from bec_lib.redis_connector import RedisConnector
|
|
9
|
+
from bec_lib.service_config import ServiceConfig
|
|
8
10
|
from bec_server import scan_bundler
|
|
9
11
|
|
|
10
12
|
logger = bec_logger.logger
|
|
@@ -5,8 +5,12 @@ import traceback
|
|
|
5
5
|
from collections.abc import Callable
|
|
6
6
|
from concurrent.futures import ThreadPoolExecutor
|
|
7
7
|
|
|
8
|
-
from bec_lib import
|
|
8
|
+
from bec_lib import messages
|
|
9
|
+
from bec_lib.bec_service import BECService
|
|
9
10
|
from bec_lib.connector import ConnectorBase
|
|
11
|
+
from bec_lib.devicemanager import DeviceManagerBase
|
|
12
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
13
|
+
from bec_lib.logger import bec_logger
|
|
10
14
|
|
|
11
15
|
from .bec_emitter import BECEmitter
|
|
12
16
|
from .bluesky_emitter import BlueskyEmitter
|
|
@@ -52,7 +56,7 @@ class ScanBundler(BECService):
|
|
|
52
56
|
self._lock = threading.Lock()
|
|
53
57
|
self._emitter = []
|
|
54
58
|
self._initialize_emitters()
|
|
55
|
-
self.status = BECStatus.RUNNING
|
|
59
|
+
self.status = messages.BECStatus.RUNNING
|
|
56
60
|
|
|
57
61
|
def _initialize_emitters(self):
|
|
58
62
|
self._emitter = [BECEmitter(self), BlueskyEmitter(self)]
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
import argparse
|
|
5
5
|
import threading
|
|
6
6
|
|
|
7
|
-
from bec_lib import
|
|
7
|
+
from bec_lib.logger import bec_logger
|
|
8
|
+
from bec_lib.redis_connector import RedisConnector
|
|
9
|
+
from bec_lib.service_config import ServiceConfig
|
|
8
10
|
from bec_server import scan_server
|
|
9
11
|
|
|
10
12
|
logger = bec_logger.logger
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
from collections.abc import Callable
|
|
2
2
|
|
|
3
|
-
from bec_lib import
|
|
3
|
+
from bec_lib import messages
|
|
4
|
+
from bec_lib.device import DeviceStatus
|
|
5
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
6
|
+
from bec_lib.logger import bec_logger
|
|
4
7
|
|
|
5
8
|
logger = bec_logger.logger
|
|
6
9
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import inspect
|
|
2
2
|
|
|
3
|
-
from bec_lib import
|
|
3
|
+
from bec_lib import plugin_helper
|
|
4
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
5
|
+
from bec_lib.logger import bec_logger
|
|
4
6
|
from bec_lib.messages import AvailableResourceMessage
|
|
5
7
|
from bec_lib.signature_serializer import signature_to_dict
|
|
6
8
|
|
|
@@ -11,7 +11,10 @@ from enum import Enum
|
|
|
11
11
|
from rich.console import Console
|
|
12
12
|
from rich.table import Table
|
|
13
13
|
|
|
14
|
-
from bec_lib import
|
|
14
|
+
from bec_lib import messages
|
|
15
|
+
from bec_lib.alarm_handler import Alarms
|
|
16
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
17
|
+
from bec_lib.logger import bec_logger
|
|
15
18
|
|
|
16
19
|
from .errors import LimitError, ScanAbortion
|
|
17
20
|
from .scan_assembler import ScanAssembler
|
|
@@ -84,19 +87,19 @@ class QueueManager:
|
|
|
84
87
|
metadata=msg.metadata,
|
|
85
88
|
)
|
|
86
89
|
|
|
87
|
-
@threadlocked
|
|
88
90
|
def add_queue(self, queue_name: str) -> None:
|
|
89
91
|
"""add a new queue to the queue manager"""
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
92
|
+
with self._lock:
|
|
93
|
+
if queue_name in self.queues:
|
|
94
|
+
queue = self.queues[queue_name]
|
|
95
|
+
if not queue.scan_worker.is_alive():
|
|
96
|
+
logger.info(f"Restarting worker for queue {queue_name}")
|
|
97
|
+
queue.clear()
|
|
98
|
+
self.queues[queue_name] = ScanQueue(self, queue_name=queue_name)
|
|
99
|
+
self.queues[queue_name].start_worker()
|
|
100
|
+
return
|
|
101
|
+
self.queues[queue_name] = ScanQueue(self, queue_name=queue_name)
|
|
102
|
+
self.queues[queue_name].start_worker()
|
|
100
103
|
|
|
101
104
|
def _start_scan_queue_register(self) -> None:
|
|
102
105
|
self.connector.register(
|
|
@@ -125,7 +128,6 @@ class QueueManager:
|
|
|
125
128
|
parent.scan_interception(scan_mod_msg)
|
|
126
129
|
parent.send_queue_status()
|
|
127
130
|
|
|
128
|
-
@threadlocked
|
|
129
131
|
def scan_interception(self, scan_mod_msg: messages.ScanQueueModificationMessage) -> None:
|
|
130
132
|
"""handle a scan interception by compiling the requested method name and forwarding the request.
|
|
131
133
|
|
|
@@ -133,13 +135,14 @@ class QueueManager:
|
|
|
133
135
|
scan_mod_msg (messages.ScanQueueModificationMessage): ScanQueueModificationMessage
|
|
134
136
|
|
|
135
137
|
"""
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
138
|
+
with self._lock:
|
|
139
|
+
logger.info(f"Scan interception: {scan_mod_msg}")
|
|
140
|
+
action = scan_mod_msg.content["action"]
|
|
141
|
+
parameter = scan_mod_msg.content["parameter"]
|
|
142
|
+
queue = scan_mod_msg.content.get("queue", "primary")
|
|
143
|
+
getattr(self, f"set_{action}")(
|
|
144
|
+
scan_id=scan_mod_msg.content["scan_id"], queue=queue, parameter=parameter
|
|
145
|
+
)
|
|
143
146
|
|
|
144
147
|
@requires_queue
|
|
145
148
|
def set_pause(self, scan_id=None, queue="primary", parameter: dict = None) -> None:
|
|
@@ -246,19 +249,19 @@ class QueueManager:
|
|
|
246
249
|
continue
|
|
247
250
|
return history[-1]
|
|
248
251
|
|
|
249
|
-
@threadlocked
|
|
250
252
|
def send_queue_status(self) -> None:
|
|
251
253
|
"""send the current queue to redis"""
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
254
|
+
with self._lock:
|
|
255
|
+
queue_export = self.export_queue()
|
|
256
|
+
if not queue_export:
|
|
257
|
+
return
|
|
258
|
+
logger.info("New scan queue:")
|
|
259
|
+
for queue in self.describe_queue():
|
|
260
|
+
logger.info(f"\n {queue}")
|
|
261
|
+
self.connector.set_and_publish(
|
|
262
|
+
MessageEndpoints.scan_queue_status(),
|
|
263
|
+
messages.ScanQueueStatusMessage(queue=queue_export),
|
|
264
|
+
)
|
|
262
265
|
|
|
263
266
|
def describe_queue(self) -> list:
|
|
264
267
|
"""create a rich.table description of the current scan queue"""
|
|
@@ -411,46 +414,46 @@ class ScanQueue:
|
|
|
411
414
|
if updated:
|
|
412
415
|
return self.active_instruction_queue
|
|
413
416
|
|
|
414
|
-
@threadlocked
|
|
415
417
|
def _next_instruction_queue(self) -> bool:
|
|
416
418
|
"""get the next instruction queue from the queue. If no update is available, it will return False."""
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
if
|
|
430
|
-
if
|
|
431
|
-
|
|
419
|
+
with self._lock:
|
|
420
|
+
try:
|
|
421
|
+
aiq = self.active_instruction_queue
|
|
422
|
+
if (
|
|
423
|
+
aiq is not None
|
|
424
|
+
and len(self.queue) > 0
|
|
425
|
+
and self.queue[0].status != InstructionQueueStatus.PENDING
|
|
426
|
+
):
|
|
427
|
+
logger.info(f"Removing queue item {self.queue[0].describe()} from queue")
|
|
428
|
+
self.queue.popleft()
|
|
429
|
+
self.queue_manager.send_queue_status()
|
|
430
|
+
|
|
431
|
+
if self.status != ScanQueueStatus.PAUSED:
|
|
432
|
+
if len(self.queue) == 0:
|
|
433
|
+
if aiq is None:
|
|
434
|
+
time.sleep(0.1)
|
|
435
|
+
return False
|
|
436
|
+
self.active_instruction_queue = None
|
|
437
|
+
time.sleep(0.01)
|
|
432
438
|
return False
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
439
|
+
|
|
440
|
+
self.active_instruction_queue = self.queue[0]
|
|
441
|
+
self.history_queue.append(self.active_instruction_queue)
|
|
442
|
+
return True
|
|
443
|
+
|
|
444
|
+
while self.status == ScanQueueStatus.PAUSED and not self.signal_event.is_set():
|
|
445
|
+
if len(self.queue) == 0 and self.auto_reset_enabled:
|
|
446
|
+
# we don't need to pause if there is no scan enqueued
|
|
447
|
+
self.status = ScanQueueStatus.RUNNING
|
|
448
|
+
logger.info("resetting queue status to running")
|
|
449
|
+
time.sleep(0.1)
|
|
436
450
|
|
|
437
451
|
self.active_instruction_queue = self.queue[0]
|
|
438
452
|
self.history_queue.append(self.active_instruction_queue)
|
|
439
453
|
return True
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
# we don't need to pause if there is no scan enqueued
|
|
444
|
-
self.status = ScanQueueStatus.RUNNING
|
|
445
|
-
logger.info("resetting queue status to running")
|
|
446
|
-
time.sleep(0.1)
|
|
447
|
-
|
|
448
|
-
self.active_instruction_queue = self.queue[0]
|
|
449
|
-
self.history_queue.append(self.active_instruction_queue)
|
|
450
|
-
return True
|
|
451
|
-
except IndexError:
|
|
452
|
-
time.sleep(0.01)
|
|
453
|
-
return False
|
|
454
|
+
except IndexError:
|
|
455
|
+
time.sleep(0.01)
|
|
456
|
+
return False
|
|
454
457
|
|
|
455
458
|
def insert(self, msg: messages.ScanQueueMessage, position=-1, **_kwargs):
|
|
456
459
|
"""insert a new message to the queue"""
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from bec_lib import
|
|
4
|
-
from bec_lib import
|
|
5
|
-
from bec_lib import
|
|
3
|
+
from bec_lib import messages
|
|
4
|
+
from bec_lib.alarm_handler import Alarms
|
|
5
|
+
from bec_lib.bec_service import BECService
|
|
6
6
|
from bec_lib.connector import ConnectorBase
|
|
7
|
+
from bec_lib.devicemanager import DeviceManagerBase as DeviceManager
|
|
8
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
9
|
+
from bec_lib.logger import bec_logger
|
|
10
|
+
from bec_lib.service_config import ServiceConfig
|
|
7
11
|
|
|
8
12
|
from .scan_assembler import ScanAssembler
|
|
9
13
|
from .scan_guard import ScanGuard
|
|
@@ -31,7 +35,7 @@ class ScanServer(BECService):
|
|
|
31
35
|
# self._start_scan_server()
|
|
32
36
|
self._start_alarm_handler()
|
|
33
37
|
self._reset_scan_number()
|
|
34
|
-
self.status = BECStatus.RUNNING
|
|
38
|
+
self.status = messages.BECStatus.RUNNING
|
|
35
39
|
|
|
36
40
|
def _start_device_manager(self):
|
|
37
41
|
self.wait_for_service("DeviceServer")
|
|
@@ -8,8 +8,11 @@ from typing import Generator, Literal
|
|
|
8
8
|
|
|
9
9
|
import numpy as np
|
|
10
10
|
|
|
11
|
-
from bec_lib import
|
|
11
|
+
from bec_lib import messages
|
|
12
12
|
from bec_lib.connector import ConnectorBase
|
|
13
|
+
from bec_lib.device import Status
|
|
14
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
15
|
+
from bec_lib.logger import bec_logger
|
|
13
16
|
|
|
14
17
|
from .errors import DeviceMessageError, ScanAbortion
|
|
15
18
|
|
|
@@ -3,7 +3,11 @@ import threading
|
|
|
3
3
|
import time
|
|
4
4
|
import traceback
|
|
5
5
|
|
|
6
|
-
from bec_lib import
|
|
6
|
+
from bec_lib import messages
|
|
7
|
+
from bec_lib.alarm_handler import Alarms
|
|
8
|
+
from bec_lib.device import DeviceBase
|
|
9
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
10
|
+
from bec_lib.logger import bec_logger
|
|
7
11
|
|
|
8
12
|
from .device_validation import DeviceValidation
|
|
9
13
|
from .errors import DeviceMessageError, ScanAbortion
|
|
@@ -7,7 +7,9 @@ from typing import Any, Literal
|
|
|
7
7
|
|
|
8
8
|
import numpy as np
|
|
9
9
|
|
|
10
|
-
from bec_lib import DeviceManagerBase
|
|
10
|
+
from bec_lib.devicemanager import DeviceManagerBase
|
|
11
|
+
from bec_lib.endpoints import MessageEndpoints
|
|
12
|
+
from bec_lib.logger import bec_logger
|
|
11
13
|
|
|
12
14
|
from .errors import LimitError, ScanAbortion
|
|
13
15
|
from .path_optimization import PathOptimizerMixin
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
from bec_lib import ServiceConfig
|
|
2
1
|
from bec_lib.messages import BECStatus
|
|
2
|
+
from bec_lib.service_config import ServiceConfig
|
|
3
3
|
from bec_lib.tests.utils import ConnectorMock
|
|
4
4
|
from bec_server.scan_server.scan_server import ScanServer
|
|
5
5
|
from bec_server.scan_server.scan_worker import InstructionQueueStatus
|