cgse 0.17.1__tar.gz → 0.17.3__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 (569) hide show
  1. {cgse-0.17.1 → cgse-0.17.3}/.env.example +6 -1
  2. {cgse-0.17.1 → cgse-0.17.3}/.gitignore +5 -0
  3. cgse-0.17.3/CHANGELOG.md +235 -0
  4. {cgse-0.17.1 → cgse-0.17.3}/PKG-INFO +1 -1
  5. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/pyproject.toml +14 -6
  6. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/bits.py +14 -17
  7. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/decorators.py +6 -3
  8. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/device.py +0 -70
  9. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/env.py +2 -1
  10. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/exceptions.py +3 -0
  11. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/log.py +7 -8
  12. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/scpi.py +47 -112
  13. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/settings.py +31 -0
  14. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/system.py +63 -24
  15. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/version.py +24 -13
  16. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/scripts/handle_sigterm.py +4 -0
  17. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_bits.py +3 -3
  18. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_process.py +8 -5
  19. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_settings.py +27 -0
  20. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_system.py +99 -6
  21. cgse-0.17.3/libs/cgse-common/tests/test_version.py +262 -0
  22. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/pyproject.toml +1 -1
  23. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/pyproject.toml +17 -9
  24. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/service_registry.db +0 -0
  25. {cgse-0.17.1 → cgse-0.17.3/libs/cgse-core}/service_registry.db-shm +0 -0
  26. cgse-0.17.3/libs/cgse-core/service_registry.db-wal +0 -0
  27. cgse-0.17.3/libs/cgse-core/src/egse/connect.py +55 -0
  28. cgse-0.17.3/libs/cgse-core/tests/test_connect.py +200 -0
  29. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/pyproject.toml +1 -1
  30. {cgse-0.17.1 → cgse-0.17.3}/make-a-release.md +8 -1
  31. {cgse-0.17.1 → cgse-0.17.3}/projects/ariel/ariel-tcu/pyproject.toml +1 -1
  32. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/cgse-tools/pyproject.toml +1 -1
  33. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/pyproject.toml +1 -1
  34. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.py +22 -31
  35. cgse-0.17.3/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_adev.py +97 -0
  36. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_cs.py +44 -89
  37. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_dev.py +20 -78
  38. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_mon.py +22 -58
  39. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_protocol.py +35 -18
  40. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_sim.py +18 -19
  41. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_services.py +7 -26
  42. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/tests/script_daq6510_mon.py +7 -3
  43. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/tests/test_adev.py +11 -73
  44. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/tests/test_dev.py +14 -18
  45. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/lakeshore-tempcontrol/pyproject.toml +1 -1
  46. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/pyproject.toml +1 -1
  47. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_ui.py +2 -3
  48. {cgse-0.17.1 → cgse-0.17.3}/projects/plato/plato-fits/pyproject.toml +1 -1
  49. {cgse-0.17.1 → cgse-0.17.3}/projects/plato/plato-hdf5/pyproject.toml +1 -1
  50. {cgse-0.17.1 → cgse-0.17.3}/projects/plato/plato-spw/pyproject.toml +1 -1
  51. {cgse-0.17.1 → cgse-0.17.3}/pyproject.toml +5 -1
  52. cgse-0.17.3/scratch/mock-version.py +3 -0
  53. cgse-0.17.3/scratch/test_version_behavior.py +35 -0
  54. cgse-0.17.3/scratch/understanding-the-mocking-library.py +82 -0
  55. cgse-0.17.3/scratch/understanding_the_with_statement.py +37 -0
  56. {cgse-0.17.1 → cgse-0.17.3}/service_registry.db +0 -0
  57. cgse-0.17.1/CHANGELOG.md +0 -151
  58. cgse-0.17.1/libs/cgse-common/src/egse/plugins/metrics/duckdb.py +0 -442
  59. cgse-0.17.1/libs/cgse-common/src/egse/plugins/metrics/timescaledb.py +0 -596
  60. cgse-0.17.1/libs/cgse-common/src/egse/ratelimit.py +0 -275
  61. cgse-0.17.1/libs/cgse-common/src/egse/socketdevice.py +0 -379
  62. cgse-0.17.1/libs/cgse-common/tests/test_ratelimit.py +0 -365
  63. cgse-0.17.1/libs/cgse-common/tests/test_socketdevice.py +0 -329
  64. cgse-0.17.1/libs/cgse-core/src/egse/async_control.py +0 -1084
  65. cgse-0.17.1/libs/cgse-core/src/egse/async_control_claude.py +0 -807
  66. cgse-0.17.1/libs/cgse-core/src/egse/confman/confman_acs.py +0 -35
  67. cgse-0.17.1/libs/cgse-core/src/egse/connect.py +0 -516
  68. cgse-0.17.1/libs/cgse-core/src/egse/metricshub/server.py +0 -271
  69. cgse-0.17.1/libs/cgse-core/src/egse/notifyhub/test.py +0 -303
  70. cgse-0.17.1/libs/cgse-core/tests/marimo/intro.py +0 -116
  71. cgse-0.17.1/libs/cgse-core/tests/simple_server.py +0 -135
  72. cgse-0.17.1/libs/cgse-core/tests/test_async_control.py +0 -53
  73. cgse-0.17.1/libs/cgse-core/tests/test_connect.py +0 -668
  74. cgse-0.17.1/libs/cgse-core/tests/test_proxy.py +0 -15
  75. cgse-0.17.1/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_acs.py +0 -3
  76. cgse-0.17.1/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_adev.py +0 -77
  77. cgse-0.17.1/projects/generic/keithley-tempcontrol/tests/script_daq6510_central_heating.py +0 -53
  78. cgse-0.17.1/projects/generic/keithley-tempcontrol/tests/script_plot_readings.py +0 -60
  79. cgse-0.17.1/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_sim.py +0 -252
  80. cgse-0.17.1/projects/generic/symetrie-hexapod/src/symetrie_hexapod/__init__.py +0 -0
  81. cgse-0.17.1/projects/generic/symetrie-hexapod/tests/test_puna_cs.py +0 -12
  82. cgse-0.17.1/service_registry.db-wal +0 -0
  83. {cgse-0.17.1 → cgse-0.17.3}/.github/workflows/ruff-format-check.yaml +0 -0
  84. {cgse-0.17.1 → cgse-0.17.3}/README.md +0 -0
  85. {cgse-0.17.1 → cgse-0.17.3}/bump.py +0 -0
  86. {cgse-0.17.1 → cgse-0.17.3}/conftest.py +0 -0
  87. {cgse-0.17.1 → cgse-0.17.3}/docs/api/bits.md +0 -0
  88. {cgse-0.17.1 → cgse-0.17.3}/docs/api/calibration.md +0 -0
  89. {cgse-0.17.1 → cgse-0.17.3}/docs/api/command.md +0 -0
  90. {cgse-0.17.1 → cgse-0.17.3}/docs/api/config.md +0 -0
  91. {cgse-0.17.1 → cgse-0.17.3}/docs/api/control.md +0 -0
  92. {cgse-0.17.1 → cgse-0.17.3}/docs/api/counter.md +0 -0
  93. {cgse-0.17.1 → cgse-0.17.3}/docs/api/decorators.md +0 -0
  94. {cgse-0.17.1 → cgse-0.17.3}/docs/api/device.md +0 -0
  95. {cgse-0.17.1 → cgse-0.17.3}/docs/api/dicts.md +0 -0
  96. {cgse-0.17.1 → cgse-0.17.3}/docs/api/dummy.md +0 -0
  97. {cgse-0.17.1 → cgse-0.17.3}/docs/api/env.md +0 -0
  98. {cgse-0.17.1 → cgse-0.17.3}/docs/api/exceptions.md +0 -0
  99. {cgse-0.17.1 → cgse-0.17.3}/docs/api/heartbeat.md +0 -0
  100. {cgse-0.17.1 → cgse-0.17.3}/docs/api/hk.md +0 -0
  101. {cgse-0.17.1 → cgse-0.17.3}/docs/api/index.md +0 -0
  102. {cgse-0.17.1 → cgse-0.17.3}/docs/api/listener.md +0 -0
  103. {cgse-0.17.1 → cgse-0.17.3}/docs/api/metrics.md +0 -0
  104. {cgse-0.17.1 → cgse-0.17.3}/docs/api/mixin.md +0 -0
  105. {cgse-0.17.1 → cgse-0.17.3}/docs/api/monitoring.md +0 -0
  106. {cgse-0.17.1 → cgse-0.17.3}/docs/api/observer.md +0 -0
  107. {cgse-0.17.1 → cgse-0.17.3}/docs/api/obsid.md +0 -0
  108. {cgse-0.17.1 → cgse-0.17.3}/docs/api/persistence.md +0 -0
  109. {cgse-0.17.1 → cgse-0.17.3}/docs/api/plugin.md +0 -0
  110. {cgse-0.17.1 → cgse-0.17.3}/docs/api/process.md +0 -0
  111. {cgse-0.17.1 → cgse-0.17.3}/docs/api/reload.md +0 -0
  112. {cgse-0.17.1 → cgse-0.17.3}/docs/api/settings.md +0 -0
  113. {cgse-0.17.1 → cgse-0.17.3}/docs/api/setup.md +0 -0
  114. {cgse-0.17.1 → cgse-0.17.3}/docs/api/system.md +0 -0
  115. {cgse-0.17.1 → cgse-0.17.3}/docs/custom_theme/main.html +0 -0
  116. {cgse-0.17.1 → cgse-0.17.3}/docs/dev_guide/coding_style.md +0 -0
  117. {cgse-0.17.1 → cgse-0.17.3}/docs/dev_guide/docs.md +0 -0
  118. {cgse-0.17.1 → cgse-0.17.3}/docs/dev_guide/dotenv.md +0 -0
  119. {cgse-0.17.1 → cgse-0.17.3}/docs/dev_guide/index.md +0 -0
  120. {cgse-0.17.1 → cgse-0.17.3}/docs/dev_guide/installation.md +0 -0
  121. {cgse-0.17.1 → cgse-0.17.3}/docs/dev_guide/monitoring.md +0 -0
  122. {cgse-0.17.1 → cgse-0.17.3}/docs/dev_guide/monorepo.md +0 -0
  123. {cgse-0.17.1 → cgse-0.17.3}/docs/dev_guide/nox.md +0 -0
  124. {cgse-0.17.1 → cgse-0.17.3}/docs/dev_guide/plugins.md +0 -0
  125. {cgse-0.17.1 → cgse-0.17.3}/docs/dev_guide/project-configuration.md +0 -0
  126. {cgse-0.17.1 → cgse-0.17.3}/docs/dev_guide/unit_testing.md +0 -0
  127. {cgse-0.17.1 → cgse-0.17.3}/docs/dev_guide/uv.md +0 -0
  128. {cgse-0.17.1 → cgse-0.17.3}/docs/dev_guide/versioning.md +0 -0
  129. {cgse-0.17.1 → cgse-0.17.3}/docs/getting_started.md +0 -0
  130. {cgse-0.17.1 → cgse-0.17.3}/docs/help.md +0 -0
  131. {cgse-0.17.1 → cgse-0.17.3}/docs/images/cli-cgse.png +0 -0
  132. {cgse-0.17.1 → cgse-0.17.3}/docs/images/github-fork-clone-dark.png +0 -0
  133. {cgse-0.17.1 → cgse-0.17.3}/docs/images/github-fork-clone.png +0 -0
  134. {cgse-0.17.1 → cgse-0.17.3}/docs/images/grafana-queries.png +0 -0
  135. {cgse-0.17.1 → cgse-0.17.3}/docs/images/icons/cgse-logo-blue.svg +0 -0
  136. {cgse-0.17.1 → cgse-0.17.3}/docs/images/icons/cgse-logo.svg +0 -0
  137. {cgse-0.17.1 → cgse-0.17.3}/docs/index.md +0 -0
  138. {cgse-0.17.1 → cgse-0.17.3}/docs/initialize.md +0 -0
  139. {cgse-0.17.1 → cgse-0.17.3}/docs/libs/cgse-common/images/load_methods.png +0 -0
  140. {cgse-0.17.1 → cgse-0.17.3}/docs/libs/cgse-common/index.md +0 -0
  141. {cgse-0.17.1 → cgse-0.17.3}/docs/libs/cgse-common/settings.md +0 -0
  142. {cgse-0.17.1 → cgse-0.17.3}/docs/libs/cgse-common/setup.md +0 -0
  143. {cgse-0.17.1 → cgse-0.17.3}/docs/libs/cgse-coordinates/index.md +0 -0
  144. {cgse-0.17.1 → cgse-0.17.3}/docs/libs/cgse-core/index.md +0 -0
  145. {cgse-0.17.1 → cgse-0.17.3}/docs/libs/cgse-core/notifyhub.md +0 -0
  146. {cgse-0.17.1 → cgse-0.17.3}/docs/libs/cgse-core/registry.md +0 -0
  147. {cgse-0.17.1 → cgse-0.17.3}/docs/libs/cgse-gui/index.md +0 -0
  148. {cgse-0.17.1 → cgse-0.17.3}/docs/libs/index.md +0 -0
  149. {cgse-0.17.1 → cgse-0.17.3}/docs/package_list.md +0 -0
  150. {cgse-0.17.1 → cgse-0.17.3}/docs/projects/cgse-tools.md +0 -0
  151. {cgse-0.17.1 → cgse-0.17.3}/docs/projects/index.md +0 -0
  152. {cgse-0.17.1 → cgse-0.17.3}/docs/projects/symetrie-hexapod.md +0 -0
  153. {cgse-0.17.1 → cgse-0.17.3}/docs/roadmap.md +0 -0
  154. {cgse-0.17.1 → cgse-0.17.3}/docs/stylesheets/custom.css +0 -0
  155. {cgse-0.17.1 → cgse-0.17.3}/docs/stylesheets/extra.css +0 -0
  156. {cgse-0.17.1 → cgse-0.17.3}/docs/tutorial.md +0 -0
  157. {cgse-0.17.1 → cgse-0.17.3}/docs/user_guide/cli.md +0 -0
  158. {cgse-0.17.1 → cgse-0.17.3}/docs/user_guide/env.md +0 -0
  159. {cgse-0.17.1 → cgse-0.17.3}/docs/user_guide/index.md +0 -0
  160. {cgse-0.17.1 → cgse-0.17.3}/duckdb_metrics.db +0 -0
  161. {cgse-0.17.1 → cgse-0.17.3}/duckdb_metrics.db.wal +0 -0
  162. {cgse-0.17.1 → cgse-0.17.3}/identifier.sqlite +0 -0
  163. {cgse-0.17.1 → cgse-0.17.3}/justfile +0 -0
  164. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/README.md +0 -0
  165. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/justfile +0 -0
  166. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/noxfile.py +0 -0
  167. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/service_registry.db +0 -0
  168. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/cgse_common/__init__.py +0 -0
  169. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/cgse_common/cgse.py +0 -0
  170. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/cgse_common/settings.yaml +0 -0
  171. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/calibration.py +0 -0
  172. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/config.py +0 -0
  173. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/counter.py +0 -0
  174. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/dicts.py +0 -0
  175. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/heartbeat.py +0 -0
  176. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/hk.py +0 -0
  177. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/metrics.py +0 -0
  178. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/observer.py +0 -0
  179. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/obsid.py +0 -0
  180. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/persistence.py +0 -0
  181. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/plugin.py +0 -0
  182. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/plugins/metrics/influxdb.py +0 -0
  183. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/process.py +0 -0
  184. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/py.typed +0 -0
  185. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/randomwalk.py +0 -0
  186. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/reload.py +0 -0
  187. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/resource.py +0 -0
  188. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/response.py +0 -0
  189. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/settings.yaml +0 -0
  190. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/setup.py +0 -0
  191. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/signal.py +0 -0
  192. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/state.py +0 -0
  193. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/task.py +0 -0
  194. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/src/egse/zmq_ser.py +0 -0
  195. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/conftest.py +0 -0
  196. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/COPYING +0 -0
  197. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00028_201028_155259.yaml +0 -0
  198. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00029_201028_155331.yaml +0 -0
  199. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00030_210311_134043.yaml +0 -0
  200. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00080_210917_105245.yaml +0 -0
  201. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00081_210922_142259.yaml +0 -0
  202. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00082_210923_094458.yaml +0 -0
  203. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/CSL1/README.md +0 -0
  204. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/CSL2/README.md +0 -0
  205. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/IAS/README.md +0 -0
  206. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/INTA/README.md +0 -0
  207. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/LAB23/README.md +0 -0
  208. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00027_211119_140441.yaml +0 -0
  209. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00028_211119_160406.yaml +0 -0
  210. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00029_211119_172918.yaml +0 -0
  211. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00030_211122_103604.yaml +0 -0
  212. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00031_211123_124900.yaml +0 -0
  213. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/common/telemetry/tm-dictionary-default.csv +0 -0
  214. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/conf/SETUP_20250114_1519.yaml +0 -0
  215. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/conf/config-file.toml +0 -0
  216. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/data/cal_coeff_1234.csv +0 -0
  217. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/data/calibration.csv +0 -0
  218. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/data/calibration.yaml +0 -0
  219. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/data/command.yaml +0 -0
  220. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/data/corrupt.yaml +0 -0
  221. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/data/data-file.txt +0 -0
  222. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/data/empty_data_file.txt +0 -0
  223. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/data/empty_yaml_file.yaml +0 -0
  224. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/data/local_settings.yaml +0 -0
  225. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/data/new_local_settings.yaml +0 -0
  226. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/data/test_setup.yaml +0 -0
  227. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/icons/hourglass.svg +0 -0
  228. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/icons/keyboard.png +0 -0
  229. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/icons/soap_sponge.svg +0 -0
  230. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/lib/dev1/shared-lib.so +0 -0
  231. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/data/lib/dev2/shared-lib.so +0 -0
  232. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/fixtures/default_env.py +0 -0
  233. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/fixtures/helpers.py +0 -0
  234. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/scripts/empty_process.py +0 -0
  235. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/scripts/process_with_children.py +0 -0
  236. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/scripts/raise_value_error.py +0 -0
  237. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/scripts/void-0.py +0 -0
  238. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/scripts/void-1.py +0 -0
  239. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_config.py +0 -0
  240. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_decorators.py +0 -0
  241. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_device.py +0 -0
  242. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_env.py +0 -0
  243. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_fixtures.py +0 -0
  244. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_hk.py +0 -0
  245. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_influxdb_plugin.py +0 -0
  246. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_log.py +0 -0
  247. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_metrics.py +0 -0
  248. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_plugin.py +0 -0
  249. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_resource.py +0 -0
  250. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_response.py +0 -0
  251. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_setup.py +0 -0
  252. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_signal.py +0 -0
  253. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_state.py +0 -0
  254. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_task.py +0 -0
  255. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-common/tests/test_zmq_ser.py +0 -0
  256. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/README.md +0 -0
  257. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/src/cgse_coordinates/__init__.py +0 -0
  258. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/src/cgse_coordinates/settings.yaml +0 -0
  259. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/src/egse/coordinates/__init__.py +0 -0
  260. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/src/egse/coordinates/avoidance.py +0 -0
  261. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/src/egse/coordinates/cslmodel.py +0 -0
  262. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/src/egse/coordinates/laser_tracker_to_dict.py +0 -0
  263. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/src/egse/coordinates/point.py +0 -0
  264. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/src/egse/coordinates/pyplot.py +0 -0
  265. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/src/egse/coordinates/referenceFrame.py +0 -0
  266. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/src/egse/coordinates/refmodel.py +0 -0
  267. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/src/egse/coordinates/rotationMatrix.py +0 -0
  268. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/src/egse/coordinates/transform3d_addon.py +0 -0
  269. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/tests/test_avoidance.py +0 -0
  270. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/tests/test_coordinates_plot.py +0 -0
  271. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/tests/test_coordinates_serialize.py +0 -0
  272. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/tests/test_point.py +0 -0
  273. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/tests/test_ref_model.py +0 -0
  274. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/tests/test_reference_frames.py +0 -0
  275. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-coordinates/tests/test_refmodel.py +0 -0
  276. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/README.md +0 -0
  277. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/cgse_core/__init__.py +0 -0
  278. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/cgse_core/_start.py +0 -0
  279. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/cgse_core/_status.py +0 -0
  280. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/cgse_core/_stop.py +0 -0
  281. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/cgse_core/cgse_explore.py +0 -0
  282. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/cgse_core/services.py +0 -0
  283. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/cgse_core/settings.yaml +0 -0
  284. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/_setup_core.py +0 -0
  285. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/command.py +0 -0
  286. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/confman/__init__.py +0 -0
  287. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/confman/__main__.py +0 -0
  288. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/confman/confman.yaml +0 -0
  289. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/confman/confman_cs.py +0 -0
  290. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/control.py +0 -0
  291. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/dummy.py +0 -0
  292. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/icons/busy.svg +0 -0
  293. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/icons/operational-mode.svg +0 -0
  294. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/icons/pm_ui.svg +0 -0
  295. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/icons/simulator-mode.svg +0 -0
  296. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/icons/start-process-button.svg +0 -0
  297. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/icons/stop-process-button.svg +0 -0
  298. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/icons/user-interface.svg +0 -0
  299. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/listener.py +0 -0
  300. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/logger/__init__.py +0 -0
  301. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/logger/__main__.py +0 -0
  302. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/logger/log_cs.py +0 -0
  303. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/mixin.py +0 -0
  304. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/monitoring.py +0 -0
  305. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/notifyhub/__init__.py +0 -0
  306. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/notifyhub/client.py +0 -0
  307. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/notifyhub/event.py +0 -0
  308. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/notifyhub/server.py +0 -0
  309. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/notifyhub/services.py +0 -0
  310. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/procman/__init__.py +0 -0
  311. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/procman/procman.yaml +0 -0
  312. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/procman/procman_cs.py +0 -0
  313. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/procman/procman_protocol.py +0 -0
  314. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/procman/procman_ui.py +0 -0
  315. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/protocol.py +0 -0
  316. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/proxy.py +0 -0
  317. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/registry/__init__.py +0 -0
  318. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/registry/backend.py +0 -0
  319. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/registry/client.py +0 -0
  320. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/registry/server.py +0 -0
  321. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/registry/service.py +0 -0
  322. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/services.py +0 -0
  323. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/services.yaml +0 -0
  324. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/storage/__init__.py +0 -0
  325. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/storage/__main__.py +0 -0
  326. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/storage/persistence.py +0 -0
  327. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/storage/storage.yaml +0 -0
  328. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/src/egse/storage/storage_cs.py +0 -0
  329. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/conftest.py +0 -0
  330. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/data/local_settings.yaml +0 -0
  331. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/fixtures/default_env.py +0 -0
  332. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/fixtures/helpers.py +0 -0
  333. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/fixtures/services.py +0 -0
  334. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/script_subscribe_to_notifyhub.py +0 -0
  335. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/script_test_async_registry_client.py +0 -0
  336. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/script_test_registry_client_server.py +0 -0
  337. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/script_test_service_registry_server.py +0 -0
  338. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/script_test_sync_registry_client.py +0 -0
  339. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/services.py +0 -0
  340. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/stress_test_registry_server.py +0 -0
  341. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_client_server_interaction.py +0 -0
  342. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_cm_cs.py +0 -0
  343. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_command.py +0 -0
  344. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_confman_setups.py +0 -0
  345. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_control.py +0 -0
  346. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_dummy.py +0 -0
  347. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_event_notification.py +0 -0
  348. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_extensions.py +0 -0
  349. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_listener.py +0 -0
  350. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_logger.py +0 -0
  351. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_mixin.py +0 -0
  352. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_notify_hub.py +0 -0
  353. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_protocol.py +0 -0
  354. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_registry_backend.py +0 -0
  355. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_registry_service.py +0 -0
  356. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_server_running.py +0 -0
  357. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_server_running_with_fixture.py +0 -0
  358. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_settings_core.py +0 -0
  359. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-core/tests/test_zmq_microservice.py +0 -0
  360. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/README.md +0 -0
  361. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/__init__.py +0 -0
  362. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/buttons.py +0 -0
  363. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-start.svg +0 -0
  364. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-stop.svg +0 -0
  365. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/aeu-cs.svg +0 -0
  366. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-started.svg +0 -0
  367. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-stopped.svg +0 -0
  368. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/aeu_cs.svg +0 -0
  369. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/alert.svg +0 -0
  370. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/arrow-double-left.png +0 -0
  371. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/arrow-double-right.png +0 -0
  372. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/arrow-up.svg +0 -0
  373. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/backward.svg +0 -0
  374. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/busy.svg +0 -0
  375. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/cleaning.svg +0 -0
  376. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/color-scheme.svg +0 -0
  377. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/cs-connected-alert.svg +0 -0
  378. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/cs-connected-disabled.svg +0 -0
  379. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/cs-connected.svg +0 -0
  380. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/cs-not-connected.svg +0 -0
  381. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/double-left-arrow.svg +0 -0
  382. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/double-right-arrow.svg +0 -0
  383. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/erase-disabled.svg +0 -0
  384. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/erase.svg +0 -0
  385. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/fitsgen-start.svg +0 -0
  386. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/fitsgen-stop.svg +0 -0
  387. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/fitsgen.svg +0 -0
  388. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/forward.svg +0 -0
  389. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/fov-hk-start.svg +0 -0
  390. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/fov-hk-stop.svg +0 -0
  391. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/fov-hk.svg +0 -0
  392. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/front-desk.svg +0 -0
  393. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/home-actioned.svg +0 -0
  394. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/home-disabled.svg +0 -0
  395. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/home.svg +0 -0
  396. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/info.svg +0 -0
  397. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/invalid.png +0 -0
  398. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/led-green.svg +0 -0
  399. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/led-grey.svg +0 -0
  400. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/led-orange.svg +0 -0
  401. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/led-red.svg +0 -0
  402. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/led-square-green.svg +0 -0
  403. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/led-square-grey.svg +0 -0
  404. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/led-square-orange.svg +0 -0
  405. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/led-square-red.svg +0 -0
  406. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-green.svg +0 -0
  407. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-red.svg +0 -0
  408. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el+.svg +0 -0
  409. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el-.svg +0 -0
  410. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/location-marker.svg +0 -0
  411. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/logo-dpu.svg +0 -0
  412. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/logo-gimbal.svg +0 -0
  413. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/logo-huber.svg +0 -0
  414. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/logo-ogse.svg +0 -0
  415. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/logo-puna.svg +0 -0
  416. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/logo-tcs.svg +0 -0
  417. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/logo-zonda.svg +0 -0
  418. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/maximize.svg +0 -0
  419. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/meter.svg +0 -0
  420. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/more.svg +0 -0
  421. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-start.svg +0 -0
  422. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-stop.svg +0 -0
  423. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk.svg +0 -0
  424. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/observing-off.svg +0 -0
  425. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/observing-on.svg +0 -0
  426. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.png +0 -0
  427. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.svg +0 -0
  428. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/ops-mode.svg +0 -0
  429. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/play-green.svg +0 -0
  430. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/plugged-disabled.svg +0 -0
  431. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/plugged.svg +0 -0
  432. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/pm_ui.svg +0 -0
  433. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/power-button-green.svg +0 -0
  434. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/power-button-red.svg +0 -0
  435. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/power-button.svg +0 -0
  436. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/radar.svg +0 -0
  437. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/radioactive.svg +0 -0
  438. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/reload.svg +0 -0
  439. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/remote-control-off.svg +0 -0
  440. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/remote-control-on.svg +0 -0
  441. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/repeat-blue.svg +0 -0
  442. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/repeat.svg +0 -0
  443. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/settings.svg +0 -0
  444. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/shrink.svg +0 -0
  445. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/shutter.svg +0 -0
  446. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/sign-off.svg +0 -0
  447. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/sign-on.svg +0 -0
  448. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/sim-mode.svg +0 -0
  449. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/small-buttons-go.svg +0 -0
  450. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/small-buttons-minus.svg +0 -0
  451. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/small-buttons-plus.svg +0 -0
  452. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/sponge.svg +0 -0
  453. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/start-button-disabled.svg +0 -0
  454. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/start-button.svg +0 -0
  455. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/stop-button-disabled.svg +0 -0
  456. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/stop-button.svg +0 -0
  457. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/stop-red.svg +0 -0
  458. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/stop.svg +0 -0
  459. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/switch-disabled-square.svg +0 -0
  460. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/switch-disabled.svg +0 -0
  461. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/switch-off-square.svg +0 -0
  462. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/switch-off.svg +0 -0
  463. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/switch-on-square.svg +0 -0
  464. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/switch-on.svg +0 -0
  465. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/temperature-control.svg +0 -0
  466. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/th_ui_logo.svg +0 -0
  467. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/unplugged.svg +0 -0
  468. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/unvalid.png +0 -0
  469. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/user-interface.svg +0 -0
  470. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/vacuum.svg +0 -0
  471. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/valid.png +0 -0
  472. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-dark.svg +0 -0
  473. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-white.svg +0 -0
  474. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/led.py +0 -0
  475. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/limitswitch.py +0 -0
  476. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/states.py +0 -0
  477. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/styles/dark.qss +0 -0
  478. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/styles/default.qss +0 -0
  479. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/styles.qss +0 -0
  480. {cgse-0.17.1 → cgse-0.17.3}/libs/cgse-gui/src/egse/gui/switch.py +0 -0
  481. {cgse-0.17.1 → cgse-0.17.3}/mkdocs.yml +0 -0
  482. {cgse-0.17.1 → cgse-0.17.3}/noxfile.py +0 -0
  483. {cgse-0.17.1 → cgse-0.17.3}/overrides/.icons/custom/dbend-dark.svg +0 -0
  484. {cgse-0.17.1 → cgse-0.17.3}/overrides/.icons/custom/dbend-light.svg +0 -0
  485. {cgse-0.17.1 → cgse-0.17.3}/overrides/.icons/custom/gear.svg +0 -0
  486. {cgse-0.17.1 → cgse-0.17.3}/projects/ariel/ariel-tcu/README.md +0 -0
  487. {cgse-0.17.1/libs/cgse-core/src/egse/metricshub → cgse-0.17.3/projects/ariel/ariel-tcu/src/ariel_tcu}/__init__.py +0 -0
  488. {cgse-0.17.1 → cgse-0.17.3}/projects/ariel/ariel-tcu/src/ariel_tcu/cgse_explore.py +0 -0
  489. {cgse-0.17.1 → cgse-0.17.3}/projects/ariel/ariel-tcu/src/ariel_tcu/cgse_services.py +0 -0
  490. {cgse-0.17.1 → cgse-0.17.3}/projects/ariel/ariel-tcu/src/ariel_tcu/settings.yaml +0 -0
  491. {cgse-0.17.1 → cgse-0.17.3}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/__init__.py +0 -0
  492. {cgse-0.17.1 → cgse-0.17.3}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu.py +0 -0
  493. {cgse-0.17.1 → cgse-0.17.3}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu.yaml +0 -0
  494. {cgse-0.17.1 → cgse-0.17.3}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_cmd_utils.py +0 -0
  495. {cgse-0.17.1 → cgse-0.17.3}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_cs.py +0 -0
  496. {cgse-0.17.1 → cgse-0.17.3}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_devif.py +0 -0
  497. {cgse-0.17.1 → cgse-0.17.3}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_protocol.py +0 -0
  498. {cgse-0.17.1 → cgse-0.17.3}/projects/ariel/ariel-tcu/tests/test_tcu.py +0 -0
  499. {cgse-0.17.1 → cgse-0.17.3}/projects/ariel/ariel-tcu/tests/test_tcu_cmd_utils.py +0 -0
  500. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/cgse-tools/README.md +0 -0
  501. {cgse-0.17.1/projects/ariel/ariel-tcu/src/ariel_tcu → cgse-0.17.3/projects/generic/cgse-tools/src/cgse_tools}/__init__.py +0 -0
  502. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/cgse-tools/src/cgse_tools/cgse_clock.py +0 -0
  503. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/cgse-tools/src/cgse_tools/cgse_commands.py +0 -0
  504. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/cgse-tools/src/cgse_tools/cgse_services.py +0 -0
  505. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/cgse-tools/src/egse/tools/status.py +0 -0
  506. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/README.md +0 -0
  507. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/justfile +0 -0
  508. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/noxfile.py +0 -0
  509. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/service_registry.db +0 -0
  510. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/__init__.py +0 -0
  511. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.yaml +0 -0
  512. {cgse-0.17.1/projects/generic/cgse-tools/src/cgse_tools → cgse-0.17.3/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol}/__init__.py +0 -0
  513. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_explore.py +0 -0
  514. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/settings.yaml +0 -0
  515. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/lakeshore-tempcontrol/README.md +0 -0
  516. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.py +0 -0
  517. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.yaml +0 -0
  518. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_cs.py +0 -0
  519. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_devif.py +0 -0
  520. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_protocol.py +0 -0
  521. {cgse-0.17.1/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol → cgse-0.17.3/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol}/__init__.py +0 -0
  522. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_explore.py +0 -0
  523. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_services.py +0 -0
  524. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/settings.yaml +0 -0
  525. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/lakeshore-tempcontrol/tests/test_lakeshore336_simulator.py +0 -0
  526. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/README.md +0 -0
  527. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/__init__.py +0 -0
  528. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/__init__.py +0 -0
  529. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/alpha.py +0 -0
  530. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/dynalpha.py +0 -0
  531. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod.py +0 -0
  532. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod_ui.py +0 -0
  533. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.py +0 -0
  534. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.yaml +0 -0
  535. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_cs.py +0 -0
  536. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_protocol.py +0 -0
  537. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_ui.py +0 -0
  538. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac.py +0 -0
  539. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac_regex.py +0 -0
  540. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.py +0 -0
  541. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.yaml +0 -0
  542. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_cs.py +0 -0
  543. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_protocol.py +0 -0
  544. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/punaplus.py +0 -0
  545. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.py +0 -0
  546. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.yaml +0 -0
  547. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_cs.py +0 -0
  548. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_devif.py +0 -0
  549. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_protocol.py +0 -0
  550. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_ui.py +0 -0
  551. {cgse-0.17.1/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol → cgse-0.17.3/projects/generic/symetrie-hexapod/src/symetrie_hexapod}/__init__.py +0 -0
  552. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_explore.py +0 -0
  553. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_services.py +0 -0
  554. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/settings.yaml +0 -0
  555. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/tests/test_puna.py +0 -0
  556. {cgse-0.17.1 → cgse-0.17.3}/projects/generic/symetrie-hexapod/tests/test_puna_simulator.py +0 -0
  557. {cgse-0.17.1 → cgse-0.17.3}/projects/plato/plato-fits/README.md +0 -0
  558. {cgse-0.17.1 → cgse-0.17.3}/projects/plato/plato-fits/src/egse/plugins/storage/fits.py +0 -0
  559. {cgse-0.17.1 → cgse-0.17.3}/projects/plato/plato-hdf5/README.md +0 -0
  560. {cgse-0.17.1 → cgse-0.17.3}/projects/plato/plato-hdf5/src/egse/plugins/storage/hdf5.py +0 -0
  561. {cgse-0.17.1 → cgse-0.17.3}/projects/plato/plato-spw/README.md +0 -0
  562. {cgse-0.17.1 → cgse-0.17.3}/projects/plato/plato-spw/src/egse/spw.py +0 -0
  563. {cgse-0.17.1 → cgse-0.17.3}/ruff.toml +0 -0
  564. {cgse-0.17.1 → cgse-0.17.3}/scratch/advanced-process-monitoring.py +0 -0
  565. {cgse-0.17.1 → cgse-0.17.3}/scratch/live-process-monitoring.py +0 -0
  566. {cgse-0.17.1 → cgse-0.17.3}/scratch/match-case.py +0 -0
  567. {cgse-0.17.1 → cgse-0.17.3}/scratch/processes.json +0 -0
  568. {cgse-0.17.1 → cgse-0.17.3}/scratch/simple-process-monitoring.py +0 -0
  569. {cgse-0.17.1 → cgse-0.17.3}/test_service_registry.db +0 -0
