leaf-framework 0.5.0__tar.gz → 0.6.0__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 (104) hide show
  1. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/PKG-INFO +1 -1
  2. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/utility/running_utilities.py +9 -0
  3. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/pyproject.toml +1 -1
  4. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/LICENSE +0 -0
  5. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/README.md +0 -0
  6. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/__init__.py +0 -0
  7. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/adapters/__init__.py +0 -0
  8. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/adapters/core_adapters/__init__.py +0 -0
  9. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/adapters/core_adapters/continuous_experiment_adapter.py +0 -0
  10. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/adapters/core_adapters/discrete_experiment_adapter.py +0 -0
  11. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/adapters/core_adapters/upload_adapter.py +0 -0
  12. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/adapters/equipment_adapter.py +0 -0
  13. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/config/configuration.yaml +0 -0
  14. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/data/marketplace.yaml +0 -0
  15. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/error_handler/__init__.py +0 -0
  16. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/error_handler/error_holder.py +0 -0
  17. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/error_handler/exceptions.py +0 -0
  18. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/measurement_handler/__init__.py +0 -0
  19. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/measurement_handler/handler.py +0 -0
  20. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/measurement_handler/measurements.yaml +0 -0
  21. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/measurement_handler/terms.py +0 -0
  22. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/.gitkeep +0 -0
  23. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/__init__.py +0 -0
  24. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/input_modules/__init__.py +0 -0
  25. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/input_modules/ble_watcher.py +0 -0
  26. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/input_modules/db_watcher.py +0 -0
  27. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/input_modules/event_watcher.py +0 -0
  28. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/input_modules/external_api_watcher.py +0 -0
  29. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/input_modules/external_event_watcher.py +0 -0
  30. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/input_modules/file_watcher.py +0 -0
  31. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/input_modules/http_watcher.py +0 -0
  32. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/input_modules/modbus_watcher.py +0 -0
  33. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/input_modules/mqtt_external_event_watcher.py +0 -0
  34. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/input_modules/mqtt_watcher.py +0 -0
  35. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/input_modules/opc_watcher.py +0 -0
  36. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/input_modules/polling_watcher.py +0 -0
  37. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/input_modules/simple_watcher.py +0 -0
  38. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/measurement_modules/__init__.py +0 -0
  39. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/measurement_modules/carbon_dioxide.py +0 -0
  40. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/measurement_modules/dissolved_oxygen.py +0 -0
  41. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/measurement_modules/fluorescence.py +0 -0
  42. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/measurement_modules/measurement_module.py +0 -0
  43. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/measurement_modules/optical_density.py +0 -0
  44. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/measurement_modules/ph.py +0 -0
  45. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/measurement_modules/temperature.py +0 -0
  46. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/output_modules/__init__.py +0 -0
  47. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/output_modules/file.py +0 -0
  48. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/output_modules/keydb.py +0 -0
  49. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/output_modules/mqtt.py +0 -0
  50. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/output_modules/output_module.py +0 -0
  51. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/output_modules/sql.py +0 -0
  52. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/output_modules/topic_store.py +0 -0
  53. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/phase_modules/__init__.py +0 -0
  54. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/phase_modules/control.py +0 -0
  55. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/phase_modules/error.py +0 -0
  56. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/phase_modules/external_event_phase.py +0 -0
  57. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/phase_modules/initialisation.py +0 -0
  58. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/phase_modules/measure.py +0 -0
  59. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/phase_modules/phase.py +0 -0
  60. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/phase_modules/start.py +0 -0
  61. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/phase_modules/stop.py +0 -0
  62. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/process_modules/__init__.py +0 -0
  63. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/process_modules/continous_module.py +0 -0
  64. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/process_modules/discrete_module.py +0 -0
  65. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/process_modules/external_event_process.py +0 -0
  66. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/process_modules/process_module.py +0 -0
  67. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/modules/process_modules/upload_module.py +0 -0
  68. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/register/__init__.py +0 -0
  69. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/register/abstract_leaf.py +0 -0
  70. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/register/equipment_actions.yaml +0 -0
  71. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/register/equipment_data.yaml +0 -0
  72. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/register/metadata.py +0 -0
  73. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/register/py.typed +0 -0
  74. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/register/topic_utilities.py +0 -0
  75. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/registry/discovery.py +0 -0
  76. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/registry/loader.py +0 -0
  77. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/registry/registry.py +0 -0
  78. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/registry/utils.py +0 -0
  79. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/start.py +0 -0
  80. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/__init__.py +0 -0
  81. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/adapter_ui_extension.py +0 -0
  82. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/components/__init__.py +0 -0
  83. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/components/header.py +0 -0
  84. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/constants.py +0 -0
  85. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/desktop_launcher.py +0 -0
  86. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/images/icon.icns +0 -0
  87. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/images/icon.ico +0 -0
  88. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/images/icon.svg +0 -0
  89. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/interface.py +0 -0
  90. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/markdown/configuration_help.md +0 -0
  91. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/markdown/documentation_main.md +0 -0
  92. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/markdown/documentation_protips.md +0 -0
  93. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/scripts.js +0 -0
  94. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/styles.css +0 -0
  95. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/tabs/__init__.py +0 -0
  96. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/tabs/adapters.py +0 -0
  97. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/tabs/configuration.py +0 -0
  98. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/tabs/documentation.py +0 -0
  99. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/tabs/logs.py +0 -0
  100. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/tabs/monitoring.py +0 -0
  101. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/ui/utils.py +0 -0
  102. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/utility/config_utils.py +0 -0
  103. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/utility/logger/__init__.py +0 -0
  104. {leaf_framework-0.5.0 → leaf_framework-0.6.0}/leaf/utility/logger/logger_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: leaf-framework
