cgse 2023.38.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 (824) 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.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/command.py +1 -1
  11. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/config.py +7 -128
  12. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/control.py +62 -75
  13. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/decorators.py +17 -13
  14. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/device.py +2 -2
  15. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/env.py +11 -10
  16. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/exceptions.py +1 -1
  17. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/mixin.py +4 -4
  18. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/monitoring.py +2 -1
  19. {cgse-2023.38.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.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/process.py +13 -4
  23. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/protocol.py +5 -1
  24. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/proxy.py +2 -2
  25. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/reload.py +3 -3
  26. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/resource.py +186 -81
  27. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/settings.py +1 -1
  28. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/settings.yaml +4 -3
  29. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/setup.py +1 -1
  30. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/system.py +103 -12
  31. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/version.py +8 -4
  32. {cgse-2023.38.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.38.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.38.0/src → cgse-2024.1.3/libs/cgse-common}/tests/test_bits.py +18 -0
  38. {cgse-2023.38.0/src → cgse-2024.1.3/libs/cgse-common}/tests/test_config.py +51 -49
  39. {cgse-2023.38.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.38.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.38.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.38.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/confman/__init__.py +67 -22
  48. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/confman/confman_cs.py +43 -42
  49. {cgse-2023.38.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.38.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/logger/log_cs.py +39 -50
  52. {cgse-2023.38.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.38.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.38.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/__init__.py +9 -0
  62. {cgse-2023.38.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.38.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.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/__init__.py +20 -7
  73. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/dynalpha.py +0 -3
  74. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/hexapod_ui.py +0 -7
  75. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/puna_cs.py +3 -2
  76. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/puna_protocol.py +3 -3
  77. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/puna_ui.py +0 -2
  78. {cgse-2023.38.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.38.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.38.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.38.0/COPYING +0 -674
  89. cgse-2023.38.0/COPYING.LESSER +0 -165
  90. cgse-2023.38.0/PKG-INFO +0 -144
  91. cgse-2023.38.0/README.md +0 -71
  92. cgse-2023.38.0/pyproject.toml +0 -181
  93. cgse-2023.38.0/setup.cfg +0 -4
  94. cgse-2023.38.0/src/cgse.egg-info/PKG-INFO +0 -144
  95. cgse-2023.38.0/src/cgse.egg-info/SOURCES.txt +0 -780
  96. cgse-2023.38.0/src/cgse.egg-info/dependency_links.txt +0 -1
  97. cgse-2023.38.0/src/cgse.egg-info/entry_points.txt +0 -75
  98. cgse-2023.38.0/src/cgse.egg-info/requires.txt +0 -59
  99. cgse-2023.38.0/src/cgse.egg-info/top_level.txt +0 -2
  100. cgse-2023.38.0/src/cov_html/keybd_closed.png +0 -0
  101. cgse-2023.38.0/src/cov_html/keybd_open.png +0 -0
  102. cgse-2023.38.0/src/demos/hexapod_demo.py +0 -28
  103. cgse-2023.38.0/src/demos/stages_demo.py +0 -38
  104. cgse-2023.38.0/src/egse/__init__.py +0 -12
  105. cgse-2023.38.0/src/egse/__main__.py +0 -32
  106. cgse-2023.38.0/src/egse/aeu/aeu.py +0 -5235
  107. cgse-2023.38.0/src/egse/aeu/aeu_awg.yaml +0 -265
  108. cgse-2023.38.0/src/egse/aeu/aeu_crio.yaml +0 -273
  109. cgse-2023.38.0/src/egse/aeu/aeu_cs.py +0 -626
  110. cgse-2023.38.0/src/egse/aeu/aeu_devif.py +0 -321
  111. cgse-2023.38.0/src/egse/aeu/aeu_main_ui.py +0 -912
  112. cgse-2023.38.0/src/egse/aeu/aeu_metrics.py +0 -131
  113. cgse-2023.38.0/src/egse/aeu/aeu_protocol.py +0 -463
  114. cgse-2023.38.0/src/egse/aeu/aeu_psu.yaml +0 -204
  115. cgse-2023.38.0/src/egse/aeu/aeu_ui.py +0 -873
  116. cgse-2023.38.0/src/egse/aeu/arbdata/FccdRead.arb +0 -2
  117. cgse-2023.38.0/src/egse/aeu/arbdata/FccdRead_min_points.arb +0 -2
  118. cgse-2023.38.0/src/egse/aeu/arbdata/HeaterSync_FccdRead.arb +0 -2
  119. cgse-2023.38.0/src/egse/aeu/arbdata/HeaterSync_ccdRead25.arb +0 -2
  120. cgse-2023.38.0/src/egse/aeu/arbdata/HeaterSync_ccdRead31_25.arb +0 -2
  121. cgse-2023.38.0/src/egse/aeu/arbdata/HeaterSync_ccdRead37_50.arb +0 -2
  122. cgse-2023.38.0/src/egse/aeu/arbdata/HeaterSync_ccdRead43_75.arb +0 -2
  123. cgse-2023.38.0/src/egse/aeu/arbdata/HeaterSync_ccdRead50.arb +0 -2
  124. cgse-2023.38.0/src/egse/aeu/arbdata/Heater_FccdRead_min_points.arb +0 -2
  125. cgse-2023.38.0/src/egse/aeu/arbdata/ccdRead25.arb +0 -2
  126. cgse-2023.38.0/src/egse/aeu/arbdata/ccdRead25_150ms.arb +0 -2
  127. cgse-2023.38.0/src/egse/aeu/arbdata/ccdRead31_25.arb +0 -2
  128. cgse-2023.38.0/src/egse/aeu/arbdata/ccdRead31_25_150ms.arb +0 -2
  129. cgse-2023.38.0/src/egse/aeu/arbdata/ccdRead37_50.arb +0 -2
  130. cgse-2023.38.0/src/egse/aeu/arbdata/ccdRead37_50_150ms.arb +0 -2
  131. cgse-2023.38.0/src/egse/aeu/arbdata/ccdRead43_75.arb +0 -2
  132. cgse-2023.38.0/src/egse/aeu/arbdata/ccdRead43_75_150ms.arb +0 -2
  133. cgse-2023.38.0/src/egse/aeu/arbdata/ccdRead50.arb +0 -2
  134. cgse-2023.38.0/src/egse/aeu/arbdata/ccdRead50_150ms.arb +0 -2
  135. cgse-2023.38.0/src/egse/alert/__init__.py +0 -1049
  136. cgse-2023.38.0/src/egse/alert/alertman.yaml +0 -37
  137. cgse-2023.38.0/src/egse/alert/alertman_cs.py +0 -234
  138. cgse-2023.38.0/src/egse/alert/alertman_ui.py +0 -603
  139. cgse-2023.38.0/src/egse/alert/gsm/beaglebone.py +0 -138
  140. cgse-2023.38.0/src/egse/alert/gsm/beaglebone.yaml +0 -51
  141. cgse-2023.38.0/src/egse/alert/gsm/beaglebone_cs.py +0 -108
  142. cgse-2023.38.0/src/egse/alert/gsm/beaglebone_devif.py +0 -130
  143. cgse-2023.38.0/src/egse/alert/gsm/beaglebone_protocol.py +0 -48
  144. cgse-2023.38.0/src/egse/camera.py +0 -44
  145. cgse-2023.38.0/src/egse/collimator/fcul/ogse.py +0 -1077
  146. cgse-2023.38.0/src/egse/collimator/fcul/ogse.yaml +0 -14
  147. cgse-2023.38.0/src/egse/collimator/fcul/ogse_cs.py +0 -154
  148. cgse-2023.38.0/src/egse/collimator/fcul/ogse_devif.py +0 -358
  149. cgse-2023.38.0/src/egse/collimator/fcul/ogse_protocol.py +0 -129
  150. cgse-2023.38.0/src/egse/collimator/fcul/ogse_sim.py +0 -431
  151. cgse-2023.38.0/src/egse/collimator/fcul/ogse_ui.py +0 -1108
  152. cgse-2023.38.0/src/egse/confman/confman_ui.py +0 -381
  153. cgse-2023.38.0/src/egse/confman/setup_ui.py +0 -565
  154. cgse-2023.38.0/src/egse/csl/__init__.py +0 -50
  155. cgse-2023.38.0/src/egse/csl/commanding.py +0 -78
  156. cgse-2023.38.0/src/egse/csl/icons/hexapod-connected-selected.svg +0 -30
  157. cgse-2023.38.0/src/egse/csl/icons/hexapod-connected.svg +0 -30
  158. cgse-2023.38.0/src/egse/csl/icons/hexapod-homing-selected.svg +0 -68
  159. cgse-2023.38.0/src/egse/csl/icons/hexapod-homing.svg +0 -68
  160. cgse-2023.38.0/src/egse/csl/icons/hexapod-retract-selected.svg +0 -56
  161. cgse-2023.38.0/src/egse/csl/icons/hexapod-retract.svg +0 -51
  162. cgse-2023.38.0/src/egse/csl/icons/hexapod-zero-selected.svg +0 -56
  163. cgse-2023.38.0/src/egse/csl/icons/hexapod-zero.svg +0 -56
  164. cgse-2023.38.0/src/egse/csl/icons/stop.svg +0 -1
  165. cgse-2023.38.0/src/egse/csl/initialisation.py +0 -102
  166. cgse-2023.38.0/src/egse/csl/mech_pos_settings.yaml +0 -18
  167. cgse-2023.38.0/src/egse/das.py +0 -1247
  168. cgse-2023.38.0/src/egse/das.yaml +0 -7
  169. cgse-2023.38.0/src/egse/data/conf/SETUP_CSL_00000_170620_150000.yaml +0 -5
  170. cgse-2023.38.0/src/egse/data/conf/SETUP_CSL_00001_170620_151010.yaml +0 -69
  171. cgse-2023.38.0/src/egse/data/conf/SETUP_CSL_00002_170620_151020.yaml +0 -69
  172. cgse-2023.38.0/src/egse/data/conf/SETUP_CSL_00003_170620_151030.yaml +0 -69
  173. cgse-2023.38.0/src/egse/data/conf/SETUP_CSL_00004_170620_151040.yaml +0 -69
  174. cgse-2023.38.0/src/egse/data/conf/SETUP_CSL_00005_170620_151050.yaml +0 -69
  175. cgse-2023.38.0/src/egse/data/conf/SETUP_CSL_00006_170620_151060.yaml +0 -69
  176. cgse-2023.38.0/src/egse/data/conf/SETUP_CSL_00007_170620_151070.yaml +0 -69
  177. cgse-2023.38.0/src/egse/data/conf/SETUP_CSL_00008_170620_151080.yaml +0 -75
  178. cgse-2023.38.0/src/egse/data/conf/SETUP_CSL_00010_210308_083016.yaml +0 -138
  179. cgse-2023.38.0/src/egse/data/conf/SETUP_INTA_00000_170620_150000.yaml +0 -4
  180. cgse-2023.38.0/src/egse/data/conf/SETUP_SRON_00000_170620_150000.yaml +0 -4
  181. cgse-2023.38.0/src/egse/dpu/__init__.py +0 -2681
  182. cgse-2023.38.0/src/egse/dpu/ccd_ui.py +0 -508
  183. cgse-2023.38.0/src/egse/dpu/dpu.py +0 -786
  184. cgse-2023.38.0/src/egse/dpu/dpu.yaml +0 -153
  185. cgse-2023.38.0/src/egse/dpu/dpu_cs.py +0 -272
  186. cgse-2023.38.0/src/egse/dpu/dpu_ui.py +0 -668
  187. cgse-2023.38.0/src/egse/dpu/fitsgen.py +0 -2077
  188. cgse-2023.38.0/src/egse/dpu/fitsgen_test.py +0 -752
  189. cgse-2023.38.0/src/egse/dpu/fitsgen_ui.py +0 -399
  190. cgse-2023.38.0/src/egse/dpu/hdf5_model.py +0 -332
  191. cgse-2023.38.0/src/egse/dpu/hdf5_ui.py +0 -277
  192. cgse-2023.38.0/src/egse/dpu/hdf5_viewer.py +0 -506
  193. cgse-2023.38.0/src/egse/dpu/hk_ui.py +0 -468
  194. cgse-2023.38.0/src/egse/dpu_commands.py +0 -81
  195. cgse-2023.38.0/src/egse/dsi/constants.py +0 -220
  196. cgse-2023.38.0/src/egse/dsi/esl.py +0 -870
  197. cgse-2023.38.0/src/egse/dsi/rmap.py +0 -1042
  198. cgse-2023.38.0/src/egse/dsi/rmapci.py +0 -37
  199. cgse-2023.38.0/src/egse/dsi/spw.py +0 -154
  200. cgse-2023.38.0/src/egse/dsi/spw_state.py +0 -29
  201. cgse-2023.38.0/src/egse/dyndummy.py +0 -179
  202. cgse-2023.38.0/src/egse/fdir/__init__.py +0 -28
  203. cgse-2023.38.0/src/egse/fdir/fdir_manager.py +0 -85
  204. cgse-2023.38.0/src/egse/fdir/fdir_manager.yaml +0 -51
  205. cgse-2023.38.0/src/egse/fdir/fdir_manager_controller.py +0 -228
  206. cgse-2023.38.0/src/egse/fdir/fdir_manager_cs.py +0 -164
  207. cgse-2023.38.0/src/egse/fdir/fdir_manager_interface.py +0 -25
  208. cgse-2023.38.0/src/egse/fdir/fdir_remote.py +0 -73
  209. cgse-2023.38.0/src/egse/fdir/fdir_remote.yaml +0 -37
  210. cgse-2023.38.0/src/egse/fdir/fdir_remote_controller.py +0 -50
  211. cgse-2023.38.0/src/egse/fdir/fdir_remote_cs.py +0 -97
  212. cgse-2023.38.0/src/egse/fdir/fdir_remote_interface.py +0 -14
  213. cgse-2023.38.0/src/egse/fdir/fdir_remote_popup.py +0 -31
  214. cgse-2023.38.0/src/egse/fee/__init__.py +0 -114
  215. cgse-2023.38.0/src/egse/fee/f_fee_register.yaml +0 -43
  216. cgse-2023.38.0/src/egse/fee/fee.py +0 -631
  217. cgse-2023.38.0/src/egse/fee/feesim.py +0 -750
  218. cgse-2023.38.0/src/egse/fee/n_fee_hk.py +0 -761
  219. cgse-2023.38.0/src/egse/fee/nfee.py +0 -187
  220. cgse-2023.38.0/src/egse/filterwheel/__init__.py +0 -4
  221. cgse-2023.38.0/src/egse/filterwheel/eksma/__init__.py +0 -24
  222. cgse-2023.38.0/src/egse/filterwheel/eksma/fw8smc4.py +0 -661
  223. cgse-2023.38.0/src/egse/filterwheel/eksma/fw8smc4.yaml +0 -121
  224. cgse-2023.38.0/src/egse/filterwheel/eksma/fw8smc4_cs.py +0 -144
  225. cgse-2023.38.0/src/egse/filterwheel/eksma/fw8smc4_devif.py +0 -473
  226. cgse-2023.38.0/src/egse/filterwheel/eksma/fw8smc4_protocol.py +0 -81
  227. cgse-2023.38.0/src/egse/filterwheel/eksma/fw8smc4_ui.py +0 -940
  228. cgse-2023.38.0/src/egse/filterwheel/eksma/fw8smc5.py +0 -111
  229. cgse-2023.38.0/src/egse/filterwheel/eksma/fw8smc5.yaml +0 -105
  230. cgse-2023.38.0/src/egse/filterwheel/eksma/fw8smc5_controller.py +0 -307
  231. cgse-2023.38.0/src/egse/filterwheel/eksma/fw8smc5_cs.py +0 -141
  232. cgse-2023.38.0/src/egse/filterwheel/eksma/fw8smc5_interface.py +0 -65
  233. cgse-2023.38.0/src/egse/filterwheel/eksma/fw8smc5_simulator.py +0 -29
  234. cgse-2023.38.0/src/egse/filterwheel/eksma/fw8smc5_ui.py +0 -1068
  235. cgse-2023.38.0/src/egse/filterwheel/eksma/testpythonfw.py +0 -215
  236. cgse-2023.38.0/src/egse/fov/__init__.py +0 -65
  237. cgse-2023.38.0/src/egse/fov/fov_hk.py +0 -712
  238. cgse-2023.38.0/src/egse/fov/fov_ui.py +0 -861
  239. cgse-2023.38.0/src/egse/fov/fov_ui_controller.py +0 -140
  240. cgse-2023.38.0/src/egse/fov/fov_ui_model.py +0 -200
  241. cgse-2023.38.0/src/egse/fov/fov_ui_view.py +0 -345
  242. cgse-2023.38.0/src/egse/gimbal/__init__.py +0 -32
  243. cgse-2023.38.0/src/egse/gimbal/symetrie/__init__.py +0 -26
  244. cgse-2023.38.0/src/egse/gimbal/symetrie/alpha.py +0 -586
  245. cgse-2023.38.0/src/egse/gimbal/symetrie/generic_gimbal_ui.py +0 -1521
  246. cgse-2023.38.0/src/egse/gimbal/symetrie/gimbal.py +0 -877
  247. cgse-2023.38.0/src/egse/gimbal/symetrie/gimbal.yaml +0 -168
  248. cgse-2023.38.0/src/egse/gimbal/symetrie/gimbal_cs.py +0 -183
  249. cgse-2023.38.0/src/egse/gimbal/symetrie/gimbal_protocol.py +0 -135
  250. cgse-2023.38.0/src/egse/gimbal/symetrie/gimbal_ui.py +0 -361
  251. cgse-2023.38.0/src/egse/gimbal/symetrie/pmac.py +0 -1006
  252. cgse-2023.38.0/src/egse/graph.py +0 -132
  253. cgse-2023.38.0/src/egse/gui/focalplane.py +0 -1281
  254. cgse-2023.38.0/src/egse/gui/formatter.py +0 -10
  255. cgse-2023.38.0/src/egse/gui/mechanisms.py +0 -588
  256. cgse-2023.38.0/src/egse/gui/stripchart.py +0 -729
  257. cgse-2023.38.0/src/egse/h5.py +0 -274
  258. cgse-2023.38.0/src/egse/help/help_ui.py +0 -126
  259. cgse-2023.38.0/src/egse/hexapod/symetrie/pmac_regex.py +0 -83
  260. cgse-2023.38.0/src/egse/hk.py +0 -765
  261. cgse-2023.38.0/src/egse/icons/logo-puna.svg +0 -92
  262. cgse-2023.38.0/src/egse/images/big-rotation-stage.png +0 -0
  263. cgse-2023.38.0/src/egse/images/connected-100.png +0 -0
  264. cgse-2023.38.0/src/egse/images/cross.svg +0 -6
  265. cgse-2023.38.0/src/egse/images/disconnected-100.png +0 -0
  266. cgse-2023.38.0/src/egse/images/gui-icon.png +0 -0
  267. cgse-2023.38.0/src/egse/images/home.svg +0 -6
  268. cgse-2023.38.0/src/egse/images/info-icon.png +0 -0
  269. cgse-2023.38.0/src/egse/images/led-black.svg +0 -89
  270. cgse-2023.38.0/src/egse/images/led-green.svg +0 -85
  271. cgse-2023.38.0/src/egse/images/led-orange.svg +0 -85
  272. cgse-2023.38.0/src/egse/images/led-red.svg +0 -85
  273. cgse-2023.38.0/src/egse/images/load-icon.png +0 -0
  274. cgse-2023.38.0/src/egse/images/load-setup.png +0 -0
  275. cgse-2023.38.0/src/egse/images/load.png +0 -0
  276. cgse-2023.38.0/src/egse/images/pause.png +0 -0
  277. cgse-2023.38.0/src/egse/images/play-button.svg +0 -8
  278. cgse-2023.38.0/src/egse/images/play.png +0 -0
  279. cgse-2023.38.0/src/egse/images/process-status.png +0 -0
  280. cgse-2023.38.0/src/egse/images/restart.png +0 -0
  281. cgse-2023.38.0/src/egse/images/search.png +0 -0
  282. cgse-2023.38.0/src/egse/images/sma.png +0 -0
  283. cgse-2023.38.0/src/egse/images/start.png +0 -0
  284. cgse-2023.38.0/src/egse/images/stop-button.svg +0 -8
  285. cgse-2023.38.0/src/egse/images/stop.png +0 -0
  286. cgse-2023.38.0/src/egse/images/switch-off.svg +0 -48
  287. cgse-2023.38.0/src/egse/images/switch-on.svg +0 -48
  288. cgse-2023.38.0/src/egse/images/undo.png +0 -0
  289. cgse-2023.38.0/src/egse/images/update-button.svg +0 -11
  290. cgse-2023.38.0/src/egse/imageviewer/exposureselection.py +0 -475
  291. cgse-2023.38.0/src/egse/imageviewer/imageviewer.py +0 -198
  292. cgse-2023.38.0/src/egse/imageviewer/matchfocalplane.py +0 -179
  293. cgse-2023.38.0/src/egse/imageviewer/subfieldposition.py +0 -133
  294. cgse-2023.38.0/src/egse/lampcontrol/__init__.py +0 -4
  295. cgse-2023.38.0/src/egse/lampcontrol/beaglebone/beaglebone.py +0 -178
  296. cgse-2023.38.0/src/egse/lampcontrol/beaglebone/beaglebone.yaml +0 -62
  297. cgse-2023.38.0/src/egse/lampcontrol/beaglebone/beaglebone_cs.py +0 -106
  298. cgse-2023.38.0/src/egse/lampcontrol/beaglebone/beaglebone_devif.py +0 -150
  299. cgse-2023.38.0/src/egse/lampcontrol/beaglebone/beaglebone_protocol.py +0 -73
  300. cgse-2023.38.0/src/egse/lampcontrol/energetiq/__init__.py +0 -22
  301. cgse-2023.38.0/src/egse/lampcontrol/energetiq/eq99.yaml +0 -98
  302. cgse-2023.38.0/src/egse/lampcontrol/energetiq/lampEQ99.py +0 -283
  303. cgse-2023.38.0/src/egse/lampcontrol/energetiq/lampEQ99_cs.py +0 -128
  304. cgse-2023.38.0/src/egse/lampcontrol/energetiq/lampEQ99_devif.py +0 -158
  305. cgse-2023.38.0/src/egse/lampcontrol/energetiq/lampEQ99_encode_decode_errors.py +0 -73
  306. cgse-2023.38.0/src/egse/lampcontrol/energetiq/lampEQ99_protocol.py +0 -69
  307. cgse-2023.38.0/src/egse/lampcontrol/energetiq/lampEQ99_ui.py +0 -465
  308. cgse-2023.38.0/src/egse/lib/CentOS-7/EtherSpaceLink_v34_86.dylib +0 -0
  309. cgse-2023.38.0/src/egse/lib/CentOS-8/ESL-RMAP_v34_86.dylib +0 -0
  310. cgse-2023.38.0/src/egse/lib/CentOS-8/EtherSpaceLink_v34_86.dylib +0 -0
  311. cgse-2023.38.0/src/egse/lib/Debian/ESL-RMAP_v34_86.dylib +0 -0
  312. cgse-2023.38.0/src/egse/lib/Debian/EtherSpaceLink_v34_86.dylib +0 -0
  313. cgse-2023.38.0/src/egse/lib/Debian/libetherspacelink_v35_21.dylib +0 -0
  314. cgse-2023.38.0/src/egse/lib/Linux/ESL-RMAP_v34_86.dylib +0 -0
  315. cgse-2023.38.0/src/egse/lib/Linux/EtherSpaceLink_v34_86.dylib +0 -0
  316. cgse-2023.38.0/src/egse/lib/Ubuntu-20/ESL-RMAP_v34_86.dylib +0 -0
  317. cgse-2023.38.0/src/egse/lib/Ubuntu-20/EtherSpaceLink_v34_86.dylib +0 -0
  318. cgse-2023.38.0/src/egse/lib/gssw/python3-gssw_2.2.3+31f63c9f-1_all.deb +0 -0
  319. cgse-2023.38.0/src/egse/lib/macOS/ESL-RMAP_v34_86.dylib +0 -0
  320. cgse-2023.38.0/src/egse/lib/macOS/EtherSpaceLink_v34_86.dylib +0 -0
  321. cgse-2023.38.0/src/egse/lib/ximc/__pycache__/pyximc.cpython-38 2.pyc +0 -0
  322. cgse-2023.38.0/src/egse/lib/ximc/__pycache__/pyximc.cpython-38.pyc +0 -0
  323. cgse-2023.38.0/src/egse/lib/ximc/libximc.framework/Frameworks/libbindy.dylib +0 -0
  324. cgse-2023.38.0/src/egse/lib/ximc/libximc.framework/Frameworks/libxiwrapper.dylib +0 -0
  325. cgse-2023.38.0/src/egse/lib/ximc/libximc.framework/Headers/ximc.h +0 -5510
  326. cgse-2023.38.0/src/egse/lib/ximc/libximc.framework/Resources/Info.plist +0 -42
  327. cgse-2023.38.0/src/egse/lib/ximc/libximc.framework/Resources/keyfile.sqlite +0 -0
  328. cgse-2023.38.0/src/egse/lib/ximc/libximc.framework/libbindy.so +0 -0
  329. cgse-2023.38.0/src/egse/lib/ximc/libximc.framework/libximc +0 -0
  330. cgse-2023.38.0/src/egse/lib/ximc/libximc.framework/libximc.so +0 -0
  331. cgse-2023.38.0/src/egse/lib/ximc/libximc.framework/libximc.so.7.0.0 +0 -0
  332. cgse-2023.38.0/src/egse/lib/ximc/libximc.framework/libxiwrapper.so +0 -0
  333. cgse-2023.38.0/src/egse/lib/ximc/pyximc.py +0 -922
  334. cgse-2023.38.0/src/egse/listener.py +0 -73
  335. cgse-2023.38.0/src/egse/metrics.py +0 -98
  336. cgse-2023.38.0/src/egse/ni/alarms/__init__.py +0 -26
  337. cgse-2023.38.0/src/egse/ni/alarms/cdaq9375.py +0 -300
  338. cgse-2023.38.0/src/egse/ni/alarms/cdaq9375.yaml +0 -89
  339. cgse-2023.38.0/src/egse/ni/alarms/cdaq9375_cs.py +0 -130
  340. cgse-2023.38.0/src/egse/ni/alarms/cdaq9375_devif.py +0 -183
  341. cgse-2023.38.0/src/egse/ni/alarms/cdaq9375_protocol.py +0 -48
  342. cgse-2023.38.0/src/egse/obs_inspection.py +0 -163
  343. cgse-2023.38.0/src/egse/powermeter/ni/__init__.py +0 -38
  344. cgse-2023.38.0/src/egse/powermeter/ni/cdaq9184.py +0 -224
  345. cgse-2023.38.0/src/egse/powermeter/ni/cdaq9184.yaml +0 -73
  346. cgse-2023.38.0/src/egse/powermeter/ni/cdaq9184_cs.py +0 -130
  347. cgse-2023.38.0/src/egse/powermeter/ni/cdaq9184_devif.py +0 -201
  348. cgse-2023.38.0/src/egse/powermeter/ni/cdaq9184_protocol.py +0 -48
  349. cgse-2023.38.0/src/egse/powermeter/ni/cdaq9184_ui.py +0 -544
  350. cgse-2023.38.0/src/egse/powermeter/thorlabs/__init__.py +0 -25
  351. cgse-2023.38.0/src/egse/powermeter/thorlabs/pm100a.py +0 -380
  352. cgse-2023.38.0/src/egse/powermeter/thorlabs/pm100a.yaml +0 -132
  353. cgse-2023.38.0/src/egse/powermeter/thorlabs/pm100a_cs.py +0 -136
  354. cgse-2023.38.0/src/egse/powermeter/thorlabs/pm100a_devif.py +0 -127
  355. cgse-2023.38.0/src/egse/powermeter/thorlabs/pm100a_protocol.py +0 -80
  356. cgse-2023.38.0/src/egse/powermeter/thorlabs/pm100a_ui.py +0 -725
  357. cgse-2023.38.0/src/egse/procman/cannot_start_process_popup.py +0 -43
  358. cgse-2023.38.0/src/egse/procman/procman_ui.py +0 -2081
  359. cgse-2023.38.0/src/egse/randomwalk.py +0 -140
  360. cgse-2023.38.0/src/egse/reg.py +0 -585
  361. cgse-2023.38.0/src/egse/reprocess.py +0 -675
  362. cgse-2023.38.0/src/egse/rst.py +0 -135
  363. cgse-2023.38.0/src/egse/search.py +0 -182
  364. cgse-2023.38.0/src/egse/serialdevice.py +0 -190
  365. cgse-2023.38.0/src/egse/shutter/__init__.py +0 -0
  366. cgse-2023.38.0/src/egse/shutter/thorlabs/__init__.py +0 -19
  367. cgse-2023.38.0/src/egse/shutter/thorlabs/ksc101.py +0 -205
  368. cgse-2023.38.0/src/egse/shutter/thorlabs/ksc101.yaml +0 -105
  369. cgse-2023.38.0/src/egse/shutter/thorlabs/ksc101_cs.py +0 -136
  370. cgse-2023.38.0/src/egse/shutter/thorlabs/ksc101_devif.py +0 -201
  371. cgse-2023.38.0/src/egse/shutter/thorlabs/ksc101_protocol.py +0 -69
  372. cgse-2023.38.0/src/egse/shutter/thorlabs/ksc101_ui.py +0 -548
  373. cgse-2023.38.0/src/egse/shutter/thorlabs/sc10.py +0 -82
  374. cgse-2023.38.0/src/egse/shutter/thorlabs/sc10.yaml +0 -52
  375. cgse-2023.38.0/src/egse/shutter/thorlabs/sc10_controller.py +0 -81
  376. cgse-2023.38.0/src/egse/shutter/thorlabs/sc10_cs.py +0 -108
  377. cgse-2023.38.0/src/egse/shutter/thorlabs/sc10_interface.py +0 -25
  378. cgse-2023.38.0/src/egse/shutter/thorlabs/sc10_simulator.py +0 -30
  379. cgse-2023.38.0/src/egse/simulator.py +0 -41
  380. cgse-2023.38.0/src/egse/slack.py +0 -61
  381. cgse-2023.38.0/src/egse/socketdevice.py +0 -218
  382. cgse-2023.38.0/src/egse/sockets.py +0 -218
  383. cgse-2023.38.0/src/egse/stages/__init__.py +0 -12
  384. cgse-2023.38.0/src/egse/stages/aerotech/ensemble.py +0 -247
  385. cgse-2023.38.0/src/egse/stages/aerotech/ensemble.yaml +0 -205
  386. cgse-2023.38.0/src/egse/stages/aerotech/ensemble_controller.py +0 -275
  387. cgse-2023.38.0/src/egse/stages/aerotech/ensemble_cs.py +0 -110
  388. cgse-2023.38.0/src/egse/stages/aerotech/ensemble_interface.py +0 -132
  389. cgse-2023.38.0/src/egse/stages/aerotech/ensemble_parameters.py +0 -433
  390. cgse-2023.38.0/src/egse/stages/aerotech/ensemble_simulator.py +0 -27
  391. cgse-2023.38.0/src/egse/stages/aerotech/mgse_sim.py +0 -193
  392. cgse-2023.38.0/src/egse/stages/arun/smd3.py +0 -111
  393. cgse-2023.38.0/src/egse/stages/arun/smd3.yaml +0 -68
  394. cgse-2023.38.0/src/egse/stages/arun/smd3_controller.py +0 -472
  395. cgse-2023.38.0/src/egse/stages/arun/smd3_cs.py +0 -112
  396. cgse-2023.38.0/src/egse/stages/arun/smd3_interface.py +0 -53
  397. cgse-2023.38.0/src/egse/stages/arun/smd3_simulator.py +0 -27
  398. cgse-2023.38.0/src/egse/stages/arun/smd3_stop.py +0 -16
  399. cgse-2023.38.0/src/egse/stages/huber/__init__.py +0 -49
  400. cgse-2023.38.0/src/egse/stages/huber/smc9300.py +0 -904
  401. cgse-2023.38.0/src/egse/stages/huber/smc9300.yaml +0 -63
  402. cgse-2023.38.0/src/egse/stages/huber/smc9300_cs.py +0 -178
  403. cgse-2023.38.0/src/egse/stages/huber/smc9300_devif.py +0 -345
  404. cgse-2023.38.0/src/egse/stages/huber/smc9300_protocol.py +0 -111
  405. cgse-2023.38.0/src/egse/stages/huber/smc9300_sim.py +0 -547
  406. cgse-2023.38.0/src/egse/stages/huber/smc9300_ui.py +0 -973
  407. cgse-2023.38.0/src/egse/statemachine.py +0 -274
  408. cgse-2023.38.0/src/egse/synoptics/__init__.py +0 -412
  409. cgse-2023.38.0/src/egse/synoptics/syn.yaml +0 -9
  410. cgse-2023.38.0/src/egse/synoptics/syn_cs.py +0 -195
  411. cgse-2023.38.0/src/egse/tcs/__init__.py +0 -14
  412. cgse-2023.38.0/src/egse/tcs/tcs.py +0 -874
  413. cgse-2023.38.0/src/egse/tcs/tcs.yaml +0 -14
  414. cgse-2023.38.0/src/egse/tcs/tcs_cs.py +0 -202
  415. cgse-2023.38.0/src/egse/tcs/tcs_devif.py +0 -292
  416. cgse-2023.38.0/src/egse/tcs/tcs_protocol.py +0 -177
  417. cgse-2023.38.0/src/egse/tcs/tcs_sim.py +0 -177
  418. cgse-2023.38.0/src/egse/tcs/tcs_ui.py +0 -543
  419. cgse-2023.38.0/src/egse/tdms.py +0 -171
  420. cgse-2023.38.0/src/egse/tempcontrol/__init__.py +0 -23
  421. cgse-2023.38.0/src/egse/tempcontrol/agilent/agilent34970.py +0 -109
  422. cgse-2023.38.0/src/egse/tempcontrol/agilent/agilent34970.yaml +0 -44
  423. cgse-2023.38.0/src/egse/tempcontrol/agilent/agilent34970_cs.py +0 -116
  424. cgse-2023.38.0/src/egse/tempcontrol/agilent/agilent34970_devif.py +0 -182
  425. cgse-2023.38.0/src/egse/tempcontrol/agilent/agilent34970_protocol.py +0 -99
  426. cgse-2023.38.0/src/egse/tempcontrol/agilent/agilent34972.py +0 -111
  427. cgse-2023.38.0/src/egse/tempcontrol/agilent/agilent34972.yaml +0 -44
  428. cgse-2023.38.0/src/egse/tempcontrol/agilent/agilent34972_cs.py +0 -117
  429. cgse-2023.38.0/src/egse/tempcontrol/agilent/agilent34972_devif.py +0 -189
  430. cgse-2023.38.0/src/egse/tempcontrol/agilent/agilent34972_protocol.py +0 -101
  431. cgse-2023.38.0/src/egse/tempcontrol/beaglebone/beaglebone.py +0 -342
  432. cgse-2023.38.0/src/egse/tempcontrol/beaglebone/beaglebone.yaml +0 -110
  433. cgse-2023.38.0/src/egse/tempcontrol/beaglebone/beaglebone_cs.py +0 -117
  434. cgse-2023.38.0/src/egse/tempcontrol/beaglebone/beaglebone_protocol.py +0 -135
  435. cgse-2023.38.0/src/egse/tempcontrol/beaglebone/beaglebone_ui.py +0 -681
  436. cgse-2023.38.0/src/egse/tempcontrol/digalox/digalox.py +0 -107
  437. cgse-2023.38.0/src/egse/tempcontrol/digalox/digalox.yaml +0 -36
  438. cgse-2023.38.0/src/egse/tempcontrol/digalox/digalox_cs.py +0 -112
  439. cgse-2023.38.0/src/egse/tempcontrol/digalox/digalox_protocol.py +0 -55
  440. cgse-2023.38.0/src/egse/tempcontrol/keithley/__init__.py +0 -33
  441. cgse-2023.38.0/src/egse/tempcontrol/keithley/daq6510.py +0 -662
  442. cgse-2023.38.0/src/egse/tempcontrol/keithley/daq6510.yaml +0 -105
  443. cgse-2023.38.0/src/egse/tempcontrol/keithley/daq6510_cs.py +0 -163
  444. cgse-2023.38.0/src/egse/tempcontrol/keithley/daq6510_devif.py +0 -343
  445. cgse-2023.38.0/src/egse/tempcontrol/keithley/daq6510_protocol.py +0 -78
  446. cgse-2023.38.0/src/egse/tempcontrol/keithley/daq6510_sim.py +0 -186
  447. cgse-2023.38.0/src/egse/tempcontrol/lakeshore/__init__.py +0 -33
  448. cgse-2023.38.0/src/egse/tempcontrol/lakeshore/lsci.py +0 -361
  449. cgse-2023.38.0/src/egse/tempcontrol/lakeshore/lsci.yaml +0 -162
  450. cgse-2023.38.0/src/egse/tempcontrol/lakeshore/lsci_cs.py +0 -174
  451. cgse-2023.38.0/src/egse/tempcontrol/lakeshore/lsci_devif.py +0 -292
  452. cgse-2023.38.0/src/egse/tempcontrol/lakeshore/lsci_protocol.py +0 -73
  453. cgse-2023.38.0/src/egse/tempcontrol/lakeshore/lsci_ui.py +0 -389
  454. cgse-2023.38.0/src/egse/tempcontrol/ni/__init__.py +0 -0
  455. cgse-2023.38.0/src/egse/tempcontrol/spid/spid.py +0 -109
  456. cgse-2023.38.0/src/egse/tempcontrol/spid/spid.yaml +0 -81
  457. cgse-2023.38.0/src/egse/tempcontrol/spid/spid_controller.py +0 -279
  458. cgse-2023.38.0/src/egse/tempcontrol/spid/spid_cs.py +0 -136
  459. cgse-2023.38.0/src/egse/tempcontrol/spid/spid_protocol.py +0 -107
  460. cgse-2023.38.0/src/egse/tempcontrol/spid/spid_ui.py +0 -727
  461. cgse-2023.38.0/src/egse/tempcontrol/srs/__init__.py +0 -22
  462. cgse-2023.38.0/src/egse/tempcontrol/srs/ptc10.py +0 -875
  463. cgse-2023.38.0/src/egse/tempcontrol/srs/ptc10.yaml +0 -227
  464. cgse-2023.38.0/src/egse/tempcontrol/srs/ptc10_cs.py +0 -128
  465. cgse-2023.38.0/src/egse/tempcontrol/srs/ptc10_devif.py +0 -118
  466. cgse-2023.38.0/src/egse/tempcontrol/srs/ptc10_protocol.py +0 -42
  467. cgse-2023.38.0/src/egse/tempcontrol/srs/ptc10_ui.py +0 -906
  468. cgse-2023.38.0/src/egse/ups/apc/apc.py +0 -236
  469. cgse-2023.38.0/src/egse/ups/apc/apc.yaml +0 -45
  470. cgse-2023.38.0/src/egse/ups/apc/apc_cs.py +0 -101
  471. cgse-2023.38.0/src/egse/ups/apc/apc_protocol.py +0 -125
  472. cgse-2023.38.0/src/egse/user.yaml +0 -7
  473. cgse-2023.38.0/src/egse/vacuum/beaglebone/beaglebone.py +0 -149
  474. cgse-2023.38.0/src/egse/vacuum/beaglebone/beaglebone.yaml +0 -44
  475. cgse-2023.38.0/src/egse/vacuum/beaglebone/beaglebone_cs.py +0 -108
  476. cgse-2023.38.0/src/egse/vacuum/beaglebone/beaglebone_devif.py +0 -164
  477. cgse-2023.38.0/src/egse/vacuum/beaglebone/beaglebone_protocol.py +0 -193
  478. cgse-2023.38.0/src/egse/vacuum/beaglebone/beaglebone_ui.py +0 -638
  479. cgse-2023.38.0/src/egse/vacuum/instrutech/igm402.py +0 -92
  480. cgse-2023.38.0/src/egse/vacuum/instrutech/igm402.yaml +0 -90
  481. cgse-2023.38.0/src/egse/vacuum/instrutech/igm402_controller.py +0 -128
  482. cgse-2023.38.0/src/egse/vacuum/instrutech/igm402_cs.py +0 -108
  483. cgse-2023.38.0/src/egse/vacuum/instrutech/igm402_interface.py +0 -49
  484. cgse-2023.38.0/src/egse/vacuum/instrutech/igm402_simulator.py +0 -36
  485. cgse-2023.38.0/src/egse/vacuum/keller/kellerBus.py +0 -256
  486. cgse-2023.38.0/src/egse/vacuum/keller/leo3.py +0 -102
  487. cgse-2023.38.0/src/egse/vacuum/keller/leo3.yaml +0 -38
  488. cgse-2023.38.0/src/egse/vacuum/keller/leo3_controller.py +0 -83
  489. cgse-2023.38.0/src/egse/vacuum/keller/leo3_cs.py +0 -101
  490. cgse-2023.38.0/src/egse/vacuum/keller/leo3_interface.py +0 -33
  491. cgse-2023.38.0/src/egse/vacuum/mks/evision.py +0 -86
  492. cgse-2023.38.0/src/egse/vacuum/mks/evision.yaml +0 -75
  493. cgse-2023.38.0/src/egse/vacuum/mks/evision_cs.py +0 -101
  494. cgse-2023.38.0/src/egse/vacuum/mks/evision_devif.py +0 -316
  495. cgse-2023.38.0/src/egse/vacuum/mks/evision_interface.py +0 -60
  496. cgse-2023.38.0/src/egse/vacuum/mks/evision_simulator.py +0 -24
  497. cgse-2023.38.0/src/egse/vacuum/mks/evision_ui.py +0 -704
  498. cgse-2023.38.0/src/egse/vacuum/pfeiffer/acp40.py +0 -87
  499. cgse-2023.38.0/src/egse/vacuum/pfeiffer/acp40.yaml +0 -60
  500. cgse-2023.38.0/src/egse/vacuum/pfeiffer/acp40_controller.py +0 -117
  501. cgse-2023.38.0/src/egse/vacuum/pfeiffer/acp40_cs.py +0 -109
  502. cgse-2023.38.0/src/egse/vacuum/pfeiffer/acp40_interface.py +0 -40
  503. cgse-2023.38.0/src/egse/vacuum/pfeiffer/acp40_simulator.py +0 -39
  504. cgse-2023.38.0/src/egse/vacuum/pfeiffer/tc400.py +0 -113
  505. cgse-2023.38.0/src/egse/vacuum/pfeiffer/tc400.yaml +0 -83
  506. cgse-2023.38.0/src/egse/vacuum/pfeiffer/tc400_controller.py +0 -140
  507. cgse-2023.38.0/src/egse/vacuum/pfeiffer/tc400_cs.py +0 -109
  508. cgse-2023.38.0/src/egse/vacuum/pfeiffer/tc400_interface.py +0 -70
  509. cgse-2023.38.0/src/egse/vacuum/pfeiffer/tc400_simulator.py +0 -24
  510. cgse-2023.38.0/src/egse/vacuum/pfeiffer/tpg261.py +0 -81
  511. cgse-2023.38.0/src/egse/vacuum/pfeiffer/tpg261.yaml +0 -66
  512. cgse-2023.38.0/src/egse/vacuum/pfeiffer/tpg261_controller.py +0 -150
  513. cgse-2023.38.0/src/egse/vacuum/pfeiffer/tpg261_cs.py +0 -109
  514. cgse-2023.38.0/src/egse/vacuum/pfeiffer/tpg261_interface.py +0 -60
  515. cgse-2023.38.0/src/egse/vacuum/pfeiffer/tpg261_simulator.py +0 -24
  516. cgse-2023.38.0/src/egse/visitedpositions.py +0 -398
  517. cgse-2023.38.0/src/egse/windowing.py +0 -213
  518. cgse-2023.38.0/src/egse/zmq/__init__.py +0 -28
  519. cgse-2023.38.0/src/egse/zmq/spw.py +0 -160
  520. cgse-2023.38.0/src/scripts/alerts/cold.yaml +0 -278
  521. cgse-2023.38.0/src/scripts/alerts/example_alerts.yaml +0 -54
  522. cgse-2023.38.0/src/scripts/alerts/transition.yaml +0 -14
  523. cgse-2023.38.0/src/scripts/alerts/warm.yaml +0 -49
  524. cgse-2023.38.0/src/scripts/analyse_n_fee_hk_data.py +0 -44
  525. cgse-2023.38.0/src/scripts/check_hdf5_files.py +0 -192
  526. cgse-2023.38.0/src/scripts/check_register_sync.py +0 -47
  527. cgse-2023.38.0/src/scripts/create_hdf5_report.py +0 -295
  528. cgse-2023.38.0/src/scripts/csl_model.py +0 -436
  529. cgse-2023.38.0/src/scripts/csl_restore_setup.py +0 -230
  530. cgse-2023.38.0/src/scripts/export-grafana-dashboards.py +0 -50
  531. cgse-2023.38.0/src/scripts/fdir/cs_recovery/fdir_cs_recovery.py +0 -59
  532. cgse-2023.38.0/src/scripts/fdir/fdir_table.yaml +0 -70
  533. cgse-2023.38.0/src/scripts/fdir/fdir_test_recovery.py +0 -11
  534. cgse-2023.38.0/src/scripts/fdir/hw_recovery/fdir_agilent_hw_recovery.py +0 -73
  535. cgse-2023.38.0/src/scripts/fdir/limit_recovery/fdir_agilent_limit.py +0 -64
  536. cgse-2023.38.0/src/scripts/fdir/limit_recovery/fdir_bb_heater_limit.py +0 -61
  537. cgse-2023.38.0/src/scripts/fdir/limit_recovery/fdir_ensemble_limit.py +0 -33
  538. cgse-2023.38.0/src/scripts/fdir/limit_recovery/fdir_pressure_limit_recovery.py +0 -71
  539. cgse-2023.38.0/src/scripts/fix_csv.py +0 -80
  540. cgse-2023.38.0/src/scripts/n_fee_supply_voltage_calculation.py +0 -92
  541. cgse-2023.38.0/src/scripts/playground.py +0 -30
  542. cgse-2023.38.0/src/scripts/print_hdf5_hk_data.py +0 -68
  543. cgse-2023.38.0/src/scripts/print_register_map.py +0 -43
  544. cgse-2023.38.0/src/scripts/sron/commanding/control_heaters.py +0 -44
  545. cgse-2023.38.0/src/scripts/sron/commanding/pumpdown.py +0 -46
  546. cgse-2023.38.0/src/scripts/sron/commanding/set_pid_setpoint.py +0 -19
  547. cgse-2023.38.0/src/scripts/sron/commanding/shutdown_bbb_heaters.py +0 -10
  548. cgse-2023.38.0/src/scripts/sron/commanding/shutdown_pumps.py +0 -33
  549. cgse-2023.38.0/src/scripts/sron/tm_gen/tm_gen_agilent.py +0 -38
  550. cgse-2023.38.0/src/scripts/sron/tm_gen/tm_gen_heaters.py +0 -4
  551. cgse-2023.38.0/src/scripts/sron/tm_gen/tm_gen_spid.py +0 -13
  552. cgse-2023.38.0/src/scripts/update_operational_cgse.py +0 -268
  553. cgse-2023.38.0/src/scripts/update_operational_cgse_old.py +0 -273
  554. cgse-2023.38.0/src/tests/conftest.py +0 -52
  555. cgse-2023.38.0/src/tests/data/CSL/conf/SETUP_CSL_00028_201028_155259.yaml +0 -110
  556. cgse-2023.38.0/src/tests/data/CSL/conf/SETUP_CSL_00029_201028_155331.yaml +0 -111
  557. cgse-2023.38.0/src/tests/data/CSL/conf/SETUP_CSL_00030_210311_134043.yaml +0 -196
  558. cgse-2023.38.0/src/tests/data/CSL/conf/SETUP_CSL_00080_210917_105245.yaml +0 -372
  559. cgse-2023.38.0/src/tests/data/CSL/conf/SETUP_CSL_00081_210922_142259.yaml +0 -375
  560. cgse-2023.38.0/src/tests/data/CSL/conf/SETUP_CSL_00082_210923_094458.yaml +0 -377
  561. cgse-2023.38.0/src/tests/data/SRON/conf/SETUP_SRON_00027_211119_140441.yaml +0 -430
  562. cgse-2023.38.0/src/tests/data/SRON/conf/SETUP_SRON_00028_211119_160406.yaml +0 -430
  563. cgse-2023.38.0/src/tests/data/SRON/conf/SETUP_SRON_00029_211119_172918.yaml +0 -431
  564. cgse-2023.38.0/src/tests/data/SRON/conf/SETUP_SRON_00030_211122_103604.yaml +0 -432
  565. cgse-2023.38.0/src/tests/data/SRON/conf/SETUP_SRON_00031_211123_124900.yaml +0 -433
  566. cgse-2023.38.0/src/tests/data/calibration.yaml +0 -10
  567. cgse-2023.38.0/src/tests/data/conf/SETUP_CSL_00000_170620_150000.yaml +0 -5
  568. cgse-2023.38.0/src/tests/data/conf/SETUP_CSL_00001_170620_151010.yaml +0 -68
  569. cgse-2023.38.0/src/tests/data/conf/SETUP_CSL_00010_210308_083016.yaml +0 -138
  570. cgse-2023.38.0/src/tests/data/confman_settings.yaml +0 -2
  571. cgse-2023.38.0/src/tests/data/corrupt.yaml +0 -11
  572. cgse-2023.38.0/src/tests/data/empty.yaml +0 -1
  573. cgse-2023.38.0/src/tests/data/settings.yaml +0 -26
  574. cgse-2023.38.0/src/tests/data/test_setup.yaml +0 -7
  575. cgse-2023.38.0/src/tests/helper.py +0 -21
  576. cgse-2023.38.0/src/tests/itest_dpu_ui.py +0 -74
  577. cgse-2023.38.0/src/tests/scripts/dummy_cs.py +0 -17
  578. cgse-2023.38.0/src/tests/scripts/empty_process.py +0 -56
  579. cgse-2023.38.0/src/tests/scripts/void-0.py +0 -6
  580. cgse-2023.38.0/src/tests/scripts/void-1.py +0 -6
  581. cgse-2023.38.0/src/tests/test_aeu.py +0 -1185
  582. cgse-2023.38.0/src/tests/test_aeu_simulator.py +0 -2913
  583. cgse-2023.38.0/src/tests/test_automatic_dump_mode.py +0 -93
  584. cgse-2023.38.0/src/tests/test_avoidance.py +0 -45
  585. cgse-2023.38.0/src/tests/test_cm_cs.py +0 -49
  586. cgse-2023.38.0/src/tests/test_confman.py +0 -10
  587. cgse-2023.38.0/src/tests/test_confman_controller.py +0 -24
  588. cgse-2023.38.0/src/tests/test_confman_functions.py +0 -91
  589. cgse-2023.38.0/src/tests/test_constants.py +0 -23
  590. cgse-2023.38.0/src/tests/test_coordinates_plot.py +0 -29
  591. cgse-2023.38.0/src/tests/test_coordinates_serialize.py +0 -61
  592. cgse-2023.38.0/src/tests/test_daq6510.py +0 -104
  593. cgse-2023.38.0/src/tests/test_device.py +0 -21
  594. cgse-2023.38.0/src/tests/test_dpu_functions.py +0 -173
  595. cgse-2023.38.0/src/tests/test_dpu_internals.py +0 -34
  596. cgse-2023.38.0/src/tests/test_dpu_monitoring.py +0 -103
  597. cgse-2023.38.0/src/tests/test_dpu_nfee_state.py +0 -56
  598. cgse-2023.38.0/src/tests/test_dpu_send_commands.py +0 -39
  599. cgse-2023.38.0/src/tests/test_dsi.py +0 -0
  600. cgse-2023.38.0/src/tests/test_env.py +0 -93
  601. cgse-2023.38.0/src/tests/test_esl.py +0 -62
  602. cgse-2023.38.0/src/tests/test_fee.py +0 -92
  603. cgse-2023.38.0/src/tests/test_feesim.py +0 -168
  604. cgse-2023.38.0/src/tests/test_filterwheel_eksma.py +0 -46
  605. cgse-2023.38.0/src/tests/test_fixture_with_lru_cache.py +0 -59
  606. cgse-2023.38.0/src/tests/test_fov_hk__ias.py +0 -25
  607. cgse-2023.38.0/src/tests/test_gimbal.py +0 -199
  608. cgse-2023.38.0/src/tests/test_graph.py +0 -272
  609. cgse-2023.38.0/src/tests/test_hexapod.py +0 -188
  610. cgse-2023.38.0/src/tests/test_hexapod_simulator.py +0 -223
  611. cgse-2023.38.0/src/tests/test_hexapod_zonda.py +0 -659
  612. cgse-2023.38.0/src/tests/test_hk.py +0 -42
  613. cgse-2023.38.0/src/tests/test_huber.py +0 -338
  614. cgse-2023.38.0/src/tests/test_huber_dev.py +0 -281
  615. cgse-2023.38.0/src/tests/test_imports.py +0 -44
  616. cgse-2023.38.0/src/tests/test_lakeshore.py +0 -91
  617. cgse-2023.38.0/src/tests/test_lakeshore_simulator.py +0 -38
  618. cgse-2023.38.0/src/tests/test_lampEQ99_encode_decode_errors.py +0 -33
  619. cgse-2023.38.0/src/tests/test_lampcontrol_energetiq.py +0 -109
  620. cgse-2023.38.0/src/tests/test_listener.py +0 -40
  621. cgse-2023.38.0/src/tests/test_logger.py +0 -40
  622. cgse-2023.38.0/src/tests/test_metrics.py +0 -47
  623. cgse-2023.38.0/src/tests/test_mixin.py +0 -356
  624. cgse-2023.38.0/src/tests/test_n_fee.py +0 -283
  625. cgse-2023.38.0/src/tests/test_n_fee_hk.py +0 -203
  626. cgse-2023.38.0/src/tests/test_n_fee_side.py +0 -138
  627. cgse-2023.38.0/src/tests/test_obs.py +0 -11
  628. cgse-2023.38.0/src/tests/test_obsid.py +0 -124
  629. cgse-2023.38.0/src/tests/test_ogse_functions.py +0 -166
  630. cgse-2023.38.0/src/tests/test_ogse_sim.py +0 -309
  631. cgse-2023.38.0/src/tests/test_persistence.py +0 -264
  632. cgse-2023.38.0/src/tests/test_persistence_hdf5.py +0 -38
  633. cgse-2023.38.0/src/tests/test_persistence_sqlite.py +0 -69
  634. cgse-2023.38.0/src/tests/test_pmac.py +0 -139
  635. cgse-2023.38.0/src/tests/test_pmac_regex.py +0 -137
  636. cgse-2023.38.0/src/tests/test_point.py +0 -90
  637. cgse-2023.38.0/src/tests/test_process.py +0 -206
  638. cgse-2023.38.0/src/tests/test_process_status.py +0 -43
  639. cgse-2023.38.0/src/tests/test_proxy.py +0 -200
  640. cgse-2023.38.0/src/tests/test_proxy_state.py +0 -57
  641. cgse-2023.38.0/src/tests/test_puna.py +0 -199
  642. cgse-2023.38.0/src/tests/test_puna_plus.py +0 -218
  643. cgse-2023.38.0/src/tests/test_ref_model.py +0 -68
  644. cgse-2023.38.0/src/tests/test_reference_frames.py +0 -480
  645. cgse-2023.38.0/src/tests/test_refmodel.py +0 -118
  646. cgse-2023.38.0/src/tests/test_reg.py +0 -454
  647. cgse-2023.38.0/src/tests/test_reload.py +0 -94
  648. cgse-2023.38.0/src/tests/test_resource.py +0 -145
  649. cgse-2023.38.0/src/tests/test_response.py +0 -43
  650. cgse-2023.38.0/src/tests/test_rmap.py +0 -133
  651. cgse-2023.38.0/src/tests/test_search.py +0 -40
  652. cgse-2023.38.0/src/tests/test_services.py +0 -176
  653. cgse-2023.38.0/src/tests/test_settings.py +0 -152
  654. cgse-2023.38.0/src/tests/test_setup.py +0 -837
  655. cgse-2023.38.0/src/tests/test_slack.py +0 -17
  656. cgse-2023.38.0/src/tests/test_spw.py +0 -398
  657. cgse-2023.38.0/src/tests/test_stages.py +0 -198
  658. cgse-2023.38.0/src/tests/test_state.py +0 -39
  659. cgse-2023.38.0/src/tests/test_storage.py +0 -157
  660. cgse-2023.38.0/src/tests/test_storage_controller.py +0 -24
  661. cgse-2023.38.0/src/tests/test_storage_counter.py +0 -98
  662. cgse-2023.38.0/src/tests/test_storage_filename.py +0 -36
  663. cgse-2023.38.0/src/tests/test_syn_cs.py +0 -25
  664. cgse-2023.38.0/src/tests/test_tcs.py +0 -201
  665. cgse-2023.38.0/src/tests/test_tdms.py +0 -53
  666. cgse-2023.38.0/src/tests/test_thorlabs_controller.py +0 -41
  667. cgse-2023.38.0/src/tests/test_thorlabs_proxy.py +0 -32
  668. cgse-2023.38.0/src/tests/test_thorlabs_simulator.py +0 -32
  669. cgse-2023.38.0/src/tests/test_twos_complement.py +0 -12
  670. cgse-2023.38.0/src/tests/test_version.py +0 -24
  671. cgse-2023.38.0/src/tests/test_windowing.py +0 -213
  672. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/bits.py +0 -0
  673. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/observer.py +0 -0
  674. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/services.py +0 -0
  675. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/services.yaml +0 -0
  676. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/state.py +0 -0
  677. /cgse-2023.38.0/src/__init__.py → /cgse-2024.1.3/libs/cgse-common/tests/data/data/empty_data_file.txt +0 -0
  678. {cgse-2023.38.0/src → cgse-2024.1.3/libs/cgse-common}/tests/test_command.py +0 -0
  679. /cgse-2023.38.0/src/egse/collimator/__init__.py → /cgse-2024.1.3/libs/cgse-common/tests/test_control.py +0 -0
  680. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/__init__.py +0 -0
  681. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/avoidance.py +0 -0
  682. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/cslmodel.py +0 -0
  683. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/laser_tracker_to_dict.py +0 -0
  684. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/point.py +0 -0
  685. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/pyplot.py +0 -0
  686. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/refmodel.py +0 -0
  687. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/rotationMatrix.py +0 -0
  688. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/transform3d_addon.py +0 -0
  689. /cgse-2023.38.0/src/egse/collimator/fcul/__init__.py → /cgse-2024.1.3/libs/cgse-core/src/egse/confman/__main__.py +0 -0
  690. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/confman/confman.yaml +0 -0
  691. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/procman/__init__.py +0 -0
  692. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/procman/procman.yaml +0 -0
  693. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/procman/procman_cs.py +0 -0
  694. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/storage/storage.yaml +0 -0
  695. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/buttons.py +0 -0
  696. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu-cs-start.svg +0 -0
  697. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu-cs-stop.svg +0 -0
  698. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu-cs.svg +0 -0
  699. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu_cs-started.svg +0 -0
  700. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu_cs-stopped.svg +0 -0
  701. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu_cs.svg +0 -0
  702. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/alert.svg +0 -0
  703. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/arrow-double-left.png +0 -0
  704. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/arrow-double-right.png +0 -0
  705. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/arrow-up.svg +0 -0
  706. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/backward.svg +0 -0
  707. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/busy.svg +0 -0
  708. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/cleaning.svg +0 -0
  709. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/color-scheme.svg +0 -0
  710. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/cs-connected-alert.svg +0 -0
  711. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/cs-connected-disabled.svg +0 -0
  712. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/cs-connected.svg +0 -0
  713. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/cs-not-connected.svg +0 -0
  714. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/double-left-arrow.svg +0 -0
  715. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/double-right-arrow.svg +0 -0
  716. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/erase-disabled.svg +0 -0
  717. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/erase.svg +0 -0
  718. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fitsgen-start.svg +0 -0
  719. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fitsgen-stop.svg +0 -0
  720. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fitsgen.svg +0 -0
  721. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/forward.svg +0 -0
  722. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fov-hk-start.svg +0 -0
  723. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fov-hk-stop.svg +0 -0
  724. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fov-hk.svg +0 -0
  725. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/front-desk.svg +0 -0
  726. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/home-actioned.svg +0 -0
  727. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/home-disabled.svg +0 -0
  728. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/home.svg +0 -0
  729. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/info.svg +0 -0
  730. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/invalid.png +0 -0
  731. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-green.svg +0 -0
  732. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-grey.svg +0 -0
  733. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-orange.svg +0 -0
  734. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-red.svg +0 -0
  735. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-square-green.svg +0 -0
  736. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-square-grey.svg +0 -0
  737. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-square-orange.svg +0 -0
  738. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-square-red.svg +0 -0
  739. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/limit-switch-all-green.svg +0 -0
  740. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/limit-switch-all-red.svg +0 -0
  741. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/limit-switch-el+.svg +0 -0
  742. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/limit-switch-el-.svg +0 -0
  743. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/location-marker.svg +0 -0
  744. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-dpu.svg +0 -0
  745. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-gimbal.svg +0 -0
  746. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-huber.svg +0 -0
  747. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-ogse.svg +0 -0
  748. {cgse-2023.38.0/src/egse/csl → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-puna.svg +0 -0
  749. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-tcs.svg +0 -0
  750. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-zonda.svg +0 -0
  751. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/maximize.svg +0 -0
  752. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/meter.svg +0 -0
  753. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/more.svg +0 -0
  754. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/n-fee-hk-start.svg +0 -0
  755. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/n-fee-hk-stop.svg +0 -0
  756. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/n-fee-hk.svg +0 -0
  757. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/observing-off.svg +0 -0
  758. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/observing-on.svg +0 -0
  759. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/open-document-hdf5.png +0 -0
  760. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/open-document-hdf5.svg +0 -0
  761. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/ops-mode.svg +0 -0
  762. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/play-green.svg +0 -0
  763. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/plugged-disabled.svg +0 -0
  764. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/plugged.svg +0 -0
  765. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/pm_ui.svg +0 -0
  766. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/power-button-green.svg +0 -0
  767. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/power-button-red.svg +0 -0
  768. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/power-button.svg +0 -0
  769. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/radar.svg +0 -0
  770. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/radioactive.svg +0 -0
  771. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/reload.svg +0 -0
  772. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/remote-control-off.svg +0 -0
  773. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/remote-control-on.svg +0 -0
  774. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/repeat-blue.svg +0 -0
  775. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/repeat.svg +0 -0
  776. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/settings.svg +0 -0
  777. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/shrink.svg +0 -0
  778. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/shutter.svg +0 -0
  779. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/sign-off.svg +0 -0
  780. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/sign-on.svg +0 -0
  781. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/sim-mode.svg +0 -0
  782. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/small-buttons-go.svg +0 -0
  783. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/small-buttons-minus.svg +0 -0
  784. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/small-buttons-plus.svg +0 -0
  785. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/sponge.svg +0 -0
  786. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/start-button-disabled.svg +0 -0
  787. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/start-button.svg +0 -0
  788. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/stop-button-disabled.svg +0 -0
  789. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/stop-button.svg +0 -0
  790. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/stop-red.svg +0 -0
  791. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/stop.svg +0 -0
  792. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-disabled-square.svg +0 -0
  793. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-disabled.svg +0 -0
  794. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-off-square.svg +0 -0
  795. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-off.svg +0 -0
  796. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-on-square.svg +0 -0
  797. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-on.svg +0 -0
  798. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/temperature-control.svg +0 -0
  799. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/th_ui_logo.svg +0 -0
  800. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/unplugged.svg +0 -0
  801. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/unvalid.png +0 -0
  802. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/user-interface.svg +0 -0
  803. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/vacuum.svg +0 -0
  804. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/valid.png +0 -0
  805. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/zoom-to-pixel-dark.svg +0 -0
  806. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/zoom-to-pixel-white.svg +0 -0
  807. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/led.py +0 -0
  808. {cgse-2023.38.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/limitswitch.py +0 -0
  809. {cgse-2023.38.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/styles/dark.qss +0 -0
  810. /cgse-2023.38.0/src/egse/styles/default.qss → /cgse-2024.1.3/libs/cgse-gui/src/egse/gui/styles.qss +0 -0
  811. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/__init__.py +0 -0
  812. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/alpha.py +0 -0
  813. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/pmac.py +0 -0
  814. {cgse-2023.38.0/src/egse/gimbal → cgse-2024.1.3/projects/generic/symetrie-hexapod/src/egse/hexapod}/symetrie/pmac_regex.py +0 -0
  815. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/puna.py +0 -0
  816. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/puna.yaml +0 -0
  817. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/punaplus.py +0 -0
  818. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda.py +0 -0
  819. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda.yaml +0 -0
  820. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda_cs.py +0 -0
  821. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda_devif.py +0 -0
  822. {cgse-2023.38.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda_protocol.py +0 -0
  823. /cgse-2023.38.0/src/egse/help/__init__.py → /cgse-2024.1.3/projects/plato/plato-hdf5/README.md +0 -0
  824. /cgse-2023.38.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):