module-qc-tools 2.4.0__tar.gz → 2.4.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/PKG-INFO +2 -2
  2. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/README.md +1 -1
  3. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/config.md +14 -14
  4. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/history.md +16 -0
  5. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/install.md +2 -2
  6. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/pyproject.toml +5 -0
  7. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/_version.py +2 -2
  8. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/hardware_emulator.py +8 -2
  9. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/measurements/data_transmission.py +17 -4
  10. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/tbump.toml +2 -2
  11. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/.gitignore +0 -0
  12. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/.gitlab-ci.yml +0 -0
  13. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/.gitmodules +0 -0
  14. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/.linkcheckerrc +0 -0
  15. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/.pre-commit-config.yaml +0 -0
  16. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/LICENSE +0 -0
  17. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/.gitkeep +0 -0
  18. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/.overrides/main.html +0 -0
  19. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/.snippets/abbrs.txt +0 -0
  20. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/.snippets/links.txt +0 -0
  21. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/assets/css/custom.css +0 -0
  22. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/development.md +0 -0
  23. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/index.md +0 -0
  24. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/measurements.md +0 -0
  25. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/meta/authors.md +0 -0
  26. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/reference/cli.md +0 -0
  27. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/reference/gen_ref_nav.py +0 -0
  28. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2 +0 -0
  29. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2 +0 -0
  30. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2 +0 -0
  31. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2 +0 -0
  32. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2 +0 -0
  33. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2 +0 -0
  34. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2 +0 -0
  35. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 +0 -0
  36. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 +0 -0
  37. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 +0 -0
  38. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2 +0 -0
  39. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2 +0 -0
  40. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 +0 -0
  41. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 +0 -0
  42. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2 +0 -0
  43. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2 +0 -0
  44. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2 +0 -0
  45. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2 +0 -0
  46. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xIIzI.woff2 +0 -0
  47. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2 +0 -0
  48. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2 +0 -0
  49. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 +0 -0
  50. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 +0 -0
  51. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 +0 -0
  52. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 +0 -0
  53. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 +0 -0
  54. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 +0 -0
  55. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2 +0 -0
  56. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 +0 -0
  57. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 +0 -0
  58. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 +0 -0
  59. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 +0 -0
  60. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 +0 -0
  61. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 +0 -0
  62. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 +0 -0
  63. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 +0 -0
  64. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu4mxK.woff2 +0 -0
  65. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 +0 -0
  66. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu72xKOzY.woff2 +0 -0
  67. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 +0 -0
  68. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 +0 -0
  69. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 +0 -0
  70. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 +0 -0
  71. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2 +0 -0
  72. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2 +0 -0
  73. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 +0 -0
  74. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 +0 -0
  75. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2 +0 -0
  76. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2 +0 -0
  77. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2 +0 -0
  78. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2 +0 -0
  79. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2 +0 -0
  80. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2 +0 -0
  81. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2 +0 -0
  82. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/fonts.css +0 -0
  83. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/docs/stylesheets/readme.txt +0 -0
  84. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/emulator/README.md +0 -0
  85. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/mkdocs.yml +0 -0
  86. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/__init__.py +0 -0
  87. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/ADC_CALIBRATION.py +0 -0
  88. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/ANALOG_READBACK.py +0 -0
  89. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/DATA_TRANSMISSION.py +0 -0
  90. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/INJECTION_CAPACITANCE.py +0 -0
  91. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/IV_MEASURE.py +0 -0
  92. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/LONG_TERM_STABILITY_DCS.py +0 -0
  93. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/LP_MODE.py +0 -0
  94. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/OVERVOLTAGE_PROTECTION.py +0 -0
  95. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/SLDO.py +0 -0
  96. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/UNDERSHUNT_PROTECTION.py +0 -0
  97. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/VCAL_CALIBRATION.py +0 -0
  98. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/__init__.py +0 -0
  99. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/__main__.py +0 -0
  100. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/get_nominal_current.py +0 -0
  101. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/globals.py +0 -0
  102. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/main.py +0 -0
  103. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/split_old_config.py +0 -0
  104. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/cli/upload_localdb.py +0 -0
  105. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/console.py +0 -0
  106. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/configs/hw_config_emulator_merged_vmux.json +0 -0
  107. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/configs/hw_config_example_felix_merged_vmux_itkpixv2.json +0 -0
  108. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/configs/hw_config_example_felix_merged_vmux_v1.json +0 -0
  109. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/configs/hw_config_example_felix_separate_vmux_itkpixv2.json +0 -0
  110. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/configs/hw_config_example_felix_separate_vmux_v1.json +0 -0
  111. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/configs/hw_config_example_merged_vmux_itkpixv2.json +0 -0
  112. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/configs/hw_config_example_merged_vmux_v1.json +0 -0
  113. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/configs/hw_config_example_separate_vmux_itkpixv2.json +0 -0
  114. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/configs/hw_config_example_separate_vmux_v1.json +0 -0
  115. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/configs/meas_config.json +0 -0
  116. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/emulator/configs/connectivity/20UPGXM1234567_Lx_dummy.json +0 -0
  117. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/emulator/configs/connectivity/20UPGXM1234567_Lx_dummy_disabledchip.json +0 -0
  118. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/emulator/configs/connectivity/20UPGXM1234567_info.json +0 -0
  119. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/emulator/configs/connectivity/chip/dummy_chip1.json +0 -0
  120. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/emulator/configs/connectivity/chip/dummy_chip2.json +0 -0
  121. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/emulator/configs/connectivity/chip/dummy_chip3.json +0 -0
  122. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/emulator/configs/connectivity/chip/dummy_chip4.json +0 -0
  123. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/emulator/configs/controller/specCfg-rd53b.json +0 -0
  124. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/emulator/module_state_template.json +0 -0
  125. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/schema/common.json +0 -0
  126. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/schema/hw_config.json +0 -0
  127. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/data/schema/meas_config.json +0 -0
  128. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/measurements/__init__.py +0 -0
  129. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/measurements/adc_calibration.py +0 -0
  130. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/measurements/analog_readback.py +0 -0
  131. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/measurements/injection_capacitance.py +0 -0
  132. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/measurements/iv_measure.py +0 -0
  133. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/measurements/long_term_stability_dcs.py +0 -0
  134. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/measurements/lp_mode.py +0 -0
  135. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/measurements/overvoltage_protection.py +0 -0
  136. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/measurements/sldo.py +0 -0
  137. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/measurements/undershunt_protection.py +0 -0
  138. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/measurements/vcal_calibration.py +0 -0
  139. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/utils/__init__.py +0 -0
  140. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/utils/hardware_control_base.py +0 -0
  141. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/utils/misc.py +0 -0
  142. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/utils/multimeter.py +0 -0
  143. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/utils/ntc.py +0 -0
  144. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/utils/power_supply.py +0 -0
  145. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/utils/subprocess_emulator.py +0 -0
  146. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/src/module_qc_tools/utils/yarr.py +0 -0
  147. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/tests/conftest.py +0 -0
  148. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/tests/test_emulator.py +0 -0
  149. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/tests/test_measurements.py +0 -0
  150. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/tests/test_package.py +0 -0
  151. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/tests/test_schema/cutter_pcb_tab.json +0 -0
  152. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/tests/test_schema/cutter_pcb_tab_BAD.json +0 -0
  153. {module_qc_tools-2.4.0 → module_qc_tools-2.4.1}/tests/test_schema.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: module_qc_tools
