cgse 0.16.8__tar.gz → 0.16.9__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 (541) hide show
  1. {cgse-0.16.8 → cgse-0.16.9}/PKG-INFO +1 -1
  2. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/pyproject.toml +1 -1
  3. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/pyproject.toml +1 -1
  4. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/pyproject.toml +1 -1
  5. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/registry/client.py +9 -115
  6. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/storage/storage_cs.py +2 -7
  7. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_registry_service.py +0 -67
  8. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/pyproject.toml +1 -1
  9. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/cgse-tools/pyproject.toml +1 -1
  10. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/pyproject.toml +1 -1
  11. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/lakeshore-tempcontrol/pyproject.toml +1 -1
  12. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/pyproject.toml +1 -1
  13. {cgse-0.16.8 → cgse-0.16.9}/projects/plato/plato-fits/pyproject.toml +1 -1
  14. {cgse-0.16.8 → cgse-0.16.9}/projects/plato/plato-hdf5/pyproject.toml +1 -1
  15. {cgse-0.16.8 → cgse-0.16.9}/projects/plato/plato-spw/pyproject.toml +1 -1
  16. {cgse-0.16.8 → cgse-0.16.9}/pyproject.toml +1 -1
  17. {cgse-0.16.8 → cgse-0.16.9}/service_registry.db +0 -0
  18. {cgse-0.16.8 → cgse-0.16.9}/service_registry.db-shm +0 -0
  19. cgse-0.16.9/service_registry.db-wal +0 -0
  20. cgse-0.16.8/service_registry.db-wal +0 -0
  21. {cgse-0.16.8 → cgse-0.16.9}/.github/workflows/ruff-format-check.yaml +0 -0
  22. {cgse-0.16.8 → cgse-0.16.9}/.gitignore +0 -0
  23. {cgse-0.16.8 → cgse-0.16.9}/README.md +0 -0
  24. {cgse-0.16.8 → cgse-0.16.9}/buffer_vat.log +0 -0
  25. {cgse-0.16.8 → cgse-0.16.9}/buffer_vat.png +0 -0
  26. {cgse-0.16.8 → cgse-0.16.9}/bump.py +0 -0
  27. {cgse-0.16.8 → cgse-0.16.9}/conftest.py +0 -0
  28. {cgse-0.16.8 → cgse-0.16.9}/docs/api/bits.md +0 -0
  29. {cgse-0.16.8 → cgse-0.16.9}/docs/api/calibration.md +0 -0
  30. {cgse-0.16.8 → cgse-0.16.9}/docs/api/command.md +0 -0
  31. {cgse-0.16.8 → cgse-0.16.9}/docs/api/config.md +0 -0
  32. {cgse-0.16.8 → cgse-0.16.9}/docs/api/control.md +0 -0
  33. {cgse-0.16.8 → cgse-0.16.9}/docs/api/counter.md +0 -0
  34. {cgse-0.16.8 → cgse-0.16.9}/docs/api/decorators.md +0 -0
  35. {cgse-0.16.8 → cgse-0.16.9}/docs/api/device.md +0 -0
  36. {cgse-0.16.8 → cgse-0.16.9}/docs/api/dicts.md +0 -0
  37. {cgse-0.16.8 → cgse-0.16.9}/docs/api/dummy.md +0 -0
  38. {cgse-0.16.8 → cgse-0.16.9}/docs/api/env.md +0 -0
  39. {cgse-0.16.8 → cgse-0.16.9}/docs/api/exceptions.md +0 -0
  40. {cgse-0.16.8 → cgse-0.16.9}/docs/api/heartbeat.md +0 -0
  41. {cgse-0.16.8 → cgse-0.16.9}/docs/api/hk.md +0 -0
  42. {cgse-0.16.8 → cgse-0.16.9}/docs/api/index.md +0 -0
  43. {cgse-0.16.8 → cgse-0.16.9}/docs/api/listener.md +0 -0
  44. {cgse-0.16.8 → cgse-0.16.9}/docs/api/metrics.md +0 -0
  45. {cgse-0.16.8 → cgse-0.16.9}/docs/api/mixin.md +0 -0
  46. {cgse-0.16.8 → cgse-0.16.9}/docs/api/monitoring.md +0 -0
  47. {cgse-0.16.8 → cgse-0.16.9}/docs/api/observer.md +0 -0
  48. {cgse-0.16.8 → cgse-0.16.9}/docs/api/obsid.md +0 -0
  49. {cgse-0.16.8 → cgse-0.16.9}/docs/api/persistence.md +0 -0
  50. {cgse-0.16.8 → cgse-0.16.9}/docs/api/plugin.md +0 -0
  51. {cgse-0.16.8 → cgse-0.16.9}/docs/api/process.md +0 -0
  52. {cgse-0.16.8 → cgse-0.16.9}/docs/api/reload.md +0 -0
  53. {cgse-0.16.8 → cgse-0.16.9}/docs/api/settings.md +0 -0
  54. {cgse-0.16.8 → cgse-0.16.9}/docs/api/setup.md +0 -0
  55. {cgse-0.16.8 → cgse-0.16.9}/docs/api/system.md +0 -0
  56. {cgse-0.16.8 → cgse-0.16.9}/docs/custom_theme/main.html +0 -0
  57. {cgse-0.16.8 → cgse-0.16.9}/docs/dev_guide/coding_style.md +0 -0
  58. {cgse-0.16.8 → cgse-0.16.9}/docs/dev_guide/docs.md +0 -0
  59. {cgse-0.16.8 → cgse-0.16.9}/docs/dev_guide/index.md +0 -0
  60. {cgse-0.16.8 → cgse-0.16.9}/docs/dev_guide/installation.md +0 -0
  61. {cgse-0.16.8 → cgse-0.16.9}/docs/dev_guide/monitoring.md +0 -0
  62. {cgse-0.16.8 → cgse-0.16.9}/docs/dev_guide/monorepo.md +0 -0
  63. {cgse-0.16.8 → cgse-0.16.9}/docs/dev_guide/nox.md +0 -0
  64. {cgse-0.16.8 → cgse-0.16.9}/docs/dev_guide/plugins.md +0 -0
  65. {cgse-0.16.8 → cgse-0.16.9}/docs/dev_guide/project-configuration.md +0 -0
  66. {cgse-0.16.8 → cgse-0.16.9}/docs/dev_guide/unit_testing.md +0 -0
  67. {cgse-0.16.8 → cgse-0.16.9}/docs/dev_guide/uv.md +0 -0
  68. {cgse-0.16.8 → cgse-0.16.9}/docs/dev_guide/versioning.md +0 -0
  69. {cgse-0.16.8 → cgse-0.16.9}/docs/getting_started.md +0 -0
  70. {cgse-0.16.8 → cgse-0.16.9}/docs/help.md +0 -0
  71. {cgse-0.16.8 → cgse-0.16.9}/docs/images/cli-cgse.png +0 -0
  72. {cgse-0.16.8 → cgse-0.16.9}/docs/images/github-fork-clone-dark.png +0 -0
  73. {cgse-0.16.8 → cgse-0.16.9}/docs/images/github-fork-clone.png +0 -0
  74. {cgse-0.16.8 → cgse-0.16.9}/docs/images/grafana-queries.png +0 -0
  75. {cgse-0.16.8 → cgse-0.16.9}/docs/images/icons/cgse-logo-blue.svg +0 -0
  76. {cgse-0.16.8 → cgse-0.16.9}/docs/images/icons/cgse-logo.svg +0 -0
  77. {cgse-0.16.8 → cgse-0.16.9}/docs/index.md +0 -0
  78. {cgse-0.16.8 → cgse-0.16.9}/docs/initialize.md +0 -0
  79. {cgse-0.16.8 → cgse-0.16.9}/docs/libs/cgse-common/images/load_methods.png +0 -0
  80. {cgse-0.16.8 → cgse-0.16.9}/docs/libs/cgse-common/index.md +0 -0
  81. {cgse-0.16.8 → cgse-0.16.9}/docs/libs/cgse-common/settings.md +0 -0
  82. {cgse-0.16.8 → cgse-0.16.9}/docs/libs/cgse-common/setup.md +0 -0
  83. {cgse-0.16.8 → cgse-0.16.9}/docs/libs/cgse-coordinates/index.md +0 -0
  84. {cgse-0.16.8 → cgse-0.16.9}/docs/libs/cgse-core/index.md +0 -0
  85. {cgse-0.16.8 → cgse-0.16.9}/docs/libs/cgse-core/notifyhub.md +0 -0
  86. {cgse-0.16.8 → cgse-0.16.9}/docs/libs/cgse-core/registry.md +0 -0
  87. {cgse-0.16.8 → cgse-0.16.9}/docs/libs/cgse-gui/index.md +0 -0
  88. {cgse-0.16.8 → cgse-0.16.9}/docs/libs/index.md +0 -0
  89. {cgse-0.16.8 → cgse-0.16.9}/docs/package_list.md +0 -0
  90. {cgse-0.16.8 → cgse-0.16.9}/docs/projects/cgse-tools.md +0 -0
  91. {cgse-0.16.8 → cgse-0.16.9}/docs/projects/index.md +0 -0
  92. {cgse-0.16.8 → cgse-0.16.9}/docs/projects/symetrie-hexapod.md +0 -0
  93. {cgse-0.16.8 → cgse-0.16.9}/docs/roadmap.md +0 -0
  94. {cgse-0.16.8 → cgse-0.16.9}/docs/stylesheets/custom.css +0 -0
  95. {cgse-0.16.8 → cgse-0.16.9}/docs/stylesheets/extra.css +0 -0
  96. {cgse-0.16.8 → cgse-0.16.9}/docs/tutorial.md +0 -0
  97. {cgse-0.16.8 → cgse-0.16.9}/docs/user_guide/cli.md +0 -0
  98. {cgse-0.16.8 → cgse-0.16.9}/docs/user_guide/index.md +0 -0
  99. {cgse-0.16.8 → cgse-0.16.9}/duckdb_metrics.db +0 -0
  100. {cgse-0.16.8 → cgse-0.16.9}/duckdb_metrics.db.wal +0 -0
  101. {cgse-0.16.8 → cgse-0.16.9}/identifier.sqlite +0 -0
  102. {cgse-0.16.8 → cgse-0.16.9}/justfile +0 -0
  103. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/README.md +0 -0
  104. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/justfile +0 -0
  105. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/noxfile.py +0 -0
  106. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/service_registry.db +0 -0
  107. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/cgse_common/__init__.py +0 -0
  108. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/cgse_common/cgse.py +0 -0
  109. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/cgse_common/settings.yaml +0 -0
  110. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/bits.py +0 -0
  111. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/calibration.py +0 -0
  112. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/config.py +0 -0
  113. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/counter.py +0 -0
  114. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/decorators.py +0 -0
  115. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/device.py +0 -0
  116. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/dicts.py +0 -0
  117. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/env.py +0 -0
  118. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/exceptions.py +0 -0
  119. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/heartbeat.py +0 -0
  120. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/hk.py +0 -0
  121. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/log.py +0 -0
  122. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/metrics.py +0 -0
  123. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/observer.py +0 -0
  124. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/obsid.py +0 -0
  125. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/persistence.py +0 -0
  126. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/plugin.py +0 -0
  127. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/plugins/metrics/duckdb.py +0 -0
  128. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/plugins/metrics/influxdb.py +0 -0
  129. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/plugins/metrics/timescaledb.py +0 -0
  130. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/process.py +0 -0
  131. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/py.typed +0 -0
  132. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/randomwalk.py +0 -0
  133. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/ratelimit.py +0 -0
  134. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/reload.py +0 -0
  135. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/resource.py +0 -0
  136. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/response.py +0 -0
  137. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/scpi.py +0 -0
  138. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/settings.py +0 -0
  139. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/settings.yaml +0 -0
  140. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/setup.py +0 -0
  141. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/signal.py +0 -0
  142. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/socketdevice.py +0 -0
  143. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/state.py +0 -0
  144. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/system.py +0 -0
  145. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/task.py +0 -0
  146. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/version.py +0 -0
  147. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/src/egse/zmq_ser.py +0 -0
  148. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/conftest.py +0 -0
  149. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/COPYING +0 -0
  150. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00028_201028_155259.yaml +0 -0
  151. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00029_201028_155331.yaml +0 -0
  152. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00030_210311_134043.yaml +0 -0
  153. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00080_210917_105245.yaml +0 -0
  154. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00081_210922_142259.yaml +0 -0
  155. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00082_210923_094458.yaml +0 -0
  156. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/CSL1/README.md +0 -0
  157. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/CSL2/README.md +0 -0
  158. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/IAS/README.md +0 -0
  159. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/INTA/README.md +0 -0
  160. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/LAB23/README.md +0 -0
  161. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00027_211119_140441.yaml +0 -0
  162. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00028_211119_160406.yaml +0 -0
  163. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00029_211119_172918.yaml +0 -0
  164. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00030_211122_103604.yaml +0 -0
  165. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00031_211123_124900.yaml +0 -0
  166. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/common/telemetry/tm-dictionary-default.csv +0 -0
  167. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/conf/SETUP_20250114_1519.yaml +0 -0
  168. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/conf/config-file.toml +0 -0
  169. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/data/cal_coeff_1234.csv +0 -0
  170. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/data/calibration.csv +0 -0
  171. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/data/calibration.yaml +0 -0
  172. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/data/command.yaml +0 -0
  173. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/data/corrupt.yaml +0 -0
  174. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/data/data-file.txt +0 -0
  175. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/data/empty_data_file.txt +0 -0
  176. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/data/empty_yaml_file.yaml +0 -0
  177. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/data/local_settings.yaml +0 -0
  178. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/data/new_local_settings.yaml +0 -0
  179. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/data/test_setup.yaml +0 -0
  180. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/icons/hourglass.svg +0 -0
  181. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/icons/keyboard.png +0 -0
  182. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/icons/soap_sponge.svg +0 -0
  183. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/lib/dev1/shared-lib.so +0 -0
  184. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/data/lib/dev2/shared-lib.so +0 -0
  185. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/fixtures/default_env.py +0 -0
  186. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/fixtures/helpers.py +0 -0
  187. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/scripts/empty_process.py +0 -0
  188. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/scripts/handle_sigterm.py +0 -0
  189. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/scripts/process_with_children.py +0 -0
  190. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/scripts/raise_value_error.py +0 -0
  191. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/scripts/void-0.py +0 -0
  192. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/scripts/void-1.py +0 -0
  193. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_bits.py +0 -0
  194. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_config.py +0 -0
  195. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_decorators.py +0 -0
  196. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_device.py +0 -0
  197. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_env.py +0 -0
  198. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_fixtures.py +0 -0
  199. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_hk.py +0 -0
  200. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_influxdb_plugin.py +0 -0
  201. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_log.py +0 -0
  202. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_metrics.py +0 -0
  203. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_plugin.py +0 -0
  204. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_process.py +0 -0
  205. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_ratelimit.py +0 -0
  206. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_resource.py +0 -0
  207. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_response.py +0 -0
  208. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_settings.py +0 -0
  209. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_setup.py +0 -0
  210. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_signal.py +0 -0
  211. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_state.py +0 -0
  212. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_system.py +0 -0
  213. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_task.py +0 -0
  214. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-common/tests/test_zmq_ser.py +0 -0
  215. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/README.md +0 -0
  216. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/src/cgse_coordinates/__init__.py +0 -0
  217. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/src/cgse_coordinates/settings.yaml +0 -0
  218. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/src/egse/coordinates/__init__.py +0 -0
  219. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/src/egse/coordinates/avoidance.py +0 -0
  220. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/src/egse/coordinates/cslmodel.py +0 -0
  221. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/src/egse/coordinates/laser_tracker_to_dict.py +0 -0
  222. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/src/egse/coordinates/point.py +0 -0
  223. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/src/egse/coordinates/pyplot.py +0 -0
  224. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/src/egse/coordinates/referenceFrame.py +0 -0
  225. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/src/egse/coordinates/refmodel.py +0 -0
  226. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/src/egse/coordinates/rotationMatrix.py +0 -0
  227. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/src/egse/coordinates/transform3d_addon.py +0 -0
  228. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/tests/test_avoidance.py +0 -0
  229. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/tests/test_coordinates_plot.py +0 -0
  230. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/tests/test_coordinates_serialize.py +0 -0
  231. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/tests/test_point.py +0 -0
  232. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/tests/test_ref_model.py +0 -0
  233. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/tests/test_reference_frames.py +0 -0
  234. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-coordinates/tests/test_refmodel.py +0 -0
  235. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/.envrc.disabled +0 -0
  236. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/README.md +0 -0
  237. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/service_registry.db +0 -0
  238. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/cgse_core/__init__.py +0 -0
  239. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/cgse_core/_start.py +0 -0
  240. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/cgse_core/_status.py +0 -0
  241. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/cgse_core/_stop.py +0 -0
  242. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/cgse_core/cgse_explore.py +0 -0
  243. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/cgse_core/services.py +0 -0
  244. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/cgse_core/settings.yaml +0 -0
  245. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/_setup_core.py +0 -0
  246. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/async_control.py +0 -0
  247. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/async_control_claude.py +0 -0
  248. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/command.py +0 -0
  249. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/confman/__init__.py +0 -0
  250. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/confman/__main__.py +0 -0
  251. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/confman/confman.yaml +0 -0
  252. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/confman/confman_cs.py +0 -0
  253. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/connect-todo.py +0 -0
  254. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/connect.py +0 -0
  255. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/control.py +0 -0
  256. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/dummy.py +0 -0
  257. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/icons/busy.svg +0 -0
  258. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/icons/operational-mode.svg +0 -0
  259. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/icons/pm_ui.svg +0 -0
  260. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/icons/simulator-mode.svg +0 -0
  261. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/icons/start-process-button.svg +0 -0
  262. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/icons/stop-process-button.svg +0 -0
  263. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/icons/user-interface.svg +0 -0
  264. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/listener.py +0 -0
  265. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/logger/__init__.py +0 -0
  266. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/logger/__main__.py +0 -0
  267. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/logger/log_cs.py +0 -0
  268. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/metricshub/__init__.py +0 -0
  269. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/metricshub/server.py +0 -0
  270. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/mixin.py +0 -0
  271. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/monitoring.py +0 -0
  272. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/notifyhub/__init__.py +0 -0
  273. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/notifyhub/client.py +0 -0
  274. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/notifyhub/event.py +0 -0
  275. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/notifyhub/server.py +0 -0
  276. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/notifyhub/services.py +0 -0
  277. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/notifyhub/test.py +0 -0
  278. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/procman/__init__.py +0 -0
  279. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/procman/procman.yaml +0 -0
  280. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/procman/procman_cs.py +0 -0
  281. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/procman/procman_protocol.py +0 -0
  282. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/procman/procman_ui.py +0 -0
  283. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/protocol.py +0 -0
  284. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/proxy.py +0 -0
  285. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/registry/__init__.py +0 -0
  286. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/registry/backend.py +0 -0
  287. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/registry/server.py +0 -0
  288. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/registry/service.py +0 -0
  289. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/services.py +0 -0
  290. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/services.yaml +0 -0
  291. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/storage/__init__.py +0 -0
  292. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/storage/__main__.py +0 -0
  293. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/storage/persistence.py +0 -0
  294. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/src/egse/storage/storage.yaml +0 -0
  295. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/conftest.py +0 -0
  296. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/data/local_settings.yaml +0 -0
  297. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/fixtures/default_env.py +0 -0
  298. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/fixtures/helpers.py +0 -0
  299. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/fixtures/services.py +0 -0
  300. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/script_subscribe_to_notifyhub.py +0 -0
  301. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/script_test_async_registry_client.py +0 -0
  302. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/script_test_registry_client_server.py +0 -0
  303. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/script_test_service_registry_server.py +0 -0
  304. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/script_test_sync_registry_client.py +0 -0
  305. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/services.py +0 -0
  306. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/stress_test_registry_server.py +0 -0
  307. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_async_control.py +0 -0
  308. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_client_server_interaction.py +0 -0
  309. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_cm_cs.py +0 -0
  310. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_command.py +0 -0
  311. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_confman_setups.py +0 -0
  312. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_connect.py +0 -0
  313. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_control.py +0 -0
  314. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_dummy.py +0 -0
  315. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_event_notification.py +0 -0
  316. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_extensions.py +0 -0
  317. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_listener.py +0 -0
  318. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_logger.py +0 -0
  319. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_mixin.py +0 -0
  320. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_notify_hub.py +0 -0
  321. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_protocol.py +0 -0
  322. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_registry_backend.py +0 -0
  323. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_server_running.py +0 -0
  324. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_server_running_with_fixture.py +0 -0
  325. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_settings_core.py +0 -0
  326. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-core/tests/test_zmq_microservice.py +0 -0
  327. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/README.md +0 -0
  328. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/__init__.py +0 -0
  329. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/buttons.py +0 -0
  330. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-start.svg +0 -0
  331. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-stop.svg +0 -0
  332. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/aeu-cs.svg +0 -0
  333. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-started.svg +0 -0
  334. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-stopped.svg +0 -0
  335. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/aeu_cs.svg +0 -0
  336. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/alert.svg +0 -0
  337. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/arrow-double-left.png +0 -0
  338. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/arrow-double-right.png +0 -0
  339. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/arrow-up.svg +0 -0
  340. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/backward.svg +0 -0
  341. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/busy.svg +0 -0
  342. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/cleaning.svg +0 -0
  343. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/color-scheme.svg +0 -0
  344. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/cs-connected-alert.svg +0 -0
  345. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/cs-connected-disabled.svg +0 -0
  346. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/cs-connected.svg +0 -0
  347. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/cs-not-connected.svg +0 -0
  348. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/double-left-arrow.svg +0 -0
  349. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/double-right-arrow.svg +0 -0
  350. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/erase-disabled.svg +0 -0
  351. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/erase.svg +0 -0
  352. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/fitsgen-start.svg +0 -0
  353. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/fitsgen-stop.svg +0 -0
  354. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/fitsgen.svg +0 -0
  355. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/forward.svg +0 -0
  356. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/fov-hk-start.svg +0 -0
  357. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/fov-hk-stop.svg +0 -0
  358. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/fov-hk.svg +0 -0
  359. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/front-desk.svg +0 -0
  360. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/home-actioned.svg +0 -0
  361. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/home-disabled.svg +0 -0
  362. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/home.svg +0 -0
  363. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/info.svg +0 -0
  364. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/invalid.png +0 -0
  365. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/led-green.svg +0 -0
  366. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/led-grey.svg +0 -0
  367. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/led-orange.svg +0 -0
  368. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/led-red.svg +0 -0
  369. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/led-square-green.svg +0 -0
  370. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/led-square-grey.svg +0 -0
  371. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/led-square-orange.svg +0 -0
  372. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/led-square-red.svg +0 -0
  373. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-green.svg +0 -0
  374. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-red.svg +0 -0
  375. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el+.svg +0 -0
  376. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el-.svg +0 -0
  377. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/location-marker.svg +0 -0
  378. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/logo-dpu.svg +0 -0
  379. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/logo-gimbal.svg +0 -0
  380. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/logo-huber.svg +0 -0
  381. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/logo-ogse.svg +0 -0
  382. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/logo-puna.svg +0 -0
  383. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/logo-tcs.svg +0 -0
  384. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/logo-zonda.svg +0 -0
  385. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/maximize.svg +0 -0
  386. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/meter.svg +0 -0
  387. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/more.svg +0 -0
  388. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-start.svg +0 -0
  389. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-stop.svg +0 -0
  390. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk.svg +0 -0
  391. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/observing-off.svg +0 -0
  392. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/observing-on.svg +0 -0
  393. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.png +0 -0
  394. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.svg +0 -0
  395. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/ops-mode.svg +0 -0
  396. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/play-green.svg +0 -0
  397. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/plugged-disabled.svg +0 -0
  398. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/plugged.svg +0 -0
  399. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/pm_ui.svg +0 -0
  400. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/power-button-green.svg +0 -0
  401. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/power-button-red.svg +0 -0
  402. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/power-button.svg +0 -0
  403. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/radar.svg +0 -0
  404. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/radioactive.svg +0 -0
  405. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/reload.svg +0 -0
  406. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/remote-control-off.svg +0 -0
  407. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/remote-control-on.svg +0 -0
  408. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/repeat-blue.svg +0 -0
  409. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/repeat.svg +0 -0
  410. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/settings.svg +0 -0
  411. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/shrink.svg +0 -0
  412. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/shutter.svg +0 -0
  413. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/sign-off.svg +0 -0
  414. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/sign-on.svg +0 -0
  415. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/sim-mode.svg +0 -0
  416. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/small-buttons-go.svg +0 -0
  417. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/small-buttons-minus.svg +0 -0
  418. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/small-buttons-plus.svg +0 -0
  419. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/sponge.svg +0 -0
  420. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/start-button-disabled.svg +0 -0
  421. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/start-button.svg +0 -0
  422. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/stop-button-disabled.svg +0 -0
  423. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/stop-button.svg +0 -0
  424. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/stop-red.svg +0 -0
  425. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/stop.svg +0 -0
  426. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/switch-disabled-square.svg +0 -0
  427. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/switch-disabled.svg +0 -0
  428. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/switch-off-square.svg +0 -0
  429. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/switch-off.svg +0 -0
  430. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/switch-on-square.svg +0 -0
  431. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/switch-on.svg +0 -0
  432. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/temperature-control.svg +0 -0
  433. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/th_ui_logo.svg +0 -0
  434. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/unplugged.svg +0 -0
  435. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/unvalid.png +0 -0
  436. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/user-interface.svg +0 -0
  437. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/vacuum.svg +0 -0
  438. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/valid.png +0 -0
  439. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-dark.svg +0 -0
  440. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-white.svg +0 -0
  441. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/led.py +0 -0
  442. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/limitswitch.py +0 -0
  443. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/states.py +0 -0
  444. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/styles/dark.qss +0 -0
  445. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/styles/default.qss +0 -0
  446. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/styles.qss +0 -0
  447. {cgse-0.16.8 → cgse-0.16.9}/libs/cgse-gui/src/egse/gui/switch.py +0 -0
  448. {cgse-0.16.8 → cgse-0.16.9}/mkdocs.yml +0 -0
  449. {cgse-0.16.8 → cgse-0.16.9}/noxfile.py +0 -0
  450. {cgse-0.16.8 → cgse-0.16.9}/overrides/.icons/custom/dbend-dark.svg +0 -0
  451. {cgse-0.16.8 → cgse-0.16.9}/overrides/.icons/custom/dbend-light.svg +0 -0
  452. {cgse-0.16.8 → cgse-0.16.9}/overrides/.icons/custom/gear.svg +0 -0
  453. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/cgse-tools/README.md +0 -0
  454. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/cgse-tools/src/cgse_tools/__init__.py +0 -0
  455. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/cgse-tools/src/cgse_tools/cgse_clock.py +0 -0
  456. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/cgse-tools/src/cgse_tools/cgse_commands.py +0 -0
  457. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/cgse-tools/src/cgse_tools/cgse_services.py +0 -0
  458. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/cgse-tools/src/egse/tools/status.py +0 -0
  459. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/README.md +0 -0
  460. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/justfile +0 -0
  461. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/noxfile.py +0 -0
  462. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/service_registry.db +0 -0
  463. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/__init__.py +0 -0
  464. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.py +0 -0
  465. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.yaml +0 -0
  466. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_acs.py +0 -0
  467. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_adev.py +0 -0
  468. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_cs.py +0 -0
  469. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_dev.py +0 -0
  470. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_mon.py +0 -0
  471. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_protocol.py +0 -0
  472. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_sim.py +0 -0
  473. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/__init__.py +0 -0
  474. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_explore.py +0 -0
  475. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_services.py +0 -0
  476. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/settings.yaml +0 -0
  477. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/temperature_readings.log +0 -0
  478. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/tests/script_daq6510_central_heating.py +0 -0
  479. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/tests/script_daq6510_mon.py +0 -0
  480. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/tests/script_plot_readings.py +0 -0
  481. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/tests/test_adev.py +0 -0
  482. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/keithley-tempcontrol/tests/test_dev.py +0 -0
  483. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/lakeshore-tempcontrol/README.md +0 -0
  484. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.py +0 -0
  485. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.yaml +0 -0
  486. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_cs.py +0 -0
  487. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_devif.py +0 -0
  488. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_protocol.py +0 -0
  489. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/__init__.py +0 -0
  490. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_explore.py +0 -0
  491. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_services.py +0 -0
  492. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/settings.yaml +0 -0
  493. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/lakeshore-tempcontrol/tests/test_lakeshore336_simulator.py +0 -0
  494. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/README.md +0 -0
  495. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/__init__.py +0 -0
  496. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/__init__.py +0 -0
  497. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/alpha.py +0 -0
  498. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/dynalpha.py +0 -0
  499. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod.py +0 -0
  500. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod_ui.py +0 -0
  501. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.py +0 -0
  502. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.yaml +0 -0
  503. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_cs.py +0 -0
  504. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_protocol.py +0 -0
  505. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_ui.py +0 -0
  506. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac.py +0 -0
  507. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac_regex.py +0 -0
  508. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.py +0 -0
  509. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.yaml +0 -0
  510. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_cs.py +0 -0
  511. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_protocol.py +0 -0
  512. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_sim.py +0 -0
  513. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_ui.py +0 -0
  514. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/punaplus.py +0 -0
  515. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.py +0 -0
  516. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.yaml +0 -0
  517. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_cs.py +0 -0
  518. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_devif.py +0 -0
  519. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_protocol.py +0 -0
  520. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_ui.py +0 -0
  521. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/__init__.py +0 -0
  522. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_explore.py +0 -0
  523. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_services.py +0 -0
  524. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/settings.yaml +0 -0
  525. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/tests/test_puna.py +0 -0
  526. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/tests/test_puna_cs.py +0 -0
  527. {cgse-0.16.8 → cgse-0.16.9}/projects/generic/symetrie-hexapod/tests/test_puna_simulator.py +0 -0
  528. {cgse-0.16.8 → cgse-0.16.9}/projects/plato/plato-fits/README.md +0 -0
  529. {cgse-0.16.8 → cgse-0.16.9}/projects/plato/plato-fits/src/egse/plugins/storage/fits.py +0 -0
  530. {cgse-0.16.8 → cgse-0.16.9}/projects/plato/plato-hdf5/README.md +0 -0
  531. {cgse-0.16.8 → cgse-0.16.9}/projects/plato/plato-hdf5/src/egse/plugins/storage/hdf5.py +0 -0
  532. {cgse-0.16.8 → cgse-0.16.9}/projects/plato/plato-spw/README.md +0 -0
  533. {cgse-0.16.8 → cgse-0.16.9}/projects/plato/plato-spw/src/egse/spw.py +0 -0
  534. {cgse-0.16.8 → cgse-0.16.9}/ruff.toml +0 -0
  535. {cgse-0.16.8 → cgse-0.16.9}/scratch/advanced-process-monitoring.py +0 -0
  536. {cgse-0.16.8 → cgse-0.16.9}/scratch/live-process-monitoring.py +0 -0
  537. {cgse-0.16.8 → cgse-0.16.9}/scratch/match-case.py +0 -0
  538. {cgse-0.16.8 → cgse-0.16.9}/scratch/processes.json +0 -0
  539. {cgse-0.16.8 → cgse-0.16.9}/scratch/simple-process-monitoring.py +0 -0
  540. {cgse-0.16.8 → cgse-0.16.9}/temperature_readings.log +0 -0
  541. {cgse-0.16.8 → cgse-0.16.9}/test_service_registry.db +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cgse
