mirror of
https://github.com/ivan-usov-org/bec.git
synced 2025-04-22 02:20:02 +02:00
fix: clean all imports from bec_lib, remove use of @threadlocked
This commit is contained in:
parent
649502e364
commit
8a017ef3d7
@ -5,9 +5,9 @@ import numpy as np # not needed but always nice to have
|
|||||||
|
|
||||||
from bec_ipython_client.main import BECIPythonClient as _BECIPythonClient
|
from bec_ipython_client.main import BECIPythonClient as _BECIPythonClient
|
||||||
from bec_ipython_client.main import main_dict as _main_dict
|
from bec_ipython_client.main import main_dict as _main_dict
|
||||||
from bec_lib import RedisConnector as _RedisConnector
|
|
||||||
from bec_lib import bec_logger as _bec_logger
|
|
||||||
from bec_lib import plugin_helper
|
from bec_lib import plugin_helper
|
||||||
|
from bec_lib.logger import bec_logger as _bec_logger
|
||||||
|
from bec_lib.redis_connector import RedisConnector as _RedisConnector
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from bec_widgets.cli.client import BECDockArea as _BECDockArea
|
from bec_widgets.cli.client import BECDockArea as _BECDockArea
|
||||||
|
@ -5,8 +5,8 @@ import time
|
|||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from bec_ipython_client.callbacks.scan_progress import LiveUpdatesScanProgress
|
from bec_ipython_client.callbacks.scan_progress import LiveUpdatesScanProgress
|
||||||
from bec_lib import bec_logger
|
|
||||||
from bec_lib.bec_errors import ScanInterruption
|
from bec_lib.bec_errors import ScanInterruption
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
from .live_table import LiveUpdatesTable
|
from .live_table import LiveUpdatesTable
|
||||||
from .move_device import LiveUpdatesReadbackProgressbar
|
from .move_device import LiveUpdatesReadbackProgressbar
|
||||||
|
@ -6,11 +6,12 @@ from typing import TYPE_CHECKING
|
|||||||
|
|
||||||
from bec_ipython_client.prettytable import PrettyTable
|
from bec_ipython_client.prettytable import PrettyTable
|
||||||
from bec_ipython_client.progressbar import ScanProgressBar
|
from bec_ipython_client.progressbar import ScanProgressBar
|
||||||
from bec_lib import bec_logger, messages
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
from .utils import LiveUpdatesBase, check_alarms
|
from .utils import LiveUpdatesBase, check_alarms
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
from bec_lib import messages
|
||||||
from bec_lib.client import BECClient
|
from bec_lib.client import BECClient
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
@ -6,7 +6,9 @@ from typing import TYPE_CHECKING
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
from bec_ipython_client.progressbar import DeviceProgressBar
|
from bec_ipython_client.progressbar import DeviceProgressBar
|
||||||
from bec_lib import DeviceManagerBase, MessageEndpoints, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.devicemanager import DeviceManagerBase
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
|
||||||
from .utils import LiveUpdatesBase, check_alarms
|
from .utils import LiveUpdatesBase, check_alarms
|
||||||
|
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
from bec_ipython_client.progressbar import ScanProgressBar
|
from bec_ipython_client.progressbar import ScanProgressBar
|
||||||
from bec_lib import MessageEndpoints, bec_logger
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
from .live_table import LiveUpdatesTable
|
from .live_table import LiveUpdatesTable
|
||||||
|
|
||||||
|
@ -7,10 +7,11 @@ import traceback
|
|||||||
from collections.abc import Callable
|
from collections.abc import Callable
|
||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from bec_lib import bec_logger, messages
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.request_items import RequestItem
|
from bec_lib.request_items import RequestItem
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
from bec_lib import messages
|
||||||
from bec_lib.client import BECClient
|
from bec_lib.client import BECClient
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
@ -12,11 +12,13 @@ from bec_ipython_client.beamline_mixin import BeamlineMixin
|
|||||||
from bec_ipython_client.bec_magics import BECMagics
|
from bec_ipython_client.bec_magics import BECMagics
|
||||||
from bec_ipython_client.callbacks.ipython_live_updates import IPythonLiveUpdates
|
from bec_ipython_client.callbacks.ipython_live_updates import IPythonLiveUpdates
|
||||||
from bec_ipython_client.signals import ScanInterruption, SigintHandler
|
from bec_ipython_client.signals import ScanInterruption, SigintHandler
|
||||||
from bec_lib import ServiceConfig, bec_logger, plugin_helper
|
from bec_lib import plugin_helper
|
||||||
from bec_lib.alarm_handler import AlarmBase
|
from bec_lib.alarm_handler import AlarmBase
|
||||||
from bec_lib.callback_handler import EventType
|
from bec_lib.callback_handler import EventType
|
||||||
from bec_lib.client import BECClient
|
from bec_lib.client import BECClient
|
||||||
from bec_lib.connector import ConnectorBase
|
from bec_lib.connector import ConnectorBase
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ import numpy as np
|
|||||||
import rich.progress
|
import rich.progress
|
||||||
from rich.text import Text
|
from rich.text import Text
|
||||||
|
|
||||||
from bec_lib import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from bec_ipython_client import BECIPythonClient
|
from bec_ipython_client import BECIPythonClient
|
||||||
from bec_lib import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
bec_logger.level = bec_logger.LOGLEVEL.SUCCESS
|
bec_logger.level = bec_logger.LOGLEVEL.SUCCESS
|
||||||
|
@ -6,7 +6,8 @@ import IPython
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_ipython_client import BECIPythonClient, main
|
from bec_ipython_client import BECIPythonClient, main
|
||||||
from bec_lib import RedisConnector, ServiceConfig
|
from bec_lib.redis_connector import RedisConnector
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
|
|
||||||
|
|
||||||
def test_bec_entry_point_globals_and_post_startup(tmpdir): # , capfd):
|
def test_bec_entry_point_globals_and_post_startup(tmpdir): # , capfd):
|
||||||
|
@ -7,7 +7,8 @@ from bec_ipython_client.callbacks.move_device import (
|
|||||||
LiveUpdatesReadbackProgressbar,
|
LiveUpdatesReadbackProgressbar,
|
||||||
ReadbackDataMixin,
|
ReadbackDataMixin,
|
||||||
)
|
)
|
||||||
from bec_lib import MessageEndpoints, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
# overwrite threads_check fixture from bec_lib,
|
# overwrite threads_check fixture from bec_lib,
|
||||||
# to have it in autouse
|
# to have it in autouse
|
||||||
|
@ -8,9 +8,11 @@ import numpy as np
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_ipython_client.callbacks.utils import ScanRequestError
|
from bec_ipython_client.callbacks.utils import ScanRequestError
|
||||||
from bec_lib import MessageEndpoints, bec_logger, configs
|
from bec_lib import configs
|
||||||
from bec_lib.alarm_handler import AlarmBase
|
from bec_lib.alarm_handler import AlarmBase
|
||||||
from bec_lib.bec_errors import ScanAbortion, ScanInterruption
|
from bec_lib.bec_errors import ScanAbortion, ScanInterruption
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
||||||
|
@ -4,8 +4,9 @@ import numpy as np
|
|||||||
import pytest
|
import pytest
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
from bec_lib import DeviceConfigError, bec_logger
|
|
||||||
from bec_lib.alarm_handler import AlarmBase
|
from bec_lib.alarm_handler import AlarmBase
|
||||||
|
from bec_lib.devicemanager import DeviceConfigError
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ The documentation is part of the BEC documentation and can be found [here](https
|
|||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from bec_lib import BECClient
|
from bec_lib.client import BECClient
|
||||||
|
|
||||||
# Create a new BECClient instance and start it
|
# Create a new BECClient instance and start it
|
||||||
bec = BECClient()
|
bec = BECClient()
|
||||||
|
@ -1,13 +1 @@
|
|||||||
from bec_lib.alarm_handler import Alarms
|
|
||||||
from bec_lib.bec_service import BECService
|
|
||||||
from bec_lib.channel_monitor import channel_monitor_launch, log_monitor_launch
|
|
||||||
from bec_lib.client import BECClient
|
|
||||||
from bec_lib.config_helper import ConfigHelper
|
|
||||||
from bec_lib.device import DeviceBase, DeviceStatus, Status
|
|
||||||
from bec_lib.devicemanager import DeviceConfigError, DeviceContainer, DeviceManagerBase
|
|
||||||
from bec_lib.endpoints import MessageEndpoints
|
|
||||||
from bec_lib.logger import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.messages import BECStatus
|
|
||||||
from bec_lib.redis_connector import RedisConnector
|
|
||||||
from bec_lib.service_config import ServiceConfig
|
|
||||||
from bec_lib.utils import threadlocked
|
|
||||||
|
@ -15,15 +15,15 @@ from typing import TYPE_CHECKING
|
|||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
import bec_lib
|
import bec_lib
|
||||||
from bec_lib import messages
|
|
||||||
from bec_lib.bec_errors import DeviceConfigError, ServiceConfigError
|
from bec_lib.bec_errors import DeviceConfigError, ServiceConfigError
|
||||||
from bec_lib.bec_yaml_loader import yaml_load
|
from bec_lib.bec_yaml_loader import yaml_load
|
||||||
from bec_lib.endpoints import MessageEndpoints
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_lib.file_utils import DeviceConfigWriter
|
from bec_lib.file_utils import DeviceConfigWriter
|
||||||
from bec_lib.logger import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.messages import DeviceConfigMessage, RequestResponseMessage
|
from bec_lib.messages import DeviceConfigMessage
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
from bec_lib.messages import RequestResponseMessage, ServiceResponseMessage
|
||||||
from bec_lib.redis_connector import RedisConnector
|
from bec_lib.redis_connector import RedisConnector
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
@ -166,7 +166,7 @@ class ConfigHelper:
|
|||||||
# wait for the device server and scan server to acknowledge the config change
|
# wait for the device server and scan server to acknowledge the config change
|
||||||
self.wait_for_service_response(RID)
|
self.wait_for_service_response(RID)
|
||||||
|
|
||||||
def wait_for_service_response(self, RID: str, timeout=10) -> messages.ServiceResponseMessage:
|
def wait_for_service_response(self, RID: str, timeout=10) -> ServiceResponseMessage:
|
||||||
"""
|
"""
|
||||||
wait for service response
|
wait for service response
|
||||||
|
|
||||||
|
@ -12,16 +12,16 @@ from rich.console import Console
|
|||||||
from rich.table import Table
|
from rich.table import Table
|
||||||
from typeguard import typechecked
|
from typeguard import typechecked
|
||||||
|
|
||||||
from bec_lib import messages
|
|
||||||
from bec_lib.bec_errors import DeviceConfigError
|
from bec_lib.bec_errors import DeviceConfigError
|
||||||
from bec_lib.config_helper import ConfigHelper
|
from bec_lib.config_helper import ConfigHelper
|
||||||
from bec_lib.device import ComputedSignal, Device, DeviceBase, Positioner, ReadoutPriority, Signal
|
from bec_lib.device import ComputedSignal, Device, DeviceBase, Positioner, ReadoutPriority, Signal
|
||||||
from bec_lib.endpoints import MessageEndpoints
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_lib.logger import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.messages import BECStatus, DeviceConfigMessage, DeviceInfoMessage
|
from bec_lib.messages import BECStatus, ServiceResponseMessage
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from bec_lib import BECService
|
from bec_lib.bec_service import BECService
|
||||||
|
from bec_lib.messages import DeviceConfigMessage, DeviceInfoMessage
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
||||||
@ -470,7 +470,7 @@ class DeviceManagerBase:
|
|||||||
return
|
return
|
||||||
self.connector.lpush(
|
self.connector.lpush(
|
||||||
MessageEndpoints.service_response(msg.metadata["RID"]),
|
MessageEndpoints.service_response(msg.metadata["RID"]),
|
||||||
messages.ServiceResponseMessage(
|
ServiceResponseMessage(
|
||||||
# pylint: disable=no-member
|
# pylint: disable=no-member
|
||||||
response={"accepted": True, "service": self._service._service_name}
|
response={"accepted": True, "service": self._service._service_name}
|
||||||
),
|
),
|
||||||
@ -545,7 +545,7 @@ class DeviceManagerBase:
|
|||||||
return []
|
return []
|
||||||
return devices.content["resource"]
|
return devices.content["resource"]
|
||||||
|
|
||||||
def _add_device(self, dev: dict, msg: messages.DeviceInfoMessage):
|
def _add_device(self, dev: dict, msg: DeviceInfoMessage):
|
||||||
name = msg.content["device"]
|
name = msg.content["device"]
|
||||||
info = msg.content["info"]
|
info = msg.content["info"]
|
||||||
|
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
Endpoints for communication within the BEC.
|
Endpoints for communication within the BEC.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
# pylint: disable=too-many-public-methods
|
# pylint: disable=too-many-public-methods
|
||||||
import enum
|
import enum
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
import enum
|
import enum
|
||||||
import time
|
import time
|
||||||
import warnings
|
import warnings
|
||||||
|
@ -12,7 +12,6 @@ from typing import TYPE_CHECKING
|
|||||||
from bec_lib import messages
|
from bec_lib import messages
|
||||||
from bec_lib.callback_handler import CallbackHandler
|
from bec_lib.callback_handler import CallbackHandler
|
||||||
from bec_lib.logger import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.utils import threadlocked
|
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
||||||
@ -134,54 +133,54 @@ class RequestStorage:
|
|||||||
self._lock = threading.RLock()
|
self._lock = threading.RLock()
|
||||||
self.scan_manager = scan_manager
|
self.scan_manager = scan_manager
|
||||||
|
|
||||||
@threadlocked
|
|
||||||
def find_request_by_ID(self, requestID: str) -> RequestItem | None:
|
def find_request_by_ID(self, requestID: str) -> RequestItem | None:
|
||||||
"""find a request item based on its requestID"""
|
"""find a request item based on its requestID"""
|
||||||
for request in self.storage:
|
with self._lock:
|
||||||
if request.requestID == requestID:
|
for request in self.storage:
|
||||||
return request
|
if request.requestID == requestID:
|
||||||
return None
|
return request
|
||||||
|
return None
|
||||||
|
|
||||||
@threadlocked
|
|
||||||
def update_with_response(self, response_msg: messages.RequestResponseMessage) -> None:
|
def update_with_response(self, response_msg: messages.RequestResponseMessage) -> None:
|
||||||
"""create or update request item based on a new RequestResponseMessage"""
|
"""create or update request item based on a new RequestResponseMessage"""
|
||||||
request_item = self.find_request_by_ID(response_msg.metadata.get("RID"))
|
with self._lock:
|
||||||
if request_item:
|
request_item = self.find_request_by_ID(response_msg.metadata.get("RID"))
|
||||||
request_item.update_with_response(response_msg)
|
if request_item:
|
||||||
logger.debug("Scan queue request exists. Updating with response.")
|
request_item.update_with_response(response_msg)
|
||||||
return
|
logger.debug("Scan queue request exists. Updating with response.")
|
||||||
|
return
|
||||||
|
|
||||||
# it could be that the response arrived before the request
|
# it could be that the response arrived before the request
|
||||||
self.storage.append(RequestItem.from_response(self.scan_manager, response_msg))
|
self.storage.append(RequestItem.from_response(self.scan_manager, response_msg))
|
||||||
logger.debug("Scan queue request does not exist. Creating from response.")
|
logger.debug("Scan queue request does not exist. Creating from response.")
|
||||||
|
|
||||||
@threadlocked
|
|
||||||
def update_with_request(self, request_msg: messages.ScanQueueMessage) -> None:
|
def update_with_request(self, request_msg: messages.ScanQueueMessage) -> None:
|
||||||
"""create or update request item based on a new ScanQueueMessage (i.e. request message)"""
|
"""create or update request item based on a new ScanQueueMessage (i.e. request message)"""
|
||||||
if not request_msg.metadata:
|
with self._lock:
|
||||||
|
if not request_msg.metadata:
|
||||||
|
return
|
||||||
|
|
||||||
|
if not request_msg.metadata.get("RID"):
|
||||||
|
return
|
||||||
|
|
||||||
|
request_item = self.find_request_by_ID(request_msg.metadata.get("RID"))
|
||||||
|
if request_item:
|
||||||
|
request_item.update_with_request(request_msg)
|
||||||
|
return
|
||||||
|
|
||||||
|
self.storage.append(RequestItem.from_request(self.scan_manager, request_msg))
|
||||||
return
|
return
|
||||||
|
|
||||||
if not request_msg.metadata.get("RID"):
|
|
||||||
return
|
|
||||||
|
|
||||||
request_item = self.find_request_by_ID(request_msg.metadata.get("RID"))
|
|
||||||
if request_item:
|
|
||||||
request_item.update_with_request(request_msg)
|
|
||||||
return
|
|
||||||
|
|
||||||
self.storage.append(RequestItem.from_request(self.scan_manager, request_msg))
|
|
||||||
return
|
|
||||||
|
|
||||||
@threadlocked
|
|
||||||
def update_with_client_message(self, client_message: messages.ClientInfoMessage) -> None:
|
def update_with_client_message(self, client_message: messages.ClientInfoMessage) -> None:
|
||||||
"""Update the request item with a new ClientInfoMessage"""
|
"""Update the request item with a new ClientInfoMessage"""
|
||||||
if not client_message.RID:
|
with self._lock:
|
||||||
return
|
if not client_message.RID:
|
||||||
|
return
|
||||||
|
|
||||||
request_item = self.find_request_by_ID(client_message.RID)
|
request_item = self.find_request_by_ID(client_message.RID)
|
||||||
if request_item:
|
if request_item:
|
||||||
request_item.update_with_client_message(client_message)
|
request_item.update_with_client_message(client_message)
|
||||||
return
|
return
|
||||||
|
|
||||||
self.storage.append(RequestItem.from_client_message(self.scan_manager, client_message))
|
self.storage.append(RequestItem.from_client_message(self.scan_manager, client_message))
|
||||||
return
|
return
|
||||||
|
@ -10,7 +10,8 @@ from typing import TYPE_CHECKING
|
|||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
import bec_lib
|
import bec_lib
|
||||||
from bec_lib import BECClient, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.client import BECClient
|
||||||
from bec_lib.connector import ConnectorBase
|
from bec_lib.connector import ConnectorBase
|
||||||
from bec_lib.devicemanager import DeviceManagerBase
|
from bec_lib.devicemanager import DeviceManagerBase
|
||||||
from bec_lib.endpoints import EndpointInfo, MessageEndpoints
|
from bec_lib.endpoints import EndpointInfo, MessageEndpoints
|
||||||
|
@ -49,8 +49,8 @@ dev = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[project.scripts]
|
[project.scripts]
|
||||||
bec-channel-monitor = "bec_lib:channel_monitor_launch"
|
bec-channel-monitor = "bec_lib.channel_monitor:channel_monitor_launch"
|
||||||
bec-log-monitor = "bec_lib:log_monitor_launch"
|
bec-log-monitor = "bec_lib.channel_monitor:log_monitor_launch"
|
||||||
|
|
||||||
[project.entry-points.pytest11]
|
[project.entry-points.pytest11]
|
||||||
bec_lib_fixtures = "bec_lib.tests.fixtures"
|
bec_lib_fixtures = "bec_lib.tests.fixtures"
|
||||||
|
@ -6,9 +6,10 @@ from unittest import mock
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
import bec_lib
|
import bec_lib
|
||||||
from bec_lib import bec_logger, messages
|
from bec_lib import messages
|
||||||
from bec_lib.bec_service import BECService
|
from bec_lib.bec_service import BECService
|
||||||
from bec_lib.endpoints import MessageEndpoints
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.messages import BECStatus
|
from bec_lib.messages import BECStatus
|
||||||
from bec_lib.service_config import ServiceConfig
|
from bec_lib.service_config import ServiceConfig
|
||||||
|
|
||||||
|
@ -3,10 +3,11 @@ from unittest import mock
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, messages
|
from bec_lib import messages
|
||||||
from bec_lib.dap_plugin_objects import DAPPluginObject, LmfitService1D
|
from bec_lib.dap_plugin_objects import DAPPluginObject, LmfitService1D
|
||||||
from bec_lib.dap_plugins import DAPPlugins
|
from bec_lib.dap_plugins import DAPPlugins
|
||||||
from bec_lib.device import DeviceBase
|
from bec_lib.device import DeviceBase
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_lib.scan_items import ScanItem
|
from bec_lib.scan_items import ScanItem
|
||||||
from bec_lib.scan_report import ScanReport
|
from bec_lib.scan_report import ScanReport
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ from bec_lib import plugin_helper
|
|||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"class_spec, out_name",
|
"class_spec, out_name",
|
||||||
[("bec_lib.messages.BECMessage", "BECMessage"), ("bec_lib.BECStatus", "BECStatus")],
|
[("bec_lib.messages.BECMessage", "BECMessage"), ("bec_lib.messages.BECStatus", "BECStatus")],
|
||||||
)
|
)
|
||||||
def test_get_plugin_class(class_spec, out_name):
|
def test_get_plugin_class(class_spec, out_name):
|
||||||
cls = plugin_helper.get_plugin_class(class_spec, [bec_lib])
|
cls = plugin_helper.get_plugin_class(class_spec, [bec_lib])
|
||||||
|
@ -2,7 +2,8 @@ from unittest import mock
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_lib.scan_manager import ScanManager
|
from bec_lib.scan_manager import ScanManager
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ While command-line arguments have to be set in the pre-startup script, the
|
|||||||
post-startup script can be used to load beamline specific information and
|
post-startup script can be used to load beamline specific information and
|
||||||
to setup the prompts.
|
to setup the prompts.
|
||||||
|
|
||||||
from bec_lib import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
||||||
|
@ -25,7 +25,9 @@ but they are executed in a specific order:
|
|||||||
|
|
||||||
# import numpy as np
|
# import numpy as np
|
||||||
|
|
||||||
# from bec_lib import MessageEndpoints, bec_logger, messages
|
# from bec_lib.endpoints import MessageEndpoints
|
||||||
|
# from bec_lib.logger import bec_logger
|
||||||
|
# from bec_lib import messages
|
||||||
# from bec_server.scan_server.errors import ScanAbortion
|
# from bec_server.scan_server.errors import ScanAbortion
|
||||||
# from bec_server.scan_server.scans import FlyScanBase, RequestBase, ScanArgType, ScanBase
|
# from bec_server.scan_server.scans import FlyScanBase, RequestBase, ScanArgType, ScanBase
|
||||||
|
|
||||||
|
@ -5,7 +5,9 @@ import argparse
|
|||||||
import threading
|
import threading
|
||||||
|
|
||||||
import bec_server.data_processing as data_processing
|
import bec_server.data_processing as data_processing
|
||||||
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
|
from bec_lib.redis_connector import RedisConnector
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
from bec_server.data_processing.lmfit1d_service import LmfitService1D
|
from bec_server.data_processing.lmfit1d_service import LmfitService1D
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
from bec_lib import BECClient, ServiceConfig, bec_logger
|
from bec_lib.client import BECClient
|
||||||
from bec_lib.connector import ConnectorBase
|
from bec_lib.connector import ConnectorBase
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
|
|
||||||
from .dap_service_manager import DAPServiceManager
|
from .dap_service_manager import DAPServiceManager
|
||||||
|
|
||||||
|
@ -4,11 +4,11 @@ import abc
|
|||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
# import numpy as np
|
# import numpy as np
|
||||||
from bec_lib import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.signature_serializer import signature_to_dict
|
from bec_lib.signature_serializer import signature_to_dict
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from bec_lib import BECClient
|
from bec_lib.client import BECClient
|
||||||
|
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from bec_lib import BECClient, MessageEndpoints, bec_logger, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.client import BECClient
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.redis_connector import MessageObject
|
from bec_lib.redis_connector import MessageObject
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
@ -8,8 +8,11 @@ from typing import TYPE_CHECKING
|
|||||||
import lmfit
|
import lmfit
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
from bec_lib import DeviceBase, MessageEndpoints, bec_logger, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.device import DeviceBase
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_lib.lmfit_serializer import deserialize_param_object, serialize_lmfit_params
|
from bec_lib.lmfit_serializer import deserialize_param_object, serialize_lmfit_params
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.serialization import MsgpackSerialization
|
from bec_lib.serialization import MsgpackSerialization
|
||||||
from bec_server.data_processing.dap_service import DAPError, DAPServiceBase
|
from bec_server.data_processing.dap_service import DAPError, DAPServiceBase
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from bec_lib import DeviceManagerBase
|
from bec_lib.devicemanager import DeviceManagerBase
|
||||||
|
|
||||||
from . import devices
|
from . import devices
|
||||||
from .cli.launch import main
|
from .cli.launch import main
|
||||||
|
@ -16,7 +16,9 @@ for entry_point in entry_points:
|
|||||||
import argparse
|
import argparse
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
|
from bec_lib.redis_connector import RedisConnector
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
from bec_server import device_server
|
from bec_server import device_server
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
@ -8,9 +8,13 @@ import ophyd
|
|||||||
from ophyd import Kind, OphydObject, Staged
|
from ophyd import Kind, OphydObject, Staged
|
||||||
from ophyd.utils import errors as ophyd_errors
|
from ophyd.utils import errors as ophyd_errors
|
||||||
|
|
||||||
from bec_lib import Alarms, BECService, MessageEndpoints, bec_logger, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.alarm_handler import Alarms
|
||||||
|
from bec_lib.bec_service import BECService
|
||||||
from bec_lib.connector import ConnectorBase
|
from bec_lib.connector import ConnectorBase
|
||||||
from bec_lib.device import OnFailure
|
from bec_lib.device import OnFailure
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.messages import BECStatus
|
from bec_lib.messages import BECStatus
|
||||||
from bec_server.device_server.devices.devicemanager import DeviceManagerDS
|
from bec_server.device_server.devices.devicemanager import DeviceManagerDS
|
||||||
from bec_server.device_server.rpc_mixin import RPCMixin
|
from bec_server.device_server.rpc_mixin import RPCMixin
|
||||||
|
@ -4,7 +4,10 @@ import copy
|
|||||||
import traceback
|
import traceback
|
||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from bec_lib import DeviceConfigError, MessageEndpoints, bec_logger, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.devicemanager import DeviceConfigError
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from devicemanager import DeviceManagerDS
|
from devicemanager import DeviceManagerDS
|
||||||
|
@ -18,16 +18,13 @@ from ophyd.ophydobj import OphydObject
|
|||||||
from ophyd.signal import EpicsSignalBase
|
from ophyd.signal import EpicsSignalBase
|
||||||
from typeguard import typechecked
|
from typeguard import typechecked
|
||||||
|
|
||||||
from bec_lib import (
|
from bec_lib import messages, plugin_helper
|
||||||
BECService,
|
from bec_lib.bec_errors import DeviceConfigError
|
||||||
DeviceBase,
|
from bec_lib.bec_service import BECService
|
||||||
DeviceConfigError,
|
from bec_lib.device import DeviceBase
|
||||||
DeviceManagerBase,
|
from bec_lib.devicemanager import DeviceManagerBase
|
||||||
MessageEndpoints,
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
bec_logger,
|
from bec_lib.logger import bec_logger
|
||||||
messages,
|
|
||||||
plugin_helper,
|
|
||||||
)
|
|
||||||
from bec_server.device_server.devices.config_update_handler import ConfigUpdateHandler
|
from bec_server.device_server.devices.config_update_handler import ConfigUpdateHandler
|
||||||
from bec_server.device_server.devices.device_serializer import get_device_info
|
from bec_server.device_server.devices.device_serializer import get_device_info
|
||||||
|
|
||||||
|
@ -5,7 +5,10 @@ from typing import Any
|
|||||||
|
|
||||||
import ophyd
|
import ophyd
|
||||||
|
|
||||||
from bec_lib import Alarms, MessageEndpoints, bec_logger, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.alarm_handler import Alarms
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
from bec_server.device_server.devices import is_serializable, rgetattr
|
from bec_server.device_server.devices import is_serializable, rgetattr
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
@ -4,7 +4,9 @@ import argparse
|
|||||||
import os
|
import os
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
|
from bec_lib.redis_connector import RedisConnector
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
from bec_server import file_writer
|
from bec_server import file_writer
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
@ -3,7 +3,7 @@ from __future__ import annotations
|
|||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from bec_lib import DeviceManagerBase
|
from bec_lib.devicemanager import DeviceManagerBase
|
||||||
from bec_server.file_writer.file_writer import HDF5Storage
|
from bec_server.file_writer.file_writer import HDF5Storage
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,7 +9,9 @@ import typing
|
|||||||
|
|
||||||
import h5py
|
import h5py
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, bec_logger, messages, plugin_helper
|
from bec_lib import messages, plugin_helper
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
from .default_writer import NeXus_format as default_NeXus_format
|
from .default_writer import NeXus_format as default_NeXus_format
|
||||||
from .merged_dicts import merge_dicts
|
from .merged_dicts import merge_dicts
|
||||||
|
@ -3,19 +3,16 @@ from __future__ import annotations
|
|||||||
import threading
|
import threading
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
from bec_lib import (
|
from bec_lib import messages
|
||||||
BECService,
|
|
||||||
DeviceManagerBase,
|
|
||||||
MessageEndpoints,
|
|
||||||
ServiceConfig,
|
|
||||||
bec_logger,
|
|
||||||
messages,
|
|
||||||
threadlocked,
|
|
||||||
)
|
|
||||||
from bec_lib.alarm_handler import Alarms
|
from bec_lib.alarm_handler import Alarms
|
||||||
from bec_lib.async_data import AsyncDataHandler
|
from bec_lib.async_data import AsyncDataHandler
|
||||||
|
from bec_lib.bec_service import BECService
|
||||||
|
from bec_lib.devicemanager import DeviceManagerBase
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_lib.file_utils import FileWriter
|
from bec_lib.file_utils import FileWriter
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.redis_connector import MessageObject, RedisConnector
|
from bec_lib.redis_connector import MessageObject, RedisConnector
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
from bec_server.file_writer.file_writer import NexusFileWriter
|
from bec_server.file_writer.file_writer import NexusFileWriter
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
@ -254,7 +251,6 @@ class FileWriterManager(BECService):
|
|||||||
msgs
|
msgs
|
||||||
)
|
)
|
||||||
|
|
||||||
@threadlocked
|
|
||||||
def check_storage_status(self, scan_id: str) -> None:
|
def check_storage_status(self, scan_id: str) -> None:
|
||||||
"""
|
"""
|
||||||
Check if the scan storage is ready to be written to file and write it if it is.
|
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):
|
|||||||
Args:
|
Args:
|
||||||
scan_id (str): Scan ID
|
scan_id (str): Scan ID
|
||||||
"""
|
"""
|
||||||
if not self.scan_storage.get(scan_id):
|
with self._lock:
|
||||||
return
|
if not self.scan_storage.get(scan_id):
|
||||||
self.update_baseline_reading(scan_id)
|
return
|
||||||
self.update_file_references(scan_id)
|
self.update_baseline_reading(scan_id)
|
||||||
if self.scan_storage[scan_id].ready_to_write():
|
self.update_file_references(scan_id)
|
||||||
self.update_async_data(scan_id)
|
if self.scan_storage[scan_id].ready_to_write():
|
||||||
self.write_file(scan_id)
|
self.update_async_data(scan_id)
|
||||||
|
self.write_file(scan_id)
|
||||||
|
|
||||||
def write_file(self, scan_id: str) -> None:
|
def write_file(self, scan_id: str) -> None:
|
||||||
"""
|
"""
|
||||||
|
@ -5,7 +5,7 @@ from typing import TYPE_CHECKING, Any
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from bec_lib import DeviceManagerBase
|
from bec_lib.devicemanager import DeviceManagerBase
|
||||||
from bec_server.file_writer.file_writer import HDF5Storage
|
from bec_server.file_writer.file_writer import HDF5Storage
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,7 +2,9 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, bec_logger, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
from .emitter import EmitterBase
|
from .emitter import EmitterBase
|
||||||
|
|
||||||
|
@ -6,7 +6,8 @@ from typing import TYPE_CHECKING
|
|||||||
|
|
||||||
import msgpack
|
import msgpack
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, bec_logger
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
from .emitter import EmitterBase
|
from .emitter import EmitterBase
|
||||||
|
|
||||||
|
@ -4,7 +4,9 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
|
from bec_lib.redis_connector import RedisConnector
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
from bec_server import scan_bundler
|
from bec_server import scan_bundler
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
@ -5,8 +5,12 @@ import traceback
|
|||||||
from collections.abc import Callable
|
from collections.abc import Callable
|
||||||
from concurrent.futures import ThreadPoolExecutor
|
from concurrent.futures import ThreadPoolExecutor
|
||||||
|
|
||||||
from bec_lib import BECService, BECStatus, DeviceManagerBase, MessageEndpoints, bec_logger, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.bec_service import BECService
|
||||||
from bec_lib.connector import ConnectorBase
|
from bec_lib.connector import ConnectorBase
|
||||||
|
from bec_lib.devicemanager import DeviceManagerBase
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
from .bec_emitter import BECEmitter
|
from .bec_emitter import BECEmitter
|
||||||
from .bluesky_emitter import BlueskyEmitter
|
from .bluesky_emitter import BlueskyEmitter
|
||||||
@ -52,7 +56,7 @@ class ScanBundler(BECService):
|
|||||||
self._lock = threading.Lock()
|
self._lock = threading.Lock()
|
||||||
self._emitter = []
|
self._emitter = []
|
||||||
self._initialize_emitters()
|
self._initialize_emitters()
|
||||||
self.status = BECStatus.RUNNING
|
self.status = messages.BECStatus.RUNNING
|
||||||
|
|
||||||
def _initialize_emitters(self):
|
def _initialize_emitters(self):
|
||||||
self._emitter = [BECEmitter(self), BlueskyEmitter(self)]
|
self._emitter = [BECEmitter(self), BlueskyEmitter(self)]
|
||||||
|
@ -4,7 +4,9 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
|
from bec_lib.redis_connector import RedisConnector
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
from bec_server import scan_server
|
from bec_server import scan_server
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
from collections.abc import Callable
|
from collections.abc import Callable
|
||||||
|
|
||||||
from bec_lib import DeviceStatus, MessageEndpoints, bec_logger, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.device import DeviceStatus
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
from bec_lib import bec_logger, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
from .errors import ScanAbortion
|
from .errors import ScanAbortion
|
||||||
from .scans import RequestBase, unpack_scan_args
|
from .scans import RequestBase, unpack_scan_args
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, bec_logger, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
import inspect
|
import inspect
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, bec_logger, plugin_helper
|
from bec_lib import plugin_helper
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.messages import AvailableResourceMessage
|
from bec_lib.messages import AvailableResourceMessage
|
||||||
from bec_lib.signature_serializer import signature_to_dict
|
from bec_lib.signature_serializer import signature_to_dict
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
from bec_lib import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
from bec_server.scan_server.scans import ScanArgType, ScanBase, SyncFlyScanBase
|
from bec_server.scan_server.scans import ScanArgType, ScanBase, SyncFlyScanBase
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
@ -11,7 +11,10 @@ from enum import Enum
|
|||||||
from rich.console import Console
|
from rich.console import Console
|
||||||
from rich.table import Table
|
from rich.table import Table
|
||||||
|
|
||||||
from bec_lib import Alarms, MessageEndpoints, bec_logger, messages, threadlocked
|
from bec_lib import messages
|
||||||
|
from bec_lib.alarm_handler import Alarms
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
from .errors import LimitError, ScanAbortion
|
from .errors import LimitError, ScanAbortion
|
||||||
from .scan_assembler import ScanAssembler
|
from .scan_assembler import ScanAssembler
|
||||||
@ -84,19 +87,19 @@ class QueueManager:
|
|||||||
metadata=msg.metadata,
|
metadata=msg.metadata,
|
||||||
)
|
)
|
||||||
|
|
||||||
@threadlocked
|
|
||||||
def add_queue(self, queue_name: str) -> None:
|
def add_queue(self, queue_name: str) -> None:
|
||||||
"""add a new queue to the queue manager"""
|
"""add a new queue to the queue manager"""
|
||||||
if queue_name in self.queues:
|
with self._lock:
|
||||||
queue = self.queues[queue_name]
|
if queue_name in self.queues:
|
||||||
if not queue.scan_worker.is_alive():
|
queue = self.queues[queue_name]
|
||||||
logger.info(f"Restarting worker for queue {queue_name}")
|
if not queue.scan_worker.is_alive():
|
||||||
queue.clear()
|
logger.info(f"Restarting worker for queue {queue_name}")
|
||||||
self.queues[queue_name] = ScanQueue(self, queue_name=queue_name)
|
queue.clear()
|
||||||
self.queues[queue_name].start_worker()
|
self.queues[queue_name] = ScanQueue(self, queue_name=queue_name)
|
||||||
return
|
self.queues[queue_name].start_worker()
|
||||||
self.queues[queue_name] = ScanQueue(self, queue_name=queue_name)
|
return
|
||||||
self.queues[queue_name].start_worker()
|
self.queues[queue_name] = ScanQueue(self, queue_name=queue_name)
|
||||||
|
self.queues[queue_name].start_worker()
|
||||||
|
|
||||||
def _start_scan_queue_register(self) -> None:
|
def _start_scan_queue_register(self) -> None:
|
||||||
self.connector.register(
|
self.connector.register(
|
||||||
@ -125,7 +128,6 @@ class QueueManager:
|
|||||||
parent.scan_interception(scan_mod_msg)
|
parent.scan_interception(scan_mod_msg)
|
||||||
parent.send_queue_status()
|
parent.send_queue_status()
|
||||||
|
|
||||||
@threadlocked
|
|
||||||
def scan_interception(self, scan_mod_msg: messages.ScanQueueModificationMessage) -> None:
|
def scan_interception(self, scan_mod_msg: messages.ScanQueueModificationMessage) -> None:
|
||||||
"""handle a scan interception by compiling the requested method name and forwarding the request.
|
"""handle a scan interception by compiling the requested method name and forwarding the request.
|
||||||
|
|
||||||
@ -133,13 +135,14 @@ class QueueManager:
|
|||||||
scan_mod_msg (messages.ScanQueueModificationMessage): ScanQueueModificationMessage
|
scan_mod_msg (messages.ScanQueueModificationMessage): ScanQueueModificationMessage
|
||||||
|
|
||||||
"""
|
"""
|
||||||
logger.info(f"Scan interception: {scan_mod_msg}")
|
with self._lock:
|
||||||
action = scan_mod_msg.content["action"]
|
logger.info(f"Scan interception: {scan_mod_msg}")
|
||||||
parameter = scan_mod_msg.content["parameter"]
|
action = scan_mod_msg.content["action"]
|
||||||
queue = scan_mod_msg.content.get("queue", "primary")
|
parameter = scan_mod_msg.content["parameter"]
|
||||||
getattr(self, f"set_{action}")(
|
queue = scan_mod_msg.content.get("queue", "primary")
|
||||||
scan_id=scan_mod_msg.content["scan_id"], queue=queue, parameter=parameter
|
getattr(self, f"set_{action}")(
|
||||||
)
|
scan_id=scan_mod_msg.content["scan_id"], queue=queue, parameter=parameter
|
||||||
|
)
|
||||||
|
|
||||||
@requires_queue
|
@requires_queue
|
||||||
def set_pause(self, scan_id=None, queue="primary", parameter: dict = None) -> None:
|
def set_pause(self, scan_id=None, queue="primary", parameter: dict = None) -> None:
|
||||||
@ -246,19 +249,19 @@ class QueueManager:
|
|||||||
continue
|
continue
|
||||||
return history[-1]
|
return history[-1]
|
||||||
|
|
||||||
@threadlocked
|
|
||||||
def send_queue_status(self) -> None:
|
def send_queue_status(self) -> None:
|
||||||
"""send the current queue to redis"""
|
"""send the current queue to redis"""
|
||||||
queue_export = self.export_queue()
|
with self._lock:
|
||||||
if not queue_export:
|
queue_export = self.export_queue()
|
||||||
return
|
if not queue_export:
|
||||||
logger.info("New scan queue:")
|
return
|
||||||
for queue in self.describe_queue():
|
logger.info("New scan queue:")
|
||||||
logger.info(f"\n {queue}")
|
for queue in self.describe_queue():
|
||||||
self.connector.set_and_publish(
|
logger.info(f"\n {queue}")
|
||||||
MessageEndpoints.scan_queue_status(),
|
self.connector.set_and_publish(
|
||||||
messages.ScanQueueStatusMessage(queue=queue_export),
|
MessageEndpoints.scan_queue_status(),
|
||||||
)
|
messages.ScanQueueStatusMessage(queue=queue_export),
|
||||||
|
)
|
||||||
|
|
||||||
def describe_queue(self) -> list:
|
def describe_queue(self) -> list:
|
||||||
"""create a rich.table description of the current scan queue"""
|
"""create a rich.table description of the current scan queue"""
|
||||||
@ -411,46 +414,46 @@ class ScanQueue:
|
|||||||
if updated:
|
if updated:
|
||||||
return self.active_instruction_queue
|
return self.active_instruction_queue
|
||||||
|
|
||||||
@threadlocked
|
|
||||||
def _next_instruction_queue(self) -> bool:
|
def _next_instruction_queue(self) -> bool:
|
||||||
"""get the next instruction queue from the queue. If no update is available, it will return False."""
|
"""get the next instruction queue from the queue. If no update is available, it will return False."""
|
||||||
try:
|
with self._lock:
|
||||||
aiq = self.active_instruction_queue
|
try:
|
||||||
if (
|
aiq = self.active_instruction_queue
|
||||||
aiq is not None
|
if (
|
||||||
and len(self.queue) > 0
|
aiq is not None
|
||||||
and self.queue[0].status != InstructionQueueStatus.PENDING
|
and len(self.queue) > 0
|
||||||
):
|
and self.queue[0].status != InstructionQueueStatus.PENDING
|
||||||
logger.info(f"Removing queue item {self.queue[0].describe()} from queue")
|
):
|
||||||
self.queue.popleft()
|
logger.info(f"Removing queue item {self.queue[0].describe()} from queue")
|
||||||
self.queue_manager.send_queue_status()
|
self.queue.popleft()
|
||||||
|
self.queue_manager.send_queue_status()
|
||||||
|
|
||||||
if self.status != ScanQueueStatus.PAUSED:
|
if self.status != ScanQueueStatus.PAUSED:
|
||||||
if len(self.queue) == 0:
|
if len(self.queue) == 0:
|
||||||
if aiq is None:
|
if aiq is None:
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
|
return False
|
||||||
|
self.active_instruction_queue = None
|
||||||
|
time.sleep(0.01)
|
||||||
return False
|
return False
|
||||||
self.active_instruction_queue = None
|
|
||||||
time.sleep(0.01)
|
self.active_instruction_queue = self.queue[0]
|
||||||
return False
|
self.history_queue.append(self.active_instruction_queue)
|
||||||
|
return True
|
||||||
|
|
||||||
|
while self.status == ScanQueueStatus.PAUSED and not self.signal_event.is_set():
|
||||||
|
if len(self.queue) == 0 and self.auto_reset_enabled:
|
||||||
|
# we don't need to pause if there is no scan enqueued
|
||||||
|
self.status = ScanQueueStatus.RUNNING
|
||||||
|
logger.info("resetting queue status to running")
|
||||||
|
time.sleep(0.1)
|
||||||
|
|
||||||
self.active_instruction_queue = self.queue[0]
|
self.active_instruction_queue = self.queue[0]
|
||||||
self.history_queue.append(self.active_instruction_queue)
|
self.history_queue.append(self.active_instruction_queue)
|
||||||
return True
|
return True
|
||||||
|
except IndexError:
|
||||||
while self.status == ScanQueueStatus.PAUSED and not self.signal_event.is_set():
|
time.sleep(0.01)
|
||||||
if len(self.queue) == 0 and self.auto_reset_enabled:
|
return False
|
||||||
# we don't need to pause if there is no scan enqueued
|
|
||||||
self.status = ScanQueueStatus.RUNNING
|
|
||||||
logger.info("resetting queue status to running")
|
|
||||||
time.sleep(0.1)
|
|
||||||
|
|
||||||
self.active_instruction_queue = self.queue[0]
|
|
||||||
self.history_queue.append(self.active_instruction_queue)
|
|
||||||
return True
|
|
||||||
except IndexError:
|
|
||||||
time.sleep(0.01)
|
|
||||||
return False
|
|
||||||
|
|
||||||
def insert(self, msg: messages.ScanQueueMessage, position=-1, **_kwargs):
|
def insert(self, msg: messages.ScanQueueMessage, position=-1, **_kwargs):
|
||||||
"""insert a new message to the queue"""
|
"""insert a new message to the queue"""
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from bec_lib import Alarms, BECService, BECStatus
|
from bec_lib import messages
|
||||||
from bec_lib import DeviceManagerBase as DeviceManager
|
from bec_lib.alarm_handler import Alarms
|
||||||
from bec_lib import MessageEndpoints, ServiceConfig, bec_logger, messages
|
from bec_lib.bec_service import BECService
|
||||||
from bec_lib.connector import ConnectorBase
|
from bec_lib.connector import ConnectorBase
|
||||||
|
from bec_lib.devicemanager import DeviceManagerBase as DeviceManager
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
|
|
||||||
from .scan_assembler import ScanAssembler
|
from .scan_assembler import ScanAssembler
|
||||||
from .scan_guard import ScanGuard
|
from .scan_guard import ScanGuard
|
||||||
@ -31,7 +35,7 @@ class ScanServer(BECService):
|
|||||||
# self._start_scan_server()
|
# self._start_scan_server()
|
||||||
self._start_alarm_handler()
|
self._start_alarm_handler()
|
||||||
self._reset_scan_number()
|
self._reset_scan_number()
|
||||||
self.status = BECStatus.RUNNING
|
self.status = messages.BECStatus.RUNNING
|
||||||
|
|
||||||
def _start_device_manager(self):
|
def _start_device_manager(self):
|
||||||
self.wait_for_service("DeviceServer")
|
self.wait_for_service("DeviceServer")
|
||||||
|
@ -8,8 +8,11 @@ from typing import Generator, Literal
|
|||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, Status, bec_logger, messages
|
from bec_lib import messages
|
||||||
from bec_lib.connector import ConnectorBase
|
from bec_lib.connector import ConnectorBase
|
||||||
|
from bec_lib.device import Status
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
from .errors import DeviceMessageError, ScanAbortion
|
from .errors import DeviceMessageError, ScanAbortion
|
||||||
|
|
||||||
|
@ -3,7 +3,11 @@ import threading
|
|||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
from bec_lib import Alarms, DeviceBase, MessageEndpoints, bec_logger, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.alarm_handler import Alarms
|
||||||
|
from bec_lib.device import DeviceBase
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
from .device_validation import DeviceValidation
|
from .device_validation import DeviceValidation
|
||||||
from .errors import DeviceMessageError, ScanAbortion
|
from .errors import DeviceMessageError, ScanAbortion
|
||||||
|
@ -7,7 +7,9 @@ from typing import Any, Literal
|
|||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
from bec_lib import DeviceManagerBase, MessageEndpoints, bec_logger
|
from bec_lib.devicemanager import DeviceManagerBase
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
from .errors import LimitError, ScanAbortion
|
from .errors import LimitError, ScanAbortion
|
||||||
from .path_optimization import PathOptimizerMixin
|
from .path_optimization import PathOptimizerMixin
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from bec_lib import ServiceConfig
|
|
||||||
from bec_lib.messages import BECStatus
|
from bec_lib.messages import BECStatus
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
from bec_lib.tests.utils import ConnectorMock
|
from bec_lib.tests.utils import ConnectorMock
|
||||||
from bec_server.scan_server.scan_server import ScanServer
|
from bec_server.scan_server.scan_server import ScanServer
|
||||||
from bec_server.scan_server.scan_worker import InstructionQueueStatus
|
from bec_server.scan_server.scan_worker import InstructionQueueStatus
|
||||||
|
@ -4,7 +4,9 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
|
from bec_lib.redis_connector import RedisConnector
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
from bec_server import scihub
|
from bec_server import scihub
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
@ -7,10 +7,12 @@ import uuid
|
|||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
import bec_lib
|
import bec_lib
|
||||||
from bec_lib import DeviceConfigError
|
from bec_lib import messages
|
||||||
from bec_lib import DeviceManagerBase as DeviceManager
|
from bec_lib.bec_errors import DeviceConfigError
|
||||||
from bec_lib import MessageEndpoints, bec_logger, messages
|
|
||||||
from bec_lib.connector import ConnectorBase
|
from bec_lib.connector import ConnectorBase
|
||||||
|
from bec_lib.devicemanager import DeviceManagerBase as DeviceManager
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.scibec_validator import SciBecValidator
|
from bec_lib.scibec_validator import SciBecValidator
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
@ -7,8 +7,10 @@ import py_scibec
|
|||||||
from dotenv import dotenv_values
|
from dotenv import dotenv_values
|
||||||
from py_scibec import SciBecCore
|
from py_scibec import SciBecCore
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, bec_logger, messages
|
from bec_lib import messages
|
||||||
from bec_lib.connector import ConnectorBase
|
from bec_lib.connector import ConnectorBase
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
from bec_server.scihub.repeated_timer import RepeatedTimer
|
from bec_server.scihub.repeated_timer import RepeatedTimer
|
||||||
|
|
||||||
from .config_handler import ConfigHandler
|
from .config_handler import ConfigHandler
|
||||||
|
@ -8,7 +8,8 @@ import numpy as np
|
|||||||
import py_scibec
|
import py_scibec
|
||||||
import py_scibec_openapi_client.models as py_scibec_models
|
import py_scibec_openapi_client.models as py_scibec_models
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, bec_logger
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.serialization import json_ext
|
from bec_lib.serialization import json_ext
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
from bec_lib import BECService, BECStatus, ServiceConfig
|
from bec_lib import messages
|
||||||
|
from bec_lib.bec_service import BECService
|
||||||
from bec_lib.connector import ConnectorBase
|
from bec_lib.connector import ConnectorBase
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
from bec_server.scihub.scibec import SciBecConnector
|
from bec_server.scihub.scibec import SciBecConnector
|
||||||
from bec_server.scihub.scilog import SciLogConnector
|
from bec_server.scihub.scilog import SciLogConnector
|
||||||
|
|
||||||
@ -12,7 +14,7 @@ class SciHub(BECService):
|
|||||||
self.scilog_connector = None
|
self.scilog_connector = None
|
||||||
self._start_scibec_connector()
|
self._start_scibec_connector()
|
||||||
self._start_scilog_connector()
|
self._start_scilog_connector()
|
||||||
self.status = BECStatus.RUNNING
|
self.status = messages.BECStatus.RUNNING
|
||||||
|
|
||||||
def _start_scibec_connector(self):
|
def _start_scibec_connector(self):
|
||||||
self.wait_for_service("DeviceServer")
|
self.wait_for_service("DeviceServer")
|
||||||
|
@ -6,7 +6,10 @@ from typing import TYPE_CHECKING
|
|||||||
import requests
|
import requests
|
||||||
from dotenv import dotenv_values
|
from dotenv import dotenv_values
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, RedisConnector, bec_logger, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
|
from bec_lib.redis_connector import RedisConnector
|
||||||
from bec_server.scihub.repeated_timer import RepeatedTimer
|
from bec_server.scihub.repeated_timer import RepeatedTimer
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
# overwrite threads_check fixture from bec_lib,
|
# overwrite threads_check fixture from bec_lib,
|
||||||
# to have it in autouse
|
# to have it in autouse
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
from bec_lib import ServiceConfig
|
from bec_lib.service_config import ServiceConfig
|
||||||
from bec_server.data_processing.dap_server import DAPServer
|
from bec_server.data_processing.dap_server import DAPServer
|
||||||
from bec_server.data_processing.dap_service import DAPServiceBase
|
from bec_server.data_processing.dap_service import DAPServiceBase
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
### THE NEXT FIXTURE HAS TO BE RE-ACTIVATED ONCE
|
### THE NEXT FIXTURE HAS TO BE RE-ACTIVATED ONCE
|
||||||
### OPHYD "STATUS CALLBACKS" THREADS ARE CLEANED
|
### OPHYD "STATUS CALLBACKS" THREADS ARE CLEANED
|
||||||
|
@ -7,8 +7,8 @@ import numpy as np
|
|||||||
import pytest
|
import pytest
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
import bec_lib
|
from bec_lib import messages
|
||||||
from bec_lib import MessageEndpoints, messages
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_server.device_server.devices.devicemanager import DeviceManagerDS
|
from bec_server.device_server.devices.devicemanager import DeviceManagerDS
|
||||||
|
|
||||||
# pylint: disable=missing-function-docstring
|
# pylint: disable=missing-function-docstring
|
||||||
|
@ -5,9 +5,12 @@ import pytest
|
|||||||
from ophyd import Staged
|
from ophyd import Staged
|
||||||
from ophyd.utils import errors as ophyd_errors
|
from ophyd.utils import errors as ophyd_errors
|
||||||
|
|
||||||
from bec_lib import Alarms, MessageEndpoints, ServiceConfig, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.alarm_handler import Alarms
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_lib.messages import BECStatus
|
from bec_lib.messages import BECStatus
|
||||||
from bec_lib.redis_connector import MessageObject
|
from bec_lib.redis_connector import MessageObject
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
from bec_lib.tests.utils import ConnectorMock
|
from bec_lib.tests.utils import ConnectorMock
|
||||||
from bec_server.device_server import DeviceServer
|
from bec_server.device_server import DeviceServer
|
||||||
from bec_server.device_server.device_server import InvalidDeviceError
|
from bec_server.device_server.device_server import InvalidDeviceError
|
||||||
|
@ -5,7 +5,9 @@ from unittest import mock
|
|||||||
import pytest
|
import pytest
|
||||||
from ophyd import Device, Kind, Signal, Staged, StatusBase
|
from ophyd import Device, Kind, Signal, Staged, StatusBase
|
||||||
|
|
||||||
from bec_lib import Alarms, MessageEndpoints, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.alarm_handler import Alarms
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_server.device_server.rpc_mixin import RPCMixin
|
from bec_server.device_server.rpc_mixin import RPCMixin
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
# overwrite threads_check fixture from bec_lib,
|
# overwrite threads_check fixture from bec_lib,
|
||||||
# to have it in autouse
|
# to have it in autouse
|
||||||
|
@ -6,9 +6,11 @@ import numpy as np
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
import bec_lib
|
import bec_lib
|
||||||
from bec_lib import MessageEndpoints, ServiceConfig, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_lib.logger import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.redis_connector import MessageObject
|
from bec_lib.redis_connector import MessageObject
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
from bec_lib.tests.utils import ConnectorMock
|
from bec_lib.tests.utils import ConnectorMock
|
||||||
from bec_server.file_writer import FileWriterManager
|
from bec_server.file_writer import FileWriterManager
|
||||||
from bec_server.file_writer.file_writer import FileWriter
|
from bec_server.file_writer.file_writer import FileWriter
|
||||||
|
@ -5,8 +5,10 @@ import pytest
|
|||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
import bec_lib
|
import bec_lib
|
||||||
from bec_lib import DeviceManagerBase, ServiceConfig, bec_logger, messages
|
from bec_lib.devicemanager import DeviceManagerBase
|
||||||
|
from bec_lib.logger import bec_logger
|
||||||
from bec_lib.messages import BECStatus
|
from bec_lib.messages import BECStatus
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
from bec_lib.tests.utils import ConnectorMock
|
from bec_lib.tests.utils import ConnectorMock
|
||||||
from bec_server.scan_bundler import ScanBundler
|
from bec_server.scan_bundler import ScanBundler
|
||||||
|
|
||||||
|
@ -2,7 +2,8 @@ from unittest import mock
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_server.scan_bundler.bec_emitter import BECEmitter
|
from bec_server.scan_bundler.bec_emitter import BECEmitter
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ from unittest import mock
|
|||||||
import msgpack
|
import msgpack
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_server.scan_bundler.bluesky_emitter import BlueskyEmitter
|
from bec_server.scan_bundler.bluesky_emitter import BlueskyEmitter
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,8 +2,9 @@ from unittest import mock
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, messages
|
from bec_lib import messages
|
||||||
from bec_lib.connector import MessageObject
|
from bec_lib.connector import MessageObject
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
|
||||||
# pylint: disable=missing-function-docstring
|
# pylint: disable=missing-function-docstring
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
# overwrite threads_check fixture from bec_lib,
|
# overwrite threads_check fixture from bec_lib,
|
||||||
# to have it in autouse
|
# to have it in autouse
|
||||||
|
@ -2,7 +2,8 @@ from unittest import mock
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_lib.redis_connector import MessageObject
|
from bec_lib.redis_connector import MessageObject
|
||||||
from bec_server.scan_server.scan_guard import ScanGuard, ScanRejection, ScanStatus
|
from bec_server.scan_server.scan_guard import ScanGuard, ScanRejection, ScanStatus
|
||||||
from bec_server.scan_server.tests.fixtures import scan_server_mock
|
from bec_server.scan_server.tests.fixtures import scan_server_mock
|
||||||
|
@ -3,7 +3,9 @@ from unittest import mock
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import Alarms, MessageEndpoints, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.alarm_handler import Alarms
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_lib.redis_connector import MessageObject
|
from bec_lib.redis_connector import MessageObject
|
||||||
from bec_server.scan_server.scan_assembler import ScanAssembler
|
from bec_server.scan_server.scan_assembler import ScanAssembler
|
||||||
from bec_server.scan_server.scan_queue import (
|
from bec_server.scan_server.scan_queue import (
|
||||||
|
@ -3,7 +3,8 @@ from unittest import mock
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_lib.tests.utils import ConnectorMock
|
from bec_lib.tests.utils import ConnectorMock
|
||||||
from bec_server.scan_server.errors import DeviceMessageError
|
from bec_server.scan_server.errors import DeviceMessageError
|
||||||
from bec_server.scan_server.scan_stubs import ScanAbortion, ScanStubs
|
from bec_server.scan_server.scan_stubs import ScanAbortion, ScanStubs
|
||||||
|
@ -4,7 +4,8 @@ from unittest import mock
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_lib.tests.utils import ConnectorMock
|
from bec_lib.tests.utils import ConnectorMock
|
||||||
from bec_server.scan_server.errors import DeviceMessageError, ScanAbortion
|
from bec_server.scan_server.errors import DeviceMessageError, ScanAbortion
|
||||||
from bec_server.scan_server.scan_assembler import ScanAssembler
|
from bec_server.scan_server.scan_assembler import ScanAssembler
|
||||||
|
@ -4,7 +4,7 @@ from py_scibec_openapi_client.models.dataset_with_relations import DatasetWithRe
|
|||||||
from py_scibec_openapi_client.models.experiment_with_relations import ExperimentWithRelations
|
from py_scibec_openapi_client.models.experiment_with_relations import ExperimentWithRelations
|
||||||
from py_scibec_openapi_client.models.scan_with_relations import ScanWithRelations
|
from py_scibec_openapi_client.models.scan_with_relations import ScanWithRelations
|
||||||
|
|
||||||
from bec_lib import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
|
|
||||||
# overwrite threads_check fixture from bec_lib,
|
# overwrite threads_check fixture from bec_lib,
|
||||||
# to have it in autouse
|
# to have it in autouse
|
||||||
|
@ -8,9 +8,9 @@ from fastjsonschema import JsonSchemaException
|
|||||||
from test_scibec_connector import SciBecMock, SciHubMock
|
from test_scibec_connector import SciBecMock, SciHubMock
|
||||||
|
|
||||||
import bec_lib
|
import bec_lib
|
||||||
from bec_lib import DeviceBase, messages
|
from bec_lib import messages
|
||||||
from bec_lib.bec_errors import DeviceConfigError
|
from bec_lib.bec_errors import DeviceConfigError
|
||||||
from bec_lib.device import OnFailure, ReadoutPriority
|
from bec_lib.device import DeviceBase, OnFailure, ReadoutPriority
|
||||||
from bec_server.scihub import SciHub
|
from bec_server.scihub import SciHub
|
||||||
from bec_server.scihub.scibec import ConfigHandler, SciBecConnector
|
from bec_server.scihub.scibec import ConfigHandler, SciBecConnector
|
||||||
|
|
||||||
|
@ -2,8 +2,10 @@ from unittest import mock
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, ServiceConfig, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_lib.messages import BECStatus
|
from bec_lib.messages import BECStatus
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
from bec_lib.tests.utils import ConnectorMock
|
from bec_lib.tests.utils import ConnectorMock
|
||||||
from bec_server.scihub import SciHub
|
from bec_server.scihub import SciHub
|
||||||
from bec_server.scihub.scibec import SciBecConnector
|
from bec_server.scihub.scibec import SciBecConnector
|
||||||
|
@ -2,7 +2,8 @@ from unittest import mock
|
|||||||
|
|
||||||
from test_scibec_connector import SciHubMock
|
from test_scibec_connector import SciHubMock
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, messages
|
from bec_lib import messages
|
||||||
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from bec_server.scihub.scilog import SciLogConnector
|
from bec_server.scihub.scilog import SciLogConnector
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,7 +4,9 @@ Large data sources typically have their own data pipeline, optimized for their s
|
|||||||
As of now, only external data sources that are based on HDF5 files are supported. BEC can be informed about new HDF5 files by emitting a [FileMessage](#bec_lib.messages.FileMessage) to the [public_file endpoint](#bec_lib.endpoints.MessageEndpoints.public_file), e.g.
|
As of now, only external data sources that are based on HDF5 files are supported. BEC can be informed about new HDF5 files by emitting a [FileMessage](#bec_lib.messages.FileMessage) to the [public_file endpoint](#bec_lib.endpoints.MessageEndpoints.public_file), e.g.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from bec_lib import MessageEndpoints, messages, RedisConnector
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
|
from bec_lib import messages
|
||||||
|
from bec_lib.redis_connector import RedisConnector
|
||||||
|
|
||||||
scan_id = "scan id of the current scan"
|
scan_id = "scan id of the current scan"
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ The log level can be set for each service and even each sink individually. While
|
|||||||
Using the logger in BEC is straightforward. The logger is already included in the BEC environment and can be imported via
|
Using the logger in BEC is straightforward. The logger is already included in the BEC environment and can be imported via
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from bec_lib import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ It could be useful to automatically enable the threads check and `loguru` cleani
|
|||||||
following fixture to a `conftest.py` file with your new test files:
|
following fixture to a `conftest.py` file with your new test files:
|
||||||
|
|
||||||
```
|
```
|
||||||
from bec_lib import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
def auto_check_threads(threads_check):
|
def auto_check_threads(threads_check):
|
||||||
yield
|
yield
|
||||||
bec_logger.logger.remove()
|
bec_logger.logger.remove()
|
||||||
|
@ -12,7 +12,10 @@ from pytest_redis import factories as pytest_redis_factories
|
|||||||
from redis import Redis
|
from redis import Redis
|
||||||
|
|
||||||
from bec_ipython_client import BECIPythonClient
|
from bec_ipython_client import BECIPythonClient
|
||||||
from bec_lib import BECClient, ConfigHelper, RedisConnector, ServiceConfig
|
from bec_lib.client import BECClient
|
||||||
|
from bec_lib.config_helper import ConfigHelper
|
||||||
|
from bec_lib.redis_connector import RedisConnector
|
||||||
|
from bec_lib.service_config import ServiceConfig
|
||||||
from bec_lib.tests.utils import wait_for_empty_queue
|
from bec_lib.tests.utils import wait_for_empty_queue
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user