cgse 0.16.3__tar.gz → 0.16.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.
Files changed (540) hide show
  1. {cgse-0.16.3 → cgse-0.16.4}/PKG-INFO +1 -1
  2. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/pyproject.toml +1 -1
  3. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/pyproject.toml +1 -1
  4. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/pyproject.toml +1 -1
  5. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/async_control_claude.py +0 -88
  6. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/confman/__init__.py +0 -22
  7. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/confman/confman.yaml +0 -3
  8. cgse-0.16.4/libs/cgse-core/src/egse/connect.py +50 -0
  9. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/control.py +1 -124
  10. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/dummy.py +6 -57
  11. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/logger/log_cs.py +1 -1
  12. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/procman/__init__.py +3 -10
  13. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/procman/procman.yaml +1 -5
  14. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/procman/procman_cs.py +1 -12
  15. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/registry/client.py +9 -2
  16. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/storage/__init__.py +2 -19
  17. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/storage/storage.yaml +0 -4
  18. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/storage/storage_cs.py +2 -13
  19. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/pyproject.toml +1 -1
  20. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/cgse-tools/pyproject.toml +1 -1
  21. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/pyproject.toml +1 -1
  22. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/lakeshore-tempcontrol/pyproject.toml +1 -1
  23. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/pyproject.toml +1 -1
  24. {cgse-0.16.3 → cgse-0.16.4}/projects/plato/plato-fits/pyproject.toml +1 -1
  25. {cgse-0.16.3 → cgse-0.16.4}/projects/plato/plato-hdf5/pyproject.toml +1 -1
  26. {cgse-0.16.3 → cgse-0.16.4}/projects/plato/plato-spw/pyproject.toml +1 -1
  27. {cgse-0.16.3 → cgse-0.16.4}/pyproject.toml +1 -1
  28. {cgse-0.16.3 → cgse-0.16.4}/service_registry.db +0 -0
  29. {cgse-0.16.3 → cgse-0.16.4}/service_registry.db-shm +0 -0
  30. {cgse-0.16.3 → cgse-0.16.4}/service_registry.db-wal +0 -0
  31. {cgse-0.16.3 → cgse-0.16.4}/.github/workflows/ruff-format-check.yaml +0 -0
  32. {cgse-0.16.3 → cgse-0.16.4}/.gitignore +0 -0
  33. {cgse-0.16.3 → cgse-0.16.4}/README.md +0 -0
  34. {cgse-0.16.3 → cgse-0.16.4}/buffer_vat.log +0 -0
  35. {cgse-0.16.3 → cgse-0.16.4}/buffer_vat.png +0 -0
  36. {cgse-0.16.3 → cgse-0.16.4}/bump.py +0 -0
  37. {cgse-0.16.3 → cgse-0.16.4}/conftest.py +0 -0
  38. {cgse-0.16.3 → cgse-0.16.4}/docs/api/bits.md +0 -0
  39. {cgse-0.16.3 → cgse-0.16.4}/docs/api/calibration.md +0 -0
  40. {cgse-0.16.3 → cgse-0.16.4}/docs/api/command.md +0 -0
  41. {cgse-0.16.3 → cgse-0.16.4}/docs/api/config.md +0 -0
  42. {cgse-0.16.3 → cgse-0.16.4}/docs/api/control.md +0 -0
  43. {cgse-0.16.3 → cgse-0.16.4}/docs/api/counter.md +0 -0
  44. {cgse-0.16.3 → cgse-0.16.4}/docs/api/decorators.md +0 -0
  45. {cgse-0.16.3 → cgse-0.16.4}/docs/api/device.md +0 -0
  46. {cgse-0.16.3 → cgse-0.16.4}/docs/api/dicts.md +0 -0
  47. {cgse-0.16.3 → cgse-0.16.4}/docs/api/dummy.md +0 -0
  48. {cgse-0.16.3 → cgse-0.16.4}/docs/api/env.md +0 -0
  49. {cgse-0.16.3 → cgse-0.16.4}/docs/api/exceptions.md +0 -0
  50. {cgse-0.16.3 → cgse-0.16.4}/docs/api/heartbeat.md +0 -0
  51. {cgse-0.16.3 → cgse-0.16.4}/docs/api/hk.md +0 -0
  52. {cgse-0.16.3 → cgse-0.16.4}/docs/api/index.md +0 -0
  53. {cgse-0.16.3 → cgse-0.16.4}/docs/api/listener.md +0 -0
  54. {cgse-0.16.3 → cgse-0.16.4}/docs/api/metrics.md +0 -0
  55. {cgse-0.16.3 → cgse-0.16.4}/docs/api/mixin.md +0 -0
  56. {cgse-0.16.3 → cgse-0.16.4}/docs/api/monitoring.md +0 -0
  57. {cgse-0.16.3 → cgse-0.16.4}/docs/api/observer.md +0 -0
  58. {cgse-0.16.3 → cgse-0.16.4}/docs/api/obsid.md +0 -0
  59. {cgse-0.16.3 → cgse-0.16.4}/docs/api/persistence.md +0 -0
  60. {cgse-0.16.3 → cgse-0.16.4}/docs/api/plugin.md +0 -0
  61. {cgse-0.16.3 → cgse-0.16.4}/docs/api/process.md +0 -0
  62. {cgse-0.16.3 → cgse-0.16.4}/docs/api/reload.md +0 -0
  63. {cgse-0.16.3 → cgse-0.16.4}/docs/api/settings.md +0 -0
  64. {cgse-0.16.3 → cgse-0.16.4}/docs/api/setup.md +0 -0
  65. {cgse-0.16.3 → cgse-0.16.4}/docs/api/system.md +0 -0
  66. {cgse-0.16.3 → cgse-0.16.4}/docs/custom_theme/main.html +0 -0
  67. {cgse-0.16.3 → cgse-0.16.4}/docs/dev_guide/coding_style.md +0 -0
  68. {cgse-0.16.3 → cgse-0.16.4}/docs/dev_guide/docs.md +0 -0
  69. {cgse-0.16.3 → cgse-0.16.4}/docs/dev_guide/index.md +0 -0
  70. {cgse-0.16.3 → cgse-0.16.4}/docs/dev_guide/installation.md +0 -0
  71. {cgse-0.16.3 → cgse-0.16.4}/docs/dev_guide/monitoring.md +0 -0
  72. {cgse-0.16.3 → cgse-0.16.4}/docs/dev_guide/monorepo.md +0 -0
  73. {cgse-0.16.3 → cgse-0.16.4}/docs/dev_guide/nox.md +0 -0
  74. {cgse-0.16.3 → cgse-0.16.4}/docs/dev_guide/plugins.md +0 -0
  75. {cgse-0.16.3 → cgse-0.16.4}/docs/dev_guide/project-configuration.md +0 -0
  76. {cgse-0.16.3 → cgse-0.16.4}/docs/dev_guide/unit_testing.md +0 -0
  77. {cgse-0.16.3 → cgse-0.16.4}/docs/dev_guide/uv.md +0 -0
  78. {cgse-0.16.3 → cgse-0.16.4}/docs/dev_guide/versioning.md +0 -0
  79. {cgse-0.16.3 → cgse-0.16.4}/docs/getting_started.md +0 -0
  80. {cgse-0.16.3 → cgse-0.16.4}/docs/help.md +0 -0
  81. {cgse-0.16.3 → cgse-0.16.4}/docs/images/cli-cgse.png +0 -0
  82. {cgse-0.16.3 → cgse-0.16.4}/docs/images/github-fork-clone-dark.png +0 -0
  83. {cgse-0.16.3 → cgse-0.16.4}/docs/images/github-fork-clone.png +0 -0
  84. {cgse-0.16.3 → cgse-0.16.4}/docs/images/grafana-queries.png +0 -0
  85. {cgse-0.16.3 → cgse-0.16.4}/docs/images/icons/cgse-logo-blue.svg +0 -0
  86. {cgse-0.16.3 → cgse-0.16.4}/docs/images/icons/cgse-logo.svg +0 -0
  87. {cgse-0.16.3 → cgse-0.16.4}/docs/index.md +0 -0
  88. {cgse-0.16.3 → cgse-0.16.4}/docs/initialize.md +0 -0
  89. {cgse-0.16.3 → cgse-0.16.4}/docs/libs/cgse-common/images/load_methods.png +0 -0
  90. {cgse-0.16.3 → cgse-0.16.4}/docs/libs/cgse-common/index.md +0 -0
  91. {cgse-0.16.3 → cgse-0.16.4}/docs/libs/cgse-common/settings.md +0 -0
  92. {cgse-0.16.3 → cgse-0.16.4}/docs/libs/cgse-common/setup.md +0 -0
  93. {cgse-0.16.3 → cgse-0.16.4}/docs/libs/cgse-coordinates/index.md +0 -0
  94. {cgse-0.16.3 → cgse-0.16.4}/docs/libs/cgse-core/index.md +0 -0
  95. {cgse-0.16.3 → cgse-0.16.4}/docs/libs/cgse-core/notifyhub.md +0 -0
  96. {cgse-0.16.3 → cgse-0.16.4}/docs/libs/cgse-core/registry.md +0 -0
  97. {cgse-0.16.3 → cgse-0.16.4}/docs/libs/cgse-gui/index.md +0 -0
  98. {cgse-0.16.3 → cgse-0.16.4}/docs/libs/index.md +0 -0
  99. {cgse-0.16.3 → cgse-0.16.4}/docs/package_list.md +0 -0
  100. {cgse-0.16.3 → cgse-0.16.4}/docs/projects/cgse-tools.md +0 -0
  101. {cgse-0.16.3 → cgse-0.16.4}/docs/projects/index.md +0 -0
  102. {cgse-0.16.3 → cgse-0.16.4}/docs/projects/symetrie-hexapod.md +0 -0
  103. {cgse-0.16.3 → cgse-0.16.4}/docs/roadmap.md +0 -0
  104. {cgse-0.16.3 → cgse-0.16.4}/docs/stylesheets/custom.css +0 -0
  105. {cgse-0.16.3 → cgse-0.16.4}/docs/stylesheets/extra.css +0 -0
  106. {cgse-0.16.3 → cgse-0.16.4}/docs/tutorial.md +0 -0
  107. {cgse-0.16.3 → cgse-0.16.4}/docs/user_guide/cli.md +0 -0
  108. {cgse-0.16.3 → cgse-0.16.4}/docs/user_guide/index.md +0 -0
  109. {cgse-0.16.3 → cgse-0.16.4}/duckdb_metrics.db +0 -0
  110. {cgse-0.16.3 → cgse-0.16.4}/duckdb_metrics.db.wal +0 -0
  111. {cgse-0.16.3 → cgse-0.16.4}/identifier.sqlite +0 -0
  112. {cgse-0.16.3 → cgse-0.16.4}/justfile +0 -0
  113. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/README.md +0 -0
  114. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/justfile +0 -0
  115. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/noxfile.py +0 -0
  116. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/service_registry.db +0 -0
  117. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/cgse_common/__init__.py +0 -0
  118. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/cgse_common/cgse.py +0 -0
  119. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/cgse_common/settings.yaml +0 -0
  120. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/bits.py +0 -0
  121. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/calibration.py +0 -0
  122. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/config.py +0 -0
  123. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/counter.py +0 -0
  124. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/decorators.py +0 -0
  125. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/device.py +0 -0
  126. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/dicts.py +0 -0
  127. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/env.py +0 -0
  128. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/exceptions.py +0 -0
  129. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/heartbeat.py +0 -0
  130. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/hk.py +0 -0
  131. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/log.py +0 -0
  132. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/metrics.py +0 -0
  133. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/observer.py +0 -0
  134. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/obsid.py +0 -0
  135. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/persistence.py +0 -0
  136. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/plugin.py +0 -0
  137. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/plugins/metrics/duckdb.py +0 -0
  138. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/plugins/metrics/influxdb.py +0 -0
  139. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/plugins/metrics/timescaledb.py +0 -0
  140. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/process.py +0 -0
  141. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/py.typed +0 -0
  142. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/randomwalk.py +0 -0
  143. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/ratelimit.py +0 -0
  144. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/reload.py +0 -0
  145. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/resource.py +0 -0
  146. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/response.py +0 -0
  147. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/scpi.py +0 -0
  148. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/settings.py +0 -0
  149. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/settings.yaml +0 -0
  150. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/setup.py +0 -0
  151. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/signal.py +0 -0
  152. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/socketdevice.py +0 -0
  153. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/state.py +0 -0
  154. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/system.py +0 -0
  155. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/task.py +0 -0
  156. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/version.py +0 -0
  157. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/src/egse/zmq_ser.py +0 -0
  158. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/conftest.py +0 -0
  159. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/COPYING +0 -0
  160. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00028_201028_155259.yaml +0 -0
  161. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00029_201028_155331.yaml +0 -0
  162. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00030_210311_134043.yaml +0 -0
  163. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00080_210917_105245.yaml +0 -0
  164. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00081_210922_142259.yaml +0 -0
  165. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00082_210923_094458.yaml +0 -0
  166. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/CSL1/README.md +0 -0
  167. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/CSL2/README.md +0 -0
  168. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/IAS/README.md +0 -0
  169. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/INTA/README.md +0 -0
  170. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/LAB23/README.md +0 -0
  171. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00027_211119_140441.yaml +0 -0
  172. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00028_211119_160406.yaml +0 -0
  173. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00029_211119_172918.yaml +0 -0
  174. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00030_211122_103604.yaml +0 -0
  175. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00031_211123_124900.yaml +0 -0
  176. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/common/telemetry/tm-dictionary-default.csv +0 -0
  177. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/conf/SETUP_20250114_1519.yaml +0 -0
  178. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/conf/config-file.toml +0 -0
  179. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/data/cal_coeff_1234.csv +0 -0
  180. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/data/calibration.csv +0 -0
  181. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/data/calibration.yaml +0 -0
  182. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/data/command.yaml +0 -0
  183. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/data/corrupt.yaml +0 -0
  184. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/data/data-file.txt +0 -0
  185. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/data/empty_data_file.txt +0 -0
  186. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/data/empty_yaml_file.yaml +0 -0
  187. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/data/local_settings.yaml +0 -0
  188. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/data/new_local_settings.yaml +0 -0
  189. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/data/test_setup.yaml +0 -0
  190. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/icons/hourglass.svg +0 -0
  191. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/icons/keyboard.png +0 -0
  192. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/icons/soap_sponge.svg +0 -0
  193. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/lib/dev1/shared-lib.so +0 -0
  194. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/data/lib/dev2/shared-lib.so +0 -0
  195. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/fixtures/default_env.py +0 -0
  196. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/fixtures/helpers.py +0 -0
  197. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/scripts/empty_process.py +0 -0
  198. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/scripts/handle_sigterm.py +0 -0
  199. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/scripts/process_with_children.py +0 -0
  200. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/scripts/raise_value_error.py +0 -0
  201. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/scripts/void-0.py +0 -0
  202. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/scripts/void-1.py +0 -0
  203. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_bits.py +0 -0
  204. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_config.py +0 -0
  205. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_decorators.py +0 -0
  206. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_device.py +0 -0
  207. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_env.py +0 -0
  208. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_fixtures.py +0 -0
  209. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_hk.py +0 -0
  210. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_influxdb_plugin.py +0 -0
  211. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_log.py +0 -0
  212. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_metrics.py +0 -0
  213. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_plugin.py +0 -0
  214. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_process.py +0 -0
  215. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_ratelimit.py +0 -0
  216. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_resource.py +0 -0
  217. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_response.py +0 -0
  218. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_settings.py +0 -0
  219. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_setup.py +0 -0
  220. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_signal.py +0 -0
  221. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_state.py +0 -0
  222. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_system.py +0 -0
  223. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_task.py +0 -0
  224. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-common/tests/test_zmq_ser.py +0 -0
  225. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/README.md +0 -0
  226. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/src/cgse_coordinates/__init__.py +0 -0
  227. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/src/cgse_coordinates/settings.yaml +0 -0
  228. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/src/egse/coordinates/__init__.py +0 -0
  229. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/src/egse/coordinates/avoidance.py +0 -0
  230. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/src/egse/coordinates/cslmodel.py +0 -0
  231. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/src/egse/coordinates/laser_tracker_to_dict.py +0 -0
  232. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/src/egse/coordinates/point.py +0 -0
  233. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/src/egse/coordinates/pyplot.py +0 -0
  234. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/src/egse/coordinates/referenceFrame.py +0 -0
  235. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/src/egse/coordinates/refmodel.py +0 -0
  236. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/src/egse/coordinates/rotationMatrix.py +0 -0
  237. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/src/egse/coordinates/transform3d_addon.py +0 -0
  238. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/tests/test_avoidance.py +0 -0
  239. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/tests/test_coordinates_plot.py +0 -0
  240. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/tests/test_coordinates_serialize.py +0 -0
  241. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/tests/test_point.py +0 -0
  242. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/tests/test_ref_model.py +0 -0
  243. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/tests/test_reference_frames.py +0 -0
  244. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-coordinates/tests/test_refmodel.py +0 -0
  245. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/.envrc.disabled +0 -0
  246. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/README.md +0 -0
  247. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/service_registry.db +0 -0
  248. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/cgse_core/__init__.py +0 -0
  249. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/cgse_core/_start.py +0 -0
  250. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/cgse_core/_status.py +0 -0
  251. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/cgse_core/_stop.py +0 -0
  252. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/cgse_core/cgse_explore.py +0 -0
  253. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/cgse_core/services.py +0 -0
  254. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/cgse_core/settings.yaml +0 -0
  255. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/_setup_core.py +0 -0
  256. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/async_control.py +0 -0
  257. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/command.py +0 -0
  258. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/confman/__main__.py +0 -0
  259. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/confman/confman_cs.py +0 -0
  260. /cgse-0.16.3/libs/cgse-core/src/egse/connect.py → /cgse-0.16.4/libs/cgse-core/src/egse/connect-todo.py +0 -0
  261. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/icons/busy.svg +0 -0
  262. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/icons/operational-mode.svg +0 -0
  263. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/icons/pm_ui.svg +0 -0
  264. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/icons/simulator-mode.svg +0 -0
  265. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/icons/start-process-button.svg +0 -0
  266. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/icons/stop-process-button.svg +0 -0
  267. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/icons/user-interface.svg +0 -0
  268. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/listener.py +0 -0
  269. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/logger/__init__.py +0 -0
  270. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/logger/__main__.py +0 -0
  271. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/metricshub/__init__.py +0 -0
  272. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/metricshub/server.py +0 -0
  273. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/mixin.py +0 -0
  274. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/monitoring.py +0 -0
  275. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/notifyhub/__init__.py +0 -0
  276. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/notifyhub/client.py +0 -0
  277. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/notifyhub/event.py +0 -0
  278. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/notifyhub/server.py +0 -0
  279. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/notifyhub/services.py +0 -0
  280. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/notifyhub/test.py +0 -0
  281. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/procman/procman_protocol.py +0 -0
  282. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/procman/procman_ui.py +0 -0
  283. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/protocol.py +0 -0
  284. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/proxy.py +0 -0
  285. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/registry/__init__.py +0 -0
  286. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/registry/backend.py +0 -0
  287. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/registry/server.py +0 -0
  288. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/registry/service.py +0 -0
  289. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/services.py +0 -0
  290. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/services.yaml +0 -0
  291. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/storage/__main__.py +0 -0
  292. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/src/egse/storage/persistence.py +0 -0
  293. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/conftest.py +0 -0
  294. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/data/local_settings.yaml +0 -0
  295. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/fixtures/default_env.py +0 -0
  296. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/fixtures/helpers.py +0 -0
  297. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/fixtures/services.py +0 -0
  298. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/script_subscribe_to_notifyhub.py +0 -0
  299. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/script_test_async_registry_client.py +0 -0
  300. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/script_test_registry_client_server.py +0 -0
  301. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/script_test_service_registry_server.py +0 -0
  302. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/script_test_sync_registry_client.py +0 -0
  303. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/services.py +0 -0
  304. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/stress_test_registry_server.py +0 -0
  305. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_async_control.py +0 -0
  306. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_client_server_interaction.py +0 -0
  307. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_cm_cs.py +0 -0
  308. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_command.py +0 -0
  309. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_confman_setups.py +0 -0
  310. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_connect.py +0 -0
  311. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_control.py +0 -0
  312. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_dummy.py +0 -0
  313. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_event_notification.py +0 -0
  314. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_extensions.py +0 -0
  315. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_listener.py +0 -0
  316. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_logger.py +0 -0
  317. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_mixin.py +0 -0
  318. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_notify_hub.py +0 -0
  319. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_protocol.py +0 -0
  320. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_registry_backend.py +0 -0
  321. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_registry_service.py +0 -0
  322. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_server_running.py +0 -0
  323. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_server_running_with_fixture.py +0 -0
  324. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_settings_core.py +0 -0
  325. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-core/tests/test_zmq_microservice.py +0 -0
  326. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/README.md +0 -0
  327. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/__init__.py +0 -0
  328. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/buttons.py +0 -0
  329. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-start.svg +0 -0
  330. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-stop.svg +0 -0
  331. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/aeu-cs.svg +0 -0
  332. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-started.svg +0 -0
  333. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-stopped.svg +0 -0
  334. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/aeu_cs.svg +0 -0
  335. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/alert.svg +0 -0
  336. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/arrow-double-left.png +0 -0
  337. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/arrow-double-right.png +0 -0
  338. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/arrow-up.svg +0 -0
  339. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/backward.svg +0 -0
  340. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/busy.svg +0 -0
  341. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/cleaning.svg +0 -0
  342. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/color-scheme.svg +0 -0
  343. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/cs-connected-alert.svg +0 -0
  344. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/cs-connected-disabled.svg +0 -0
  345. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/cs-connected.svg +0 -0
  346. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/cs-not-connected.svg +0 -0
  347. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/double-left-arrow.svg +0 -0
  348. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/double-right-arrow.svg +0 -0
  349. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/erase-disabled.svg +0 -0
  350. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/erase.svg +0 -0
  351. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/fitsgen-start.svg +0 -0
  352. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/fitsgen-stop.svg +0 -0
  353. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/fitsgen.svg +0 -0
  354. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/forward.svg +0 -0
  355. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/fov-hk-start.svg +0 -0
  356. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/fov-hk-stop.svg +0 -0
  357. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/fov-hk.svg +0 -0
  358. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/front-desk.svg +0 -0
  359. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/home-actioned.svg +0 -0
  360. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/home-disabled.svg +0 -0
  361. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/home.svg +0 -0
  362. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/info.svg +0 -0
  363. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/invalid.png +0 -0
  364. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/led-green.svg +0 -0
  365. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/led-grey.svg +0 -0
  366. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/led-orange.svg +0 -0
  367. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/led-red.svg +0 -0
  368. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/led-square-green.svg +0 -0
  369. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/led-square-grey.svg +0 -0
  370. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/led-square-orange.svg +0 -0
  371. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/led-square-red.svg +0 -0
  372. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-green.svg +0 -0
  373. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-red.svg +0 -0
  374. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el+.svg +0 -0
  375. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el-.svg +0 -0
  376. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/location-marker.svg +0 -0
  377. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/logo-dpu.svg +0 -0
  378. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/logo-gimbal.svg +0 -0
  379. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/logo-huber.svg +0 -0
  380. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/logo-ogse.svg +0 -0
  381. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/logo-puna.svg +0 -0
  382. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/logo-tcs.svg +0 -0
  383. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/logo-zonda.svg +0 -0
  384. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/maximize.svg +0 -0
  385. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/meter.svg +0 -0
  386. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/more.svg +0 -0
  387. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-start.svg +0 -0
  388. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-stop.svg +0 -0
  389. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk.svg +0 -0
  390. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/observing-off.svg +0 -0
  391. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/observing-on.svg +0 -0
  392. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.png +0 -0
  393. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.svg +0 -0
  394. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/ops-mode.svg +0 -0
  395. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/play-green.svg +0 -0
  396. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/plugged-disabled.svg +0 -0
  397. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/plugged.svg +0 -0
  398. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/pm_ui.svg +0 -0
  399. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/power-button-green.svg +0 -0
  400. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/power-button-red.svg +0 -0
  401. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/power-button.svg +0 -0
  402. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/radar.svg +0 -0
  403. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/radioactive.svg +0 -0
  404. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/reload.svg +0 -0
  405. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/remote-control-off.svg +0 -0
  406. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/remote-control-on.svg +0 -0
  407. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/repeat-blue.svg +0 -0
  408. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/repeat.svg +0 -0
  409. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/settings.svg +0 -0
  410. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/shrink.svg +0 -0
  411. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/shutter.svg +0 -0
  412. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/sign-off.svg +0 -0
  413. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/sign-on.svg +0 -0
  414. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/sim-mode.svg +0 -0
  415. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/small-buttons-go.svg +0 -0
  416. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/small-buttons-minus.svg +0 -0
  417. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/small-buttons-plus.svg +0 -0
  418. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/sponge.svg +0 -0
  419. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/start-button-disabled.svg +0 -0
  420. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/start-button.svg +0 -0
  421. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/stop-button-disabled.svg +0 -0
  422. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/stop-button.svg +0 -0
  423. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/stop-red.svg +0 -0
  424. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/stop.svg +0 -0
  425. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/switch-disabled-square.svg +0 -0
  426. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/switch-disabled.svg +0 -0
  427. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/switch-off-square.svg +0 -0
  428. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/switch-off.svg +0 -0
  429. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/switch-on-square.svg +0 -0
  430. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/switch-on.svg +0 -0
  431. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/temperature-control.svg +0 -0
  432. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/th_ui_logo.svg +0 -0
  433. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/unplugged.svg +0 -0
  434. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/unvalid.png +0 -0
  435. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/user-interface.svg +0 -0
  436. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/vacuum.svg +0 -0
  437. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/valid.png +0 -0
  438. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-dark.svg +0 -0
  439. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-white.svg +0 -0
  440. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/led.py +0 -0
  441. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/limitswitch.py +0 -0
  442. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/states.py +0 -0
  443. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/styles/dark.qss +0 -0
  444. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/styles/default.qss +0 -0
  445. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/styles.qss +0 -0
  446. {cgse-0.16.3 → cgse-0.16.4}/libs/cgse-gui/src/egse/gui/switch.py +0 -0
  447. {cgse-0.16.3 → cgse-0.16.4}/mkdocs.yml +0 -0
  448. {cgse-0.16.3 → cgse-0.16.4}/noxfile.py +0 -0
  449. {cgse-0.16.3 → cgse-0.16.4}/overrides/.icons/custom/dbend-dark.svg +0 -0
  450. {cgse-0.16.3 → cgse-0.16.4}/overrides/.icons/custom/dbend-light.svg +0 -0
  451. {cgse-0.16.3 → cgse-0.16.4}/overrides/.icons/custom/gear.svg +0 -0
  452. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/cgse-tools/README.md +0 -0
  453. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/cgse-tools/src/cgse_tools/__init__.py +0 -0
  454. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/cgse-tools/src/cgse_tools/cgse_clock.py +0 -0
  455. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/cgse-tools/src/cgse_tools/cgse_commands.py +0 -0
  456. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/cgse-tools/src/cgse_tools/cgse_services.py +0 -0
  457. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/cgse-tools/src/egse/tools/status.py +0 -0
  458. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/README.md +0 -0
  459. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/justfile +0 -0
  460. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/noxfile.py +0 -0
  461. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/service_registry.db +0 -0
  462. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/__init__.py +0 -0
  463. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.py +0 -0
  464. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.yaml +0 -0
  465. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_acs.py +0 -0
  466. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_adev.py +0 -0
  467. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_cs.py +0 -0
  468. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_dev.py +0 -0
  469. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_mon.py +0 -0
  470. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_protocol.py +0 -0
  471. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_sim.py +0 -0
  472. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/__init__.py +0 -0
  473. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_explore.py +0 -0
  474. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_services.py +0 -0
  475. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/settings.yaml +0 -0
  476. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/temperature_readings.log +0 -0
  477. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/tests/script_daq6510_central_heating.py +0 -0
  478. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/tests/script_daq6510_mon.py +0 -0
  479. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/tests/script_plot_readings.py +0 -0
  480. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/tests/test_adev.py +0 -0
  481. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/keithley-tempcontrol/tests/test_dev.py +0 -0
  482. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/lakeshore-tempcontrol/README.md +0 -0
  483. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.py +0 -0
  484. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.yaml +0 -0
  485. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_cs.py +0 -0
  486. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_devif.py +0 -0
  487. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_protocol.py +0 -0
  488. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/__init__.py +0 -0
  489. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_explore.py +0 -0
  490. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_services.py +0 -0
  491. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/settings.yaml +0 -0
  492. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/lakeshore-tempcontrol/tests/test_lakeshore336_simulator.py +0 -0
  493. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/README.md +0 -0
  494. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/__init__.py +0 -0
  495. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/__init__.py +0 -0
  496. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/alpha.py +0 -0
  497. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/dynalpha.py +0 -0
  498. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod.py +0 -0
  499. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod_ui.py +0 -0
  500. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.py +0 -0
  501. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.yaml +0 -0
  502. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_cs.py +0 -0
  503. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_protocol.py +0 -0
  504. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_ui.py +0 -0
  505. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac.py +0 -0
  506. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac_regex.py +0 -0
  507. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.py +0 -0
  508. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.yaml +0 -0
  509. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_cs.py +0 -0
  510. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_protocol.py +0 -0
  511. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_sim.py +0 -0
  512. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_ui.py +0 -0
  513. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/punaplus.py +0 -0
  514. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.py +0 -0
  515. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.yaml +0 -0
  516. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_cs.py +0 -0
  517. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_devif.py +0 -0
  518. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_protocol.py +0 -0
  519. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_ui.py +0 -0
  520. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/__init__.py +0 -0
  521. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_explore.py +0 -0
  522. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_services.py +0 -0
  523. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/settings.yaml +0 -0
  524. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/tests/test_puna.py +0 -0
  525. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/tests/test_puna_cs.py +0 -0
  526. {cgse-0.16.3 → cgse-0.16.4}/projects/generic/symetrie-hexapod/tests/test_puna_simulator.py +0 -0
  527. {cgse-0.16.3 → cgse-0.16.4}/projects/plato/plato-fits/README.md +0 -0
  528. {cgse-0.16.3 → cgse-0.16.4}/projects/plato/plato-fits/src/egse/plugins/storage/fits.py +0 -0
  529. {cgse-0.16.3 → cgse-0.16.4}/projects/plato/plato-hdf5/README.md +0 -0
  530. {cgse-0.16.3 → cgse-0.16.4}/projects/plato/plato-hdf5/src/egse/plugins/storage/hdf5.py +0 -0
  531. {cgse-0.16.3 → cgse-0.16.4}/projects/plato/plato-spw/README.md +0 -0
  532. {cgse-0.16.3 → cgse-0.16.4}/projects/plato/plato-spw/src/egse/spw.py +0 -0
  533. {cgse-0.16.3 → cgse-0.16.4}/ruff.toml +0 -0
  534. {cgse-0.16.3 → cgse-0.16.4}/scratch/advanced-process-monitoring.py +0 -0
  535. {cgse-0.16.3 → cgse-0.16.4}/scratch/live-process-monitoring.py +0 -0
  536. {cgse-0.16.3 → cgse-0.16.4}/scratch/match-case.py +0 -0
  537. {cgse-0.16.3 → cgse-0.16.4}/scratch/processes.json +0 -0
  538. {cgse-0.16.3 → cgse-0.16.4}/scratch/simple-process-monitoring.py +0 -0
  539. {cgse-0.16.3 → cgse-0.16.4}/temperature_readings.log +0 -0
  540. {cgse-0.16.3 → cgse-0.16.4}/test_service_registry.db +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cgse
