module-qc-tools 2.2.6__tar.gz → 2.2.8__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.
- module_qc_tools-2.2.8/.gitlab-ci.yml +189 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/PKG-INFO +4 -4
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/README.md +1 -1
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/install.md +2 -2
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/measurements.md +1 -6
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/pyproject.toml +2 -5
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/_version.py +2 -2
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/ADC_CALIBRATION.py +5 -11
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/ANALOG_READBACK.py +6 -15
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/DATA_TRANSMISSION.py +6 -12
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/INJECTION_CAPACITANCE.py +5 -16
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/IV_MEASURE.py +7 -13
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/LONG_TERM_STABILITY_DCS.py +5 -11
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/LP_MODE.py +4 -15
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/OVERVOLTAGE_PROTECTION.py +4 -15
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/SLDO.py +4 -15
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/UNDERSHUNT_PROTECTION.py +4 -15
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/VCAL_CALIBRATION.py +6 -17
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/hardware_emulator.py +1 -1
- module_qc_tools-2.2.8/src/module_qc_tools/cli/upload_localdb.py +58 -0
- module_qc_tools-2.2.8/src/module_qc_tools/console.py +3 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/data/configs/emulator_merged_vmux.json +1 -1
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/data/configs/example_merged_vmux.json +2 -2
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/data/configs/example_merged_vmux_itkpixv2.json +2 -2
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/data/configs/example_separate_vmux.json +2 -2
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/data/emulator/configs/connectivity/chip/dummy_chip1.json +2 -2
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/data/emulator/configs/connectivity/chip/dummy_chip2.json +2 -2
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/data/emulator/configs/connectivity/chip/dummy_chip3.json +2 -2
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/data/emulator/configs/connectivity/chip/dummy_chip4.json +2 -2
- module_qc_tools-2.2.8/src/module_qc_tools/data/schema/common.json +1843 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/measurements/analog_readback.py +152 -68
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/measurements/data_transmission.py +2 -6
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/measurements/injection_capacitance.py +17 -35
- module_qc_tools-2.2.8/src/module_qc_tools/measurements/iv_measure.py +211 -0
- module_qc_tools-2.2.8/src/module_qc_tools/measurements/long_term_stability_dcs.py +176 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/measurements/lp_mode.py +18 -30
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/measurements/overvoltage_protection.py +18 -31
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/measurements/sldo.py +46 -44
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/measurements/undershunt_protection.py +17 -28
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/measurements/vcal_calibration.py +15 -19
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/utils/hardware_control_base.py +5 -2
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/utils/misc.py +65 -6
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/utils/yarr.py +72 -61
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/tbump.toml +2 -2
- module_qc_tools-2.2.8/tests/conftest.py +26 -0
- module_qc_tools-2.2.8/tests/test_emulator.py +143 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/tests/test_measurements.py +5 -9
- module_qc_tools-2.2.8/tests/test_schema/cutter_pcb_tab.json +29 -0
- module_qc_tools-2.2.8/tests/test_schema/cutter_pcb_tab_BAD.json +29 -0
- module_qc_tools-2.2.8/tests/test_schema.py +29 -0
- module_qc_tools-2.2.6/.gitlab-ci.yml +0 -722
- module_qc_tools-2.2.6/Measurements/ADC_CALIBRATION/2024-07-12_231707/20UPGXM1234567.json +0 -575
- module_qc_tools-2.2.6/Measurements/ADC_CALIBRATION/2024-07-12_231711/20UPGXM1234567.json +0 -766
- module_qc_tools-2.2.6/Measurements/ANALOG_READBACK/2024-07-12_231706/20UPGXM1234567.json +0 -8822
- module_qc_tools-2.2.6/Measurements/ANALOG_READBACK/2024-07-12_231707/20UPGXM1234567.json +0 -6599
- module_qc_tools-2.2.6/Measurements/DATA_TRANSMISSION/2024-07-12_231728/20UPGXM1234567.json +0 -509
- module_qc_tools-2.2.6/Measurements/INJECTION_CAPACITANCE/2024-07-12_231709/20UPGXM1234567.json +0 -562
- module_qc_tools-2.2.6/Measurements/INJECTION_CAPACITANCE/2024-07-12_231714/20UPGXM1234567.json +0 -554
- module_qc_tools-2.2.6/Measurements/INJECTION_CAPACITANCE/2024-07-12_231718/20UPGXM1234567.json +0 -416
- module_qc_tools-2.2.6/Measurements/IV_MEASURE/2024-07-12_231733/20UPGXM1234567.json +0 -266
- module_qc_tools-2.2.6/Measurements/LP_MODE/2024-07-12_231709/20UPGXM1234567.json +0 -730
- module_qc_tools-2.2.6/Measurements/LP_MODE/2024-07-12_231712/20UPGXM1234567.json +0 -548
- module_qc_tools-2.2.6/Measurements/LP_MODE/2024-07-12_231714/20UPGXM1234567.json +0 -738
- module_qc_tools-2.2.6/Measurements/OVERVOLTAGE_PROTECTION/2024-07-12_231725/20UPGXM1234567.json +0 -626
- module_qc_tools-2.2.6/Measurements/OVERVOLTAGE_PROTECTION/2024-07-12_231735/20UPGXM1234567.json +0 -464
- module_qc_tools-2.2.6/Measurements/SLDO/2024-07-12_231703/20UPGXM1234567.json +0 -1946
- module_qc_tools-2.2.6/Measurements/SLDO/2024-07-12_231709/20UPGXM1234567.json +0 -1454
- module_qc_tools-2.2.6/Measurements/SLDO/2024-07-12_231712/20UPGXM1234567.json +0 -1938
- module_qc_tools-2.2.6/Measurements/UNDERSHUNT_PROTECTION/2024-07-12_231726/20UPGXM1234567.json +0 -914
- module_qc_tools-2.2.6/Measurements/UNDERSHUNT_PROTECTION/2024-07-12_231728/20UPGXM1234567.json +0 -922
- module_qc_tools-2.2.6/Measurements/UNDERSHUNT_PROTECTION/2024-07-12_231732/20UPGXM1234567.json +0 -686
- module_qc_tools-2.2.6/Measurements/VCAL_CALIBRATION/2024-07-12_231705/20UPGXM1234567.json +0 -2618
- module_qc_tools-2.2.6/Measurements/VCAL_CALIBRATION/2024-07-12_231709/20UPGXM1234567.json +0 -2586
- module_qc_tools-2.2.6/Measurements/VCAL_CALIBRATION/2024-07-12_231715/20UPGXM1234567.json +0 -1940
- module_qc_tools-2.2.6/src/module_qc_tools/cli/upload_localdb.py +0 -146
- module_qc_tools-2.2.6/src/module_qc_tools/data/schema/ADC_CALIBRATION.json +0 -54
- module_qc_tools-2.2.6/src/module_qc_tools/data/schema/ANALOG_READBACK.json +0 -212
- module_qc_tools-2.2.6/src/module_qc_tools/data/schema/DATA_TRANSMISSION.json +0 -51
- module_qc_tools-2.2.6/src/module_qc_tools/data/schema/INJECTION_CAPACITANCE.json +0 -54
- module_qc_tools-2.2.6/src/module_qc_tools/data/schema/IV_MEASURE.json +0 -42
- module_qc_tools-2.2.6/src/module_qc_tools/data/schema/LONG_TERM_STABILITY_DCS.json +0 -81
- module_qc_tools-2.2.6/src/module_qc_tools/data/schema/LP_MODE.json +0 -63
- module_qc_tools-2.2.6/src/module_qc_tools/data/schema/OVERVOLTAGE_PROTECTION.json +0 -59
- module_qc_tools-2.2.6/src/module_qc_tools/data/schema/SLDO.json +0 -65
- module_qc_tools-2.2.6/src/module_qc_tools/data/schema/UNDERSHUNT_PROTECTION.json +0 -57
- module_qc_tools-2.2.6/src/module_qc_tools/data/schema/VCAL_CALIBRATION.json +0 -55
- module_qc_tools-2.2.6/src/module_qc_tools/data/schema/common.json +0 -985
- module_qc_tools-2.2.6/src/module_qc_tools/measurements/iv_measure.py +0 -188
- module_qc_tools-2.2.6/src/module_qc_tools/measurements/long_term_stability_dcs.py +0 -127
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/.gitignore +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/.gitmodules +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/.linkcheckerrc +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/.pre-commit-config.yaml +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/LICENSE +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/.gitkeep +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/.overrides/main.html +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/.snippets/abbrs.txt +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/.snippets/links.txt +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/assets/css/custom.css +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/config.md +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/development.md +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/history.md +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/index.md +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/meta/authors.md +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/reference/cli.md +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/reference/gen_ref_nav.py +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xIIzI.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu4mxK.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu72xKOzY.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2 +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/fonts.css +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/docs/stylesheets/readme.txt +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/emulator/README.md +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/mkdocs.yml +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/__init__.py +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/__init__.py +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/__main__.py +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/globals.py +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/main.py +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/data/emulator/configs/connectivity/20UPGXM1234567_Lx_dummy.json +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/data/emulator/configs/connectivity/20UPGXM1234567_Lx_dummy_disabledchip.json +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/data/emulator/configs/controller/specCfg-rd53b.json +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/data/emulator/module_state_template.json +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/data/schema/config.json +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/measurements/__init__.py +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/measurements/adc_calibration.py +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/utils/__init__.py +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/utils/multimeter.py +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/utils/ntc.py +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/utils/power_supply.py +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/utils/subprocess_emulator.py +0 -0
- {module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/tests/test_package.py +0 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
stages:
|
|
2
|
+
- autoupdate
|
|
3
|
+
- check
|
|
4
|
+
- test
|
|
5
|
+
- build
|
|
6
|
+
- deploy
|
|
7
|
+
|
|
8
|
+
variables:
|
|
9
|
+
# see https://docs.gitlab.com/ee/ci/caching/#cache-python-dependencies
|
|
10
|
+
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
|
|
11
|
+
PRE_COMMIT_HOME: "$CI_PROJECT_DIR/.cache/pre-commit"
|
|
12
|
+
|
|
13
|
+
cache:
|
|
14
|
+
paths:
|
|
15
|
+
- .cache/pip
|
|
16
|
+
- .cache/pre-commit
|
|
17
|
+
- venv/
|
|
18
|
+
|
|
19
|
+
image: registry.cern.ch/docker.io/library/python:3.11-buster
|
|
20
|
+
before_script:
|
|
21
|
+
# want to set up a virtualenv to cache
|
|
22
|
+
- apt-get install -y --no-install-recommends git
|
|
23
|
+
- python -V
|
|
24
|
+
- git config --global credential.helper 'cache'
|
|
25
|
+
- |
|
|
26
|
+
echo "protocol=https
|
|
27
|
+
host=gitlab.cern.ch
|
|
28
|
+
username=gitlab-ci-token
|
|
29
|
+
password=${CI_JOB_TOKEN}
|
|
30
|
+
" | git credential approve
|
|
31
|
+
- python -m venv venv
|
|
32
|
+
- source venv/bin/activate
|
|
33
|
+
- python -m pip install -U pip pipx
|
|
34
|
+
- python -m pipx ensurepath
|
|
35
|
+
- python -m pip freeze --local
|
|
36
|
+
|
|
37
|
+
# NB: repo-review requires python>=3.10
|
|
38
|
+
review:
|
|
39
|
+
image: registry.cern.ch/docker.io/library/python:3.10-buster
|
|
40
|
+
stage: check
|
|
41
|
+
script:
|
|
42
|
+
- pipx run 'sp-repo-review[cli]' .
|
|
43
|
+
|
|
44
|
+
lint:
|
|
45
|
+
stage: check
|
|
46
|
+
rules:
|
|
47
|
+
- if: $CI_PIPELINE_SOURCE == "push"
|
|
48
|
+
script:
|
|
49
|
+
- pipx run hatch run lint
|
|
50
|
+
|
|
51
|
+
pre-commit:
|
|
52
|
+
stage: check
|
|
53
|
+
variables:
|
|
54
|
+
PRE_COMMIT_HOME: "$CI_PROJECT_DIR/.cache/pre-commit"
|
|
55
|
+
rules:
|
|
56
|
+
- if: $CI_PIPELINE_SOURCE == "push"
|
|
57
|
+
script:
|
|
58
|
+
- pipx run pre-commit run --hook-stage manual --all-files
|
|
59
|
+
cache:
|
|
60
|
+
key:
|
|
61
|
+
files:
|
|
62
|
+
- .pre-commit-config.yaml
|
|
63
|
+
paths:
|
|
64
|
+
- .cache/pre-commit
|
|
65
|
+
|
|
66
|
+
pre-commit-autoupdate:
|
|
67
|
+
stage: autoupdate
|
|
68
|
+
rules:
|
|
69
|
+
- if: $CI_PIPELINE_SOURCE == "schedule"
|
|
70
|
+
when: always
|
|
71
|
+
- if:
|
|
72
|
+
$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
73
|
+
when: manual
|
|
74
|
+
# manual jobs need allow_failure? https://gitlab.com/gitlab-org/gitlab/-/issues/233876
|
|
75
|
+
allow_failure: true
|
|
76
|
+
script:
|
|
77
|
+
- python -m pip install pre-commit
|
|
78
|
+
- python -m pip freeze --local
|
|
79
|
+
- ci/pre-commit-update.sh
|
|
80
|
+
|
|
81
|
+
cache:
|
|
82
|
+
key:
|
|
83
|
+
files:
|
|
84
|
+
- .pre-commit-config.yaml
|
|
85
|
+
paths:
|
|
86
|
+
- .cache/pre-commit
|
|
87
|
+
|
|
88
|
+
tests:
|
|
89
|
+
stage: test
|
|
90
|
+
image: $IMAGE
|
|
91
|
+
script:
|
|
92
|
+
- git clone
|
|
93
|
+
https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.cern.ch/atlas-itk/pixel/module/module-qc-tools
|
|
94
|
+
- pipx run hatch run +py=${PYTHON_VERSION} dev:test
|
|
95
|
+
parallel:
|
|
96
|
+
matrix:
|
|
97
|
+
- IMAGE: "registry.cern.ch/docker.io/library/python:3.8-buster"
|
|
98
|
+
PYTHON_VERSION: "3.8"
|
|
99
|
+
- IMAGE: "registry.cern.ch/docker.io/library/python:3.9-buster"
|
|
100
|
+
PYTHON_VERSION: "3.9"
|
|
101
|
+
- IMAGE: "registry.cern.ch/docker.io/library/python:3.10-buster"
|
|
102
|
+
PYTHON_VERSION: "3.10"
|
|
103
|
+
- IMAGE: "registry.cern.ch/docker.io/library/python:3.11-buster"
|
|
104
|
+
PYTHON_VERSION: "3.11"
|
|
105
|
+
- IMAGE: "registry.cern.ch/docker.io/library/python:3.12-bullseye"
|
|
106
|
+
PYTHON_VERSION: "3.12"
|
|
107
|
+
|
|
108
|
+
.test:
|
|
109
|
+
image: registry.cern.ch/docker.io/library/python:3.8-buster
|
|
110
|
+
stage: test
|
|
111
|
+
|
|
112
|
+
make-docs:
|
|
113
|
+
stage: test
|
|
114
|
+
image: registry.cern.ch/docker.io/library/python:3.11-bullseye
|
|
115
|
+
rules:
|
|
116
|
+
- if: $CI_PIPELINE_SOURCE == "push"
|
|
117
|
+
script: pipx run hatch run docs:build-check
|
|
118
|
+
|
|
119
|
+
package:
|
|
120
|
+
stage: build
|
|
121
|
+
rules:
|
|
122
|
+
- if: $CI_PIPELINE_SOURCE == "push"
|
|
123
|
+
script:
|
|
124
|
+
- pipx run hatch run build-check
|
|
125
|
+
artifacts:
|
|
126
|
+
paths:
|
|
127
|
+
- dist/
|
|
128
|
+
expire_in: 1 day
|
|
129
|
+
|
|
130
|
+
.deploy_package:
|
|
131
|
+
stage: deploy
|
|
132
|
+
dependencies:
|
|
133
|
+
- package
|
|
134
|
+
script:
|
|
135
|
+
- pipx run hatch run upload
|
|
136
|
+
|
|
137
|
+
deploy_package_gitlab:
|
|
138
|
+
extends: .deploy_package
|
|
139
|
+
rules:
|
|
140
|
+
- if:
|
|
141
|
+
$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "push"
|
|
142
|
+
variables:
|
|
143
|
+
TWINE_REPOSITORY_URL: "https://gitlab.cern.ch/api/v4/projects/${CI_PROJECT_ID}/packages/pypi"
|
|
144
|
+
TWINE_USERNAME: "gitlab-ci-token"
|
|
145
|
+
TWINE_PASSWORD: "${CI_JOB_TOKEN}"
|
|
146
|
+
|
|
147
|
+
deploy_package_pypi:
|
|
148
|
+
extends: .deploy_package
|
|
149
|
+
only:
|
|
150
|
+
- tags
|
|
151
|
+
variables:
|
|
152
|
+
TWINE_REPOSITORY: pypi
|
|
153
|
+
TWINE_USERNAME: __token__
|
|
154
|
+
TWINE_PASSWORD: $PYPI_TOKEN
|
|
155
|
+
|
|
156
|
+
deploy_docs_dev:
|
|
157
|
+
stage: deploy
|
|
158
|
+
resource_group: documentation
|
|
159
|
+
rules:
|
|
160
|
+
- if:
|
|
161
|
+
$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "push"
|
|
162
|
+
script:
|
|
163
|
+
# the next three lines are just to commit and push pages to the project
|
|
164
|
+
- git config --global user.email
|
|
165
|
+
"project_139533_bot_52a0e9bbb1570326242e61cb6cd9d917@noreply.gitlab.cern.ch"
|
|
166
|
+
- git config --global user.name "pre-commit-ci"
|
|
167
|
+
- git remote set-url origin
|
|
168
|
+
"https://__pre-commit_ci_token:${PRE_COMMIT_CI_JOB_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/${CI_PROJECT_PATH}.git"
|
|
169
|
+
# this is the script
|
|
170
|
+
- pipx run hatch run docs:deploy dev
|
|
171
|
+
|
|
172
|
+
deploy_docs_latest:
|
|
173
|
+
stage: deploy
|
|
174
|
+
resource_group: documentation
|
|
175
|
+
only:
|
|
176
|
+
- tags
|
|
177
|
+
script:
|
|
178
|
+
# the next three lines are just to commit and push pages to the project
|
|
179
|
+
- git config --global user.email
|
|
180
|
+
"project_139533_bot_52a0e9bbb1570326242e61cb6cd9d917@noreply.gitlab.cern.ch"
|
|
181
|
+
- git config --global user.name "pre-commit-ci"
|
|
182
|
+
- git remote set-url origin
|
|
183
|
+
"https://__pre-commit_ci_token:${PRE_COMMIT_CI_JOB_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/${CI_PROJECT_PATH}.git"
|
|
184
|
+
# this is the script
|
|
185
|
+
- VERSION=$(cut -d '.' -f 1,2 <<< "${CI_COMMIT_TAG}")
|
|
186
|
+
- IS_LATEST=$([[ "${CI_COMMIT_TAG}" == *"rc"* ]] && echo "" || echo
|
|
187
|
+
"latest")
|
|
188
|
+
- echo "Building and deploying docs for ${VERSION}"
|
|
189
|
+
- pipx run hatch run docs:deploy "${VERSION}" ${IS_LATEST:+"$IS_LATEST"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: module_qc_tools
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.8
|
|
4
4
|
Summary: Module qc tools
|
|
5
5
|
Project-URL: Homepage, https://gitlab.cern.ch/atlas-itk/pixel/module/module-qc-tools
|
|
6
6
|
Project-URL: Bug Tracker, https://gitlab.cern.ch/atlas-itk/pixel/module/module-qc-tools/-/issues
|
|
@@ -34,7 +34,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
34
34
|
Requires-Python: >=3.7
|
|
35
35
|
Requires-Dist: check-jsonschema
|
|
36
36
|
Requires-Dist: importlib-resources; python_version < '3.9'
|
|
37
|
-
Requires-Dist: module-qc-data-tools>=1.0.
|
|
37
|
+
Requires-Dist: module-qc-data-tools>=1.0.22
|
|
38
38
|
Requires-Dist: numpy
|
|
39
39
|
Requires-Dist: pre-commit
|
|
40
40
|
Requires-Dist: requests
|
|
@@ -44,7 +44,7 @@ Requires-Dist: typer>=0.9.0
|
|
|
44
44
|
Requires-Dist: urllib3<2,>=1.26.11; 'el7.x86_64' in platform_release
|
|
45
45
|
Description-Content-Type: text/markdown
|
|
46
46
|
|
|
47
|
-
# module-qc-tools v2.2.
|
|
47
|
+
# module-qc-tools v2.2.8
|
|
48
48
|
|
|
49
49
|
A general python tool for running ITkPixV1.1 and ITkPixV2 module QC tests
|
|
50
50
|
|
|
@@ -92,7 +92,7 @@ package.
|
|
|
92
92
|
$ python -m venv venv
|
|
93
93
|
$ source venv/bin/activate
|
|
94
94
|
$ python -m pip install -U pip
|
|
95
|
-
$ python -m pip install -U pip module-qc-tools==2.2.
|
|
95
|
+
$ python -m pip install -U pip module-qc-tools==2.2.8
|
|
96
96
|
```
|
|
97
97
|
|
|
98
98
|
### via uv
|
|
@@ -101,7 +101,7 @@ $ python -m pip install -U pip module-qc-tools==2.2.6
|
|
|
101
101
|
$ python -m venv venv
|
|
102
102
|
$ source venv/bin/activate
|
|
103
103
|
$ python -m pip install uv
|
|
104
|
-
$ uv pip install module-qc-tools==2.2.
|
|
104
|
+
$ uv pip install module-qc-tools==2.2.8
|
|
105
105
|
```
|
|
106
106
|
|
|
107
107
|
# Usage
|
|
@@ -85,12 +85,7 @@ check-jsonschema [path to output json files] --schemafile $(module-qc-tools
|
|
|
85
85
|
|
|
86
86
|
### Uploading measurements to localDB
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
- [`module-qc-tools upload`](reference/cli.md#mqt-upload)
|
|
90
|
-
- [`module-qc-tools-upload`](reference/cli.md#mqt-upload)
|
|
91
|
-
|
|
92
|
-
The output measurement files from all measurements below can be uploaded to
|
|
93
|
-
localDB via this command.
|
|
88
|
+
Please use `mqdbt` to upload measurements to localDB.
|
|
94
89
|
|
|
95
90
|
## Sensor IV Measure
|
|
96
91
|
|
|
@@ -20,7 +20,7 @@ dependencies = [
|
|
|
20
20
|
"tabulate",
|
|
21
21
|
"pre-commit",
|
|
22
22
|
"check-jsonschema",
|
|
23
|
-
"module-qc-data-tools >= 1.0.
|
|
23
|
+
"module-qc-data-tools >= 1.0.22",
|
|
24
24
|
'importlib_resources; python_version < "3.9"',
|
|
25
25
|
"requests",
|
|
26
26
|
'urllib3>=1.26.11,<2; "el7.x86_64" in platform_release',
|
|
@@ -110,7 +110,7 @@ dependencies = [
|
|
|
110
110
|
test = "pytest -ra {args}"
|
|
111
111
|
|
|
112
112
|
[[tool.hatch.envs.dev.matrix]]
|
|
113
|
-
python = ["3.7", "3.8", "3.9", "3.10", "3.11", "pypy3.8"]
|
|
113
|
+
python = ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "pypy3.8"]
|
|
114
114
|
|
|
115
115
|
[tool.hatch.envs.docs]
|
|
116
116
|
template = "docs"
|
|
@@ -158,9 +158,6 @@ build-check = [
|
|
|
158
158
|
"validate",
|
|
159
159
|
]
|
|
160
160
|
|
|
161
|
-
[tool.ruff]
|
|
162
|
-
src = ["src"]
|
|
163
|
-
|
|
164
161
|
[tool.ruff.lint]
|
|
165
162
|
extend-select = [
|
|
166
163
|
"B", # flake8-bugbear
|
|
@@ -17,6 +17,7 @@ from module_qc_tools.cli.globals import (
|
|
|
17
17
|
OPTIONS,
|
|
18
18
|
LogLevel,
|
|
19
19
|
)
|
|
20
|
+
from module_qc_tools.console import console
|
|
20
21
|
from module_qc_tools.measurements.adc_calibration import run
|
|
21
22
|
from module_qc_tools.utils.misc import (
|
|
22
23
|
add_identifiers_metadata,
|
|
@@ -71,7 +72,7 @@ def main(
|
|
|
71
72
|
|
|
72
73
|
logger.addHandler(logging.FileHandler(output_dir.joinpath("output.log")))
|
|
73
74
|
|
|
74
|
-
config = load_config(config_path)
|
|
75
|
+
config = load_config(config_path, test_type=TEST_TYPE)
|
|
75
76
|
|
|
76
77
|
if module_connectivity:
|
|
77
78
|
config["yarr"]["connectivity"] = module_connectivity
|
|
@@ -80,18 +81,14 @@ def main(
|
|
|
80
81
|
module_serial = get_sn_from_connectivity(config["yarr"]["connectivity"])
|
|
81
82
|
layer = get_layer_from_sn(module_serial)
|
|
82
83
|
|
|
83
|
-
# create measurement config
|
|
84
|
-
measurement_config = config["tasks"]["GENERAL"]
|
|
85
|
-
measurement_config.update(config["tasks"][TEST_TYPE])
|
|
86
|
-
|
|
87
84
|
# initialize hardware
|
|
88
85
|
ps = power_supply(config["power_supply"])
|
|
89
86
|
yr = yarr(config["yarr"])
|
|
90
87
|
|
|
91
88
|
if not use_pixel_config:
|
|
92
|
-
yr.omit_pixel_config(
|
|
89
|
+
yr.omit_pixel_config()
|
|
93
90
|
|
|
94
|
-
ps.set(v=
|
|
91
|
+
ps.set(v=config["v_max"], i=config["i_config"][layer])
|
|
95
92
|
|
|
96
93
|
try:
|
|
97
94
|
data = run(config, ps, yr, layer, debug_gnd)
|
|
@@ -105,15 +102,12 @@ def main(
|
|
|
105
102
|
|
|
106
103
|
add_identifiers_metadata(data, module_serial, institution)
|
|
107
104
|
|
|
108
|
-
logger.info(
|
|
109
|
-
"==================================Summary=================================="
|
|
110
|
-
)
|
|
111
105
|
alloutput = []
|
|
112
106
|
chipnames = []
|
|
113
107
|
|
|
114
108
|
for chip in yr._enabled_chip_positions:
|
|
115
109
|
chip_name = data[chip]._meta_data["Name"]
|
|
116
|
-
|
|
110
|
+
console.print(data[chip])
|
|
117
111
|
outputDF = outputDataFrame()
|
|
118
112
|
outputDF.set_test_type(TEST_TYPE)
|
|
119
113
|
outputDF.set_results(data[chip])
|
|
@@ -17,6 +17,7 @@ from module_qc_tools.cli.globals import (
|
|
|
17
17
|
OPTIONS,
|
|
18
18
|
LogLevel,
|
|
19
19
|
)
|
|
20
|
+
from module_qc_tools.console import console
|
|
20
21
|
from module_qc_tools.measurements.analog_readback import (
|
|
21
22
|
run_tmeas,
|
|
22
23
|
run_vdda_vddd_vs_trim,
|
|
@@ -72,7 +73,7 @@ def main(
|
|
|
72
73
|
|
|
73
74
|
logger.addHandler(logging.FileHandler(output_dir.joinpath("output.log")))
|
|
74
75
|
|
|
75
|
-
config = load_config(config_path)
|
|
76
|
+
config = load_config(config_path, test_type=TEST_TYPE)
|
|
76
77
|
|
|
77
78
|
if module_connectivity:
|
|
78
79
|
config["yarr"]["connectivity"] = module_connectivity
|
|
@@ -81,20 +82,14 @@ def main(
|
|
|
81
82
|
module_serial = get_sn_from_connectivity(config["yarr"]["connectivity"])
|
|
82
83
|
layer = get_layer_from_sn(module_serial)
|
|
83
84
|
|
|
84
|
-
# create measurement config
|
|
85
|
-
analog_readback_config = config["tasks"]["GENERAL"]
|
|
86
|
-
analog_readback_config.update(config["tasks"]["ANALOG_READBACK"])
|
|
87
|
-
|
|
88
85
|
# initialize hardware
|
|
89
86
|
ps = power_supply(config["power_supply"])
|
|
90
87
|
yr = yarr(config["yarr"])
|
|
91
88
|
|
|
92
89
|
if not use_pixel_config:
|
|
93
|
-
yr.omit_pixel_config(
|
|
90
|
+
yr.omit_pixel_config()
|
|
94
91
|
|
|
95
|
-
ps.set(
|
|
96
|
-
v=analog_readback_config["v_max"], i=analog_readback_config["i_config"][layer]
|
|
97
|
-
)
|
|
92
|
+
ps.set(v=config["v_max"], i=config["i_config"][layer])
|
|
98
93
|
yr.configure()
|
|
99
94
|
|
|
100
95
|
# Measure internal vmux
|
|
@@ -144,16 +139,12 @@ def main(
|
|
|
144
139
|
add_identifiers_metadata(data_tempmeas, module_serial, institution)
|
|
145
140
|
|
|
146
141
|
# save results in json
|
|
147
|
-
logger.info(
|
|
148
|
-
"==================================Summary=================================="
|
|
149
|
-
)
|
|
150
142
|
alloutput = []
|
|
151
143
|
chipnames = []
|
|
152
144
|
|
|
153
145
|
for chip in yr._enabled_chip_positions:
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
logger.info(data_tempmeas[chip], extra={"markup": False})
|
|
146
|
+
console.print(data[chip])
|
|
147
|
+
console.print(data_tempmeas[chip])
|
|
157
148
|
chip_name = data[chip]._meta_data["Name"]
|
|
158
149
|
|
|
159
150
|
for dataobj in [data, data_tempmeas, data_vdda_vddd_vs_trim]:
|
{module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/DATA_TRANSMISSION.py
RENAMED
|
@@ -18,6 +18,7 @@ from module_qc_tools.cli.globals import (
|
|
|
18
18
|
OPTIONS,
|
|
19
19
|
LogLevel,
|
|
20
20
|
)
|
|
21
|
+
from module_qc_tools.console import console
|
|
21
22
|
from module_qc_tools.measurements.data_transmission import run
|
|
22
23
|
from module_qc_tools.utils.misc import (
|
|
23
24
|
add_identifiers_metadata,
|
|
@@ -52,7 +53,7 @@ def main(
|
|
|
52
53
|
|
|
53
54
|
if use_calib_adc:
|
|
54
55
|
logger.warning(
|
|
55
|
-
"The --use-calib-adc was supplied but Data Transmission
|
|
56
|
+
"The --use-calib-adc was supplied but Data Transmission does not use the multimeter, nor the ADC calibration. The flag will be ignored."
|
|
56
57
|
)
|
|
57
58
|
|
|
58
59
|
# if -o option used, overwrite the default output directory
|
|
@@ -70,7 +71,7 @@ def main(
|
|
|
70
71
|
|
|
71
72
|
logger.addHandler(logging.FileHandler(output_dir.joinpath("output.log")))
|
|
72
73
|
|
|
73
|
-
config = load_config(config_path)
|
|
74
|
+
config = load_config(config_path, test_type=TEST_TYPE)
|
|
74
75
|
|
|
75
76
|
# Need to pass module connectivity path to yarr class (except in case we are running the emulator)
|
|
76
77
|
if module_connectivity:
|
|
@@ -81,18 +82,14 @@ def main(
|
|
|
81
82
|
layer = get_layer_from_sn(module_serial)
|
|
82
83
|
n_lanes_per_chip = get_nlanes_from_sn(module_serial)
|
|
83
84
|
|
|
84
|
-
# create measurement config
|
|
85
|
-
measurement_config = config["tasks"]["GENERAL"]
|
|
86
|
-
measurement_config.update(config["tasks"][TEST_TYPE])
|
|
87
|
-
|
|
88
85
|
# initialize hardware
|
|
89
86
|
ps = power_supply(config["power_supply"])
|
|
90
87
|
yr = yarr(config["yarr"])
|
|
91
88
|
|
|
92
89
|
if not use_pixel_config:
|
|
93
|
-
yr.omit_pixel_config(
|
|
90
|
+
yr.omit_pixel_config()
|
|
94
91
|
|
|
95
|
-
ps.set(v=
|
|
92
|
+
ps.set(v=config["v_max"], i=config["i_config"][layer])
|
|
96
93
|
|
|
97
94
|
try:
|
|
98
95
|
data = run(
|
|
@@ -113,15 +110,12 @@ def main(
|
|
|
113
110
|
|
|
114
111
|
add_identifiers_metadata(data, module_serial, institution)
|
|
115
112
|
|
|
116
|
-
logger.info(
|
|
117
|
-
"==================================Summary=================================="
|
|
118
|
-
)
|
|
119
113
|
alloutput = []
|
|
120
114
|
chipnames = []
|
|
121
115
|
|
|
122
116
|
for chip in yr._enabled_chip_positions:
|
|
123
117
|
chip_name = data[chip]._meta_data["Name"]
|
|
124
|
-
|
|
118
|
+
console.print(data[chip])
|
|
125
119
|
outputDF = outputDataFrame()
|
|
126
120
|
outputDF.set_test_type(TEST_TYPE)
|
|
127
121
|
outputDF.set_results(data[chip])
|
{module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/INJECTION_CAPACITANCE.py
RENAMED
|
@@ -17,6 +17,7 @@ from module_qc_tools.cli.globals import (
|
|
|
17
17
|
OPTIONS,
|
|
18
18
|
LogLevel,
|
|
19
19
|
)
|
|
20
|
+
from module_qc_tools.console import console
|
|
20
21
|
from module_qc_tools.measurements.injection_capacitance import (
|
|
21
22
|
run,
|
|
22
23
|
)
|
|
@@ -53,11 +54,6 @@ def main(
|
|
|
53
54
|
|
|
54
55
|
timestart = datetime.now().strftime("%Y-%m-%d_%H%M%S")
|
|
55
56
|
|
|
56
|
-
if use_calib_adc:
|
|
57
|
-
logger.warning(
|
|
58
|
-
"The --use-calib-adc was supplied but ADC calibration cannot be performed with this option. Will ignore and use multimeter."
|
|
59
|
-
)
|
|
60
|
-
|
|
61
57
|
# if -o option used, overwrite the default output directory
|
|
62
58
|
output_dir = module_connectivity.parent if module_connectivity else base_output_dir
|
|
63
59
|
|
|
@@ -73,7 +69,7 @@ def main(
|
|
|
73
69
|
|
|
74
70
|
logger.addHandler(logging.FileHandler(output_dir.joinpath("output.log")))
|
|
75
71
|
|
|
76
|
-
config = load_config(config_path)
|
|
72
|
+
config = load_config(config_path, test_type=TEST_TYPE)
|
|
77
73
|
|
|
78
74
|
if module_connectivity:
|
|
79
75
|
config["yarr"]["connectivity"] = module_connectivity
|
|
@@ -82,18 +78,14 @@ def main(
|
|
|
82
78
|
module_serial = get_sn_from_connectivity(config["yarr"]["connectivity"])
|
|
83
79
|
layer = get_layer_from_sn(module_serial)
|
|
84
80
|
|
|
85
|
-
# create measurement config
|
|
86
|
-
measurement_config = config["tasks"]["GENERAL"]
|
|
87
|
-
measurement_config.update(config["tasks"][TEST_TYPE])
|
|
88
|
-
|
|
89
81
|
# initialize hardware
|
|
90
82
|
ps = power_supply(config["power_supply"])
|
|
91
83
|
yr = yarr(config["yarr"])
|
|
92
84
|
|
|
93
85
|
if not use_pixel_config:
|
|
94
|
-
yr.omit_pixel_config(
|
|
86
|
+
yr.omit_pixel_config()
|
|
95
87
|
|
|
96
|
-
ps.set(v=
|
|
88
|
+
ps.set(v=config["v_max"], i=config["i_config"][layer])
|
|
97
89
|
|
|
98
90
|
try:
|
|
99
91
|
data = run(config, ps, yr, layer, debug_gnd, use_calib_adc)
|
|
@@ -106,15 +98,12 @@ def main(
|
|
|
106
98
|
raise typer.Exit(1) from err
|
|
107
99
|
add_identifiers_metadata(data, module_serial, institution)
|
|
108
100
|
|
|
109
|
-
logger.info(
|
|
110
|
-
"==================================Summary=================================="
|
|
111
|
-
)
|
|
112
101
|
alloutput = []
|
|
113
102
|
chipnames = []
|
|
114
103
|
|
|
115
104
|
for chip in yr._enabled_chip_positions:
|
|
116
105
|
chip_name = data[chip]._meta_data["Name"]
|
|
117
|
-
|
|
106
|
+
console.print(data[chip])
|
|
118
107
|
outputDF = outputDataFrame()
|
|
119
108
|
outputDF.set_test_type(TEST_TYPE)
|
|
120
109
|
outputDF.set_results(data[chip])
|
|
@@ -17,6 +17,7 @@ from module_qc_tools.cli.globals import (
|
|
|
17
17
|
OPTIONS,
|
|
18
18
|
LogLevel,
|
|
19
19
|
)
|
|
20
|
+
from module_qc_tools.console import console
|
|
20
21
|
from module_qc_tools.measurements.iv_measure import run
|
|
21
22
|
from module_qc_tools.utils.misc import (
|
|
22
23
|
add_identifiers_metadata,
|
|
@@ -48,7 +49,7 @@ def main(
|
|
|
48
49
|
|
|
49
50
|
if use_calib_adc:
|
|
50
51
|
logger.warning(
|
|
51
|
-
"The --use-calib-adc was supplied but
|
|
52
|
+
"The --use-calib-adc was supplied but IV Measure does not use the multimeter, nor the ADC calibration. The flag will be ignored."
|
|
52
53
|
)
|
|
53
54
|
|
|
54
55
|
# if -o option used, overwrite the default output directory
|
|
@@ -66,7 +67,7 @@ def main(
|
|
|
66
67
|
|
|
67
68
|
logger.addHandler(logging.FileHandler(output_dir.joinpath("output.log")))
|
|
68
69
|
|
|
69
|
-
config = load_config(config_path)
|
|
70
|
+
config = load_config(config_path, test_type=TEST_TYPE)
|
|
70
71
|
|
|
71
72
|
if module_connectivity:
|
|
72
73
|
config["yarr"]["connectivity"] = module_connectivity
|
|
@@ -75,10 +76,6 @@ def main(
|
|
|
75
76
|
module_serial = get_sn_from_connectivity(config["yarr"]["connectivity"])
|
|
76
77
|
layer = get_layer_from_sn(module_serial)
|
|
77
78
|
|
|
78
|
-
# create measurement config
|
|
79
|
-
measurement_config = config["tasks"]["GENERAL"]
|
|
80
|
-
measurement_config.update(config["tasks"][TEST_TYPE])
|
|
81
|
-
|
|
82
79
|
# initialize hardware
|
|
83
80
|
ps = power_supply(config["power_supply"])
|
|
84
81
|
hv = power_supply(config["high_voltage"], name="high_voltage", is_hv=True)
|
|
@@ -87,9 +84,9 @@ def main(
|
|
|
87
84
|
logger.info(
|
|
88
85
|
f"HV polarity is {hv.getPolarity()} which is opposite to default (1)."
|
|
89
86
|
)
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
87
|
+
config["tasks"][TEST_TYPE]["v_max"] = {
|
|
88
|
+
x: abs(y) for x, y in config["v_max"].items()
|
|
89
|
+
}
|
|
93
90
|
|
|
94
91
|
try:
|
|
95
92
|
data = run(config, ps, hv, layer)
|
|
@@ -102,12 +99,9 @@ def main(
|
|
|
102
99
|
add_identifiers_metadata(data, module_serial, institution)
|
|
103
100
|
data.add_meta_data("DepletionVoltage", vdepl)
|
|
104
101
|
|
|
105
|
-
logger.info(
|
|
106
|
-
"==================================Summary=================================="
|
|
107
|
-
)
|
|
108
102
|
alloutput = []
|
|
109
103
|
|
|
110
|
-
|
|
104
|
+
console.print(data)
|
|
111
105
|
outputDF = outputDataFrame()
|
|
112
106
|
outputDF._serialNumber = module_serial
|
|
113
107
|
outputDF.set_test_type(TEST_TYPE)
|
{module_qc_tools-2.2.6 → module_qc_tools-2.2.8}/src/module_qc_tools/cli/LONG_TERM_STABILITY_DCS.py
RENAMED
|
@@ -17,6 +17,7 @@ from module_qc_tools.cli.globals import (
|
|
|
17
17
|
OPTIONS,
|
|
18
18
|
LogLevel,
|
|
19
19
|
)
|
|
20
|
+
from module_qc_tools.console import console
|
|
20
21
|
from module_qc_tools.measurements.long_term_stability_dcs import run
|
|
21
22
|
from module_qc_tools.utils.misc import (
|
|
22
23
|
add_identifiers_metadata,
|
|
@@ -79,7 +80,7 @@ def main(
|
|
|
79
80
|
|
|
80
81
|
logger.addHandler(logging.FileHandler(output_dir.joinpath("output.log")))
|
|
81
82
|
|
|
82
|
-
config = load_config(config_path)
|
|
83
|
+
config = load_config(config_path, test_type=TEST_TYPE)
|
|
83
84
|
|
|
84
85
|
if module_connectivity:
|
|
85
86
|
config["yarr"]["connectivity"] = module_connectivity
|
|
@@ -88,10 +89,6 @@ def main(
|
|
|
88
89
|
module_serial = get_sn_from_connectivity(config["yarr"]["connectivity"])
|
|
89
90
|
layer = get_layer_from_sn(module_serial)
|
|
90
91
|
|
|
91
|
-
# create measurement config
|
|
92
|
-
measurement_config = config["tasks"]["GENERAL"]
|
|
93
|
-
measurement_config.update(config["tasks"][TEST_TYPE])
|
|
94
|
-
|
|
95
92
|
# initialize hardware
|
|
96
93
|
ps = power_supply(config["power_supply"])
|
|
97
94
|
hv = power_supply(config["high_voltage"], name="high_voltage", is_hv=True)
|
|
@@ -99,9 +96,9 @@ def main(
|
|
|
99
96
|
|
|
100
97
|
if yr.running_emulator():
|
|
101
98
|
logger.info(
|
|
102
|
-
f"Turning on power supply with V={
|
|
99
|
+
f"Turning on power supply with V={config['v_max']}, I={config['i_config'][layer]}"
|
|
103
100
|
)
|
|
104
|
-
ps.on(v=
|
|
101
|
+
ps.on(v=config["v_max"], i=config["i_config"][layer])
|
|
105
102
|
hv.on(v=-100.0, i=1e-6)
|
|
106
103
|
# Only for emulator do the emulation of power on/off
|
|
107
104
|
# For real measurements avoid turn on/off the chip by commands. Just leave the chip running.
|
|
@@ -124,12 +121,9 @@ def main(
|
|
|
124
121
|
|
|
125
122
|
add_identifiers_metadata(data, module_serial, institution)
|
|
126
123
|
|
|
127
|
-
logger.info(
|
|
128
|
-
"==================================Summary=================================="
|
|
129
|
-
)
|
|
130
124
|
alloutput = []
|
|
131
125
|
|
|
132
|
-
|
|
126
|
+
console.print(data)
|
|
133
127
|
outputDF = outputDataFrame()
|
|
134
128
|
outputDF._serialNumber = module_serial
|
|
135
129
|
outputDF.set_test_type(TEST_TYPE)
|