cgse 0.16.0__tar.gz → 0.16.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. {cgse-0.16.0 → cgse-0.16.1}/PKG-INFO +1 -1
  2. cgse-0.16.1/docs/images/cli-cgse.png +0 -0
  3. {cgse-0.16.0 → cgse-0.16.1}/docs/user_guide/cli.md +1 -1
  4. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/pyproject.toml +1 -1
  5. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/pyproject.toml +1 -1
  6. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/pyproject.toml +1 -1
  7. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/cgse_core/settings.yaml +25 -15
  8. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/confman/__init__.py +12 -16
  9. {cgse-0.16.0/libs/cgse-common → cgse-0.16.1/libs/cgse-core}/src/egse/connect.py +45 -0
  10. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/dummy.py +7 -0
  11. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/logger/__init__.py +9 -9
  12. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/notifyhub/__init__.py +4 -0
  13. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/notifyhub/server.py +8 -5
  14. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/procman/__init__.py +17 -17
  15. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/registry/__init__.py +4 -4
  16. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/storage/__init__.py +16 -18
  17. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/pyproject.toml +1 -1
  18. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/cgse-tools/pyproject.toml +1 -1
  19. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/pyproject.toml +1 -1
  20. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/lakeshore-tempcontrol/pyproject.toml +1 -1
  21. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/pyproject.toml +1 -1
  22. {cgse-0.16.0 → cgse-0.16.1}/projects/plato/plato-fits/pyproject.toml +1 -1
  23. {cgse-0.16.0 → cgse-0.16.1}/projects/plato/plato-hdf5/pyproject.toml +1 -1
  24. {cgse-0.16.0 → cgse-0.16.1}/projects/plato/plato-spw/pyproject.toml +1 -1
  25. {cgse-0.16.0 → cgse-0.16.1}/pyproject.toml +1 -1
  26. {cgse-0.16.0 → cgse-0.16.1}/service_registry.db +0 -0
  27. {cgse-0.16.0 → cgse-0.16.1}/service_registry.db-shm +0 -0
  28. {cgse-0.16.0 → cgse-0.16.1}/service_registry.db-wal +0 -0
  29. cgse-0.16.0/docs/images/cli-cgse.png +0 -0
  30. {cgse-0.16.0 → cgse-0.16.1}/.github/workflows/ruff-format-check.yaml +0 -0
  31. {cgse-0.16.0 → cgse-0.16.1}/.gitignore +0 -0
  32. {cgse-0.16.0 → cgse-0.16.1}/README.md +0 -0
  33. {cgse-0.16.0 → cgse-0.16.1}/buffer_vat.log +0 -0
  34. {cgse-0.16.0 → cgse-0.16.1}/buffer_vat.png +0 -0
  35. {cgse-0.16.0 → cgse-0.16.1}/bump.py +0 -0
  36. {cgse-0.16.0 → cgse-0.16.1}/conftest.py +0 -0
  37. {cgse-0.16.0 → cgse-0.16.1}/docs/api/bits.md +0 -0
  38. {cgse-0.16.0 → cgse-0.16.1}/docs/api/calibration.md +0 -0
  39. {cgse-0.16.0 → cgse-0.16.1}/docs/api/command.md +0 -0
  40. {cgse-0.16.0 → cgse-0.16.1}/docs/api/config.md +0 -0
  41. {cgse-0.16.0 → cgse-0.16.1}/docs/api/control.md +0 -0
  42. {cgse-0.16.0 → cgse-0.16.1}/docs/api/counter.md +0 -0
  43. {cgse-0.16.0 → cgse-0.16.1}/docs/api/decorators.md +0 -0
  44. {cgse-0.16.0 → cgse-0.16.1}/docs/api/device.md +0 -0
  45. {cgse-0.16.0 → cgse-0.16.1}/docs/api/dicts.md +0 -0
  46. {cgse-0.16.0 → cgse-0.16.1}/docs/api/dummy.md +0 -0
  47. {cgse-0.16.0 → cgse-0.16.1}/docs/api/env.md +0 -0
  48. {cgse-0.16.0 → cgse-0.16.1}/docs/api/exceptions.md +0 -0
  49. {cgse-0.16.0 → cgse-0.16.1}/docs/api/heartbeat.md +0 -0
  50. {cgse-0.16.0 → cgse-0.16.1}/docs/api/hk.md +0 -0
  51. {cgse-0.16.0 → cgse-0.16.1}/docs/api/index.md +0 -0
  52. {cgse-0.16.0 → cgse-0.16.1}/docs/api/listener.md +0 -0
  53. {cgse-0.16.0 → cgse-0.16.1}/docs/api/metrics.md +0 -0
  54. {cgse-0.16.0 → cgse-0.16.1}/docs/api/mixin.md +0 -0
  55. {cgse-0.16.0 → cgse-0.16.1}/docs/api/monitoring.md +0 -0
  56. {cgse-0.16.0 → cgse-0.16.1}/docs/api/observer.md +0 -0
  57. {cgse-0.16.0 → cgse-0.16.1}/docs/api/obsid.md +0 -0
  58. {cgse-0.16.0 → cgse-0.16.1}/docs/api/persistence.md +0 -0
  59. {cgse-0.16.0 → cgse-0.16.1}/docs/api/plugin.md +0 -0
  60. {cgse-0.16.0 → cgse-0.16.1}/docs/api/process.md +0 -0
  61. {cgse-0.16.0 → cgse-0.16.1}/docs/api/reload.md +0 -0
  62. {cgse-0.16.0 → cgse-0.16.1}/docs/api/settings.md +0 -0
  63. {cgse-0.16.0 → cgse-0.16.1}/docs/api/setup.md +0 -0
  64. {cgse-0.16.0 → cgse-0.16.1}/docs/api/system.md +0 -0
  65. {cgse-0.16.0 → cgse-0.16.1}/docs/custom_theme/main.html +0 -0
  66. {cgse-0.16.0 → cgse-0.16.1}/docs/dev_guide/coding_style.md +0 -0
  67. {cgse-0.16.0 → cgse-0.16.1}/docs/dev_guide/docs.md +0 -0
  68. {cgse-0.16.0 → cgse-0.16.1}/docs/dev_guide/index.md +0 -0
  69. {cgse-0.16.0 → cgse-0.16.1}/docs/dev_guide/installation.md +0 -0
  70. {cgse-0.16.0 → cgse-0.16.1}/docs/dev_guide/monitoring.md +0 -0
  71. {cgse-0.16.0 → cgse-0.16.1}/docs/dev_guide/monorepo.md +0 -0
  72. {cgse-0.16.0 → cgse-0.16.1}/docs/dev_guide/nox.md +0 -0
  73. {cgse-0.16.0 → cgse-0.16.1}/docs/dev_guide/plugins.md +0 -0
  74. {cgse-0.16.0 → cgse-0.16.1}/docs/dev_guide/project-configuration.md +0 -0
  75. {cgse-0.16.0 → cgse-0.16.1}/docs/dev_guide/unit_testing.md +0 -0
  76. {cgse-0.16.0 → cgse-0.16.1}/docs/dev_guide/uv.md +0 -0
  77. {cgse-0.16.0 → cgse-0.16.1}/docs/dev_guide/versioning.md +0 -0
  78. {cgse-0.16.0 → cgse-0.16.1}/docs/getting_started.md +0 -0
  79. {cgse-0.16.0 → cgse-0.16.1}/docs/help.md +0 -0
  80. {cgse-0.16.0 → cgse-0.16.1}/docs/images/github-fork-clone-dark.png +0 -0
  81. {cgse-0.16.0 → cgse-0.16.1}/docs/images/github-fork-clone.png +0 -0
  82. {cgse-0.16.0 → cgse-0.16.1}/docs/images/grafana-queries.png +0 -0
  83. {cgse-0.16.0 → cgse-0.16.1}/docs/images/icons/cgse-logo-blue.svg +0 -0
  84. {cgse-0.16.0 → cgse-0.16.1}/docs/images/icons/cgse-logo.svg +0 -0
  85. {cgse-0.16.0 → cgse-0.16.1}/docs/index.md +0 -0
  86. {cgse-0.16.0 → cgse-0.16.1}/docs/initialize.md +0 -0
  87. {cgse-0.16.0 → cgse-0.16.1}/docs/libs/cgse-common/images/load_methods.png +0 -0
  88. {cgse-0.16.0 → cgse-0.16.1}/docs/libs/cgse-common/index.md +0 -0
  89. {cgse-0.16.0 → cgse-0.16.1}/docs/libs/cgse-common/settings.md +0 -0
  90. {cgse-0.16.0 → cgse-0.16.1}/docs/libs/cgse-common/setup.md +0 -0
  91. {cgse-0.16.0 → cgse-0.16.1}/docs/libs/cgse-coordinates/index.md +0 -0
  92. {cgse-0.16.0 → cgse-0.16.1}/docs/libs/cgse-core/index.md +0 -0
  93. {cgse-0.16.0 → cgse-0.16.1}/docs/libs/cgse-core/notifyhub.md +0 -0
  94. {cgse-0.16.0 → cgse-0.16.1}/docs/libs/cgse-core/registry.md +0 -0
  95. {cgse-0.16.0 → cgse-0.16.1}/docs/libs/cgse-gui/index.md +0 -0
  96. {cgse-0.16.0 → cgse-0.16.1}/docs/libs/index.md +0 -0
  97. {cgse-0.16.0 → cgse-0.16.1}/docs/package_list.md +0 -0
  98. {cgse-0.16.0 → cgse-0.16.1}/docs/projects/cgse-tools.md +0 -0
  99. {cgse-0.16.0 → cgse-0.16.1}/docs/projects/index.md +0 -0
  100. {cgse-0.16.0 → cgse-0.16.1}/docs/projects/symetrie-hexapod.md +0 -0
  101. {cgse-0.16.0 → cgse-0.16.1}/docs/roadmap.md +0 -0
  102. {cgse-0.16.0 → cgse-0.16.1}/docs/stylesheets/custom.css +0 -0
  103. {cgse-0.16.0 → cgse-0.16.1}/docs/stylesheets/extra.css +0 -0
  104. {cgse-0.16.0 → cgse-0.16.1}/docs/tutorial.md +0 -0
  105. {cgse-0.16.0 → cgse-0.16.1}/docs/user_guide/index.md +0 -0
  106. {cgse-0.16.0 → cgse-0.16.1}/duckdb_metrics.db +0 -0
  107. {cgse-0.16.0 → cgse-0.16.1}/duckdb_metrics.db.wal +0 -0
  108. {cgse-0.16.0 → cgse-0.16.1}/identifier.sqlite +0 -0
  109. {cgse-0.16.0 → cgse-0.16.1}/justfile +0 -0
  110. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/README.md +0 -0
  111. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/justfile +0 -0
  112. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/noxfile.py +0 -0
  113. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/service_registry.db +0 -0
  114. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/cgse_common/__init__.py +0 -0
  115. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/cgse_common/cgse.py +0 -0
  116. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/cgse_common/settings.yaml +0 -0
  117. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/bits.py +0 -0
  118. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/calibration.py +0 -0
  119. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/config.py +0 -0
  120. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/counter.py +0 -0
  121. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/decorators.py +0 -0
  122. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/device.py +0 -0
  123. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/dicts.py +0 -0
  124. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/env.py +0 -0
  125. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/exceptions.py +0 -0
  126. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/heartbeat.py +0 -0
  127. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/hk.py +0 -0
  128. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/log.py +0 -0
  129. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/metrics.py +0 -0
  130. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/observer.py +0 -0
  131. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/obsid.py +0 -0
  132. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/persistence.py +0 -0
  133. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/plugin.py +0 -0
  134. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/plugins/metrics/duckdb.py +0 -0
  135. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/plugins/metrics/influxdb.py +0 -0
  136. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/plugins/metrics/timescaledb.py +0 -0
  137. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/process.py +0 -0
  138. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/py.typed +0 -0
  139. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/randomwalk.py +0 -0
  140. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/ratelimit.py +0 -0
  141. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/reload.py +0 -0
  142. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/resource.py +0 -0
  143. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/response.py +0 -0
  144. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/scpi.py +0 -0
  145. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/settings.py +0 -0
  146. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/settings.yaml +0 -0
  147. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/setup.py +0 -0
  148. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/signal.py +0 -0
  149. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/socketdevice.py +0 -0
  150. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/state.py +0 -0
  151. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/system.py +0 -0
  152. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/task.py +0 -0
  153. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/version.py +0 -0
  154. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/src/egse/zmq_ser.py +0 -0
  155. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/conftest.py +0 -0
  156. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/COPYING +0 -0
  157. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00028_201028_155259.yaml +0 -0
  158. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00029_201028_155331.yaml +0 -0
  159. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00030_210311_134043.yaml +0 -0
  160. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00080_210917_105245.yaml +0 -0
  161. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00081_210922_142259.yaml +0 -0
  162. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00082_210923_094458.yaml +0 -0
  163. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/CSL1/README.md +0 -0
  164. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/CSL2/README.md +0 -0
  165. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/IAS/README.md +0 -0
  166. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/INTA/README.md +0 -0
  167. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/LAB23/README.md +0 -0
  168. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00027_211119_140441.yaml +0 -0
  169. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00028_211119_160406.yaml +0 -0
  170. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00029_211119_172918.yaml +0 -0
  171. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00030_211122_103604.yaml +0 -0
  172. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00031_211123_124900.yaml +0 -0
  173. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/common/telemetry/tm-dictionary-default.csv +0 -0
  174. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/conf/SETUP_20250114_1519.yaml +0 -0
  175. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/conf/config-file.toml +0 -0
  176. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/data/cal_coeff_1234.csv +0 -0
  177. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/data/calibration.csv +0 -0
  178. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/data/calibration.yaml +0 -0
  179. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/data/command.yaml +0 -0
  180. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/data/corrupt.yaml +0 -0
  181. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/data/data-file.txt +0 -0
  182. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/data/empty_data_file.txt +0 -0
  183. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/data/empty_yaml_file.yaml +0 -0
  184. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/data/local_settings.yaml +0 -0
  185. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/data/new_local_settings.yaml +0 -0
  186. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/data/test_setup.yaml +0 -0
  187. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/icons/hourglass.svg +0 -0
  188. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/icons/keyboard.png +0 -0
  189. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/icons/soap_sponge.svg +0 -0
  190. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/lib/dev1/shared-lib.so +0 -0
  191. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/data/lib/dev2/shared-lib.so +0 -0
  192. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/fixtures/default_env.py +0 -0
  193. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/fixtures/helpers.py +0 -0
  194. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/scripts/empty_process.py +0 -0
  195. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/scripts/handle_sigterm.py +0 -0
  196. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/scripts/process_with_children.py +0 -0
  197. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/scripts/raise_value_error.py +0 -0
  198. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/scripts/void-0.py +0 -0
  199. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/scripts/void-1.py +0 -0
  200. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_bits.py +0 -0
  201. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_config.py +0 -0
  202. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_decorators.py +0 -0
  203. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_device.py +0 -0
  204. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_env.py +0 -0
  205. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_fixtures.py +0 -0
  206. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_hk.py +0 -0
  207. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_influxdb_plugin.py +0 -0
  208. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_log.py +0 -0
  209. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_metrics.py +0 -0
  210. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_plugin.py +0 -0
  211. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_process.py +0 -0
  212. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_ratelimit.py +0 -0
  213. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_resource.py +0 -0
  214. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_response.py +0 -0
  215. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_settings.py +0 -0
  216. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_setup.py +0 -0
  217. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_signal.py +0 -0
  218. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_state.py +0 -0
  219. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_system.py +0 -0
  220. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_task.py +0 -0
  221. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-common/tests/test_zmq_ser.py +0 -0
  222. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/README.md +0 -0
  223. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/src/cgse_coordinates/__init__.py +0 -0
  224. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/src/cgse_coordinates/settings.yaml +0 -0
  225. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/src/egse/coordinates/__init__.py +0 -0
  226. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/src/egse/coordinates/avoidance.py +0 -0
  227. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/src/egse/coordinates/cslmodel.py +0 -0
  228. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/src/egse/coordinates/laser_tracker_to_dict.py +0 -0
  229. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/src/egse/coordinates/point.py +0 -0
  230. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/src/egse/coordinates/pyplot.py +0 -0
  231. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/src/egse/coordinates/referenceFrame.py +0 -0
  232. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/src/egse/coordinates/refmodel.py +0 -0
  233. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/src/egse/coordinates/rotationMatrix.py +0 -0
  234. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/src/egse/coordinates/transform3d_addon.py +0 -0
  235. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/tests/test_avoidance.py +0 -0
  236. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/tests/test_coordinates_plot.py +0 -0
  237. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/tests/test_coordinates_serialize.py +0 -0
  238. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/tests/test_point.py +0 -0
  239. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/tests/test_ref_model.py +0 -0
  240. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/tests/test_reference_frames.py +0 -0
  241. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-coordinates/tests/test_refmodel.py +0 -0
  242. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/.envrc.disabled +0 -0
  243. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/README.md +0 -0
  244. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/service_registry.db +0 -0
  245. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/cgse_core/__init__.py +0 -0
  246. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/cgse_core/_start.py +0 -0
  247. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/cgse_core/_status.py +0 -0
  248. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/cgse_core/_stop.py +0 -0
  249. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/cgse_core/cgse_explore.py +0 -0
  250. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/cgse_core/services.py +0 -0
  251. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/_setup_core.py +0 -0
  252. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/async_control.py +0 -0
  253. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/async_control_claude.py +0 -0
  254. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/command.py +0 -0
  255. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/confman/__main__.py +0 -0
  256. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/confman/confman.yaml +0 -0
  257. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/confman/confman_cs.py +0 -0
  258. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/control.py +0 -0
  259. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/icons/busy.svg +0 -0
  260. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/icons/operational-mode.svg +0 -0
  261. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/icons/pm_ui.svg +0 -0
  262. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/icons/simulator-mode.svg +0 -0
  263. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/icons/start-process-button.svg +0 -0
  264. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/icons/stop-process-button.svg +0 -0
  265. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/icons/user-interface.svg +0 -0
  266. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/listener.py +0 -0
  267. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/logger/__main__.py +0 -0
  268. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/logger/log_cs.py +0 -0
  269. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/metricshub/__init__.py +0 -0
  270. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/metricshub/server.py +0 -0
  271. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/mixin.py +0 -0
  272. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/monitoring.py +0 -0
  273. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/notifyhub/client.py +0 -0
  274. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/notifyhub/event.py +0 -0
  275. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/notifyhub/services.py +0 -0
  276. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/notifyhub/test.py +0 -0
  277. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/procman/procman.yaml +0 -0
  278. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/procman/procman_cs.py +0 -0
  279. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/procman/procman_protocol.py +0 -0
  280. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/procman/procman_ui.py +0 -0
  281. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/protocol.py +0 -0
  282. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/proxy.py +0 -0
  283. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/registry/backend.py +0 -0
  284. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/registry/client.py +0 -0
  285. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/registry/server.py +0 -0
  286. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/registry/service.py +0 -0
  287. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/services.py +0 -0
  288. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/services.yaml +0 -0
  289. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/storage/__main__.py +0 -0
  290. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/storage/persistence.py +0 -0
  291. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/storage/storage.yaml +0 -0
  292. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/src/egse/storage/storage_cs.py +0 -0
  293. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/conftest.py +0 -0
  294. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/data/local_settings.yaml +0 -0
  295. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/fixtures/default_env.py +0 -0
  296. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/fixtures/helpers.py +0 -0
  297. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/fixtures/services.py +0 -0
  298. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/script_subscribe_to_notifyhub.py +0 -0
  299. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/script_test_async_registry_client.py +0 -0
  300. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/script_test_registry_client_server.py +0 -0
  301. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/script_test_service_registry_server.py +0 -0
  302. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/script_test_sync_registry_client.py +0 -0
  303. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/services.py +0 -0
  304. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/stress_test_registry_server.py +0 -0
  305. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_async_control.py +0 -0
  306. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_client_server_interaction.py +0 -0
  307. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_cm_cs.py +0 -0
  308. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_command.py +0 -0
  309. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_confman_setups.py +0 -0
  310. {cgse-0.16.0/libs/cgse-common → cgse-0.16.1/libs/cgse-core}/tests/test_connect.py +0 -0
  311. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_control.py +0 -0
  312. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_dummy.py +0 -0
  313. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_event_notification.py +0 -0
  314. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_extensions.py +0 -0
  315. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_listener.py +0 -0
  316. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_logger.py +0 -0
  317. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_mixin.py +0 -0
  318. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_notify_hub.py +0 -0
  319. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_protocol.py +0 -0
  320. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_registry_backend.py +0 -0
  321. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_registry_service.py +0 -0
  322. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_server_running.py +0 -0
  323. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_server_running_with_fixture.py +0 -0
  324. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_settings_core.py +0 -0
  325. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-core/tests/test_zmq_microservice.py +0 -0
  326. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/README.md +0 -0
  327. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/__init__.py +0 -0
  328. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/buttons.py +0 -0
  329. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-start.svg +0 -0
  330. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-stop.svg +0 -0
  331. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/aeu-cs.svg +0 -0
  332. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-started.svg +0 -0
  333. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-stopped.svg +0 -0
  334. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/aeu_cs.svg +0 -0
  335. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/alert.svg +0 -0
  336. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/arrow-double-left.png +0 -0
  337. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/arrow-double-right.png +0 -0
  338. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/arrow-up.svg +0 -0
  339. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/backward.svg +0 -0
  340. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/busy.svg +0 -0
  341. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/cleaning.svg +0 -0
  342. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/color-scheme.svg +0 -0
  343. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/cs-connected-alert.svg +0 -0
  344. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/cs-connected-disabled.svg +0 -0
  345. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/cs-connected.svg +0 -0
  346. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/cs-not-connected.svg +0 -0
  347. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/double-left-arrow.svg +0 -0
  348. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/double-right-arrow.svg +0 -0
  349. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/erase-disabled.svg +0 -0
  350. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/erase.svg +0 -0
  351. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/fitsgen-start.svg +0 -0
  352. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/fitsgen-stop.svg +0 -0
  353. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/fitsgen.svg +0 -0
  354. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/forward.svg +0 -0
  355. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/fov-hk-start.svg +0 -0
  356. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/fov-hk-stop.svg +0 -0
  357. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/fov-hk.svg +0 -0
  358. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/front-desk.svg +0 -0
  359. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/home-actioned.svg +0 -0
  360. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/home-disabled.svg +0 -0
  361. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/home.svg +0 -0
  362. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/info.svg +0 -0
  363. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/invalid.png +0 -0
  364. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/led-green.svg +0 -0
  365. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/led-grey.svg +0 -0
  366. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/led-orange.svg +0 -0
  367. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/led-red.svg +0 -0
  368. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/led-square-green.svg +0 -0
  369. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/led-square-grey.svg +0 -0
  370. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/led-square-orange.svg +0 -0
  371. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/led-square-red.svg +0 -0
  372. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-green.svg +0 -0
  373. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-red.svg +0 -0
  374. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el+.svg +0 -0
  375. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el-.svg +0 -0
  376. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/location-marker.svg +0 -0
  377. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/logo-dpu.svg +0 -0
  378. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/logo-gimbal.svg +0 -0
  379. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/logo-huber.svg +0 -0
  380. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/logo-ogse.svg +0 -0
  381. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/logo-puna.svg +0 -0
  382. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/logo-tcs.svg +0 -0
  383. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/logo-zonda.svg +0 -0
  384. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/maximize.svg +0 -0
  385. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/meter.svg +0 -0
  386. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/more.svg +0 -0
  387. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-start.svg +0 -0
  388. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-stop.svg +0 -0
  389. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk.svg +0 -0
  390. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/observing-off.svg +0 -0
  391. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/observing-on.svg +0 -0
  392. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.png +0 -0
  393. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.svg +0 -0
  394. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/ops-mode.svg +0 -0
  395. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/play-green.svg +0 -0
  396. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/plugged-disabled.svg +0 -0
  397. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/plugged.svg +0 -0
  398. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/pm_ui.svg +0 -0
  399. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/power-button-green.svg +0 -0
  400. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/power-button-red.svg +0 -0
  401. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/power-button.svg +0 -0
  402. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/radar.svg +0 -0
  403. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/radioactive.svg +0 -0
  404. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/reload.svg +0 -0
  405. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/remote-control-off.svg +0 -0
  406. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/remote-control-on.svg +0 -0
  407. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/repeat-blue.svg +0 -0
  408. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/repeat.svg +0 -0
  409. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/settings.svg +0 -0
  410. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/shrink.svg +0 -0
  411. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/shutter.svg +0 -0
  412. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/sign-off.svg +0 -0
  413. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/sign-on.svg +0 -0
  414. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/sim-mode.svg +0 -0
  415. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/small-buttons-go.svg +0 -0
  416. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/small-buttons-minus.svg +0 -0
  417. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/small-buttons-plus.svg +0 -0
  418. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/sponge.svg +0 -0
  419. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/start-button-disabled.svg +0 -0
  420. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/start-button.svg +0 -0
  421. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/stop-button-disabled.svg +0 -0
  422. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/stop-button.svg +0 -0
  423. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/stop-red.svg +0 -0
  424. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/stop.svg +0 -0
  425. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/switch-disabled-square.svg +0 -0
  426. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/switch-disabled.svg +0 -0
  427. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/switch-off-square.svg +0 -0
  428. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/switch-off.svg +0 -0
  429. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/switch-on-square.svg +0 -0
  430. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/switch-on.svg +0 -0
  431. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/temperature-control.svg +0 -0
  432. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/th_ui_logo.svg +0 -0
  433. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/unplugged.svg +0 -0
  434. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/unvalid.png +0 -0
  435. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/user-interface.svg +0 -0
  436. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/vacuum.svg +0 -0
  437. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/valid.png +0 -0
  438. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-dark.svg +0 -0
  439. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-white.svg +0 -0
  440. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/led.py +0 -0
  441. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/limitswitch.py +0 -0
  442. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/states.py +0 -0
  443. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/styles/dark.qss +0 -0
  444. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/styles/default.qss +0 -0
  445. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/styles.qss +0 -0
  446. {cgse-0.16.0 → cgse-0.16.1}/libs/cgse-gui/src/egse/gui/switch.py +0 -0
  447. {cgse-0.16.0 → cgse-0.16.1}/mkdocs.yml +0 -0
  448. {cgse-0.16.0 → cgse-0.16.1}/noxfile.py +0 -0
  449. {cgse-0.16.0 → cgse-0.16.1}/overrides/.icons/custom/dbend-dark.svg +0 -0
  450. {cgse-0.16.0 → cgse-0.16.1}/overrides/.icons/custom/dbend-light.svg +0 -0
  451. {cgse-0.16.0 → cgse-0.16.1}/overrides/.icons/custom/gear.svg +0 -0
  452. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/cgse-tools/README.md +0 -0
  453. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/cgse-tools/src/cgse_tools/__init__.py +0 -0
  454. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/cgse-tools/src/cgse_tools/cgse_clock.py +0 -0
  455. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/cgse-tools/src/cgse_tools/cgse_commands.py +0 -0
  456. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/cgse-tools/src/cgse_tools/cgse_services.py +0 -0
  457. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/cgse-tools/src/egse/tools/status.py +0 -0
  458. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/README.md +0 -0
  459. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/justfile +0 -0
  460. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/noxfile.py +0 -0
  461. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/service_registry.db +0 -0
  462. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/__init__.py +0 -0
  463. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.py +0 -0
  464. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.yaml +0 -0
  465. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_acs.py +0 -0
  466. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_adev.py +0 -0
  467. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_cs.py +0 -0
  468. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_dev.py +0 -0
  469. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_mon.py +0 -0
  470. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_protocol.py +0 -0
  471. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_sim.py +0 -0
  472. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/__init__.py +0 -0
  473. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_explore.py +0 -0
  474. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_services.py +0 -0
  475. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/settings.yaml +0 -0
  476. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/temperature_readings.log +0 -0
  477. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/tests/script_daq6510_central_heating.py +0 -0
  478. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/tests/script_daq6510_mon.py +0 -0
  479. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/tests/script_plot_readings.py +0 -0
  480. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/tests/test_adev.py +0 -0
  481. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/keithley-tempcontrol/tests/test_dev.py +0 -0
  482. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/lakeshore-tempcontrol/README.md +0 -0
  483. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.py +0 -0
  484. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.yaml +0 -0
  485. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_cs.py +0 -0
  486. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_devif.py +0 -0
  487. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_protocol.py +0 -0
  488. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/__init__.py +0 -0
  489. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_explore.py +0 -0
  490. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_services.py +0 -0
  491. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/settings.yaml +0 -0
  492. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/lakeshore-tempcontrol/tests/test_lakeshore336_simulator.py +0 -0
  493. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/README.md +0 -0
  494. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/__init__.py +0 -0
  495. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/__init__.py +0 -0
  496. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/alpha.py +0 -0
  497. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/dynalpha.py +0 -0
  498. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod.py +0 -0
  499. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod_ui.py +0 -0
  500. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.py +0 -0
  501. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.yaml +0 -0
  502. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_cs.py +0 -0
  503. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_protocol.py +0 -0
  504. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_ui.py +0 -0
  505. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac.py +0 -0
  506. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac_regex.py +0 -0
  507. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.py +0 -0
  508. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.yaml +0 -0
  509. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_cs.py +0 -0
  510. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_protocol.py +0 -0
  511. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_sim.py +0 -0
  512. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_ui.py +0 -0
  513. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/punaplus.py +0 -0
  514. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.py +0 -0
  515. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.yaml +0 -0
  516. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_cs.py +0 -0
  517. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_devif.py +0 -0
  518. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_protocol.py +0 -0
  519. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_ui.py +0 -0
  520. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/__init__.py +0 -0
  521. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_explore.py +0 -0
  522. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_services.py +0 -0
  523. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/settings.yaml +0 -0
  524. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/tests/test_puna.py +0 -0
  525. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/tests/test_puna_cs.py +0 -0
  526. {cgse-0.16.0 → cgse-0.16.1}/projects/generic/symetrie-hexapod/tests/test_puna_simulator.py +0 -0
  527. {cgse-0.16.0 → cgse-0.16.1}/projects/plato/plato-fits/README.md +0 -0
  528. {cgse-0.16.0 → cgse-0.16.1}/projects/plato/plato-fits/src/egse/plugins/storage/fits.py +0 -0
  529. {cgse-0.16.0 → cgse-0.16.1}/projects/plato/plato-hdf5/README.md +0 -0
  530. {cgse-0.16.0 → cgse-0.16.1}/projects/plato/plato-hdf5/src/egse/plugins/storage/hdf5.py +0 -0
  531. {cgse-0.16.0 → cgse-0.16.1}/projects/plato/plato-spw/README.md +0 -0
  532. {cgse-0.16.0 → cgse-0.16.1}/projects/plato/plato-spw/src/egse/spw.py +0 -0
  533. {cgse-0.16.0 → cgse-0.16.1}/ruff.toml +0 -0
  534. {cgse-0.16.0 → cgse-0.16.1}/scratch/advanced-process-monitoring.py +0 -0
  535. {cgse-0.16.0 → cgse-0.16.1}/scratch/live-process-monitoring.py +0 -0
  536. {cgse-0.16.0 → cgse-0.16.1}/scratch/match-case.py +0 -0
  537. {cgse-0.16.0 → cgse-0.16.1}/scratch/processes.json +0 -0
  538. {cgse-0.16.0 → cgse-0.16.1}/scratch/simple-process-monitoring.py +0 -0
  539. {cgse-0.16.0 → cgse-0.16.1}/temperature_readings.log +0 -0
  540. {cgse-0.16.0 → cgse-0.16.1}/test_service_registry.db +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cgse