3
- Version: 0.16.8
3
+ Version: 0.16.9
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.8"
3
+ version = "0.16.9"
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.8"
3
+ version = "0.16.9"
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.8"
3
+ version = "0.16.9"
4
4
  description = "Core services for the CGSE framework"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -329,7 +329,7 @@ class RegistryClient:
329
329
  metadata=self._service_info["metadata"],
330
330
  )
331
331
 
332
- def discover_service(self, service_type: str, use_cache: bool = False) -> dict[str, Any] | None:
332
+ def discover_service(self, service_type: str) -> dict[str, Any] | None:
333
333
  """
334
334
  Discover a service of the specified type. The service is guaranteed to be healthy at the time of discovery.
335
335
 
@@ -341,15 +341,10 @@ class RegistryClient:
341
341
 
342
342
  Args:
343
343
  service_type: Type of service to discover
344
- use_cache: Whether to use cached service information
345
344
 
346
345
  Returns:
347
346
  Service information if found, None otherwise
348
347
  """
349
- # Try to use cache first if enabled
350
- if use_cache:
351
- self.logger.info("Cache not yet implemented.")
352
-
353
348
  request = {"action": "discover", "service_type": service_type}
354
349
 
355
350
  response = self._send_request(MessageType.REQUEST_WITH_REPLY, request)
