module-qc-database-tools 2.11.0rc0__tar.gz → 2.11.2__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_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/.zenodo.json +3 -3
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/CITATION.cff +2 -2
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/PKG-INFO +6 -4
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/README.md +1 -1
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/history.md +31 -2
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/install.md +2 -2
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/pyproject.toml +4 -2
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/_version.py +2 -2
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/generate_yarr_config.py +20 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/core.py +128 -99
- module_qc_database_tools-2.11.2/src/module_qc_database_tools/data/YARR/default_chip_config.json +102 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/db/upload_test.py +1 -1
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/tbump.toml +2 -2
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/.env.template +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/.gitattributes +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/.gitignore +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/.gitlab-ci.yml +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/.linkcheckerrc +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/.pre-commit-config.yaml +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/LICENSE +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/ci/pre-commit-update.sh +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/.gitkeep +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/.overrides/main.html +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/.snippets/abbrs.txt +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/.snippets/links.txt +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/assets/css/custom.css +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/config.md +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/development.md +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/dynamic_docstring.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/index.md +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/iref_trim.md +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/meta/authors.md +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/reference/cli.md +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/reference/gen_ref_nav.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xIIzI.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu4mxK.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu72xKOzY.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2 +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/fonts.css +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/stylesheets/readme.txt +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/docs/yarr.md +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/mkdocs.yml +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/__init__.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/chip_config_api.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/__init__.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/__main__.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/assign_tag.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/download_component.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/fetch_reference_ivs.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/get_bom_info.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/get_vfd_info.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/globals.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/influxdbtool_retrieve.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/localdbtool_retrieve.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/localdbtool_upload.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/main.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/pull_component.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/recycle_analysis.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/recycle_esummary.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/register_component.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/review_component.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/run_full_qc.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/sync_component_stages.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/upload_measurement.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/cli/utils.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/data/YARR/chip_template.json +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/data/componentConfigs.json +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/db/__init__.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/db/local.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/db/ls.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/db/prod.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/db/show_qc_pipeline.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/db/show_qc_status.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/db/show_test.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/exceptions.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/iv/__init__.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/iv/localdb.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/iv/proddb.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/models.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/recycle.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/review/__init__.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/review/checks.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/review/helpers.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/sync_component_stages/__init__.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/typing_compat.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/utils.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/README.md +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/__init__.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/common.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/configs/influxdb_connectivity.json +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/db_logging.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/direct.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/indirect.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/localdb.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/login_mongodb.sh +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/register.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/setting/default/database.json +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/setting/default/dcs.dat +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/setting/default/dcs_info.json +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/setting/default/register_component_fei4b.json +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/setting/default/register_component_rd53a.json +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/setting/default/site.json +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/setting/default/user.json +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/setting/requirements-pip.txt +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/setting/requirements-yum.txt +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/src/module_qc_database_tools/yarr/setup_db.sh +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/tests/test_cli.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/tests/test_config_api.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/tests/test_iv.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/tests/test_package.py +0 -0
- {module_qc_database_tools-2.11.0rc0 → module_qc_database_tools-2.11.2}/tests/test_utils.py +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"description": " general python tool for interfacing with databases during module QC tests for the ATLAS ITk project",
|
|
3
3
|
"license": "MIT",
|
|
4
|
-
"title": "atlas-itk-pixel-modules/mqdbt: v2.11.
|
|
5
|
-
"version": "v2.11.
|
|
4
|
+
"title": "atlas-itk-pixel-modules/mqdbt: v2.11.2",
|
|
5
|
+
"version": "v2.11.2",
|
|
6
6
|
"upload_type": "software",
|
|
7
7
|
"creators": [
|
|
8
8
|
{
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"related_identifiers": [
|
|
81
81
|
{
|
|
82
82
|
"scheme": "url",
|
|
83
|
-
"identifier": "https://gitlab.cern.ch/atlas-itk/pixel/module/module-qc-database-tools/-/tree/v2.11.
|
|
83
|
+
"identifier": "https://gitlab.cern.ch/atlas-itk/pixel/module/module-qc-database-tools/-/tree/v2.11.2",
|
|
84
84
|
"relation": "isSupplementTo"
|
|
85
85
|
}
|
|
86
86
|
]
|
|
@@ -54,6 +54,6 @@ keywords:
|
|
|
54
54
|
license:
|
|
55
55
|
- mit
|
|
56
56
|
message: If you use this software, please cite it using the metadata from this file.
|
|
57
|
-
title: 'atlas-itk-pixel-modules/mqdbt: v2.11.
|
|
57
|
+
title: 'atlas-itk-pixel-modules/mqdbt: v2.11.2'
|
|
58
58
|
type: software
|
|
59
|
-
version: v2.11.
|
|
59
|
+
version: v2.11.2
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: module-qc-database-tools
|
|
3
|
-
Version: 2.11.
|
|
3
|
+
Version: 2.11.2
|
|
4
4
|
Summary: Python wrapper to interface with LocalDB and Production DB for common tasks for pixel modules.
|
|
5
5
|
Project-URL: Homepage, https://gitlab.cern.ch/atlas-itk/pixel/module/module-qc-database-tools
|
|
6
6
|
Project-URL: Bug Tracker, https://gitlab.cern.ch/atlas-itk/pixel/module/module-qc-database-tools/issues
|
|
@@ -45,23 +45,25 @@ Classifier: Topic :: Scientific/Engineering
|
|
|
45
45
|
Requires-Python: >=3.9
|
|
46
46
|
Requires-Dist: arrow
|
|
47
47
|
Requires-Dist: cachecontrol<=0.14.1
|
|
48
|
+
Requires-Dist: click<8.4,>=8.2.1; python_version == '3.10'
|
|
48
49
|
Requires-Dist: influxdb
|
|
49
50
|
Requires-Dist: itkdb>=0.6.17
|
|
50
51
|
Requires-Dist: itksn>=0.4.2
|
|
51
52
|
Requires-Dist: jsbeautifier
|
|
52
53
|
Requires-Dist: jsondiff
|
|
53
|
-
Requires-Dist: module-qc-data-tools>=1.
|
|
54
|
+
Requires-Dist: module-qc-data-tools>=1.6.0
|
|
54
55
|
Requires-Dist: packaging
|
|
55
56
|
Requires-Dist: pandas
|
|
56
57
|
Requires-Dist: pyarrow
|
|
57
58
|
Requires-Dist: pymongo>=4.0.0
|
|
58
59
|
Requires-Dist: rich
|
|
59
|
-
Requires-Dist: typer
|
|
60
|
+
Requires-Dist: typer<0.26.0,>=0.18.0; python_version <= '3.10'
|
|
61
|
+
Requires-Dist: typer>=0.26.0; python_version > '3.10'
|
|
60
62
|
Requires-Dist: typing-extensions>=4.0; python_version < '3.10'
|
|
61
63
|
Requires-Dist: urllib3<2,>=1.26.20; 'el7.x86_64' in platform_release
|
|
62
64
|
Description-Content-Type: text/markdown
|
|
63
65
|
|
|
64
|
-
# Module QC Database Tools v2.11.
|
|
66
|
+
# Module QC Database Tools v2.11.2
|
|
65
67
|
|
|
66
68
|
The package to regisiter ITkPixV1.1 modules, and generate YARR configs from ITk
|
|
67
69
|
production database using `itkdb` API.
|
|
@@ -12,14 +12,43 @@ and this project adheres to
|
|
|
12
12
|
|
|
13
13
|
**_Changed:_**
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**_Added:_**
|
|
16
|
+
|
|
17
|
+
**_Fixed:_**
|
|
18
|
+
|
|
19
|
+
## [2.11.2](https://gitlab.cern.ch/atlas-itk/pixel/module/module-qc-database-tools/-/tags/v2.11.2) - 2026-07-07 ## {: #mqdbt-v2.11.2 }
|
|
20
|
+
|
|
21
|
+
**_Changed:_**
|
|
22
|
+
|
|
23
|
+
- in case of duplicated chip config, get the latest one by its `dateTime` (!166)
|
|
16
24
|
|
|
17
25
|
**_Added:_**
|
|
18
26
|
|
|
19
|
-
-
|
|
27
|
+
- add `--clear` or `--clear-chip-config` option to generate YARR configs with
|
|
28
|
+
untuned threshold and ToT registers (!165)
|
|
29
|
+
|
|
30
|
+
## [2.11.1](https://gitlab.cern.ch/atlas-itk/pixel/module/module-qc-database-tools/-/tags/v2.11.1) - 2026-06-09 ## {: #mqdbt-v2.11.1 }
|
|
20
31
|
|
|
21
32
|
**_Fixed:_**
|
|
22
33
|
|
|
34
|
+
- When generating the chip configs in data merging mode:
|
|
35
|
+
- Set AuroraActiveLanes = 3 for secondary chips when in 2-to-1 datamerging
|
|
36
|
+
mode (!157).
|
|
37
|
+
- Correctly turn off the unused lanes to prevent crosstalk and readout errors
|
|
38
|
+
(!161).
|
|
39
|
+
- mimic the changes in the YARR DM test: YARR/YARR!1128
|
|
40
|
+
- Fix protocol value when `submit_test` in `upload_test.py` (!159)
|
|
41
|
+
|
|
42
|
+
## [2.11.0](https://gitlab.cern.ch/atlas-itk/pixel/module/module-qc-database-tools/-/tags/v2.11.0) - 2026-05-14 ## {: #mqdbt-v2.11.0 }
|
|
43
|
+
|
|
44
|
+
**_Changed:_**
|
|
45
|
+
|
|
46
|
+
- print warning instead of raising errors when reference IV is missing (!156)
|
|
47
|
+
|
|
48
|
+
**_Added:_**
|
|
49
|
+
|
|
50
|
+
- save core column scan output in the same directory as other YARR scans (!154)
|
|
51
|
+
|
|
23
52
|
## [2.10.1](https://gitlab.cern.ch/atlas-itk/pixel/module/module-qc-database-tools/-/tags/v2.10.1) - 2026-03-12 ## {: #mqdbt-v2.10.1 }
|
|
24
53
|
|
|
25
54
|
**_Fixed:_**
|
|
@@ -90,7 +90,7 @@ package.
|
|
|
90
90
|
$ python -m venv venv
|
|
91
91
|
$ source venv/bin/activate
|
|
92
92
|
$ python -m pip install -U pip
|
|
93
|
-
$ python -m pip install -U pip module-qc-database-tools==2.11.
|
|
93
|
+
$ python -m pip install -U pip module-qc-database-tools==2.11.2
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
### via uv
|
|
@@ -99,7 +99,7 @@ $ python -m pip install -U pip module-qc-database-tools==2.11.0rc0
|
|
|
99
99
|
$ python -m venv venv
|
|
100
100
|
$ source venv/bin/activate
|
|
101
101
|
$ python -m pip install uv
|
|
102
|
-
$ uv pip install module-qc-database-tools==2.11.
|
|
102
|
+
$ uv pip install module-qc-database-tools==2.11.2
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
# Usage
|
|
@@ -23,7 +23,9 @@ dependencies = [
|
|
|
23
23
|
"itkdb>=0.6.17", # for interface with production database
|
|
24
24
|
"pandas",
|
|
25
25
|
"pyarrow",
|
|
26
|
-
"typer>=0.
|
|
26
|
+
"typer>=0.26.0; python_version>'3.10'", # https://typer.tiangolo.com/release-notes/#0260-2026-05-26
|
|
27
|
+
"typer>=0.18.0,<0.26.0; python_version<='3.10'", # https://typer.tiangolo.com/release-notes/#0180-2025-09-19
|
|
28
|
+
"click>=8.2.1, <8.4; python_version=='3.10'",
|
|
27
29
|
"pymongo>=4.0.0",
|
|
28
30
|
"jsondiff",
|
|
29
31
|
"jsbeautifier", # for printing prettier chip config: linebreaks vs size
|
|
@@ -35,7 +37,7 @@ dependencies = [
|
|
|
35
37
|
"arrow",
|
|
36
38
|
"packaging",
|
|
37
39
|
"typing_extensions >=4.0; python_version<'3.10'",
|
|
38
|
-
"module_qc_data_tools>=1.
|
|
40
|
+
"module_qc_data_tools>=1.6.0",
|
|
39
41
|
]
|
|
40
42
|
classifiers = [
|
|
41
43
|
"License :: OSI Approved :: MIT License",
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '2.11.
|
|
22
|
-
__version_tuple__ = version_tuple = (2, 11,
|
|
21
|
+
__version__ = version = '2.11.2'
|
|
22
|
+
__version_tuple__ = version_tuple = (2, 11, 2)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -109,6 +109,21 @@ def main(
|
|
|
109
109
|
help="Use reversed order of chip ID, e.g. for old L0 linear triplets.",
|
|
110
110
|
),
|
|
111
111
|
config_hw: Path = OPTIONS["config_hw"],
|
|
112
|
+
default_chip_config_path: Path = typer.Option(
|
|
113
|
+
(module_qc_database_tools.data / "YARR" / "default_chip_config.json").resolve(),
|
|
114
|
+
"--default-chip-config",
|
|
115
|
+
help="Default chip config values from which the chip config are generated.",
|
|
116
|
+
exists=True,
|
|
117
|
+
file_okay=True,
|
|
118
|
+
readable=True,
|
|
119
|
+
resolve_path=True,
|
|
120
|
+
),
|
|
121
|
+
clear_chip_config: bool = typer.Option(
|
|
122
|
+
False,
|
|
123
|
+
"--clear",
|
|
124
|
+
"--clear-chip-config",
|
|
125
|
+
help="Clears threshold and ToT tunings from chip config.",
|
|
126
|
+
),
|
|
112
127
|
):
|
|
113
128
|
"""
|
|
114
129
|
Main executable for generating yarr config.
|
|
@@ -150,6 +165,9 @@ def main(
|
|
|
150
165
|
layer_config = layer
|
|
151
166
|
|
|
152
167
|
chip_template = json.loads(chip_template_path.read_text()) if not localdb else None
|
|
168
|
+
default_chip_config = (
|
|
169
|
+
json.loads(default_chip_config_path.read_text()) if not localdb else None
|
|
170
|
+
)
|
|
153
171
|
|
|
154
172
|
to_generate = []
|
|
155
173
|
|
|
@@ -166,6 +184,7 @@ def main(
|
|
|
166
184
|
)
|
|
167
185
|
generated_configs = module.generate_config(
|
|
168
186
|
chip_template,
|
|
187
|
+
default_chip_config,
|
|
169
188
|
layer_config,
|
|
170
189
|
dp_port.value,
|
|
171
190
|
suffix=suffix,
|
|
@@ -173,6 +192,7 @@ def main(
|
|
|
173
192
|
speed=speed,
|
|
174
193
|
reverse=reverse,
|
|
175
194
|
felix=felix,
|
|
195
|
+
clear_chip_config=clear_chip_config,
|
|
176
196
|
)
|
|
177
197
|
|
|
178
198
|
if output_dir:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import collections
|
|
3
4
|
import copy
|
|
4
5
|
import json
|
|
5
6
|
import logging
|
|
@@ -27,6 +28,7 @@ from module_qc_database_tools.utils import (
|
|
|
27
28
|
)
|
|
28
29
|
|
|
29
30
|
log = logging.getLogger(__name__)
|
|
31
|
+
# pylint: disable=too-many-lines
|
|
30
32
|
|
|
31
33
|
|
|
32
34
|
class Module:
|
|
@@ -153,6 +155,7 @@ class Module:
|
|
|
153
155
|
def generate_config(
|
|
154
156
|
self,
|
|
155
157
|
chip_template,
|
|
158
|
+
default_chip_config,
|
|
156
159
|
layer_config,
|
|
157
160
|
dp_port: DPPort,
|
|
158
161
|
suffix,
|
|
@@ -160,6 +163,7 @@ class Module:
|
|
|
160
163
|
speed=1280,
|
|
161
164
|
reverse=False,
|
|
162
165
|
felix=False,
|
|
166
|
+
clear_chip_config=False,
|
|
163
167
|
):
|
|
164
168
|
"""
|
|
165
169
|
Generate module config.
|
|
@@ -192,6 +196,7 @@ class Module:
|
|
|
192
196
|
copy.deepcopy(
|
|
193
197
|
chip_template
|
|
194
198
|
), # NB: make sure we copy as Chip::generate_config modifies this in-place
|
|
199
|
+
copy.deepcopy(default_chip_config),
|
|
195
200
|
self.chip_type,
|
|
196
201
|
chip_index,
|
|
197
202
|
layer_config,
|
|
@@ -201,6 +206,7 @@ class Module:
|
|
|
201
206
|
version=version,
|
|
202
207
|
sensor_vendor=self.sensor_vendor,
|
|
203
208
|
felix=felix,
|
|
209
|
+
clear_chip_config=clear_chip_config,
|
|
204
210
|
)
|
|
205
211
|
)
|
|
206
212
|
except RuntimeError as snake:
|
|
@@ -326,6 +332,7 @@ class Chip:
|
|
|
326
332
|
def generate_config(
|
|
327
333
|
self,
|
|
328
334
|
chip_template,
|
|
335
|
+
default_chip_config,
|
|
329
336
|
chip_type,
|
|
330
337
|
chip_index,
|
|
331
338
|
layer_config,
|
|
@@ -335,6 +342,7 @@ class Chip:
|
|
|
335
342
|
speed=1280,
|
|
336
343
|
sensor_vendor=None,
|
|
337
344
|
felix=False,
|
|
345
|
+
clear_chip_config=False,
|
|
338
346
|
):
|
|
339
347
|
"""
|
|
340
348
|
Generate chip config.
|
|
@@ -344,6 +352,11 @@ class Chip:
|
|
|
344
352
|
except KeyError:
|
|
345
353
|
log.error("Chip template incompatible: no 'chip_type' found!")
|
|
346
354
|
sys.exit(1)
|
|
355
|
+
try:
|
|
356
|
+
default_chip_config = {chip_type: default_chip_config.get("chip_type")}
|
|
357
|
+
except KeyError:
|
|
358
|
+
log.error("Default chip configs incompatible: no 'chip_type' found!")
|
|
359
|
+
sys.exit(1)
|
|
347
360
|
|
|
348
361
|
data_merging = None
|
|
349
362
|
## warm or warm_4-to-1
|
|
@@ -359,8 +372,30 @@ class Chip:
|
|
|
359
372
|
)
|
|
360
373
|
sys.exit(1)
|
|
361
374
|
|
|
375
|
+
power_config = "LP" if suffix == "LP" else layer_config
|
|
376
|
+
|
|
362
377
|
if version == "latest" and len(self.attachments) >= 3:
|
|
363
378
|
checklist = [".json", layer_config, suffix]
|
|
379
|
+
log.debug(self.attachments)
|
|
380
|
+
## reverse-sort attachments by date, so that we get the latest one in case of duplication
|
|
381
|
+
self.attachments = sorted(
|
|
382
|
+
self.attachments, key=lambda d: d["dateTime"], reverse=True
|
|
383
|
+
)
|
|
384
|
+
## check for duplicates and print out warning
|
|
385
|
+
_titles = [item.get("title", None) for item in self.attachments]
|
|
386
|
+
## remove None in case an attachment has no title
|
|
387
|
+
_titles = [_title for _title in _titles if _title is not None]
|
|
388
|
+
log.debug(_titles)
|
|
389
|
+
_duplicates = [
|
|
390
|
+
item
|
|
391
|
+
for item, count in collections.Counter(_titles).items()
|
|
392
|
+
if count > 1
|
|
393
|
+
]
|
|
394
|
+
if _duplicates:
|
|
395
|
+
log.warning(
|
|
396
|
+
"These FE configs have multiple entries, please fix! %s",
|
|
397
|
+
_duplicates,
|
|
398
|
+
)
|
|
364
399
|
for item in self.attachments:
|
|
365
400
|
title = item["title"] or ""
|
|
366
401
|
if all(check in title for check in checklist):
|
|
@@ -373,6 +408,7 @@ class Chip:
|
|
|
373
408
|
)
|
|
374
409
|
try:
|
|
375
410
|
chip_template = self.get_latest_configs(item, speed)
|
|
411
|
+
break
|
|
376
412
|
except RuntimeError as esnake:
|
|
377
413
|
log.warning(
|
|
378
414
|
"Unable to find latest config for FE%i (chip %s): %s. Make sure all sets of configs are present in the database.",
|
|
@@ -403,7 +439,6 @@ class Chip:
|
|
|
403
439
|
self.uid,
|
|
404
440
|
layer_config,
|
|
405
441
|
)
|
|
406
|
-
power_config = "LP" if suffix == "LP" else layer_config
|
|
407
442
|
try:
|
|
408
443
|
global_config = chip_template[chip_type]
|
|
409
444
|
except KeyError:
|
|
@@ -432,102 +467,65 @@ class Chip:
|
|
|
432
467
|
chip_template[chip_type]["GlobalConfig"]["DiffLcc"] = 200
|
|
433
468
|
chip_template[chip_type]["GlobalConfig"]["DiffLccEn"] = 1
|
|
434
469
|
|
|
435
|
-
chip_template[chip_type]["GlobalConfig"]["DiffPreComp"] =
|
|
436
|
-
"
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
"
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
"
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
"
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
"
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
"
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
chip_template[chip_type]["GlobalConfig"]["
|
|
484
|
-
"
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
"
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
"L0": 150,
|
|
495
|
-
"L1": 150,
|
|
496
|
-
"L2": 60,
|
|
497
|
-
"LP": 0,
|
|
498
|
-
}[power_config]
|
|
499
|
-
chip_template[chip_type]["GlobalConfig"]["EnCoreCol0"] = {
|
|
500
|
-
"R0": 65535,
|
|
501
|
-
"R0.5": 65535,
|
|
502
|
-
"L0": 65535,
|
|
503
|
-
"L1": 65535,
|
|
504
|
-
"L2": 65535,
|
|
505
|
-
"LP": 0,
|
|
506
|
-
}[power_config]
|
|
507
|
-
chip_template[chip_type]["GlobalConfig"]["EnCoreCol1"] = {
|
|
508
|
-
"R0": 65535,
|
|
509
|
-
"R0.5": 65535,
|
|
510
|
-
"L0": 65535,
|
|
511
|
-
"L1": 65535,
|
|
512
|
-
"L2": 65535,
|
|
513
|
-
"LP": 0,
|
|
514
|
-
}[power_config]
|
|
515
|
-
chip_template[chip_type]["GlobalConfig"]["EnCoreCol2"] = {
|
|
516
|
-
"R0": 65535,
|
|
517
|
-
"R0.5": 65535,
|
|
518
|
-
"L0": 65535,
|
|
519
|
-
"L1": 65535,
|
|
520
|
-
"L2": 65535,
|
|
521
|
-
"LP": 0,
|
|
522
|
-
}[power_config]
|
|
523
|
-
chip_template[chip_type]["GlobalConfig"]["EnCoreCol3"] = {
|
|
524
|
-
"R0": 63,
|
|
525
|
-
"R0.5": 63,
|
|
526
|
-
"L0": 63,
|
|
527
|
-
"L1": 63,
|
|
528
|
-
"L2": 63,
|
|
529
|
-
"LP": 0,
|
|
530
|
-
}[power_config]
|
|
470
|
+
chip_template[chip_type]["GlobalConfig"]["DiffPreComp"] = (
|
|
471
|
+
default_chip_config[chip_type]["GlobalConfig"]["DiffPreComp"][
|
|
472
|
+
power_config
|
|
473
|
+
]
|
|
474
|
+
)
|
|
475
|
+
chip_template[chip_type]["GlobalConfig"]["DiffPreampL"] = (
|
|
476
|
+
default_chip_config[chip_type]["GlobalConfig"]["DiffPreampL"][
|
|
477
|
+
power_config
|
|
478
|
+
]
|
|
479
|
+
)
|
|
480
|
+
chip_template[chip_type]["GlobalConfig"]["DiffPreampM"] = (
|
|
481
|
+
default_chip_config[chip_type]["GlobalConfig"]["DiffPreampM"][
|
|
482
|
+
power_config
|
|
483
|
+
]
|
|
484
|
+
)
|
|
485
|
+
chip_template[chip_type]["GlobalConfig"]["DiffPreampR"] = (
|
|
486
|
+
default_chip_config[chip_type]["GlobalConfig"]["DiffPreampR"][
|
|
487
|
+
power_config
|
|
488
|
+
]
|
|
489
|
+
)
|
|
490
|
+
chip_template[chip_type]["GlobalConfig"]["DiffPreampT"] = (
|
|
491
|
+
default_chip_config[chip_type]["GlobalConfig"]["DiffPreampT"][
|
|
492
|
+
power_config
|
|
493
|
+
]
|
|
494
|
+
)
|
|
495
|
+
chip_template[chip_type]["GlobalConfig"]["DiffPreampTL"] = (
|
|
496
|
+
default_chip_config[chip_type]["GlobalConfig"]["DiffPreampTL"][
|
|
497
|
+
power_config
|
|
498
|
+
]
|
|
499
|
+
)
|
|
500
|
+
chip_template[chip_type]["GlobalConfig"]["DiffPreampTR"] = (
|
|
501
|
+
default_chip_config[chip_type]["GlobalConfig"]["DiffPreampTR"][
|
|
502
|
+
power_config
|
|
503
|
+
]
|
|
504
|
+
)
|
|
505
|
+
chip_template[chip_type]["GlobalConfig"]["DiffVff"] = default_chip_config[
|
|
506
|
+
chip_type
|
|
507
|
+
]["GlobalConfig"]["DiffVff"][power_config]
|
|
508
|
+
chip_template[chip_type]["GlobalConfig"]["EnCoreCol0"] = (
|
|
509
|
+
default_chip_config[chip_type]["GlobalConfig"]["EnCoreCol0"][
|
|
510
|
+
power_config
|
|
511
|
+
]
|
|
512
|
+
)
|
|
513
|
+
chip_template[chip_type]["GlobalConfig"]["EnCoreCol1"] = (
|
|
514
|
+
default_chip_config[chip_type]["GlobalConfig"]["EnCoreCol1"][
|
|
515
|
+
power_config
|
|
516
|
+
]
|
|
517
|
+
)
|
|
518
|
+
chip_template[chip_type]["GlobalConfig"]["EnCoreCol2"] = (
|
|
519
|
+
default_chip_config[chip_type]["GlobalConfig"]["EnCoreCol2"][
|
|
520
|
+
power_config
|
|
521
|
+
]
|
|
522
|
+
)
|
|
523
|
+
chip_template[chip_type]["GlobalConfig"]["EnCoreCol3"] = (
|
|
524
|
+
default_chip_config[chip_type]["GlobalConfig"]["EnCoreCol3"][
|
|
525
|
+
power_config
|
|
526
|
+
]
|
|
527
|
+
)
|
|
528
|
+
|
|
531
529
|
chip_template[chip_type]["Parameter"]["Name"] = self.uid
|
|
532
530
|
|
|
533
531
|
if module_type == "triplet":
|
|
@@ -681,6 +679,7 @@ class Chip:
|
|
|
681
679
|
|
|
682
680
|
# this stays at the end due to complex DAC combinations
|
|
683
681
|
if data_merging and module_type == "quad":
|
|
682
|
+
chip_template[chip_type]["GlobalConfig"]["AuroraInitWait"] = 0
|
|
684
683
|
chip_template[chip_type]["GlobalConfig"]["EnChipId"] = 1
|
|
685
684
|
chip_template[chip_type]["GlobalConfig"]["SerEnLane"] = 15
|
|
686
685
|
chip_template[chip_type]["GlobalConfig"]["ServiceBlockEn"] = 1
|
|
@@ -707,9 +706,15 @@ class Chip:
|
|
|
707
706
|
chip_template[chip_type]["GlobalConfig"]["DataMergeOutMux1"] = 0
|
|
708
707
|
chip_template[chip_type]["GlobalConfig"]["DataMergeOutMux2"] = 1
|
|
709
708
|
chip_template[chip_type]["GlobalConfig"]["DataMergeOutMux3"] = 2
|
|
709
|
+
chip_template[chip_type]["GlobalConfig"]["SerSelOut0"] = 3
|
|
710
710
|
chip_template[chip_type]["GlobalConfig"]["SerSelOut1"] = 1
|
|
711
|
+
chip_template[chip_type]["GlobalConfig"]["SerSelOut2"] = 3
|
|
712
|
+
chip_template[chip_type]["GlobalConfig"]["SerSelOut3"] = 3
|
|
711
713
|
elif chip_id in (13, 14): ## // Secondary
|
|
714
|
+
chip_template[chip_type]["GlobalConfig"]["SerSelOut0"] = 3
|
|
715
|
+
chip_template[chip_type]["GlobalConfig"]["SerSelOut1"] = 3
|
|
712
716
|
chip_template[chip_type]["GlobalConfig"]["SerSelOut2"] = 1
|
|
717
|
+
chip_template[chip_type]["GlobalConfig"]["SerSelOut3"] = 3
|
|
713
718
|
chip_template[chip_type]["GlobalConfig"]["DataMergeOutMux0"] = 2
|
|
714
719
|
chip_template[chip_type]["GlobalConfig"]["DataMergeOutMux1"] = 3
|
|
715
720
|
chip_template[chip_type]["GlobalConfig"]["DataMergeOutMux2"] = 0
|
|
@@ -731,11 +736,16 @@ class Chip:
|
|
|
731
736
|
return None
|
|
732
737
|
elif data_merging == "2-to-1":
|
|
733
738
|
if chip_id in (12, 14): ## // Secondaries
|
|
739
|
+
chip_template[chip_type]["GlobalConfig"]["AuroraActiveLanes"] = 3
|
|
734
740
|
chip_template[chip_type]["GlobalConfig"]["CdrClkSel"] = 2
|
|
735
741
|
chip_template[chip_type]["GlobalConfig"]["CmlBias0"] = 500
|
|
736
742
|
chip_template[chip_type]["GlobalConfig"]["CmlBias1"] = 0
|
|
743
|
+
chip_template[chip_type]["GlobalConfig"]["SerEnTap"] = 0
|
|
744
|
+
chip_template[chip_type]["GlobalConfig"]["SerInvTap"] = 0
|
|
737
745
|
chip_template[chip_type]["GlobalConfig"]["SerSelOut0"] = 1
|
|
738
746
|
chip_template[chip_type]["GlobalConfig"]["SerSelOut1"] = 1
|
|
747
|
+
chip_template[chip_type]["GlobalConfig"]["SerSelOut2"] = 3
|
|
748
|
+
chip_template[chip_type]["GlobalConfig"]["SerSelOut3"] = 3
|
|
739
749
|
chip_template[chip_type]["GlobalConfig"]["DataMergeOutMux0"] = 1
|
|
740
750
|
chip_template[chip_type]["GlobalConfig"]["DataMergeOutMux1"] = 0
|
|
741
751
|
chip_template[chip_type]["GlobalConfig"]["DataMergeOutMux2"] = 2
|
|
@@ -762,6 +772,21 @@ class Chip:
|
|
|
762
772
|
)
|
|
763
773
|
return None
|
|
764
774
|
|
|
775
|
+
if clear_chip_config:
|
|
776
|
+
if chip_template[chip_type].get("PixelConfig"):
|
|
777
|
+
log.info("Deleting PixelConfig from chip config.")
|
|
778
|
+
del chip_template[chip_type]["PixelConfig"]
|
|
779
|
+
|
|
780
|
+
for th in ["DiffTh1L", "DiffTh1M", "DiffTh1R", "DiffVff"]:
|
|
781
|
+
if th in chip_template[chip_type]["GlobalConfig"]:
|
|
782
|
+
log.info("Deleting %s from chip config.", th)
|
|
783
|
+
del chip_template[chip_type]["GlobalConfig"][th]
|
|
784
|
+
|
|
785
|
+
log.info("Reset to default DiffVff for layer %s.", power_config)
|
|
786
|
+
chip_template[chip_type]["GlobalConfig"]["DiffVff"] = default_chip_config[
|
|
787
|
+
chip_type
|
|
788
|
+
]["GlobalConfig"]["DiffVff"][power_config]
|
|
789
|
+
|
|
765
790
|
return chip_template
|
|
766
791
|
|
|
767
792
|
|
|
@@ -904,10 +929,11 @@ class LocalModule:
|
|
|
904
929
|
|
|
905
930
|
return current_stage
|
|
906
931
|
|
|
907
|
-
# speed and
|
|
932
|
+
# Keywords default_chip_config, speed, reverse and clear_chip_config needed to match the non-localDB module generate_config function
|
|
908
933
|
def generate_config(
|
|
909
934
|
self,
|
|
910
935
|
chip_template,
|
|
936
|
+
default_chip_config,
|
|
911
937
|
layer_config,
|
|
912
938
|
dp_port: DPPort,
|
|
913
939
|
suffix,
|
|
@@ -915,6 +941,7 @@ class LocalModule:
|
|
|
915
941
|
speed=1280,
|
|
916
942
|
reverse=False,
|
|
917
943
|
felix=False,
|
|
944
|
+
clear_chip_config=False,
|
|
918
945
|
):
|
|
919
946
|
"""
|
|
920
947
|
Generate module config.
|
|
@@ -926,10 +953,12 @@ class LocalModule:
|
|
|
926
953
|
version,
|
|
927
954
|
)
|
|
928
955
|
log.debug(
|
|
929
|
-
"Unused variables: chip template: %s, speed: %i MHz, reverse orientation: %s
|
|
956
|
+
"Unused variables: chip template: %s, default chip config: %s, speed: %i MHz, reverse orientation: %s, clear chip config: %s",
|
|
930
957
|
chip_template,
|
|
958
|
+
default_chip_config,
|
|
931
959
|
speed,
|
|
932
960
|
reverse,
|
|
961
|
+
clear_chip_config,
|
|
933
962
|
)
|
|
934
963
|
|
|
935
964
|
config_api = ChipConfigAPI(self.client)
|