3
- Version: 0.16.0
3
+ Version: 0.16.1
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>
Binary file
@@ -2,7 +2,7 @@
2
2
  # CLI Commands CGSE
3
3
 
4
4
  The CGSE comes with a suite of CLI commands to start and stop services, get
5
- status reports and check the installation.It's actually a suite of `cgse`
5
+ status reports and check the installation. It's actually a suite of `cgse`
6
6
  sub-commands that is extendable by external packages. This section will
7
7
  describe the commands that are available from the `cgse` packages.
8
8
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-common"
3
- version = "0.16.0"
3
+ version = "0.16.1"
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.0"
3
+ version = "0.16.1"
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.0"
3
+ version = "0.16.1"
4
4
  description = "Core services for the CGSE framework"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -3,7 +3,12 @@ PACKAGES:
3
3
 
4
4
  Service Registry:
5
5
 
6
- CLEANUP_INTERVAL: 30
6
+ CLEANUP_INTERVAL: 30
7
+ REQUESTER_PORT: 6100
8
+ PUBLISHER_PORT: 6101
9
+ HEARTBEAT_PORT: 6102
10
+ DATABASE_PATH: service_registry.db
11
+
7
12
 
8
13
  Logging Control Server: # LOG_CS
9
14
 
@@ -11,8 +16,8 @@ Logging Control Server: # LOG_CS
11
16
  PROCESS_NAME: log_cs