@@ -363,14 +358,13 @@ class RegistryClient:
363
358
  self.logger.warning(f"Service discovery failed: {response.get('error')}")
364
359
  return None
365
360
 
366
- def get_service(self, service_id: str | None = None, use_cache: bool = True) -> dict[str, Any] | None:
361
+ def get_service(self, service_id: str | None = None) -> dict[str, Any] | None:
367
362
  """
368
363
  Get information about a specific service. When no service_id is given,
369
364
  the service_id known to this client will be used.
370
365
 
371
366
  Args:
372
367
  service_id: ID of the service to get [default=None]
373
- use_cache: Whether to use cached service information
374
368
 
375
369
  Returns:
376
370
  Service information if found, None otherwise.
@@ -582,10 +576,6 @@ class AsyncRegistryClient:
582
576
 
583
577
  self._event_handlers = {}
584
578
 
585
- # Service cache (for discovery)
586
- self._service_cache = {}
587
- self._service_cache_lock = None
588
-
589
579
  self.req_socket: zmq.asyncio.Socket | None = None
590
580
  self.sub_socket: zmq.asyncio.Socket | None = None
591
581
  self.hb_socket: zmq.asyncio.Socket | None = None
@@ -634,11 +624,6 @@ class AsyncRegistryClient:
634
624
  self.hb_socket.close()
635
625
  self.hb_socket = None
636
626
 
637
- def _get_service_cache_lock(self):
638
- if self._service_cache_lock is None:
639
- self._service_cache_lock = asyncio.Lock()
640
- return self._service_cache_lock
641
-
642
627
  async def _send_request(
643
628
  self, msg_type: MessageType, request: dict[str, Any], timeout: float = None
644
629
  ) -> dict[str, Any]:
@@ -992,9 +977,6 @@ class AsyncRegistryClient:
992
977
 
993
978
  self.logger.debug(f"Received event: {event_type}")
994
979
 
995
- # Update service cache based on events
996
- await self._update_cache_from_event(event_type, event)
997
-
998
980
  # Call registered handlers
999
981
  handlers = self._event_handlers.get(event_type, [])
1000
982
  for handler in handlers:
@@ -1022,30 +1004,7 @@ class AsyncRegistryClient:
1022
1004
  self.logger.info("Started event listener task")
1023
1005
  return task
1024
1006
 
1025
- async def _update_cache_from_event(self, event_type: str, event: dict[str, Any]) -> None:
1026
- """
1027
- Update the service cache based on registry events.
1028
-
1029
- Args:
1030
- event_type: Type of the event.
1031
- event: Event data
1032
- """
1033
- async with self._get_service_cache_lock():
1034
- data = event.get("data", {})
1035
- service_id = data.get("service_id")
1036
-
1037
- if not service_id:
1038
- return
1039
-
1040
- if event_type == "register":
1041
- service_info = data.get("service_info", {})
1042
- if service_info:
1043
- self._service_cache[service_id] = service_info
1044
- elif event_type in ("deregister", "expire"):
1045
- if service_id in self._service_cache:
1046
- del self._service_cache[service_id]
1047
-
1048
- async def discover_service(self, service_type: str, use_cache: bool = True) -> dict[str, Any] | None:
1007
+ async def discover_service(self, service_type: str) -> dict[str, Any] | None:
1049
1008
  """
