bec-lib 3.124.2__tar.gz → 3.124.4__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_lib-3.124.2 → bec_lib-3.124.4}/PKG-INFO +1 -1
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/scan_report.py +11 -1
- {bec_lib-3.124.2 → bec_lib-3.124.4}/pyproject.toml +3 -1
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_scan_report.py +29 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/.gitignore +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/README.md +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/__init__.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/_print_versions.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/acl_login.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/actors.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/alarm_handler.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/atlas_models.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/bec_errors.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/bec_service.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/bec_yaml_loader.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/bl_state_manager.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/bl_states.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/callback_handler.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/channel_monitor.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/client.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/codecs.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/config_helper.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/configs/__init__.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/configs/demo_config.yaml +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/configs/openapi_schema.json +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/connector.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/dap_plugin_objects.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/dap_plugins.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/device.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/device_monitor_plugin.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/devicemanager.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/endpoints.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/file_utils.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/live_scan_data.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/lmfit_serializer.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/logbook_connector.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/logger.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/macro_update_handler.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/messages.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/messaging_services.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/metadata_schema.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/numpy_encoder.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/observer.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/pdf_writer.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/plugin_helper.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/procedures/__init__.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/procedures/helper.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/procedures/hli.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/procedures/status.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/queue_items.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/redis_connector.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/request_items.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/scan_args.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/scan_data_container.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/scan_history.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/scan_input_validator.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/scan_items.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/scan_manager.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/scan_number_container.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/scan_repeat.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/scans.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/scibec_validator.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/script_executor.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/serialization.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/serialization_registry.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/service_config.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/signature_serializer.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/tests/__init__.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/tests/fixtures.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/tests/test_config.yaml +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/tests/test_service_config.yaml +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/tests/utils.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/user_macros.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/__init__.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/copier_jinja_filters.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/import_utils.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/json_extended.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/plugin_manager/__init__.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/plugin_manager/_constants.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/plugin_manager/_util.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/plugin_manager/create/__init__.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/plugin_manager/create/device.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/plugin_manager/create/scan.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/plugin_manager/create/templates/v4_scan.py.jinja +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/plugin_manager/main.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/proxy.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/pydantic_pretty_print.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/rpc_utils.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/scan_utils.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/threading_utils.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/user_acls_test.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/__init__.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/_additional_for_signature_serializer_test.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/conftest.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_acl_login.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_alarm_handler.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_atlas_models.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_beamline_states.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_bec_logger.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_bec_messages.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_bec_service.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_callback_handler.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_channel_monitor.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_client.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_config_helper.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_core_utils.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_dap_plugins.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_data_container.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_device_hashing.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_device_manager.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_devices.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_file_utils.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_import_utils.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_jinja_plugins.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_lmfit_serializer.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_messaging_service.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_metadata_schema.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_observer.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_pdf_writer.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_plugin_helper.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_plugin_manager.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_plugin_system.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_pydantic_pretty_print.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_queue_items.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_redis_connector.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_redis_connector_fakeredis.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_scan_context.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_scan_data.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_scan_history.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_scan_items.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_scan_manager.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_scan_object.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_scan_repeat.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_scibec_validator.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_script_executor.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_serializer.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_signature_serializer.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_signature_serializer_with_future_import.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_stream_subs.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_user_macros.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_utils.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/tests/test_yaml_loader.py +0 -0
- {bec_lib-3.124.2 → bec_lib-3.124.4}/util_scripts/init_config.py +0 -0
|
@@ -10,13 +10,14 @@ import traceback
|
|
|
10
10
|
from math import inf
|
|
11
11
|
from typing import TYPE_CHECKING
|
|
12
12
|
|
|
13
|
+
from bec_lib import messages
|
|
14
|
+
from bec_lib.alarm_handler import AlarmBase, Alarms
|
|
13
15
|
from bec_lib.bec_errors import ScanAbortion
|
|
14
16
|
from bec_lib.endpoints import MessageEndpoints
|
|
15
17
|
from bec_lib.logger import bec_logger
|
|
16
18
|
from bec_lib.scan_items import ScanItem
|
|
17
19
|
|
|
18
20
|
if TYPE_CHECKING: # pragma: no cover
|
|
19
|
-
from bec_lib import messages
|
|
20
21
|
from bec_lib.client import BECClient
|
|
21
22
|
from bec_lib.queue_items import QueueItem
|
|
22
23
|
from bec_lib.request_items import RequestItem
|
|
@@ -111,6 +112,15 @@ class ScanReport:
|
|
|
111
112
|
)
|
|
112
113
|
if request_status is None:
|
|
113
114
|
return False
|
|
115
|
+
for status_container in request_status:
|
|
116
|
+
if "data" not in status_container:
|
|
117
|
+
return False
|
|
118
|
+
status = status_container["data"]
|
|
119
|
+
if not status.success:
|
|
120
|
+
alarm_message = messages.AlarmMessage(
|
|
121
|
+
severity=Alarms.MAJOR, info=status.metadata["error_info"]
|
|
122
|
+
)
|
|
123
|
+
raise AlarmBase(alarm=alarm_message, severity=Alarms.MAJOR)
|
|
114
124
|
if len(request_status) == len(motors):
|
|
115
125
|
return True
|
|
116
126
|
return False
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "bec_lib"
|
|
7
|
-
version = "3.124.
|
|
7
|
+
version = "3.124.4"
|
|
8
8
|
description = "BEC library"
|
|
9
9
|
requires-python = ">=3.11"
|
|
10
10
|
classifiers = [
|
|
@@ -79,6 +79,8 @@ Homepage = "https://github.com/bec-project/bec"
|
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
|
|
82
|
+
|
|
83
|
+
|
|
82
84
|
[tool.hatch.build.targets.wheel]
|
|
83
85
|
include = ["*"]
|
|
84
86
|
|
|
@@ -3,6 +3,7 @@ from unittest import mock
|
|
|
3
3
|
import pytest
|
|
4
4
|
|
|
5
5
|
from bec_lib import messages
|
|
6
|
+
from bec_lib.alarm_handler import AlarmBase
|
|
6
7
|
from bec_lib.bec_errors import ScanAbortion
|
|
7
8
|
from bec_lib.scan_report import ScanReport
|
|
8
9
|
|
|
@@ -151,6 +152,34 @@ def test_scan_report_get_mv_status(scan_report, xread_return, expected):
|
|
|
151
152
|
assert scan_report._get_mv_status() == expected
|
|
152
153
|
|
|
153
154
|
|
|
155
|
+
def test_scan_report_get_mv_status_raises_alarm_on_failed_move(scan_report):
|
|
156
|
+
error_info = messages.ErrorInfo(
|
|
157
|
+
error_message="Motor move failed",
|
|
158
|
+
compact_error_message="RuntimeError: Motor move failed",
|
|
159
|
+
exception_type="RuntimeError",
|
|
160
|
+
device="samx",
|
|
161
|
+
)
|
|
162
|
+
scan_report.request.request = messages.ScanQueueMessage(
|
|
163
|
+
scan_type="mv", parameter={"args": {"samx": [5]}}
|
|
164
|
+
)
|
|
165
|
+
with mock.patch.object(scan_report._client.device_manager.connector, "xread") as mock_xread:
|
|
166
|
+
mock_xread.return_value = [
|
|
167
|
+
{
|
|
168
|
+
"data": messages.DeviceReqStatusMessage(
|
|
169
|
+
device="samx",
|
|
170
|
+
success=False,
|
|
171
|
+
request_id="request-id",
|
|
172
|
+
metadata={"error_info": error_info},
|
|
173
|
+
)
|
|
174
|
+
}
|
|
175
|
+
]
|
|
176
|
+
with pytest.raises(AlarmBase) as exc_info:
|
|
177
|
+
scan_report._get_mv_status()
|
|
178
|
+
|
|
179
|
+
assert exc_info.value.severity.name == "MAJOR"
|
|
180
|
+
assert exc_info.value.alarm.info == error_info
|
|
181
|
+
|
|
182
|
+
|
|
154
183
|
def test_scan_report_file_written(scan_report):
|
|
155
184
|
with mock.patch.object(scan_report.request, "scan") as mock_scan:
|
|
156
185
|
mock_scan.public_files = {"/tmp/file1_master.h5": {"done_state": True, "success": True}}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_lib-3.124.2 → bec_lib-3.124.4}/bec_lib/utils/plugin_manager/create/templates/v4_scan.py.jinja
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|