12
17
  MAX_NR_LOG_FILES: 20 # The maximum number of log files that will be maintained in a roll-over
13
18
  MAX_SIZE_LOG_FILES: 20 # The maximum size one log file can become
14
- RECEIVER_PORT: 4248
15
- COMMANDER_PORT: 4249
19
+ RECEIVER_PORT: 6105
20
+ COMMANDER_PORT: 6106
16
21
  TEXTUALOG_IP_ADDRESS: 127.0.0.1 # The IP address of the textualog listening server
17
22
  TEXTUALOG_LISTENING_PORT: 19996 # The port number on which the textualog server is listening
18
23
 
@@ -20,9 +25,9 @@ Configuration Manager Control Server: # CM_CS
20
25
 
21
26
  SERVICE_TYPE: CM_CS
22
27
  PROCESS_NAME: cm_cs
23
- COMMANDING_PORT: 6000 # The port on which the controller listens to commands - REQ-REP
24
- MONITORING_PORT: 6001 # The port on which the controller sends periodic status information of the device - PUB-SUB
25
- SERVICE_PORT: 6002 # The port on which the controller listens for configuration and administration - REQ-REP
28
+ COMMANDING_PORT: 6110 # The port on which the controller listens to commands - REQ-REP
29
+ MONITORING_PORT: 6111 # The port on which the controller sends periodic status information of the device - PUB-SUB
30
+ SERVICE_PORT: 6112 # The port on which the controller listens for configuration and administration - REQ-REP
26
31
  DELAY: 1 # The delay time between publishing status information [seconds]