@@ -3,7 +3,12 @@ SITE_ID='VACUUM_LAB'
3
3
 
4
4
  # The variable below all start with the project name.
5
5
 
6
+ # These variables point to folders.
7
+
6
8
  ARIEL_DATA_STORAGE_LOCATION=~/data/ARIEL/VACUUM_LAB
7
9
  ARIEL_CONF_DATA_LOCATION=~/data/ARIEL/VACUUM_LAB/conf
8
- ARIEL_LOCAL_SETTINGS=~/data/ARIEL/VACUUM_LAB/local_settings.yaml
9
10
  ARIEL_LOG_FILE_LOCATION=~/data/ARIEL/VACUUM_LAB/log
11
+
12
+ # This variable points to a file, not to a folder.
13
+
14
+ ARIEL_LOCAL_SETTINGS=~/data/ARIEL/VACUUM_LAB/local_settings.yaml
@@ -32,6 +32,11 @@ venv
32
32
 
33
33
  .idea
34
34
 
35
+ # VSCode IDE
36
+
37
+ .vscode
38
+ *.code-workspace
39
+
35
40
  # MKDOCS documentation site
36
41
 
37
42
  /site
@@ -0,0 +1,235 @@
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]
10
+
11
+
12
+ ## [0.17.3] - 2025-11-29
13
+
14
+ In the previous release, uncommitted and untracked files were released by mistake. This release fixes this. Nothings has been changed with respect of release 0.17.2, except the removal of the uncommitted and untracked files.
15
+
16
+
17
+ ## [0.17.2] - 2025-11-28
18
+
19
+ This release is mainly on maintenance and improvements to the `cgse-common` package.
20
+
21
+ ### Fixed
22
+ - Nothing needed to be really fixed.
23
+
24
+ ### Changed
25
+ - To improve readability, the CHANGELOG file now contains all [link titles](https://github.github.com/gfm/#links) at
26
+ the bottom, both for version comparison and for issue/pull request linking. [#215]
27
+ - The args in the function `bits_set(value, *args)` should always be unpacked. Previously, the `args` could also be a
28
+ list, but that made the function call needlessly confusing. This should not be a problem (not a breaking change)
29
+ since this function is apparently only used in the unit tests currently. [#215]
30
+ - The `egse.log` module exports the logging module, so, when users import logging from egse.log, the specific CGSE
31
+ loggers will be configured. [#215]
32
+ - Changed the type of the default argument in `get_log_level_from_env()` function (not a breaking change) [#215]
33
+ - Changed the return value of the different `get_version_*()` functions to return "0.0.0" when the version cannot
34
+ be determined. Previously, these functions returned None. [#215]
35
+ - Improvements to `redirect_output_to_log()`: the file can be an absolute path, added a guard to overwrite [#217]
36
+ - A warning message is now logged when you try to read the last few lines from a non-existing file
37
+ - InitializationError = InitialisationError, to be conform to the styling guide promoting the use of standard
38
+ American English for code, comments and docs
39
+
40
+ ### Added
41
+ - Added a `from_string()` class method to Settings. This is mainly for testing and when you need to load
42
+ Settings from a specific file. [#215]
43
+ - Added an example `.env` file [#215]
44
+
45
+ ### Testing
46
+ - Added a test for the `round_up()` function in `egse.system` [#215]
47
+ - Added unit tests for `egse.version` and `egse.settings` [#215], [#216]
48
+ - Fixed the test `test_quit_process()` temporarily as it is not clear on macOS what is the actual return value
49
+ from a process when it is terminated or killed. [#215]
50
+ - Added unit test for `redirect_output_to_log()` [#217]
51
+
52
+
53
+ ## [0.17.1] - 2025-11-20
54
+
55
+ ### Fixed
56
+ - Fixed a missing expanduser(). Apparently a `path.resolve()` doesn't handle the '`~`' character. [#210]
57
+ - Fixed `env_var()` which is a context manager for temporarily setting an environment variable. It uses `setup_env()`
58
+ to update the environment before and after the `yield`, but `setup_env()` only initializes once. [#210]
59
+ - Fixed unit tests for settings, setup, and env. [#210]
60
+
61
+ ### Changed
62
+ - Some of the debug messages in settings are now filtered behind the VERBOSE_DEBUG flag. [#210]
63
+
64
+
65
+ ## [0.17.0] - 2025-11-20
66
+
67
+ ### Added
68
+ - Added this CHANGELOG file. [#209]
69
+ - Added an initial implementation of the ARIEL Telescope Control Unit (TCU). This is a separate package in this
70
+ monorepo that is located at `projects/ariel/ariel-tcu`. The package will be added to PyPI as `ariel-tcu`. [#178]
71
+ - Added a `read_string()` method to the `DeviceTransport` and `AsyncDeviceTransport` classes. [#209]
72
+ ### Fixed
73
+ - Fixed the `sm_cs` for the missing `--full` cli argument. [#204]
74
+ - Fixed the configuration of the InfluxDB client. The client can now be fully configured with environment variables
75
+ if needed. [#206]
76
+ ### Changed
77
+ - Improved initialization of the process environment with `setup_env()`. [#208]
78
+ - The configuration manager now also re-registers the obsid table to the storage. [#207]
79
+ - The `cgse` subcommand to start the notification hub is changed from `not` to `nh`. Use `cgse nh [start|stop|status]`. [#209]
80
+ - The environment variables that contain a path can start with a tilde '`~`' which will be expanded to the user's
81
+ home directory when used. [#204]
82
+ ### Docs
83
+ - Documentation updates for the Python version, the CLI `cgse` subcommands, environment and the introduction of `dotenv`, ...
84
+ - Updated information on the use of `dotenv` in the developer guid.
85
+ - Added information on the environment variables to the user guide.
86
+
87
+
88
+ ## [0.16.14] - 2025-10-24
89
+
90
+ ### Added
91
+ - 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.
92
+
93
+ ## [0.16.13] - 2025-10-23
94
+
95
+ ### Changed
96
+ - Improved unit tests for the `mixin.py` module.
97
+
98
+ ## [0.16.12] - 2025-10-21
99
+
100
+ ### Fixed
101
+ - Fixed a bug in starting the puna proxy.
102
+
103
+
104
+ ## [0.16.11] - 2025-10-21
105
+
106
+ ### Fixed
107
+ - Fixed starting the hexapod GUI by specifying a device identifier.
108
+ - Fixed registration and connection of the notification hub.
109
+ ### Added
110
+ - Added a dependency for the `dotenv` module.
111
+ ### Changed
112
+ - The PUNA GUI script now starts as a Typer app.
113
+ - The `get_port_number()` in `zmq_ser.py` now returns 0 (zero) on error.
114
+ - Improved logging for the Symétrie hexapods.
115
+ - Introduced the `VERBOSE_DEBUG` environment variable that can be used to restrict debug logging messages only when
116
+ this environment variable is set. Use this for very verbose debug logging.
117
+
118
+
119
+ ## [0.16.10] - 2025-10-03
120
+
121
+ ### Changed
122
+ - Renamed Settings for external logger from `TEXTUALOG_*` to `EXTERN_LOG_*`.
123
+ - 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.
124
+
125
+
126
+ ## [0.16.9] - 2025-10-02
127
+
128
+ ### Removed
129
+ - Removed caching from the async registry client.
130
+
131
+
132
+ ## [0.16.8] - 2025-10-02
133
+
134
+ ### Fixed
135
+ - Fixed re-registration for the async registry client.
136
+
137
+
138
+ ## [0.16.7] - 2025-10-01
139
+
140
+ ### Fixed
141
+ - Fixed re-registration problem in the service registry.
142
+ ### Changed
143
+ - Read the Settings in the `__init__.py` files where possible. Do not spread Settings in all modules of a package.
144
+
145
+
146
+ ## [0.16.6] - 2025-09-30
147
+
148
+ ### Fixed
149
+ - 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.
150
+
151
+
152
+ ## [0.16.5] - 2025-09-29
153
+
154
+ ### Changed
155
+ - The service type for the notification hub is now `NH_CS` instead of `NOTIFY_HUB`.
156
+ - 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.
157
+
158
+
159
+ ## [0.16.4] - 2025-09-29
160
+
161
+ ### Added
162
+ - Added the `bool_env()` function in `env.py`.
163
+ ### Changed
164
+ - The listeners functionality has been transferred to the notification hub and services subscribe to this notification service.
165
+ - Log messages to the `general.log` file now contain the logger name.
166
+ ### Removed
167
+ - Remove the listener notification from the configuration manager.
168
+ - Remove listener registration from the storage manager and the process manager.
169
+
170
+
171
+ ## [0.16.3] - 2025-09-19
172
+
173
+ ### Fixed
174
+ - Fixed a circular import problem in `system.py`.
175
+
176
+
177
+ ## [0.16.2] - 2025-09-19
178
+
179
+ ### Changed
180
+ - The output of startup scripts is now redirected to the log location.
181
+
182
+
183
+ ## [0.16.1] - 2025-09-19
184
+
185
+ ### Changed
186
+ - Use the `get_endpoint()` function in Proxy subclasses.
187
+ - Define constants from settings with proper defaults.
188
+ - Cleanup port numbers for core services in Settings. All core services now have a fixed port number, which can be
189
+ overwritten in the local settings file.
190
+ - When `port == 0` use the service registry to get the endpoint.
191
+
192
+
193
+ ## [0.16.0] - 2025-09-17
194
+
195
+ ### Added
196
+ - Added a `deregister` subcommand to the service registry. Usage: `cgse reg deregister <SERVICE_TYPE>`.
197
+ ### Fixed
198
+ - Fixed proper sorting of cgse subcommands.
199
+ - Fixed port numbers for core services.
200
+ ### Changed
201
+ - Proxies now handle fixed port numbers properly.
202
+ - Renamed `cgse` subcommands `registry` → `reg`, `notify` → `not`.
203
+
204
+
205
+ [Unreleased]: https://github.com/IvS-KULeuven/cgse/compare/v0.17.1...HEAD
206
+ [0.17.1]: https://github.com/IvS-KULeuven/cgse/compare/v0.17.0...v0.17.1
207
+ [0.17.0]: https://github.com/IvS-KULeuven/cgse/compare/v0.16.14...v0.17.0
208
+ [0.16.14]: https://github.com/IvS-KULeuven/cgse/compare/v0.16.13...v0.16.14
209
+ [0.16.13]: https://github.com/IvS-KULeuven/cgse/compare/v0.16.12...v0.16.13
210
+ [0.16.12]: https://github.com/IvS-KULeuven/cgse/compare/v0.16.11...v0.16.12
211
+ [0.16.11]: https://github.com/IvS-KULeuven/cgse/compare/v0.16.10...v0.16.11
212
+ [0.16.10]: https://github.com/IvS-KULeuven/cgse/compare/v0.16.9...v0.16.10
213
+ [0.16.9]: https://github.com/IvS-KULeuven/cgse/compare/v0.16.8...v0.16.9
214
+ [0.16.8]: https://github.com/IvS-KULeuven/cgse/compare/v0.16.7...v0.16.8
215
+ [0.16.7]: https://github.com/IvS-KULeuven/cgse/compare/v0.16.6...v0.16.7
216
+ [0.16.6]: https://github.com/IvS-KULeuven/cgse/compare/v0.16.5...v0.16.6
217
+ [0.16.5]: https://github.com/IvS-KULeuven/cgse/compare/v0.16.4...v0.16.5
218
+ [0.16.4]: https://github.com/IvS-KULeuven/cgse/compare/v0.16.3...v0.16.4
219
+ [0.16.3]: https://github.com/IvS-KULeuven/cgse/compare/v0.16.2...v0.16.3
220
+ [0.16.2]: https://github.com/IvS-KULeuven/cgse/compare/v0.16.1...v0.16.2
221
+ [0.16.1]: https://github.com/IvS-KULeuven/cgse/compare/v0.16.0...v0.16.1
222
+ [0.16.0]: https://github.com/IvS-KULeuven/cgse/compare/v0.15.1...v0.16.0
223
+
224
+ [#217]: https://github.com/IvS-KULeuven/cgse/pull/217
225
+ [#216]: https://github.com/IvS-KULeuven/cgse/pull/216
226
+ [#215]: https://github.com/IvS-KULeuven/cgse/pull/215
227
+ [#210]: https://github.com/IvS-KULeuven/cgse/pull/210
228
+ [#209]: https://github.com/IvS-KULeuven/cgse/pull/209
229
+ [#208]: https://github.com/IvS-KULeuven/cgse/pull/208
230
+ [#207]: https://github.com/IvS-KULeuven/cgse/pull/207
231
+ [#206]: https://github.com/IvS-KULeuven/cgse/pull/206
232
+ [#205]: https://github.com/IvS-KULeuven/cgse/pull/205
233
+ [#204]: https://github.com/IvS-KULeuven/cgse/pull/204
234
+
235
+ [#178]: https://github.com/IvS-KULeuven/cgse/pull/178
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cgse
3
- Version: 0.17.1
3
+ Version: 0.17.3
4
4
  Summary: Generic Common-EGSE: Commanding and monitoring lab equipment
5
5
  Author: IvS KU Leuven
6
6
  Maintainer-email: Rik Huygen <rik.huygen@kuleuven.be>, Sara Regibo <sara.regibo@kuleuven.be>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-common"
3
- version = "0.17.1"
3
+ version = "0.17.3"
4
4
  description = "Software framework to support hardware testing"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -68,19 +68,23 @@ markers = [
68
68
  "slow: marks tests as slow (deselect with '-m \"not slow\"')"
69
69
  ]
70
70
 
71
+ # Some of these omitted files are only temporary omitted until refactored
71
72
  [tool.coverage.run]
72
73
  omit = [
73
74
  "tests/*",
74
75
  "conftest.py",
76
+ "src/egse/ratelimit.py",
77
+ "src/egse/plugins/metrics/duckdb.py",
78
+ "src/egse/plugins/metrics/timescaledb.py",
75
79
  ]
76
80
 
77
81
  [tool.hatch.build.targets.sdist]
78
82
  exclude = [
79
- "/tests",
80
- "/pytest.ini",
81
- "/.gitignore",
82
- "/*poetry*",
83
- "/*setuptools*",
83
+ "tests",
84
+ "pytest.ini",
85
+ ".gitignore",
86
+ "*poetry*",
87
+ "*setuptools*",
84
88
  ]
85
89
 
86
90
  [tool.hatch.build.targets.wheel]
@@ -90,8 +94,12 @@ packages = ["src/egse", "src/scripts", "src/cgse_common"]
90
94
  line-length = 120
91
95
 
92
96
  [tool.ruff.lint]
97
+ select = ["F", "I"]
93
98
  extend-select = ["E", "W"]
94
99
 
100
+ [tool.ruff.lint.isort]
101
+ force-single-line = true
102
+
95
103
  [build-system]
96
104
  requires = ["hatchling"]
97
105
  build-backend = "hatchling.build"
@@ -5,7 +5,6 @@ This module contains a number of convenience functions to work with bits, bytes
5
5
  from __future__ import annotations
6
6
 
7
7
  import ctypes
8
- from collections.abc import Iterable
9
8
  from typing import Union
10
9
 
11
10
 
@@ -33,7 +32,7 @@ def extract_bits(value: int, start_position: int, num_bits: int) -> int:
33
32
  return extracted_bits
34
33
 
35
34
 
36
- def set_bit(value: int, bit) -> int:
35
+ def set_bit(value: int, bit: int) -> int:
37
36
  """
38
37
  Set bit to 1 for the given value.
39
38
 
@@ -47,7 +46,7 @@ def set_bit(value: int, bit) -> int:
47
46
  return value | (1 << bit)
48
47
 
49
48
 
50
- def set_bits(value: int, bits: tuple) -> int:
49
+ def set_bits(value: int, bits: tuple[int, int]) -> int:
51
50
  """
52
51
  Set the given bits in value to 1.
53
52
 
@@ -63,7 +62,7 @@ def set_bits(value: int, bits: tuple) -> int:
63
62
  return value
64
63
 
65
64
 
66
- def clear_bit(value: int, bit) -> int:
65
+ def clear_bit(value: int, bit: int) -> int:
67
66
  """
68
67
  Set bit to 0 for the given value.
69
68
 
@@ -77,7 +76,7 @@ def clear_bit(value: int, bit) -> int:
77
76
  return value & ~(1 << bit)
78
77
 
79
78
 
80
- def clear_bits(value: int, bits: tuple) -> int:
79
+ def clear_bits(value: int, bits: tuple[int, int]) -> int:
81
80
  """
82
81
  Set the given bits in value to 0.
83
82
 
@@ -93,7 +92,7 @@ def clear_bits(value: int, bits: tuple) -> int:
93
92
  return value
94
93
 
95
94
 
96
- def toggle_bit(value: int, bit) -> int:
95
+ def toggle_bit(value: int, bit: int) -> int:
97
96
  """
98
97
  Toggle the bit in the given value.
99
98
 
@@ -107,7 +106,7 @@ def toggle_bit(value: int, bit) -> int:
107
106
  return value ^ (1 << bit)
108
107
 
109
108
 
110
- def bit_set(value: int, bit) -> bool:
109
+ def bit_set(value: int, bit: int) -> bool:
111
110
  """
112
111
  Return True if the bit is set.
113
112
 
@@ -122,27 +121,25 @@ def bit_set(value: int, bit) -> bool:
122
121
  return value & bit_value == bit_value
123
122
 
124
123
 
125
- def bits_set(value: int, *args: Union[int, Iterable[int]]) -> bool:
124
+ def bits_set(value: int, *args: int) -> bool:
126
125
  """
127
126
  Return True if all the bits are set.
128
127
 
129
128
  Args:
130
129
  value (int): the value to check
131
130
  args: a set of indices of the bits to check, starting from 0 at the LSB.
132
- All the indices can be given as separate arguments, or they can be passed
133
- in as a list.
131
+ All the indices shall be given as separate arguments, i.e. unpack a list
132
+ if needed.
134
133
 
135
134
  Returns:
136
135
  True if all the bits are set (1).
137
136
 
138
137
  Examples:
139
- >>> assert bits_set(0b0101_0000_1011, [0, 1, 3, 8, 10])
140
- >>> assert bits_set(0b0101_0000_1011, [3, 8])
141
- >>> assert not bits_set(0b0101_0000_1011, [1, 2, 3])
138
+ >>> assert bits_set(0b0101_0000_1011, 0, 1, 3, 8, 10)
139
+ >>> assert bits_set(0b0101_0000_1011, 3, 8)
140
+ >>> assert not bits_set(0b0101_0000_1011, *[1, 2, 3])
142
141
  """
143
142
 
144
- if len(args) == 1 and isinstance(args[0], list):
145
- args = args[0]
146
143
  return all([bit_set(value, bit) for bit in args])
147
144
 
148
145
 
@@ -506,7 +503,7 @@ def crc_calc(data: list[bytes | int], start: int, len_: int) -> int:
506
503
  Reference:
507
504
  The description of the CRC calculation for RMAP is given in the ECSS document
508
505
  _Space Engineering: SpaceWire - Remote Memory Access Protocol_, section A.3
509
- on page 80 [ECSSEST5052C].
506
+ on page 80 [ECSS-E-ST-50-52C].
510
507
 
511
508
  """
512
509
  crc: int = 0
@@ -548,7 +545,7 @@ def s16(value: int) -> int:
548
545
  >>> s16(0b1000_0000_0001_0001)
549
546
  -32751
550
547
 
551
- The 'bin()' fuction will return a strange representation of this number:
548
+ The 'bin()' function will return a strange representation of this number:
552
549
 
553
550
  >>> bin(-32751)
554
551
  '-0b111111111101111'
@@ -15,8 +15,8 @@ from typing import Optional
15
15
 
16
16
  import rich
17
17
 
18
- from egse.system import get_caller_info
19
18
  from egse.log import logger
19
+ from egse.system import get_caller_info
20
20
 
21
21
 
22
22
  def static_vars(**kwargs):
@@ -316,7 +316,10 @@ def debug(func):
316
316
 
317
317
 
318
318
  def profile_func(
319
- output_file: str = None, sort_by: str = "cumulative", lines_to_print: int = None, strip_dirs: bool = False
319
+ output_file: str | None = None,
320
+ sort_by: str = "cumulative",
321
+ lines_to_print: int | None = None,
322
+ strip_dirs: bool = False,
320
323
  ) -> Callable:
321
324
  """A time profiler decorator.
322
325
 
@@ -346,7 +349,7 @@ def profile_func(
346
349
  decorator](https://gist.github.com/ekhoda/2de44cf60d29ce24ad29758ce8635b78).
347
350
 
348
351
  Inspired by and modified the profile decorator of Giampaolo Rodola:
349
- [profile decorato](http://code.activestate.com/recipes/577817-profile-decorator/).
352
+ [profile decorator](http://code.activestate.com/recipes/577817-profile-decorator/).
350
353
 
351
354
 
352
355
  """
@@ -339,76 +339,6 @@ class AsyncDeviceTransport:
339
339
  return await self.trans(command)
340
340
 
341
341
 
342
- class AsyncDeviceConnectionInterface(DeviceConnectionObservable):
343
- """Generic connection interface for all Device classes and Controllers.
344
-
345
- This interface shall be implemented in the Controllers that directly connect to the
346
- hardware, but also in the simulators to guarantee an identical interface as the controllers.
347
-
348
- This interface will be implemented in the Proxy classes through the
349
- YAML definitions. Therefore, the YAML files shall define at least
350
- the following commands: `connect`, `disconnect`, `reconnect`, `is_connected`.
351
- """
352
-
353
- def __init__(self):
354
- super().__init__()
355
-
356
- def __enter__(self):
357
- self.connect()
358
- return self
359
-
360
- def __exit__(self, exc_type, exc_val, exc_tb):
361
- self.disconnect()
362
-
363
- async def connect(self) -> None:
364
- """Connect to the device controller.
365
-
366
- Raises:
367
- ConnectionError: when the connection can not be opened.
368
- """
369
-
370
- raise NotImplementedError
371
-
372
- async def disconnect(self) -> None:
373
- """Disconnect from the device controller.
374
-
375
- Raises:
376
- ConnectionError: when the connection can not be closed.
377
- """
378
- raise NotImplementedError
379
-
380
- async def reconnect(self):
381
- """Reconnect the device controller.
382
-
383
- Raises:
384
- ConnectionError: when the device can not be reconnected for some reason.
385
- """
386
- raise NotImplementedError
387
-
388
- async def is_connected(self) -> bool:
389
- """Check if the device is connected.
390
-
391
- Returns:
392
- True if the device is connected and responds to a command, False otherwise.
393
- """
394
- raise NotImplementedError
395
-
396
-
397
- class AsyncDeviceInterface(AsyncDeviceConnectionInterface):
398
- """A generic interface for all device classes."""
399
-
400
- def is_simulator(self) -> bool:
401
- """Checks whether the device is a simulator rather than a real hardware controller.
402
-
403
- This can be useful for testing purposes or when doing actual movement simulations.
404
-
405
- Returns:
406
- True if the Device is a Simulator; False if the Device is connected to real hardware.
407
- """
408
-
409
- raise NotImplementedError
410
-
411
-
412
342
  class DeviceFactoryInterface:
413
343
  """
414
344
  Base class for creating a device factory class to access devices.
@@ -72,8 +72,8 @@ import os
72
72
  import warnings
73
73
  from pathlib import Path
74
74
 
75
- from dotenv import load_dotenv as _load_dotenv
76
75
  from dotenv import find_dotenv
76
+ from dotenv import load_dotenv as _load_dotenv
77
77
  from rich.console import Console
78
78
 
79
79
  from egse.decorators import static_vars
@@ -697,6 +697,7 @@ def env_var(**kwargs: str | int | float | bool | None):
697
697
  def main(args: list | None = None): # pragma: no cover
698
698
  import argparse
699
699
  import sys
700
+
700
701
  import rich
701
702
 
702
703
  parser = argparse.ArgumentParser()
@@ -61,3 +61,6 @@ class Abort(RuntimeError):
61
61
 
62
62
  class InitialisationError(Error):
63
63
  """Raised when an initialisation failed."""
64
+
65
+
66
+ InitializationError = InitialisationError # Alias with American spelling
@@ -18,6 +18,7 @@ __all__ = [
18
18
  "LOG_DATE_FORMAT_FULL",
19
19
  "LOG_DATE_FORMAT_CLEAN",
20
20
  "logger",
21
+ "logging", # export to guarantee that this module is imported and initialized before users use logging
21
22
  "root_logger",
22
23
  "egse_logger",
23
24
  "get_log_level_from_env",
@@ -84,7 +85,7 @@ class NonEGSEFilter(logging.Filter):
84
85
  return not record.name.startswith("egse")
85
86
 
86
87
 
87
- def get_log_level_from_env(env_var: str = "LOG_LEVEL", default: int = logging.INFO):
88
+ def get_log_level_from_env(env_var: str = "LOG_LEVEL", default: str = "INFO") -> int:
88
89
  """Read the log level from an environment variable."""
89
90
  log_level_str = os.getenv(env_var, default)
90
91
 
@@ -95,18 +96,16 @@ def get_log_level_from_env(env_var: str = "LOG_LEVEL", default: int = logging.IN
95
96
  if 10 <= log_level <= 50:
96
97
  return log_level
97
98
  else:
98
- logging.warning(
99
- f"Log level {log_level} outside standard range (10-50). Using {logging.getLevelName(default)}."
100
- )
101
- return default
99
+ logging.warning(f"Log level {log_level} outside standard range (10-50). Using {default.upper()}.")
100
+ return logging._nameToLevel[default.upper()]
102
101
 
103
102
  except ValueError:
104
103
  log_level_str = log_level_str.upper()
105
104
  try:
106
105
  return getattr(logging, log_level_str)
107
106
  except AttributeError:
108
- logging.error(f"Invalid LOG_LEVEL '{log_level_str}'. Using {logging.getLevelName(default)}.")
109
- return default
107
+ logging.error(f"Invalid LOG_LEVEL '{log_level_str}'. Using {default.upper()}.")
108
+ return logging._nameToLevel[default.upper()]
110
109
 
111
110
 
112
111
  egse_logger = logging.getLogger("egse")
@@ -145,7 +144,7 @@ if __name__ == "__main__":
145
144
  Environment variables:
146
145
  - LOG_LEVEL=debug|info|warning|critical
147
146
  - LOG_FORMAT=full|clean
148
-
147
+
149
148
  Example logging statements
150
149
  - logging level set to INFO
151
150
  - logging format set to full