3
- Version: 0.16.3
3
+ Version: 0.16.4
4
4
  Summary: Generic Common-EGSE: Commanding and monitoring lab equipment
5
5
  Author: IvS KU Leuven
6
6
  Maintainer-email: Rik Huygen <rik.huygen@kuleuven.be>, Sara Regibo <sara.regibo@kuleuven.be>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-common"
3
- version = "0.16.3"
3
+ version = "0.16.4"
4
4
  description = "Software framework to support hardware testing"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-coordinates"
3
- version = "0.16.3"
3
+ version = "0.16.4"
4
4
  description = "Reference Frames and Coordinate Transofrmations for CGSE"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-core"
3
- version = "0.16.3"
3
+ version = "0.16.4"
4
4
  description = "Core services for the CGSE framework"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -805,91 +805,3 @@ class ControlServer(abc.ABC):
805
805
  the `egse.storage` module might not be available, it is provided by the `cgse-core` package.
806
806
  """
807
807
  pass
808
-
809
- async def notify_listeners(self, event_id: int = 0, context: dict = None):
810
- """
811
- Notifies registered listeners about an event.
812
-
813
- This function creates an Event object with the provided `event_id` and `context`
814
- and notifies all registered listeners with the created event.
815
-
816
- Args:
817
- event_id (int, optional): The identifier for the event. Defaults to 0.
818
- context (dict, optional): Additional context information associated with the event.
819
- Defaults to None.
820
-
821
- Note:
822
- The notification is performed by the `notify_listeners` method of the `listeners` object
823
- associated with this instance.
824
- The notification is executed as a task to avoid blocking the commanding chain.
825
- """
826
- self.logger.info(f"Notifying listeners for {EVENT_ID(event_id).name}")
827
-
828
- # Create a task for notification instead of a daemon thread
829
- event = Event(event_id=event_id, context=context)
830
- asyncio.create_task(self.listeners.notify_listeners_async(event))
831
-
832
- def get_listener_names(self):
833
- return self.listeners.get_listener_names()
834
-
835
- async def register_as_listener(self, proxy: Type, listener: dict):
836
- """
837
- Registers a listener with the specified proxy.
838
-
839
- This function attempts to add the provided listener to the specified proxy.
840
- It employs a retry mechanism to handle potential ConnectionError exceptions.
841
-
842
- Args:
843
- proxy: A callable object representing the proxy to which the listener will be added.
844
- listener (dict): The listener to be registered. Should be a dictionary containing
845
- listener details.
846
-
847
- Raises:
848
- ConnectionError: If the connection to the proxy encounters issues even after
849
- multiple retry attempts.
850
- """
851
-
852
- @retry_with_exponential_backoff(exceptions=[ConnectionError])
853
- async def _add_listener(proxy, listener):
854
- async with proxy() as x, x.get_service_proxy() as srv:
855
- rc = await srv.add_listener_async(listener)
856
- _LOGGER.info(f"Response from {proxy.__name__} service add_listener: {rc}")
857
-
858
- _LOGGER.info(f"Registering {self.__class__.__name__} as a listener to {proxy.__name__}")
859
- await _add_listener(proxy, listener)
860
-
861
- async def unregister_as_listener(self, proxy: Type, listener: dict):
862
- """
863
- Removes a registered listener from the specified proxy.
864
-
865
- This function attempts to remove the provided listener from the specified proxy.
866
- It employs a retry mechanism to handle potential ConnectionError exceptions.
867
-
868
- Args:
869
- proxy: A callable object representing the proxy from which the listener will be removed.
870
- listener (dict): The listener to be removed. Should be a dictionary containing
871
- listener details.
872
-
873
- Raises:
874
- ConnectionError: If the connection to the proxy encounters issues even after
875
- multiple retry attempts.
876
- """
877
-
878
- @retry(times=5, exceptions=[ConnectionError])
879
- async def _remove_listener(proxy, listener):
880
- async with proxy() as x, x.get_service_proxy() as srv:
881
- rc = await srv.remove_listener_async(listener)
882
- _LOGGER.debug(f"Response from remove_listener: {rc=}")
883
-
884
- # Check if the CS is available
885
- try:
886
- async with proxy():
887
- pass
888
- except ConnectionError:
889
- _LOGGER.warning(
890
- f"The {proxy.__class__.__name__} endpoint is not responding, {listener['name']} not un-registered."
891
- )
892
- return
893
-
894
- _LOGGER.info(f"Removing {self.__class__.__name__} as a listener from {proxy.__name__}")
895
- await _remove_listener(proxy, listener)
@@ -138,7 +138,6 @@ from egse.env import get_conf_repo_location
138
138
  from egse.env import get_project_name
139
139
  from egse.env import get_site_id
140
140
  from egse.exceptions import InternalError
141
- from egse.listener import EVENT_ID
142
141
  from egse.log import logger
143
142
  from egse.notifyhub.event import NotificationEvent
144
143
  from egse.notifyhub.services import EventPublisher
@@ -552,10 +551,6 @@ class ConfigurationManagerInterface:
552
551
  def get_setup_for_obsid(self, obsid):
553
552
  raise NotImplementedError
554
553
 
555
- @dynamic_interface
556
- def get_listener_names(self):
557
- raise NotImplementedError
558
-
559
554
 
560
555
  class ConfigurationManagerController(ConfigurationManagerInterface):
561
556
  """Handles the commands that are sent to the configuration manager.