27
32
  STORAGE_MNEMONIC: CM # The mnemonic to be used in the filename storing the housekeeping data
28
33
 
@@ -30,30 +35,35 @@ Storage Manager Control Server: # SM_CS
30
35
 
31
36
  SERVICE_TYPE: SM_CS
32
37
  PROCESS_NAME: sm_cs
33
- COMMANDING_PORT: 6010 # The port on which the controller listens to commands - REQ-REP
34
- MONITORING_PORT: 6011 # The port on which the controller sends periodic status information of the device - PUB-SUB
35
- SERVICE_PORT: 6012 # The port on which the controller listens for configuration and administration - REQ-REP
38
+ COMMANDING_PORT: 6115 # The port on which the controller listens to commands - REQ-REP
39
+ MONITORING_PORT: 6116 # The port on which the controller sends periodic status information of the device - PUB-SUB
40
+ SERVICE_PORT: 6117 # The port on which the controller listens for configuration and administration - REQ-REP
36
41
  DELAY: 1 # The delay time between publishing status information [seconds]
37
42
 
38
43
  Process Manager Control Server: # PM_CS
39
44
 
40
45
  SERVICE_TYPE: PM_CS
41
46
  PROCESS_NAME: pm_cs
42
- COMMANDING_PORT: 6020 # The port on which the controller listens to commands - REQ-REP
43
- MONITORING_PORT: 6021 # The port on which the controller sends periodic status information of the devide - PUB-SUB
44
- SERVICE_PORT: 6022 # The port number on which the controller listens for configuration and administration - REQ-REP
47
+ COMMANDING_PORT: 6120 # The port on which the controller listens to commands - REQ-REP
48
+ MONITORING_PORT: 6121 # The port on which the controller sends periodic status information of the devide - PUB-SUB
49
+ SERVICE_PORT: 6122 # The port number on which the controller listens for configuration and administration - REQ-REP
45
50
  DELAY: 1 # The delay time between publishing status information [seconds]