3
- Version: 2.4.0
3
+ Version: 2.4.1
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
@@ -45,7 +45,7 @@ Requires-Dist: typer>=0.9.0
45
45
  Requires-Dist: urllib3<2,>=1.26.20; 'el7.x86_64' in platform_release
46
46
  Description-Content-Type: text/markdown
47
47
 
48
- # module-qc-tools v2.4.0
48
+ # module-qc-tools v2.4.1
49
49
 
50
50
  A general python tool for running ITkPixV1.1 and ITkPixV2 module QC tests
51
51
 
@@ -1,4 +1,4 @@
1
- # module-qc-tools v2.4.0
1
+ # module-qc-tools v2.4.1
2
2
 
3
3
  A general python tool for running ITkPixV1.1 and ITkPixV2 module QC tests
4
4
 
@@ -52,20 +52,20 @@ corresponding YARR configuration files.
52
52
 
53
53
  **Configuration settings**
54
54
 
55
- | Name | Description |
56
- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
57
- | `run_dir` | path (relative or absolute) to the directory where `YARR` commands should be run |
58
- | `controller` | path (relative to `run_dir` or absolute) to the controller file |
59
- | `scanConsole_exe` | path (relative to `run_dir` or absolute) to the `scanConsole` executable |
60
- | `write_register_exe` | path (relative to `run_dir` or absolute) to the `write_register` executable |
61
- | `read_register_exe` | path (relative to `run_dir` or absolute) to the `read_register` executable |
62
- | `read_adc_exe` | path (relative to `run_dir` or absolute) to the `read_adc` executable |
63
- | `switchLPM_exe` | path (relative to `run_dir` or absolute) to the `switchLPM` executable |
64
- | `lpm_digitalscan` | path (relative to `run_dir` or absolute) to the low-power mode digital scan in YARR; for ITkPix v2, make sure that the path points to the correct scan config directory, e.g. `"configs/scans/itkpixv2/lpm_digitalscan.json"` |
65
- | `read_ringosc_exe` | path (relative to `run_dir` or absolute) to the `Rd53bReadRingosc` or `Itkpixv2ReadRingosc` executable in YARR; for ITkPix v2, make sure the path points to the executable for the correct chip, e.g. `"./bin/Itkpixv2ReadRingosc"` |
66
- | `eyeDiagram_exe` | path (relative to `run_dir` or absolute) to the `eyeDiagram` executable in YARR |
67
- | `"dataMergingCheck_exe"` | path (relative to `run_dir` or absolute) to the `dataMergingCheck` executable in YARR |
68
- | `success_code` | exit status that indicates success. The default is 0 besides `configure`, which has exit status 1 for success. The user do not need to set the `success_code` as the default in QC software is synchronized with YARR. |
55
+ | Name | Description |
56
+ | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
57
+ | `run_dir` | path (relative or absolute) to the directory where `YARR` commands should be run |
58
+ | `controller` | path (relative to `run_dir` or absolute) to the controller file |
59
+ | `scanConsole_exe` | path (relative to `run_dir` or absolute) to the `scanConsole` executable |
60
+ | `write_register_exe` | path (relative to `run_dir` or absolute) to the `write_register` executable |
61
+ | `read_register_exe` | path (relative to `run_dir` or absolute) to the `read_register` executable |
62
+ | `read_adc_exe` | path (relative to `run_dir` or absolute) to the `read_adc` executable |
63
+ | `switchLPM_exe` | path (relative to `run_dir` or absolute) to the `switchLPM` executable |
64
+ | `lpm_digitalscan` | path (relative to `run_dir` or absolute) to the low-power mode digital scan in YARR; for ITkPix v2, make sure that the path points to the correct scan config directory, e.g. `"configs/scans/itkpixv2/lpm_digitalscan.json"` |
65
+ | `read_ringosc_exe` | path (relative to `run_dir` or absolute) to the `Rd53bReadRingosc` or `Itkpixv2ReadRingosc` executable in YARR; for ITkPix v2, make sure the path points to the executable for the correct chip, e.g. `"./bin/Itkpixv2ReadRingosc"` |
66
+ | `eyeDiagram_exe` | path (relative to `run_dir` or absolute) to the `eyeDiagram` executable in YARR |
67
+ | `dataMergingCheck_exe` | path (relative to `run_dir` or absolute) to the `dataMergingCheck` executable in YARR |
68
+ | `success_code` | exit status that indicates success. The default is 0 besides `configure`, which has exit status 1 for success. The user do not need to set the `success_code` as the default in QC software is synchronized with YARR. |
69
69
 