@@ -763,12 +758,6 @@ class ConfigurationManagerController(ConfigurationManagerInterface):
763
758
  self._sut_name = _get_sut_id_for_setup(self._setup)
764
759
  logger.info(f"New Setup loaded from {setup_file}")
765
760
  save_last_setup_id(self._setup_id)
766
- if self._control_server:
767
- logger.info("Notifying listeners for a new Setup!")
768
- with Timer(f"Notify Listeners for Setup change, Setup={self._setup_id}"):
769
- self._control_server.notify_listeners(
770
- EVENT_ID.SETUP, {"event_type": "new_setup", "setup_id": self._setup_id}
771
- )
772
761
 
773
762
  with EventPublisher() as pub:
774
763
  pub.publish(
@@ -952,12 +941,6 @@ class ConfigurationManagerController(ConfigurationManagerInterface):
952
941
  logger.info(f"New Setup was submitted and loaded: {setup_id=}")
953
942
  self._sut_name = self._setup.camera.ID.lower()
954
943
  save_last_setup_id(setup_id)
955
- if self._control_server:
956
- logger.info("Notifying listeners for a new Setup!")
957
- with Timer(f"Notify Listeners for Setup change, Setup={self._setup_id}"):
958
- self._control_server.notify_listeners(
959
- EVENT_ID.SETUP, {"event_type": "new_setup", "setup_id": setup_id}
960
- )
961
944
 
962
945
  with EventPublisher() as pub:
963
946
  pub.publish(
@@ -980,10 +963,6 @@ class ConfigurationManagerController(ConfigurationManagerInterface):
980
963
 
981
964
  return int(setup_id) + 1
982
965
 
983
- def get_listener_names(self):
984
- """Returns the names of the control servers that are listening for a new Setup."""
985
- return self._control_server.get_listener_names()
986
-
987
966
 
988
967
  class ConfigurationManagerCommand(ClientServerCommand):
989
968
  pass
@@ -1119,7 +1098,6 @@ def get_status():
1119
1098
  Monitoring port: {cm.get_monitoring_port()}
1120
1099
  Commanding port: {cm.get_commanding_port()}
1121
1100
  Service port: {cm.get_service_port()}
1122
- Listeners: {", ".join(cm.get_listener_names())}
1123
1101
  """
1124
1102
  )
1125
1103
  except ConnectionError as exc:
@@ -62,9 +62,6 @@ Commands:
62
62
  description: Submit a (new) Setup to the configuration manager. The Setup will be
63
63
  assigned a unique identifier and committed to the git repository.
64
64
  cmd: "{setup} {description} {replace}"
65
-
66
- get_listener_names:
67
- description: Returns a list of names of listeners that need to be notified when a new Setup is loaded.
68
65
 
69
66
  # Commands that are mainly used by the ProcessManager
70
67
 
@@ -0,0 +1,50 @@
1
+ from egse.log import logging
2
+ from egse.zmq_ser import connect_address
3
+
4
+ logger = logging.getLogger("egse.connect")
5
+
6
+ # random.seed(time.monotonic()) # uncomment for testing only, main application should set a seed.
7
+
8
+
9
+ def get_endpoint(
10
+ service_type: str,
11
+ protocol: str = None,
12
+ hostname: str = None,
13
+ port: int = 0,
14
+ ):
15
+ """
16
+ Returns the endpoint for a service, either from the registry or by constructing
17
+ it from protocol, hostname and port.
18
+
19
+ If port is 0 (the default), attempt to retrieve the endpoint from the service registry.
20
+
21
+ Args:
22
+ service_type: The service type to look up in the registry.
23
+ protocol: Protocol to use if constructing the endpoint.
24
+ hostname: Hostname to use if constructing the endpoint.
25
+ port: Port to use if constructing the endpoint.
26
+
27
+ Returns:
28
+ The endpoint string.
29
+
30
+ Raises:
31
+ RuntimeError: If no endpoint can be determined.
32
+ """
33
+ endpoint = None
34
+ from egse.registry.client import RegistryClient
35
+
36
+ if port == 0:
37
+ with RegistryClient() as reg:
38
+ endpoint = reg.get_endpoint(service_type)
39
+ if endpoint:
40
+ logger.info(f"Endpoint for {service_type} found in registry: {endpoint}")
41
+ else:
42
+ logger.warning(f"No endpoint for {service_type} found in registry.")
43
+
44
+ if not endpoint:
45
+ if port == 0:
46
+ raise RuntimeError(f"No service registered as {service_type} and no port provided.")
47
+ endpoint = connect_address(protocol, hostname, port)
48
+ logger.info(f"Endpoint constructed from protocol/hostname/port: {endpoint}")
49
+
50
+ return endpoint
@@ -634,6 +634,7 @@ class ControlServer(metaclass=abc.ABCMeta):
634
634
  # FIXME: not sure if the stop heartbeat is necessary here, but I see that after
635
635
  # a re-registration signal, the heartbeat socket is None.
636
636
  # self.registry.stop_heartbeat()
637
+
637
638
  self.register_service(self.service_type)
638
639
 
639
640
  def register_service(self, service_type: str):
@@ -748,127 +749,3 @@ class ControlServer(metaclass=abc.ABCMeta):
748
749
  """
749
750
 
750
751
  pass
751
-
752
- def notify_listeners(self, event_id: int = 0, context: dict = None):
753
- """
754
- Notifies registered listeners about an event.
755
-
756
- This function creates an Event object with the provided `event_id` and `context`
757
- and notifies all registered listeners with the created event.
758
-
759
- Args:
760
- event_id (int, optional): The identifier for the event. Defaults to 0.
761
- context (dict, optional): Additional context information associated with the event.
762
- Defaults to None.
763
-
764
- Note:
765
- The notification is performed by the `notify_listeners` method of the `listeners` object
766
- associated with this instance.
767
- The notification is executed in a daemon thread to avoid blocking the commanding
768
- chain.
769
-
770
- """
771
- from egse.listener import Event, EVENT_ID
772
-
773
- self.logger.info(f"Notifying listeners for {EVENT_ID(event_id).name}")
774
-
775
- retry_thread = threading.Thread(
776
- target=self.listeners.notify_listeners, args=(Event(event_id=event_id, context=context),)
777
- )
778
- retry_thread.daemon = True
779
- retry_thread.start()
780
-
781
- def get_listener_names(self):
782
- return self.listeners.get_listener_names()
783
-
784
- def register_as_listener(self, proxy: Type, listener: dict):
785
- """
786
- Registers a listener with the specified proxy.
787
-
788
- This function attempts to add the provided listener to the specified proxy.
789
- It employs a retry mechanism to handle potential ConnectionError exceptions,
790
- making up to 5 attempts to add the listener.
791
-
792
- Args:
793
- proxy: A callable object representing the proxy to which the listener will be added.
794
- listener (dict): The listener to be registered. Should be a dictionary containing
795
- listener details.
796
-
797
- Raises:
798
- ConnectionError: If the connection to the proxy encounters issues even after
799
- multiple retry attempts.
800
-
801
- Note:
802
- The function runs in a separate daemon thread to avoid blocking the main thread.
803
-
804
- """
805
-
806
- @retry_with_exponential_backoff(exceptions=[ConnectionError])
807
- def _add_listener(proxy, listener):
808
- try:
809
- with proxy() as x, x.get_service_proxy() as srv:
810
- response = srv.add_listener(listener)
811
- logger.info(f"Response from {proxy.__name__} service add_listener: {response}")
812
- except Exception as exc:
813
- logger.error(f"Caught {type_name(exc)}: {exc} – listener '{listener['name']}' could not be registered")
814
-
815
- logger.info(f"Registering {self.__class__.__name__} as a listener to {proxy.__name__}")
816
-
817
- retry_thread = threading.Thread(target=_add_listener, args=(proxy, listener))
818
- retry_thread.daemon = True
819
- retry_thread.start()
820
-
821
- def unregister_as_listener(self, proxy: Type, listener: dict):
822
- """
823
- Removes a registered listener from the specified proxy.
824
-
825
- This function attempts to remove the provided listener from the specified proxy.
826
- It employs a retry mechanism to handle potential ConnectionError exceptions,
827
- making up to 5 attempts to add the listener.
828
-
829
- Args:
830
- proxy: A callable object representing the proxy from which the listener will be removed.
831
- listener (dict): The listener to be removed. Should be a dictionary containing
832
- listener details.
833
-
834
- Raises:
835
- ConnectionError: If the connection to the proxy encounters issues even after
836
- multiple retry attempts.
837
-
838
- Note:
839
- The function runs in a separate thread but will block until the de-registration is finished.
840
- The reason being that this method is usually called in a `after_serve` block so it needs to
841
- finish before the ZeroMQ context is destroyed.
842
-
843
- """
844
-
845
- @retry(times=5, exceptions=[ConnectionError])
846
- def _remove_listener(proxy, listener):
847
- with proxy() as x, x.get_service_proxy() as srv:
848
- rc = srv.remove_listener(listener)
849
- logger.debug(f"Response from remove_listener: {rc=}")
850
-
851
- # Since we do not have the endpoint available, we can not check if the CS is active, and to get the endpoint
852
- # we have to use the proxy anyway. So, let's use the proxy object to check if the CS is available.
853
-
854
- try:
855
- with proxy():
856
- pass
857
- except ConnectionError:
858
- logger.warning(
859
- f"The {proxy.__class__.__name__} endpoint is not responding, {listener['name']} not un-registered."
860
- )
861
- return
862
-
863
- logger.info(f"Removing {self.__class__.__name__} as a listener from {proxy.__name__}")
864
-
865
- retry_thread = threading.Thread(target=_remove_listener, args=(proxy, listener))
866
- retry_thread.daemon = False
867
- retry_thread.start()
868
-
869
- # Block until the listener has been removed. This is needed because this unregister function will usually
870
- # be called in the `after_server()` method of the control server (which is the listener) and if we do not
871
- # wait until the thread is finished the ZeroMQ Context will be destroyed before the reply can be sent.
872
- # Note: we could probably do without the thread, and directly call the `_remove_listener()` function.
873
-
874
- retry_thread.join()
@@ -56,8 +56,6 @@ from egse.device import DeviceConnectionError
56
56
  from egse.device import DeviceConnectionInterface
57
57
  from egse.device import DeviceTimeoutError
58
58
  from egse.device import DeviceTransport
59
- from egse.listener import Event
60
- from egse.listener import EventInterface
61
59
  from egse.log import logger
62
60
  from egse.protocol import CommandProtocol
63
61
  from egse.proxy import Proxy
@@ -110,12 +108,6 @@ commands = attrdict(
110
108
  "description": "Read a value from the device.",
111
109
  },
112
110
  "division": {"description": "Return a / b", "cmd": "{a} {b}"},
113
- "handle_event": {
114
- "description": "Notification of an event",
115
- "device_method": "handle_event",
116
- "cmd": "{event}",
117
- "response": "handle_device_method",
118
- },
119
111
  }
120
112
  )