46
51
  STORAGE_MNEMONIC: PM # The mnemonic to be used in the filename storing the housekeeping data
47
52
 
48
53
  Notify Hub:
49
54
 
50
55
  SERVICE_TYPE: NOTIFY_HUB
56
+ SERVICE_ID: nh_cs_1
51
57
  PROCESS_NAME: nh_cs
52
- COLLECTOR_PORT: 4245
53
- PUBLISHER_PORT: 4246
54
- REQUESTS_PORT: 4247
58
+ COLLECTOR_PORT: 6125
59
+ PUBLISHER_PORT: 6126
60
+ REQUESTS_PORT: 6167
55
61
 
56
62
  Metrics Hub:
57
63
 
58
64
  SERVICE_TYPE: METRICS_HUB
65
+ SERVICE_ID: mh_cs_1
59
66
  PROCESS_NAME: mh_cs
67
+ COLLECTOR_PORT: 6130
68
+ PUBLISHER_PORT: 6131
69
+ REQUESTS_PORT: 6132
@@ -128,6 +128,7 @@ from egse.command import ClientServerCommand
128
128
  from egse.command import stringify_function_call
129
129
  from egse.config import find_file
130
130
  from egse.config import find_files
131
+ from egse.connect import get_endpoint
131
132
  from egse.control import ControlServer