1050
1009
  Discover a service of the specified type. The service is guaranteed to be healthy at the time of discovery.
1051
1010
 
@@ -1057,27 +1016,11 @@ class AsyncRegistryClient:
1057
1016
 
1058
1017
  Args:
1059
1018
  service_type: Type of service to discover
1060
- use_cache: Whether to use cached service information
1061
1019
 
1062
1020
  Returns:
1063
1021
  Service information if found, None otherwise
1064
1022
  """
1065
- # Try to use cache first if enabled
1066
- if use_cache:
1067
- async with self._get_service_cache_lock():
1068
- # Find services of the specified type
1069
- matching_services = []
1070
- for service_id, service_info in self._service_cache.items():
1071
- if service_info.get("type") == service_type or service_type in service_info.get("tags", []):
1072
- matching_services.append(service_info)
1073
-
1074
- if matching_services:
1075
- # Simple load balancing - random selection
1076
- import random
1077
-
1078
- return random.choice(matching_services)
1079
-
1080
- # If not found in cache or cache disabled, ask the registry
1023
+
1081
1024
  request = {"action": "discover", "service_type": service_type}
1082
1025
 
1083
1026
  response = await self._send_request(MessageType.REQUEST_WITH_REPLY, request)
@@ -1087,34 +1030,25 @@ class AsyncRegistryClient:
1087
1030
  if response.get("success"):
1088
1031
  service = response.get("service")
1089
1032
 
1090
- # Update cache
1091
- if service and "id" in service:
1092
- async with self._get_service_cache_lock():
1093
- self._service_cache[service["id"]] = service
1094
-
1095
1033
  return service
1096
1034
  else:
1097
1035
  self.logger.warning(f"Service discovery failed: {response.get('error')}")
1098
1036
  return None
1099
1037
 
1100
- async def get_service(self, service_id: str, use_cache: bool = True) -> dict[str, Any] | None:
1038
+ async def get_service(self, service_id: str | None = None) -> dict[str, Any] | None:
1101
1039
  """