121
113
 
@@ -172,7 +164,7 @@ class DummyInterface:
172
164
  raise NotImplementedError("The division() method has not been loaded from the service.")
173
165
 
174
166
 
175
- class DummyProxy(Proxy, DummyInterface, EventInterface):
167
+ class DummyProxy(Proxy, DummyInterface):
176
168
  """
177
169
  The Proxy class for the dummy device.
178
170
 
@@ -193,7 +185,7 @@ class DummyProxy(Proxy, DummyInterface, EventInterface):
193
185
  super().__init__(connect_address(protocol, hostname, port), timeout=timeout)
194
186
 
195
187
 
196
- class DummyController(DummyInterface, EventInterface):
188
+ class DummyController(DummyInterface):
197
189
  """
198
190
  The controller class for the dummy device.
199
191
 
@@ -214,32 +206,6 @@ class DummyController(DummyInterface, EventInterface):
214
206
  def division(self, a, b) -> float:
215
207
  return a / b
216
208
 
217
- def handle_event(self, event: Event) -> str:
218
- _exec_in_thread = False
219
-
220
- def _handle_event(_event):
221
- logger.info(f"An event is received, {_event=}")
222
- logger.info(f"CM CS active? {is_control_server_active()}")
223
- time.sleep(5.0)
224
- logger.info(f"CM CS active? {is_control_server_active()}")
225
- logger.info(f"An event is processed, {_event=}")
226
-
227
- if _exec_in_thread:
228
- # We execute this function in a daemon thread so the acknowledgment is
229
- # sent back immediately (the ACK means 'command received and will be
230
- # executed').
231
-
232
- retry_thread = threading.Thread(target=_handle_event, args=(event,))
233
- retry_thread.daemon = True
234
- retry_thread.start()
235
- else:
236
- # An alternative to the daemon thread is to create a scheduled task that will be executed
237
- # after the event is acknowledged.
238
-
239
- self._cs.schedule_task(partial(_handle_event, event))
240
-
241
- return "ACK"
242
-
243
209
 