132
133
  from egse.control import is_control_server_active
133
134
  from egse.decorators import dynamic_interface
@@ -992,27 +993,22 @@ class ConfigurationManagerProxy(Proxy, ConfigurationManagerInterface):
992
993
  """
993
994
  The Configuration Manager Proxy class is used to connect to the Configuration Manager
994
995
  Control Server and send commands and requests for the configuration manager.
996
+
997
+ When the port number passed is 0 (zero), the endpoint is requested from the
998
+ service registry.
999
+
1000
+ Args:
1001
+ protocol: the transport protocol [default is taken from settings file]
1002
+ hostname: location of the control server (IP address) [default is taken
1003
+ from settings file]
1004
+ port: TCP port on which the control server is listening for commands
1005
+ [default is taken from settings file]
995
1006
  """
996
1007
 
997
1008
  def __init__(
998
1009
  self, protocol: str = PROTOCOL, hostname: str = HOSTNAME, port: int = COMMANDING_PORT, timeout=PROXY_TIMEOUT
999
1010
  ):
1000
- """
1001
- Args:
1002
- protocol: the transport protocol [default is taken from settings file]
1003
- hostname: location of the control server (IP address) [default is taken
1004
- from settings file]
1005
- port: TCP port on which the control server is listening for commands
1006
- [default is taken from settings file]
1007
- """
1008
- if port == 0:
1009
- with RegistryClient() as reg:
1010
- endpoint = reg.get_endpoint(settings.SERVICE_TYPE)
1011
-
1012
- if not endpoint:
1013
- raise RuntimeError(f"No service registered as {settings.SERVICE_TYPE}")
1014
- else:
1015
- endpoint = connect_address(protocol, hostname, port)
1011
+ endpoint = get_endpoint(settings.SERVICE_TYPE, protocol, hostname, port)
1016
1012
 
1017
1013
  super().__init__(endpoint, timeout=timeout)
1018
1014
 
@@ -4,12 +4,57 @@ import time
4
4
  from enum import Enum
5
5
 
6
6
  from egse.log import logging
7
+ from egse.registry.client import RegistryClient
8
+ from egse.zmq_ser import connect_address
7
9
 
8
10
  logger = logging.getLogger("egse.connect")
9
11
 
10
12
  # random.seed(time.monotonic()) # uncomment for testing only, main application should set a seed.
11
13
 
12
14
 
15
+ def get_endpoint(
16
+ service_type: str,
17
+ protocol: str = None,
18
+ hostname: str = None,
19
+ port: int = 0,
20
+ ):
21
+ """
22
+ Returns the endpoint for a service, either from the registry or by constructing
23
+ it from protocol, hostname and port.
24
+
25
+ If port is 0 (the default), attempt to retrieve the endpoint from the service registry.
26
+
27
+ Args:
28
+ service_type: The service type to look up in the registry.
29
+ protocol: Protocol to use if constructing the endpoint.
30
+ hostname: Hostname to use if constructing the endpoint.
31
+ port: Port to use if constructing the endpoint.
32
+
33
+ Returns:
34
+ The endpoint string.
35
+
36
+ Raises:
37
+ RuntimeError: If no endpoint can be determined.
38
+ """
39
+ endpoint = None
40
+
41
+ if port == 0:
42
+ with RegistryClient() as reg:
43
+ endpoint = reg.get_endpoint(service_type)
44
+ if endpoint:
45
+ logger.info(f"Endpoint for {service_type} found in registry: {endpoint}")
46
+ else:
47
+ logger.warning(f"No endpoint for {service_type} found in registry.")
48
+
49
+ if not endpoint:
50
+ if port == 0:
51
+ raise RuntimeError(f"No service registered as {service_type} and no port provided.")
52
+ endpoint = connect_address(protocol, hostname, port)
53
+ logger.info(f"Endpoint constructed from protocol/hostname/port: {endpoint}")
54
+
55
+ return endpoint
56
+
57
+
13
58
  class ConnectionState(Enum):