70
70
  ### power_supply
71
71
 
@@ -16,6 +16,16 @@ and this project adheres to
16
16
 
17
17
  **_Fixed:_**
18
18
 
19
+ ## [2.4.1](https://gitlab.cern.ch/atlas-itk/pixel/module/module-qc-tools/-/tags/v2.4.1) - 2025-xx-yy ## {: #mqt-v2.4.1 }
20
+
21
+ **_Changed:_**
22
+
23
+ **_Added:_**
24
+
25
+ **_Fixed:_**
26
+
27
+ - eye diagram parsing (!228)
28
+
19
29
  ## [2.4.0](https://gitlab.cern.ch/atlas-itk/pixel/module/module-qc-tools/-/tags/v2.4.0) - 2025-03-11 ## {: #mqt-v2.4.0 }
20
30
 
21
31
  **_Changed:_**
@@ -29,6 +39,12 @@ and this project adheres to
29
39
  - add BOM information to output of SLDO, LP and ADC calibration (!220)
30
40
  - add ability to enable/disable LPM on targeted TX channels (!207)
31
41
  - add data merging substest to data transmission test (!218)
42
+
43
+ <!-- prettier-ignore -->
44
+ > [!IMPORTANT]
45
+ > Requires update of the `yarr` section in the hardware config file:
46
+ > `"dataMergingCheck_exe": "./bin/dataMergingCheck",`
47
+
32
48
  - add Iref trim information to output of the AR test (!221)