244
210
  class DummyProtocol(CommandProtocol):
245
211
  """
@@ -319,21 +285,6 @@ class DummyControlServer(ControlServer):
319
285
 
320
286
  self.set_hk_delay(ctrl_settings.HK_DELAY)
321
287
 
322
- from egse.confman import ConfigurationManagerProxy
323
- from egse.listener import EVENT_ID
324
-
325
- # The following import is needed because without this import, DummyProxy would
326
- # be <class '__main__.DummyProxy'> instead of `egse.dummy.DummyProxy` and the
327
- # ConfigurationManager control server will not be able to de-pickle
328
- # the register message.
329
-
330
- from egse.dummy import DummyProxy # noqa
331
-
332
- self.register_as_listener(
333
- proxy=ConfigurationManagerProxy,
334
- listener={"name": "Dummy CS", "proxy": DummyProxy, "event_id": EVENT_ID.SETUP},
335
- )
336
-
337
288
  def get_communication_protocol(self):
338
289
  return "tcp"
339
290
 
@@ -349,13 +300,11 @@ class DummyControlServer(ControlServer):
349
300
  def get_storage_mnemonic(self):
350
301
  return "DUMMY-HK"
351
302
 
352
- def after_serve(self):
353
- logger.debug("After Serve: unregistering Dummy CS")
354
-
355
- with contextlib.suppress(ModuleNotFoundError):
356
- from egse.confman import ConfigurationManagerProxy
303
+ def before_serve(self) -> None:
304
+ logger.debug("Before Serve ...")
357
305
 
358
- self.unregister_as_listener(proxy=ConfigurationManagerProxy, listener={"name": "Dummy CS"})
306
+ def after_serve(self):
307
+ logger.debug("After Serve ...")
359
308
 
360
309
 
361
310
  class DummyDeviceEthernetInterface(DeviceConnectionInterface, DeviceTransport):
@@ -62,7 +62,7 @@ LOG_NAME_TO_LEVEL = {
62
62
 
63
63
  # LOG_FORMAT_FILE = "%(asctime)s:%(processName)s:%(process)s:%(levelname)s:%(lineno)d:%(name)s:%(message)s"
64
64
  LOG_FORMAT_FILE = (
65
- "{asctime} [{levelname:>8s}] [{processName:>12s}] {message} ({process}:{package_name}:{filename}:{lineno:d})"
65
+ "{asctime} [{levelname:>8s}] [{processName:>12s}] {message} ({name}:{process}:{package_name}:{filename}:{lineno:d})"
66
66
  )
67
67
  LOG_FORMAT_FILE_STYLE = "{"
68
68
 
@@ -8,15 +8,14 @@ from egse.command import ClientServerCommand
8
8
  from egse.connect import get_endpoint
9
9
  from egse.control import is_control_server_active
10
10
  from egse.decorators import dynamic_interface
11
- from egse.listener import EventInterface, Event
12
11
  from egse.plugin import entry_points
13
12
  from egse.process import SubProcess
14
13
  from egse.proxy import Proxy
15
14
  from egse.registry.client import RegistryClient
16
15
  from egse.settings import Settings
17
- from egse.setup import Setup, load_setup
16
+ from egse.setup import Setup
17
+ from egse.setup import load_setup
18
18
  from egse.storage import is_storage_manager_active
19
- from egse.zmq_ser import connect_address
20
19
 
21
20
  HERE = Path(__file__).parent
22
21
  LOGGER = logging.getLogger("egse.procman")
@@ -210,7 +209,7 @@ class ProcessManagerCommand(ClientServerCommand):
210
209
  pass
211
210
 
212
211
 
213
- class ProcessManagerInterface(EventInterface):
212
+ class ProcessManagerInterface:
214
213
  def __init__(self):
215
214
  super().__init__()
216
215
  self.setup = load_setup()
@@ -358,12 +357,6 @@ class ProcessManagerController(ProcessManagerInterface):
358
357
  except AttributeError:
359
358
  return {}
360
359
 
361
- def handle_event(self, event: Event):
362
- LOGGER.info(f"An event is received, {event=}")
363
- LOGGER.info(f"Setup ID: {event.context['setup_id']}")
364
-
365
- self.setup = load_setup(setup_id=event.context["setup_id"])
366
-
367
360
  def start_process(self, start_cmd: StartCommand):
368
361
  # subprocess.call(start_cmd.cmd, shell=True) -> PM hangs
369
362
  process = SubProcess("MyApp", [start_cmd.cmd], shell=True)
@@ -12,10 +12,6 @@ Commands:
12
12
  get_device_ids:
13
13
  description: Returns a list of the identifiers of the devices in the current setup.
14
14
 
15
- handle_event:
16
- description: Notification of an event
17
- cmd: '{event}'
18
-
19
15
  start_process:
20
16
  description: Starts a process
21
17
  cmd: '{start_cmd}'
@@ -30,4 +26,4 @@ Commands:
30
26
 
31
27
  get_device_process_status:
32
28
  description: Returns the status of a process
33
- cmd: '{status_cmd}'
29
+ cmd: '{status_cmd}'
@@ -6,7 +6,6 @@ Manager (from the setup).
6
6
  The Process Manager Control Server is implemented as a standard control server.
7
7
  """