14
59
  DISCONNECTED = "disconnected"
15
60
  CONNECTING = "connecting"
@@ -1,6 +1,13 @@
1
1
  """
2
2
  This module provides a dummy implementation for classes of the commanding chain.
3
3
 
4
+ This is only a simplified implementation that is used for testing purposes.
5
+
6
+ If you need a more elaborate example of a device and commanding chain implementation,
7
+ check out the `cgse-dummy` project in PyPI. That project is a full implementation of
8
+ all aspects in device access, commanding, and services. It also handles both
9
+ synchronous and asynchronous implementations.
10
+
4
11
  Start the control server with:
5
12
 
6
13
  py -m egse.dummy start-cs
@@ -37,6 +37,7 @@ from egse.log import PackageFilter
37
37
  from egse.log import egse_logger
38
38
  from egse.log import logger
39
39
  from egse.log import root_logger
40
+ from egse.registry.client import RegistryClient
40
41
  from egse.settings import Settings
41
42
  from egse.system import is_in_ipython
42
43
  from egse.system import type_name
@@ -62,26 +63,25 @@ def get_log_file_name():
62
63
  return settings.get("FILENAME", "general.log")
63
64
 
64
65
 
65
- def get_endpoint_from_registry(port: str = "commander"):
66
+ def get_endpoint_from_registry(service_type: str, port_type: str = "commander"):
66
67
  """Returns the endpoint that was constructed from information from the service registry."""
67
- from egse.registry.client import RegistryClient
68
68
 
69
69
  # logger.debug(f"Calling get_endpoint_from_registry(\"{port}\")")
70
70
 
71
71
  try:
72
72
  with RegistryClient() as reg:
73
- if port == "commander":
74
- endpoint = reg.get_endpoint(SERVICE_TYPE)
75
- elif port == "receiver":
76
- service = reg.discover_service(SERVICE_TYPE)
73
+ if port_type == "commander":
74
+ endpoint = reg.get_endpoint(service_type)
75
+ elif port_type == "receiver":
76
+ service = reg.discover_service(service_type)
77
77
  endpoint = (
78
78
  f"{service.get('protocol', 'tcp')}://{service['host']}:{service['metadata']['receiver_port']}"
79
79
  )
80
80
  else:
81
- logger.error(f"Incorrect argument {port=}, no endpoint returned.")
81
+ logger.error(f"Incorrect argument {port_type=}, no endpoint returned.")
82
82
  endpoint = None
83
83
  except Exception: # noqa
84
- logger.warning(f"Couldn't retrieve endpoint for {SERVICE_TYPE}. Is the log_cs process running?")
84
+ logger.warning(f"Couldn't retrieve endpoint for {service_type}. Is the service registry process running?")
85
85
  endpoint = None
86
86
 
87
87
  return endpoint
@@ -92,7 +92,7 @@ class ZeroMQHandler(logging.Handler):
92
92
  super().__init__()
93
93
 
94
94
  if RECEIVER_PORT == 0:
95
- endpoint = get_endpoint_from_registry(port="receiver")
95
+ endpoint = get_endpoint_from_registry(service_type=SERVICE_TYPE, port_type="receiver")
96
96
  else:
97
97
  endpoint = f"{PROTOCOL}://{HOSTNAME}:{RECEIVER_PORT}"
98
98
 
@@ -11,6 +11,10 @@ from egse.settings import Settings
11
11
 
12
12
  settings = Settings.load("Notify Hub")
13
13
 
14
+ PROCESS_NAME = settings.get("PROCESS_NAME", "nh_cs")
15
+ SERVICE_ID = settings.get("SERVICE_ID", "nh_cs_1")
16
+ SERVICE_TYPE = settings.get("SERVICE_TYPE", "NOTIFY_HUB")
17
+
14
18
  # Default ports that are assigned to PUSH-PULL, PUB-SUB, ROUTER-DEALER protocols of the notification hub.
15
19
  # The actual ports are defined in the Settings.yaml, use local settings to change them.
16
20
  DEFAULT_COLLECTOR_PORT = settings.get("COLLECTOR_PORT", 0)
@@ -18,6 +18,8 @@ from egse.logger import remote_logging
18
18
  from egse.notifyhub import DEFAULT_COLLECTOR_PORT
19
19
  from egse.notifyhub import DEFAULT_PUBLISHER_PORT
20
20
  from egse.notifyhub import DEFAULT_REQUESTS_PORT
21
+ from egse.notifyhub import PROCESS_NAME
22
+ from egse.notifyhub import SERVICE_TYPE
21
23
  from egse.notifyhub import STATS_INTERVAL
22
24
  from egse.notifyhub.client import AsyncNotificationHubClient
23
25
  from egse.registry import MessageType
@@ -30,12 +32,13 @@ from .event import NotificationEvent
30
32
  REQUEST_POLL_TIMEOUT = 1.0
31
33
  """time to wait for while listening for requests [seconds]."""
32
34
 
33
- app = typer.Typer(name="notify_hub")
35
+
36
+ app = typer.Typer(name=PROCESS_NAME)
34
37
 
35
38
 
36
39
  class AsyncNotificationHub:
37
40
  def __init__(self):
38
- self.server_id = "notification-hub-1"
41
+ self.server_id = PROCESS_NAME
39
42
 
40
43
  self.context: zmq.asyncio.Context = zmq.asyncio.Context()
41
44
 
@@ -51,8 +54,8 @@ class AsyncNotificationHub:
51
54
  # Register notification hub to the service registry
52
55
  self.registry_client = AsyncRegistryClient(timeout=REQUEST_TIMEOUT)
53
56
  self.service_id = None
54
- self.service_name = "Notification Hub"
55
- self.service_type = "notification-hub"
57
+ self.service_name = PROCESS_NAME
58
+ self.service_type = SERVICE_TYPE
56
59
  self.is_service_registered: bool = False
57
60
  """True if the service is registered to the service registry."""
58
61
 
@@ -123,7 +126,7 @@ class AsyncNotificationHub:
123
126
 
124
127
  self.service_id = await self.registry_client.register(
125
128
  name=self.service_name,
126
- host=get_host_ip(),
129
+ host=get_host_ip() or "127.0.0.1",
127
130
  port=DEFAULT_REQUESTS_PORT,
128
131
  service_type=self.service_type,
129
132
  metadata={"pub_port": DEFAULT_PUBLISHER_PORT, "collector_port": DEFAULT_COLLECTOR_PORT},
@@ -5,6 +5,7 @@ from pathlib import Path
5
5
  from typing import Union
6
6
 
7
7
  from egse.command import ClientServerCommand
8
+ from egse.connect import get_endpoint
8
9
  from egse.control import is_control_server_active
9
10
  from egse.decorators import dynamic_interface
10
11
  from egse.listener import EventInterface, Event
@@ -20,10 +21,15 @@ from egse.zmq_ser import connect_address
20
21
  HERE = Path(__file__).parent
21
22
  LOGGER = logging.getLogger("egse.procman")
22
23
 
23
- CTRL_SETTINGS = Settings.load("Process Manager Control Server")
24
+ settings = Settings.load("Process Manager Control Server")
24
25
  COMMAND_SETTINGS = Settings.load(location=HERE, filename="procman.yaml")
25
26
  PROXY_TIMEOUT = 10_000
26
27
 
28
+ SERVICE_TYPE = settings.get("SERVICE_TYPE", "pm_cs")
29
+ PROTOCOL = settings.get("PROTOCOL", "tcp")
30
+ HOSTNAME = settings.get("HOSTNAME", "localhost")
31
+ COMMANDING_PORT = settings.get("COMMANDING_PORT", 0) # dynamically assigned by the system if 0
32
+
27
33
 
28
34
  def is_process_manager_active(timeout: float = 0.5) -> bool:
29
35
  """Checks if the Process Manager Control Server is active.