1102
- Get information about a specific service.
1040
+ Get information about a specific service. When no service_id is given,
1041
+ the service_id known to this client will be used.
1103
1042
 
1104
1043
  Args:
1105
1044
  service_id: ID of the service to get
1106
- use_cache: Whether to use cached service information
1107
1045
 
1108
1046
  Returns:
1109
1047
  Service information if found, None otherwise
1110
1048
  """
1111
- # Try to use cache first if enabled
1112
- if use_cache:
1113
- async with self._get_service_cache_lock():
1114
- if service_id in self._service_cache:
1115
- return self._service_cache[service_id]
1116
1049
 
1117
- # If not found in cache or cache disabled, ask the registry
1050
+ service_id = service_id or self._service_id
1051
+
1118
1052
  request = {"action": "get", "service_id": service_id}
1119
1053
 
1120
1054
  response = await self._send_request(MessageType.REQUEST_WITH_REPLY, request)
@@ -1122,11 +1056,6 @@ class AsyncRegistryClient:
1122
1056
  if response.get("success"):
1123
1057
  service = response.get("service")
1124
1058
 
1125
- # Update cache
1126
- if service:
1127
- async with self._get_service_cache_lock():
1128
- self._service_cache[service_id] = service
1129
-
1130
1059
  return service
1131
1060
  else:
1132
1061
  self.logger.warning(f"Get service failed: {response.get('error')}")
@@ -1149,12 +1078,6 @@ class AsyncRegistryClient:
1149
1078
  if response.get("success"):
1150
1079
  services = response.get("services", [])
1151
1080
 
1152
- # Update cache
1153
- async with self._get_service_cache_lock():
1154
- for service in services:
1155
- if "id" in service:
1156
- self._service_cache[service["id"]] = service
1157
-
1158
1081
  return services
1159
1082
  else:
1160
1083
  self.logger.warning(f"List services failed: {response.get('error')}")
@@ -1224,35 +1147,6 @@ class AsyncRegistryClient:
1224
1147
  except Exception as exc:
1225
1148
  self.logger.error(f"Error during cleanup: {exc}")
1226
1149
 
1227
- @asynccontextmanager
1228
- async def register_context(self, *args, **kwargs):
1229
- """
1230
- Async context manager for service registration.
1231
-
1232
- Example:
1233
- async with client.register_context("my-service", "localhost", 8080):
1234
- # Service is registered
1235
- await app.start()
1236
- # Service is automatically deregistered
1237
- """
1238
- service_id = await self.register(*args, **kwargs)
1239
-
1240
- if not service_id:
1241
- raise RuntimeError("Failed to register service")
1242
-
1243
- # Start heartbeat and event listener
1244
- await self.start_heartbeat()
1245
- await self.start_event_listener()
1246
-
1247
- try:
1248
- yield service_id
1249
- finally:
1250
- # Clean up
1251
- await self.stop_event_listener()
1252
- await self.stop_heartbeat()
1253
- await self.deregister()
1254
- # await self.close() # client shall not be closed by this context manager !!
1255
-
1256
1150
 
1257
1151
  def is_service_registered(service_type: str):
1258
1152
  """Convenience function to check if a service is registered."""
@@ -62,6 +62,8 @@ class StorageControlServer(ControlServer):
62
62
 
63
63
  multiprocessing.current_process().name = PROCESS_NAME
64
64
 
65
+ self.scheduler: BackgroundScheduler | None = None
66
+
65
67
  self.logger = logger
66
68
  self.service_name = PROCESS_NAME
67
69
  self.service_type = SERVICE_TYPE
@@ -76,13 +78,6 @@ class StorageControlServer(ControlServer):
76
78
 
77
79
  self.register_service(service_type=SERVICE_TYPE)
78
80
 
79
- # NOTE:
80
- # Since the CM CS is started after the SM CS in the normal startup sequence, delay the task to load
81
- # the Setup until after the CM CS has been properly started. We do that now with a delay time of 30s,
82
- # but we might in the future use a function returning a boolean, until...
83
- # from egse.confman import is_configuration_manager_active
84
- # self.schedule_task(self.device_protocol.controller.load_setup, after=10.0, when=is_configuration_manager_active)
85
-
86
81
  def before_serve(self):
87
82
  self.scheduler = BackgroundScheduler(timezone=utc)
88
83
  self.scheduler.start()
@@ -787,70 +787,3 @@ async def test_client_health_check(client, server):
787
787
  """Test health check."""
788
788
  health = await client.health_check()
789
789
  assert health is True
790
-
791
-
792
- @pytest.mark.asyncio
793
- async def test_client_caching(client, server):
794
- """Test client's service caching."""
795
-
796
- service_id = await client.register("cache-test-service", "localhost", 8080, service_type="cache-test")
797
-
798
- # Look up the service (should populate cache)
799
- service = await client.get_service(service_id)
800
- assert service is not None
801
-
802
- # Check if it's in the cache
803
- async with client._service_cache_lock:
804
- assert service_id in client._service_cache
805
-
806
- # Look up by type (should use cache when use_cache=True)
807
- with patch.object(client, "_send_request", new_callable=AsyncMock) as mock_send:
808
- # First call with use_cache=True should check cache
809
- service = await client.discover_service("cache-test", use_cache=True)
810
- assert service is not None
811
- assert service["id"] == service_id
812
-
813
- # Configure the mock to return a dictionary that matches what _send_request would return
814
- mock_send.return_value = {
815
- "success": True,
816
- "service": {
817
- "id": service_id,
818
- "name": "cache-test-service",
819
- "host": "localhost",
820
- "port": 8080,
821
- "type": "cache-test",
822
- },
823
- }
824
-
825
- # Second call with use_cache=False should make a request
826
- service = await client.discover_service("cache-test", use_cache=False)
827
- assert service is not None
828
- assert mock_send.called
829
-
830
-
831
- @pytest.mark.asyncio
832
- async def test_client_register_context(client, server, req_socket):
833
- """Test the register_context context manager."""
834
-
835
- # Use the context manager
836
- async with client.register_context(
837
- "context-test-service", "localhost", 8080, service_type="context-test"
838
- ) as service_id:
839
- # Verify the service was registered
840
- response = await send_request(
841
- MessageType.REQUEST_WITH_REPLY, req_socket, {"action": "get", "service_id": service_id}
842
- )
843
-
844
- logger.info(f"----- In test_client_register_context: {response}")
845
-
846
- assert response["success"] is True
847
- assert response["service"]["name"] == "context-test-service"
848
-
849
- logger.info("----- In test_client_register_context: after context...")
850
-
851
- # After exiting the context, the service should be deregistered
852
- response = await send_request(
853
- MessageType.REQUEST_WITH_REPLY, req_socket, {"action": "get", "service_id": service_id}
854
- )
855
-
856
- assert response["success"] is False
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-gui"
3
- version = "0.16.8"
3
+ version = "0.16.9"
4
4
  description = "GUI components for CGSE"
