cgse 0.16.6__tar.gz → 0.16.7__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 (538) hide show
  1. {cgse-0.16.6 → cgse-0.16.7}/PKG-INFO +1 -1
  2. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/pyproject.toml +1 -1
  3. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_influxdb_plugin.py +3 -1
  4. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_metrics.py +3 -2
  5. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/pyproject.toml +1 -1
  6. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/pyproject.toml +1 -1
  7. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/confman/__init__.py +2 -0
  8. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/confman/confman_cs.py +12 -11
  9. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/control.py +18 -21
  10. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/logger/log_cs.py +1 -1
  11. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/procman/__init__.py +9 -5
  12. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/procman/procman_cs.py +13 -16
  13. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/registry/client.py +31 -3
  14. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/registry/server.py +14 -9
  15. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/storage/__init__.py +12 -6
  16. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/storage/storage_cs.py +13 -15
  17. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/pyproject.toml +1 -1
  18. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/cgse-tools/pyproject.toml +1 -1
  19. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/pyproject.toml +1 -1
  20. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/pyproject.toml +1 -1
  21. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/pyproject.toml +1 -1
  22. {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-fits/pyproject.toml +1 -1
  23. {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-hdf5/pyproject.toml +1 -1
  24. {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-spw/pyproject.toml +1 -1
  25. {cgse-0.16.6 → cgse-0.16.7}/pyproject.toml +1 -1
  26. {cgse-0.16.6 → cgse-0.16.7}/service_registry.db +0 -0
  27. {cgse-0.16.6 → cgse-0.16.7}/.github/workflows/ruff-format-check.yaml +0 -0
  28. {cgse-0.16.6 → cgse-0.16.7}/.gitignore +0 -0
  29. {cgse-0.16.6 → cgse-0.16.7}/README.md +0 -0
  30. {cgse-0.16.6 → cgse-0.16.7}/buffer_vat.log +0 -0
  31. {cgse-0.16.6 → cgse-0.16.7}/buffer_vat.png +0 -0
  32. {cgse-0.16.6 → cgse-0.16.7}/bump.py +0 -0
  33. {cgse-0.16.6 → cgse-0.16.7}/conftest.py +0 -0
  34. {cgse-0.16.6 → cgse-0.16.7}/docs/api/bits.md +0 -0
  35. {cgse-0.16.6 → cgse-0.16.7}/docs/api/calibration.md +0 -0
  36. {cgse-0.16.6 → cgse-0.16.7}/docs/api/command.md +0 -0
  37. {cgse-0.16.6 → cgse-0.16.7}/docs/api/config.md +0 -0
  38. {cgse-0.16.6 → cgse-0.16.7}/docs/api/control.md +0 -0
  39. {cgse-0.16.6 → cgse-0.16.7}/docs/api/counter.md +0 -0
  40. {cgse-0.16.6 → cgse-0.16.7}/docs/api/decorators.md +0 -0
  41. {cgse-0.16.6 → cgse-0.16.7}/docs/api/device.md +0 -0
  42. {cgse-0.16.6 → cgse-0.16.7}/docs/api/dicts.md +0 -0
  43. {cgse-0.16.6 → cgse-0.16.7}/docs/api/dummy.md +0 -0
  44. {cgse-0.16.6 → cgse-0.16.7}/docs/api/env.md +0 -0
  45. {cgse-0.16.6 → cgse-0.16.7}/docs/api/exceptions.md +0 -0
  46. {cgse-0.16.6 → cgse-0.16.7}/docs/api/heartbeat.md +0 -0
  47. {cgse-0.16.6 → cgse-0.16.7}/docs/api/hk.md +0 -0
  48. {cgse-0.16.6 → cgse-0.16.7}/docs/api/index.md +0 -0
  49. {cgse-0.16.6 → cgse-0.16.7}/docs/api/listener.md +0 -0
  50. {cgse-0.16.6 → cgse-0.16.7}/docs/api/metrics.md +0 -0
  51. {cgse-0.16.6 → cgse-0.16.7}/docs/api/mixin.md +0 -0
  52. {cgse-0.16.6 → cgse-0.16.7}/docs/api/monitoring.md +0 -0
  53. {cgse-0.16.6 → cgse-0.16.7}/docs/api/observer.md +0 -0
  54. {cgse-0.16.6 → cgse-0.16.7}/docs/api/obsid.md +0 -0
  55. {cgse-0.16.6 → cgse-0.16.7}/docs/api/persistence.md +0 -0
  56. {cgse-0.16.6 → cgse-0.16.7}/docs/api/plugin.md +0 -0
  57. {cgse-0.16.6 → cgse-0.16.7}/docs/api/process.md +0 -0
  58. {cgse-0.16.6 → cgse-0.16.7}/docs/api/reload.md +0 -0
  59. {cgse-0.16.6 → cgse-0.16.7}/docs/api/settings.md +0 -0
  60. {cgse-0.16.6 → cgse-0.16.7}/docs/api/setup.md +0 -0
  61. {cgse-0.16.6 → cgse-0.16.7}/docs/api/system.md +0 -0
  62. {cgse-0.16.6 → cgse-0.16.7}/docs/custom_theme/main.html +0 -0
  63. {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/coding_style.md +0 -0
  64. {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/docs.md +0 -0
  65. {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/index.md +0 -0
  66. {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/installation.md +0 -0
  67. {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/monitoring.md +0 -0
  68. {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/monorepo.md +0 -0
  69. {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/nox.md +0 -0
  70. {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/plugins.md +0 -0
  71. {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/project-configuration.md +0 -0
  72. {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/unit_testing.md +0 -0
  73. {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/uv.md +0 -0
  74. {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/versioning.md +0 -0
  75. {cgse-0.16.6 → cgse-0.16.7}/docs/getting_started.md +0 -0
  76. {cgse-0.16.6 → cgse-0.16.7}/docs/help.md +0 -0
  77. {cgse-0.16.6 → cgse-0.16.7}/docs/images/cli-cgse.png +0 -0
  78. {cgse-0.16.6 → cgse-0.16.7}/docs/images/github-fork-clone-dark.png +0 -0
  79. {cgse-0.16.6 → cgse-0.16.7}/docs/images/github-fork-clone.png +0 -0
  80. {cgse-0.16.6 → cgse-0.16.7}/docs/images/grafana-queries.png +0 -0
  81. {cgse-0.16.6 → cgse-0.16.7}/docs/images/icons/cgse-logo-blue.svg +0 -0
  82. {cgse-0.16.6 → cgse-0.16.7}/docs/images/icons/cgse-logo.svg +0 -0
  83. {cgse-0.16.6 → cgse-0.16.7}/docs/index.md +0 -0
  84. {cgse-0.16.6 → cgse-0.16.7}/docs/initialize.md +0 -0
  85. {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-common/images/load_methods.png +0 -0
  86. {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-common/index.md +0 -0
  87. {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-common/settings.md +0 -0
  88. {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-common/setup.md +0 -0
  89. {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-coordinates/index.md +0 -0
  90. {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-core/index.md +0 -0
  91. {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-core/notifyhub.md +0 -0
  92. {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-core/registry.md +0 -0
  93. {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-gui/index.md +0 -0
  94. {cgse-0.16.6 → cgse-0.16.7}/docs/libs/index.md +0 -0
  95. {cgse-0.16.6 → cgse-0.16.7}/docs/package_list.md +0 -0
  96. {cgse-0.16.6 → cgse-0.16.7}/docs/projects/cgse-tools.md +0 -0
  97. {cgse-0.16.6 → cgse-0.16.7}/docs/projects/index.md +0 -0
  98. {cgse-0.16.6 → cgse-0.16.7}/docs/projects/symetrie-hexapod.md +0 -0
  99. {cgse-0.16.6 → cgse-0.16.7}/docs/roadmap.md +0 -0
  100. {cgse-0.16.6 → cgse-0.16.7}/docs/stylesheets/custom.css +0 -0
  101. {cgse-0.16.6 → cgse-0.16.7}/docs/stylesheets/extra.css +0 -0
  102. {cgse-0.16.6 → cgse-0.16.7}/docs/tutorial.md +0 -0
  103. {cgse-0.16.6 → cgse-0.16.7}/docs/user_guide/cli.md +0 -0
  104. {cgse-0.16.6 → cgse-0.16.7}/docs/user_guide/index.md +0 -0
  105. {cgse-0.16.6 → cgse-0.16.7}/duckdb_metrics.db +0 -0
  106. {cgse-0.16.6 → cgse-0.16.7}/duckdb_metrics.db.wal +0 -0
  107. {cgse-0.16.6 → cgse-0.16.7}/identifier.sqlite +0 -0
  108. {cgse-0.16.6 → cgse-0.16.7}/justfile +0 -0
  109. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/README.md +0 -0
  110. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/justfile +0 -0
  111. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/noxfile.py +0 -0
  112. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/service_registry.db +0 -0
  113. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/cgse_common/__init__.py +0 -0
  114. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/cgse_common/cgse.py +0 -0
  115. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/cgse_common/settings.yaml +0 -0
  116. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/bits.py +0 -0
  117. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/calibration.py +0 -0
  118. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/config.py +0 -0
  119. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/counter.py +0 -0
  120. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/decorators.py +0 -0
  121. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/device.py +0 -0
  122. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/dicts.py +0 -0
  123. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/env.py +0 -0
  124. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/exceptions.py +0 -0
  125. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/heartbeat.py +0 -0
  126. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/hk.py +0 -0
  127. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/log.py +0 -0
  128. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/metrics.py +0 -0
  129. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/observer.py +0 -0
  130. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/obsid.py +0 -0
  131. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/persistence.py +0 -0
  132. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/plugin.py +0 -0
  133. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/plugins/metrics/duckdb.py +0 -0
  134. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/plugins/metrics/influxdb.py +0 -0
  135. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/plugins/metrics/timescaledb.py +0 -0
  136. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/process.py +0 -0
  137. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/py.typed +0 -0
  138. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/randomwalk.py +0 -0
  139. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/ratelimit.py +0 -0
  140. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/reload.py +0 -0
  141. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/resource.py +0 -0
  142. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/response.py +0 -0
  143. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/scpi.py +0 -0
  144. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/settings.py +0 -0
  145. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/settings.yaml +0 -0
  146. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/setup.py +0 -0
  147. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/signal.py +0 -0
  148. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/socketdevice.py +0 -0
  149. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/state.py +0 -0
  150. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/system.py +0 -0
  151. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/task.py +0 -0
  152. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/version.py +0 -0
  153. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/zmq_ser.py +0 -0
  154. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/conftest.py +0 -0
  155. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/COPYING +0 -0
  156. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00028_201028_155259.yaml +0 -0
  157. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00029_201028_155331.yaml +0 -0
  158. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00030_210311_134043.yaml +0 -0
  159. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00080_210917_105245.yaml +0 -0
  160. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00081_210922_142259.yaml +0 -0
  161. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00082_210923_094458.yaml +0 -0
  162. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL1/README.md +0 -0
  163. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL2/README.md +0 -0
  164. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/IAS/README.md +0 -0
  165. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/INTA/README.md +0 -0
  166. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/LAB23/README.md +0 -0
  167. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00027_211119_140441.yaml +0 -0
  168. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00028_211119_160406.yaml +0 -0
  169. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00029_211119_172918.yaml +0 -0
  170. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00030_211122_103604.yaml +0 -0
  171. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00031_211123_124900.yaml +0 -0
  172. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/common/telemetry/tm-dictionary-default.csv +0 -0
  173. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/conf/SETUP_20250114_1519.yaml +0 -0
  174. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/conf/config-file.toml +0 -0
  175. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/cal_coeff_1234.csv +0 -0
  176. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/calibration.csv +0 -0
  177. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/calibration.yaml +0 -0
  178. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/command.yaml +0 -0
  179. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/corrupt.yaml +0 -0
  180. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/data-file.txt +0 -0
  181. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/empty_data_file.txt +0 -0
  182. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/empty_yaml_file.yaml +0 -0
  183. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/local_settings.yaml +0 -0
  184. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/new_local_settings.yaml +0 -0
  185. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/test_setup.yaml +0 -0
  186. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/icons/hourglass.svg +0 -0
  187. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/icons/keyboard.png +0 -0
  188. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/icons/soap_sponge.svg +0 -0
  189. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/lib/dev1/shared-lib.so +0 -0
  190. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/lib/dev2/shared-lib.so +0 -0
  191. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/fixtures/default_env.py +0 -0
  192. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/fixtures/helpers.py +0 -0
  193. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/scripts/empty_process.py +0 -0
  194. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/scripts/handle_sigterm.py +0 -0
  195. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/scripts/process_with_children.py +0 -0
  196. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/scripts/raise_value_error.py +0 -0
  197. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/scripts/void-0.py +0 -0
  198. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/scripts/void-1.py +0 -0
  199. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_bits.py +0 -0
  200. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_config.py +0 -0
  201. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_decorators.py +0 -0
  202. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_device.py +0 -0
  203. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_env.py +0 -0
  204. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_fixtures.py +0 -0
  205. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_hk.py +0 -0
  206. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_log.py +0 -0
  207. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_plugin.py +0 -0
  208. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_process.py +0 -0
  209. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_ratelimit.py +0 -0
  210. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_resource.py +0 -0
  211. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_response.py +0 -0
  212. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_settings.py +0 -0
  213. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_setup.py +0 -0
  214. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_signal.py +0 -0
  215. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_state.py +0 -0
  216. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_system.py +0 -0
  217. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_task.py +0 -0
  218. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_zmq_ser.py +0 -0
  219. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/README.md +0 -0
  220. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/cgse_coordinates/__init__.py +0 -0
  221. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/cgse_coordinates/settings.yaml +0 -0
  222. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/__init__.py +0 -0
  223. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/avoidance.py +0 -0
  224. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/cslmodel.py +0 -0
  225. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/laser_tracker_to_dict.py +0 -0
  226. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/point.py +0 -0
  227. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/pyplot.py +0 -0
  228. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/referenceFrame.py +0 -0
  229. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/refmodel.py +0 -0
  230. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/rotationMatrix.py +0 -0
  231. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/transform3d_addon.py +0 -0
  232. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/tests/test_avoidance.py +0 -0
  233. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/tests/test_coordinates_plot.py +0 -0
  234. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/tests/test_coordinates_serialize.py +0 -0
  235. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/tests/test_point.py +0 -0
  236. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/tests/test_ref_model.py +0 -0
  237. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/tests/test_reference_frames.py +0 -0
  238. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/tests/test_refmodel.py +0 -0
  239. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/.envrc.disabled +0 -0
  240. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/README.md +0 -0
  241. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/service_registry.db +0 -0
  242. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/cgse_core/__init__.py +0 -0
  243. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/cgse_core/_start.py +0 -0
  244. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/cgse_core/_status.py +0 -0
  245. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/cgse_core/_stop.py +0 -0
  246. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/cgse_core/cgse_explore.py +0 -0
  247. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/cgse_core/services.py +0 -0
  248. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/cgse_core/settings.yaml +0 -0
  249. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/_setup_core.py +0 -0
  250. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/async_control.py +0 -0
  251. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/async_control_claude.py +0 -0
  252. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/command.py +0 -0
  253. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/confman/__main__.py +0 -0
  254. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/confman/confman.yaml +0 -0
  255. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/connect-todo.py +0 -0
  256. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/connect.py +0 -0
  257. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/dummy.py +0 -0
  258. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/icons/busy.svg +0 -0
  259. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/icons/operational-mode.svg +0 -0
  260. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/icons/pm_ui.svg +0 -0
  261. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/icons/simulator-mode.svg +0 -0
  262. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/icons/start-process-button.svg +0 -0
  263. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/icons/stop-process-button.svg +0 -0
  264. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/icons/user-interface.svg +0 -0
  265. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/listener.py +0 -0
  266. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/logger/__init__.py +0 -0
  267. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/logger/__main__.py +0 -0
  268. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/metricshub/__init__.py +0 -0
  269. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/metricshub/server.py +0 -0
  270. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/mixin.py +0 -0
  271. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/monitoring.py +0 -0
  272. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/notifyhub/__init__.py +0 -0
  273. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/notifyhub/client.py +0 -0
  274. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/notifyhub/event.py +0 -0
  275. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/notifyhub/server.py +0 -0
  276. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/notifyhub/services.py +0 -0
  277. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/notifyhub/test.py +0 -0
  278. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/procman/procman.yaml +0 -0
  279. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/procman/procman_protocol.py +0 -0
  280. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/procman/procman_ui.py +0 -0
  281. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/protocol.py +0 -0
  282. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/proxy.py +0 -0
  283. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/registry/__init__.py +0 -0
  284. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/registry/backend.py +0 -0
  285. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/registry/service.py +0 -0
  286. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/services.py +0 -0
  287. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/services.yaml +0 -0
  288. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/storage/__main__.py +0 -0
  289. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/storage/persistence.py +0 -0
  290. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/storage/storage.yaml +0 -0
  291. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/conftest.py +0 -0
  292. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/data/local_settings.yaml +0 -0
  293. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/fixtures/default_env.py +0 -0
  294. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/fixtures/helpers.py +0 -0
  295. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/fixtures/services.py +0 -0
  296. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/script_subscribe_to_notifyhub.py +0 -0
  297. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/script_test_async_registry_client.py +0 -0
  298. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/script_test_registry_client_server.py +0 -0
  299. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/script_test_service_registry_server.py +0 -0
  300. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/script_test_sync_registry_client.py +0 -0
  301. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/services.py +0 -0
  302. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/stress_test_registry_server.py +0 -0
  303. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_async_control.py +0 -0
  304. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_client_server_interaction.py +0 -0
  305. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_cm_cs.py +0 -0
  306. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_command.py +0 -0
  307. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_confman_setups.py +0 -0
  308. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_connect.py +0 -0
  309. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_control.py +0 -0
  310. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_dummy.py +0 -0
  311. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_event_notification.py +0 -0
  312. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_extensions.py +0 -0
  313. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_listener.py +0 -0
  314. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_logger.py +0 -0
  315. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_mixin.py +0 -0
  316. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_notify_hub.py +0 -0
  317. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_protocol.py +0 -0
  318. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_registry_backend.py +0 -0
  319. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_registry_service.py +0 -0
  320. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_server_running.py +0 -0
  321. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_server_running_with_fixture.py +0 -0
  322. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_settings_core.py +0 -0
  323. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_zmq_microservice.py +0 -0
  324. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/README.md +0 -0
  325. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/__init__.py +0 -0
  326. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/buttons.py +0 -0
  327. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-start.svg +0 -0
  328. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-stop.svg +0 -0
  329. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/aeu-cs.svg +0 -0
  330. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-started.svg +0 -0
  331. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-stopped.svg +0 -0
  332. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/aeu_cs.svg +0 -0
  333. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/alert.svg +0 -0
  334. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/arrow-double-left.png +0 -0
  335. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/arrow-double-right.png +0 -0
  336. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/arrow-up.svg +0 -0
  337. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/backward.svg +0 -0
  338. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/busy.svg +0 -0
  339. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/cleaning.svg +0 -0
  340. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/color-scheme.svg +0 -0
  341. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/cs-connected-alert.svg +0 -0
  342. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/cs-connected-disabled.svg +0 -0
  343. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/cs-connected.svg +0 -0
  344. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/cs-not-connected.svg +0 -0
  345. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/double-left-arrow.svg +0 -0
  346. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/double-right-arrow.svg +0 -0
  347. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/erase-disabled.svg +0 -0
  348. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/erase.svg +0 -0
  349. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/fitsgen-start.svg +0 -0
  350. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/fitsgen-stop.svg +0 -0
  351. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/fitsgen.svg +0 -0
  352. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/forward.svg +0 -0
  353. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/fov-hk-start.svg +0 -0
  354. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/fov-hk-stop.svg +0 -0
  355. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/fov-hk.svg +0 -0
  356. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/front-desk.svg +0 -0
  357. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/home-actioned.svg +0 -0
  358. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/home-disabled.svg +0 -0
  359. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/home.svg +0 -0
  360. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/info.svg +0 -0
  361. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/invalid.png +0 -0
  362. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-green.svg +0 -0
  363. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-grey.svg +0 -0
  364. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-orange.svg +0 -0
  365. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-red.svg +0 -0
  366. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-square-green.svg +0 -0
  367. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-square-grey.svg +0 -0
  368. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-square-orange.svg +0 -0
  369. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-square-red.svg +0 -0
  370. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-green.svg +0 -0
  371. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-red.svg +0 -0
  372. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el+.svg +0 -0
  373. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el-.svg +0 -0
  374. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/location-marker.svg +0 -0
  375. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/logo-dpu.svg +0 -0
  376. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/logo-gimbal.svg +0 -0
  377. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/logo-huber.svg +0 -0
  378. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/logo-ogse.svg +0 -0
  379. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/logo-puna.svg +0 -0
  380. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/logo-tcs.svg +0 -0
  381. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/logo-zonda.svg +0 -0
  382. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/maximize.svg +0 -0
  383. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/meter.svg +0 -0
  384. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/more.svg +0 -0
  385. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-start.svg +0 -0
  386. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-stop.svg +0 -0
  387. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk.svg +0 -0
  388. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/observing-off.svg +0 -0
  389. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/observing-on.svg +0 -0
  390. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.png +0 -0
  391. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.svg +0 -0
  392. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/ops-mode.svg +0 -0
  393. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/play-green.svg +0 -0
  394. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/plugged-disabled.svg +0 -0
  395. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/plugged.svg +0 -0
  396. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/pm_ui.svg +0 -0
  397. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/power-button-green.svg +0 -0
  398. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/power-button-red.svg +0 -0
  399. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/power-button.svg +0 -0
  400. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/radar.svg +0 -0
  401. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/radioactive.svg +0 -0
  402. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/reload.svg +0 -0
  403. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/remote-control-off.svg +0 -0
  404. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/remote-control-on.svg +0 -0
  405. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/repeat-blue.svg +0 -0
  406. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/repeat.svg +0 -0
  407. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/settings.svg +0 -0
  408. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/shrink.svg +0 -0
  409. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/shutter.svg +0 -0
  410. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/sign-off.svg +0 -0
  411. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/sign-on.svg +0 -0
  412. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/sim-mode.svg +0 -0
  413. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/small-buttons-go.svg +0 -0
  414. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/small-buttons-minus.svg +0 -0
  415. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/small-buttons-plus.svg +0 -0
  416. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/sponge.svg +0 -0
  417. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/start-button-disabled.svg +0 -0
  418. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/start-button.svg +0 -0
  419. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/stop-button-disabled.svg +0 -0
  420. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/stop-button.svg +0 -0
  421. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/stop-red.svg +0 -0
  422. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/stop.svg +0 -0
  423. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/switch-disabled-square.svg +0 -0
  424. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/switch-disabled.svg +0 -0
  425. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/switch-off-square.svg +0 -0
  426. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/switch-off.svg +0 -0
  427. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/switch-on-square.svg +0 -0
  428. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/switch-on.svg +0 -0
  429. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/temperature-control.svg +0 -0
  430. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/th_ui_logo.svg +0 -0
  431. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/unplugged.svg +0 -0
  432. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/unvalid.png +0 -0
  433. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/user-interface.svg +0 -0
  434. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/vacuum.svg +0 -0
  435. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/valid.png +0 -0
  436. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-dark.svg +0 -0
  437. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-white.svg +0 -0
  438. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/led.py +0 -0
  439. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/limitswitch.py +0 -0
  440. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/states.py +0 -0
  441. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/styles/dark.qss +0 -0
  442. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/styles/default.qss +0 -0
  443. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/styles.qss +0 -0
  444. {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/switch.py +0 -0
  445. {cgse-0.16.6 → cgse-0.16.7}/mkdocs.yml +0 -0
  446. {cgse-0.16.6 → cgse-0.16.7}/noxfile.py +0 -0
  447. {cgse-0.16.6 → cgse-0.16.7}/overrides/.icons/custom/dbend-dark.svg +0 -0
  448. {cgse-0.16.6 → cgse-0.16.7}/overrides/.icons/custom/dbend-light.svg +0 -0
  449. {cgse-0.16.6 → cgse-0.16.7}/overrides/.icons/custom/gear.svg +0 -0
  450. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/cgse-tools/README.md +0 -0
  451. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/cgse-tools/src/cgse_tools/__init__.py +0 -0
  452. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/cgse-tools/src/cgse_tools/cgse_clock.py +0 -0
  453. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/cgse-tools/src/cgse_tools/cgse_commands.py +0 -0
  454. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/cgse-tools/src/cgse_tools/cgse_services.py +0 -0
  455. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/cgse-tools/src/egse/tools/status.py +0 -0
  456. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/README.md +0 -0
  457. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/justfile +0 -0
  458. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/noxfile.py +0 -0
  459. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/service_registry.db +0 -0
  460. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/__init__.py +0 -0
  461. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.py +0 -0
  462. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.yaml +0 -0
  463. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_acs.py +0 -0
  464. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_adev.py +0 -0
  465. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_cs.py +0 -0
  466. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_dev.py +0 -0
  467. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_mon.py +0 -0
  468. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_protocol.py +0 -0
  469. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_sim.py +0 -0
  470. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/__init__.py +0 -0
  471. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_explore.py +0 -0
  472. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_services.py +0 -0
  473. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/settings.yaml +0 -0
  474. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/temperature_readings.log +0 -0
  475. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/tests/script_daq6510_central_heating.py +0 -0
  476. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/tests/script_daq6510_mon.py +0 -0
  477. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/tests/script_plot_readings.py +0 -0
  478. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/tests/test_adev.py +0 -0
  479. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/tests/test_dev.py +0 -0
  480. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/README.md +0 -0
  481. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.py +0 -0
  482. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.yaml +0 -0
  483. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_cs.py +0 -0
  484. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_devif.py +0 -0
  485. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_protocol.py +0 -0
  486. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/__init__.py +0 -0
  487. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_explore.py +0 -0
  488. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_services.py +0 -0
  489. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/settings.yaml +0 -0
  490. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/tests/test_lakeshore336_simulator.py +0 -0
  491. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/README.md +0 -0
  492. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/__init__.py +0 -0
  493. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/__init__.py +0 -0
  494. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/alpha.py +0 -0
  495. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/dynalpha.py +0 -0
  496. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod.py +0 -0
  497. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod_ui.py +0 -0
  498. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.py +0 -0
  499. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.yaml +0 -0
  500. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_cs.py +0 -0
  501. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_protocol.py +0 -0
  502. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_ui.py +0 -0
  503. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac.py +0 -0
  504. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac_regex.py +0 -0
  505. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.py +0 -0
  506. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.yaml +0 -0
  507. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_cs.py +0 -0
  508. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_protocol.py +0 -0
  509. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_sim.py +0 -0
  510. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_ui.py +0 -0
  511. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/punaplus.py +0 -0
  512. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.py +0 -0
  513. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.yaml +0 -0
  514. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_cs.py +0 -0
  515. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_devif.py +0 -0
  516. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_protocol.py +0 -0
  517. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_ui.py +0 -0
  518. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/__init__.py +0 -0
  519. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_explore.py +0 -0
  520. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_services.py +0 -0
  521. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/settings.yaml +0 -0
  522. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/tests/test_puna.py +0 -0
  523. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/tests/test_puna_cs.py +0 -0
  524. {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/tests/test_puna_simulator.py +0 -0
  525. {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-fits/README.md +0 -0
  526. {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-fits/src/egse/plugins/storage/fits.py +0 -0
  527. {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-hdf5/README.md +0 -0
  528. {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-hdf5/src/egse/plugins/storage/hdf5.py +0 -0
  529. {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-spw/README.md +0 -0
  530. {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-spw/src/egse/spw.py +0 -0
  531. {cgse-0.16.6 → cgse-0.16.7}/ruff.toml +0 -0
  532. {cgse-0.16.6 → cgse-0.16.7}/scratch/advanced-process-monitoring.py +0 -0
  533. {cgse-0.16.6 → cgse-0.16.7}/scratch/live-process-monitoring.py +0 -0
  534. {cgse-0.16.6 → cgse-0.16.7}/scratch/match-case.py +0 -0
  535. {cgse-0.16.6 → cgse-0.16.7}/scratch/processes.json +0 -0
  536. {cgse-0.16.6 → cgse-0.16.7}/scratch/simple-process-monitoring.py +0 -0
  537. {cgse-0.16.6 → cgse-0.16.7}/temperature_readings.log +0 -0
  538. {cgse-0.16.6 → cgse-0.16.7}/test_service_registry.db +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cgse
3
- Version: 0.16.6
3
+ Version: 0.16.7
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.6"
3
+ version = "0.16.7"
4
4
  description = "Software framework to support hardware testing"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -20,7 +20,9 @@ def test_influxdb_access():
20
20
  influxdb = get_metrics_repo("influxdb", {"host": "http://localhost:8181", "database": "ARIEL", "token": token})
21
21
  influxdb.connect()
22
22
 
23
- result = influxdb.query("SELECT * FROM cm WHERE time >= now() - INTERVAL '2 days' ORDER BY TIME DESC LIMIT 20", mode="pandas")
23
+ result = influxdb.query(
24
+ "SELECT * FROM cm WHERE time >= now() - INTERVAL '2 days' ORDER BY TIME DESC LIMIT 20", mode="pandas"
25
+ )
24
26
  print(result)
25
27
  assert isinstance(result, pd.DataFrame)
26
28
 
@@ -11,8 +11,9 @@ def test_get_metrics_repo():
11
11
 
12
12
  # Don't use a too large time interval here, or you will get an error like:
13
13
  # 'External error: Query would exceed file limit of 432 parquet files'
14
- result = influxdb.query("SELECT * FROM cm WHERE time >= now() - INTERVAL '2 days' ORDER BY TIME DESC LIMIT 20",
15
- mode="pandas")
14
+ result = influxdb.query(
15
+ "SELECT * FROM cm WHERE time >= now() - INTERVAL '2 days' ORDER BY TIME DESC LIMIT 20", mode="pandas"
16
+ )
16
17
  print(result)
17
18
 
18
19
  # result = influxdb.query("SHOW TABLES;")
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-coordinates"
3
- version = "0.16.6"
3
+ version = "0.16.7"
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.6"
3
+ version = "0.16.7"
4
4
  description = "Core services for the CGSE framework"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -177,6 +177,8 @@ HOSTNAME = settings.get("HOSTNAME", "localhost")
177
177
  COMMANDING_PORT = settings.get("COMMANDING_PORT", 0)
178
178
  SERVICE_PORT = settings.get("SERVICE_PORT", 0)
179
179
  MONITORING_PORT = settings.get("MONITORING_PORT", 0)
180
+ STORAGE_MNEMONIC = settings.get("STORAGE_MNEMONIC", "CM")
181
+ SERVICE_TYPE = settings.get("SERVICE_TYPE", "cm_cs")
180
182
 
181
183
  # CM_SETUP_ID = Gauge("CM_SETUP_ID", 'Setup ID')
182
184
  # CM_TEST_ID = Gauge("CM_TEST_ID", 'Test ID')
@@ -22,12 +22,16 @@ from rich.console import Console
22
22
 
23
23
  from egse.confman import ConfigurationManagerProtocol
24
24
  from egse.confman import ConfigurationManagerProxy
25
- from egse.confman import PROCESS_NAME
26
- from egse.confman import PROTOCOL
27
- from egse.confman import HOSTNAME
28
- from egse.confman import COMMANDING_PORT
29
- from egse.confman import SERVICE_PORT
30
- from egse.confman import MONITORING_PORT
25
+ from egse.confman import (
26
+ PROCESS_NAME,
27
+ PROTOCOL,
28
+ HOSTNAME,
29
+ COMMANDING_PORT,
30
+ SERVICE_PORT,
31
+ MONITORING_PORT,
32
+ STORAGE_MNEMONIC,
33
+ SERVICE_TYPE,
34
+ )
31
35
 
32
36
  from egse.control import ControlServer
33
37
  from egse.env import get_conf_data_location
@@ -66,7 +70,7 @@ class ConfigurationManagerControlServer(ControlServer):
66
70
 
67
71
  self.poller.register(self.dev_ctrl_cmd_sock, zmq.POLLIN)
68
72
 
69
- self.register_service(service_type=settings.SERVICE_TYPE)
73
+ self.register_service(service_type=SERVICE_TYPE)
70
74
 
71
75
  self.set_hk_delay(10.0)
72
76
 
@@ -85,10 +89,7 @@ class ConfigurationManagerControlServer(ControlServer):
85
89
  return get_port_number(self.dev_ctrl_mon_sock) or MONITORING_PORT
86
90
 
87
91
  def get_storage_mnemonic(self):
88
- try:
89
- return settings.STORAGE_MNEMONIC
90
- except AttributeError:
91
- return "CM"
92
+ return STORAGE_MNEMONIC
92
93
 
93
94
  def is_storage_manager_active(self):
94
95
  from egse.storage import is_storage_manager_active
@@ -132,8 +132,6 @@ class ControlServer(metaclass=abc.ABCMeta):
132
132
  self.registry = RegistryClient()
133
133
  self.registry.connect()
134
134
 
135
- self.service_id = None
136
-
137
135
  # These instance variables will probably be overwritten by the subclass __init__
138
136
  self.service_type = camel_to_kebab(type(self).__name__)
139
137
  self.service_name = camel_to_snake(type(self).__name__)
@@ -620,27 +618,15 @@ class ControlServer(metaclass=abc.ABCMeta):
620
618
  def setup_signaling(self):
621
619
  self.signaling = FileBasedSignaling(self.service_name)
622
620
  self.signaling.start_monitoring()
623
- self.signaling.register_handler("reregister", self._reregister_service)
624
-
625
- def _reregister_service(self, force: bool = False):
626
- self.logger.info(f"Re-registration of service: {self.service_name} ({force=})")
627
-
628
- if self.registry.get_service(self.service_id):
629
- if force:
630
- self.deregister_service()
631
- else:
632
- return
633
-
634
- # FIXME: not sure if the stop heartbeat is necessary here, but I see that after
635
- # a re-registration signal, the heartbeat socket is None.
636
- # self.registry.stop_heartbeat()
637
-
638
- self.register_service(self.service_type)
621
+ self.signaling.register_handler("reregister", self.reregister_service)
639
622
 
640
- def register_service(self, service_type: str):
623
+ def register_service(self, service_type: str) -> None:
641
624
  self.logger.info(f"Registering service {self.service_name} as type {service_type}")
625
+
642
626
  self.service_type = service_type
643
- self.service_id = self.registry.register(
627
+
628
+ self.registry.stop_heartbeat()
629
+ self.registry.register(
644
630
  name=self.service_name,
645
631
  host=get_host_ip() or "127.0.0.1",
646
632
  port=get_port_number(self.dev_ctrl_cmd_sock),
@@ -655,7 +641,18 @@ class ControlServer(metaclass=abc.ABCMeta):
655
641
  def deregister_service(self):
656
642
  if self.registry:
657
643
  self.registry.stop_heartbeat()
658
- self.registry.deregister(self.service_id)
644
+ self.registry.deregister()
645
+
646
+ def reregister_service(self, force: bool = False) -> None:
647
+ self.logger.info(f"Re-registration of service: {self.service_name} ({force=})")
648
+
649
+ if self.registry.get_service():
650
+ if force:
651
+ self.deregister_service()
652
+ else:
653
+ return
654
+
655
+ self.register_service(self.service_type)
659
656
 
660
657
  def store_housekeeping_information(self, data: dict) -> None:
661
658
  """Sends housekeeping information to the Storage Manager.
@@ -254,7 +254,7 @@ def start():
254
254
  commander.close(linger=0)
255
255
  receiver.close(linger=0)
256
256
 
257
- if not is_service_registered:
257
+ if is_service_registered:
258
258
  client.stop_heartbeat()
259
259
  client.deregister(service_id)
260
260
 
@@ -25,10 +25,14 @@ COMMAND_SETTINGS = Settings.load(location=HERE, filename="procman.yaml")
25
25
 
26
26
  PROXY_TIMEOUT = 10.0 # don't wait longer than 10s
27
27
 
28
+ PROCESS_NAME = settings.get("PROCESS_NAME", "pm_cs")
28
29
  SERVICE_TYPE = settings.get("SERVICE_TYPE", "pm_cs")
29
30
  PROTOCOL = settings.get("PROTOCOL", "tcp")
30
31
  HOSTNAME = settings.get("HOSTNAME", "localhost")
31
32
  COMMANDING_PORT = settings.get("COMMANDING_PORT", 0) # dynamically assigned by the system if 0
33
+ SERVICE_PORT = settings.get("SERVICE_PORT", 0)
34
+ MONITORING_PORT = settings.get("MONITORING_PORT", 0)
35
+ STORAGE_MNEMONIC = settings.get("STORAGE_MNEMONIC", "PM")
32
36
 
33
37
 
34
38
  def is_process_manager_active(timeout: float = 0.5) -> bool:
@@ -395,11 +399,11 @@ class ProcessManagerProxy(Proxy, ProcessManagerInterface):
395
399
  """Proxy for process management, used to connect to the Process Manager Control Server and send commands remotely."""
396
400
 
397
401
  def __init__(
398
- self,
399
- protocol: str = PROTOCOL,
400
- hostname: str = HOSTNAME,
401
- port: int = COMMANDING_PORT,
402
- timeout: float = PROXY_TIMEOUT
402
+ self,
403
+ protocol: str = PROTOCOL,
404
+ hostname: str = HOSTNAME,
405
+ port: int = COMMANDING_PORT,
406
+ timeout: float = PROXY_TIMEOUT,
403
407
  ):
404
408
  """
405
409
  Initialisation of a new Proxy for Process Management.
@@ -21,7 +21,16 @@ from egse.process import SubProcess
21
21
  from egse.procman.procman_protocol import ProcessManagerProtocol
22
22
  from egse.registry.client import RegistryClient
23
23
  from egse.services import ServiceProxy
24
- from egse.settings import Settings
24
+ from egse.procman import (
25
+ PROCESS_NAME,
26
+ SERVICE_TYPE,
27
+ PROTOCOL,
28
+ COMMANDING_PORT,
29
+ SERVICE_PORT,
30
+ MONITORING_PORT,
31
+ HOSTNAME,
32
+ STORAGE_MNEMONIC,
33
+ )
25
34
  from egse.storage import store_housekeeping_information
26
35
  from egse.zmq_ser import get_port_number
27
36
 
@@ -29,15 +38,6 @@ from egse.zmq_ser import get_port_number
29
38
 
30
39
  logger = logging.getLogger("egse.procman")
31
40
 
32
- settings = Settings.load("Process Manager Control Server")
33
-
34
- PROCESS_NAME = settings.get("PROCESS_NAME", "cm_cs")
35
- PROTOCOL = settings.get("PROTOCOL", "tcp")
36
- HOSTNAME = settings.get("HOSTNAME", "localhost")
37
- COMMANDING_PORT = settings.get("COMMANDING_PORT", 0)
38
- SERVICE_PORT = settings.get("SERVICE_PORT", 0)
39
- MONITORING_PORT = settings.get("MONITORING_PORT", 0)
40
-
41
41
 
42
42
  class ProcessManagerControlServer(ControlServer):
43
43
  def __init__(self):
@@ -47,7 +47,7 @@ class ProcessManagerControlServer(ControlServer):
47
47
 
48
48
  self.logger = logger
49
49
  self.service_name = PROCESS_NAME
50
- self.service_type = settings.SERVICE_TYPE
50
+ self.service_type = SERVICE_TYPE
51
51
 
52
52
  self.device_protocol = ProcessManagerProtocol(self)
53
53
 
@@ -57,7 +57,7 @@ class ProcessManagerControlServer(ControlServer):
57
57
 
58
58
  self.poller.register(self.dev_ctrl_cmd_sock, zmq.POLLIN)
59
59
 
60
- self.register_service(service_type=settings.SERVICE_TYPE)
60
+ self.register_service(service_type=SERVICE_TYPE)
61
61
 
62
62
  self.set_hk_delay(10.0)
63
63
 
@@ -76,10 +76,7 @@ class ProcessManagerControlServer(ControlServer):
76
76
  return get_port_number(self.dev_ctrl_mon_sock) or MONITORING_PORT
77
77
 
78
78
  def get_storage_mnemonic(self):
79
- try:
80
- return settings.STORAGE_MNEMONIC
81
- except AttributeError:
82
- return "PM"
79
+ return STORAGE_MNEMONIC
83
80
 
84
81
  def is_storage_manager_active(self):
85
82
  from egse.storage import is_storage_manager_active
@@ -310,6 +310,25 @@ class RegistryClient:
310
310
  self.logger.error(f"Failed to deregister service: {response.get('error')}")
311
311
  return False
312
312
 
313
+ def reregister(self) -> str | None:
314
+ if not self._service_id:
315
+ self.logger.warning("Cannot reregister: no service is registered")
316
+ return None
317
+
318
+ if not self._service_info:
319
+ self.logger.warning(
320
+ "Cannot reregister: no service info was saved by this registry client or service already deregistered."
321
+ )
322
+ return None
323
+
324
+ return self.register(
325
+ name=self._service_info["name"],
326
+ host=self._service_info["host"],
327
+ port=self._service_info["port"],
328
+ service_type=self._service_info["type"],
329
+ metadata=self._service_info["metadata"],
330
+ )
331
+
313
332
  def discover_service(self, service_type: str, use_cache: bool = False) -> dict[str, Any] | None:
314
333
  """
315
334
  Discover a service of the specified type. The service is guaranteed to be healthy at the time of discovery.
@@ -344,17 +363,23 @@ class RegistryClient:
344
363
  self.logger.warning(f"Service discovery failed: {response.get('error')}")
345
364
  return None
346
365
 
347
- def get_service(self, service_id: str, use_cache: bool = True) -> dict[str, Any] | None:
366
+ def get_service(self, service_id: str | None = None, use_cache: bool = True) -> dict[str, Any] | None:
348
367
  """
349
- Get information about a specific service.
368
+ Get information about a specific service. When no service_id is given,
369
+ the service_id known to this client will be used.
350
370
 
351
371
  Args:
352
- service_id: ID of the service to get
372
+ service_id: ID of the service to get [default=None]
353
373
  use_cache: Whether to use cached service information
354
374
 
355
375
  Returns:
356
376
  Service information if found, None otherwise.
357
377
  """
378
+ service_id = service_id or self._service_id
379
+
380
+ if not service_id:
381
+ self.logger.warning("Cannot get service: no service id is given or known.")
382
+ return None
358
383
 
359
384
  request = {"action": "get", "service_id": service_id}
360
385
 
@@ -453,6 +478,9 @@ class RegistryClient:
453
478
  if not self.health_check():
454
479
  self.logger.warning("ServiceRegistry not responding.")
455
480
  return
481
+ else:
482
+ self.logger.info("Health check succeeded, reregistering ?")
483
+ self.reregister()
456
484
 
457
485
  else:
458
486
  self.logger.debug(response.get("message"))
@@ -22,6 +22,7 @@ import typer
22
22
  import zmq
23
23
  import zmq.asyncio
24
24
 
25
+ from egse.env import bool_env
25
26
  from egse.logger import remote_logging
26
27
  from egse.registry import DEFAULT_RS_DB_PATH
27
28
  from egse.registry import DEFAULT_RS_HB_PORT
@@ -39,6 +40,8 @@ from egse.system import get_logging_level
39
40
 
40
41
  settings = Settings.load("Service Registry")
41
42
 
43
+ VERBOSE_DEBUG = bool_env("VERBOSE_DEBUG")
44
+
42
45
  app = typer.Typer(name="rs_cs")
43
46
 
44
47
 
@@ -234,7 +237,9 @@ class AsyncRegistryServer:
234
237
  message_type = MessageType(message_parts[1])
235
238
  message_data = message_parts[2]
236
239
 
237
- self.logger.info(f"{client_id = }, {message_type = }, {message_data = }")
240
+ if VERBOSE_DEBUG:
241
+ self.logger.debug(f"{client_id = }, {message_type = }, {message_data = }")
242
+
238
243
  response = await self._process_request(message_data)
239
244
 
240
245
  await self._send_response(client_id, message_type, response)
@@ -274,7 +279,7 @@ class AsyncRegistryServer:
274
279
  """
275
280
  try:
276
281
  request = json.loads(msg_data.decode())
277
- self.logger.info(f"Received request: {request}")
282
+ self.logger.debug(f"Received request: {request}")
278
283
 
279
284
  except json.JSONDecodeError as exc:
280
285
  self.logger.error(f"Invalid JSON received: {exc}")
@@ -377,7 +382,7 @@ class AsyncRegistryServer:
377
382
  """Handle a service heartbeat request."""
378
383
  service_id = request.get("service_id")
379
384
 
380
- self.logger.info(f"Handle renew request: {request}")
385
+ self.logger.debug(f"Handle renew request: {request}")
381
386
 
382
387
  if not service_id:
383
388
  return {"success": False, "error": "Missing required field: service_id"}
@@ -428,7 +433,7 @@ class AsyncRegistryServer:
428
433
 
429
434
  service_id = request.get("service_id")
430
435
 
431
- self.logger.info(f"Handle get request: {request}")
436
+ self.logger.debug(f"Handle get request: {request}")
432
437
 
433
438
  if not service_id:
434
439
  return {"success": False, "error": "Missing required field: service_id"}
@@ -445,7 +450,7 @@ class AsyncRegistryServer:
445
450
  """Handle a request to list services."""
446
451
  service_type = request.get("service_type")
447
452
 
448
- self.logger.info(f"Handle list request: {request}")
453
+ self.logger.debug(f"Handle list request: {request}")
449
454
 
450
455
  # List the services
451
456
  services = await self.backend.list_services(service_type)
@@ -459,7 +464,7 @@ class AsyncRegistryServer:
459
464
  """Handle a service discovery request."""
460
465
  service_type = request.get("service_type")
461
466
 
462
- self.logger.info(f"Handle discover request for service type: {service_type}")
467
+ self.logger.debug(f"Handle discover request for service type: {service_type}")
463
468
 
464
469
  if not service_type:
465
470
  return {"success": False, "error": "Missing required field: service_type"}
@@ -475,7 +480,7 @@ class AsyncRegistryServer:
475
480
  async def _handle_info(self, request: dict[str, Any]) -> dict[str, Any]:
476
481
  """Handle the info request and send information about the registry server."""
477
482
 
478
- self.logger.info(f"Handle info request: {request}")
483
+ self.logger.debug(f"Handle info request: {request}")
479
484
 
480
485
  # List the services
481
486
  services = await self.backend.list_services()
@@ -491,14 +496,14 @@ class AsyncRegistryServer:
491
496
  async def _handle_health(self, request: dict[str, Any]) -> dict[str, Any]:
492
497
  """Handle a health check request."""
493
498
 
494
- self.logger.info(f"Handle health request: {request}")
499
+ self.logger.debug(f"Handle health request: {request}")
495
500
 
496
501
  return {"success": True, "status": "ok", "timestamp": int(time.time())}
497
502
 
498
503
  async def _handle_terminate(self, request: dict[str, Any]) -> dict[str, Any]:
499
504
  """Handle a termination request."""
500
505
 
501
- self.logger.info(f"Handle termination request: {request}")
506
+ self.logger.debug(f"Handle termination request: {request}")
502
507
 
503
508
  self.stop()
504
509
 
@@ -153,9 +153,15 @@ settings = Settings.load("Storage Manager Control Server")
153
153
  SITE_ID = get_site_id()
154
154
  DEVICE_SETTINGS = COMMAND_SETTINGS = Settings.load(location=HERE, filename="storage.yaml")
155
155
 
156
+
157
+ PROCESS_NAME = settings.get("PROCESS_NAME", "sm_cs")
158
+ SERVICE_TYPE = settings.get("SERVICE_TYPE", "sm_cs")
156
159
  PROTOCOL = settings.get("PROTOCOL", "tcp")
157
160
  HOSTNAME = settings.get("HOSTNAME", "localhost")
158
- COMMANDING_PORT = settings.get("COMMANDING_PORT", 0)
161
+ COMMANDING_PORT = settings.get("COMMANDING_PORT", 0) # dynamically assigned by the system if 0
162
+ SERVICE_PORT = settings.get("SERVICE_PORT", 0)
163
+ MONITORING_PORT = settings.get("MONITORING_PORT", 0)
164
+ STORAGE_MNEMONIC = settings.get("STORAGE_MNEMONIC", "SM")
159
165
 
160
166
 
161
167
  def is_storage_manager_active(timeout: float = 0.5):
@@ -1071,11 +1077,11 @@ class StorageProxy(Proxy, StorageInterface):
1071
1077
  """
1072
1078
 
1073
1079
  def __init__(
1074
- self,
1075
- protocol: str = PROTOCOL,
1076
- hostname: str = HOSTNAME,
1077
- port: int = COMMANDING_PORT,
1078
- timeout: float = REQUEST_TIMEOUT,
1080
+ self,
1081
+ protocol: str = PROTOCOL,
1082
+ hostname: str = HOSTNAME,
1083
+ port: int = COMMANDING_PORT,
1084
+ timeout: float = REQUEST_TIMEOUT,
1079
1085
  ):
1080
1086
  endpoint = get_endpoint(settings.SERVICE_TYPE, protocol, hostname, port)
1081
1087
 
@@ -32,8 +32,16 @@ from egse.logger import remote_logging
32
32
  from egse.process import SubProcess
33
33
  from egse.registry.client import RegistryClient
34
34
  from egse.services import ServiceProxy
35
- from egse.settings import Settings
36
- from egse.storage import StorageProtocol
35
+ from egse.storage import (
36
+ StorageProtocol,
37
+ PROCESS_NAME,
38
+ SERVICE_TYPE,
39
+ PROTOCOL,
40
+ COMMANDING_PORT,
41
+ SERVICE_PORT,
42
+ MONITORING_PORT,
43
+ HOSTNAME,
44
+ )
37
45
  from egse.storage import StorageProxy
38
46
  from egse.storage import cycle_daily_files
39
47
  from egse.zmq_ser import get_port_number
@@ -41,16 +49,6 @@ from egse.zmq_ser import get_port_number
41
49
  # Use explicit name here otherwise the logger will probably be called __main__
42
50
 
43
51
  logger = logging.getLogger("egse.storage")
44
-
45
- settings = Settings.load("Storage Manager Control Server")
46
-
47
- PROCESS_NAME = settings.get("PROCESS_NAME", "cm_cs")
48
- PROTOCOL = settings.get("PROTOCOL", "tcp")
49
- HOSTNAME = settings.get("HOSTNAME", "localhost")
50
- COMMANDING_PORT = settings.get("COMMANDING_PORT", 0)
51
- SERVICE_PORT = settings.get("SERVICE_PORT", 0)
52
- MONITORING_PORT = settings.get("MONITORING_PORT", 0)
53
-
54
52
  SITE_ID = get_site_id()
55
53
 
56
54
 
@@ -66,7 +64,7 @@ class StorageControlServer(ControlServer):
66
64
 
67
65
  self.logger = logger
68
66
  self.service_name = PROCESS_NAME
69
- self.service_type = settings.SERVICE_TYPE
67
+ self.service_type = SERVICE_TYPE
70
68
 
71
69
  self.device_protocol = StorageProtocol(self)
72
70
 
@@ -76,7 +74,7 @@ class StorageControlServer(ControlServer):
76
74
 
77
75
  self.poller.register(self.dev_ctrl_cmd_sock, zmq.POLLIN)
78
76
 
79
- self.register_service(service_type=settings.SERVICE_TYPE)
77
+ self.register_service(service_type=SERVICE_TYPE)
80
78
 
81
79
  # NOTE:
82
80
  # Since the CM CS is started after the SM CS in the normal startup sequence, delay the task to load
@@ -179,7 +177,7 @@ def stop():
179
177
 
180
178
  if COMMANDING_PORT == 0:
181
179
  with RegistryClient() as reg:
182
- service = reg.discover_service(settings.SERVICE_TYPE)
180
+ service = reg.discover_service(SERVICE_TYPE)
183
181
  rich.print("service = ", service)
184
182
  if service:
185
183
  hostname = service["host"]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-gui"
3
- version = "0.16.6"
3
+ version = "0.16.7"
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.6"
3
+ version = "0.16.7"
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.6"
3
+ version = "0.16.7"
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.6"
3
+ version = "0.16.7"
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.6"
3
+ version = "0.16.7"
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.6"
3
+ version = "0.16.7"
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.6"
3
+ version = "0.16.7"
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.6"
3
+ version = "0.16.7"
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.6"
3
+ version = "0.16.7"
4
4
  description = "Generic Common-EGSE: Commanding and monitoring lab equipment"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
index 8c9c60b..e914731 100644
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