bec-lib 3.136.0__tar.gz → 3.136.1__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.136.0 → bec_lib-3.136.1}/PKG-INFO +1 -1
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/devicemanager.py +5 -2
- {bec_lib-3.136.0 → bec_lib-3.136.1}/pyproject.toml +2 -1
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_device_manager.py +16 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/.gitignore +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/README.md +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/__init__.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/_print_versions.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/acl_login.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/actors.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/alarm_handler.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/atlas_models.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/bec_errors.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/bec_service.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/bec_yaml_loader.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/bl_state_manager.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/bl_states.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/builtin_actor_hli.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/callback_handler.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/channel_monitor.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/client.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/codecs.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/config_helper.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/configs/__init__.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/configs/demo_config.yaml +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/configs/openapi_schema.json +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/connector.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/dap_plugin_objects.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/dap_plugins.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/device.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/device_monitor_plugin.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/endpoints.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/file_utils.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/live_scan_data.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/lmfit_serializer.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/logbook_connector.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/logger.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/macro_update_handler.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/messages.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/messaging_services.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/metadata_schema.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/numpy_encoder.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/observer.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/pdf_writer.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/plugin_helper.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/procedures/__init__.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/procedures/helper.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/procedures/hli.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/procedures/status.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/queue_items.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/redis_connector.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/request_items.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_args.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_data_container.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_history.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_input_validator.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_items.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_manager.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_number_container.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_repeat.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_report.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scans.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scibec_validator.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/script_executor.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/serialization.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/serialization_registry.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/service_config.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/signature_serializer.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/tests/__init__.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/tests/fixtures.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/tests/test_config.yaml +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/tests/test_service_config.yaml +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/tests/utils.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/user_macros.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/__init__.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/copier_jinja_filters.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/import_utils.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/json_extended.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/__init__.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/_constants.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/_util.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/create/__init__.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/create/device.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/create/scan.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/create/templates/v4_scan.py.jinja +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/main.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/proxy.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/pydantic_pretty_print.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/rpc_utils.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/scan_utils.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/threading_utils.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/user_acls_test.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/__init__.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/_additional_for_signature_serializer_test.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/conftest.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_acl_login.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_alarm_handler.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_atlas_models.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_beamline_states.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_bec_logger.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_bec_messages.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_bec_service.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_callback_handler.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_channel_monitor.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_client.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_config_helper.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_core_utils.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_dap_plugins.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_data_container.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_device_hashing.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_devices.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_file_utils.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_import_utils.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_jinja_plugins.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_lmfit_serializer.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_messaging_service.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_metadata_schema.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_observer.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_pdf_writer.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_plugin_helper.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_plugin_manager.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_plugin_system.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_pydantic_pretty_print.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_queue_items.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_redis_connector.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_redis_connector_fakeredis.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_context.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_data.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_history.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_items.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_manager.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_object.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_repeat.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_report.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scibec_validator.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_script_executor.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_serializer.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_signature_serializer.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_signature_serializer_with_future_import.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_stream_subs.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_user_macros.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_utils.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_yaml_loader.py +0 -0
- {bec_lib-3.136.0 → bec_lib-3.136.1}/util_scripts/init_config.py +0 -0
|
@@ -865,14 +865,17 @@ class DeviceManagerBase:
|
|
|
865
865
|
continue
|
|
866
866
|
if update_signals:
|
|
867
867
|
# If the device config specifies start values for signals, update them
|
|
868
|
-
|
|
868
|
+
device_obj = self.devices.get(dev_name)
|
|
869
|
+
if not device_obj:
|
|
870
|
+
continue
|
|
871
|
+
available_signal = device_obj._info.get("signals", {})
|
|
869
872
|
device_config = dev_conf.get("deviceConfig", {})
|
|
870
873
|
if not device_config:
|
|
871
874
|
continue
|
|
872
875
|
for signal_name in device_config:
|
|
873
876
|
if signal_name in available_signal:
|
|
874
877
|
signal_obj_name = available_signal[signal_name].get("obj_name")
|
|
875
|
-
signal_obj = getattr(
|
|
878
|
+
signal_obj = getattr(device_obj, signal_name, None)
|
|
876
879
|
if not signal_obj or not signal_obj_name:
|
|
877
880
|
continue
|
|
878
881
|
sig_read = signal_obj.read(cached=True)
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "bec_lib"
|
|
7
|
-
version = "3.136.
|
|
7
|
+
version = "3.136.1"
|
|
8
8
|
description = "BEC library"
|
|
9
9
|
requires-python = ">=3.11"
|
|
10
10
|
classifiers = [
|
|
@@ -102,6 +102,7 @@ Homepage = "https://github.com/bec-project/bec"
|
|
|
102
102
|
|
|
103
103
|
|
|
104
104
|
|
|
105
|
+
|
|
105
106
|
|
|
106
107
|
|
|
107
108
|
[tool.hatch.build.targets.wheel]
|
|
@@ -446,6 +446,22 @@ def test_get_device_config_returns_empty_dict_on_none(dm_with_devices):
|
|
|
446
446
|
assert config == {}
|
|
447
447
|
|
|
448
448
|
|
|
449
|
+
def test_get_device_config_skips_missing_loaded_device(dm_with_devices, session_from_test_config):
|
|
450
|
+
device_manager = dm_with_devices
|
|
451
|
+
config_with_missing_device = copy.deepcopy(session_from_test_config.get("devices"))
|
|
452
|
+
missing_device = next(dev for dev in config_with_missing_device if dev["name"] == "samx")
|
|
453
|
+
missing_device["deviceConfig"] = {"velocity": 0.0}
|
|
454
|
+
device_manager.devices.pop("samx")
|
|
455
|
+
|
|
456
|
+
with mock.patch.object(device_manager.connector, "get") as mock_get:
|
|
457
|
+
mock_get.return_value = messages.AvailableResourceMessage(
|
|
458
|
+
resource=config_with_missing_device
|
|
459
|
+
)
|
|
460
|
+
config = device_manager.get_device_config(update_signals=True)
|
|
461
|
+
|
|
462
|
+
assert "samx" not in config
|
|
463
|
+
|
|
464
|
+
|
|
449
465
|
def test_get_device_config_with_signal_update(dm_with_devices, session_from_test_config):
|
|
450
466
|
device_manager = dm_with_devices
|
|
451
467
|
# Mock a device signal that can be read
|
|
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
|
|
File without changes
|
{bec_lib-3.136.0 → bec_lib-3.136.1}/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
|