--- a/src/eric7/PipInterface/PipPackagesWidget.py Thu Sep 14 15:54:56 2023 +0200 +++ b/src/eric7/PipInterface/PipPackagesWidget.py Fri Sep 15 10:27:46 2023 +0200 @@ -274,6 +274,8 @@ self.viewsStackWidget.setCurrentWidget(self.packagesPage) self.on_packagesList_currentItemChanged(None, None) + self.preferencesChanged() # perform preferences dependent configuration + @pyqtSlot() def __projectOpened(self): """ @@ -1670,6 +1672,8 @@ self.packagesList.setColumnHidden( PipPackagesWidget.VulnerabilityColumn, not enable ) + if not enable: + self.__clearVulnerabilityInfo() @pyqtSlot(bool) def on_vulnerabilityCheckBox_clicked(self, checked): @@ -1681,6 +1685,8 @@ """ if checked: self.__updateVulnerabilityData(clearFirst=True) + else: + self.__clearVulnerabilityInfo() self.packagesList.header().setSectionHidden( PipPackagesWidget.VulnerabilityColumn, not checked @@ -1732,33 +1738,37 @@ ) ) - error, vulnerabilities = self.__pip.getVulnerabilityChecker().check(packages) - if error == VulnerabilityCheckError.OK: - for package in vulnerabilities: - items = self.packagesList.findItems( - package, Qt.MatchFlag.MatchExactly | Qt.MatchFlag.MatchCaseSensitive - ) - if items: - itm = items[0] - itm.setData( - PipPackagesWidget.VulnerabilityColumn, - PipPackagesWidget.VulnerabilityRole, - vulnerabilities[package], + if packages: + error, vulnerabilities = self.__pip.getVulnerabilityChecker().check( + packages + ) + if error == VulnerabilityCheckError.OK: + for package in vulnerabilities: + items = self.packagesList.findItems( + package, + Qt.MatchFlag.MatchExactly | Qt.MatchFlag.MatchCaseSensitive, ) - affected = {v.spec for v in vulnerabilities[package]} - itm.setText( - PipPackagesWidget.VulnerabilityColumn, ", ".join(affected) - ) - itm.setIcon( - PipPackagesWidget.VulnerabilityColumn, - EricPixmapCache.getIcon("securityLow"), - ) + if items: + itm = items[0] + itm.setData( + PipPackagesWidget.VulnerabilityColumn, + PipPackagesWidget.VulnerabilityRole, + vulnerabilities[package], + ) + affected = {v.spec for v in vulnerabilities[package]} + itm.setText( + PipPackagesWidget.VulnerabilityColumn, ", ".join(affected) + ) + itm.setIcon( + PipPackagesWidget.VulnerabilityColumn, + EricPixmapCache.getIcon("securityLow"), + ) - elif error in ( - VulnerabilityCheckError.FullDbUnavailable, - VulnerabilityCheckError.SummaryDbUnavailable, - ): - self.setVulnerabilityEnabled(False) + elif error in ( + VulnerabilityCheckError.FullDbUnavailable, + VulnerabilityCheckError.SummaryDbUnavailable, + ): + self.setVulnerabilityEnabled(False) @pyqtSlot() def __updateVulnerabilityDbCache(self):