@@ -39,7 +45,7 @@ def is_process_manager_active(timeout: float = 0.5) -> bool:
39
45
  """
40
46
 
41
47
  with RegistryClient() as client:
42
- endpoint = client.get_endpoint(CTRL_SETTINGS.SERVICE_TYPE)
48
+ endpoint = client.get_endpoint(settings.SERVICE_TYPE)
43
49
 
44
50
  if endpoint is None:
45
51
  return False
@@ -394,11 +400,14 @@ class ProcessManagerController(ProcessManagerInterface):
394
400
  class ProcessManagerProxy(Proxy, ProcessManagerInterface):
395
401
  """Proxy for process management, used to connect to the Process Manager Control Server and send commands remotely."""
396
402
 
397
- def __init__(self, protocol: str = None, hostname: str = None, port: int = -1, timeout=PROXY_TIMEOUT):
398
- """Initialisation of a new Proxy for Process Management.
403
+ def __init__(
404
+ self, protocol: str = PROTOCOL, hostname: str = HOSTNAME, port: int = COMMANDING_PORT, timeout=PROXY_TIMEOUT
405
+ ):
406
+ """
407
+ Initialisation of a new Proxy for Process Management.
399
408
 
400
- If no connection details (transport protocol, hostname, and port) are not provided, these are taken from the
401
- settings file.
409
+ The connection details (transport protocol, hostname, and port) are by default taken from the
410
+ settings file. When the `port` is 0 (zero) the endpoint is retrieved from the service registry.
402
411
 
403
412
  Args:
404
413
  protocol (str): Transport protocol
@@ -406,15 +415,6 @@ class ProcessManagerProxy(Proxy, ProcessManagerInterface):
406
415
  port (int): TCP port on which the Control Server is listening for commands
407
416
  """
408
417
 
409
- if hostname is None:
410
- with RegistryClient() as reg:
411
- service = reg.discover_service(CTRL_SETTINGS.SERVICE_TYPE)
412
-
413
- if service:
414
- protocol = service.get("protocol", "tcp")
415
- hostname = service["host"]
416
- port = service["port"]
417
- else:
418
- raise RuntimeError(f"No service registered as {CTRL_SETTINGS.SERVICE_TYPE}")
418
+ endpoint = get_endpoint(settings.SERVICE_TYPE, protocol, hostname, port)
419
419
 
420
- super().__init__(connect_address(protocol, hostname, port), timeout=timeout)
420
+ super().__init__(endpoint, timeout=timeout)
@@ -1,6 +1,9 @@
1
- import logging
2
1
  from enum import Enum
3
2
 
3
+ from egse.log import logging
4
+
5
+ logger = logging.getLogger("egse.registry")
6
+
4
7
  # Default ports that are assigned to REQ-REP and PUB-SUB protocols of the registry services
5
8
  DEFAULT_RS_REQ_PORT = 4242 # Handle requests
6
9
  DEFAULT_RS_PUB_PORT = 4243 # Publish events
@@ -19,9 +22,6 @@ class MessageType(Enum):
19
22
  HEARTBEAT = b"HB" # Heartbeat/health check
20
23
 
21
24
 
22
- logger = logging.getLogger("egse.registry")
23
-
24
-
25
25
  def is_service_registry_active(timeout: float = 0.5):
26
26
  """Check if the service registry is running and active.
27
27
 
@@ -121,6 +121,7 @@ from typing import Union
121
121
  from egse.bits import humanize_bytes
122
122
  from egse.command import ClientServerCommand
123
123
  from egse.config import find_files
124
+ from egse.connect import get_endpoint
124
125
  from egse.control import ControlServer
125
126
  from egse.control import is_control_server_active
126
127
  from egse.decorators import dynamic_interface
@@ -1071,28 +1072,25 @@ class StorageCommand(ClientServerCommand):
1071
1072
 
1072
1073
 
1073
1074
  class StorageProxy(Proxy, StorageInterface, EventInterface):
1074
- """The StorageProxy class is used to connect to the Storage Manager (control server) and
1075
- send commands remotely."""
1075
+ """
1076
+ The StorageProxy class is used to connect to the Storage Manager (control server) and
1077
+ send commands remotely.
1078
+
1079
+ When the port number is 0 (zero), the endpoint will be retrieved from the service registry.
1080
+
1081
+ Args:
1082
+ protocol: the transport protocol [default is taken from settings file]
1083
+ hostname: location of the control server (IP address)
1084
+ [default is taken from settings file]
1085
+ port: TCP port on which the control server is listening for commands
1086
+ [default is taken from settings file]
1087
+
1088
+ """
1076
1089
 
1077
1090
  def __init__(
1078
1091
  self, protocol: str = PROTOCOL, hostname: str = HOSTNAME, port: int = COMMANDING_PORT, timeout=REQUEST_TIMEOUT
1079
1092
  ):
1080
- """
1081
- Args:
1082
- protocol: the transport protocol [default is taken from settings file]
1083
- hostname: location of the control server (IP address)
1084
- [default is taken from settings file]
1085
- port: TCP port on which the control server is listening for commands
1086
- [default is taken from settings file]
1087
- """
1088
- if port == 0:
1089
- with RegistryClient() as reg:
1090
- endpoint = reg.get_endpoint(settings.SERVICE_TYPE)
1091
-
1092
- if not endpoint:
1093
- raise RuntimeError(f"No service registered as {settings.SERVICE_TYPE}")
1094
- else:
1095
- endpoint = connect_address(protocol, hostname, port)
1093
+ endpoint = get_endpoint(settings.SERVICE_TYPE, protocol, hostname, port)
1096
1094
 
1097
1095
  super().__init__(endpoint, timeout=timeout)
1098
1096
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-gui"
3
- version = "0.16.0"
3
+ version = "0.16.1"
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.0"
3
+ version = "0.16.1"
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.0"
3
+ version = "0.16.1"
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.0"
3
+ version = "0.16.1"
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.0"
3
+ version = "0.16.1"
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.0"
3
+ version = "0.16.1"
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.0"
3
+ version = "0.16.1"
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.0"
3
+ version = "0.16.1"
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.0"
3
+ version = "0.16.1"
4
4
  description = "Generic Common-EGSE: Commanding and monitoring lab equipment"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
index 754ffbb..00a5666 100644
Binary file
index 67d28f8..68e7673 100644
Binary file
index 467559c..024b632 100644
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