8
8
 
9
- import logging
10
9
  import multiprocessing
11
10
  import sys
12
11
 
@@ -15,12 +14,10 @@ import typer
15
14
  import zmq
16
15
  from rich.console import Console
17
16
 
18
- from egse.confman import ConfigurationManagerProxy
19
17
  from egse.control import ControlServer
20
- from egse.listener import EVENT_ID
18
+ from egse.log import logging
21
19
  from egse.logger import remote_logging
22
20
  from egse.process import SubProcess
23
- from egse.procman import ProcessManagerProxy
24
21
  from egse.procman.procman_protocol import ProcessManagerProtocol
25
22
  from egse.registry.client import RegistryClient
26
23
  from egse.services import ServiceProxy
@@ -56,10 +53,6 @@ class ProcessManagerControlServer(ControlServer):
56
53
 
57
54
  self.logger.debug(f"Binding ZeroMQ socket to {self.device_protocol.get_bind_address()}")
58
55
 
59
- self.register_as_listener(
60
- proxy=ConfigurationManagerProxy,
61
- listener={"name": "Process Manager CS", "proxy": ProcessManagerProxy, "event_id": EVENT_ID.SETUP},
62
- )
63
56
  self.device_protocol.bind(self.dev_ctrl_cmd_sock)
64
57
 