5
5
  authors = [
6
6
  {name = "Rik Huygen", email = "rik.huygen@kuleuven.be"},
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-tools"
3
- version = "0.16.8"
3
+ version = "0.16.9"
4
4
  description = "Tools for CGSE"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "keithley-tempcontrol"
3
- version = "0.16.8"
3
+ version = "0.16.9"
4
4
  description = "Keithley Temperature Control for CGSE"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "lakeshore-tempcontrol"
3
- version = "0.16.8"
3
+ version = "0.16.9"
4
4
  description = "Lakeshore Temperature Control for CGSE"
5
5
  authors = [
6
6
  {name = "IVS KU Leuven"}
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "symetrie-hexapod"
3
- version = "0.16.8"
3
+ version = "0.16.9"
4
4
  description = "Symetrie Hexapod implementation for CGSE"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "plato-fits"
3
- version = "0.16.8"
3
+ version = "0.16.9"
4
4
  description = "FITS Persistence implementation for CGSE"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "plato-hdf5"
3
- version = "0.16.8"
3
+ version = "0.16.9"
4
4
  description = "HDF5 Persistence sub-class for CGSE"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "plato-spw"
3
- version = "0.16.8"
3
+ version = "0.16.9"
4
4
  description = "SpaceWire implementation for CGSE"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse"
3
- version = "0.16.8"
3
+ version = "0.16.9"
4
4
  description = "Generic Common-EGSE: Commanding and monitoring lab equipment"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
index 80cc010..6227ca3 100644
Binary file
index 0b174f0..b2f077b 100644
Binary file
Binary file
Binary file
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes