cgse 0.16.14__tar.gz → 0.17.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. cgse-0.17.0/.env.example +9 -0
  2. cgse-0.17.0/CHANGELOG.md +135 -0
  3. {cgse-0.16.14 → cgse-0.17.0}/PKG-INFO +5 -2
  4. {cgse-0.16.14 → cgse-0.17.0}/README.md +3 -1
  5. {cgse-0.16.14 → cgse-0.17.0}/docs/dev_guide/coding_style.md +15 -10
  6. cgse-0.17.0/docs/dev_guide/dotenv.md +38 -0
  7. {cgse-0.16.14 → cgse-0.17.0}/docs/getting_started.md +2 -1
  8. {cgse-0.16.14 → cgse-0.17.0}/docs/user_guide/cli.md +2 -0
  9. cgse-0.17.0/docs/user_guide/env.md +69 -0
  10. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/pyproject.toml +2 -3
  11. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/cgse_common/cgse.py +5 -1
  12. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/decorators.py +2 -1
  13. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/device.py +8 -2
  14. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/env.py +115 -49
  15. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/heartbeat.py +1 -1
  16. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/log.py +9 -2
  17. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/plugins/metrics/influxdb.py +34 -2
  18. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/scpi.py +15 -7
  19. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/settings.py +4 -5
  20. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/setup.py +12 -6
  21. cgse-0.17.0/libs/cgse-common/src/egse/socketdevice.py +377 -0
  22. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_env.py +42 -5
  23. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_influxdb_plugin.py +2 -2
  24. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_ratelimit.py +1 -1
  25. cgse-0.17.0/libs/cgse-common/tests/test_socketdevice.py +329 -0
  26. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/pyproject.toml +1 -1
  27. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/pyproject.toml +3 -2
  28. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/cgse_core/services.py +2 -2
  29. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/confman/__init__.py +2 -25
  30. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/confman/confman_cs.py +21 -17
  31. cgse-0.16.14/libs/cgse-core/src/egse/connect-todo.py → cgse-0.17.0/libs/cgse-core/src/egse/connect.py +125 -23
  32. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/control.py +0 -3
  33. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/logger/log_cs.py +1 -1
  34. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/monitoring.py +3 -0
  35. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/registry/client.py +5 -0
  36. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/storage/__init__.py +3 -2
  37. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/storage/persistence.py +4 -4
  38. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/storage/storage_cs.py +1 -1
  39. cgse-0.17.0/libs/cgse-core/tests/simple_server.py +135 -0
  40. cgse-0.17.0/libs/cgse-core/tests/test_connect.py +668 -0
  41. cgse-0.17.0/libs/cgse-core/tests/test_proxy.py +15 -0
  42. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/pyproject.toml +1 -1
  43. cgse-0.17.0/make-a-release.md +23 -0
  44. {cgse-0.16.14 → cgse-0.17.0}/mkdocs.yml +5 -0
  45. cgse-0.17.0/projects/ariel/ariel-tcu/README.md +24 -0
  46. cgse-0.17.0/projects/ariel/ariel-tcu/pyproject.toml +64 -0
  47. cgse-0.17.0/projects/ariel/ariel-tcu/src/ariel_tcu/cgse_explore.py +16 -0
  48. cgse-0.17.0/projects/ariel/ariel-tcu/src/ariel_tcu/cgse_services.py +57 -0
  49. cgse-0.17.0/projects/ariel/ariel-tcu/src/ariel_tcu/settings.yaml +20 -0
  50. cgse-0.17.0/projects/ariel/ariel-tcu/src/egse/ariel/tcu/__init__.py +105 -0
  51. cgse-0.17.0/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu.py +1118 -0
  52. cgse-0.17.0/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu.yaml +43 -0
  53. cgse-0.17.0/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_cmd_utils.py +1389 -0
  54. cgse-0.17.0/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_cs.py +246 -0
  55. cgse-0.17.0/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_devif.py +104 -0
  56. cgse-0.17.0/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_protocol.py +147 -0
  57. cgse-0.17.0/projects/ariel/ariel-tcu/tests/test_tcu.py +2047 -0
  58. cgse-0.17.0/projects/ariel/ariel-tcu/tests/test_tcu_cmd_utils.py +8 -0
  59. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/cgse-tools/pyproject.toml +1 -1
  60. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/pyproject.toml +1 -1
  61. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_cs.py +9 -0
  62. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_dev.py +11 -7
  63. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_mon.py +1 -1
  64. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_services.py +0 -1
  65. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/settings.yaml +2 -0
  66. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/lakeshore-tempcontrol/pyproject.toml +1 -1
  67. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/pyproject.toml +1 -1
  68. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_ui.py +3 -2
  69. {cgse-0.16.14 → cgse-0.17.0}/projects/plato/plato-fits/pyproject.toml +1 -1
  70. {cgse-0.16.14 → cgse-0.17.0}/projects/plato/plato-hdf5/pyproject.toml +1 -1
  71. {cgse-0.16.14 → cgse-0.17.0}/projects/plato/plato-hdf5/src/egse/plugins/storage/hdf5.py +1 -1
  72. cgse-0.17.0/projects/plato/plato-spw/README.md +0 -0
  73. {cgse-0.16.14 → cgse-0.17.0}/projects/plato/plato-spw/pyproject.toml +1 -1
  74. {cgse-0.16.14 → cgse-0.17.0}/pyproject.toml +3 -2
  75. {cgse-0.16.14 → cgse-0.17.0}/service_registry.db +0 -0
  76. {cgse-0.16.14 → cgse-0.17.0}/service_registry.db-shm +0 -0
  77. {cgse-0.16.14 → cgse-0.17.0}/service_registry.db-wal +0 -0
  78. cgse-0.16.14/buffer_vat.log +0 -2860
  79. cgse-0.16.14/buffer_vat.png +0 -0
  80. cgse-0.16.14/libs/cgse-common/src/egse/socketdevice.py +0 -205
  81. cgse-0.16.14/libs/cgse-core/.envrc.disabled +0 -9
  82. cgse-0.16.14/libs/cgse-core/src/egse/connect.py +0 -55
  83. cgse-0.16.14/libs/cgse-core/tests/test_connect.py +0 -200
  84. cgse-0.16.14/projects/generic/keithley-tempcontrol/temperature_readings.log +0 -1266
  85. cgse-0.16.14/temperature_readings.log +0 -158
  86. {cgse-0.16.14 → cgse-0.17.0}/.github/workflows/ruff-format-check.yaml +0 -0
  87. {cgse-0.16.14 → cgse-0.17.0}/.gitignore +0 -0
  88. {cgse-0.16.14 → cgse-0.17.0}/bump.py +0 -0
  89. {cgse-0.16.14 → cgse-0.17.0}/conftest.py +0 -0
  90. {cgse-0.16.14 → cgse-0.17.0}/docs/api/bits.md +0 -0
  91. {cgse-0.16.14 → cgse-0.17.0}/docs/api/calibration.md +0 -0
  92. {cgse-0.16.14 → cgse-0.17.0}/docs/api/command.md +0 -0
  93. {cgse-0.16.14 → cgse-0.17.0}/docs/api/config.md +0 -0
  94. {cgse-0.16.14 → cgse-0.17.0}/docs/api/control.md +0 -0
  95. {cgse-0.16.14 → cgse-0.17.0}/docs/api/counter.md +0 -0
  96. {cgse-0.16.14 → cgse-0.17.0}/docs/api/decorators.md +0 -0
  97. {cgse-0.16.14 → cgse-0.17.0}/docs/api/device.md +0 -0
  98. {cgse-0.16.14 → cgse-0.17.0}/docs/api/dicts.md +0 -0
  99. {cgse-0.16.14 → cgse-0.17.0}/docs/api/dummy.md +0 -0
  100. {cgse-0.16.14 → cgse-0.17.0}/docs/api/env.md +0 -0
  101. {cgse-0.16.14 → cgse-0.17.0}/docs/api/exceptions.md +0 -0
  102. {cgse-0.16.14 → cgse-0.17.0}/docs/api/heartbeat.md +0 -0
  103. {cgse-0.16.14 → cgse-0.17.0}/docs/api/hk.md +0 -0
  104. {cgse-0.16.14 → cgse-0.17.0}/docs/api/index.md +0 -0
  105. {cgse-0.16.14 → cgse-0.17.0}/docs/api/listener.md +0 -0
  106. {cgse-0.16.14 → cgse-0.17.0}/docs/api/metrics.md +0 -0
  107. {cgse-0.16.14 → cgse-0.17.0}/docs/api/mixin.md +0 -0
  108. {cgse-0.16.14 → cgse-0.17.0}/docs/api/monitoring.md +0 -0
  109. {cgse-0.16.14 → cgse-0.17.0}/docs/api/observer.md +0 -0
  110. {cgse-0.16.14 → cgse-0.17.0}/docs/api/obsid.md +0 -0
  111. {cgse-0.16.14 → cgse-0.17.0}/docs/api/persistence.md +0 -0
  112. {cgse-0.16.14 → cgse-0.17.0}/docs/api/plugin.md +0 -0
  113. {cgse-0.16.14 → cgse-0.17.0}/docs/api/process.md +0 -0
  114. {cgse-0.16.14 → cgse-0.17.0}/docs/api/reload.md +0 -0
  115. {cgse-0.16.14 → cgse-0.17.0}/docs/api/settings.md +0 -0
  116. {cgse-0.16.14 → cgse-0.17.0}/docs/api/setup.md +0 -0
  117. {cgse-0.16.14 → cgse-0.17.0}/docs/api/system.md +0 -0
  118. {cgse-0.16.14 → cgse-0.17.0}/docs/custom_theme/main.html +0 -0
  119. {cgse-0.16.14 → cgse-0.17.0}/docs/dev_guide/docs.md +0 -0
  120. {cgse-0.16.14 → cgse-0.17.0}/docs/dev_guide/index.md +0 -0
  121. {cgse-0.16.14 → cgse-0.17.0}/docs/dev_guide/installation.md +0 -0
  122. {cgse-0.16.14 → cgse-0.17.0}/docs/dev_guide/monitoring.md +0 -0
  123. {cgse-0.16.14 → cgse-0.17.0}/docs/dev_guide/monorepo.md +0 -0
  124. {cgse-0.16.14 → cgse-0.17.0}/docs/dev_guide/nox.md +0 -0
  125. {cgse-0.16.14 → cgse-0.17.0}/docs/dev_guide/plugins.md +0 -0
  126. {cgse-0.16.14 → cgse-0.17.0}/docs/dev_guide/project-configuration.md +0 -0
  127. {cgse-0.16.14 → cgse-0.17.0}/docs/dev_guide/unit_testing.md +0 -0
  128. {cgse-0.16.14 → cgse-0.17.0}/docs/dev_guide/uv.md +0 -0
  129. {cgse-0.16.14 → cgse-0.17.0}/docs/dev_guide/versioning.md +0 -0
  130. {cgse-0.16.14 → cgse-0.17.0}/docs/help.md +0 -0
  131. {cgse-0.16.14 → cgse-0.17.0}/docs/images/cli-cgse.png +0 -0
  132. {cgse-0.16.14 → cgse-0.17.0}/docs/images/github-fork-clone-dark.png +0 -0
  133. {cgse-0.16.14 → cgse-0.17.0}/docs/images/github-fork-clone.png +0 -0
  134. {cgse-0.16.14 → cgse-0.17.0}/docs/images/grafana-queries.png +0 -0
  135. {cgse-0.16.14 → cgse-0.17.0}/docs/images/icons/cgse-logo-blue.svg +0 -0
  136. {cgse-0.16.14 → cgse-0.17.0}/docs/images/icons/cgse-logo.svg +0 -0
  137. {cgse-0.16.14 → cgse-0.17.0}/docs/index.md +0 -0
  138. {cgse-0.16.14 → cgse-0.17.0}/docs/initialize.md +0 -0
  139. {cgse-0.16.14 → cgse-0.17.0}/docs/libs/cgse-common/images/load_methods.png +0 -0
  140. {cgse-0.16.14 → cgse-0.17.0}/docs/libs/cgse-common/index.md +0 -0
  141. {cgse-0.16.14 → cgse-0.17.0}/docs/libs/cgse-common/settings.md +0 -0
  142. {cgse-0.16.14 → cgse-0.17.0}/docs/libs/cgse-common/setup.md +0 -0
  143. {cgse-0.16.14 → cgse-0.17.0}/docs/libs/cgse-coordinates/index.md +0 -0
  144. {cgse-0.16.14 → cgse-0.17.0}/docs/libs/cgse-core/index.md +0 -0
  145. {cgse-0.16.14 → cgse-0.17.0}/docs/libs/cgse-core/notifyhub.md +0 -0
  146. {cgse-0.16.14 → cgse-0.17.0}/docs/libs/cgse-core/registry.md +0 -0
  147. {cgse-0.16.14 → cgse-0.17.0}/docs/libs/cgse-gui/index.md +0 -0
  148. {cgse-0.16.14 → cgse-0.17.0}/docs/libs/index.md +0 -0
  149. {cgse-0.16.14 → cgse-0.17.0}/docs/package_list.md +0 -0
  150. {cgse-0.16.14 → cgse-0.17.0}/docs/projects/cgse-tools.md +0 -0
  151. {cgse-0.16.14 → cgse-0.17.0}/docs/projects/index.md +0 -0
  152. {cgse-0.16.14 → cgse-0.17.0}/docs/projects/symetrie-hexapod.md +0 -0
  153. {cgse-0.16.14 → cgse-0.17.0}/docs/roadmap.md +0 -0
  154. {cgse-0.16.14 → cgse-0.17.0}/docs/stylesheets/custom.css +0 -0
  155. {cgse-0.16.14 → cgse-0.17.0}/docs/stylesheets/extra.css +0 -0
  156. {cgse-0.16.14 → cgse-0.17.0}/docs/tutorial.md +0 -0
  157. {cgse-0.16.14 → cgse-0.17.0}/docs/user_guide/index.md +0 -0
  158. {cgse-0.16.14 → cgse-0.17.0}/duckdb_metrics.db +0 -0
  159. {cgse-0.16.14 → cgse-0.17.0}/duckdb_metrics.db.wal +0 -0
  160. {cgse-0.16.14 → cgse-0.17.0}/identifier.sqlite +0 -0
  161. {cgse-0.16.14 → cgse-0.17.0}/justfile +0 -0
  162. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/README.md +0 -0
  163. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/justfile +0 -0
  164. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/noxfile.py +0 -0
  165. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/service_registry.db +0 -0
  166. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/cgse_common/__init__.py +0 -0
  167. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/cgse_common/settings.yaml +0 -0
  168. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/bits.py +0 -0
  169. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/calibration.py +0 -0
  170. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/config.py +0 -0
  171. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/counter.py +0 -0
  172. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/dicts.py +0 -0
  173. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/exceptions.py +0 -0
  174. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/hk.py +0 -0
  175. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/metrics.py +0 -0
  176. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/observer.py +0 -0
  177. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/obsid.py +0 -0
  178. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/persistence.py +0 -0
  179. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/plugin.py +0 -0
  180. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/plugins/metrics/duckdb.py +0 -0
  181. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/plugins/metrics/timescaledb.py +0 -0
  182. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/process.py +0 -0
  183. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/py.typed +0 -0
  184. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/randomwalk.py +0 -0
  185. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/ratelimit.py +0 -0
  186. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/reload.py +0 -0
  187. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/resource.py +0 -0
  188. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/response.py +0 -0
  189. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/settings.yaml +0 -0
  190. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/signal.py +0 -0
  191. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/state.py +0 -0
  192. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/system.py +0 -0
  193. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/task.py +0 -0
  194. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/version.py +0 -0
  195. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/src/egse/zmq_ser.py +0 -0
  196. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/conftest.py +0 -0
  197. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/COPYING +0 -0
  198. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00028_201028_155259.yaml +0 -0
  199. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00029_201028_155331.yaml +0 -0
  200. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00030_210311_134043.yaml +0 -0
  201. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00080_210917_105245.yaml +0 -0
  202. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00081_210922_142259.yaml +0 -0
  203. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00082_210923_094458.yaml +0 -0
  204. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/CSL1/README.md +0 -0
  205. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/CSL2/README.md +0 -0
  206. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/IAS/README.md +0 -0
  207. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/INTA/README.md +0 -0
  208. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/LAB23/README.md +0 -0
  209. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00027_211119_140441.yaml +0 -0
  210. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00028_211119_160406.yaml +0 -0
  211. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00029_211119_172918.yaml +0 -0
  212. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00030_211122_103604.yaml +0 -0
  213. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00031_211123_124900.yaml +0 -0
  214. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/common/telemetry/tm-dictionary-default.csv +0 -0
  215. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/conf/SETUP_20250114_1519.yaml +0 -0
  216. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/conf/config-file.toml +0 -0
  217. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/data/cal_coeff_1234.csv +0 -0
  218. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/data/calibration.csv +0 -0
  219. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/data/calibration.yaml +0 -0
  220. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/data/command.yaml +0 -0
  221. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/data/corrupt.yaml +0 -0
  222. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/data/data-file.txt +0 -0
  223. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/data/empty_data_file.txt +0 -0
  224. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/data/empty_yaml_file.yaml +0 -0
  225. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/data/local_settings.yaml +0 -0
  226. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/data/new_local_settings.yaml +0 -0
  227. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/data/test_setup.yaml +0 -0
  228. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/icons/hourglass.svg +0 -0
  229. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/icons/keyboard.png +0 -0
  230. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/icons/soap_sponge.svg +0 -0
  231. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/lib/dev1/shared-lib.so +0 -0
  232. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/data/lib/dev2/shared-lib.so +0 -0
  233. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/fixtures/default_env.py +0 -0
  234. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/fixtures/helpers.py +0 -0
  235. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/scripts/empty_process.py +0 -0
  236. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/scripts/handle_sigterm.py +0 -0
  237. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/scripts/process_with_children.py +0 -0
  238. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/scripts/raise_value_error.py +0 -0
  239. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/scripts/void-0.py +0 -0
  240. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/scripts/void-1.py +0 -0
  241. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_bits.py +0 -0
  242. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_config.py +0 -0
  243. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_decorators.py +0 -0
  244. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_device.py +0 -0
  245. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_fixtures.py +0 -0
  246. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_hk.py +0 -0
  247. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_log.py +0 -0
  248. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_metrics.py +0 -0
  249. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_plugin.py +0 -0
  250. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_process.py +0 -0
  251. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_resource.py +0 -0
  252. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_response.py +0 -0
  253. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_settings.py +0 -0
  254. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_setup.py +0 -0
  255. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_signal.py +0 -0
  256. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_state.py +0 -0
  257. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_system.py +0 -0
  258. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_task.py +0 -0
  259. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-common/tests/test_zmq_ser.py +0 -0
  260. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/README.md +0 -0
  261. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/src/cgse_coordinates/__init__.py +0 -0
  262. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/src/cgse_coordinates/settings.yaml +0 -0
  263. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/src/egse/coordinates/__init__.py +0 -0
  264. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/src/egse/coordinates/avoidance.py +0 -0
  265. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/src/egse/coordinates/cslmodel.py +0 -0
  266. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/src/egse/coordinates/laser_tracker_to_dict.py +0 -0
  267. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/src/egse/coordinates/point.py +0 -0
  268. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/src/egse/coordinates/pyplot.py +0 -0
  269. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/src/egse/coordinates/referenceFrame.py +0 -0
  270. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/src/egse/coordinates/refmodel.py +0 -0
  271. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/src/egse/coordinates/rotationMatrix.py +0 -0
  272. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/src/egse/coordinates/transform3d_addon.py +0 -0
  273. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/tests/test_avoidance.py +0 -0
  274. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/tests/test_coordinates_plot.py +0 -0
  275. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/tests/test_coordinates_serialize.py +0 -0
  276. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/tests/test_point.py +0 -0
  277. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/tests/test_ref_model.py +0 -0
  278. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/tests/test_reference_frames.py +0 -0
  279. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-coordinates/tests/test_refmodel.py +0 -0
  280. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/README.md +0 -0
  281. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/service_registry.db +0 -0
  282. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/cgse_core/__init__.py +0 -0
  283. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/cgse_core/_start.py +0 -0
  284. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/cgse_core/_status.py +0 -0
  285. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/cgse_core/_stop.py +0 -0
  286. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/cgse_core/cgse_explore.py +0 -0
  287. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/cgse_core/settings.yaml +0 -0
  288. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/_setup_core.py +0 -0
  289. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/async_control.py +0 -0
  290. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/async_control_claude.py +0 -0
  291. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/command.py +0 -0
  292. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/confman/__main__.py +0 -0
  293. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/confman/confman.yaml +0 -0
  294. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/confman/confman_acs.py +0 -0
  295. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/dummy.py +0 -0
  296. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/icons/busy.svg +0 -0
  297. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/icons/operational-mode.svg +0 -0
  298. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/icons/pm_ui.svg +0 -0
  299. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/icons/simulator-mode.svg +0 -0
  300. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/icons/start-process-button.svg +0 -0
  301. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/icons/stop-process-button.svg +0 -0
  302. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/icons/user-interface.svg +0 -0
  303. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/listener.py +0 -0
  304. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/logger/__init__.py +0 -0
  305. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/logger/__main__.py +0 -0
  306. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/metricshub/__init__.py +0 -0
  307. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/metricshub/server.py +0 -0
  308. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/mixin.py +0 -0
  309. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/notifyhub/__init__.py +0 -0
  310. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/notifyhub/client.py +0 -0
  311. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/notifyhub/event.py +0 -0
  312. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/notifyhub/server.py +0 -0
  313. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/notifyhub/services.py +0 -0
  314. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/notifyhub/test.py +0 -0
  315. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/procman/__init__.py +0 -0
  316. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/procman/procman.yaml +0 -0
  317. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/procman/procman_cs.py +0 -0
  318. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/procman/procman_protocol.py +0 -0
  319. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/procman/procman_ui.py +0 -0
  320. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/protocol.py +0 -0
  321. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/proxy.py +0 -0
  322. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/registry/__init__.py +0 -0
  323. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/registry/backend.py +0 -0
  324. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/registry/server.py +0 -0
  325. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/registry/service.py +0 -0
  326. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/services.py +0 -0
  327. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/services.yaml +0 -0
  328. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/storage/__main__.py +0 -0
  329. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/src/egse/storage/storage.yaml +0 -0
  330. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/conftest.py +0 -0
  331. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/data/local_settings.yaml +0 -0
  332. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/fixtures/default_env.py +0 -0
  333. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/fixtures/helpers.py +0 -0
  334. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/fixtures/services.py +0 -0
  335. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/marimo/intro.py +0 -0
  336. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/script_subscribe_to_notifyhub.py +0 -0
  337. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/script_test_async_registry_client.py +0 -0
  338. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/script_test_registry_client_server.py +0 -0
  339. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/script_test_service_registry_server.py +0 -0
  340. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/script_test_sync_registry_client.py +0 -0
  341. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/services.py +0 -0
  342. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/stress_test_registry_server.py +0 -0
  343. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_async_control.py +0 -0
  344. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_client_server_interaction.py +0 -0
  345. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_cm_cs.py +0 -0
  346. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_command.py +0 -0
  347. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_confman_setups.py +0 -0
  348. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_control.py +0 -0
  349. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_dummy.py +0 -0
  350. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_event_notification.py +0 -0
  351. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_extensions.py +0 -0
  352. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_listener.py +0 -0
  353. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_logger.py +0 -0
  354. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_mixin.py +0 -0
  355. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_notify_hub.py +0 -0
  356. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_protocol.py +0 -0
  357. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_registry_backend.py +0 -0
  358. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_registry_service.py +0 -0
  359. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_server_running.py +0 -0
  360. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_server_running_with_fixture.py +0 -0
  361. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_settings_core.py +0 -0
  362. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-core/tests/test_zmq_microservice.py +0 -0
  363. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/README.md +0 -0
  364. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/__init__.py +0 -0
  365. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/buttons.py +0 -0
  366. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-start.svg +0 -0
  367. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-stop.svg +0 -0
  368. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/aeu-cs.svg +0 -0
  369. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-started.svg +0 -0
  370. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-stopped.svg +0 -0
  371. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/aeu_cs.svg +0 -0
  372. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/alert.svg +0 -0
  373. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/arrow-double-left.png +0 -0
  374. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/arrow-double-right.png +0 -0
  375. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/arrow-up.svg +0 -0
  376. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/backward.svg +0 -0
  377. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/busy.svg +0 -0
  378. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/cleaning.svg +0 -0
  379. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/color-scheme.svg +0 -0
  380. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/cs-connected-alert.svg +0 -0
  381. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/cs-connected-disabled.svg +0 -0
  382. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/cs-connected.svg +0 -0
  383. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/cs-not-connected.svg +0 -0
  384. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/double-left-arrow.svg +0 -0
  385. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/double-right-arrow.svg +0 -0
  386. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/erase-disabled.svg +0 -0
  387. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/erase.svg +0 -0
  388. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/fitsgen-start.svg +0 -0
  389. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/fitsgen-stop.svg +0 -0
  390. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/fitsgen.svg +0 -0
  391. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/forward.svg +0 -0
  392. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/fov-hk-start.svg +0 -0
  393. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/fov-hk-stop.svg +0 -0
  394. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/fov-hk.svg +0 -0
  395. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/front-desk.svg +0 -0
  396. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/home-actioned.svg +0 -0
  397. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/home-disabled.svg +0 -0
  398. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/home.svg +0 -0
  399. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/info.svg +0 -0
  400. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/invalid.png +0 -0
  401. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/led-green.svg +0 -0
  402. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/led-grey.svg +0 -0
  403. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/led-orange.svg +0 -0
  404. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/led-red.svg +0 -0
  405. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/led-square-green.svg +0 -0
  406. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/led-square-grey.svg +0 -0
  407. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/led-square-orange.svg +0 -0
  408. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/led-square-red.svg +0 -0
  409. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-green.svg +0 -0
  410. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-red.svg +0 -0
  411. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el+.svg +0 -0
  412. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el-.svg +0 -0
  413. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/location-marker.svg +0 -0
  414. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/logo-dpu.svg +0 -0
  415. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/logo-gimbal.svg +0 -0
  416. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/logo-huber.svg +0 -0
  417. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/logo-ogse.svg +0 -0
  418. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/logo-puna.svg +0 -0
  419. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/logo-tcs.svg +0 -0
  420. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/logo-zonda.svg +0 -0
  421. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/maximize.svg +0 -0
  422. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/meter.svg +0 -0
  423. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/more.svg +0 -0
  424. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-start.svg +0 -0
  425. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-stop.svg +0 -0
  426. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk.svg +0 -0
  427. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/observing-off.svg +0 -0
  428. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/observing-on.svg +0 -0
  429. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.png +0 -0
  430. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.svg +0 -0
  431. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/ops-mode.svg +0 -0
  432. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/play-green.svg +0 -0
  433. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/plugged-disabled.svg +0 -0
  434. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/plugged.svg +0 -0
  435. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/pm_ui.svg +0 -0
  436. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/power-button-green.svg +0 -0
  437. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/power-button-red.svg +0 -0
  438. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/power-button.svg +0 -0
  439. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/radar.svg +0 -0
  440. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/radioactive.svg +0 -0
  441. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/reload.svg +0 -0
  442. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/remote-control-off.svg +0 -0
  443. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/remote-control-on.svg +0 -0
  444. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/repeat-blue.svg +0 -0
  445. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/repeat.svg +0 -0
  446. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/settings.svg +0 -0
  447. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/shrink.svg +0 -0
  448. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/shutter.svg +0 -0
  449. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/sign-off.svg +0 -0
  450. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/sign-on.svg +0 -0
  451. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/sim-mode.svg +0 -0
  452. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/small-buttons-go.svg +0 -0
  453. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/small-buttons-minus.svg +0 -0
  454. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/small-buttons-plus.svg +0 -0
  455. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/sponge.svg +0 -0
  456. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/start-button-disabled.svg +0 -0
  457. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/start-button.svg +0 -0
  458. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/stop-button-disabled.svg +0 -0
  459. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/stop-button.svg +0 -0
  460. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/stop-red.svg +0 -0
  461. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/stop.svg +0 -0
  462. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/switch-disabled-square.svg +0 -0
  463. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/switch-disabled.svg +0 -0
  464. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/switch-off-square.svg +0 -0
  465. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/switch-off.svg +0 -0
  466. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/switch-on-square.svg +0 -0
  467. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/switch-on.svg +0 -0
  468. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/temperature-control.svg +0 -0
  469. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/th_ui_logo.svg +0 -0
  470. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/unplugged.svg +0 -0
  471. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/unvalid.png +0 -0
  472. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/user-interface.svg +0 -0
  473. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/vacuum.svg +0 -0
  474. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/valid.png +0 -0
  475. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-dark.svg +0 -0
  476. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-white.svg +0 -0
  477. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/led.py +0 -0
  478. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/limitswitch.py +0 -0
  479. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/states.py +0 -0
  480. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/styles/dark.qss +0 -0
  481. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/styles/default.qss +0 -0
  482. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/styles.qss +0 -0
  483. {cgse-0.16.14 → cgse-0.17.0}/libs/cgse-gui/src/egse/gui/switch.py +0 -0
  484. {cgse-0.16.14 → cgse-0.17.0}/noxfile.py +0 -0
  485. {cgse-0.16.14 → cgse-0.17.0}/overrides/.icons/custom/dbend-dark.svg +0 -0
  486. {cgse-0.16.14 → cgse-0.17.0}/overrides/.icons/custom/dbend-light.svg +0 -0
  487. {cgse-0.16.14 → cgse-0.17.0}/overrides/.icons/custom/gear.svg +0 -0
  488. {cgse-0.16.14/projects/generic/cgse-tools/src/cgse_tools → cgse-0.17.0/projects/ariel/ariel-tcu/src/ariel_tcu}/__init__.py +0 -0
  489. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/cgse-tools/README.md +0 -0
  490. {cgse-0.16.14/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol → cgse-0.17.0/projects/generic/cgse-tools/src/cgse_tools}/__init__.py +0 -0
  491. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/cgse-tools/src/cgse_tools/cgse_clock.py +0 -0
  492. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/cgse-tools/src/cgse_tools/cgse_commands.py +0 -0
  493. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/cgse-tools/src/cgse_tools/cgse_services.py +0 -0
  494. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/cgse-tools/src/egse/tools/status.py +0 -0
  495. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/README.md +0 -0
  496. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/justfile +0 -0
  497. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/noxfile.py +0 -0
  498. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/service_registry.db +0 -0
  499. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/__init__.py +0 -0
  500. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.py +0 -0
  501. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.yaml +0 -0
  502. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_acs.py +0 -0
  503. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_adev.py +0 -0
  504. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_protocol.py +0 -0
  505. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_sim.py +0 -0
  506. {cgse-0.16.14/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol → cgse-0.17.0/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol}/__init__.py +0 -0
  507. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_explore.py +0 -0
  508. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/tests/script_daq6510_central_heating.py +0 -0
  509. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/tests/script_daq6510_mon.py +0 -0
  510. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/tests/script_plot_readings.py +0 -0
  511. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/tests/test_adev.py +0 -0
  512. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/keithley-tempcontrol/tests/test_dev.py +0 -0
  513. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/lakeshore-tempcontrol/README.md +0 -0
  514. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.py +0 -0
  515. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.yaml +0 -0
  516. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_cs.py +0 -0
  517. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_devif.py +0 -0
  518. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_protocol.py +0 -0
  519. {cgse-0.16.14/projects/generic/symetrie-hexapod/src/symetrie_hexapod → cgse-0.17.0/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol}/__init__.py +0 -0
  520. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_explore.py +0 -0
  521. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_services.py +0 -0
  522. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/settings.yaml +0 -0
  523. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/lakeshore-tempcontrol/tests/test_lakeshore336_simulator.py +0 -0
  524. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/README.md +0 -0
  525. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/__init__.py +0 -0
  526. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/__init__.py +0 -0
  527. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/alpha.py +0 -0
  528. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/dynalpha.py +0 -0
  529. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod.py +0 -0
  530. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod_ui.py +0 -0
  531. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.py +0 -0
  532. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.yaml +0 -0
  533. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_cs.py +0 -0
  534. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_protocol.py +0 -0
  535. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_ui.py +0 -0
  536. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac.py +0 -0
  537. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac_regex.py +0 -0
  538. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.py +0 -0
  539. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.yaml +0 -0
  540. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_cs.py +0 -0
  541. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_protocol.py +0 -0
  542. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_sim.py +0 -0
  543. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/punaplus.py +0 -0
  544. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.py +0 -0
  545. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.yaml +0 -0
  546. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_cs.py +0 -0
  547. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_devif.py +0 -0
  548. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_protocol.py +0 -0
  549. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_ui.py +0 -0
  550. /cgse-0.16.14/projects/plato/plato-hdf5/README.md → /cgse-0.17.0/projects/generic/symetrie-hexapod/src/symetrie_hexapod/__init__.py +0 -0
  551. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_explore.py +0 -0
  552. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_services.py +0 -0
  553. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/settings.yaml +0 -0
  554. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/tests/test_puna.py +0 -0
  555. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/tests/test_puna_cs.py +0 -0
  556. {cgse-0.16.14 → cgse-0.17.0}/projects/generic/symetrie-hexapod/tests/test_puna_simulator.py +0 -0
  557. {cgse-0.16.14 → cgse-0.17.0}/projects/plato/plato-fits/README.md +0 -0
  558. {cgse-0.16.14 → cgse-0.17.0}/projects/plato/plato-fits/src/egse/plugins/storage/fits.py +0 -0
  559. {cgse-0.16.14/projects/plato/plato-spw → cgse-0.17.0/projects/plato/plato-hdf5}/README.md +0 -0
  560. {cgse-0.16.14 → cgse-0.17.0}/projects/plato/plato-spw/src/egse/spw.py +0 -0
  561. {cgse-0.16.14 → cgse-0.17.0}/ruff.toml +0 -0
  562. {cgse-0.16.14 → cgse-0.17.0}/scratch/advanced-process-monitoring.py +0 -0
  563. {cgse-0.16.14 → cgse-0.17.0}/scratch/live-process-monitoring.py +0 -0
  564. {cgse-0.16.14 → cgse-0.17.0}/scratch/match-case.py +0 -0
  565. {cgse-0.16.14 → cgse-0.17.0}/scratch/processes.json +0 -0
  566. {cgse-0.16.14 → cgse-0.17.0}/scratch/simple-process-monitoring.py +0 -0
  567. {cgse-0.16.14 → cgse-0.17.0}/test_service_registry.db +0 -0
@@ -0,0 +1,9 @@
1
+ PROJECT='ARIEL'
2
+ SITE_ID='VACUUM_LAB'
3
+
4
+ # The variable below all start with the project name.
5
+
6
+ ARIEL_DATA_STORAGE_LOCATION=~/data/ARIEL/VACUUM_LAB
7
+ ARIEL_CONF_DATA_LOCATION=~/data/ARIEL/VACUUM_LAB/conf
8
+ ARIEL_LOCAL_SETTINGS=~/data/ARIEL/VACUUM_LAB/local_settings.yaml
9
+ ARIEL_LOG_FILE_LOCATION=~/data/ARIEL/VACUUM_LAB/log
@@ -0,0 +1,135 @@
1
+
2
+ # Changelog
3
+
4
+ All notable changes to this project will be documented in this file.
5
+
6
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+
9
+ ## [Unreleased](https://github.com/IvS-KULeuven/cgse/compare/v0.17.0...HEAD)
10
+
11
+ ### Added
12
+ - ...
13
+
14
+ ## [v0.17.0](https://github.com/IvS-KULeuven/cgse/compare/v0.16.14...v0.17.0)
15
+
16
+ ### Added
17
+ - Added this CHANGELOG file.
18
+ - Added an initial implementation of the ARIEL Telescope Control Unit (TCU). This is a separate package in this monorepo that is located at `projects/ariel/ariel-tcu`. The package will be added to PyPI as `ariel-tcu`.
19
+ - Added a `read_string()` method to the `DeviceTransport` and `AsyncDeviceTransport` classes.
20
+ ### Fixed
21
+ - Fixed the `sm_cs` for the missing `--full` cli argument.
22
+ - Fixed the configuration of the InfluxDB client. The client can now be fully configured with environment variables if needed.
23
+ ### Changed
24
+ - Improved initialization of the process environment with `setup_env()`.
25
+ - The configuration manager now also re-registers the obsid table to the storage.
26
+ - The `cgse` subcommand to start the notification hub is changed from `not` to `nh`. Use `cgse nh [start|stop|status]`.
27
+ - The environment variables that contain a path can start with a tilde '`~`' which will be expanded to the user's home directory when used.
28
+ ### Docs
29
+ - Documentation updates for the Python version, the CLI `cgse` subcommands, environment and the introduction of `dotenv`, ...
30
+ - Updated information on the use of `dotenv` in the developer guid.
31
+ - Added information on the environment variables to the user guide.
32
+
33
+ ## [0.16.14](https://github.com/IvS-KULeuven/cgse/compare/v0.16.13...v0.16.14) – 24/10/2025
34
+
35
+ ### Added
36
+ - Added `cmd_string_func` parameter to the `@dynamic_command` interface. Use this parameter if you need to create a fancy command string from the arguments passed into the command function.
37
+
38
+ ## [0.16.13](https://github.com/IvS-KULeuven/cgse/compare/v0.16.12...v0.16.13) – 23/10/2025
39
+
40
+ ### Changed
41
+ - Improved unit tests for the `mixin.py` module.
42
+
43
+ ## [0.16.12](https://github.com/IvS-KULeuven/cgse/compare/v0.16.11...v0.16.12) – 21/10/2025
44
+
45
+ ### Fixed
46
+ - Fixed a bug in starting the puna proxy.
47
+
48
+ ## [0.16.11](https://github.com/IvS-KULeuven/cgse/compare/v0.16.10...v0.16.11) – 21/10/2025
49
+
50
+ ### Fixed
51
+ - Fixed starting the hexapod GUI by specifying a device identifier.
52
+ - Fixed registration and connection of the notification hub.
53
+ ### Added
54
+ - Added a dependency for the `dotenv` module.
55
+ ### Changed
56
+ - The PUNA GUI script now starts as a Typer app.
57
+ - The `get_port_number()` in `zmq_ser.py` now returns 0 (zero) on error.
58
+ - Improved logging for the Symétrie hexapods.
59
+ - Introduced the `VERBOSE_DEBUG` environment variable that can be used to restrict debug logging messages only when
60
+ this environment variable is set. Use this for very verbose debug logging.
61
+
62
+ ## [0.16.10](https://github.com/IvS-KULeuven/cgse/compare/v0.16.9...v0.16.10) – 03/10/2025
63
+
64
+ ### Changed
65
+ - Renamed Settings for external logger from `TEXTUALOG_*` to `EXTERN_LOG_*`.
66
+ - The heartbeat ZeroMQ protocol now uses ROUTER-DEALER instead of REQ-REP. This was needed because too often we got an invalid state for the REQ sockets after one of the services went down.
67
+
68
+ ## [0.16.9](https://github.com/IvS-KULeuven/cgse/compare/v0.16.8...v0.16.9) – 02/10/2025
69
+
70
+ ### Removed
71
+ - Removed caching from the async registry client.
72
+
73
+ ## [0.16.8](https://github.com/IvS-KULeuven/cgse/compare/v0.16.7...v0.16.8) – 02/10/2025
74
+
75
+ ### Fixed
76
+ - Fixed re-registration for the async registry client.
77
+
78
+ ## [0.16.7](https://github.com/IvS-KULeuven/cgse/compare/v0.16.6...v0.16.7) – 01/10/2025
79
+
80
+ ### Fixed
81
+ - Fixed re-registration problem in the service registry.
82
+ ### Changed
83
+ - Read the Settings in the `__init__.py` files where possible. Do not spread Settings in all modules of a package.
84
+
85
+ ## [0.16.6](https://github.com/IvS-KULeuven/cgse/compare/v0.16.5...v0.16.6) – 30/09/2025
86
+
87
+ ### Fixed
88
+ - Fixed timeouts for Proxy (sub)classes to seconds instead of milliseconds. We strive to have all timeout in seconds and only convert to milliseconds when needed for a library call.
89
+
90
+ ## [0.16.5](https://github.com/IvS-KULeuven/cgse/compare/v0.16.4...v0.16.5) – 29/09/2025
91
+
92
+ ### Changed
93
+ - The service type for the notification hub is now `NH_CS` instead of `NOTIFY_HUB`.
94
+ - Remove the leading dot '`.`' from all startup log filenames. Startup log files are log files per `cgse` subcommand that are located in the `LOG_FILE_LOCATION`. You will find a log file there for the `start` and the `stop` for each core service or device control server.
95
+
96
+ ## [0.16.4](https://github.com/IvS-KULeuven/cgse/compare/v0.16.3...v0.16.4) – 29/09/2025
97
+
98
+ ### Added
99
+ - Added the `bool_env()` function in `env.py`.
100
+ ### Changed
101
+ - The listeners functionality has been transferred to the notification hub and services subscribe to this notification service.
102
+ - Log messages to the `general.log` file now contain the logger name.
103
+ ### Removed
104
+ - Remove the listener notification from the configuration manager.
105
+ - Remove listener registration from the storage manager and the process manager.
106
+
107
+ ## [0.16.3](https://github.com/IvS-KULeuven/cgse/compare/v0.16.2...v0.16.3) – 19/09/2025
108
+
109
+ ### Fixed
110
+ - Fixed a circular import problem in `system.py`.
111
+
112
+ ## [0.16.2](https://github.com/IvS-KULeuven/cgse/compare/v0.16.1...v0.16.2) – 19/09/2025
113
+
114
+ ### Changed
115
+ - The output of startup scripts is now redirected to the log location.
116
+
117
+ ## [0.16.1](https://github.com/IvS-KULeuven/cgse/compare/v0.16.0...v0.16.1) – 19/09/2025
118
+
119
+ ### Changed
120
+ - Use the `get_endpoint()` function in Proxy subclasses.
121
+ - Define constants from settings with proper defaults.
122
+ - Cleanup port numbers for core services in Settings. All core services now have a fixed port number, which can be
123
+ overwritten in the local settings file.
124
+ - When `port == 0` use the service registry to get the endpoint.
125
+
126
+ ## [0.16.0](https://github.com/IvS-KULeuven/cgse/compare/v0.15.1...v0.16.0) – 17/09/2025
127
+
128
+ ### Added
129
+ - Added a `deregister` subcommand to the service registry. Usage: `cgse reg deregister <SERVICE_TYPE>`.
130
+ ### Fixed
131
+ - Fixed proper sorting of cgse subcommands.
132
+ - Fixed port numbers for core services.
133
+ ### Changed
134
+ - Proxies now handle fixed port numbers properly.
135
+ - Renamed `cgse` subcommands `registry` → `reg`, `notify` → `not`.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cgse
3
- Version: 0.16.14
3
+ Version: 0.17.0
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>
@@ -10,6 +10,7 @@ Requires-Dist: cgse-common
10
10
  Requires-Dist: cgse-core
11
11
  Requires-Dist: cgse-tools
12
12
  Requires-Dist: marimo>=0.17.0
13
+ Requires-Dist: pandas-stubs==2.3.2.250926
13
14
  Requires-Dist: rich>=13.9.4
14
15
  Requires-Dist: tomlkit>=0.13.2
15
16
  Description-Content-Type: text/markdown
@@ -36,12 +37,14 @@ We have the following generic packages:
36
37
  - `cgse-tools`: Tools for the `cgse` command.
37
38
  - `symetrie-hexapod`: The Symétrie Hexapod drivers. We put this in the generic folder because it is a generic device driver that can be used by different projects.
38
39
  - `keithley-tempcontrol`: The DAQ6510 data acquisition and logging multimeter from Keithley.
40
+ - `lakeshore-tempcontrol`: The LakeShore Model 336 Temperature Controller.
39
41
 
40
42
  We have the following project specific packages:
41
43
 
42
44
  - `plato-spw`: The PLATO SpaceWire drivers.
43
45
  - `plato-fits`: The PLATO FITS plugins.
44
46
  - `plato-hdf5`: The PLATO HDF5 plugins.
47
+ - `ariel-tcu`: The Telescope Control Unit for the ARIEL spacecraft
45
48
 
46
49
  # Installation
47
50
 
@@ -56,6 +59,6 @@ $ pip install cgse
56
59
  Always install in a virtual environment or use `uv`:
57
60
 
58
61
  ```shell
59
- $ uv venv
62
+ $ uv venv --python 3.12
60
63
  $ uv pip install cgse
61
64
  ```
@@ -20,12 +20,14 @@ We have the following generic packages:
20
20
  - `cgse-tools`: Tools for the `cgse` command.
21
21
  - `symetrie-hexapod`: The Symétrie Hexapod drivers. We put this in the generic folder because it is a generic device driver that can be used by different projects.
22
22
  - `keithley-tempcontrol`: The DAQ6510 data acquisition and logging multimeter from Keithley.
23
+ - `lakeshore-tempcontrol`: The LakeShore Model 336 Temperature Controller.
23
24
 
24
25
  We have the following project specific packages:
25
26
 
26
27
  - `plato-spw`: The PLATO SpaceWire drivers.
27
28
  - `plato-fits`: The PLATO FITS plugins.
28
29
  - `plato-hdf5`: The PLATO HDF5 plugins.
30
+ - `ariel-tcu`: The Telescope Control Unit for the ARIEL spacecraft
29
31
 
30
32
  # Installation
31
33
 
@@ -40,6 +42,6 @@ $ pip install cgse
40
42
  Always install in a virtual environment or use `uv`:
41
43
 
42
44
  ```shell
43
- $ uv venv
45
+ $ uv venv --python 3.12
44
46
  $ uv pip install cgse
45
47
  ```
@@ -8,13 +8,14 @@ The following sections will give the most used conventions with a few examples o
8
8
 
9
9
  ## TL;DR
10
10
 
11
- | Type | Style | Example |
12
- |------|-------|---------|
13
- | Classes | CapWords | ProcessManager, ImageViewer, CommandList, Observation, MetaData |
14
- | Methods & Functions | lowercase with underscores | get_value, set_mask, create_image |
15
- | Variables | lowercase with underscores | key, last_value, model, index, user_info |
16
- | Constants | UPPERCASE with underscores | MAX_LINES, BLACK, COMMANDING_PORT |
17
- | Modules & packages | lowercase **no** underscores | dataset, commanding, multiprocessing |
11
+ | Type | Style | Example |
12
+ |---------------------|------------------------------|---------------------------------------------------------------------------|
13
+ | Language | American Standard English | Color (~~Colour~~), initialize (~~initialise~~), center (~~centre~~), ... |
14
+ | Classes | CapWords | ProcessManager, ImageViewer, CommandList, Observation, MetaData |
15
+ | Methods & Functions | lowercase with underscores | get_value, set_mask, create_image |
16
+ | Variables | lowercase with underscores | key, last_value, model, index, user_info |
17
+ | Constants | UPPERCASE with underscores | MAX_LINES, BLACK, COMMANDING_PORT |
18
+ | Modules & packages | lowercase **no** underscores | dataset, commanding, multiprocessing |
18
19
 
19
20
  ## General
20
21
 
@@ -31,6 +32,10 @@ The following sections will give the most used conventions with a few examples o
31
32
  you will have to replace that text AND the brackets with your own text. As an example,
32
33
  if you see `--prompt <venv name>`, replace this with something like `--prompt cgse-venv`.
33
34
 
35
+ ## Language
36
+
37
+ The code and documentation shall be written in American Standard English for consistency and to avoid confusion when
38
+ searching for terms like "color" rather than "colour."
34
39
 
35
40
  ## Classes
36
41
 
@@ -83,21 +88,21 @@ Use simple words for modules, preferably just one word like `datasets` or `comma
83
88
  * Never use the form `from <module> import *`
84
89
  * Always use absolute imports in scripts
85
90
 
86
- Be careful that you do not name any modules the same as a module in the Python standard library. This can result in strange effects and may result in an `AttributeError`. Suppose you have named a module `math` in the `egse` directory and it is imported and used further in the code as follows:
91
+ Be careful that you do not name any modules the same as a module in the Python standard library. This can result in strange effects and may result in an `AttributeError`. Suppose you have named a module `math` in the `egse` directory, and it is imported and used further in the code as follows:
87
92
 
88
93
  ```python
89
94
  from egse import math
90
95
 
91
96
  # in some expression further down the code you might use
92
97
 
93
- math.exp(a)
98
+ math.exp(2)
94
99
  ```
95
100
 
96
101
  This will result in the following runtime error:
97
102
 
98
103
  ```text
99
104
  File "some_module.py", line 8, in <module>
100
- print(math.exp(a))
105
+ print(math.exp(2))
101
106
  AttributeError: module 'egse.math' has no attribute 'exp'
102
107
  ```
103
108
 
@@ -0,0 +1,38 @@
1
+ # Using dotenv
2
+
3
+ The `cgse` command and subcommands make use of `dotenv`. The package loads environment variables from a `.env` file into
4
+ your application's environment (`os.environ`). The idea is to store sensitive data like API keys, database passwords, or
5
+ configuration settings in the `.env` file. This file stays local on your machine and is ignored by git making your
6
+ project more secure. At the start of an application, call `load_dotenv()` and then access variables using
7
+ `os.getenv('KEY')` throughout your code.
8
+
9
+ The typical workflow is: create a `.env` file with your environment variables in your project root or in your
10
+ working directory, add `.env` to the `.gitignore`, commit a `.env.example` template (with dummy values) so other
11
+ developers know what variables are needed, and call `load_dotenv()` at the top of your main entry point before
12
+ accessing any environment variables. In production, you usually skip the `.env` file entirely and set real
13
+ environment variables through your hosting platform.
14
+
15
+ !!! note
16
+ The `load_dotenv()` function will **not overwrite** existing environment variables in `os.environ`. This means
17
+ environment variables already set in your shell or system take precedence over values in your `.env` file.
18
+ To override this behavior and force `.env` values to take priority, use `load_dotenv(override=True)`.
19
+
20
+ !!! Warning
21
+ Since the CGSE is a package that is used by and installed by other packages, the CGSE command loads the `.env` from
22
+ your current working directory instead of the location of the executing script. Otherwise, it would always look
23
+ into the folder where the `cgse.py` script is located and that is probably not what you want.
24
+
25
+ Below, we have summarised some basic know-hows for using dotenv:
26
+
27
+ - place the `.env` file at the root location of your project or in your current working directory.
28
+ When you are developing for the CGSE, use the top-level folder of the monorepo. Please note that
29
+ the `load_dotenv()` function searches for a `.env` file in the current folder, the parent folder
30
+ up until it hits your home directory.
31
+ - the format to use for the environment variables is `KEY=VALUE`.
32
+ - do not use quotes, unless the VALUE contains spaces.
33
+ - do not use the _`export`_ statement (the `.env` files are not shell scripts).
34
+ - add a comment after a hash character: '`#`'
35
+ - call the `load_dotenv()` function at the top of your entry point file or app, right after the imports.
36
+ - Call the `load_dotenv()` function only once at application startup, not in every module.
37
+ - You might want to consider calling `load_dotenv(find_dotenv(usecwd=True))` instead
38
+ - Do not call the function in library code.
@@ -2,7 +2,8 @@ All you need to get started using and building the CGSE.
2
2
 
3
3
  ## Requirements
4
4
 
5
- - Python 3.10.x (we do not yet support higher versions, but are working to extend the list)
5
+ - Python 3.10.x (although we know at least the `cgse-common` works with Python versions up to 3.13, we do not yet
6
+ fully support higher versions, but are working to extend the list)
6
7
  - macOS or Linux
7
8
 
8
9
  ## Virtual environment
@@ -18,6 +18,7 @@ The _Commands_ section lists the `cgse` commands that are not linked to a core s
18
18
 
19
19
  The _Core Command_ section lists the sub-command for each of the core services, use `core` when you want to
20
20
  start/stop all core services in one go. The core services are:
21
+
21
22
  - **reg** the service registry for all core services and control servers
22
23
  - **not** the notification server that collects and published all events
23
24
  - **log** the log server that collects and stores all log messages
@@ -27,6 +28,7 @@ start/stop all core services in one go. The core services are:
27
28
 
28
29
  The _Device Command_ section lists the sub-commands for all device packages that have been installed and have a
29
30
  plugin for the `cgse` command. In the `cgse` package, the following devices are available:
31
+
30
32
  - **DAQ6510** the Keithley Data Acquisition and Logging Multimeter
31
33
  - **LakeShore336** the LakeShore Temperature Controller
32
34
  - **puna**, **joran**, **zonda** the Symétrie positioning Hexapods