65
58
  self.poller.register(self.dev_ctrl_cmd_sock, zmq.POLLIN)
@@ -116,10 +109,6 @@ class ProcessManagerControlServer(ControlServer):
116
109
  unregister_from_storage_manager(origin=self.get_storage_mnemonic())
117
110
 
118
111
  def after_serve(self):
119
- from egse.confman import ConfigurationManagerProxy
120
-
121
- self.unregister_as_listener(proxy=ConfigurationManagerProxy, listener={"name": "Process Manager CS"})
122
-
123
112
  self.deregister_service()
124
113
 
125
114
 
@@ -477,8 +477,15 @@ class RegistryClient:
477
477
  def stop_heartbeat(self) -> None:
478
478
  if self._hb_stop_event:
479
479
  self._hb_stop_event.set()
480
- if self._hb_thread and self._hb_thread.is_alive():
481
- self._hb_thread.join(timeout=THREAD_JOIN_TIMEOUT)
480
+ if self._hb_thread:
481
+ if self._hb_thread.is_alive():
482
+ self.logger.debug(f"Heartbeat thread is alive, joining with timeout={THREAD_JOIN_TIMEOUT}s")
483
+ self._hb_thread.join(timeout=THREAD_JOIN_TIMEOUT)
484
+ else:
485
+ self.logger.debug("Heartbeat thread is not alive.")
486
+ self._hb_thread = None
487
+ else:
488
+ self.logger.debug("No heartbeat thread defined.")
482
489
 
