cgse 2023.37.0__tar.gz → 2024.1.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 (829) hide show
  1. cgse-2024.1.3/.gitignore +20 -0
  2. cgse-2024.1.3/NOTES.md +124 -0
  3. cgse-2024.1.3/PKG-INFO +41 -0
  4. cgse-2024.1.3/README.md +27 -0
  5. cgse-2024.1.3/TODO.md +3 -0
  6. cgse-2024.1.3/bump.py +77 -0
  7. cgse-2024.1.3/libs/cgse-common/README.md +39 -0
  8. cgse-2024.1.3/libs/cgse-common/pyproject.toml +63 -0
  9. cgse-2024.1.3/libs/cgse-common/pytest.ini +11 -0
  10. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/command.py +1 -1
  11. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/config.py +7 -128
  12. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/control.py +62 -75
  13. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/decorators.py +17 -13
  14. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/device.py +2 -2
  15. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/env.py +11 -10
  16. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/exceptions.py +1 -1
  17. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/mixin.py +4 -4
  18. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/monitoring.py +2 -1
  19. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/obsid.py +0 -2
  20. cgse-2024.1.3/libs/cgse-common/src/egse/persistence.py +58 -0
  21. cgse-2024.1.3/libs/cgse-common/src/egse/plugin.py +97 -0
  22. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/process.py +13 -4
  23. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/protocol.py +5 -1
  24. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/proxy.py +2 -2
  25. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/reload.py +3 -3
  26. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/resource.py +186 -81
  27. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/settings.py +1 -1
  28. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/settings.yaml +4 -3
  29. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/setup.py +1 -1
  30. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/system.py +103 -12
  31. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/version.py +8 -4
  32. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/zmq_ser.py +28 -0
  33. cgse-2024.1.3/libs/cgse-common/tests/data/data/data-file.txt +44 -0
  34. cgse-2024.1.3/libs/cgse-common/tests/data/icons/keyboard.png +0 -0
  35. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-common/tests}/dummy.py +7 -45
  36. cgse-2024.1.3/libs/cgse-common/tests/helpers.py +108 -0
  37. {cgse-2023.37.0/src → cgse-2024.1.3/libs/cgse-common}/tests/test_bits.py +18 -0
  38. {cgse-2023.37.0/src → cgse-2024.1.3/libs/cgse-common}/tests/test_config.py +51 -49
  39. {cgse-2023.37.0/src → cgse-2024.1.3/libs/cgse-common}/tests/test_decorators.py +159 -0
  40. cgse-2024.1.3/libs/cgse-common/tests/test_resource.py +220 -0
  41. {cgse-2023.37.0/src → cgse-2024.1.3/libs/cgse-common}/tests/test_system.py +32 -13
  42. cgse-2024.1.3/libs/cgse-coordinates/README.md +1 -0
  43. cgse-2024.1.3/libs/cgse-coordinates/pyproject.toml +46 -0
  44. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/referenceFrame.py +45 -45
  45. cgse-2024.1.3/libs/cgse-core/README.md +1 -0
  46. cgse-2024.1.3/libs/cgse-core/pyproject.toml +60 -0
  47. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/confman/__init__.py +67 -22
  48. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/confman/confman_cs.py +43 -42
  49. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/logger/__init__.py +39 -21
  50. cgse-2024.1.3/libs/cgse-core/src/egse/logger/__main__.py +12 -0
  51. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/logger/log_cs.py +39 -50
  52. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/storage/__init__.py +91 -6
  53. cgse-2024.1.3/libs/cgse-core/src/egse/storage/__main__.py +3 -0
  54. cgse-2024.1.3/libs/cgse-core/src/egse/storage/persistence.py +537 -0
  55. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/storage/storage_cs.py +17 -30
  56. cgse-2024.1.3/libs/cgse-core/src/scripts/cgse.py +179 -0
  57. cgse-2024.1.3/libs/cgse-core/tests/conftest.py +204 -0
  58. cgse-2024.1.3/libs/cgse-core/tests/test_logger.py +83 -0
  59. cgse-2024.1.3/libs/cgse-gui/README.md +1 -0
  60. cgse-2024.1.3/libs/cgse-gui/pyproject.toml +37 -0
  61. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/__init__.py +9 -0
  62. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/states.py +3 -3
  63. cgse-2024.1.3/libs/cgse-gui/src/egse/gui/styles/default.qss +48 -0
  64. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/switch.py +2 -6
  65. cgse-2024.1.3/projects/generic/cgse-tools/README.md +1 -0
  66. cgse-2024.1.3/projects/generic/cgse-tools/pyproject.toml +63 -0
  67. cgse-2024.1.3/projects/generic/cgse-tools/src/egse/tools/status.py +86 -0
  68. cgse-2024.1.3/projects/generic/cgse-tools/src/scripts/cgse_plugins.py +9 -0
  69. cgse-2024.1.3/projects/generic/cgse-tools/src/scripts/cgse_service_plugins.py +10 -0
  70. cgse-2024.1.3/projects/generic/symetrie-hexapod/README.md +1 -0
  71. cgse-2024.1.3/projects/generic/symetrie-hexapod/pyproject.toml +62 -0
  72. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/__init__.py +20 -7
  73. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/dynalpha.py +0 -3
  74. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/hexapod_ui.py +0 -7
  75. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/puna_cs.py +3 -2
  76. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/puna_protocol.py +3 -3
  77. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/puna_ui.py +0 -2
  78. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda_ui.py +0 -1
  79. cgse-2024.1.3/projects/generic/symetrie-hexapod/src/scripts/cgse_service_plugins.py +27 -0
  80. cgse-2024.1.3/projects/plato/plato-fits/README.md +1 -0
  81. cgse-2024.1.3/projects/plato/plato-fits/pyproject.toml +55 -0
  82. cgse-2023.37.0/src/egse/storage/persistence.py → cgse-2024.1.3/projects/plato/plato-fits/src/egse/plugins/storage/fits.py +8 -1082
  83. cgse-2024.1.3/projects/plato/plato-hdf5/pyproject.toml +55 -0
  84. cgse-2024.1.3/projects/plato/plato-hdf5/src/egse/plugins/storage/hdf5.py +154 -0
  85. cgse-2024.1.3/projects/plato/plato-spw/pyproject.toml +50 -0
  86. {cgse-2023.37.0 → cgse-2024.1.3/projects/plato/plato-spw}/src/egse/spw.py +1 -0
  87. cgse-2024.1.3/pyproject.toml +36 -0
  88. cgse-2023.37.0/COPYING +0 -674
  89. cgse-2023.37.0/COPYING.LESSER +0 -165
  90. cgse-2023.37.0/PKG-INFO +0 -144
  91. cgse-2023.37.0/README.md +0 -71
  92. cgse-2023.37.0/pyproject.toml +0 -181
  93. cgse-2023.37.0/setup.cfg +0 -4
  94. cgse-2023.37.0/src/cgse.egg-info/PKG-INFO +0 -144
  95. cgse-2023.37.0/src/cgse.egg-info/SOURCES.txt +0 -785
  96. cgse-2023.37.0/src/cgse.egg-info/dependency_links.txt +0 -1
  97. cgse-2023.37.0/src/cgse.egg-info/entry_points.txt +0 -75
  98. cgse-2023.37.0/src/cgse.egg-info/requires.txt +0 -59
  99. cgse-2023.37.0/src/cgse.egg-info/top_level.txt +0 -2
  100. cgse-2023.37.0/src/cov_html/keybd_closed.png +0 -0
  101. cgse-2023.37.0/src/cov_html/keybd_open.png +0 -0
  102. cgse-2023.37.0/src/demos/hexapod_demo.py +0 -28
  103. cgse-2023.37.0/src/demos/stages_demo.py +0 -38
  104. cgse-2023.37.0/src/egse/__init__.py +0 -12
  105. cgse-2023.37.0/src/egse/__main__.py +0 -32
  106. cgse-2023.37.0/src/egse/aeu/aeu.py +0 -5235
  107. cgse-2023.37.0/src/egse/aeu/aeu_awg.yaml +0 -265
  108. cgse-2023.37.0/src/egse/aeu/aeu_crio.yaml +0 -273
  109. cgse-2023.37.0/src/egse/aeu/aeu_cs.py +0 -626
  110. cgse-2023.37.0/src/egse/aeu/aeu_devif.py +0 -321
  111. cgse-2023.37.0/src/egse/aeu/aeu_main_ui.py +0 -912
  112. cgse-2023.37.0/src/egse/aeu/aeu_metrics.py +0 -131
  113. cgse-2023.37.0/src/egse/aeu/aeu_protocol.py +0 -463
  114. cgse-2023.37.0/src/egse/aeu/aeu_psu.yaml +0 -204
  115. cgse-2023.37.0/src/egse/aeu/aeu_ui.py +0 -873
  116. cgse-2023.37.0/src/egse/aeu/arbdata/FccdRead.arb +0 -2
  117. cgse-2023.37.0/src/egse/aeu/arbdata/FccdRead_min_points 2.arb +0 -2
  118. cgse-2023.37.0/src/egse/aeu/arbdata/FccdRead_min_points.arb +0 -2
  119. cgse-2023.37.0/src/egse/aeu/arbdata/HeaterSync_FccdRead.arb +0 -2
  120. cgse-2023.37.0/src/egse/aeu/arbdata/HeaterSync_ccdRead25.arb +0 -2
  121. cgse-2023.37.0/src/egse/aeu/arbdata/HeaterSync_ccdRead31_25.arb +0 -2
  122. cgse-2023.37.0/src/egse/aeu/arbdata/HeaterSync_ccdRead37_50.arb +0 -2
  123. cgse-2023.37.0/src/egse/aeu/arbdata/HeaterSync_ccdRead43_75.arb +0 -2
  124. cgse-2023.37.0/src/egse/aeu/arbdata/HeaterSync_ccdRead50.arb +0 -2
  125. cgse-2023.37.0/src/egse/aeu/arbdata/Heater_FccdRead_min_points 2.arb +0 -2
  126. cgse-2023.37.0/src/egse/aeu/arbdata/Heater_FccdRead_min_points.arb +0 -2
  127. cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead25.arb +0 -2
  128. cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead25_150ms.arb +0 -2
  129. cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead31_25.arb +0 -2
  130. cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead31_25_150ms.arb +0 -2
  131. cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead37_50.arb +0 -2
  132. cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead37_50_150ms.arb +0 -2
  133. cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead43_75.arb +0 -2
  134. cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead43_75_150ms.arb +0 -2
  135. cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead50.arb +0 -2
  136. cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead50_150ms.arb +0 -2
  137. cgse-2023.37.0/src/egse/alert/__init__.py +0 -1046
  138. cgse-2023.37.0/src/egse/alert/alertman.yaml +0 -37
  139. cgse-2023.37.0/src/egse/alert/alertman_cs.py +0 -234
  140. cgse-2023.37.0/src/egse/alert/alertman_ui.py +0 -603
  141. cgse-2023.37.0/src/egse/alert/gsm/beaglebone.py +0 -138
  142. cgse-2023.37.0/src/egse/alert/gsm/beaglebone.yaml +0 -51
  143. cgse-2023.37.0/src/egse/alert/gsm/beaglebone_cs.py +0 -108
  144. cgse-2023.37.0/src/egse/alert/gsm/beaglebone_devif.py +0 -130
  145. cgse-2023.37.0/src/egse/alert/gsm/beaglebone_protocol.py +0 -48
  146. cgse-2023.37.0/src/egse/camera.py +0 -44
  147. cgse-2023.37.0/src/egse/collimator/fcul/ogse.py +0 -1077
  148. cgse-2023.37.0/src/egse/collimator/fcul/ogse.yaml +0 -14
  149. cgse-2023.37.0/src/egse/collimator/fcul/ogse_cs.py +0 -154
  150. cgse-2023.37.0/src/egse/collimator/fcul/ogse_devif.py +0 -358
  151. cgse-2023.37.0/src/egse/collimator/fcul/ogse_protocol.py +0 -129
  152. cgse-2023.37.0/src/egse/collimator/fcul/ogse_sim.py +0 -431
  153. cgse-2023.37.0/src/egse/collimator/fcul/ogse_ui.py +0 -1108
  154. cgse-2023.37.0/src/egse/confman/confman_ui.py +0 -381
  155. cgse-2023.37.0/src/egse/confman/setup_ui.py +0 -565
  156. cgse-2023.37.0/src/egse/csl/__init__.py +0 -50
  157. cgse-2023.37.0/src/egse/csl/commanding.py +0 -78
  158. cgse-2023.37.0/src/egse/csl/icons/hexapod-connected-selected.svg +0 -30
  159. cgse-2023.37.0/src/egse/csl/icons/hexapod-connected.svg +0 -30
  160. cgse-2023.37.0/src/egse/csl/icons/hexapod-homing-selected.svg +0 -68
  161. cgse-2023.37.0/src/egse/csl/icons/hexapod-homing.svg +0 -68
  162. cgse-2023.37.0/src/egse/csl/icons/hexapod-retract-selected.svg +0 -56
  163. cgse-2023.37.0/src/egse/csl/icons/hexapod-retract.svg +0 -51
  164. cgse-2023.37.0/src/egse/csl/icons/hexapod-zero-selected.svg +0 -56
  165. cgse-2023.37.0/src/egse/csl/icons/hexapod-zero.svg +0 -56
  166. cgse-2023.37.0/src/egse/csl/icons/stop.svg +0 -1
  167. cgse-2023.37.0/src/egse/csl/initialisation.py +0 -102
  168. cgse-2023.37.0/src/egse/csl/mech_pos_settings.yaml +0 -18
  169. cgse-2023.37.0/src/egse/das.py +0 -1247
  170. cgse-2023.37.0/src/egse/das.yaml +0 -7
  171. cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00000_170620_150000.yaml +0 -5
  172. cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00001_170620_151010.yaml +0 -69
  173. cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00002_170620_151020.yaml +0 -69
  174. cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00003_170620_151030.yaml +0 -69
  175. cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00004_170620_151040.yaml +0 -69
  176. cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00005_170620_151050.yaml +0 -69
  177. cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00006_170620_151060.yaml +0 -69
  178. cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00007_170620_151070.yaml +0 -69
  179. cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00008_170620_151080.yaml +0 -75
  180. cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00010_210308_083016.yaml +0 -138
  181. cgse-2023.37.0/src/egse/data/conf/SETUP_INTA_00000_170620_150000.yaml +0 -4
  182. cgse-2023.37.0/src/egse/data/conf/SETUP_SRON_00000_170620_150000.yaml +0 -4
  183. cgse-2023.37.0/src/egse/dpu/__init__.py +0 -2681
  184. cgse-2023.37.0/src/egse/dpu/ccd_ui.py +0 -508
  185. cgse-2023.37.0/src/egse/dpu/dpu.py +0 -786
  186. cgse-2023.37.0/src/egse/dpu/dpu.yaml +0 -153
  187. cgse-2023.37.0/src/egse/dpu/dpu_cs.py +0 -272
  188. cgse-2023.37.0/src/egse/dpu/dpu_ui.py +0 -668
  189. cgse-2023.37.0/src/egse/dpu/fitsgen.py +0 -2077
  190. cgse-2023.37.0/src/egse/dpu/fitsgen_test.py +0 -752
  191. cgse-2023.37.0/src/egse/dpu/fitsgen_ui.py +0 -399
  192. cgse-2023.37.0/src/egse/dpu/hdf5_model.py +0 -332
  193. cgse-2023.37.0/src/egse/dpu/hdf5_ui.py +0 -277
  194. cgse-2023.37.0/src/egse/dpu/hdf5_viewer.py +0 -506
  195. cgse-2023.37.0/src/egse/dpu/hk_ui.py +0 -468
  196. cgse-2023.37.0/src/egse/dpu_commands.py +0 -81
  197. cgse-2023.37.0/src/egse/dsi/constants.py +0 -220
  198. cgse-2023.37.0/src/egse/dsi/esl.py +0 -870
  199. cgse-2023.37.0/src/egse/dsi/rmap.py +0 -1042
  200. cgse-2023.37.0/src/egse/dsi/rmapci.py +0 -37
  201. cgse-2023.37.0/src/egse/dsi/spw.py +0 -154
  202. cgse-2023.37.0/src/egse/dsi/spw_state.py +0 -29
  203. cgse-2023.37.0/src/egse/dyndummy.py +0 -179
  204. cgse-2023.37.0/src/egse/fdir/__init__.py +0 -28
  205. cgse-2023.37.0/src/egse/fdir/fdir_manager.py +0 -85
  206. cgse-2023.37.0/src/egse/fdir/fdir_manager.yaml +0 -51
  207. cgse-2023.37.0/src/egse/fdir/fdir_manager_controller.py +0 -228
  208. cgse-2023.37.0/src/egse/fdir/fdir_manager_cs.py +0 -164
  209. cgse-2023.37.0/src/egse/fdir/fdir_manager_interface.py +0 -25
  210. cgse-2023.37.0/src/egse/fdir/fdir_remote.py +0 -73
  211. cgse-2023.37.0/src/egse/fdir/fdir_remote.yaml +0 -37
  212. cgse-2023.37.0/src/egse/fdir/fdir_remote_controller.py +0 -50
  213. cgse-2023.37.0/src/egse/fdir/fdir_remote_cs.py +0 -97
  214. cgse-2023.37.0/src/egse/fdir/fdir_remote_interface.py +0 -14
  215. cgse-2023.37.0/src/egse/fdir/fdir_remote_popup.py +0 -31
  216. cgse-2023.37.0/src/egse/fee/__init__.py +0 -114
  217. cgse-2023.37.0/src/egse/fee/f_fee_register.yaml +0 -43
  218. cgse-2023.37.0/src/egse/fee/fee.py +0 -631
  219. cgse-2023.37.0/src/egse/fee/feesim.py +0 -750
  220. cgse-2023.37.0/src/egse/fee/n_fee_hk.py +0 -761
  221. cgse-2023.37.0/src/egse/fee/nfee.py +0 -187
  222. cgse-2023.37.0/src/egse/filterwheel/__init__.py +0 -4
  223. cgse-2023.37.0/src/egse/filterwheel/eksma/__init__.py +0 -24
  224. cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc4.py +0 -661
  225. cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc4.yaml +0 -121
  226. cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc4_cs.py +0 -144
  227. cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc4_devif.py +0 -473
  228. cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc4_protocol.py +0 -81
  229. cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc4_ui.py +0 -940
  230. cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc5.py +0 -111
  231. cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc5.yaml +0 -105
  232. cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc5_controller.py +0 -307
  233. cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc5_cs.py +0 -141
  234. cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc5_interface.py +0 -65
  235. cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc5_simulator.py +0 -29
  236. cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc5_ui.py +0 -1068
  237. cgse-2023.37.0/src/egse/filterwheel/eksma/testpythonfw.py +0 -215
  238. cgse-2023.37.0/src/egse/fov/__init__.py +0 -65
  239. cgse-2023.37.0/src/egse/fov/fov_hk.py +0 -710
  240. cgse-2023.37.0/src/egse/fov/fov_ui.py +0 -861
  241. cgse-2023.37.0/src/egse/fov/fov_ui_controller.py +0 -140
  242. cgse-2023.37.0/src/egse/fov/fov_ui_model.py +0 -200
  243. cgse-2023.37.0/src/egse/fov/fov_ui_view.py +0 -345
  244. cgse-2023.37.0/src/egse/gimbal/__init__.py +0 -32
  245. cgse-2023.37.0/src/egse/gimbal/symetrie/__init__.py +0 -26
  246. cgse-2023.37.0/src/egse/gimbal/symetrie/alpha.py +0 -586
  247. cgse-2023.37.0/src/egse/gimbal/symetrie/generic_gimbal_ui.py +0 -1521
  248. cgse-2023.37.0/src/egse/gimbal/symetrie/gimbal.py +0 -877
  249. cgse-2023.37.0/src/egse/gimbal/symetrie/gimbal.yaml +0 -168
  250. cgse-2023.37.0/src/egse/gimbal/symetrie/gimbal_cs.py +0 -183
  251. cgse-2023.37.0/src/egse/gimbal/symetrie/gimbal_protocol.py +0 -135
  252. cgse-2023.37.0/src/egse/gimbal/symetrie/gimbal_ui.py +0 -361
  253. cgse-2023.37.0/src/egse/gimbal/symetrie/pmac.py +0 -1006
  254. cgse-2023.37.0/src/egse/graph.py +0 -132
  255. cgse-2023.37.0/src/egse/gui/focalplane.py +0 -1281
  256. cgse-2023.37.0/src/egse/gui/formatter.py +0 -10
  257. cgse-2023.37.0/src/egse/gui/mechanisms.py +0 -588
  258. cgse-2023.37.0/src/egse/gui/stripchart.py +0 -729
  259. cgse-2023.37.0/src/egse/h5.py +0 -274
  260. cgse-2023.37.0/src/egse/help/help_ui.py +0 -126
  261. cgse-2023.37.0/src/egse/hexapod/symetrie/pmac_regex.py +0 -83
  262. cgse-2023.37.0/src/egse/hk.py +0 -765
  263. cgse-2023.37.0/src/egse/icons/logo-puna.svg +0 -92
  264. cgse-2023.37.0/src/egse/images/big-rotation-stage.png +0 -0
  265. cgse-2023.37.0/src/egse/images/connected-100.png +0 -0
  266. cgse-2023.37.0/src/egse/images/cross.svg +0 -6
  267. cgse-2023.37.0/src/egse/images/disconnected-100.png +0 -0
  268. cgse-2023.37.0/src/egse/images/gui-icon.png +0 -0
  269. cgse-2023.37.0/src/egse/images/home.svg +0 -6
  270. cgse-2023.37.0/src/egse/images/info-icon.png +0 -0
  271. cgse-2023.37.0/src/egse/images/led-black.svg +0 -89
  272. cgse-2023.37.0/src/egse/images/led-green.svg +0 -85
  273. cgse-2023.37.0/src/egse/images/led-orange.svg +0 -85
  274. cgse-2023.37.0/src/egse/images/led-red.svg +0 -85
  275. cgse-2023.37.0/src/egse/images/load-icon.png +0 -0
  276. cgse-2023.37.0/src/egse/images/load-setup.png +0 -0
  277. cgse-2023.37.0/src/egse/images/load.png +0 -0
  278. cgse-2023.37.0/src/egse/images/pause.png +0 -0
  279. cgse-2023.37.0/src/egse/images/play-button.svg +0 -8
  280. cgse-2023.37.0/src/egse/images/play.png +0 -0
  281. cgse-2023.37.0/src/egse/images/process-status.png +0 -0
  282. cgse-2023.37.0/src/egse/images/restart.png +0 -0
  283. cgse-2023.37.0/src/egse/images/search.png +0 -0
  284. cgse-2023.37.0/src/egse/images/sma.png +0 -0
  285. cgse-2023.37.0/src/egse/images/start.png +0 -0
  286. cgse-2023.37.0/src/egse/images/stop-button.svg +0 -8
  287. cgse-2023.37.0/src/egse/images/stop.png +0 -0
  288. cgse-2023.37.0/src/egse/images/switch-off.svg +0 -48
  289. cgse-2023.37.0/src/egse/images/switch-on.svg +0 -48
  290. cgse-2023.37.0/src/egse/images/undo.png +0 -0
  291. cgse-2023.37.0/src/egse/images/update-button.svg +0 -11
  292. cgse-2023.37.0/src/egse/imageviewer/exposureselection.py +0 -475
  293. cgse-2023.37.0/src/egse/imageviewer/imageviewer.py +0 -198
  294. cgse-2023.37.0/src/egse/imageviewer/matchfocalplane.py +0 -179
  295. cgse-2023.37.0/src/egse/imageviewer/subfieldposition.py +0 -133
  296. cgse-2023.37.0/src/egse/lampcontrol/__init__.py +0 -4
  297. cgse-2023.37.0/src/egse/lampcontrol/beaglebone/beaglebone.py +0 -178
  298. cgse-2023.37.0/src/egse/lampcontrol/beaglebone/beaglebone.yaml +0 -62
  299. cgse-2023.37.0/src/egse/lampcontrol/beaglebone/beaglebone_cs.py +0 -106
  300. cgse-2023.37.0/src/egse/lampcontrol/beaglebone/beaglebone_devif.py +0 -150
  301. cgse-2023.37.0/src/egse/lampcontrol/beaglebone/beaglebone_protocol.py +0 -73
  302. cgse-2023.37.0/src/egse/lampcontrol/energetiq/__init__.py +0 -22
  303. cgse-2023.37.0/src/egse/lampcontrol/energetiq/eq99.yaml +0 -98
  304. cgse-2023.37.0/src/egse/lampcontrol/energetiq/lampEQ99.py +0 -283
  305. cgse-2023.37.0/src/egse/lampcontrol/energetiq/lampEQ99_cs.py +0 -128
  306. cgse-2023.37.0/src/egse/lampcontrol/energetiq/lampEQ99_devif.py +0 -158
  307. cgse-2023.37.0/src/egse/lampcontrol/energetiq/lampEQ99_encode_decode_errors.py +0 -73
  308. cgse-2023.37.0/src/egse/lampcontrol/energetiq/lampEQ99_protocol.py +0 -69
  309. cgse-2023.37.0/src/egse/lampcontrol/energetiq/lampEQ99_ui.py +0 -465
  310. cgse-2023.37.0/src/egse/lib/CentOS-7/EtherSpaceLink_v34_86.dylib +0 -0
  311. cgse-2023.37.0/src/egse/lib/CentOS-8/ESL-RMAP_v34_86.dylib +0 -0
  312. cgse-2023.37.0/src/egse/lib/CentOS-8/EtherSpaceLink_v34_86.dylib +0 -0
  313. cgse-2023.37.0/src/egse/lib/Debian/ESL-RMAP_v34_86.dylib +0 -0
  314. cgse-2023.37.0/src/egse/lib/Debian/EtherSpaceLink_v34_86.dylib +0 -0
  315. cgse-2023.37.0/src/egse/lib/Debian/libetherspacelink_v35_21.dylib +0 -0
  316. cgse-2023.37.0/src/egse/lib/Linux/ESL-RMAP_v34_86.dylib +0 -0
  317. cgse-2023.37.0/src/egse/lib/Linux/EtherSpaceLink_v34_86.dylib +0 -0
  318. cgse-2023.37.0/src/egse/lib/Ubuntu-20/ESL-RMAP_v34_86.dylib +0 -0
  319. cgse-2023.37.0/src/egse/lib/Ubuntu-20/EtherSpaceLink_v34_86.dylib +0 -0
  320. cgse-2023.37.0/src/egse/lib/gssw/python3-gssw_2.2.3+31f63c9f-1_all.deb +0 -0
  321. cgse-2023.37.0/src/egse/lib/macOS/ESL-RMAP_v34_86.dylib +0 -0
  322. cgse-2023.37.0/src/egse/lib/macOS/EtherSpaceLink_v34_86.dylib +0 -0
  323. cgse-2023.37.0/src/egse/lib/ximc/__pycache__/pyximc.cpython-38 2.pyc +0 -0
  324. cgse-2023.37.0/src/egse/lib/ximc/__pycache__/pyximc.cpython-38.pyc +0 -0
  325. cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/Frameworks/libbindy.dylib +0 -0
  326. cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/Frameworks/libxiwrapper.dylib +0 -0
  327. cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/Headers/ximc.h +0 -5510
  328. cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/Resources/Info.plist +0 -42
  329. cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/Resources/keyfile.sqlite +0 -0
  330. cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/libbindy.so +0 -0
  331. cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/libximc +0 -0
  332. cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/libximc.so +0 -0
  333. cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/libximc.so.7.0.0 +0 -0
  334. cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/libxiwrapper.so +0 -0
  335. cgse-2023.37.0/src/egse/lib/ximc/pyximc.py +0 -922
  336. cgse-2023.37.0/src/egse/listener.py +0 -73
  337. cgse-2023.37.0/src/egse/metrics.py +0 -98
  338. cgse-2023.37.0/src/egse/ni/alarms/__init__.py +0 -26
  339. cgse-2023.37.0/src/egse/ni/alarms/cdaq9375.py +0 -300
  340. cgse-2023.37.0/src/egse/ni/alarms/cdaq9375.yaml +0 -89
  341. cgse-2023.37.0/src/egse/ni/alarms/cdaq9375_cs.py +0 -130
  342. cgse-2023.37.0/src/egse/ni/alarms/cdaq9375_devif.py +0 -183
  343. cgse-2023.37.0/src/egse/ni/alarms/cdaq9375_protocol.py +0 -48
  344. cgse-2023.37.0/src/egse/obs_inspection.py +0 -163
  345. cgse-2023.37.0/src/egse/powermeter/ni/__init__.py +0 -38
  346. cgse-2023.37.0/src/egse/powermeter/ni/cdaq9184.py +0 -224
  347. cgse-2023.37.0/src/egse/powermeter/ni/cdaq9184.yaml +0 -73
  348. cgse-2023.37.0/src/egse/powermeter/ni/cdaq9184_cs.py +0 -130
  349. cgse-2023.37.0/src/egse/powermeter/ni/cdaq9184_devif.py +0 -201
  350. cgse-2023.37.0/src/egse/powermeter/ni/cdaq9184_protocol.py +0 -48
  351. cgse-2023.37.0/src/egse/powermeter/ni/cdaq9184_ui.py +0 -544
  352. cgse-2023.37.0/src/egse/powermeter/thorlabs/__init__.py +0 -25
  353. cgse-2023.37.0/src/egse/powermeter/thorlabs/pm100a.py +0 -380
  354. cgse-2023.37.0/src/egse/powermeter/thorlabs/pm100a.yaml +0 -132
  355. cgse-2023.37.0/src/egse/powermeter/thorlabs/pm100a_cs.py +0 -136
  356. cgse-2023.37.0/src/egse/powermeter/thorlabs/pm100a_devif.py +0 -127
  357. cgse-2023.37.0/src/egse/powermeter/thorlabs/pm100a_protocol.py +0 -80
  358. cgse-2023.37.0/src/egse/powermeter/thorlabs/pm100a_ui.py +0 -725
  359. cgse-2023.37.0/src/egse/procman/cannot_start_process_popup.py +0 -43
  360. cgse-2023.37.0/src/egse/procman/procman_ui.py +0 -2081
  361. cgse-2023.37.0/src/egse/randomwalk.py +0 -140
  362. cgse-2023.37.0/src/egse/reg.py +0 -585
  363. cgse-2023.37.0/src/egse/reprocess.py +0 -675
  364. cgse-2023.37.0/src/egse/rst.py +0 -135
  365. cgse-2023.37.0/src/egse/search.py +0 -182
  366. cgse-2023.37.0/src/egse/serialdevice.py +0 -190
  367. cgse-2023.37.0/src/egse/shutter/__init__.py +0 -0
  368. cgse-2023.37.0/src/egse/shutter/thorlabs/__init__.py +0 -19
  369. cgse-2023.37.0/src/egse/shutter/thorlabs/ksc101.py +0 -205
  370. cgse-2023.37.0/src/egse/shutter/thorlabs/ksc101.yaml +0 -105
  371. cgse-2023.37.0/src/egse/shutter/thorlabs/ksc101_cs.py +0 -136
  372. cgse-2023.37.0/src/egse/shutter/thorlabs/ksc101_devif.py +0 -201
  373. cgse-2023.37.0/src/egse/shutter/thorlabs/ksc101_protocol.py +0 -69
  374. cgse-2023.37.0/src/egse/shutter/thorlabs/ksc101_ui.py +0 -548
  375. cgse-2023.37.0/src/egse/shutter/thorlabs/sc10.py +0 -82
  376. cgse-2023.37.0/src/egse/shutter/thorlabs/sc10.yaml +0 -52
  377. cgse-2023.37.0/src/egse/shutter/thorlabs/sc10_controller.py +0 -81
  378. cgse-2023.37.0/src/egse/shutter/thorlabs/sc10_cs.py +0 -108
  379. cgse-2023.37.0/src/egse/shutter/thorlabs/sc10_interface.py +0 -25
  380. cgse-2023.37.0/src/egse/shutter/thorlabs/sc10_simulator.py +0 -30
  381. cgse-2023.37.0/src/egse/simulator.py +0 -41
  382. cgse-2023.37.0/src/egse/slack.py +0 -61
  383. cgse-2023.37.0/src/egse/socketdevice.py +0 -218
  384. cgse-2023.37.0/src/egse/sockets.py +0 -218
  385. cgse-2023.37.0/src/egse/stages/__init__.py +0 -12
  386. cgse-2023.37.0/src/egse/stages/aerotech/ensemble.py +0 -247
  387. cgse-2023.37.0/src/egse/stages/aerotech/ensemble.yaml +0 -205
  388. cgse-2023.37.0/src/egse/stages/aerotech/ensemble_controller.py +0 -275
  389. cgse-2023.37.0/src/egse/stages/aerotech/ensemble_cs.py +0 -110
  390. cgse-2023.37.0/src/egse/stages/aerotech/ensemble_interface.py +0 -132
  391. cgse-2023.37.0/src/egse/stages/aerotech/ensemble_parameters.py +0 -433
  392. cgse-2023.37.0/src/egse/stages/aerotech/ensemble_simulator.py +0 -27
  393. cgse-2023.37.0/src/egse/stages/aerotech/mgse_sim.py +0 -193
  394. cgse-2023.37.0/src/egse/stages/arun/smd3.py +0 -111
  395. cgse-2023.37.0/src/egse/stages/arun/smd3.yaml +0 -68
  396. cgse-2023.37.0/src/egse/stages/arun/smd3_controller.py +0 -472
  397. cgse-2023.37.0/src/egse/stages/arun/smd3_cs.py +0 -112
  398. cgse-2023.37.0/src/egse/stages/arun/smd3_interface.py +0 -53
  399. cgse-2023.37.0/src/egse/stages/arun/smd3_simulator.py +0 -27
  400. cgse-2023.37.0/src/egse/stages/arun/smd3_stop.py +0 -16
  401. cgse-2023.37.0/src/egse/stages/huber/__init__.py +0 -49
  402. cgse-2023.37.0/src/egse/stages/huber/smc9300.py +0 -904
  403. cgse-2023.37.0/src/egse/stages/huber/smc9300.yaml +0 -63
  404. cgse-2023.37.0/src/egse/stages/huber/smc9300_cs.py +0 -178
  405. cgse-2023.37.0/src/egse/stages/huber/smc9300_devif.py +0 -345
  406. cgse-2023.37.0/src/egse/stages/huber/smc9300_protocol.py +0 -111
  407. cgse-2023.37.0/src/egse/stages/huber/smc9300_sim.py +0 -547
  408. cgse-2023.37.0/src/egse/stages/huber/smc9300_ui.py +0 -973
  409. cgse-2023.37.0/src/egse/statemachine.py +0 -274
  410. cgse-2023.37.0/src/egse/synoptics/__init__.py +0 -412
  411. cgse-2023.37.0/src/egse/synoptics/syn.yaml +0 -9
  412. cgse-2023.37.0/src/egse/synoptics/syn_cs.py +0 -195
  413. cgse-2023.37.0/src/egse/tcs/__init__.py +0 -14
  414. cgse-2023.37.0/src/egse/tcs/tcs.py +0 -874
  415. cgse-2023.37.0/src/egse/tcs/tcs.yaml +0 -14
  416. cgse-2023.37.0/src/egse/tcs/tcs_cs.py +0 -202
  417. cgse-2023.37.0/src/egse/tcs/tcs_devif.py +0 -292
  418. cgse-2023.37.0/src/egse/tcs/tcs_protocol.py +0 -177
  419. cgse-2023.37.0/src/egse/tcs/tcs_sim.py +0 -177
  420. cgse-2023.37.0/src/egse/tcs/tcs_ui.py +0 -543
  421. cgse-2023.37.0/src/egse/tdms.py +0 -171
  422. cgse-2023.37.0/src/egse/tempcontrol/__init__.py +0 -23
  423. cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34970.py +0 -109
  424. cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34970.yaml +0 -44
  425. cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34970_cs.py +0 -116
  426. cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34970_devif.py +0 -182
  427. cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34970_protocol.py +0 -99
  428. cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34972.py +0 -111
  429. cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34972.yaml +0 -44
  430. cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34972_cs.py +0 -117
  431. cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34972_devif.py +0 -189
  432. cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34972_protocol.py +0 -101
  433. cgse-2023.37.0/src/egse/tempcontrol/beaglebone/beaglebone.py +0 -342
  434. cgse-2023.37.0/src/egse/tempcontrol/beaglebone/beaglebone.yaml +0 -110
  435. cgse-2023.37.0/src/egse/tempcontrol/beaglebone/beaglebone_cs.py +0 -117
  436. cgse-2023.37.0/src/egse/tempcontrol/beaglebone/beaglebone_protocol.py +0 -135
  437. cgse-2023.37.0/src/egse/tempcontrol/beaglebone/beaglebone_ui.py +0 -681
  438. cgse-2023.37.0/src/egse/tempcontrol/digalox/digalox.py +0 -107
  439. cgse-2023.37.0/src/egse/tempcontrol/digalox/digalox.yaml +0 -36
  440. cgse-2023.37.0/src/egse/tempcontrol/digalox/digalox_cs.py +0 -112
  441. cgse-2023.37.0/src/egse/tempcontrol/digalox/digalox_protocol.py +0 -55
  442. cgse-2023.37.0/src/egse/tempcontrol/keithley/__init__.py +0 -33
  443. cgse-2023.37.0/src/egse/tempcontrol/keithley/daq6510.py +0 -662
  444. cgse-2023.37.0/src/egse/tempcontrol/keithley/daq6510.yaml +0 -105
  445. cgse-2023.37.0/src/egse/tempcontrol/keithley/daq6510_cs.py +0 -163
  446. cgse-2023.37.0/src/egse/tempcontrol/keithley/daq6510_devif.py +0 -343
  447. cgse-2023.37.0/src/egse/tempcontrol/keithley/daq6510_protocol.py +0 -78
  448. cgse-2023.37.0/src/egse/tempcontrol/keithley/daq6510_sim.py +0 -186
  449. cgse-2023.37.0/src/egse/tempcontrol/lakeshore/__init__.py +0 -33
  450. cgse-2023.37.0/src/egse/tempcontrol/lakeshore/lsci.py +0 -361
  451. cgse-2023.37.0/src/egse/tempcontrol/lakeshore/lsci.yaml +0 -162
  452. cgse-2023.37.0/src/egse/tempcontrol/lakeshore/lsci_cs.py +0 -174
  453. cgse-2023.37.0/src/egse/tempcontrol/lakeshore/lsci_devif.py +0 -292
  454. cgse-2023.37.0/src/egse/tempcontrol/lakeshore/lsci_protocol.py +0 -73
  455. cgse-2023.37.0/src/egse/tempcontrol/lakeshore/lsci_ui.py +0 -389
  456. cgse-2023.37.0/src/egse/tempcontrol/ni/__init__.py +0 -0
  457. cgse-2023.37.0/src/egse/tempcontrol/spid/spid.py +0 -109
  458. cgse-2023.37.0/src/egse/tempcontrol/spid/spid.yaml +0 -81
  459. cgse-2023.37.0/src/egse/tempcontrol/spid/spid_controller.py +0 -279
  460. cgse-2023.37.0/src/egse/tempcontrol/spid/spid_cs.py +0 -136
  461. cgse-2023.37.0/src/egse/tempcontrol/spid/spid_protocol.py +0 -107
  462. cgse-2023.37.0/src/egse/tempcontrol/spid/spid_ui.py +0 -727
  463. cgse-2023.37.0/src/egse/tempcontrol/srs/__init__.py +0 -22
  464. cgse-2023.37.0/src/egse/tempcontrol/srs/ptc10.py +0 -875
  465. cgse-2023.37.0/src/egse/tempcontrol/srs/ptc10.yaml +0 -227
  466. cgse-2023.37.0/src/egse/tempcontrol/srs/ptc10_cs.py +0 -128
  467. cgse-2023.37.0/src/egse/tempcontrol/srs/ptc10_devif.py +0 -118
  468. cgse-2023.37.0/src/egse/tempcontrol/srs/ptc10_protocol.py +0 -42
  469. cgse-2023.37.0/src/egse/tempcontrol/srs/ptc10_ui.py +0 -906
  470. cgse-2023.37.0/src/egse/ups/apc/apc.py +0 -236
  471. cgse-2023.37.0/src/egse/ups/apc/apc.yaml +0 -45
  472. cgse-2023.37.0/src/egse/ups/apc/apc_cs.py +0 -101
  473. cgse-2023.37.0/src/egse/ups/apc/apc_protocol.py +0 -125
  474. cgse-2023.37.0/src/egse/user.yaml +0 -7
  475. cgse-2023.37.0/src/egse/vacuum/beaglebone/beaglebone.py +0 -149
  476. cgse-2023.37.0/src/egse/vacuum/beaglebone/beaglebone.yaml +0 -44
  477. cgse-2023.37.0/src/egse/vacuum/beaglebone/beaglebone_cs.py +0 -108
  478. cgse-2023.37.0/src/egse/vacuum/beaglebone/beaglebone_devif.py +0 -164
  479. cgse-2023.37.0/src/egse/vacuum/beaglebone/beaglebone_protocol.py +0 -193
  480. cgse-2023.37.0/src/egse/vacuum/beaglebone/beaglebone_ui.py +0 -638
  481. cgse-2023.37.0/src/egse/vacuum/instrutech/igm402.py +0 -92
  482. cgse-2023.37.0/src/egse/vacuum/instrutech/igm402.yaml +0 -90
  483. cgse-2023.37.0/src/egse/vacuum/instrutech/igm402_controller.py +0 -128
  484. cgse-2023.37.0/src/egse/vacuum/instrutech/igm402_cs.py +0 -108
  485. cgse-2023.37.0/src/egse/vacuum/instrutech/igm402_interface.py +0 -49
  486. cgse-2023.37.0/src/egse/vacuum/instrutech/igm402_simulator.py +0 -36
  487. cgse-2023.37.0/src/egse/vacuum/keller/kellerBus.py +0 -256
  488. cgse-2023.37.0/src/egse/vacuum/keller/leo3.py +0 -102
  489. cgse-2023.37.0/src/egse/vacuum/keller/leo3.yaml +0 -38
  490. cgse-2023.37.0/src/egse/vacuum/keller/leo3_controller.py +0 -83
  491. cgse-2023.37.0/src/egse/vacuum/keller/leo3_cs.py +0 -101
  492. cgse-2023.37.0/src/egse/vacuum/keller/leo3_interface.py +0 -33
  493. cgse-2023.37.0/src/egse/vacuum/mks/evision.py +0 -86
  494. cgse-2023.37.0/src/egse/vacuum/mks/evision.yaml +0 -75
  495. cgse-2023.37.0/src/egse/vacuum/mks/evision_cs.py +0 -101
  496. cgse-2023.37.0/src/egse/vacuum/mks/evision_devif.py +0 -316
  497. cgse-2023.37.0/src/egse/vacuum/mks/evision_interface.py +0 -60
  498. cgse-2023.37.0/src/egse/vacuum/mks/evision_simulator.py +0 -24
  499. cgse-2023.37.0/src/egse/vacuum/mks/evision_ui.py +0 -704
  500. cgse-2023.37.0/src/egse/vacuum/pfeiffer/acp40.py +0 -87
  501. cgse-2023.37.0/src/egse/vacuum/pfeiffer/acp40.yaml +0 -60
  502. cgse-2023.37.0/src/egse/vacuum/pfeiffer/acp40_controller.py +0 -117
  503. cgse-2023.37.0/src/egse/vacuum/pfeiffer/acp40_cs.py +0 -109
  504. cgse-2023.37.0/src/egse/vacuum/pfeiffer/acp40_interface.py +0 -40
  505. cgse-2023.37.0/src/egse/vacuum/pfeiffer/acp40_simulator.py +0 -39
  506. cgse-2023.37.0/src/egse/vacuum/pfeiffer/tc400.py +0 -113
  507. cgse-2023.37.0/src/egse/vacuum/pfeiffer/tc400.yaml +0 -83
  508. cgse-2023.37.0/src/egse/vacuum/pfeiffer/tc400_controller.py +0 -140
  509. cgse-2023.37.0/src/egse/vacuum/pfeiffer/tc400_cs.py +0 -109
  510. cgse-2023.37.0/src/egse/vacuum/pfeiffer/tc400_interface.py +0 -70
  511. cgse-2023.37.0/src/egse/vacuum/pfeiffer/tc400_simulator.py +0 -24
  512. cgse-2023.37.0/src/egse/vacuum/pfeiffer/tpg261.py +0 -81
  513. cgse-2023.37.0/src/egse/vacuum/pfeiffer/tpg261.yaml +0 -66
  514. cgse-2023.37.0/src/egse/vacuum/pfeiffer/tpg261_controller.py +0 -150
  515. cgse-2023.37.0/src/egse/vacuum/pfeiffer/tpg261_cs.py +0 -109
  516. cgse-2023.37.0/src/egse/vacuum/pfeiffer/tpg261_interface.py +0 -60
  517. cgse-2023.37.0/src/egse/vacuum/pfeiffer/tpg261_simulator.py +0 -24
  518. cgse-2023.37.0/src/egse/visitedpositions.py +0 -398
  519. cgse-2023.37.0/src/egse/windowing.py +0 -213
  520. cgse-2023.37.0/src/egse/zmq/__init__.py +0 -28
  521. cgse-2023.37.0/src/egse/zmq/spw.py +0 -160
  522. cgse-2023.37.0/src/scripts/alerts/cold.yaml +0 -278
  523. cgse-2023.37.0/src/scripts/alerts/example_alerts.yaml +0 -54
  524. cgse-2023.37.0/src/scripts/alerts/transition.yaml +0 -14
  525. cgse-2023.37.0/src/scripts/alerts/warm.yaml +0 -49
  526. cgse-2023.37.0/src/scripts/analyse_n_fee_hk_data.py +0 -44
  527. cgse-2023.37.0/src/scripts/check_hdf5_files.py +0 -192
  528. cgse-2023.37.0/src/scripts/check_register_sync.py +0 -47
  529. cgse-2023.37.0/src/scripts/create_hdf5_report.py +0 -295
  530. cgse-2023.37.0/src/scripts/csl_model.py +0 -436
  531. cgse-2023.37.0/src/scripts/csl_restore_setup.py +0 -230
  532. cgse-2023.37.0/src/scripts/export-grafana-dashboards.py +0 -50
  533. cgse-2023.37.0/src/scripts/fdir/cs_recovery/fdir_cs_recovery.py +0 -59
  534. cgse-2023.37.0/src/scripts/fdir/fdir_table.yaml +0 -70
  535. cgse-2023.37.0/src/scripts/fdir/fdir_test_recovery.py +0 -11
  536. cgse-2023.37.0/src/scripts/fdir/hw_recovery/fdir_agilent_hw_recovery.py +0 -73
  537. cgse-2023.37.0/src/scripts/fdir/limit_recovery/fdir_agilent_limit.py +0 -64
  538. cgse-2023.37.0/src/scripts/fdir/limit_recovery/fdir_bb_heater_limit.py +0 -61
  539. cgse-2023.37.0/src/scripts/fdir/limit_recovery/fdir_ensemble_limit.py +0 -33
  540. cgse-2023.37.0/src/scripts/fdir/limit_recovery/fdir_pressure_limit_recovery.py +0 -71
  541. cgse-2023.37.0/src/scripts/fix_csv 2.py +0 -80
  542. cgse-2023.37.0/src/scripts/fix_csv.py +0 -80
  543. cgse-2023.37.0/src/scripts/n_fee_supply_voltage_calculation 2.py +0 -92
  544. cgse-2023.37.0/src/scripts/n_fee_supply_voltage_calculation.py +0 -92
  545. cgse-2023.37.0/src/scripts/playground.py +0 -30
  546. cgse-2023.37.0/src/scripts/print_hdf5_hk_data.py +0 -68
  547. cgse-2023.37.0/src/scripts/print_register_map.py +0 -39
  548. cgse-2023.37.0/src/scripts/sron/commanding/control_heaters.py +0 -44
  549. cgse-2023.37.0/src/scripts/sron/commanding/pumpdown.py +0 -46
  550. cgse-2023.37.0/src/scripts/sron/commanding/set_pid_setpoint.py +0 -19
  551. cgse-2023.37.0/src/scripts/sron/commanding/shutdown_bbb_heaters.py +0 -10
  552. cgse-2023.37.0/src/scripts/sron/commanding/shutdown_pumps.py +0 -33
  553. cgse-2023.37.0/src/scripts/sron/tm_gen/tm_gen_agilent.py +0 -38
  554. cgse-2023.37.0/src/scripts/sron/tm_gen/tm_gen_heaters.py +0 -4
  555. cgse-2023.37.0/src/scripts/sron/tm_gen/tm_gen_spid.py +0 -13
  556. cgse-2023.37.0/src/scripts/update_operational_cgse 2.py +0 -273
  557. cgse-2023.37.0/src/scripts/update_operational_cgse.py +0 -268
  558. cgse-2023.37.0/src/scripts/update_operational_cgse_old.py +0 -273
  559. cgse-2023.37.0/src/tests/conftest.py +0 -52
  560. cgse-2023.37.0/src/tests/data/CSL/conf/SETUP_CSL_00028_201028_155259.yaml +0 -110
  561. cgse-2023.37.0/src/tests/data/CSL/conf/SETUP_CSL_00029_201028_155331.yaml +0 -111
  562. cgse-2023.37.0/src/tests/data/CSL/conf/SETUP_CSL_00030_210311_134043.yaml +0 -196
  563. cgse-2023.37.0/src/tests/data/CSL/conf/SETUP_CSL_00080_210917_105245.yaml +0 -372
  564. cgse-2023.37.0/src/tests/data/CSL/conf/SETUP_CSL_00081_210922_142259.yaml +0 -375
  565. cgse-2023.37.0/src/tests/data/CSL/conf/SETUP_CSL_00082_210923_094458.yaml +0 -377
  566. cgse-2023.37.0/src/tests/data/SRON/conf/SETUP_SRON_00027_211119_140441.yaml +0 -430
  567. cgse-2023.37.0/src/tests/data/SRON/conf/SETUP_SRON_00028_211119_160406.yaml +0 -430
  568. cgse-2023.37.0/src/tests/data/SRON/conf/SETUP_SRON_00029_211119_172918.yaml +0 -431
  569. cgse-2023.37.0/src/tests/data/SRON/conf/SETUP_SRON_00030_211122_103604.yaml +0 -432
  570. cgse-2023.37.0/src/tests/data/SRON/conf/SETUP_SRON_00031_211123_124900.yaml +0 -433
  571. cgse-2023.37.0/src/tests/data/calibration.yaml +0 -10
  572. cgse-2023.37.0/src/tests/data/conf/SETUP_CSL_00000_170620_150000.yaml +0 -5
  573. cgse-2023.37.0/src/tests/data/conf/SETUP_CSL_00001_170620_151010.yaml +0 -68
  574. cgse-2023.37.0/src/tests/data/conf/SETUP_CSL_00010_210308_083016.yaml +0 -138
  575. cgse-2023.37.0/src/tests/data/confman_settings.yaml +0 -2
  576. cgse-2023.37.0/src/tests/data/corrupt.yaml +0 -11
  577. cgse-2023.37.0/src/tests/data/empty.yaml +0 -1
  578. cgse-2023.37.0/src/tests/data/settings.yaml +0 -26
  579. cgse-2023.37.0/src/tests/data/test_setup.yaml +0 -7
  580. cgse-2023.37.0/src/tests/helper.py +0 -21
  581. cgse-2023.37.0/src/tests/itest_dpu_ui.py +0 -74
  582. cgse-2023.37.0/src/tests/scripts/dummy_cs.py +0 -17
  583. cgse-2023.37.0/src/tests/scripts/empty_process.py +0 -56
  584. cgse-2023.37.0/src/tests/scripts/void-0.py +0 -6
  585. cgse-2023.37.0/src/tests/scripts/void-1.py +0 -6
  586. cgse-2023.37.0/src/tests/test_aeu.py +0 -1185
  587. cgse-2023.37.0/src/tests/test_aeu_simulator.py +0 -2913
  588. cgse-2023.37.0/src/tests/test_automatic_dump_mode.py +0 -93
  589. cgse-2023.37.0/src/tests/test_avoidance.py +0 -45
  590. cgse-2023.37.0/src/tests/test_cm_cs.py +0 -49
  591. cgse-2023.37.0/src/tests/test_confman.py +0 -10
  592. cgse-2023.37.0/src/tests/test_confman_controller.py +0 -24
  593. cgse-2023.37.0/src/tests/test_confman_functions.py +0 -91
  594. cgse-2023.37.0/src/tests/test_constants.py +0 -23
  595. cgse-2023.37.0/src/tests/test_coordinates_plot.py +0 -29
  596. cgse-2023.37.0/src/tests/test_coordinates_serialize.py +0 -61
  597. cgse-2023.37.0/src/tests/test_daq6510.py +0 -104
  598. cgse-2023.37.0/src/tests/test_device.py +0 -21
  599. cgse-2023.37.0/src/tests/test_dpu_functions.py +0 -173
  600. cgse-2023.37.0/src/tests/test_dpu_internals.py +0 -34
  601. cgse-2023.37.0/src/tests/test_dpu_monitoring.py +0 -103
  602. cgse-2023.37.0/src/tests/test_dpu_nfee_state.py +0 -56
  603. cgse-2023.37.0/src/tests/test_dpu_send_commands.py +0 -39
  604. cgse-2023.37.0/src/tests/test_dsi.py +0 -0
  605. cgse-2023.37.0/src/tests/test_env.py +0 -93
  606. cgse-2023.37.0/src/tests/test_esl.py +0 -62
  607. cgse-2023.37.0/src/tests/test_fee.py +0 -92
  608. cgse-2023.37.0/src/tests/test_feesim.py +0 -168
  609. cgse-2023.37.0/src/tests/test_filterwheel_eksma.py +0 -46
  610. cgse-2023.37.0/src/tests/test_fixture_with_lru_cache.py +0 -59
  611. cgse-2023.37.0/src/tests/test_fov_hk__ias.py +0 -25
  612. cgse-2023.37.0/src/tests/test_gimbal.py +0 -199
  613. cgse-2023.37.0/src/tests/test_graph.py +0 -272
  614. cgse-2023.37.0/src/tests/test_hexapod.py +0 -188
  615. cgse-2023.37.0/src/tests/test_hexapod_simulator.py +0 -223
  616. cgse-2023.37.0/src/tests/test_hexapod_zonda.py +0 -659
  617. cgse-2023.37.0/src/tests/test_hk.py +0 -42
  618. cgse-2023.37.0/src/tests/test_huber.py +0 -338
  619. cgse-2023.37.0/src/tests/test_huber_dev.py +0 -281
  620. cgse-2023.37.0/src/tests/test_imports.py +0 -44
  621. cgse-2023.37.0/src/tests/test_lakeshore.py +0 -91
  622. cgse-2023.37.0/src/tests/test_lakeshore_simulator.py +0 -38
  623. cgse-2023.37.0/src/tests/test_lampEQ99_encode_decode_errors.py +0 -33
  624. cgse-2023.37.0/src/tests/test_lampcontrol_energetiq.py +0 -109
  625. cgse-2023.37.0/src/tests/test_listener.py +0 -40
  626. cgse-2023.37.0/src/tests/test_logger.py +0 -40
  627. cgse-2023.37.0/src/tests/test_metrics.py +0 -47
  628. cgse-2023.37.0/src/tests/test_mixin.py +0 -356
  629. cgse-2023.37.0/src/tests/test_n_fee.py +0 -283
  630. cgse-2023.37.0/src/tests/test_n_fee_hk.py +0 -203
  631. cgse-2023.37.0/src/tests/test_n_fee_side.py +0 -138
  632. cgse-2023.37.0/src/tests/test_obs.py +0 -11
  633. cgse-2023.37.0/src/tests/test_obsid.py +0 -124
  634. cgse-2023.37.0/src/tests/test_ogse_functions.py +0 -166
  635. cgse-2023.37.0/src/tests/test_ogse_sim.py +0 -309
  636. cgse-2023.37.0/src/tests/test_persistence.py +0 -264
  637. cgse-2023.37.0/src/tests/test_persistence_hdf5.py +0 -38
  638. cgse-2023.37.0/src/tests/test_persistence_sqlite.py +0 -69
  639. cgse-2023.37.0/src/tests/test_pmac.py +0 -139
  640. cgse-2023.37.0/src/tests/test_pmac_regex.py +0 -137
  641. cgse-2023.37.0/src/tests/test_point.py +0 -90
  642. cgse-2023.37.0/src/tests/test_process.py +0 -206
  643. cgse-2023.37.0/src/tests/test_process_status.py +0 -43
  644. cgse-2023.37.0/src/tests/test_proxy.py +0 -200
  645. cgse-2023.37.0/src/tests/test_proxy_state.py +0 -57
  646. cgse-2023.37.0/src/tests/test_puna.py +0 -199
  647. cgse-2023.37.0/src/tests/test_puna_plus.py +0 -218
  648. cgse-2023.37.0/src/tests/test_ref_model.py +0 -68
  649. cgse-2023.37.0/src/tests/test_reference_frames.py +0 -480
  650. cgse-2023.37.0/src/tests/test_refmodel.py +0 -118
  651. cgse-2023.37.0/src/tests/test_reg.py +0 -454
  652. cgse-2023.37.0/src/tests/test_reload.py +0 -94
  653. cgse-2023.37.0/src/tests/test_resource.py +0 -145
  654. cgse-2023.37.0/src/tests/test_response.py +0 -43
  655. cgse-2023.37.0/src/tests/test_rmap.py +0 -133
  656. cgse-2023.37.0/src/tests/test_search.py +0 -40
  657. cgse-2023.37.0/src/tests/test_services.py +0 -176
  658. cgse-2023.37.0/src/tests/test_settings.py +0 -152
  659. cgse-2023.37.0/src/tests/test_setup.py +0 -837
  660. cgse-2023.37.0/src/tests/test_slack.py +0 -17
  661. cgse-2023.37.0/src/tests/test_spw.py +0 -398
  662. cgse-2023.37.0/src/tests/test_stages.py +0 -198
  663. cgse-2023.37.0/src/tests/test_state.py +0 -39
  664. cgse-2023.37.0/src/tests/test_storage.py +0 -157
  665. cgse-2023.37.0/src/tests/test_storage_controller.py +0 -24
  666. cgse-2023.37.0/src/tests/test_storage_counter.py +0 -98
  667. cgse-2023.37.0/src/tests/test_storage_filename.py +0 -36
  668. cgse-2023.37.0/src/tests/test_syn_cs.py +0 -25
  669. cgse-2023.37.0/src/tests/test_tcs.py +0 -201
  670. cgse-2023.37.0/src/tests/test_tdms.py +0 -53
  671. cgse-2023.37.0/src/tests/test_thorlabs_controller.py +0 -41
  672. cgse-2023.37.0/src/tests/test_thorlabs_proxy.py +0 -32
  673. cgse-2023.37.0/src/tests/test_thorlabs_simulator.py +0 -32
  674. cgse-2023.37.0/src/tests/test_twos_complement.py +0 -12
  675. cgse-2023.37.0/src/tests/test_version.py +0 -24
  676. cgse-2023.37.0/src/tests/test_windowing.py +0 -213
  677. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/bits.py +0 -0
  678. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/observer.py +0 -0
  679. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/services.py +0 -0
  680. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/services.yaml +0 -0
  681. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/state.py +0 -0
  682. /cgse-2023.37.0/src/__init__.py → /cgse-2024.1.3/libs/cgse-common/tests/data/data/empty_data_file.txt +0 -0
  683. {cgse-2023.37.0/src → cgse-2024.1.3/libs/cgse-common}/tests/test_command.py +0 -0
  684. /cgse-2023.37.0/src/egse/collimator/__init__.py → /cgse-2024.1.3/libs/cgse-common/tests/test_control.py +0 -0
  685. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/__init__.py +0 -0
  686. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/avoidance.py +0 -0
  687. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/cslmodel.py +0 -0
  688. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/laser_tracker_to_dict.py +0 -0
  689. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/point.py +0 -0
  690. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/pyplot.py +0 -0
  691. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/refmodel.py +0 -0
  692. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/rotationMatrix.py +0 -0
  693. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/transform3d_addon.py +0 -0
  694. /cgse-2023.37.0/src/egse/collimator/fcul/__init__.py → /cgse-2024.1.3/libs/cgse-core/src/egse/confman/__main__.py +0 -0
  695. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/confman/confman.yaml +0 -0
  696. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/procman/__init__.py +0 -0
  697. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/procman/procman.yaml +0 -0
  698. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/procman/procman_cs.py +0 -0
  699. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/storage/storage.yaml +0 -0
  700. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/buttons.py +0 -0
  701. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu-cs-start.svg +0 -0
  702. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu-cs-stop.svg +0 -0
  703. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu-cs.svg +0 -0
  704. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu_cs-started.svg +0 -0
  705. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu_cs-stopped.svg +0 -0
  706. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu_cs.svg +0 -0
  707. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/alert.svg +0 -0
  708. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/arrow-double-left.png +0 -0
  709. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/arrow-double-right.png +0 -0
  710. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/arrow-up.svg +0 -0
  711. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/backward.svg +0 -0
  712. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/busy.svg +0 -0
  713. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/cleaning.svg +0 -0
  714. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/color-scheme.svg +0 -0
  715. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/cs-connected-alert.svg +0 -0
  716. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/cs-connected-disabled.svg +0 -0
  717. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/cs-connected.svg +0 -0
  718. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/cs-not-connected.svg +0 -0
  719. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/double-left-arrow.svg +0 -0
  720. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/double-right-arrow.svg +0 -0
  721. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/erase-disabled.svg +0 -0
  722. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/erase.svg +0 -0
  723. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fitsgen-start.svg +0 -0
  724. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fitsgen-stop.svg +0 -0
  725. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fitsgen.svg +0 -0
  726. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/forward.svg +0 -0
  727. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fov-hk-start.svg +0 -0
  728. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fov-hk-stop.svg +0 -0
  729. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fov-hk.svg +0 -0
  730. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/front-desk.svg +0 -0
  731. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/home-actioned.svg +0 -0
  732. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/home-disabled.svg +0 -0
  733. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/home.svg +0 -0
  734. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/info.svg +0 -0
  735. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/invalid.png +0 -0
  736. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-green.svg +0 -0
  737. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-grey.svg +0 -0
  738. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-orange.svg +0 -0
  739. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-red.svg +0 -0
  740. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-square-green.svg +0 -0
  741. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-square-grey.svg +0 -0
  742. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-square-orange.svg +0 -0
  743. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-square-red.svg +0 -0
  744. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/limit-switch-all-green.svg +0 -0
  745. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/limit-switch-all-red.svg +0 -0
  746. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/limit-switch-el+.svg +0 -0
  747. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/limit-switch-el-.svg +0 -0
  748. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/location-marker.svg +0 -0
  749. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-dpu.svg +0 -0
  750. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-gimbal.svg +0 -0
  751. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-huber.svg +0 -0
  752. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-ogse.svg +0 -0
  753. {cgse-2023.37.0/src/egse/csl → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-puna.svg +0 -0
  754. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-tcs.svg +0 -0
  755. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-zonda.svg +0 -0
  756. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/maximize.svg +0 -0
  757. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/meter.svg +0 -0
  758. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/more.svg +0 -0
  759. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/n-fee-hk-start.svg +0 -0
  760. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/n-fee-hk-stop.svg +0 -0
  761. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/n-fee-hk.svg +0 -0
  762. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/observing-off.svg +0 -0
  763. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/observing-on.svg +0 -0
  764. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/open-document-hdf5.png +0 -0
  765. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/open-document-hdf5.svg +0 -0
  766. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/ops-mode.svg +0 -0
  767. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/play-green.svg +0 -0
  768. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/plugged-disabled.svg +0 -0
  769. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/plugged.svg +0 -0
  770. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/pm_ui.svg +0 -0
  771. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/power-button-green.svg +0 -0
  772. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/power-button-red.svg +0 -0
  773. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/power-button.svg +0 -0
  774. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/radar.svg +0 -0
  775. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/radioactive.svg +0 -0
  776. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/reload.svg +0 -0
  777. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/remote-control-off.svg +0 -0
  778. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/remote-control-on.svg +0 -0
  779. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/repeat-blue.svg +0 -0
  780. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/repeat.svg +0 -0
  781. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/settings.svg +0 -0
  782. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/shrink.svg +0 -0
  783. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/shutter.svg +0 -0
  784. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/sign-off.svg +0 -0
  785. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/sign-on.svg +0 -0
  786. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/sim-mode.svg +0 -0
  787. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/small-buttons-go.svg +0 -0
  788. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/small-buttons-minus.svg +0 -0
  789. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/small-buttons-plus.svg +0 -0
  790. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/sponge.svg +0 -0
  791. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/start-button-disabled.svg +0 -0
  792. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/start-button.svg +0 -0
  793. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/stop-button-disabled.svg +0 -0
  794. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/stop-button.svg +0 -0
  795. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/stop-red.svg +0 -0
  796. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/stop.svg +0 -0
  797. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-disabled-square.svg +0 -0
  798. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-disabled.svg +0 -0
  799. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-off-square.svg +0 -0
  800. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-off.svg +0 -0
  801. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-on-square.svg +0 -0
  802. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-on.svg +0 -0
  803. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/temperature-control.svg +0 -0
  804. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/th_ui_logo.svg +0 -0
  805. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/unplugged.svg +0 -0
  806. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/unvalid.png +0 -0
  807. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/user-interface.svg +0 -0
  808. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/vacuum.svg +0 -0
  809. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/valid.png +0 -0
  810. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/zoom-to-pixel-dark.svg +0 -0
  811. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/zoom-to-pixel-white.svg +0 -0
  812. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/led.py +0 -0
  813. {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/limitswitch.py +0 -0
  814. {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/styles/dark.qss +0 -0
  815. /cgse-2023.37.0/src/egse/styles/default.qss → /cgse-2024.1.3/libs/cgse-gui/src/egse/gui/styles.qss +0 -0
  816. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/__init__.py +0 -0
  817. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/alpha.py +0 -0
  818. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/pmac.py +0 -0
  819. {cgse-2023.37.0/src/egse/gimbal → cgse-2024.1.3/projects/generic/symetrie-hexapod/src/egse/hexapod}/symetrie/pmac_regex.py +0 -0
  820. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/puna.py +0 -0
  821. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/puna.yaml +0 -0
  822. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/punaplus.py +0 -0
  823. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda.py +0 -0
  824. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda.yaml +0 -0
  825. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda_cs.py +0 -0
  826. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda_devif.py +0 -0
  827. {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda_protocol.py +0 -0
  828. /cgse-2023.37.0/src/egse/help/__init__.py → /cgse-2024.1.3/projects/plato/plato-hdf5/README.md +0 -0
  829. /cgse-2023.37.0/src/egse/powermeter/__init__.py → /cgse-2024.1.3/projects/plato/plato-spw/README.md +0 -0
@@ -0,0 +1,20 @@
1
+ .python-version
2
+ .envrc
3
+
4
+ build
5
+ dist
6
+
7
+ .DS_Store
8
+
9
+ __pycache__
10
+ .pytest_cache
11
+
12
+ .env
13
+ .venv
14
+ venv
15
+
16
+ .idea
17
+
18
+ **/*.egg-info
19
+
20
+ uv.lock
cgse-2024.1.3/NOTES.md ADDED
@@ -0,0 +1,124 @@
1
+ # The monorepo structure
2
+
3
+ Currently, the structure starts with two folders in the root, i.e. `libs` and `projects`. Where _libs_ contains library type packages like common modules, small generic gui functions, reference frames, ... and _projects_ contain packages that build upon these libraries and can be device drivers or stand-alone applications.
4
+
5
+ There is one package that I think doesn't fit into this picture, that is `cgse-core`. This is not a library, but a – collection of – service(s). So, we might want to add a third top-level folder `services` but I also fear that this again more complicates the monorepo.
6
+
7
+ Anyway, the overall structure of the monorepo is depicted below:
8
+
9
+ ```
10
+ cgse/
11
+ │── pyproject.toml
12
+ ├── libs/
13
+ │ ├── cgse-common/
14
+ │ │ ├── src/
15
+ │ │ ├── tests/
16
+ │ │ └── pyproject.toml
17
+ │ ├── cgse-core/
18
+ │ ├── cgse-coordinates/
19
+ │ └── cgse-gui/
20
+
21
+ └── projects/
22
+ ├── generic/
23
+ │ ├── cgse-tools/
24
+ │ └── symetrie-hexapod/
25
+ └── plato/
26
+ ├── plato-spw/
27
+ ├── plato-fits/
28
+ └── plato-hdf5/
29
+ ```
30
+
31
+ We will discuss the structure of individual packages in a later section, for now let's look at the root of the monorepo. The root also contains a `pyproject.toml` file although this is not a package that will be build and published. The purpose of this root `pyproject.toml` file is to define properties that are used to build the full repo or any individual package in it. In the root folder we will also put some maintenance/management scripts to help you maintain and bump versions of the projects, build and publish all projects, create and maintain a changelog etc.
32
+
33
+ # Package Structure
34
+
35
+ We try to keep the package structure as standard as possible and consistent over the whole monorepo. The structure currently is as follows (example from cgse-common):
36
+
37
+ ```
38
+ ├── README.md
39
+ ├── dist
40
+ │ ├── cgse_common-2023.1.4-py3-none-any.whl
41
+ │ └── cgse_common-2023.1.4.tar.gz
42
+ ├── pyproject.toml
43
+ ├── src/
44
+ │ └── egse/ # namespace
45
+ │ ├── modules (*.py)
46
+ │ └── <sub-packages>/
47
+ └── tests/
48
+ ├── data
49
+ └── pytest modules (test_*.py)
50
+ ```
51
+
52
+ Note that each library or project is a standalone Poetry package with its own `pyproject.toml` file, source code and unit tests.
53
+
54
+ # Package versions
55
+
56
+ All packages in the monorepo will have the same version. This can be maintained with the `bump.py` script. This script will read the version from the `pyproject.toml` file at the root of the monorepo and propagate the version to all libs and projects in the monorepo. Note that you –for now– will have to update the version number in the `pyproject.toml` file located at the monorepo root folder manually.
57
+
58
+ # Use of Poetry (DEPRECATED: see below)
59
+
60
+ I have now Poetry configurations for all `libs` in this monorepo. So, how do we use Poetry in this project?
61
+
62
+ First thing to understand, Poetry is a development and dependency management tool. So, if you are installing the different packages in this repo from PyPI there is no need to use Poetry. The package will be installed in your current virtual environment.
63
+
64
+ You can choose how you want to manage your virtual environments for each of the packages in the monorepo. I personally use `pyenv` to manage my virtual environments and I disable the virtual environment that would normally be used by Poetry.
65
+
66
+ > Explain how to use `pyenv` for your virtual environments
67
+
68
+ The following command starts a new sub-shell and activates the virtual environment:
69
+ ```
70
+ $ poetry shell
71
+ ```
72
+
73
+ If you do not want to start a new shell, but just want to execute a command in the virtual environment, use the `poetry run` command, e.g.
74
+ ```
75
+ $ poetry run pytest tests/test_bits.py
76
+ ```
77
+ Or
78
+ ```
79
+ $ poetry run python -m egse.monitoring localhost 6001
80
+ ```
81
+
82
+ # Build and Publish
83
+
84
+ Building a source distribution and a wheel for your project is as easy as running the following command:
85
+ ```
86
+ $ pipx run build
87
+ * Creating isolated environment: venv+pip...
88
+ * Installing packages in isolated environment:
89
+ - hatchling
90
+ * Getting build dependencies for sdist...
91
+ * Building sdist...
92
+ * Building wheel from sdist
93
+ * Creating isolated environment: venv+pip...
94
+ * Installing packages in isolated environment:
95
+ - hatchling
96
+ * Getting build dependencies for wheel...
97
+ * Building wheel...
98
+ ```
99
+ Make sure you have updated/bumped the version number in the `pyproject.toml`. Publishing your package on PyPI needs some more preparation, since you need to prepare a token that allows you to upload your project to PyPI. Publishing itself is a peace of cake when the credentials have been configured correctly. Poetry will also automatically take the latest version to publish.
100
+ ```
101
+ $ pipx run twine publish
102
+ Publishing cgse-common (2023.1.5) to PyPI
103
+ - Uploading cgse_common-2023.1.5-py3-none-any.whl 100%
104
+ - Uploading cgse_common-2023.1.5.tar.gz 100%
105
+ ```
106
+
107
+ # The egse namespace
108
+
109
+ You might have notices that all packages in this monorepo have a `src/egse` folder in which they maintain their source code, preferably in a sub-package. Note that the `egse` folder is not a normal Python package but a namespace. There are two important facts you need to remember about namespaces:
110
+
111
+ 1. A namespace package **does not** contain an `__init__.py` module, never, in any of the packages in this or any other repo. If you place an `__init__.py` module in one of your `egse` package folders, you will break the namespace and therefore also the external contributions in plugins etc.
112
+ 2. A namespace package is spread out over several directories that can reside in different packages as distributed by PyPI.
113
+
114
+ # Questions
115
+
116
+ What is the meaning of the common egse root folder in this monorepo and when the packages are installed through PyPI?
117
+
118
+ * do we still need `get_common_egse_root()`
119
+
120
+ NO, this has nothing to do with a generic common egse and also the concept of a project root folder doesn't really work for PyPI projects, especially in a monorepo. What might work in this specific case is to use the egse namespace as a root and find folders and files in the folders that make up the namespace.
121
+
122
+ * what is the Projects root directory?
123
+
124
+ This folder basically contains device implementations and plugins for e.g. the storage manager.
cgse-2024.1.3/PKG-INFO ADDED
@@ -0,0 +1,41 @@
1
+ Metadata-Version: 2.4
2
+ Name: cgse
3
+ Version: 2024.1.3
4
+ Summary: Generic Common-EGSE: Commanding and monitoring lab equipment
5
+ Author-email: Rik Huygen <rik.huygen@kuleuven.be>, Sara Regibo <sara.regibo@kuleuven.be>
6
+ License: MIT
7
+ Requires-Python: >=3.9
8
+ Requires-Dist: rich>=13.9.4
9
+ Requires-Dist: tomlkit
10
+ Provides-Extra: dev
11
+ Requires-Dist: pipdeptree; extra == 'dev'
12
+ Requires-Dist: ruff; extra == 'dev'
13
+ Description-Content-Type: text/markdown
14
+
15
+ # Common-EGSE
16
+
17
+ This is a monorepo with all the code and documentation for the common egse framework.
18
+
19
+ This repository is organized in two main areas, `libs` and `projects`. The `libs` folder contains library type
20
+ packages like common modules, small generic gui functions, reference frames, etc. and `projects` contains packages
21
+ that build upon these libraries and can be device drivers or stand-alone applications.
22
+
23
+ In the `libs` folder, we have the following packages:
24
+
25
+ - `cgse-common`: Common modules and functions for the EGSE framework.
26
+ - `cgse-coordinates`: Coordinate systems and transformations.
27
+ - `cgse-core`: Core services for the EGSE framework.
28
+ - `cgse-gui`: GUI functions for the EGSE framework.
29
+
30
+ The `projects` folder contains generic and project specific packages.
31
+
32
+ We have the following generic packages:
33
+
34
+ - `cgse-tools`: Tools for the `cgse` command.
35
+ - `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.
36
+
37
+ We have the following project specific packages:
38
+
39
+ - `plato-spw`: The PLATO SpaceWire drivers.
40
+ - `plato-fits`: The PLATO FITS plugins.
41
+ - `plato-hdf5`: The PLATO HDF5 plugins.
@@ -0,0 +1,27 @@
1
+ # Common-EGSE
2
+
3
+ This is a monorepo with all the code and documentation for the common egse framework.
4
+
5
+ This repository is organized in two main areas, `libs` and `projects`. The `libs` folder contains library type
6
+ packages like common modules, small generic gui functions, reference frames, etc. and `projects` contains packages
7
+ that build upon these libraries and can be device drivers or stand-alone applications.
8
+
9
+ In the `libs` folder, we have the following packages:
10
+
11
+ - `cgse-common`: Common modules and functions for the EGSE framework.
12
+ - `cgse-coordinates`: Coordinate systems and transformations.
13
+ - `cgse-core`: Core services for the EGSE framework.
14
+ - `cgse-gui`: GUI functions for the EGSE framework.
15
+
16
+ The `projects` folder contains generic and project specific packages.
17
+
18
+ We have the following generic packages:
19
+
20
+ - `cgse-tools`: Tools for the `cgse` command.
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
+
23
+ We have the following project specific packages:
24
+
25
+ - `plato-spw`: The PLATO SpaceWire drivers.
26
+ - `plato-fits`: The PLATO FITS plugins.
27
+ - `plato-hdf5`: The PLATO HDF5 plugins.
cgse-2024.1.3/TODO.md ADDED
@@ -0,0 +1,3 @@
1
+ # TODO
2
+
3
+ * [x] we will use one global version for the monorepo -> create a bump script that updates all version numbers from the master pyproject.toml
cgse-2024.1.3/bump.py ADDED
@@ -0,0 +1,77 @@
1
+ """
2
+ This script bumps the version of all libs and projects in this monorepo to the version that
3
+ is currently in the `pyproject.toml` file in the root folder of the monorepo.
4
+
5
+ Usage:
6
+ $ python bump.py
7
+
8
+ Note:
9
+ You are expected to be in the minimal virtual environment associated with this monorepo,
10
+ being a `pyenv` or Poetry environment, or your global environment shall include the tomlkit
11
+ and the rich package.
12
+
13
+ """
14
+
15
+ import os
16
+ import pathlib
17
+ import subprocess
18
+
19
+ import rich
20
+ import tomlkit
21
+ import tomlkit.exceptions
22
+
23
+
24
+ def get_master_version(master_pyproject_path):
25
+ """Returns the version number of the master project, i.e. cgse."""
26
+
27
+ with open(master_pyproject_path, 'r') as file:
28
+ data = tomlkit.parse(file.read())
29
+
30
+ return data['project']['version']
31
+
32
+
33
+ def update_project_version(project_dir, new_version):
34
+ """Updates the version of the subproject."""
35
+
36
+ os.chdir(project_dir)
37
+
38
+ # Check if the Poetry version is defined, otherwise print a message.
39
+
40
+ with open("pyproject.toml", 'r') as file:
41
+ data = tomlkit.parse(file.read())
42
+
43
+ try:
44
+ data['project']['version'] = new_version
45
+
46
+ with open('pyproject.toml', 'w') as file:
47
+ tomlkit.dump(data, file)
48
+
49
+ except tomlkit.exceptions.NonExistentKey:
50
+ rich.print(f"[red]\[project.version] is not defined in pyproject.toml in {project_dir}[/]")
51
+
52
+
53
+ def update_all_projects_in_monorepo(root_dir):
54
+ """Updates all pyproject.toml files with the master version number."""
55
+
56
+ master_version = get_master_version(os.path.join(root_dir, 'pyproject.toml'))
57
+
58
+ rich.print(f"Projects will be bumped to version {master_version}")
59
+
60
+ for subdir, dirs, files in os.walk(root_dir):
61
+ if subdir == '.' or subdir == '..' or subdir == '__pycache__' or ".venv" in subdir or ".git" in subdir:
62
+ continue
63
+ if 'pyproject.toml' in files and subdir != str(root_dir): # Skip the master pyproject.toml
64
+ print(f"Updating version for project in {subdir}")
65
+ update_project_version(subdir, master_version)
66
+
67
+
68
+ if __name__ == "__main__":
69
+
70
+ monorepo_root = pathlib.Path(__file__).parent.resolve()
71
+
72
+ cwd = os.getcwd()
73
+ os.chdir(monorepo_root)
74
+
75
+ update_all_projects_in_monorepo(monorepo_root)
76
+
77
+ os.chdir(cwd)
@@ -0,0 +1,39 @@
1
+
2
+ ![PyPI - Version](https://img.shields.io/pypi/v/cgse-common)
3
+ ![Supported OS](https://img.shields.io/badge/Supported%20OS-Linux%20%7C%20macOS-blue)
4
+ ![Python Version from PEP 621 TOML](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2FIvS-KULeuven%2Fcgse%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)
5
+ ![PyPI - Wheel](https://img.shields.io/pypi/wheel/cgse-common)
6
+
7
+ # Generic Functionality used in the Common-EGSE
8
+
9
+ This package 'cgse-common' contains functionality that is used by all `cgse` sub-packages, but it is designed to be a stand-alone generic package that can be used also in any other project.
10
+
11
+
12
+ ## Installation
13
+
14
+ Install the package using pip:
15
+
16
+ $ pip install cgse-common
17
+
18
+
19
+ ## Usage
20
+
21
+ All functionality resides in the package `egse`. As an example, if you need a standard way to format your timestamp, use the `format_datetime()` function from `egse.system`:
22
+
23
+ >>> from egse.system import format_datetime
24
+ >>> print(format_datetime())
25
+ 2023-10-10T08:41:51.937+0000
26
+
27
+
28
+ ## Included Functionality
29
+
30
+ A non-comprehensive list of available functionality:
31
+
32
+ ### Functionality of General Use
33
+
34
+ * **egse.bits**: contains a number of convenience functions to work with bits, bytes and integers
35
+ * **egse.decorators**: a collection of useful decorator functions
36
+ * **egse.reload**: a slightly better approach to reloading modules and function than the standard importlib.reload() function.
37
+ * **egse.resource**: provides convenience functions to use resources in your code without the need to specify an absolute path
38
+ * **egse.system**: defines convenience functions that provide information on system specific functionality like, file system interactions, timing, operating system interactions, etc.
39
+ * **egse.version**: functionality to retrieve the package version information
@@ -0,0 +1,63 @@
1
+ [project]
2
+ name = "cgse-common"
3
+ version = "2024.1.3"
4
+ description = "Software framework to support hardware testing"
5
+ authors = [
6
+ {name = "IVS KU Leuven"}
7
+ ]
8
+ maintainers = [
9
+ {name = "Rik Huygen", email = "rik.huygen@kuleuven.be"},
10
+ {name = "Sara Regibo", email = "sara.regibo@kuleuven.be"}
11
+ ]
12
+ readme = {"file" = "README.md", "content-type" = "text/markdown"}
13
+ requires-python = ">=3.9"
14
+ license = "MIT"
15
+ keywords = [
16
+ "CGSE",
17
+ "Common-EGSE",
18
+ "hardware testing",
19
+ "software framework"
20
+ ]
21
+ dependencies = [
22
+ "click",
23
+ "deepdiff",
24
+ "distro",
25
+ "gitpython",
26
+ "numpy == 1.22.4", # only used in setup
27
+ "pandas",
28
+ "pip>=24.3.1", # only used in setup
29
+ "prometheus-client",
30
+ "psutil",
31
+ "pyyaml",
32
+ "pyzmq == 23.2.1",
33
+ "rich",
34
+ ]
35
+
36
+ [project.optional-dependencies]
37
+ test = ["pytest", "pytest-mock", "pytest-cov"]
38
+ dev = ["pipdeptree", "tomlkit", "ruff"]
39
+
40
+ [project.entry-points."cgse.version"]
41
+ cgse-common = 'egse'
42
+
43
+ [tool.hatch.build.targets.sdist]
44
+ exclude = [
45
+ "/tests",
46
+ "/pytest.ini",
47
+ "/.gitignore",
48
+ "/*poetry*",
49
+ "/*setuptools*",
50
+ ]
51
+
52
+ [tool.hatch.build.targets.wheel]
53
+ packages = ["src/egse"]
54
+
55
+ [tool.ruff]
56
+ line-length = 120
57
+
58
+ [tool.ruff.lint]
59
+ extend-select = ["E501"]
60
+
61
+ [build-system]
62
+ requires = ["hatchling"]
63
+ build-backend = "hatchling.build"
@@ -0,0 +1,11 @@
1
+ # Configuration file for pytest
2
+
3
+ [pytest]
4
+ # report all + passed (incl. output)
5
+ addopts = -rapP
6
+ log_cli = 0
7
+ log_level = INFO
8
+ # log_format = %(asctime)s %(levelname)s %(message)s
9
+ log_format = %(asctime)s.%(msecs)03d %(levelname)-8s %(lineno)-6d %(filename)-20s %(funcName)10s: %(message)s
10
+ # log_date_format = %Y-%m-%d %H:%M:%S
11
+ markers = slow: marks tests as slow (deselect with '-m "not slow"')
@@ -18,7 +18,7 @@ interpreted differently. See further: How to format device command strings.
18
18
 
19
19
  the base class for commands. This class contains the definition of the command
20
20
  and provides methods to parse and check arguments. The Command can be 'called'
21
- or 'executed' in which case a number of actons are performed based on the
21
+ or 'executed' in which case a number of actions are performed based on the
22
22
  provided arguments.
23
23
 
24
24
  **CommandExecution**
@@ -4,13 +4,9 @@ and to find paths and resources.
4
4
  """
5
5
  from __future__ import annotations
6
6
 
7
- import errno
8
7
  import fnmatch
9
8
  import logging
10
9
  import os
11
- from functools import lru_cache
12
- from os.path import exists
13
- from os.path import join
14
10
  from pathlib import Path
15
11
  from pathlib import PurePath
16
12
  from typing import List
@@ -18,10 +14,8 @@ from typing import Optional
18
14
  from typing import Tuple
19
15
  from typing import Union
20
16
 
21
- import git
22
-
23
- HERE = Path(__file__).parent.resolve()
24
- MODULE_LOGGER = logging.getLogger(__name__)
17
+ _HERE = Path(__file__).parent.resolve()
18
+ _LOGGER = logging.getLogger(__name__)
25
19
 
26
20
 
27
21
  def find_first_occurrence_of_dir(pattern: str, root: Path | str = None) -> Optional[Path]:
@@ -43,7 +37,7 @@ def find_first_occurrence_of_dir(pattern: str, root: Path | str = None) -> Optio
43
37
  """
44
38
  import fnmatch
45
39
 
46
- root = Path(root).resolve() if root else HERE
40
+ root = Path(root).resolve() if root else _HERE
47
41
  if not root.is_dir():
48
42
  root = root.parent
49
43
 
@@ -171,7 +165,7 @@ def find_files(pattern: str, root: str = None, in_dir: str = None):
171
165
 
172
166
  def find_file(name: str, root: str = None, in_dir: str = None) -> Optional[Path]:
173
167
  """
174
- Find the path to the given file starting from the root directory of the Common-EGSE
168
+ Find the path to the given file starting from the root directory of the
175
169
  distribution.
176
170
 
177
171
  Note that if there are more files with the given name found in the distribution,
@@ -239,122 +233,6 @@ def find_root(
239
233
  return Path(default) if default is not None else None
240
234
 
241
235
 
242
- @lru_cache(maxsize=16)
243
- def get_common_egse_root(path: Union[str, PurePath] = None) -> Optional[PurePath]:
244
- """
245
- Returns the absolute path to the installation directory for the Common-EGSE.
246
-
247
- The algorithm first tries to determine the path from the environment variable
248
- ``PLATO_COMMON_EGSE_PATH``. If this environment variable doesn't exist, the algorithm
249
- tries to determine the path automatically from (1) the git root if it is a git repository,
250
- or (2) from the location of this module assuming the installation is done from the
251
- GitHub distribution.
252
-
253
- When the optional argument ``path`` is given, that directory will be used to start the
254
- search for the root folder.
255
-
256
- At this moment the algorithm does not cache the ``egse_path`` in order to speed up
257
- the successive calls to this function.
258
-
259
- Args:
260
- path (str or Path): a directory as a Path or str [optional]
261
-
262
- Returns:
263
- Path: the absolute path to the Common-EGSE installation directory or None
264
- """
265
- _TEST_NAMES = ("pyproject.toml", "setup.py")
266
- if path is not None:
267
- return find_root(path, tests=_TEST_NAMES)
268
-
269
- egse_path: Union[str, PurePath, None] = os.getenv("PLATO_COMMON_EGSE_PATH")
270
-
271
- if egse_path is None:
272
-
273
- # The root of the plato-common-egse installation shall be determined from the location
274
- # of this config module using git commands to find the git root folder.
275
- # This assumes the user has installed from git/GitHub (which is not always true)!
276
- #
277
- # Alternatively, the root directory can be determined from the location of this module
278
- # by going back in the directory structure until the ``setup.py`` module is found.
279
-
280
- _THIS_FILE_PATH = Path(__file__).resolve()
281
- _THIS_FILE_LOCATION = _THIS_FILE_PATH.parent
282
-
283
- try:
284
- git_repo = git.Repo(_THIS_FILE_PATH, search_parent_directories=True)
285
- git_root = git_repo.git.rev_parse("--show-toplevel")
286
- egse_path = git_root
287
- except (git.exc.InvalidGitRepositoryError, git.exc.NoSuchPathError):
288
- MODULE_LOGGER.info("no git repository found, assuming installation from distribution.")
289
- egse_path = find_root(_THIS_FILE_LOCATION, tests=_TEST_NAMES)
290
-
291
- MODULE_LOGGER.debug(f"Common-EGSE location is automatically determined: {egse_path}.")
292
-
293
- else:
294
- MODULE_LOGGER.debug(
295
- f"Common-EGSE location determined from environment variable "
296
- f"PLATO_COMMON_EGSE_PATH: {egse_path}"
297
- )
298
-
299
- return Path(egse_path)
300
-
301
-
302
- def get_resource_dirs(root_dir: Union[str, PurePath] = None) -> List[Path]:
303
- """
304
- Define directories that contain resources like images, icons, and data files.
305
-
306
- Resource directories can have the following names: `resources`, `data`, `icons`, or `images`.
307
- This function checks if any of the resource directories exist in the project root directory,
308
- in the `root_dir` that is given as an argument or in the `src/egse` sub-folder.
309
-
310
- So, the directories that are searched for the resource folders are:
311
-
312
- * `root_dir` or the project's root directory
313
- * the `src/egse` sub-folder of one of the above
314
-
315
- For all existing directories the function returns the absolute path.
316
-
317
- Args:
318
- root_dir (str): the directory to search for resource folders
319
-
320
- Returns:
321
- a list of absolute Paths.
322
- """
323
- project_dir = Path(root_dir).resolve() if root_dir else get_common_egse_root()
324
- result = []
325
- for dir_ in ["resources", "data", "icons", "images"]:
326
- if (project_dir / dir_).is_dir():
327
- result.append(Path(project_dir, dir_).resolve())
328
- if (project_dir / "src" / "egse" / dir_).is_dir():
329
- result.append(Path(project_dir, "src", "egse", dir_).resolve())
330
- return result
331
-
332
-
333
- def get_resource_path(name: str, resource_root_dir: Union[str, PurePath] = None) -> PurePath:
334
- """
335
- Searches for a data file (resource) with the given name.
336
-
337
- When `resource_root_dir` is not given, the search for resources will start at the root
338
- folder of the project (using the function `get_common_egse_root()`). Any other root
339
- directory can be given, e.g. if you want to start the search from the location of your
340
- source code file, use `Path(__file__).parent` as the `resource_root_dir` argument.
341
-
342
- Args:
343
- name (str): the name of the resource that is requested
344
- resource_root_dir (str): the root directory where the search for resources should be started
345
-
346
- Returns:
347
- the absolute path of the data file with the given name. The first name that matches
348
- is returned. If no file with the given name or path exists, a FileNotFoundError is raised.
349
-
350
- """
351
- for resource_dir in get_resource_dirs(resource_root_dir):
352
- resource_path = join(resource_dir, name)
353
- if exists(resource_path):
354
- return Path(resource_path).absolute()
355
- raise FileNotFoundError(errno.ENOENT, f"Could not locate resource '{name}'")
356
-
357
-
358
236
  def set_logger_levels(logger_levels: List[Tuple] = None):
359
237
  """
360
238
  Set the logging level for the given loggers.
@@ -368,7 +246,8 @@ def set_logger_levels(logger_levels: List[Tuple] = None):
368
246
 
369
247
 
370
248
  class WorkingDirectory:
371
- """WorkingDirectory is a context manager to temporarily change the working directory while
249
+ """
250
+ WorkingDirectory is a context manager to temporarily change the working directory while
372
251
  executing some code.
373
252
 
374
253
  This context manager has a property `path` which returns the absolute path of the
@@ -402,7 +281,7 @@ class WorkingDirectory:
402
281
  try:
403
282
  os.chdir(self._current_dir)
404
283
  except OSError as exc:
405
- MODULE_LOGGER.warning(f"Change back to previous directory failed: {exc}")
284
+ _LOGGER.warning(f"Change back to previous directory failed: {exc}")
406
285
 
407
286
  @property
408
287
  def path(self):