33
49
  - add protection when ramping HV down (!211)
34
50
  - CLI to retrieve input current based on chip version (!210)
@@ -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.4.0
95
+ $ python -m pip install -U pip module-qc-tools==2.4.1
96
96
  ```
97
97
 
98
98
  ### via uv
@@ -101,7 +101,7 @@ $ python -m pip install -U pip module-qc-tools==2.4.0
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.4.0
104
+ $ uv pip install module-qc-tools==2.4.1
105
105
  ```
106
106
 
107
107
  # Usage
@@ -88,6 +88,11 @@ dependencies = [
88
88
  ]
89
89
  installer = "uv"
90
90
 
91
+ [tool.hatch.envs.hatch-uv]
92
+ dependencies = [
93
+ "uv!=0.6.7", # https://github.com/astral-sh/uv/issues/12260
94
+ ]
95
+
91
96
  [tool.hatch.envs.default.scripts]
92
97
  tag = "tbump {args}"
93
98
  lint = "pylint src"
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '2.4.0'
21
- __version_tuple__ = version_tuple = (2, 4, 0)
20
+ __version__ = version = '2.4.1'
21
+ __version_tuple__ = version_tuple = (2, 4, 1)
@@ -844,8 +844,14 @@ def eye_diagram(
844
844
  if chip_position != -1 and lane is not chip_position:
845
845
  string += f"[{get_yarr_logging_timestamp()}][ info ][ eyeDiagram ]: No good delay setting for lane {lane}"
846
846
  else:
847
- eyewidth = round(31 * rng.random(), 0)
848
- delay = round(31 * rng.random(), 0)
847
+ ## comment 20250320
848
+ ## format used to be the format to be `Delay setting for lane 0 with eye width 7.0: 3.0`
849
+ ## but format is currently `Delay setting for lane 0 with eye width 7: 3`
850
+ ## see https://gitlab.cern.ch/atlas-itk/pixel/module/module-qc-tools/-/merge_requests/228
851
+ # eyewidth = round(31 * rng.random(), 0)
852
+ # delay = round(31 * rng.random(), 0)
853
+ eyewidth = int(31 * rng.random())
854
+ delay = int(31 * rng.random())
849
855
  string += f"[{get_yarr_logging_timestamp()}][ info ][ eyeDiagram ]: Delay setting for lane {lane} with eye width {eyewidth}: {delay}"
850
856
  string += "\n"
851
857
 
@@ -88,10 +88,11 @@ def run_eyediagram(config, ps, yr, layer, n_lanes_per_chip, dryrun):
88
88
 
89
89
  logger.info("Running eye-diagram scan...")
90
90
  yarr_output = yr.eyeDiagram(dryrun=dryrun)[0]
91
- logger.info(f"Result:\n{yarr_output}")
91
+ logger.debug(f"Result:\n{yarr_output}")
92
92
 
93
93
  ansi_escape = re.compile(r"\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])")
94
94
  yarr_output_cleaned = ansi_escape.sub("", yarr_output)
95
+ logger.info(f"Result (cleaned): \n{yarr_output_cleaned}")
95
96
  assert (
96
97
  "Done scanning" in yarr_output_cleaned
97
98
  ), "Could not find the right place to split for parsing the eye-diagram. There should be an indication of 'All done' completion."
@@ -116,16 +117,28 @@ def run_eyediagram(config, ps, yr, layer, n_lanes_per_chip, dryrun):
116
117
  )
