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.
- cgse-2024.1.3/.gitignore +20 -0
- cgse-2024.1.3/NOTES.md +124 -0
- cgse-2024.1.3/PKG-INFO +41 -0
- cgse-2024.1.3/README.md +27 -0
- cgse-2024.1.3/TODO.md +3 -0
- cgse-2024.1.3/bump.py +77 -0
- cgse-2024.1.3/libs/cgse-common/README.md +39 -0
- cgse-2024.1.3/libs/cgse-common/pyproject.toml +63 -0
- cgse-2024.1.3/libs/cgse-common/pytest.ini +11 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/command.py +1 -1
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/config.py +7 -128
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/control.py +62 -75
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/decorators.py +17 -13
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/device.py +2 -2
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/env.py +11 -10
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/exceptions.py +1 -1
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/mixin.py +4 -4
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/monitoring.py +2 -1
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/obsid.py +0 -2
- cgse-2024.1.3/libs/cgse-common/src/egse/persistence.py +58 -0
- cgse-2024.1.3/libs/cgse-common/src/egse/plugin.py +97 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/process.py +13 -4
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/protocol.py +5 -1
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/proxy.py +2 -2
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/reload.py +3 -3
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/resource.py +186 -81
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/settings.py +1 -1
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/settings.yaml +4 -3
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/setup.py +1 -1
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/system.py +103 -12
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/version.py +8 -4
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/zmq_ser.py +28 -0
- cgse-2024.1.3/libs/cgse-common/tests/data/data/data-file.txt +44 -0
- cgse-2024.1.3/libs/cgse-common/tests/data/icons/keyboard.png +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-common/tests}/dummy.py +7 -45
- cgse-2024.1.3/libs/cgse-common/tests/helpers.py +108 -0
- {cgse-2023.37.0/src → cgse-2024.1.3/libs/cgse-common}/tests/test_bits.py +18 -0
- {cgse-2023.37.0/src → cgse-2024.1.3/libs/cgse-common}/tests/test_config.py +51 -49
- {cgse-2023.37.0/src → cgse-2024.1.3/libs/cgse-common}/tests/test_decorators.py +159 -0
- cgse-2024.1.3/libs/cgse-common/tests/test_resource.py +220 -0
- {cgse-2023.37.0/src → cgse-2024.1.3/libs/cgse-common}/tests/test_system.py +32 -13
- cgse-2024.1.3/libs/cgse-coordinates/README.md +1 -0
- cgse-2024.1.3/libs/cgse-coordinates/pyproject.toml +46 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/referenceFrame.py +45 -45
- cgse-2024.1.3/libs/cgse-core/README.md +1 -0
- cgse-2024.1.3/libs/cgse-core/pyproject.toml +60 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/confman/__init__.py +67 -22
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/confman/confman_cs.py +43 -42
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/logger/__init__.py +39 -21
- cgse-2024.1.3/libs/cgse-core/src/egse/logger/__main__.py +12 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/logger/log_cs.py +39 -50
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/storage/__init__.py +91 -6
- cgse-2024.1.3/libs/cgse-core/src/egse/storage/__main__.py +3 -0
- cgse-2024.1.3/libs/cgse-core/src/egse/storage/persistence.py +537 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/storage/storage_cs.py +17 -30
- cgse-2024.1.3/libs/cgse-core/src/scripts/cgse.py +179 -0
- cgse-2024.1.3/libs/cgse-core/tests/conftest.py +204 -0
- cgse-2024.1.3/libs/cgse-core/tests/test_logger.py +83 -0
- cgse-2024.1.3/libs/cgse-gui/README.md +1 -0
- cgse-2024.1.3/libs/cgse-gui/pyproject.toml +37 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/__init__.py +9 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/states.py +3 -3
- cgse-2024.1.3/libs/cgse-gui/src/egse/gui/styles/default.qss +48 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/switch.py +2 -6
- cgse-2024.1.3/projects/generic/cgse-tools/README.md +1 -0
- cgse-2024.1.3/projects/generic/cgse-tools/pyproject.toml +63 -0
- cgse-2024.1.3/projects/generic/cgse-tools/src/egse/tools/status.py +86 -0
- cgse-2024.1.3/projects/generic/cgse-tools/src/scripts/cgse_plugins.py +9 -0
- cgse-2024.1.3/projects/generic/cgse-tools/src/scripts/cgse_service_plugins.py +10 -0
- cgse-2024.1.3/projects/generic/symetrie-hexapod/README.md +1 -0
- cgse-2024.1.3/projects/generic/symetrie-hexapod/pyproject.toml +62 -0
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/__init__.py +20 -7
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/dynalpha.py +0 -3
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/hexapod_ui.py +0 -7
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/puna_cs.py +3 -2
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/puna_protocol.py +3 -3
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/puna_ui.py +0 -2
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda_ui.py +0 -1
- cgse-2024.1.3/projects/generic/symetrie-hexapod/src/scripts/cgse_service_plugins.py +27 -0
- cgse-2024.1.3/projects/plato/plato-fits/README.md +1 -0
- cgse-2024.1.3/projects/plato/plato-fits/pyproject.toml +55 -0
- 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
- cgse-2024.1.3/projects/plato/plato-hdf5/pyproject.toml +55 -0
- cgse-2024.1.3/projects/plato/plato-hdf5/src/egse/plugins/storage/hdf5.py +154 -0
- cgse-2024.1.3/projects/plato/plato-spw/pyproject.toml +50 -0
- {cgse-2023.37.0 → cgse-2024.1.3/projects/plato/plato-spw}/src/egse/spw.py +1 -0
- cgse-2024.1.3/pyproject.toml +36 -0
- cgse-2023.37.0/COPYING +0 -674
- cgse-2023.37.0/COPYING.LESSER +0 -165
- cgse-2023.37.0/PKG-INFO +0 -144
- cgse-2023.37.0/README.md +0 -71
- cgse-2023.37.0/pyproject.toml +0 -181
- cgse-2023.37.0/setup.cfg +0 -4
- cgse-2023.37.0/src/cgse.egg-info/PKG-INFO +0 -144
- cgse-2023.37.0/src/cgse.egg-info/SOURCES.txt +0 -785
- cgse-2023.37.0/src/cgse.egg-info/dependency_links.txt +0 -1
- cgse-2023.37.0/src/cgse.egg-info/entry_points.txt +0 -75
- cgse-2023.37.0/src/cgse.egg-info/requires.txt +0 -59
- cgse-2023.37.0/src/cgse.egg-info/top_level.txt +0 -2
- cgse-2023.37.0/src/cov_html/keybd_closed.png +0 -0
- cgse-2023.37.0/src/cov_html/keybd_open.png +0 -0
- cgse-2023.37.0/src/demos/hexapod_demo.py +0 -28
- cgse-2023.37.0/src/demos/stages_demo.py +0 -38
- cgse-2023.37.0/src/egse/__init__.py +0 -12
- cgse-2023.37.0/src/egse/__main__.py +0 -32
- cgse-2023.37.0/src/egse/aeu/aeu.py +0 -5235
- cgse-2023.37.0/src/egse/aeu/aeu_awg.yaml +0 -265
- cgse-2023.37.0/src/egse/aeu/aeu_crio.yaml +0 -273
- cgse-2023.37.0/src/egse/aeu/aeu_cs.py +0 -626
- cgse-2023.37.0/src/egse/aeu/aeu_devif.py +0 -321
- cgse-2023.37.0/src/egse/aeu/aeu_main_ui.py +0 -912
- cgse-2023.37.0/src/egse/aeu/aeu_metrics.py +0 -131
- cgse-2023.37.0/src/egse/aeu/aeu_protocol.py +0 -463
- cgse-2023.37.0/src/egse/aeu/aeu_psu.yaml +0 -204
- cgse-2023.37.0/src/egse/aeu/aeu_ui.py +0 -873
- cgse-2023.37.0/src/egse/aeu/arbdata/FccdRead.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/FccdRead_min_points 2.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/FccdRead_min_points.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/HeaterSync_FccdRead.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/HeaterSync_ccdRead25.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/HeaterSync_ccdRead31_25.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/HeaterSync_ccdRead37_50.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/HeaterSync_ccdRead43_75.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/HeaterSync_ccdRead50.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/Heater_FccdRead_min_points 2.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/Heater_FccdRead_min_points.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead25.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead25_150ms.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead31_25.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead31_25_150ms.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead37_50.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead37_50_150ms.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead43_75.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead43_75_150ms.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead50.arb +0 -2
- cgse-2023.37.0/src/egse/aeu/arbdata/ccdRead50_150ms.arb +0 -2
- cgse-2023.37.0/src/egse/alert/__init__.py +0 -1046
- cgse-2023.37.0/src/egse/alert/alertman.yaml +0 -37
- cgse-2023.37.0/src/egse/alert/alertman_cs.py +0 -234
- cgse-2023.37.0/src/egse/alert/alertman_ui.py +0 -603
- cgse-2023.37.0/src/egse/alert/gsm/beaglebone.py +0 -138
- cgse-2023.37.0/src/egse/alert/gsm/beaglebone.yaml +0 -51
- cgse-2023.37.0/src/egse/alert/gsm/beaglebone_cs.py +0 -108
- cgse-2023.37.0/src/egse/alert/gsm/beaglebone_devif.py +0 -130
- cgse-2023.37.0/src/egse/alert/gsm/beaglebone_protocol.py +0 -48
- cgse-2023.37.0/src/egse/camera.py +0 -44
- cgse-2023.37.0/src/egse/collimator/fcul/ogse.py +0 -1077
- cgse-2023.37.0/src/egse/collimator/fcul/ogse.yaml +0 -14
- cgse-2023.37.0/src/egse/collimator/fcul/ogse_cs.py +0 -154
- cgse-2023.37.0/src/egse/collimator/fcul/ogse_devif.py +0 -358
- cgse-2023.37.0/src/egse/collimator/fcul/ogse_protocol.py +0 -129
- cgse-2023.37.0/src/egse/collimator/fcul/ogse_sim.py +0 -431
- cgse-2023.37.0/src/egse/collimator/fcul/ogse_ui.py +0 -1108
- cgse-2023.37.0/src/egse/confman/confman_ui.py +0 -381
- cgse-2023.37.0/src/egse/confman/setup_ui.py +0 -565
- cgse-2023.37.0/src/egse/csl/__init__.py +0 -50
- cgse-2023.37.0/src/egse/csl/commanding.py +0 -78
- cgse-2023.37.0/src/egse/csl/icons/hexapod-connected-selected.svg +0 -30
- cgse-2023.37.0/src/egse/csl/icons/hexapod-connected.svg +0 -30
- cgse-2023.37.0/src/egse/csl/icons/hexapod-homing-selected.svg +0 -68
- cgse-2023.37.0/src/egse/csl/icons/hexapod-homing.svg +0 -68
- cgse-2023.37.0/src/egse/csl/icons/hexapod-retract-selected.svg +0 -56
- cgse-2023.37.0/src/egse/csl/icons/hexapod-retract.svg +0 -51
- cgse-2023.37.0/src/egse/csl/icons/hexapod-zero-selected.svg +0 -56
- cgse-2023.37.0/src/egse/csl/icons/hexapod-zero.svg +0 -56
- cgse-2023.37.0/src/egse/csl/icons/stop.svg +0 -1
- cgse-2023.37.0/src/egse/csl/initialisation.py +0 -102
- cgse-2023.37.0/src/egse/csl/mech_pos_settings.yaml +0 -18
- cgse-2023.37.0/src/egse/das.py +0 -1247
- cgse-2023.37.0/src/egse/das.yaml +0 -7
- cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00000_170620_150000.yaml +0 -5
- cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00001_170620_151010.yaml +0 -69
- cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00002_170620_151020.yaml +0 -69
- cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00003_170620_151030.yaml +0 -69
- cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00004_170620_151040.yaml +0 -69
- cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00005_170620_151050.yaml +0 -69
- cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00006_170620_151060.yaml +0 -69
- cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00007_170620_151070.yaml +0 -69
- cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00008_170620_151080.yaml +0 -75
- cgse-2023.37.0/src/egse/data/conf/SETUP_CSL_00010_210308_083016.yaml +0 -138
- cgse-2023.37.0/src/egse/data/conf/SETUP_INTA_00000_170620_150000.yaml +0 -4
- cgse-2023.37.0/src/egse/data/conf/SETUP_SRON_00000_170620_150000.yaml +0 -4
- cgse-2023.37.0/src/egse/dpu/__init__.py +0 -2681
- cgse-2023.37.0/src/egse/dpu/ccd_ui.py +0 -508
- cgse-2023.37.0/src/egse/dpu/dpu.py +0 -786
- cgse-2023.37.0/src/egse/dpu/dpu.yaml +0 -153
- cgse-2023.37.0/src/egse/dpu/dpu_cs.py +0 -272
- cgse-2023.37.0/src/egse/dpu/dpu_ui.py +0 -668
- cgse-2023.37.0/src/egse/dpu/fitsgen.py +0 -2077
- cgse-2023.37.0/src/egse/dpu/fitsgen_test.py +0 -752
- cgse-2023.37.0/src/egse/dpu/fitsgen_ui.py +0 -399
- cgse-2023.37.0/src/egse/dpu/hdf5_model.py +0 -332
- cgse-2023.37.0/src/egse/dpu/hdf5_ui.py +0 -277
- cgse-2023.37.0/src/egse/dpu/hdf5_viewer.py +0 -506
- cgse-2023.37.0/src/egse/dpu/hk_ui.py +0 -468
- cgse-2023.37.0/src/egse/dpu_commands.py +0 -81
- cgse-2023.37.0/src/egse/dsi/constants.py +0 -220
- cgse-2023.37.0/src/egse/dsi/esl.py +0 -870
- cgse-2023.37.0/src/egse/dsi/rmap.py +0 -1042
- cgse-2023.37.0/src/egse/dsi/rmapci.py +0 -37
- cgse-2023.37.0/src/egse/dsi/spw.py +0 -154
- cgse-2023.37.0/src/egse/dsi/spw_state.py +0 -29
- cgse-2023.37.0/src/egse/dyndummy.py +0 -179
- cgse-2023.37.0/src/egse/fdir/__init__.py +0 -28
- cgse-2023.37.0/src/egse/fdir/fdir_manager.py +0 -85
- cgse-2023.37.0/src/egse/fdir/fdir_manager.yaml +0 -51
- cgse-2023.37.0/src/egse/fdir/fdir_manager_controller.py +0 -228
- cgse-2023.37.0/src/egse/fdir/fdir_manager_cs.py +0 -164
- cgse-2023.37.0/src/egse/fdir/fdir_manager_interface.py +0 -25
- cgse-2023.37.0/src/egse/fdir/fdir_remote.py +0 -73
- cgse-2023.37.0/src/egse/fdir/fdir_remote.yaml +0 -37
- cgse-2023.37.0/src/egse/fdir/fdir_remote_controller.py +0 -50
- cgse-2023.37.0/src/egse/fdir/fdir_remote_cs.py +0 -97
- cgse-2023.37.0/src/egse/fdir/fdir_remote_interface.py +0 -14
- cgse-2023.37.0/src/egse/fdir/fdir_remote_popup.py +0 -31
- cgse-2023.37.0/src/egse/fee/__init__.py +0 -114
- cgse-2023.37.0/src/egse/fee/f_fee_register.yaml +0 -43
- cgse-2023.37.0/src/egse/fee/fee.py +0 -631
- cgse-2023.37.0/src/egse/fee/feesim.py +0 -750
- cgse-2023.37.0/src/egse/fee/n_fee_hk.py +0 -761
- cgse-2023.37.0/src/egse/fee/nfee.py +0 -187
- cgse-2023.37.0/src/egse/filterwheel/__init__.py +0 -4
- cgse-2023.37.0/src/egse/filterwheel/eksma/__init__.py +0 -24
- cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc4.py +0 -661
- cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc4.yaml +0 -121
- cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc4_cs.py +0 -144
- cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc4_devif.py +0 -473
- cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc4_protocol.py +0 -81
- cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc4_ui.py +0 -940
- cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc5.py +0 -111
- cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc5.yaml +0 -105
- cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc5_controller.py +0 -307
- cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc5_cs.py +0 -141
- cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc5_interface.py +0 -65
- cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc5_simulator.py +0 -29
- cgse-2023.37.0/src/egse/filterwheel/eksma/fw8smc5_ui.py +0 -1068
- cgse-2023.37.0/src/egse/filterwheel/eksma/testpythonfw.py +0 -215
- cgse-2023.37.0/src/egse/fov/__init__.py +0 -65
- cgse-2023.37.0/src/egse/fov/fov_hk.py +0 -710
- cgse-2023.37.0/src/egse/fov/fov_ui.py +0 -861
- cgse-2023.37.0/src/egse/fov/fov_ui_controller.py +0 -140
- cgse-2023.37.0/src/egse/fov/fov_ui_model.py +0 -200
- cgse-2023.37.0/src/egse/fov/fov_ui_view.py +0 -345
- cgse-2023.37.0/src/egse/gimbal/__init__.py +0 -32
- cgse-2023.37.0/src/egse/gimbal/symetrie/__init__.py +0 -26
- cgse-2023.37.0/src/egse/gimbal/symetrie/alpha.py +0 -586
- cgse-2023.37.0/src/egse/gimbal/symetrie/generic_gimbal_ui.py +0 -1521
- cgse-2023.37.0/src/egse/gimbal/symetrie/gimbal.py +0 -877
- cgse-2023.37.0/src/egse/gimbal/symetrie/gimbal.yaml +0 -168
- cgse-2023.37.0/src/egse/gimbal/symetrie/gimbal_cs.py +0 -183
- cgse-2023.37.0/src/egse/gimbal/symetrie/gimbal_protocol.py +0 -135
- cgse-2023.37.0/src/egse/gimbal/symetrie/gimbal_ui.py +0 -361
- cgse-2023.37.0/src/egse/gimbal/symetrie/pmac.py +0 -1006
- cgse-2023.37.0/src/egse/graph.py +0 -132
- cgse-2023.37.0/src/egse/gui/focalplane.py +0 -1281
- cgse-2023.37.0/src/egse/gui/formatter.py +0 -10
- cgse-2023.37.0/src/egse/gui/mechanisms.py +0 -588
- cgse-2023.37.0/src/egse/gui/stripchart.py +0 -729
- cgse-2023.37.0/src/egse/h5.py +0 -274
- cgse-2023.37.0/src/egse/help/help_ui.py +0 -126
- cgse-2023.37.0/src/egse/hexapod/symetrie/pmac_regex.py +0 -83
- cgse-2023.37.0/src/egse/hk.py +0 -765
- cgse-2023.37.0/src/egse/icons/logo-puna.svg +0 -92
- cgse-2023.37.0/src/egse/images/big-rotation-stage.png +0 -0
- cgse-2023.37.0/src/egse/images/connected-100.png +0 -0
- cgse-2023.37.0/src/egse/images/cross.svg +0 -6
- cgse-2023.37.0/src/egse/images/disconnected-100.png +0 -0
- cgse-2023.37.0/src/egse/images/gui-icon.png +0 -0
- cgse-2023.37.0/src/egse/images/home.svg +0 -6
- cgse-2023.37.0/src/egse/images/info-icon.png +0 -0
- cgse-2023.37.0/src/egse/images/led-black.svg +0 -89
- cgse-2023.37.0/src/egse/images/led-green.svg +0 -85
- cgse-2023.37.0/src/egse/images/led-orange.svg +0 -85
- cgse-2023.37.0/src/egse/images/led-red.svg +0 -85
- cgse-2023.37.0/src/egse/images/load-icon.png +0 -0
- cgse-2023.37.0/src/egse/images/load-setup.png +0 -0
- cgse-2023.37.0/src/egse/images/load.png +0 -0
- cgse-2023.37.0/src/egse/images/pause.png +0 -0
- cgse-2023.37.0/src/egse/images/play-button.svg +0 -8
- cgse-2023.37.0/src/egse/images/play.png +0 -0
- cgse-2023.37.0/src/egse/images/process-status.png +0 -0
- cgse-2023.37.0/src/egse/images/restart.png +0 -0
- cgse-2023.37.0/src/egse/images/search.png +0 -0
- cgse-2023.37.0/src/egse/images/sma.png +0 -0
- cgse-2023.37.0/src/egse/images/start.png +0 -0
- cgse-2023.37.0/src/egse/images/stop-button.svg +0 -8
- cgse-2023.37.0/src/egse/images/stop.png +0 -0
- cgse-2023.37.0/src/egse/images/switch-off.svg +0 -48
- cgse-2023.37.0/src/egse/images/switch-on.svg +0 -48
- cgse-2023.37.0/src/egse/images/undo.png +0 -0
- cgse-2023.37.0/src/egse/images/update-button.svg +0 -11
- cgse-2023.37.0/src/egse/imageviewer/exposureselection.py +0 -475
- cgse-2023.37.0/src/egse/imageviewer/imageviewer.py +0 -198
- cgse-2023.37.0/src/egse/imageviewer/matchfocalplane.py +0 -179
- cgse-2023.37.0/src/egse/imageviewer/subfieldposition.py +0 -133
- cgse-2023.37.0/src/egse/lampcontrol/__init__.py +0 -4
- cgse-2023.37.0/src/egse/lampcontrol/beaglebone/beaglebone.py +0 -178
- cgse-2023.37.0/src/egse/lampcontrol/beaglebone/beaglebone.yaml +0 -62
- cgse-2023.37.0/src/egse/lampcontrol/beaglebone/beaglebone_cs.py +0 -106
- cgse-2023.37.0/src/egse/lampcontrol/beaglebone/beaglebone_devif.py +0 -150
- cgse-2023.37.0/src/egse/lampcontrol/beaglebone/beaglebone_protocol.py +0 -73
- cgse-2023.37.0/src/egse/lampcontrol/energetiq/__init__.py +0 -22
- cgse-2023.37.0/src/egse/lampcontrol/energetiq/eq99.yaml +0 -98
- cgse-2023.37.0/src/egse/lampcontrol/energetiq/lampEQ99.py +0 -283
- cgse-2023.37.0/src/egse/lampcontrol/energetiq/lampEQ99_cs.py +0 -128
- cgse-2023.37.0/src/egse/lampcontrol/energetiq/lampEQ99_devif.py +0 -158
- cgse-2023.37.0/src/egse/lampcontrol/energetiq/lampEQ99_encode_decode_errors.py +0 -73
- cgse-2023.37.0/src/egse/lampcontrol/energetiq/lampEQ99_protocol.py +0 -69
- cgse-2023.37.0/src/egse/lampcontrol/energetiq/lampEQ99_ui.py +0 -465
- cgse-2023.37.0/src/egse/lib/CentOS-7/EtherSpaceLink_v34_86.dylib +0 -0
- cgse-2023.37.0/src/egse/lib/CentOS-8/ESL-RMAP_v34_86.dylib +0 -0
- cgse-2023.37.0/src/egse/lib/CentOS-8/EtherSpaceLink_v34_86.dylib +0 -0
- cgse-2023.37.0/src/egse/lib/Debian/ESL-RMAP_v34_86.dylib +0 -0
- cgse-2023.37.0/src/egse/lib/Debian/EtherSpaceLink_v34_86.dylib +0 -0
- cgse-2023.37.0/src/egse/lib/Debian/libetherspacelink_v35_21.dylib +0 -0
- cgse-2023.37.0/src/egse/lib/Linux/ESL-RMAP_v34_86.dylib +0 -0
- cgse-2023.37.0/src/egse/lib/Linux/EtherSpaceLink_v34_86.dylib +0 -0
- cgse-2023.37.0/src/egse/lib/Ubuntu-20/ESL-RMAP_v34_86.dylib +0 -0
- cgse-2023.37.0/src/egse/lib/Ubuntu-20/EtherSpaceLink_v34_86.dylib +0 -0
- cgse-2023.37.0/src/egse/lib/gssw/python3-gssw_2.2.3+31f63c9f-1_all.deb +0 -0
- cgse-2023.37.0/src/egse/lib/macOS/ESL-RMAP_v34_86.dylib +0 -0
- cgse-2023.37.0/src/egse/lib/macOS/EtherSpaceLink_v34_86.dylib +0 -0
- cgse-2023.37.0/src/egse/lib/ximc/__pycache__/pyximc.cpython-38 2.pyc +0 -0
- cgse-2023.37.0/src/egse/lib/ximc/__pycache__/pyximc.cpython-38.pyc +0 -0
- cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/Frameworks/libbindy.dylib +0 -0
- cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/Frameworks/libxiwrapper.dylib +0 -0
- cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/Headers/ximc.h +0 -5510
- cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/Resources/Info.plist +0 -42
- cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/Resources/keyfile.sqlite +0 -0
- cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/libbindy.so +0 -0
- cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/libximc +0 -0
- cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/libximc.so +0 -0
- cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/libximc.so.7.0.0 +0 -0
- cgse-2023.37.0/src/egse/lib/ximc/libximc.framework/libxiwrapper.so +0 -0
- cgse-2023.37.0/src/egse/lib/ximc/pyximc.py +0 -922
- cgse-2023.37.0/src/egse/listener.py +0 -73
- cgse-2023.37.0/src/egse/metrics.py +0 -98
- cgse-2023.37.0/src/egse/ni/alarms/__init__.py +0 -26
- cgse-2023.37.0/src/egse/ni/alarms/cdaq9375.py +0 -300
- cgse-2023.37.0/src/egse/ni/alarms/cdaq9375.yaml +0 -89
- cgse-2023.37.0/src/egse/ni/alarms/cdaq9375_cs.py +0 -130
- cgse-2023.37.0/src/egse/ni/alarms/cdaq9375_devif.py +0 -183
- cgse-2023.37.0/src/egse/ni/alarms/cdaq9375_protocol.py +0 -48
- cgse-2023.37.0/src/egse/obs_inspection.py +0 -163
- cgse-2023.37.0/src/egse/powermeter/ni/__init__.py +0 -38
- cgse-2023.37.0/src/egse/powermeter/ni/cdaq9184.py +0 -224
- cgse-2023.37.0/src/egse/powermeter/ni/cdaq9184.yaml +0 -73
- cgse-2023.37.0/src/egse/powermeter/ni/cdaq9184_cs.py +0 -130
- cgse-2023.37.0/src/egse/powermeter/ni/cdaq9184_devif.py +0 -201
- cgse-2023.37.0/src/egse/powermeter/ni/cdaq9184_protocol.py +0 -48
- cgse-2023.37.0/src/egse/powermeter/ni/cdaq9184_ui.py +0 -544
- cgse-2023.37.0/src/egse/powermeter/thorlabs/__init__.py +0 -25
- cgse-2023.37.0/src/egse/powermeter/thorlabs/pm100a.py +0 -380
- cgse-2023.37.0/src/egse/powermeter/thorlabs/pm100a.yaml +0 -132
- cgse-2023.37.0/src/egse/powermeter/thorlabs/pm100a_cs.py +0 -136
- cgse-2023.37.0/src/egse/powermeter/thorlabs/pm100a_devif.py +0 -127
- cgse-2023.37.0/src/egse/powermeter/thorlabs/pm100a_protocol.py +0 -80
- cgse-2023.37.0/src/egse/powermeter/thorlabs/pm100a_ui.py +0 -725
- cgse-2023.37.0/src/egse/procman/cannot_start_process_popup.py +0 -43
- cgse-2023.37.0/src/egse/procman/procman_ui.py +0 -2081
- cgse-2023.37.0/src/egse/randomwalk.py +0 -140
- cgse-2023.37.0/src/egse/reg.py +0 -585
- cgse-2023.37.0/src/egse/reprocess.py +0 -675
- cgse-2023.37.0/src/egse/rst.py +0 -135
- cgse-2023.37.0/src/egse/search.py +0 -182
- cgse-2023.37.0/src/egse/serialdevice.py +0 -190
- cgse-2023.37.0/src/egse/shutter/__init__.py +0 -0
- cgse-2023.37.0/src/egse/shutter/thorlabs/__init__.py +0 -19
- cgse-2023.37.0/src/egse/shutter/thorlabs/ksc101.py +0 -205
- cgse-2023.37.0/src/egse/shutter/thorlabs/ksc101.yaml +0 -105
- cgse-2023.37.0/src/egse/shutter/thorlabs/ksc101_cs.py +0 -136
- cgse-2023.37.0/src/egse/shutter/thorlabs/ksc101_devif.py +0 -201
- cgse-2023.37.0/src/egse/shutter/thorlabs/ksc101_protocol.py +0 -69
- cgse-2023.37.0/src/egse/shutter/thorlabs/ksc101_ui.py +0 -548
- cgse-2023.37.0/src/egse/shutter/thorlabs/sc10.py +0 -82
- cgse-2023.37.0/src/egse/shutter/thorlabs/sc10.yaml +0 -52
- cgse-2023.37.0/src/egse/shutter/thorlabs/sc10_controller.py +0 -81
- cgse-2023.37.0/src/egse/shutter/thorlabs/sc10_cs.py +0 -108
- cgse-2023.37.0/src/egse/shutter/thorlabs/sc10_interface.py +0 -25
- cgse-2023.37.0/src/egse/shutter/thorlabs/sc10_simulator.py +0 -30
- cgse-2023.37.0/src/egse/simulator.py +0 -41
- cgse-2023.37.0/src/egse/slack.py +0 -61
- cgse-2023.37.0/src/egse/socketdevice.py +0 -218
- cgse-2023.37.0/src/egse/sockets.py +0 -218
- cgse-2023.37.0/src/egse/stages/__init__.py +0 -12
- cgse-2023.37.0/src/egse/stages/aerotech/ensemble.py +0 -247
- cgse-2023.37.0/src/egse/stages/aerotech/ensemble.yaml +0 -205
- cgse-2023.37.0/src/egse/stages/aerotech/ensemble_controller.py +0 -275
- cgse-2023.37.0/src/egse/stages/aerotech/ensemble_cs.py +0 -110
- cgse-2023.37.0/src/egse/stages/aerotech/ensemble_interface.py +0 -132
- cgse-2023.37.0/src/egse/stages/aerotech/ensemble_parameters.py +0 -433
- cgse-2023.37.0/src/egse/stages/aerotech/ensemble_simulator.py +0 -27
- cgse-2023.37.0/src/egse/stages/aerotech/mgse_sim.py +0 -193
- cgse-2023.37.0/src/egse/stages/arun/smd3.py +0 -111
- cgse-2023.37.0/src/egse/stages/arun/smd3.yaml +0 -68
- cgse-2023.37.0/src/egse/stages/arun/smd3_controller.py +0 -472
- cgse-2023.37.0/src/egse/stages/arun/smd3_cs.py +0 -112
- cgse-2023.37.0/src/egse/stages/arun/smd3_interface.py +0 -53
- cgse-2023.37.0/src/egse/stages/arun/smd3_simulator.py +0 -27
- cgse-2023.37.0/src/egse/stages/arun/smd3_stop.py +0 -16
- cgse-2023.37.0/src/egse/stages/huber/__init__.py +0 -49
- cgse-2023.37.0/src/egse/stages/huber/smc9300.py +0 -904
- cgse-2023.37.0/src/egse/stages/huber/smc9300.yaml +0 -63
- cgse-2023.37.0/src/egse/stages/huber/smc9300_cs.py +0 -178
- cgse-2023.37.0/src/egse/stages/huber/smc9300_devif.py +0 -345
- cgse-2023.37.0/src/egse/stages/huber/smc9300_protocol.py +0 -111
- cgse-2023.37.0/src/egse/stages/huber/smc9300_sim.py +0 -547
- cgse-2023.37.0/src/egse/stages/huber/smc9300_ui.py +0 -973
- cgse-2023.37.0/src/egse/statemachine.py +0 -274
- cgse-2023.37.0/src/egse/synoptics/__init__.py +0 -412
- cgse-2023.37.0/src/egse/synoptics/syn.yaml +0 -9
- cgse-2023.37.0/src/egse/synoptics/syn_cs.py +0 -195
- cgse-2023.37.0/src/egse/tcs/__init__.py +0 -14
- cgse-2023.37.0/src/egse/tcs/tcs.py +0 -874
- cgse-2023.37.0/src/egse/tcs/tcs.yaml +0 -14
- cgse-2023.37.0/src/egse/tcs/tcs_cs.py +0 -202
- cgse-2023.37.0/src/egse/tcs/tcs_devif.py +0 -292
- cgse-2023.37.0/src/egse/tcs/tcs_protocol.py +0 -177
- cgse-2023.37.0/src/egse/tcs/tcs_sim.py +0 -177
- cgse-2023.37.0/src/egse/tcs/tcs_ui.py +0 -543
- cgse-2023.37.0/src/egse/tdms.py +0 -171
- cgse-2023.37.0/src/egse/tempcontrol/__init__.py +0 -23
- cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34970.py +0 -109
- cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34970.yaml +0 -44
- cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34970_cs.py +0 -116
- cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34970_devif.py +0 -182
- cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34970_protocol.py +0 -99
- cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34972.py +0 -111
- cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34972.yaml +0 -44
- cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34972_cs.py +0 -117
- cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34972_devif.py +0 -189
- cgse-2023.37.0/src/egse/tempcontrol/agilent/agilent34972_protocol.py +0 -101
- cgse-2023.37.0/src/egse/tempcontrol/beaglebone/beaglebone.py +0 -342
- cgse-2023.37.0/src/egse/tempcontrol/beaglebone/beaglebone.yaml +0 -110
- cgse-2023.37.0/src/egse/tempcontrol/beaglebone/beaglebone_cs.py +0 -117
- cgse-2023.37.0/src/egse/tempcontrol/beaglebone/beaglebone_protocol.py +0 -135
- cgse-2023.37.0/src/egse/tempcontrol/beaglebone/beaglebone_ui.py +0 -681
- cgse-2023.37.0/src/egse/tempcontrol/digalox/digalox.py +0 -107
- cgse-2023.37.0/src/egse/tempcontrol/digalox/digalox.yaml +0 -36
- cgse-2023.37.0/src/egse/tempcontrol/digalox/digalox_cs.py +0 -112
- cgse-2023.37.0/src/egse/tempcontrol/digalox/digalox_protocol.py +0 -55
- cgse-2023.37.0/src/egse/tempcontrol/keithley/__init__.py +0 -33
- cgse-2023.37.0/src/egse/tempcontrol/keithley/daq6510.py +0 -662
- cgse-2023.37.0/src/egse/tempcontrol/keithley/daq6510.yaml +0 -105
- cgse-2023.37.0/src/egse/tempcontrol/keithley/daq6510_cs.py +0 -163
- cgse-2023.37.0/src/egse/tempcontrol/keithley/daq6510_devif.py +0 -343
- cgse-2023.37.0/src/egse/tempcontrol/keithley/daq6510_protocol.py +0 -78
- cgse-2023.37.0/src/egse/tempcontrol/keithley/daq6510_sim.py +0 -186
- cgse-2023.37.0/src/egse/tempcontrol/lakeshore/__init__.py +0 -33
- cgse-2023.37.0/src/egse/tempcontrol/lakeshore/lsci.py +0 -361
- cgse-2023.37.0/src/egse/tempcontrol/lakeshore/lsci.yaml +0 -162
- cgse-2023.37.0/src/egse/tempcontrol/lakeshore/lsci_cs.py +0 -174
- cgse-2023.37.0/src/egse/tempcontrol/lakeshore/lsci_devif.py +0 -292
- cgse-2023.37.0/src/egse/tempcontrol/lakeshore/lsci_protocol.py +0 -73
- cgse-2023.37.0/src/egse/tempcontrol/lakeshore/lsci_ui.py +0 -389
- cgse-2023.37.0/src/egse/tempcontrol/ni/__init__.py +0 -0
- cgse-2023.37.0/src/egse/tempcontrol/spid/spid.py +0 -109
- cgse-2023.37.0/src/egse/tempcontrol/spid/spid.yaml +0 -81
- cgse-2023.37.0/src/egse/tempcontrol/spid/spid_controller.py +0 -279
- cgse-2023.37.0/src/egse/tempcontrol/spid/spid_cs.py +0 -136
- cgse-2023.37.0/src/egse/tempcontrol/spid/spid_protocol.py +0 -107
- cgse-2023.37.0/src/egse/tempcontrol/spid/spid_ui.py +0 -727
- cgse-2023.37.0/src/egse/tempcontrol/srs/__init__.py +0 -22
- cgse-2023.37.0/src/egse/tempcontrol/srs/ptc10.py +0 -875
- cgse-2023.37.0/src/egse/tempcontrol/srs/ptc10.yaml +0 -227
- cgse-2023.37.0/src/egse/tempcontrol/srs/ptc10_cs.py +0 -128
- cgse-2023.37.0/src/egse/tempcontrol/srs/ptc10_devif.py +0 -118
- cgse-2023.37.0/src/egse/tempcontrol/srs/ptc10_protocol.py +0 -42
- cgse-2023.37.0/src/egse/tempcontrol/srs/ptc10_ui.py +0 -906
- cgse-2023.37.0/src/egse/ups/apc/apc.py +0 -236
- cgse-2023.37.0/src/egse/ups/apc/apc.yaml +0 -45
- cgse-2023.37.0/src/egse/ups/apc/apc_cs.py +0 -101
- cgse-2023.37.0/src/egse/ups/apc/apc_protocol.py +0 -125
- cgse-2023.37.0/src/egse/user.yaml +0 -7
- cgse-2023.37.0/src/egse/vacuum/beaglebone/beaglebone.py +0 -149
- cgse-2023.37.0/src/egse/vacuum/beaglebone/beaglebone.yaml +0 -44
- cgse-2023.37.0/src/egse/vacuum/beaglebone/beaglebone_cs.py +0 -108
- cgse-2023.37.0/src/egse/vacuum/beaglebone/beaglebone_devif.py +0 -164
- cgse-2023.37.0/src/egse/vacuum/beaglebone/beaglebone_protocol.py +0 -193
- cgse-2023.37.0/src/egse/vacuum/beaglebone/beaglebone_ui.py +0 -638
- cgse-2023.37.0/src/egse/vacuum/instrutech/igm402.py +0 -92
- cgse-2023.37.0/src/egse/vacuum/instrutech/igm402.yaml +0 -90
- cgse-2023.37.0/src/egse/vacuum/instrutech/igm402_controller.py +0 -128
- cgse-2023.37.0/src/egse/vacuum/instrutech/igm402_cs.py +0 -108
- cgse-2023.37.0/src/egse/vacuum/instrutech/igm402_interface.py +0 -49
- cgse-2023.37.0/src/egse/vacuum/instrutech/igm402_simulator.py +0 -36
- cgse-2023.37.0/src/egse/vacuum/keller/kellerBus.py +0 -256
- cgse-2023.37.0/src/egse/vacuum/keller/leo3.py +0 -102
- cgse-2023.37.0/src/egse/vacuum/keller/leo3.yaml +0 -38
- cgse-2023.37.0/src/egse/vacuum/keller/leo3_controller.py +0 -83
- cgse-2023.37.0/src/egse/vacuum/keller/leo3_cs.py +0 -101
- cgse-2023.37.0/src/egse/vacuum/keller/leo3_interface.py +0 -33
- cgse-2023.37.0/src/egse/vacuum/mks/evision.py +0 -86
- cgse-2023.37.0/src/egse/vacuum/mks/evision.yaml +0 -75
- cgse-2023.37.0/src/egse/vacuum/mks/evision_cs.py +0 -101
- cgse-2023.37.0/src/egse/vacuum/mks/evision_devif.py +0 -316
- cgse-2023.37.0/src/egse/vacuum/mks/evision_interface.py +0 -60
- cgse-2023.37.0/src/egse/vacuum/mks/evision_simulator.py +0 -24
- cgse-2023.37.0/src/egse/vacuum/mks/evision_ui.py +0 -704
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/acp40.py +0 -87
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/acp40.yaml +0 -60
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/acp40_controller.py +0 -117
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/acp40_cs.py +0 -109
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/acp40_interface.py +0 -40
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/acp40_simulator.py +0 -39
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/tc400.py +0 -113
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/tc400.yaml +0 -83
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/tc400_controller.py +0 -140
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/tc400_cs.py +0 -109
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/tc400_interface.py +0 -70
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/tc400_simulator.py +0 -24
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/tpg261.py +0 -81
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/tpg261.yaml +0 -66
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/tpg261_controller.py +0 -150
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/tpg261_cs.py +0 -109
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/tpg261_interface.py +0 -60
- cgse-2023.37.0/src/egse/vacuum/pfeiffer/tpg261_simulator.py +0 -24
- cgse-2023.37.0/src/egse/visitedpositions.py +0 -398
- cgse-2023.37.0/src/egse/windowing.py +0 -213
- cgse-2023.37.0/src/egse/zmq/__init__.py +0 -28
- cgse-2023.37.0/src/egse/zmq/spw.py +0 -160
- cgse-2023.37.0/src/scripts/alerts/cold.yaml +0 -278
- cgse-2023.37.0/src/scripts/alerts/example_alerts.yaml +0 -54
- cgse-2023.37.0/src/scripts/alerts/transition.yaml +0 -14
- cgse-2023.37.0/src/scripts/alerts/warm.yaml +0 -49
- cgse-2023.37.0/src/scripts/analyse_n_fee_hk_data.py +0 -44
- cgse-2023.37.0/src/scripts/check_hdf5_files.py +0 -192
- cgse-2023.37.0/src/scripts/check_register_sync.py +0 -47
- cgse-2023.37.0/src/scripts/create_hdf5_report.py +0 -295
- cgse-2023.37.0/src/scripts/csl_model.py +0 -436
- cgse-2023.37.0/src/scripts/csl_restore_setup.py +0 -230
- cgse-2023.37.0/src/scripts/export-grafana-dashboards.py +0 -50
- cgse-2023.37.0/src/scripts/fdir/cs_recovery/fdir_cs_recovery.py +0 -59
- cgse-2023.37.0/src/scripts/fdir/fdir_table.yaml +0 -70
- cgse-2023.37.0/src/scripts/fdir/fdir_test_recovery.py +0 -11
- cgse-2023.37.0/src/scripts/fdir/hw_recovery/fdir_agilent_hw_recovery.py +0 -73
- cgse-2023.37.0/src/scripts/fdir/limit_recovery/fdir_agilent_limit.py +0 -64
- cgse-2023.37.0/src/scripts/fdir/limit_recovery/fdir_bb_heater_limit.py +0 -61
- cgse-2023.37.0/src/scripts/fdir/limit_recovery/fdir_ensemble_limit.py +0 -33
- cgse-2023.37.0/src/scripts/fdir/limit_recovery/fdir_pressure_limit_recovery.py +0 -71
- cgse-2023.37.0/src/scripts/fix_csv 2.py +0 -80
- cgse-2023.37.0/src/scripts/fix_csv.py +0 -80
- cgse-2023.37.0/src/scripts/n_fee_supply_voltage_calculation 2.py +0 -92
- cgse-2023.37.0/src/scripts/n_fee_supply_voltage_calculation.py +0 -92
- cgse-2023.37.0/src/scripts/playground.py +0 -30
- cgse-2023.37.0/src/scripts/print_hdf5_hk_data.py +0 -68
- cgse-2023.37.0/src/scripts/print_register_map.py +0 -39
- cgse-2023.37.0/src/scripts/sron/commanding/control_heaters.py +0 -44
- cgse-2023.37.0/src/scripts/sron/commanding/pumpdown.py +0 -46
- cgse-2023.37.0/src/scripts/sron/commanding/set_pid_setpoint.py +0 -19
- cgse-2023.37.0/src/scripts/sron/commanding/shutdown_bbb_heaters.py +0 -10
- cgse-2023.37.0/src/scripts/sron/commanding/shutdown_pumps.py +0 -33
- cgse-2023.37.0/src/scripts/sron/tm_gen/tm_gen_agilent.py +0 -38
- cgse-2023.37.0/src/scripts/sron/tm_gen/tm_gen_heaters.py +0 -4
- cgse-2023.37.0/src/scripts/sron/tm_gen/tm_gen_spid.py +0 -13
- cgse-2023.37.0/src/scripts/update_operational_cgse 2.py +0 -273
- cgse-2023.37.0/src/scripts/update_operational_cgse.py +0 -268
- cgse-2023.37.0/src/scripts/update_operational_cgse_old.py +0 -273
- cgse-2023.37.0/src/tests/conftest.py +0 -52
- cgse-2023.37.0/src/tests/data/CSL/conf/SETUP_CSL_00028_201028_155259.yaml +0 -110
- cgse-2023.37.0/src/tests/data/CSL/conf/SETUP_CSL_00029_201028_155331.yaml +0 -111
- cgse-2023.37.0/src/tests/data/CSL/conf/SETUP_CSL_00030_210311_134043.yaml +0 -196
- cgse-2023.37.0/src/tests/data/CSL/conf/SETUP_CSL_00080_210917_105245.yaml +0 -372
- cgse-2023.37.0/src/tests/data/CSL/conf/SETUP_CSL_00081_210922_142259.yaml +0 -375
- cgse-2023.37.0/src/tests/data/CSL/conf/SETUP_CSL_00082_210923_094458.yaml +0 -377
- cgse-2023.37.0/src/tests/data/SRON/conf/SETUP_SRON_00027_211119_140441.yaml +0 -430
- cgse-2023.37.0/src/tests/data/SRON/conf/SETUP_SRON_00028_211119_160406.yaml +0 -430
- cgse-2023.37.0/src/tests/data/SRON/conf/SETUP_SRON_00029_211119_172918.yaml +0 -431
- cgse-2023.37.0/src/tests/data/SRON/conf/SETUP_SRON_00030_211122_103604.yaml +0 -432
- cgse-2023.37.0/src/tests/data/SRON/conf/SETUP_SRON_00031_211123_124900.yaml +0 -433
- cgse-2023.37.0/src/tests/data/calibration.yaml +0 -10
- cgse-2023.37.0/src/tests/data/conf/SETUP_CSL_00000_170620_150000.yaml +0 -5
- cgse-2023.37.0/src/tests/data/conf/SETUP_CSL_00001_170620_151010.yaml +0 -68
- cgse-2023.37.0/src/tests/data/conf/SETUP_CSL_00010_210308_083016.yaml +0 -138
- cgse-2023.37.0/src/tests/data/confman_settings.yaml +0 -2
- cgse-2023.37.0/src/tests/data/corrupt.yaml +0 -11
- cgse-2023.37.0/src/tests/data/empty.yaml +0 -1
- cgse-2023.37.0/src/tests/data/settings.yaml +0 -26
- cgse-2023.37.0/src/tests/data/test_setup.yaml +0 -7
- cgse-2023.37.0/src/tests/helper.py +0 -21
- cgse-2023.37.0/src/tests/itest_dpu_ui.py +0 -74
- cgse-2023.37.0/src/tests/scripts/dummy_cs.py +0 -17
- cgse-2023.37.0/src/tests/scripts/empty_process.py +0 -56
- cgse-2023.37.0/src/tests/scripts/void-0.py +0 -6
- cgse-2023.37.0/src/tests/scripts/void-1.py +0 -6
- cgse-2023.37.0/src/tests/test_aeu.py +0 -1185
- cgse-2023.37.0/src/tests/test_aeu_simulator.py +0 -2913
- cgse-2023.37.0/src/tests/test_automatic_dump_mode.py +0 -93
- cgse-2023.37.0/src/tests/test_avoidance.py +0 -45
- cgse-2023.37.0/src/tests/test_cm_cs.py +0 -49
- cgse-2023.37.0/src/tests/test_confman.py +0 -10
- cgse-2023.37.0/src/tests/test_confman_controller.py +0 -24
- cgse-2023.37.0/src/tests/test_confman_functions.py +0 -91
- cgse-2023.37.0/src/tests/test_constants.py +0 -23
- cgse-2023.37.0/src/tests/test_coordinates_plot.py +0 -29
- cgse-2023.37.0/src/tests/test_coordinates_serialize.py +0 -61
- cgse-2023.37.0/src/tests/test_daq6510.py +0 -104
- cgse-2023.37.0/src/tests/test_device.py +0 -21
- cgse-2023.37.0/src/tests/test_dpu_functions.py +0 -173
- cgse-2023.37.0/src/tests/test_dpu_internals.py +0 -34
- cgse-2023.37.0/src/tests/test_dpu_monitoring.py +0 -103
- cgse-2023.37.0/src/tests/test_dpu_nfee_state.py +0 -56
- cgse-2023.37.0/src/tests/test_dpu_send_commands.py +0 -39
- cgse-2023.37.0/src/tests/test_dsi.py +0 -0
- cgse-2023.37.0/src/tests/test_env.py +0 -93
- cgse-2023.37.0/src/tests/test_esl.py +0 -62
- cgse-2023.37.0/src/tests/test_fee.py +0 -92
- cgse-2023.37.0/src/tests/test_feesim.py +0 -168
- cgse-2023.37.0/src/tests/test_filterwheel_eksma.py +0 -46
- cgse-2023.37.0/src/tests/test_fixture_with_lru_cache.py +0 -59
- cgse-2023.37.0/src/tests/test_fov_hk__ias.py +0 -25
- cgse-2023.37.0/src/tests/test_gimbal.py +0 -199
- cgse-2023.37.0/src/tests/test_graph.py +0 -272
- cgse-2023.37.0/src/tests/test_hexapod.py +0 -188
- cgse-2023.37.0/src/tests/test_hexapod_simulator.py +0 -223
- cgse-2023.37.0/src/tests/test_hexapod_zonda.py +0 -659
- cgse-2023.37.0/src/tests/test_hk.py +0 -42
- cgse-2023.37.0/src/tests/test_huber.py +0 -338
- cgse-2023.37.0/src/tests/test_huber_dev.py +0 -281
- cgse-2023.37.0/src/tests/test_imports.py +0 -44
- cgse-2023.37.0/src/tests/test_lakeshore.py +0 -91
- cgse-2023.37.0/src/tests/test_lakeshore_simulator.py +0 -38
- cgse-2023.37.0/src/tests/test_lampEQ99_encode_decode_errors.py +0 -33
- cgse-2023.37.0/src/tests/test_lampcontrol_energetiq.py +0 -109
- cgse-2023.37.0/src/tests/test_listener.py +0 -40
- cgse-2023.37.0/src/tests/test_logger.py +0 -40
- cgse-2023.37.0/src/tests/test_metrics.py +0 -47
- cgse-2023.37.0/src/tests/test_mixin.py +0 -356
- cgse-2023.37.0/src/tests/test_n_fee.py +0 -283
- cgse-2023.37.0/src/tests/test_n_fee_hk.py +0 -203
- cgse-2023.37.0/src/tests/test_n_fee_side.py +0 -138
- cgse-2023.37.0/src/tests/test_obs.py +0 -11
- cgse-2023.37.0/src/tests/test_obsid.py +0 -124
- cgse-2023.37.0/src/tests/test_ogse_functions.py +0 -166
- cgse-2023.37.0/src/tests/test_ogse_sim.py +0 -309
- cgse-2023.37.0/src/tests/test_persistence.py +0 -264
- cgse-2023.37.0/src/tests/test_persistence_hdf5.py +0 -38
- cgse-2023.37.0/src/tests/test_persistence_sqlite.py +0 -69
- cgse-2023.37.0/src/tests/test_pmac.py +0 -139
- cgse-2023.37.0/src/tests/test_pmac_regex.py +0 -137
- cgse-2023.37.0/src/tests/test_point.py +0 -90
- cgse-2023.37.0/src/tests/test_process.py +0 -206
- cgse-2023.37.0/src/tests/test_process_status.py +0 -43
- cgse-2023.37.0/src/tests/test_proxy.py +0 -200
- cgse-2023.37.0/src/tests/test_proxy_state.py +0 -57
- cgse-2023.37.0/src/tests/test_puna.py +0 -199
- cgse-2023.37.0/src/tests/test_puna_plus.py +0 -218
- cgse-2023.37.0/src/tests/test_ref_model.py +0 -68
- cgse-2023.37.0/src/tests/test_reference_frames.py +0 -480
- cgse-2023.37.0/src/tests/test_refmodel.py +0 -118
- cgse-2023.37.0/src/tests/test_reg.py +0 -454
- cgse-2023.37.0/src/tests/test_reload.py +0 -94
- cgse-2023.37.0/src/tests/test_resource.py +0 -145
- cgse-2023.37.0/src/tests/test_response.py +0 -43
- cgse-2023.37.0/src/tests/test_rmap.py +0 -133
- cgse-2023.37.0/src/tests/test_search.py +0 -40
- cgse-2023.37.0/src/tests/test_services.py +0 -176
- cgse-2023.37.0/src/tests/test_settings.py +0 -152
- cgse-2023.37.0/src/tests/test_setup.py +0 -837
- cgse-2023.37.0/src/tests/test_slack.py +0 -17
- cgse-2023.37.0/src/tests/test_spw.py +0 -398
- cgse-2023.37.0/src/tests/test_stages.py +0 -198
- cgse-2023.37.0/src/tests/test_state.py +0 -39
- cgse-2023.37.0/src/tests/test_storage.py +0 -157
- cgse-2023.37.0/src/tests/test_storage_controller.py +0 -24
- cgse-2023.37.0/src/tests/test_storage_counter.py +0 -98
- cgse-2023.37.0/src/tests/test_storage_filename.py +0 -36
- cgse-2023.37.0/src/tests/test_syn_cs.py +0 -25
- cgse-2023.37.0/src/tests/test_tcs.py +0 -201
- cgse-2023.37.0/src/tests/test_tdms.py +0 -53
- cgse-2023.37.0/src/tests/test_thorlabs_controller.py +0 -41
- cgse-2023.37.0/src/tests/test_thorlabs_proxy.py +0 -32
- cgse-2023.37.0/src/tests/test_thorlabs_simulator.py +0 -32
- cgse-2023.37.0/src/tests/test_twos_complement.py +0 -12
- cgse-2023.37.0/src/tests/test_version.py +0 -24
- cgse-2023.37.0/src/tests/test_windowing.py +0 -213
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/bits.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/observer.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/services.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/services.yaml +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-common}/src/egse/state.py +0 -0
- /cgse-2023.37.0/src/__init__.py → /cgse-2024.1.3/libs/cgse-common/tests/data/data/empty_data_file.txt +0 -0
- {cgse-2023.37.0/src → cgse-2024.1.3/libs/cgse-common}/tests/test_command.py +0 -0
- /cgse-2023.37.0/src/egse/collimator/__init__.py → /cgse-2024.1.3/libs/cgse-common/tests/test_control.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/__init__.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/avoidance.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/cslmodel.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/laser_tracker_to_dict.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/point.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/pyplot.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/refmodel.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/rotationMatrix.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-coordinates}/src/egse/coordinates/transform3d_addon.py +0 -0
- /cgse-2023.37.0/src/egse/collimator/fcul/__init__.py → /cgse-2024.1.3/libs/cgse-core/src/egse/confman/__main__.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/confman/confman.yaml +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/procman/__init__.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/procman/procman.yaml +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/procman/procman_cs.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-core}/src/egse/storage/storage.yaml +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/buttons.py +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu-cs-start.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu-cs-stop.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu-cs.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu_cs-started.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu_cs-stopped.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/aeu_cs.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/alert.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/arrow-double-left.png +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/arrow-double-right.png +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/arrow-up.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/backward.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/busy.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/cleaning.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/color-scheme.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/cs-connected-alert.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/cs-connected-disabled.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/cs-connected.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/cs-not-connected.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/double-left-arrow.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/double-right-arrow.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/erase-disabled.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/erase.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fitsgen-start.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fitsgen-stop.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fitsgen.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/forward.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fov-hk-start.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fov-hk-stop.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/fov-hk.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/front-desk.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/home-actioned.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/home-disabled.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/home.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/info.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/invalid.png +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-green.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-grey.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-orange.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-red.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-square-green.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-square-grey.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-square-orange.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/led-square-red.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/limit-switch-all-green.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/limit-switch-all-red.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/limit-switch-el+.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/limit-switch-el-.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/location-marker.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-dpu.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-gimbal.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-huber.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-ogse.svg +0 -0
- {cgse-2023.37.0/src/egse/csl → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-puna.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-tcs.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/logo-zonda.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/maximize.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/meter.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/more.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/n-fee-hk-start.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/n-fee-hk-stop.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/n-fee-hk.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/observing-off.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/observing-on.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/open-document-hdf5.png +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/open-document-hdf5.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/ops-mode.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/play-green.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/plugged-disabled.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/plugged.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/pm_ui.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/power-button-green.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/power-button-red.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/power-button.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/radar.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/radioactive.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/reload.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/remote-control-off.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/remote-control-on.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/repeat-blue.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/repeat.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/settings.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/shrink.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/shutter.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/sign-off.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/sign-on.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/sim-mode.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/small-buttons-go.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/small-buttons-minus.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/small-buttons-plus.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/sponge.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/start-button-disabled.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/start-button.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/stop-button-disabled.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/stop-button.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/stop-red.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/stop.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-disabled-square.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-disabled.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-off-square.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-off.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-on-square.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/switch-on.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/temperature-control.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/th_ui_logo.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/unplugged.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/unvalid.png +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/user-interface.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/vacuum.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/valid.png +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/zoom-to-pixel-dark.svg +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/icons/zoom-to-pixel-white.svg +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/led.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/libs/cgse-gui}/src/egse/gui/limitswitch.py +0 -0
- {cgse-2023.37.0/src/egse → cgse-2024.1.3/libs/cgse-gui/src/egse/gui}/styles/dark.qss +0 -0
- /cgse-2023.37.0/src/egse/styles/default.qss → /cgse-2024.1.3/libs/cgse-gui/src/egse/gui/styles.qss +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/__init__.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/alpha.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/pmac.py +0 -0
- {cgse-2023.37.0/src/egse/gimbal → cgse-2024.1.3/projects/generic/symetrie-hexapod/src/egse/hexapod}/symetrie/pmac_regex.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/puna.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/puna.yaml +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/punaplus.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda.yaml +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda_cs.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda_devif.py +0 -0
- {cgse-2023.37.0 → cgse-2024.1.3/projects/generic/symetrie-hexapod}/src/egse/hexapod/symetrie/zonda_protocol.py +0 -0
- /cgse-2023.37.0/src/egse/help/__init__.py → /cgse-2024.1.3/projects/plato/plato-hdf5/README.md +0 -0
- /cgse-2023.37.0/src/egse/powermeter/__init__.py → /cgse-2024.1.3/projects/plato/plato-spw/README.md +0 -0
cgse-2024.1.3/.gitignore
ADDED
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.
|
cgse-2024.1.3/README.md
ADDED
|
@@ -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
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
|
+

|
|
3
|
+

|
|
4
|
+

|
|
5
|
+

|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
"""
|
|
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
|
-
|
|
284
|
+
_LOGGER.warning(f"Change back to previous directory failed: {exc}")
|
|
406
285
|
|
|
407
286
|
@property
|
|
408
287
|
def path(self):
|