@@ -0,0 +1,69 @@
1
+ # The Environment
2
+
3
+ The CGSE uses a number of environment variables that you will need to set in order to properly run services. There
4
+ are currently two mandatory environment variables:
5
+
6
+ - **PROJECT**: which is the name of your project, use ALL_CAPS to set its value. The value of this environment
7
+ variable is used as a prefix for other known environment variable specific for your project. For instance, when
8
+ your PROJECT=ARIEL, you will have a number of environment variables starting with `ARIEL_`, e.g.
9
+ `ARIEL_DATA_STORAGE_LOCATION`.
10
+ - **SITE_ID**: this is the name of the site or lab where the CGSE is running. The site id makes your tests and
11
+ environment unique. Suppose you have a laboratory with three test setupt, you can distinct site ids for each of
12
+ these setups. The `SITE_ID` will be used to assemble the path location of your storage, database, configurations
13
+ files, etc.
14
+
15
+ Besides the mandatory environment variables, the CGSE also maintains a number of _known_ environment variables. When
16
+ these variables are not set, they will be determined from defaults.
17
+
18
+ **`{PROJECT}_DATA_STORAGE_LOCATION`**
19
+
20
+ : This directory contains all the data files that are generated and filled by
21
+ the control servers and other components. The folder is the root folder for all
22
+ data from your test equipment, the SUT (system under test) and
23
+ all site ids.
24
+
25
+ **`{PROJECT}_CONF_DATA_LOCATION`**:
26
+
27
+ : This directory is the root folder for all the Setups of the site, the site is part
28
+ of the name. By default, this directory is located in the overall data storage folder.
29
+
30
+ **`{PROJECT}_LOG_FILE_LOCATION`**:
31
+
32
+ : This directory contains the log files with all messages that were sent to the
33
+ logger control server. The log files are rotated on a daily basis at midnight UTC.
34
+ By default, this directory is also located in the overall data storage folder, such
35
+ that log files are kept per project and site id.
36
+
37
+ **`{PROJECT}_LOCAL_SETTINGS`**:
38
+
39
+ : This file is used for local site-specific settings. When the environment
40
+ variable is not set, no local settings will be loaded. By default, the name
41
+ of this file is assumed to be 'local_settings.yaml'.
42
+
43
+ You can inspect your current environment with the command given below. The example is for
44
+ a project called ARIEL and a test setup in the vacuum lab.
45
+
46
+ ```shell
47
+ ➜ cgse show env
48
+ Environment variables:
49
+ PROJECT = ARIEL
50
+ SITE_ID = VACUUM_LAB
51
+ ARIEL_DATA_STORAGE_LOCATION = ~/data/ARIEL/VACUUM_LAB
52
+ ARIEL_CONF_DATA_LOCATION = ~/data/ARIEL/VACUUM_LAB/conf
53
+ ARIEL_CONF_REPO_LOCATION = not set
54
+ ARIEL_LOG_FILE_LOCATION = ~/data/ARIEL/VACUUM_LAB/log
55
+ ARIEL_LOCAL_SETTINGS = ~/data/ARIEL/VACUUM_LAB/local_settings.yaml
56
+
57
+ Generated locations and filenames
58
+ get_data_storage_location() = '~/data/ARIEL/VACUUM_LAB'
59
+ get_conf_data_location() = '~/data/ARIEL/VACUUM_LAB/conf'
60
+ get_conf_repo_location() = None ⟶ ERROR: The configuration repository location doesn't exist!
61
+ get_log_file_location() = '~/data/ARIEL/VACUUM_LAB/log'
62
+ get_local_settings_path() = '~/data/ARIEL/VACUUM_LAB/local_settings.yaml'
63
+
64
+ use the '--full' flag to get a more detailed report, '--doc' for help on the variables.
65
+ ```
66
+ !!! note
67
+
68
+ Note that the environment variables can start with the tilde `~` character which will be expanded into the
69
+ user's home folder when used.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-common"
3
- version = "0.16.14"
3
+ version = "0.17.0"
4
4
  description = "Software framework to support hardware testing"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -48,7 +48,6 @@ dependencies = [
48
48
 
49
49
  [project.scripts]
50
50
  cgse = 'cgse_common.cgse:app'
51
- monitor = "egse.monitoring:app"
52
51
 
53
52
  [project.entry-points."cgse.version"]
54
53
  cgse-common = 'egse.version:get_version_installed'
@@ -61,7 +60,7 @@ pythonpath = "src"
61
60
  testpaths = ["tests"]
62
61
  addopts = "-ra --cov --cov-branch --cov-report html"
63
62
  log_cli = true
64
- log_cli_level = "INFO"
63
+ log_cli_level = "DEBUG"
65
64
  filterwarnings = [
66
65
  "ignore::DeprecationWarning"
67
66
  ]
@@ -72,7 +72,7 @@ class SortedCommandGroup(TyperGroup):
72
72
  commands = super().list_commands(ctx)
73
73
 
74
74
  # Define priority commands in specific order
75
- priority_commands = ["init", "version", "show", "top", "core", "reg", "not", "log", "cm", "sm", "pm"]
75
+ priority_commands = ["init", "version", "show", "top", "core", "reg", "log", "nh", "cm", "sm", "pm"]
76
76
 
77
77
  # Custom sort:
78
78
  # First the priority commands in the given order (their index)
@@ -175,6 +175,10 @@ def main(ctx: typer.Context, verbose: bool = False):
175
175
  - inspect, configure, monitor the core services and device control servers.
176
176
  """
177
177
 
178
+ from egse.env import setup_env
179
+
180
+ setup_env()
181
+
178
182
  # This is more of a show-case for using application wide optional arguments and how to pass
179
183
  # them into (sub-)commands.
180
184
 
@@ -15,7 +15,6 @@ from typing import Optional
15
15
 
16
16
  import rich
17
17
 
18
- from egse.settings import Settings
19
18
  from egse.system import get_caller_info
20
19
  from egse.log import logger
21
20
 
@@ -390,6 +389,8 @@ def profile(func):
390
389
  if not hasattr(profile, "counter"):
391
390
  profile.counter = 0
392
391
 
392
+ from egse.settings import Settings
393
+
393
394
  @functools.wraps(func)
394
395
  def wrapper_profile(*args, **kwargs):
395
396
  if Settings.profiling():
@@ -199,7 +199,7 @@ class DeviceConnectionInterface(DeviceConnectionObservable):
199
199
 
200
200
 
201
201
  class DeviceInterface(DeviceConnectionInterface):
202
- """Generic interface for all device classes."""
202
+ """A generic interface for all device classes."""
203
203
 
204
204
  @dynamic_interface
205
205
  def is_simulator(self) -> bool:
@@ -237,6 +237,7 @@ class DeviceTransport:
237
237
  raise NotImplementedError
238
238
 
239
239
  def read_string(self, encoding="utf-8") -> str:
240
+ """Reads a bytes object from the instrument and returns it converted into a stripped UTF-8 string."""
240
241
  return self.read().decode(encoding).strip()
241
242
 
242
243
  def trans(self, command: str) -> bytes:
@@ -297,6 +298,11 @@ class AsyncDeviceTransport:
297
298
 
298
299
  raise NotImplementedError
299
300
 
301
+ async def read_string(self, encoding="utf-8") -> str:
302
+ """Reads a bytes object from the instrument and returns it converted into a stripped UTF-8 string."""
303
+ b = await self.read()
304
+ return b.decode(encoding).strip()
305
+
300
306
  async def trans(self, command: str) -> bytes:
301
307
  """
302
308
  Send a single command to the device controller and block until a response from the
@@ -389,7 +395,7 @@ class AsyncDeviceConnectionInterface(DeviceConnectionObservable):
389
395
 
390
396
 
391
397
  class AsyncDeviceInterface(AsyncDeviceConnectionInterface):
392
- """Generic interface for all device classes."""
398
+ """A generic interface for all device classes."""
393
399
 
394
400
  def is_simulator(self) -> bool:
395
401
  """Checks whether the device is a simulator rather than a real hardware controller.