483
490
  def close(self) -> None:
484
491
  """Clean up resources."""
@@ -128,8 +128,6 @@ from egse.decorators import dynamic_interface
128
128
  from egse.env import get_data_storage_location
129
129
  from egse.env import get_site_id
130
130
  from egse.exceptions import Error
131
- from egse.listener import Event
132
- from egse.listener import EventInterface
133
131
  from egse.log import logger
134
132
  from egse.obsid import ObservationIdentifier
135
133
  from egse.obsid import TEST_LAB
@@ -715,7 +713,7 @@ def determine_counter_from_dir_list(location, pattern, index: int = -1):
715
713
  return 1
716
714
 
717
715
 
718
- class StorageController(StorageInterface, EventInterface):
716
+ class StorageController(StorageInterface):
719
717
  """
720
718
  The Storage Controller handles the registration of components, the start and end of an
721
719
  observation/test and the dispatching of the persistence functions in save.
@@ -1051,27 +1049,12 @@ class StorageController(StorageInterface, EventInterface):
1051
1049
  self._setup = setup
1052
1050
  logger.info(f"Setup {setup.get_id()} loaded in the Storage manager.")
1053
1051
 
1054
- def handle_event(self, event: Event) -> str:
1055
- logger.info(f"An event is received, {event=}")
1056
-
1057
- logger.warning(
1058
- f"----------> This functionality has been replaced with the notification events and will be removed soon."
1059
- )
1060
-
1061
- # try:
1062
- # if event.type == "new_setup":
1063
- # self._cs.schedule_task(partial(self.load_setup, setup_id=event.context["setup_id"]))
1064
- # except KeyError as exc:
1065
- # return f"Expected event context to contain the following key: {exc}"
1066
-
1067
- return "ACK"
1068
-
1069
1052
 
1070
1053
  class StorageCommand(ClientServerCommand):
1071
1054
  pass
1072
1055
 
1073
1056
 
1074
- class StorageProxy(Proxy, StorageInterface, EventInterface):
1057
+ class StorageProxy(Proxy, StorageInterface):
1075
1058
  """
1076
1059
  The StorageProxy class is used to connect to the Storage Manager (control server) and
1077
1060
  send commands remotely.