26 QMenu, |
26 QMenu, |
27 QDialog, |
27 QDialog, |
28 QAbstractItemView, |
28 QAbstractItemView, |
29 ) |
29 ) |
30 |
30 |
31 from EricWidgets.EricApplication import ericApp |
31 from eric7.EricWidgets.EricApplication import ericApp |
32 from EricWidgets import EricMessageBox |
32 from eric7.EricWidgets import EricMessageBox |
33 from EricGui.EricOverrideCursor import EricOverrideCursor |
33 from eric7.EricGui.EricOverrideCursor import EricOverrideCursor |
34 |
34 |
35 from .PipVulnerabilityChecker import Package, VulnerabilityCheckError |
35 from .PipVulnerabilityChecker import Package, VulnerabilityCheckError |
36 from .Ui_PipPackagesWidget import Ui_PipPackagesWidget |
36 from .Ui_PipPackagesWidget import Ui_PipPackagesWidget |
37 |
37 |
38 import UI.PixmapCache |
38 from eric7.EricGui import EricPixmapCache |
39 import Globals |
39 from eric7 import Globals, Preferences |
40 import Preferences |
|
41 |
40 |
42 |
41 |
43 class PypiSearchResultsParser(html.parser.HTMLParser): |
42 class PypiSearchResultsParser(html.parser.HTMLParser): |
44 """ |
43 """ |
45 Class implementing the parser for the PyPI search result page. |
44 Class implementing the parser for the PyPI search result page. |
186 super().__init__(parent) |
185 super().__init__(parent) |
187 self.setupUi(self) |
186 self.setupUi(self) |
188 |
187 |
189 self.layout().setContentsMargins(0, 3, 0, 0) |
188 self.layout().setContentsMargins(0, 3, 0, 0) |
190 |
189 |
191 self.viewToggleButton.setIcon(UI.PixmapCache.getIcon("viewListTree")) |
190 self.viewToggleButton.setIcon(EricPixmapCache.getIcon("viewListTree")) |
192 |
191 |
193 self.pipMenuButton.setObjectName("pip_supermenu_button") |
192 self.pipMenuButton.setObjectName("pip_supermenu_button") |
194 self.pipMenuButton.setIcon(UI.PixmapCache.getIcon("superMenu")) |
193 self.pipMenuButton.setIcon(EricPixmapCache.getIcon("superMenu")) |
195 self.pipMenuButton.setToolTip(self.tr("pip Menu")) |
194 self.pipMenuButton.setToolTip(self.tr("pip Menu")) |
196 self.pipMenuButton.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) |
195 self.pipMenuButton.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) |
197 self.pipMenuButton.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonIconOnly) |
196 self.pipMenuButton.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonIconOnly) |
198 self.pipMenuButton.setFocusPolicy(Qt.FocusPolicy.NoFocus) |
197 self.pipMenuButton.setFocusPolicy(Qt.FocusPolicy.NoFocus) |
199 self.pipMenuButton.setAutoRaise(True) |
198 self.pipMenuButton.setAutoRaise(True) |
200 self.pipMenuButton.setShowMenuInside(True) |
199 self.pipMenuButton.setShowMenuInside(True) |
201 |
200 |
202 self.refreshButton.setIcon(UI.PixmapCache.getIcon("reload")) |
201 self.refreshButton.setIcon(EricPixmapCache.getIcon("reload")) |
203 self.upgradeButton.setIcon(UI.PixmapCache.getIcon("1uparrow")) |
202 self.upgradeButton.setIcon(EricPixmapCache.getIcon("1uparrow")) |
204 self.upgradeAllButton.setIcon(UI.PixmapCache.getIcon("2uparrow")) |
203 self.upgradeAllButton.setIcon(EricPixmapCache.getIcon("2uparrow")) |
205 self.uninstallButton.setIcon(UI.PixmapCache.getIcon("minus")) |
204 self.uninstallButton.setIcon(EricPixmapCache.getIcon("minus")) |
206 self.showPackageDetailsButton.setIcon(UI.PixmapCache.getIcon("info")) |
205 self.showPackageDetailsButton.setIcon(EricPixmapCache.getIcon("info")) |
207 self.searchToggleButton.setIcon(UI.PixmapCache.getIcon("find")) |
206 self.searchToggleButton.setIcon(EricPixmapCache.getIcon("find")) |
208 self.searchButton.setIcon(UI.PixmapCache.getIcon("findNext")) |
207 self.searchButton.setIcon(EricPixmapCache.getIcon("findNext")) |
209 self.searchMoreButton.setIcon(UI.PixmapCache.getIcon("plus")) |
208 self.searchMoreButton.setIcon(EricPixmapCache.getIcon("plus")) |
210 self.installButton.setIcon(UI.PixmapCache.getIcon("plus")) |
209 self.installButton.setIcon(EricPixmapCache.getIcon("plus")) |
211 self.installUserSiteButton.setIcon(UI.PixmapCache.getIcon("addUser")) |
210 self.installUserSiteButton.setIcon(EricPixmapCache.getIcon("addUser")) |
212 self.showDetailsButton.setIcon(UI.PixmapCache.getIcon("info")) |
211 self.showDetailsButton.setIcon(EricPixmapCache.getIcon("info")) |
213 |
212 |
214 self.refreshDependenciesButton.setIcon(UI.PixmapCache.getIcon("reload")) |
213 self.refreshDependenciesButton.setIcon(EricPixmapCache.getIcon("reload")) |
215 self.showDepPackageDetailsButton.setIcon(UI.PixmapCache.getIcon("info")) |
214 self.showDepPackageDetailsButton.setIcon(EricPixmapCache.getIcon("info")) |
216 self.dependencyRepairButton.setIcon(UI.PixmapCache.getIcon("repair")) |
215 self.dependencyRepairButton.setIcon(EricPixmapCache.getIcon("repair")) |
217 |
216 |
218 self.__pip = pip |
217 self.__pip = pip |
219 |
218 |
220 self.packagesList.header().setSortIndicator( |
219 self.packagesList.header().setSortIndicator( |
221 PipPackagesWidget.PackageColumn, Qt.SortOrder.AscendingOrder |
220 PipPackagesWidget.PackageColumn, Qt.SortOrder.AscendingOrder |
1596 itm.setText( |
1595 itm.setText( |
1597 PipPackagesWidget.VulnerabilityColumn, ", ".join(affected) |
1596 PipPackagesWidget.VulnerabilityColumn, ", ".join(affected) |
1598 ) |
1597 ) |
1599 itm.setIcon( |
1598 itm.setIcon( |
1600 PipPackagesWidget.VulnerabilityColumn, |
1599 PipPackagesWidget.VulnerabilityColumn, |
1601 UI.PixmapCache.getIcon("securityLow"), |
1600 EricPixmapCache.getIcon("securityLow"), |
1602 ) |
1601 ) |
1603 |
1602 |
1604 elif error in ( |
1603 elif error in ( |
1605 VulnerabilityCheckError.FullDbUnavailable, |
1604 VulnerabilityCheckError.FullDbUnavailable, |
1606 VulnerabilityCheckError.SummaryDbUnavailable, |
1605 VulnerabilityCheckError.SummaryDbUnavailable, |
1772 ) |
1771 ) |
1773 specifierSet = SpecifierSet(specifiers=spec) |
1772 specifierSet = SpecifierSet(specifiers=spec) |
1774 if not specifierSet.contains(dependency["installed_version"]): |
1773 if not specifierSet.contains(dependency["installed_version"]): |
1775 itm.setIcon( |
1774 itm.setIcon( |
1776 PipPackagesWidget.DepRequiredVersionColumn, |
1775 PipPackagesWidget.DepRequiredVersionColumn, |
1777 UI.PixmapCache.getIcon("warning"), |
1776 EricPixmapCache.getIcon("warning"), |
1778 ) |
1777 ) |
1779 |
1778 |
1780 elif dependency["required_version"].lower() == "any": |
1779 elif dependency["required_version"].lower() == "any": |
1781 itm.setText(PipPackagesWidget.DepRequiredVersionColumn, self.tr("any")) |
1780 itm.setText(PipPackagesWidget.DepRequiredVersionColumn, self.tr("any")) |
1782 |
1781 |