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.
Files changed (144) hide show
  1. {bec_lib-3.136.0 → bec_lib-3.136.1}/PKG-INFO +1 -1
  2. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/devicemanager.py +5 -2
  3. {bec_lib-3.136.0 → bec_lib-3.136.1}/pyproject.toml +2 -1
  4. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_device_manager.py +16 -0
  5. {bec_lib-3.136.0 → bec_lib-3.136.1}/.gitignore +0 -0
  6. {bec_lib-3.136.0 → bec_lib-3.136.1}/README.md +0 -0
  7. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/__init__.py +0 -0
  8. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/_print_versions.py +0 -0
  9. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/acl_login.py +0 -0
  10. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/actors.py +0 -0
  11. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/alarm_handler.py +0 -0
  12. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/atlas_models.py +0 -0
  13. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/bec_errors.py +0 -0
  14. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/bec_service.py +0 -0
  15. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/bec_yaml_loader.py +0 -0
  16. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/bl_state_manager.py +0 -0
  17. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/bl_states.py +0 -0
  18. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/builtin_actor_hli.py +0 -0
  19. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/callback_handler.py +0 -0
  20. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/channel_monitor.py +0 -0
  21. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/client.py +0 -0
  22. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/codecs.py +0 -0
  23. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/config_helper.py +0 -0
  24. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/configs/__init__.py +0 -0
  25. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/configs/demo_config.yaml +0 -0
  26. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/configs/openapi_schema.json +0 -0
  27. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/connector.py +0 -0
  28. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/dap_plugin_objects.py +0 -0
  29. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/dap_plugins.py +0 -0
  30. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/device.py +0 -0
  31. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/device_monitor_plugin.py +0 -0
  32. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/endpoints.py +0 -0
  33. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/file_utils.py +0 -0
  34. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/live_scan_data.py +0 -0
  35. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/lmfit_serializer.py +0 -0
  36. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/logbook_connector.py +0 -0
  37. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/logger.py +0 -0
  38. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/macro_update_handler.py +0 -0
  39. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/messages.py +0 -0
  40. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/messaging_services.py +0 -0
  41. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/metadata_schema.py +0 -0
  42. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/numpy_encoder.py +0 -0
  43. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/observer.py +0 -0
  44. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/pdf_writer.py +0 -0
  45. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/plugin_helper.py +0 -0
  46. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/procedures/__init__.py +0 -0
  47. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/procedures/helper.py +0 -0
  48. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/procedures/hli.py +0 -0
  49. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/procedures/status.py +0 -0
  50. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/queue_items.py +0 -0
  51. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/redis_connector.py +0 -0
  52. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/request_items.py +0 -0
  53. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_args.py +0 -0
  54. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_data_container.py +0 -0
  55. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_history.py +0 -0
  56. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_input_validator.py +0 -0
  57. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_items.py +0 -0
  58. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_manager.py +0 -0
  59. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_number_container.py +0 -0
  60. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_repeat.py +0 -0
  61. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scan_report.py +0 -0
  62. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scans.py +0 -0
  63. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/scibec_validator.py +0 -0
  64. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/script_executor.py +0 -0
  65. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/serialization.py +0 -0
  66. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/serialization_registry.py +0 -0
  67. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/service_config.py +0 -0
  68. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/signature_serializer.py +0 -0
  69. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/tests/__init__.py +0 -0
  70. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/tests/fixtures.py +0 -0
  71. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/tests/test_config.yaml +0 -0
  72. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/tests/test_service_config.yaml +0 -0
  73. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/tests/utils.py +0 -0
  74. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/user_macros.py +0 -0
  75. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/__init__.py +0 -0
  76. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/copier_jinja_filters.py +0 -0
  77. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/import_utils.py +0 -0
  78. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/json_extended.py +0 -0
  79. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/__init__.py +0 -0
  80. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/_constants.py +0 -0
  81. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/_util.py +0 -0
  82. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/create/__init__.py +0 -0
  83. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/create/device.py +0 -0
  84. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/create/scan.py +0 -0
  85. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/create/templates/v4_scan.py.jinja +0 -0
  86. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/plugin_manager/main.py +0 -0
  87. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/proxy.py +0 -0
  88. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/pydantic_pretty_print.py +0 -0
  89. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/rpc_utils.py +0 -0
  90. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/scan_utils.py +0 -0
  91. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/threading_utils.py +0 -0
  92. {bec_lib-3.136.0 → bec_lib-3.136.1}/bec_lib/utils/user_acls_test.py +0 -0
  93. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/__init__.py +0 -0
  94. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/_additional_for_signature_serializer_test.py +0 -0
  95. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/conftest.py +0 -0
  96. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_acl_login.py +0 -0
  97. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_alarm_handler.py +0 -0
  98. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_atlas_models.py +0 -0
  99. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_beamline_states.py +0 -0
  100. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_bec_logger.py +0 -0
  101. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_bec_messages.py +0 -0
  102. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_bec_service.py +0 -0
  103. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_callback_handler.py +0 -0
  104. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_channel_monitor.py +0 -0
  105. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_client.py +0 -0
  106. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_config_helper.py +0 -0
  107. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_core_utils.py +0 -0
  108. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_dap_plugins.py +0 -0
  109. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_data_container.py +0 -0
  110. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_device_hashing.py +0 -0
  111. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_devices.py +0 -0
  112. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_file_utils.py +0 -0
  113. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_import_utils.py +0 -0
  114. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_jinja_plugins.py +0 -0
  115. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_lmfit_serializer.py +0 -0
  116. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_messaging_service.py +0 -0
  117. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_metadata_schema.py +0 -0
  118. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_observer.py +0 -0
  119. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_pdf_writer.py +0 -0
  120. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_plugin_helper.py +0 -0
  121. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_plugin_manager.py +0 -0
  122. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_plugin_system.py +0 -0
  123. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_pydantic_pretty_print.py +0 -0
  124. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_queue_items.py +0 -0
  125. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_redis_connector.py +0 -0
  126. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_redis_connector_fakeredis.py +0 -0
  127. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_context.py +0 -0
  128. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_data.py +0 -0
  129. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_history.py +0 -0
  130. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_items.py +0 -0
  131. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_manager.py +0 -0
  132. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_object.py +0 -0
  133. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_repeat.py +0 -0
  134. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scan_report.py +0 -0
  135. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_scibec_validator.py +0 -0
  136. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_script_executor.py +0 -0
  137. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_serializer.py +0 -0
  138. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_signature_serializer.py +0 -0
  139. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_signature_serializer_with_future_import.py +0 -0
  140. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_stream_subs.py +0 -0
  141. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_user_macros.py +0 -0
  142. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_utils.py +0 -0
  143. {bec_lib-3.136.0 → bec_lib-3.136.1}/tests/test_yaml_loader.py +0 -0
  144. {bec_lib-3.136.0 → bec_lib-3.136.1}/util_scripts/init_config.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bec_lib
3
- Version: 3.136.0
3
+ Version: 3.136.1
4
4
  Summary: BEC library
5
5
  Project-URL: Bug Tracker, https://github.com/bec-project/bec/issues
6
6
  Project-URL: Homepage, https://github.com/bec-project/bec
@@ -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
- available_signal = self.devices[dev_name]._info.get("signals", {})
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(self.devices[dev_name], signal_name, None)
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.0"
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