3
- Version: 0.5.0
3
+ Version: 0.6.0
4
4
  Summary: Lightweight Adapter Framework (LEAF)
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -1,4 +1,6 @@
1
1
  import inspect
2
+ import os
3
+ import tempfile
2
4
  import threading
3
5
  import time
4
6
  from typing import Any
@@ -6,6 +8,7 @@ from typing import Any
6
8
  from leaf.adapters.equipment_adapter import EquipmentAdapter
7
9
  from leaf.error_handler.error_holder import ErrorHolder
8
10
  from leaf.error_handler.exceptions import AdapterBuildError
11
+ from leaf.modules.output_modules.file import FILE
9
12
  from leaf.modules.output_modules.mqtt import MQTT
10
13
  from leaf.modules.output_modules.output_module import OutputModule
11
14
  from leaf.register.topic_utilities import topic_utilities
@@ -108,6 +111,12 @@ def build_output_module(config: dict[str, Any], error_holder: ErrorHolder) -> Ou
108
111
  if fallback_code not in output_objects:
109
112
  raise AdapterBuildError(f"Can't find fallback output: {fallback_code}")
110
113
  output_objects[code]["output"].set_fallback(output_objects[fallback_code]["output"])
114
+ elif code not in fallback_codes and code not in parallel_codes:
115
+ leaf_tmp_dir = os.path.join(tempfile.gettempdir(), "leaf")
116
+ os.makedirs(leaf_tmp_dir, exist_ok=True)
117
+ tmp_path = os.path.join(leaf_tmp_dir, f"{code}_fallback.json")
118
+ output_objects[code]["output"].set_fallback(FILE(filename=tmp_path, error_holder=error_holder))
119
+ logger.warning(f"No fallback configured for '{code}', defaulting to {tmp_path}")
111
120
 
112
121
  # Wire up parallels
113
122
  for code, out_data in output_objects.items():
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "leaf-framework"
3
- version = "0.5.0"
3
+ version = "0.6.0"
4
4
  description = "Lightweight Adapter Framework (LEAF)"
5
5
  authors = [
6
6
  "Matthew Crowther <nmc215@ncl.ac.uk>",
File without changes
File without changes