117
118
 
118
119
  # TODO: maybe use this info ? [16:24:49:371][ info ][ SpecRx ][31126]: Active Rx channels: 0x8
119
- pattern = re.compile(
120
- r"Delay setting for lane (?P<lane>\d+) with eye width (?P<width>\d+)\.0: (?P<delay>\d+)\.0"
121
- )
122
120
 
123
121
  delay_setting = {k: None for k in range(num_lanes)}
124
122
  eye_width = {k: None for k in range(num_lanes)}
123
+ logger.debug(
124
+ f"yarr_output_cleaned(end_of_eye_diagram:)\n {yarr_output_cleaned[end_of_eye_diagram:]}"
125
+ )
126
+
127
+ ## 2025.03.20, see https://mattermost.web.cern.ch/itkpixel/pl/5js9ikpng3rybc5ry9a8afbbfo
128
+ ## checking for both cases:
129
+ ## Delay setting for lane 0 with eye width 7: 3
130
+ ## Delay setting for lane 0 with eye width 7.0: 3.0
131
+ pattern = re.compile(
132
+ r"Delay setting for lane (?P<lane>\d+) with eye width (?P<width>\d+)(?:.0)?: (?P<delay>\d+)(?:.0)?"
133
+ )
125
134
  for match in pattern.finditer(yarr_output_cleaned[end_of_eye_diagram:]):
135
+ logger.debug(f"match {match}")
126
136
  lane = int(match["lane"])
127
137
  eye_width[lane] = int(match["width"])
128
138
  delay_setting[lane] = int(match["delay"])
139
+ logger.debug(
140
+ f"lane {lane} eye_width {eye_width[lane]} delay {delay_setting[lane]}"
141
+ )
129
142
 
130
143
  for chip in yr._enabled_chip_positions:
131
144
  meas[chip]["Delay"] = testdata["Delay"].tolist()
@@ -1,5 +1,5 @@
1
1
  [version]
2
- current = "2.4.0"
2
+ current = "2.4.1"
3
3
 
4
4
  # Example of a semver regexp.
5
5
  # Make sure this matches current_version before
@@ -17,7 +17,7 @@ regex = '''
17
17
 
18
18
  [git]
19
19
  # The current version will get updated when tbump is run
20
- message_template = "Bump version: 2.4.0 → {new_version}"
20
+ message_template = "Bump version: 2.4.1 → {new_version}"
21
21
  tag_template = "v{new_version}"
22
22
 
23
23
  # For each file to patch, add a [[file]] config
File without changes