Tue, 08 Apr 2025 12:37:50 +0200
Some change in the pip packages widget to (hopefully) get rid of a sporadic shutdown issue.
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
11090
f5f5f5803935
Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11058
diff
changeset
|
3 | # Copyright (c) 2019 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the pip packages management widget. |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9437
diff
changeset
|
10 | import contextlib |
10481
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
11 | import enum |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
12 | import os |
6793
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
13 | |
10093
245505200513
Added code to handle an invalid dependency specifier showing the dependency tree.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10084
diff
changeset
|
14 | from packaging.specifiers import InvalidSpecifier, SpecifierSet |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9437
diff
changeset
|
15 | from PyQt6.QtCore import Qt, QUrl, QUrlQuery, pyqtSlot |
11128
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
16 | from PyQt6.QtGui import QBrush, QDesktopServices, QIcon |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
17 | from PyQt6.QtWidgets import ( |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9437
diff
changeset
|
18 | QDialog, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
19 | QHeaderView, |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9437
diff
changeset
|
20 | QMenu, |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9437
diff
changeset
|
21 | QToolButton, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
22 | QTreeWidgetItem, |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9437
diff
changeset
|
23 | QWidget, |
7255
d595f6f9cbf8
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7241
diff
changeset
|
24 | ) |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
25 | |
10806
2f6df822e3b9
Moved some functions to the EricUtilities package for consistency and adapted the code base accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10766
diff
changeset
|
26 | from eric7 import EricUtilities, Preferences |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9437
diff
changeset
|
27 | from eric7.EricGui import EricPixmapCache |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9437
diff
changeset
|
28 | from eric7.EricGui.EricOverrideCursor import EricOverrideCursor |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9243
diff
changeset
|
29 | from eric7.EricWidgets import EricMessageBox |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9437
diff
changeset
|
30 | from eric7.EricWidgets.EricApplication import ericApp |
6793
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
31 | |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
32 | from .PipVulnerabilityChecker import Package, VulnerabilityCheckError |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | from .Ui_PipPackagesWidget import Ui_PipPackagesWidget |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | |
10481
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
36 | class PipPackageInformationMode(enum.Enum): |
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
37 | """ |
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
38 | Class defining the show information process modes. |
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
39 | """ |
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
40 | |
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
41 | General = 0 |
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
42 | Classifiers = 1 |
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
43 | EntryPoints = 2 |
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
44 | FilesList = 3 |
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
45 | UrlsList = 4 |
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
46 | |
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
47 | |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | class PipPackagesWidget(QWidget, Ui_PipPackagesWidget): |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | """ |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
50 | Class implementing the pip packages management widget. |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
52 | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8090
diff
changeset
|
53 | SearchVersionRole = Qt.ItemDataRole.UserRole + 1 |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
54 | VulnerabilityRole = Qt.ItemDataRole.UserRole + 2 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
55 | |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
56 | PackageColumn = 0 |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
57 | InstalledVersionColumn = 1 |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
58 | AvailableVersionColumn = 2 |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
59 | VulnerabilityColumn = 3 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
60 | |
8997 | 61 | DepPackageColumn = 0 |
62 | DepInstalledVersionColumn = 1 | |
63 | DepRequiredVersionColumn = 2 | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
64 | |
6828
bb6667ea9ae7
Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6806
diff
changeset
|
65 | def __init__(self, pip, parent=None): |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | """ |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
68 | |
6828
bb6667ea9ae7
Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6806
diff
changeset
|
69 | @param pip reference to the global pip interface |
bb6667ea9ae7
Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6806
diff
changeset
|
70 | @type Pip |
10084
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
71 | @param parent reference to the parent widget (defaults to None) |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
72 | @type QWidget (optional) |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8152
diff
changeset
|
74 | super().__init__(parent) |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | self.setupUi(self) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
76 | |
8604
d25390ea2f19
Changed the margins of some right side bar managed items to (0, 3, 0, 0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8466
diff
changeset
|
77 | self.layout().setContentsMargins(0, 3, 0, 0) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
78 | |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9243
diff
changeset
|
79 | self.viewToggleButton.setIcon(EricPixmapCache.getIcon("viewListTree")) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
80 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
81 | self.pipMenuButton.setObjectName("pip_supermenu_button") |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9243
diff
changeset
|
82 | self.pipMenuButton.setIcon(EricPixmapCache.getIcon("superMenu")) |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | self.pipMenuButton.setToolTip(self.tr("pip Menu")) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
84 | self.pipMenuButton.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
85 | self.pipMenuButton.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonIconOnly) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8090
diff
changeset
|
86 | self.pipMenuButton.setFocusPolicy(Qt.FocusPolicy.NoFocus) |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | self.pipMenuButton.setShowMenuInside(True) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
88 | |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9243
diff
changeset
|
89 | self.refreshButton.setIcon(EricPixmapCache.getIcon("reload")) |
11093
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
90 | self.installButton.setIcon(EricPixmapCache.getIcon("plus")) |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9243
diff
changeset
|
91 | self.upgradeButton.setIcon(EricPixmapCache.getIcon("1uparrow")) |
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9243
diff
changeset
|
92 | self.upgradeAllButton.setIcon(EricPixmapCache.getIcon("2uparrow")) |
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9243
diff
changeset
|
93 | self.uninstallButton.setIcon(EricPixmapCache.getIcon("minus")) |
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9243
diff
changeset
|
94 | self.showPackageDetailsButton.setIcon(EricPixmapCache.getIcon("info")) |
11093
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
95 | self.searchButton.setIcon(EricPixmapCache.getIcon("find")) |
11091
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
96 | self.cleanupButton.setIcon(EricPixmapCache.getIcon("clear")) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
97 | |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9243
diff
changeset
|
98 | self.refreshDependenciesButton.setIcon(EricPixmapCache.getIcon("reload")) |
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9243
diff
changeset
|
99 | self.showDepPackageDetailsButton.setIcon(EricPixmapCache.getIcon("info")) |
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9243
diff
changeset
|
100 | self.dependencyRepairButton.setIcon(EricPixmapCache.getIcon("repair")) |
10133
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
101 | self.dependencyRepairAllButton.setIcon(EricPixmapCache.getIcon("repairAll")) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
102 | |
6828
bb6667ea9ae7
Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6806
diff
changeset
|
103 | self.__pip = pip |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
104 | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8090
diff
changeset
|
105 | self.packagesList.header().setSortIndicator( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
106 | PipPackagesWidget.PackageColumn, Qt.SortOrder.AscendingOrder |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
107 | ) |
8997 | 108 | self.dependenciesList.header().setSortIndicator( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
109 | PipPackagesWidget.DepPackageColumn, Qt.SortOrder.AscendingOrder |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
110 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
111 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
112 | self.__infoLabels = { |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
113 | "author": self.tr("Author:"), |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
114 | "author-email": self.tr("Author Email:"), |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
115 | "classifiers": self.tr("Classifiers:"), |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
116 | "entry-points": self.tr("Entry Points:"), |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
117 | "files": self.tr("Files:"), |
10105
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
118 | "home-page": self.tr("Homepage:"), |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
119 | "installer": self.tr("Installer:"), |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
120 | "license": self.tr("License:"), |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
121 | "location": self.tr("Location:"), |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
122 | "metadata-version": self.tr("Metadata Version:"), |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
123 | "name": self.tr("Name:"), |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
124 | "project-urls": self.tr("Project URLs:"), |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
125 | "requires": self.tr("Requires:"), |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
126 | "required-by": self.tr("Required By:"), |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
127 | "summary": self.tr("Summary:"), |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
128 | "version": self.tr("Version:"), |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
129 | } |
10105
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
130 | self.packageInfoWidget.setHeaderLabels(["Key", "Value"]) |
8997 | 131 | self.dependencyInfoWidget.setHeaderLabels(["Key", "Value"]) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
132 | |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
133 | venvManager = ericApp().getObject("VirtualEnvManager") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
134 | venvManager.virtualEnvironmentAdded.connect(self.on_refreshButton_clicked) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
135 | venvManager.virtualEnvironmentRemoved.connect(self.on_refreshButton_clicked) |
8999
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
136 | self.__selectedEnvironment = None |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
137 | |
10084
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
138 | with contextlib.suppress(KeyError): |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
139 | project = ericApp().getObject("Project") |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
140 | project.projectOpened.connect(self.__projectOpened) |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
141 | project.projectClosed.connect(self.__projectClosed) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
142 | |
10104
3634d3c2a363
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10093
diff
changeset
|
143 | self.__packageDetailsDialog = None |
3634d3c2a363
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10093
diff
changeset
|
144 | |
11093
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
145 | self.installButton.clicked.connect(self.__installPackages) |
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
146 | |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | self.__initPipMenu() |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | self.__populateEnvironments() |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | self.__updateActionButtons() |
8997 | 150 | self.__updateDepActionButtons() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
151 | |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | self.statusLabel.hide() |
9000 | 153 | self.__lastSearchPage = 0 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
154 | |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
155 | self.__queryName = [] |
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
156 | self.__querySummary = [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
157 | |
8085 | 158 | self.__replies = [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
159 | |
8997 | 160 | self.viewsStackWidget.setCurrentWidget(self.packagesPage) |
10408
8824b6d71a11
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10210
diff
changeset
|
161 | self.on_packagesList_itemSelectionChanged() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
162 | |
10210
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
163 | self.preferencesChanged() # perform preferences dependent configuration |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
164 | |
8999
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
165 | @pyqtSlot() |
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
166 | def __projectOpened(self): |
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
167 | """ |
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
168 | Private slot to handle the projectOpened signal. |
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
169 | """ |
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
170 | projectVenv = self.__pip.getProjectEnvironmentString() |
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
171 | if projectVenv: |
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
172 | self.environmentsComboBox.insertItem(1, projectVenv) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
173 | |
8466
bb21fd901f49
Modified the shutdown code logic to not check PyPI for changed packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
174 | @pyqtSlot(bool) |
bb21fd901f49
Modified the shutdown code logic to not check PyPI for changed packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
175 | def __projectClosed(self, shutdown): |
bb21fd901f49
Modified the shutdown code logic to not check PyPI for changed packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
176 | """ |
bb21fd901f49
Modified the shutdown code logic to not check PyPI for changed packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
177 | Private slot to handle the projectClosed signal. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
178 | |
8466
bb21fd901f49
Modified the shutdown code logic to not check PyPI for changed packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
179 | @param shutdown flag indicating the IDE shutdown |
bb21fd901f49
Modified the shutdown code logic to not check PyPI for changed packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
180 | @type bool |
bb21fd901f49
Modified the shutdown code logic to not check PyPI for changed packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
181 | """ |
bb21fd901f49
Modified the shutdown code logic to not check PyPI for changed packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
182 | if not shutdown: |
10209
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
183 | # the project entry is always at index 1 |
9417
10b027c85e78
Improved the reaction of the pip widget to closing of the project if a project embedded environment was selected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
184 | if self.environmentsComboBox.currentIndex() == 1: |
10b027c85e78
Improved the reaction of the pip widget to closing of the project if a project embedded environment was selected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
185 | self.environmentsComboBox.setCurrentIndex(0) |
10b027c85e78
Improved the reaction of the pip widget to closing of the project if a project embedded environment was selected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
186 | |
8999
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
187 | self.environmentsComboBox.removeItem(1) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
188 | |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | def __populateEnvironments(self): |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | """ |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | Private method to get a list of environments and populate the selector. |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | """ |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | self.environmentsComboBox.addItem("") |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | projectVenv = self.__pip.getProjectEnvironmentString() |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | if projectVenv: |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | self.environmentsComboBox.addItem(projectVenv) |
6975
3325bf3e7b2c
Pip, PipPackagesWidget, VirtualenvManager: fixed an issue causing environments for remote debugging being shown in the selection list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
197 | self.environmentsComboBox.addItems( |
7726
b1ade4fcf05f
Pip Interface: added an option to not show 'conda' managed environments in the selector.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7641
diff
changeset
|
198 | self.__pip.getVirtualenvNames( |
10742
7aa41173b44b
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10736
diff
changeset
|
199 | noRemote=True, |
7aa41173b44b
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10736
diff
changeset
|
200 | noConda=Preferences.getPip("ExcludeCondaEnvironments"), |
7aa41173b44b
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10736
diff
changeset
|
201 | noGlobals=Preferences.getPip("ExcludeGlobalEnvironments"), |
10766
d35d6f96c24b
Extended the use of eric-ide server environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10742
diff
changeset
|
202 | noServer=True, |
7726
b1ade4fcf05f
Pip Interface: added an option to not show 'conda' managed environments in the selector.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7641
diff
changeset
|
203 | ) |
b1ade4fcf05f
Pip Interface: added an option to not show 'conda' managed environments in the selector.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7641
diff
changeset
|
204 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
205 | |
6793
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
206 | def __isPipAvailable(self): |
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
207 | """ |
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
208 | Private method to check, if the pip package is available for the |
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
209 | selected environment. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
210 | |
6793
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
211 | @return flag indicating availability |
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
212 | @rtype bool |
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
213 | """ |
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
214 | available = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
215 | |
6793
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
216 | venvName = self.environmentsComboBox.currentText() |
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
217 | if venvName: |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8090
diff
changeset
|
218 | available = ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
219 | len( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
220 | self.packagesList.findItems( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
221 | "pip", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
222 | Qt.MatchFlag.MatchExactly | Qt.MatchFlag.MatchCaseSensitive, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
223 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
224 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
225 | == 1 |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8090
diff
changeset
|
226 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
227 | |
6793
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
228 | return available |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
229 | |
7641
21ea4fd50b0a
PipPackagesWidget: made the cache actions dependent on pip version of selected environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7626
diff
changeset
|
230 | def __availablePipVersion(self): |
21ea4fd50b0a
PipPackagesWidget: made the cache actions dependent on pip version of selected environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7626
diff
changeset
|
231 | """ |
21ea4fd50b0a
PipPackagesWidget: made the cache actions dependent on pip version of selected environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7626
diff
changeset
|
232 | Private method to get the pip version of the selected environment. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
233 | |
7641
21ea4fd50b0a
PipPackagesWidget: made the cache actions dependent on pip version of selected environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7626
diff
changeset
|
234 | @return tuple containing the version number or tuple with all zeros |
21ea4fd50b0a
PipPackagesWidget: made the cache actions dependent on pip version of selected environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7626
diff
changeset
|
235 | in case pip is not available |
21ea4fd50b0a
PipPackagesWidget: made the cache actions dependent on pip version of selected environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7626
diff
changeset
|
236 | @rtype tuple of int |
21ea4fd50b0a
PipPackagesWidget: made the cache actions dependent on pip version of selected environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7626
diff
changeset
|
237 | """ |
21ea4fd50b0a
PipPackagesWidget: made the cache actions dependent on pip version of selected environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7626
diff
changeset
|
238 | pipVersionTuple = (0, 0, 0) |
21ea4fd50b0a
PipPackagesWidget: made the cache actions dependent on pip version of selected environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7626
diff
changeset
|
239 | venvName = self.environmentsComboBox.currentText() |
21ea4fd50b0a
PipPackagesWidget: made the cache actions dependent on pip version of selected environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7626
diff
changeset
|
240 | if venvName: |
21ea4fd50b0a
PipPackagesWidget: made the cache actions dependent on pip version of selected environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7626
diff
changeset
|
241 | pipList = self.packagesList.findItems( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
242 | "pip", Qt.MatchFlag.MatchExactly | Qt.MatchFlag.MatchCaseSensitive |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8090
diff
changeset
|
243 | ) |
7641
21ea4fd50b0a
PipPackagesWidget: made the cache actions dependent on pip version of selected environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7626
diff
changeset
|
244 | if len(pipList) > 0: |
10806
2f6df822e3b9
Moved some functions to the EricUtilities package for consistency and adapted the code base accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10766
diff
changeset
|
245 | pipVersionTuple = EricUtilities.versionToTuple( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
246 | pipList[0].text(PipPackagesWidget.InstalledVersionColumn) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
247 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
248 | |
7641
21ea4fd50b0a
PipPackagesWidget: made the cache actions dependent on pip version of selected environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7626
diff
changeset
|
249 | return pipVersionTuple |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
250 | |
8090 | 251 | def getPip(self): |
252 | """ | |
253 | Public method to get a reference to the pip interface object. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
254 | |
8090 | 255 | @return reference to the pip interface object |
256 | @rtype Pip | |
257 | """ | |
258 | return self.__pip | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
259 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
260 | ####################################################################### |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
261 | ## Slots handling widget signals below |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
262 | ####################################################################### |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
263 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
264 | def __selectedUpdateableItems(self): |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
265 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
266 | Private method to get a list of selected items that can be updated. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
267 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
268 | @return list of selected items that can be updated |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
269 | @rtype list of QTreeWidgetItem |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
270 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
271 | return [ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
272 | itm |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
273 | for itm in self.packagesList.selectedItems() |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
274 | if bool(itm.text(PipPackagesWidget.AvailableVersionColumn)) |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
275 | ] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
276 | |
9851
ec12090e9cd9
Modified the pip licenses dialog to show the license data for packages contained in the packages list only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9717
diff
changeset
|
277 | def __allPackageNames(self): |
ec12090e9cd9
Modified the pip licenses dialog to show the license data for packages contained in the packages list only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9717
diff
changeset
|
278 | """ |
ec12090e9cd9
Modified the pip licenses dialog to show the license data for packages contained in the packages list only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9717
diff
changeset
|
279 | Private method to get a list of all package names. |
ec12090e9cd9
Modified the pip licenses dialog to show the license data for packages contained in the packages list only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9717
diff
changeset
|
280 | |
ec12090e9cd9
Modified the pip licenses dialog to show the license data for packages contained in the packages list only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9717
diff
changeset
|
281 | @return list of all package names |
ec12090e9cd9
Modified the pip licenses dialog to show the license data for packages contained in the packages list only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9717
diff
changeset
|
282 | @rtype list of str |
ec12090e9cd9
Modified the pip licenses dialog to show the license data for packages contained in the packages list only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9717
diff
changeset
|
283 | """ |
ec12090e9cd9
Modified the pip licenses dialog to show the license data for packages contained in the packages list only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9717
diff
changeset
|
284 | packages = [] |
ec12090e9cd9
Modified the pip licenses dialog to show the license data for packages contained in the packages list only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9717
diff
changeset
|
285 | for index in range(self.packagesList.topLevelItemCount()): |
ec12090e9cd9
Modified the pip licenses dialog to show the license data for packages contained in the packages list only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9717
diff
changeset
|
286 | packages.append(self.packagesList.topLevelItem(index).text(0)) |
ec12090e9cd9
Modified the pip licenses dialog to show the license data for packages contained in the packages list only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9717
diff
changeset
|
287 | return packages |
ec12090e9cd9
Modified the pip licenses dialog to show the license data for packages contained in the packages list only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9717
diff
changeset
|
288 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
289 | def __allUpdateableItems(self): |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
290 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
291 | Private method to get a list of all items that can be updated. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
292 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
293 | @return list of all items that can be updated |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
294 | @rtype list of QTreeWidgetItem |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
295 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
296 | updateableItems = [] |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
297 | for index in range(self.packagesList.topLevelItemCount()): |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
298 | itm = self.packagesList.topLevelItem(index) |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
299 | if itm.text(PipPackagesWidget.AvailableVersionColumn): |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
300 | updateableItems.append(itm) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
301 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
302 | return updateableItems |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
303 | |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304 | def __updateActionButtons(self): |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305 | """ |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
306 | Private method to set the state of the action buttons. |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
307 | """ |
6793
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
308 | if self.__isPipAvailable(): |
11093
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
309 | self.installButton.setEnabled(True) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
310 | self.upgradeButton.setEnabled(bool(self.__selectedUpdateableItems())) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
311 | self.uninstallButton.setEnabled(bool(self.packagesList.selectedItems())) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
312 | self.upgradeAllButton.setEnabled(bool(self.__allUpdateableItems())) |
6801
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
313 | self.showPackageDetailsButton.setEnabled( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
314 | len(self.packagesList.selectedItems()) == 1 |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
315 | ) |
11091
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
316 | self.cleanupButton.setEnabled(True) |
6793
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
317 | else: |
11093
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
318 | self.installButton.setEnabled(False) |
6793
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
319 | self.upgradeButton.setEnabled(False) |
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
320 | self.uninstallButton.setEnabled(False) |
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
321 | self.upgradeAllButton.setEnabled(False) |
6801
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
322 | self.showPackageDetailsButton.setEnabled(False) |
11091
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
323 | self.cleanupButton.setEnabled(False) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
324 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
325 | def __refreshPackagesList(self): |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326 | """ |
8997 | 327 | Private method to refresh the packages list. |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328 | """ |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
329 | self.packagesList.clear() |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
330 | venvName = self.environmentsComboBox.currentText() |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331 | if venvName: |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332 | interpreter = self.__pip.getVirtualenvInterpreter(venvName) |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
333 | if interpreter: |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
334 | self.statusLabel.show() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
335 | self.statusLabel.setText(self.tr("Getting installed packages...")) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
336 | |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
337 | with EricOverrideCursor(): |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
338 | # 1. populate with installed packages |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
339 | installedPackages = self.__pip.getInstalledPackages( |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
340 | venvName, |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
341 | localPackages=self.localCheckBox.isChecked(), |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
342 | notRequired=self.notRequiredCheckBox.isChecked(), |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
343 | usersite=self.userCheckBox.isChecked(), |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
344 | ) |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
345 | for package, version in installedPackages: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
346 | QTreeWidgetItem(self.packagesList, [package, version, "", ""]) |
10209
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
347 | self.packagesList.sortItems( |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
348 | PipPackagesWidget.PackageColumn, Qt.SortOrder.AscendingOrder |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
349 | ) |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
350 | self.packagesList.resizeColumnToContents( |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
351 | PipPackagesWidget.PackageColumn |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
352 | ) |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
353 | self.packagesList.resizeColumnToContents( |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
354 | PipPackagesWidget.InstalledVersionColumn |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
355 | ) |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
356 | |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
357 | # 2. update with vulnerability information |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
358 | if self.vulnerabilityCheckBox.isChecked(): |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
359 | self.__updateVulnerabilityData() |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
360 | self.packagesList.resizeColumnToContents( |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
361 | PipPackagesWidget.VulnerabilityColumn |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
362 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
363 | self.statusLabel.setText(self.tr("Getting outdated packages...")) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
364 | |
10209
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
365 | # 3. update with update information |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
366 | self.__pip.getOutdatedPackages( |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
367 | venvName, |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
368 | localPackages=self.localCheckBox.isChecked(), |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
369 | notRequired=self.notRequiredCheckBox.isChecked(), |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
370 | usersite=self.userCheckBox.isChecked(), |
10209
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
371 | callback=self.__updateOutdatedInfo, |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
372 | ) |
10209
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
373 | |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
374 | else: |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
375 | self.__updateActionButtons() |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
376 | |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
377 | def __updateOutdatedInfo(self, outdatedPackages): |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
378 | """ |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
379 | Private method to process the list of outdated packages. |
10207
df02f650f574
Did a little code rearrangement in the pip packages widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10206
diff
changeset
|
380 | |
10736
0d213bb8b7f0
Optimized the pip packages widget a bit for speed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10690
diff
changeset
|
381 | @param outdatedPackages dictionary with the package name as key and |
0d213bb8b7f0
Optimized the pip packages widget a bit for speed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10690
diff
changeset
|
382 | a tuple containing the installed and available version as the value |
0d213bb8b7f0
Optimized the pip packages widget a bit for speed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10690
diff
changeset
|
383 | @type dict of [str: (str, str)] |
10209
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
384 | """ |
10736
0d213bb8b7f0
Optimized the pip packages widget a bit for speed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10690
diff
changeset
|
385 | for row in range(self.packagesList.topLevelItemCount()): |
0d213bb8b7f0
Optimized the pip packages widget a bit for speed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10690
diff
changeset
|
386 | item = self.packagesList.topLevelItem(row) |
0d213bb8b7f0
Optimized the pip packages widget a bit for speed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10690
diff
changeset
|
387 | with contextlib.suppress(KeyError): |
0d213bb8b7f0
Optimized the pip packages widget a bit for speed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10690
diff
changeset
|
388 | item.setText( |
0d213bb8b7f0
Optimized the pip packages widget a bit for speed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10690
diff
changeset
|
389 | PipPackagesWidget.AvailableVersionColumn, |
0d213bb8b7f0
Optimized the pip packages widget a bit for speed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10690
diff
changeset
|
390 | outdatedPackages[item.text(0)][1], |
0d213bb8b7f0
Optimized the pip packages widget a bit for speed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10690
diff
changeset
|
391 | ) |
10209
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
392 | self.packagesList.resizeColumnToContents( |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
393 | PipPackagesWidget.AvailableVersionColumn |
8bb763e85937
Modified the Pip.getOutdatedPackages() method to keep the UI responsive while pip accesses the internet for outdated packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10207
diff
changeset
|
394 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
395 | |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396 | self.__updateActionButtons() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
397 | |
10919
4e4c8ee38c45
Added a QProcess derived class with timeout and changed the pip interface to use that class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10806
diff
changeset
|
398 | self.statusLabel.hide() |
4e4c8ee38c45
Added a QProcess derived class with timeout and changed the pip interface to use that class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10806
diff
changeset
|
399 | |
8999
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
400 | @pyqtSlot(str) |
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
401 | def on_environmentsComboBox_currentTextChanged(self, name): |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
402 | """ |
7241
0c0c9015c40f
PipPackagesWidget: corrected a copy & paste issue in a source docu string.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
403 | Private slot handling the selection of a Python environment. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
404 | |
8999
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
405 | @param name name of the selected Python environment |
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
406 | @type str |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
407 | """ |
8999
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
408 | if name != self.__selectedEnvironment: |
11211
3e649cf5082c
Some change in the pip packages widget to (hopefully) get rid of a sporadic shutdown issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11148
diff
changeset
|
409 | self.packageSearchEdit.clear() |
3e649cf5082c
Some change in the pip packages widget to (hopefully) get rid of a sporadic shutdown issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11148
diff
changeset
|
410 | |
10104
3634d3c2a363
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10093
diff
changeset
|
411 | if name: |
9437
4bc1acf812f4
Added a label to the pip packages widget to show the interpreter path of the selected virtual environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9417
diff
changeset
|
412 | self.environmentPathLabel.setPath( |
4bc1acf812f4
Added a label to the pip packages widget to show the interpreter path of the selected virtual environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9417
diff
changeset
|
413 | self.__pip.getVirtualenvInterpreter(name) |
4bc1acf812f4
Added a label to the pip packages widget to show the interpreter path of the selected virtual environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9417
diff
changeset
|
414 | ) |
11211
3e649cf5082c
Some change in the pip packages widget to (hopefully) get rid of a sporadic shutdown issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11148
diff
changeset
|
415 | if self.viewToggleButton.isChecked(): |
3e649cf5082c
Some change in the pip packages widget to (hopefully) get rid of a sporadic shutdown issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11148
diff
changeset
|
416 | self.__refreshDependencyTree() |
3e649cf5082c
Some change in the pip packages widget to (hopefully) get rid of a sporadic shutdown issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11148
diff
changeset
|
417 | else: |
3e649cf5082c
Some change in the pip packages widget to (hopefully) get rid of a sporadic shutdown issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11148
diff
changeset
|
418 | self.__refreshPackagesList() |
10104
3634d3c2a363
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10093
diff
changeset
|
419 | else: |
3634d3c2a363
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10093
diff
changeset
|
420 | self.environmentPathLabel.setPath("") |
3634d3c2a363
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10093
diff
changeset
|
421 | if self.__packageDetailsDialog is not None: |
3634d3c2a363
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10093
diff
changeset
|
422 | self.__packageDetailsDialog.close() |
11211
3e649cf5082c
Some change in the pip packages widget to (hopefully) get rid of a sporadic shutdown issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11148
diff
changeset
|
423 | self.packagesList.clear() |
3e649cf5082c
Some change in the pip packages widget to (hopefully) get rid of a sporadic shutdown issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11148
diff
changeset
|
424 | self.dependenciesList.clear() |
11128
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
425 | |
8999
723f61499a79
Pip Interface: added some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8997
diff
changeset
|
426 | self.__selectedEnvironment = name |
11091
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
427 | self.__updateActionButtons() |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
428 | |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
429 | @pyqtSlot() |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
430 | def on_localCheckBox_clicked(self): |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
431 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
432 | Private slot handling the switching of the local mode. |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
433 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
434 | self.__refreshPackagesList() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
435 | |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
436 | @pyqtSlot() |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
437 | def on_notRequiredCheckBox_clicked(self): |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
438 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
439 | Private slot handling the switching of the 'not required' mode. |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
440 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
441 | self.__refreshPackagesList() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
442 | |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
443 | @pyqtSlot() |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
444 | def on_userCheckBox_clicked(self): |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
445 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
446 | Private slot handling the switching of the 'user-site' mode. |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
447 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
448 | self.__refreshPackagesList() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
449 | |
8997 | 450 | def __showPackageInformation(self, packageName, infoWidget): |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
451 | """ |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
452 | Private method to show information for a package. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
453 | |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
454 | @param packageName name of the package |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
455 | @type str |
8997 | 456 | @param infoWidget reference to the widget to contain the information |
457 | @type QTreeWidget | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
458 | """ |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
459 | environment = self.environmentsComboBox.currentText() |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
460 | interpreter = self.__pip.getVirtualenvInterpreter(environment) |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
461 | if not interpreter: |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
462 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
463 | |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
464 | args = ["-m", "pip", "show"] |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
465 | if self.verboseCheckBox.isChecked(): |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
466 | args.append("--verbose") |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
467 | if self.installedFilesCheckBox.isChecked(): |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
468 | args.append("--files") |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
469 | args.append(packageName) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
470 | |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
471 | with EricOverrideCursor(): |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
472 | success, output = self.__pip.runProcess(args, interpreter) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
473 | |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
474 | if success and output: |
10481
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
475 | mode = PipPackageInformationMode.General |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
476 | for line in output.splitlines(): |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
477 | line = line.rstrip() |
9569
b888d5495c1b
Fixed an issue in PipPackagesWidget causing an exception in certain situations (see issue465).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
478 | if line and line != "---": |
10481
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
479 | if mode != PipPackageInformationMode.General: |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
480 | if line[0] == " ": |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
481 | QTreeWidgetItem(infoWidget, [" ", line.strip()]) |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
482 | else: |
10481
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
483 | mode = PipPackageInformationMode.General |
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
484 | if mode == PipPackageInformationMode.General: |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
485 | try: |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
486 | label, info = line.split(": ", 1) |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
487 | except ValueError: |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
488 | label = line[:-1] |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
489 | info = "" |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
490 | label = label.lower() |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
491 | if label in self.__infoLabels: |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
492 | QTreeWidgetItem( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
493 | infoWidget, [self.__infoLabels[label], info] |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
494 | ) |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
495 | if label == "files": |
10481
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
496 | mode = PipPackageInformationMode.FilesList |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
497 | elif label == "classifiers": |
10481
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
498 | mode = PipPackageInformationMode.Classifiers |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
499 | elif label == "entry-points": |
10481
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
500 | mode = PipPackageInformationMode.EntryPoints |
10105
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
501 | elif label == "project-urls": |
10481
9aea3575bd16
- Changed some state/mode definitiuons to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10475
diff
changeset
|
502 | mode = PipPackageInformationMode.UrlsList |
8997 | 503 | infoWidget.scrollToTop() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
504 | |
8997 | 505 | header = infoWidget.header() |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
506 | header.setStretchLastSection(False) |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
507 | header.resizeSections(QHeaderView.ResizeMode.ResizeToContents) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
508 | if header.sectionSize(0) + header.sectionSize(1) < header.width(): |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
509 | header.setStretchLastSection(True) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
510 | |
8985
30e9e592732d
pip Interface: Fine tuned the mouse behavior of the pip packages list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8978
diff
changeset
|
511 | @pyqtSlot() |
30e9e592732d
pip Interface: Fine tuned the mouse behavior of the pip packages list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8978
diff
changeset
|
512 | def on_packagesList_itemSelectionChanged(self): |
30e9e592732d
pip Interface: Fine tuned the mouse behavior of the pip packages list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8978
diff
changeset
|
513 | """ |
30e9e592732d
pip Interface: Fine tuned the mouse behavior of the pip packages list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8978
diff
changeset
|
514 | Private slot reacting on a change of selected items. |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
515 | """ |
10105
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
516 | self.packageInfoWidget.clear() |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
517 | self.vulnerabilitiesInfoWidget.clear() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
518 | |
10408
8824b6d71a11
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10210
diff
changeset
|
519 | if len(self.packagesList.selectedItems()) == 1: |
8824b6d71a11
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10210
diff
changeset
|
520 | # one item was selected, show info for that item |
8824b6d71a11
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10210
diff
changeset
|
521 | curr = self.packagesList.selectedItems()[0] |
10105
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
522 | self.__showPackageInformation( |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
523 | curr.text(PipPackagesWidget.PackageColumn), self.packageInfoWidget |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
524 | ) |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
525 | if bool(curr.text(PipPackagesWidget.VulnerabilityColumn)): |
8985
30e9e592732d
pip Interface: Fine tuned the mouse behavior of the pip packages list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8978
diff
changeset
|
526 | self.__showVulnerabilityInformation( |
10105
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
527 | curr.text(PipPackagesWidget.PackageColumn), |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
528 | curr.text(PipPackagesWidget.InstalledVersionColumn), |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
529 | curr.data( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
530 | PipPackagesWidget.VulnerabilityColumn, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
531 | PipPackagesWidget.VulnerabilityRole, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
532 | ), |
8985
30e9e592732d
pip Interface: Fine tuned the mouse behavior of the pip packages list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8978
diff
changeset
|
533 | ) |
10105
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
534 | self.infoWidget.tabBar().show() |
8985
30e9e592732d
pip Interface: Fine tuned the mouse behavior of the pip packages list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8978
diff
changeset
|
535 | else: |
10105
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
536 | self.infoWidget.tabBar().hide() |
10408
8824b6d71a11
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10210
diff
changeset
|
537 | self.infoWidget.setCurrentIndex(0) |
8824b6d71a11
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10210
diff
changeset
|
538 | else: |
8824b6d71a11
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10210
diff
changeset
|
539 | # multiple items or none were selected |
8824b6d71a11
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10210
diff
changeset
|
540 | self.infoWidget.tabBar().hide() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
541 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
542 | self.__updateActionButtons() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
543 | |
6801
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
544 | @pyqtSlot(QTreeWidgetItem, int) |
8985
30e9e592732d
pip Interface: Fine tuned the mouse behavior of the pip packages list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8978
diff
changeset
|
545 | def on_packagesList_itemActivated(self, item, column): |
6801
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
546 | """ |
8985
30e9e592732d
pip Interface: Fine tuned the mouse behavior of the pip packages list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8978
diff
changeset
|
547 | Private slot reacting on a package item being activated. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
548 | |
8985
30e9e592732d
pip Interface: Fine tuned the mouse behavior of the pip packages list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8978
diff
changeset
|
549 | @param item reference to the activated item |
6801
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
550 | @type QTreeWidgetItem |
8985
30e9e592732d
pip Interface: Fine tuned the mouse behavior of the pip packages list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8978
diff
changeset
|
551 | @param column activated column |
6801
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
552 | @type int |
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
553 | """ |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
554 | packageName = item.text(PipPackagesWidget.PackageColumn) |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
555 | upgradable = bool(item.text(PipPackagesWidget.AvailableVersionColumn)) |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
556 | if column == PipPackagesWidget.InstalledVersionColumn: |
6801
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
557 | # show details for installed version |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
558 | packageVersion = item.text(PipPackagesWidget.InstalledVersionColumn) |
6801
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
559 | else: |
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
560 | # show details for available version or installed one |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
561 | if item.text(PipPackagesWidget.AvailableVersionColumn): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
562 | packageVersion = item.text(PipPackagesWidget.AvailableVersionColumn) |
6801
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
563 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
564 | packageVersion = item.text(PipPackagesWidget.InstalledVersionColumn) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
565 | |
9659 | 566 | vulnerabilities = ( |
567 | item.data( | |
568 | PipPackagesWidget.VulnerabilityColumn, | |
569 | PipPackagesWidget.VulnerabilityRole, | |
570 | ) | |
571 | if bool(item.text(PipPackagesWidget.VulnerabilityColumn)) | |
572 | else [] | |
573 | ) | |
574 | ||
575 | self.__showPackageDetails( | |
576 | packageName, | |
577 | packageVersion, | |
578 | vulnerabilities=vulnerabilities, | |
579 | upgradable=upgradable, | |
580 | ) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
581 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
582 | @pyqtSlot(bool) |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
583 | def on_verboseCheckBox_clicked(self, checked): |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
584 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
585 | Private slot to handle a change of the verbose package information |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
586 | checkbox. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
587 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
588 | @param checked state of the checkbox |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
589 | @type bool |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
590 | """ |
10408
8824b6d71a11
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10210
diff
changeset
|
591 | self.on_packagesList_itemSelectionChanged() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
592 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
593 | @pyqtSlot(bool) |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
594 | def on_installedFilesCheckBox_clicked(self, checked): |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
595 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
596 | Private slot to handle a change of the installed files information |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
597 | checkbox. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
598 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
599 | @param checked state of the checkbox |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
600 | @type bool |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
601 | """ |
10408
8824b6d71a11
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10210
diff
changeset
|
602 | self.on_packagesList_itemSelectionChanged() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
603 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
604 | @pyqtSlot() |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
605 | def on_refreshButton_clicked(self): |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
606 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
607 | Private slot to refresh the display. |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
608 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
609 | currentEnvironment = self.environmentsComboBox.currentText() |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
610 | self.environmentsComboBox.clear() |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
611 | self.packagesList.clear() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
612 | |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
613 | with EricOverrideCursor(): |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
614 | self.__populateEnvironments() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
615 | |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
616 | index = self.environmentsComboBox.findText( |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8090
diff
changeset
|
617 | currentEnvironment, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
618 | Qt.MatchFlag.MatchExactly | Qt.MatchFlag.MatchCaseSensitive, |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8090
diff
changeset
|
619 | ) |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
620 | if index != -1: |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
621 | self.environmentsComboBox.setCurrentIndex(index) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
622 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
623 | self.__updateActionButtons() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
624 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
625 | @pyqtSlot() |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
626 | def on_upgradeButton_clicked(self): |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
627 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
628 | Private slot to upgrade selected packages of the selected environment. |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
629 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
630 | packages = [ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
631 | itm.text(PipPackagesWidget.PackageColumn) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
632 | for itm in self.__selectedUpdateableItems() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
633 | ] |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
634 | if packages: |
8090 | 635 | self.executeUpgradePackages(packages) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
636 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
637 | @pyqtSlot() |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
638 | def on_upgradeAllButton_clicked(self): |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
639 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
640 | Private slot to upgrade all packages of the selected environment. |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
641 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
642 | packages = [ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
643 | itm.text(PipPackagesWidget.PackageColumn) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
644 | for itm in self.__allUpdateableItems() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
645 | ] |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
646 | if packages: |
8090 | 647 | self.executeUpgradePackages(packages) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
648 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
649 | @pyqtSlot() |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
650 | def on_uninstallButton_clicked(self): |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
651 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
652 | Private slot to remove selected packages of the selected environment. |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
653 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
654 | packages = [ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
655 | itm.text(PipPackagesWidget.PackageColumn) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
656 | for itm in self.packagesList.selectedItems() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
657 | ] |
8090 | 658 | self.executeUninstallPackages(packages) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
659 | |
8090 | 660 | def executeUninstallPackages(self, packages): |
661 | """ | |
662 | Public method to uninstall the given list of packages. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
663 | |
8090 | 664 | @param packages list of package names to be uninstalled |
665 | @type list of str | |
666 | """ | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
667 | if packages: |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
668 | ok = self.__pip.uninstallPackages( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
669 | packages, venvName=self.environmentsComboBox.currentText() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
670 | ) |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
671 | if ok: |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
672 | self.on_refreshButton_clicked() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
673 | |
8090 | 674 | def executeUpgradePackages(self, packages): |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
675 | """ |
8090 | 676 | Public method to execute the pip upgrade command. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
677 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
678 | @param packages list of package names to be upgraded |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
679 | @type list of str |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
680 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
681 | ok = self.__pip.upgradePackages( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
682 | packages, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
683 | venvName=self.environmentsComboBox.currentText(), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
684 | userSite=self.userCheckBox.isChecked(), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
685 | ) |
8090 | 686 | if ok: |
687 | self.on_refreshButton_clicked() | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
688 | |
6801
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
689 | @pyqtSlot() |
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
690 | def on_showPackageDetailsButton_clicked(self): |
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
691 | """ |
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
692 | Private slot to show information for the selected package. |
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
693 | """ |
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
694 | item = self.packagesList.selectedItems()[0] |
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
695 | if item: |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
696 | packageName = item.text(PipPackagesWidget.PackageColumn) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
697 | upgradable = bool(item.text(PipPackagesWidget.AvailableVersionColumn)) |
6801
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
698 | # show details for available version or installed one |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
699 | if item.text(PipPackagesWidget.AvailableVersionColumn): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
700 | packageVersion = item.text(PipPackagesWidget.AvailableVersionColumn) |
6801
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
701 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
702 | packageVersion = item.text(PipPackagesWidget.InstalledVersionColumn) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
703 | |
9659 | 704 | vulnerabilities = ( |
705 | item.data( | |
706 | PipPackagesWidget.VulnerabilityColumn, | |
707 | PipPackagesWidget.VulnerabilityRole, | |
708 | ) | |
709 | if bool(item.text(PipPackagesWidget.VulnerabilityColumn)) | |
710 | else [] | |
711 | ) | |
712 | ||
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
713 | self.__showPackageDetails( |
9659 | 714 | packageName, |
715 | packageVersion, | |
716 | vulnerabilities=vulnerabilities, | |
717 | upgradable=upgradable, | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
718 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
719 | |
11091
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
720 | @pyqtSlot() |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
721 | def on_cleanupButton_clicked(self): |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
722 | """ |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
723 | Private slot to cleanup the site-packages directory of the selected |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
724 | environment. |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
725 | """ |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
726 | envName = self.environmentsComboBox.currentText() |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
727 | if envName: |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
728 | ok = self.__pip.runCleanup(envName=envName) |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
729 | if ok: |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
730 | EricMessageBox.information( |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
731 | self, |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
732 | self.tr("Cleanup Environment"), |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
733 | self.tr("The environment cleanup was successful."), |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
734 | ) |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
735 | else: |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
736 | EricMessageBox.warning( |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
737 | self, |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
738 | self.tr("Cleanup Environment"), |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
739 | self.tr( |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
740 | "Some leftover package directories could not been removed." |
11093
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
741 | " Delete them manually." |
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
742 | ), |
11091
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
743 | ) |
3a1ba42ac50a
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
744 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
745 | @pyqtSlot() |
6793
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
746 | def on_searchButton_clicked(self): |
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
747 | """ |
11093
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
748 | Private slot to open a web browser for package searching. |
6793
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
749 | """ |
11093
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
750 | url = QUrl(self.__pip.getIndexUrlSearch()) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
751 | |
11093
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
752 | searchTerm = self.searchEdit.text().strip() |
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
753 | if searchTerm: |
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
754 | searchTerm = bytes(QUrl.toPercentEncoding(searchTerm)).decode() |
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
755 | urlQuery = QUrlQuery() |
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
756 | urlQuery.addQueryItem("q", searchTerm) |
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
757 | url.setQuery(urlQuery) |
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
758 | |
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
759 | QDesktopServices.openUrl(url) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
760 | |
6793
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
761 | @pyqtSlot() |
11093
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
762 | def on_searchEdit_returnPressed(self): |
6793
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
763 | """ |
11093
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
764 | Private slot to handle the press of the Return key in the search line edit. |
6793
cca6a35f3ad2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6792
diff
changeset
|
765 | """ |
11093
e8932a99beb4
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
766 | self.on_searchButton_clicked() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
767 | |
8090 | 768 | def executeInstallPackages(self, packages, userSite=False): |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
769 | """ |
8090 | 770 | Public method to install the given list of packages. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
771 | |
8090 | 772 | @param packages list of package names to be installed |
773 | @type list of str | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
774 | @param userSite flag indicating to install to the user directory |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
775 | @type bool |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
776 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
777 | venvName = self.environmentsComboBox.currentText() |
8090 | 778 | if venvName and packages: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
779 | self.__pip.installPackages(packages, venvName=venvName, userSite=userSite) |
8090 | 780 | self.on_refreshButton_clicked() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
781 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
782 | def __showPackageDetails( |
9717
02544efa689b
Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9659
diff
changeset
|
783 | self, |
02544efa689b
Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9659
diff
changeset
|
784 | packageName, |
02544efa689b
Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9659
diff
changeset
|
785 | packageVersion, |
02544efa689b
Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9659
diff
changeset
|
786 | vulnerabilities=None, |
02544efa689b
Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9659
diff
changeset
|
787 | upgradable=False, |
02544efa689b
Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9659
diff
changeset
|
788 | installable=False, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
789 | ): |
6801
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
790 | """ |
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
791 | Private method to populate the package details dialog. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
792 | |
6801
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
793 | @param packageName name of the package to show details for |
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
794 | @type str |
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
795 | @param packageVersion version of the package |
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
796 | @type str |
9659 | 797 | @param vulnerabilities list of known vulnerabilities (defaults to None) |
798 | @type list (optional) | |
8090 | 799 | @param upgradable flag indicating that the package may be upgraded |
800 | (defaults to False) | |
801 | @type bool (optional) | |
802 | @param installable flag indicating that the package may be installed | |
803 | (defaults to False) | |
804 | @type bool (optional) | |
6801
df623ed5aaa6
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6798
diff
changeset
|
805 | """ |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
806 | from .PipPackageDetailsDialog import PipPackageDetailsDialog |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
807 | |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
808 | with EricOverrideCursor(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
809 | packageData = self.__pip.getPackageDetails(packageName, packageVersion) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
810 | |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
811 | if packageData: |
8090 | 812 | if installable: |
813 | buttonsMode = PipPackageDetailsDialog.ButtonInstall | |
814 | elif upgradable: | |
815 | buttonsMode = ( | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
816 | PipPackageDetailsDialog.ButtonRemove |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
817 | | PipPackageDetailsDialog.ButtonUpgrade |
8090 | 818 | ) |
819 | else: | |
820 | buttonsMode = PipPackageDetailsDialog.ButtonRemove | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
821 | |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
822 | if self.__packageDetailsDialog is not None: |
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
823 | self.__packageDetailsDialog.close() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
824 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
825 | self.__packageDetailsDialog = PipPackageDetailsDialog( |
9659 | 826 | packageData, |
827 | vulnerabilities=vulnerabilities, | |
828 | buttonsMode=buttonsMode, | |
829 | parent=self, | |
7255
d595f6f9cbf8
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7241
diff
changeset
|
830 | ) |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
831 | self.__packageDetailsDialog.show() |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
832 | else: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
833 | EricMessageBox.warning( |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
834 | self, |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
835 | self.tr("Search PyPI"), |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
836 | self.tr( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
837 | """<p>No package details info for <b>{0}</b>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
838 | """ available.</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
839 | ).format(packageName), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
840 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
841 | |
6785
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
842 | ####################################################################### |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
843 | ## Menu related methods below |
058d63c537a4
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
844 | ####################################################################### |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
845 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
846 | def __initPipMenu(self): |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
847 | """ |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
848 | Private method to create the super menu and attach it to the super |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
849 | menu button. |
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
850 | """ |
9243 | 851 | ################################################################### |
852 | ## Menu with pip related actions | |
853 | ################################################################### | |
854 | ||
855 | self.__pipSubmenu = QMenu(self.tr("Pip")) | |
856 | self.__installPipAct = self.__pipSubmenu.addAction( | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
857 | self.tr("Install Pip"), self.__installPip |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
858 | ) |
9243 | 859 | self.__installPipUserAct = self.__pipSubmenu.addAction( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
860 | self.tr("Install Pip to User-Site"), self.__installPipUser |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
861 | ) |
9243 | 862 | self.__repairPipAct = self.__pipSubmenu.addAction( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
863 | self.tr("Repair Pip"), self.__repairPip |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
864 | ) |
9243 | 865 | |
866 | ################################################################### | |
867 | ## Menu with install related actions | |
868 | ################################################################### | |
869 | ||
870 | self.__installSubmenu = QMenu(self.tr("Install")) | |
871 | self.__installPackagesAct = self.__installSubmenu.addAction( | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
872 | self.tr("Install Packages"), self.__installPackages |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
873 | ) |
9243 | 874 | self.__installLocalPackageAct = self.__installSubmenu.addAction( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
875 | self.tr("Install Local Package"), self.__installLocalPackage |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
876 | ) |
9243 | 877 | self.__reinstallPackagesAct = self.__installSubmenu.addAction( |
878 | self.tr("Re-Install Selected Packages"), self.__reinstallPackages | |
879 | ) | |
880 | ||
881 | ################################################################### | |
882 | ## Menu for requirements and constraints management | |
883 | ################################################################### | |
884 | ||
885 | self.__requirementsSubenu = QMenu(self.tr("Requirements/Constraints")) | |
886 | self.__installRequirementsAct = self.__requirementsSubenu.addAction( | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
887 | self.tr("Install Requirements"), self.__installRequirements |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
888 | ) |
9243 | 889 | self.__uninstallRequirementsAct = self.__requirementsSubenu.addAction( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
890 | self.tr("Uninstall Requirements"), self.__uninstallRequirements |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
891 | ) |
9243 | 892 | self.__generateRequirementsAct = self.__requirementsSubenu.addAction( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
893 | self.tr("Generate Requirements..."), self.__generateRequirements |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
894 | ) |
9243 | 895 | self.__requirementsSubenu.addSeparator() |
10620
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
896 | self.__installPyprojectAct = self.__requirementsSubenu.addAction( |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
897 | self.tr("Install from 'pyproject.toml'"), |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
898 | self.__installPyprojectDependencies, |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
899 | ) |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
900 | self.__uninstallPyprojectAct = self.__requirementsSubenu.addAction( |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
901 | self.tr("Uninstall from 'pyproject.toml'"), |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
902 | self.__uninstallPyprojectDependencies, |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
903 | ) |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
904 | self.__requirementsSubenu.addSeparator() |
9243 | 905 | self.__generateConstraintsAct = self.__requirementsSubenu.addAction( |
906 | self.tr("Generate Constraints..."), self.__generateConstraints | |
907 | ) | |
908 | ||
909 | ################################################################### | |
910 | ## Menu for requirements and constraints management | |
911 | ################################################################### | |
912 | ||
913 | self.__cacheSubmenu = QMenu(self.tr("Cache")) | |
914 | self.__cacheInfoAct = self.__cacheSubmenu.addAction( | |
915 | self.tr("Show Cache Info..."), self.__showCacheInfo | |
916 | ) | |
917 | self.__cacheShowListAct = self.__cacheSubmenu.addAction( | |
918 | self.tr("Show Cached Files..."), self.__showCacheList | |
919 | ) | |
920 | self.__cacheRemoveAct = self.__cacheSubmenu.addAction( | |
921 | self.tr("Remove Cached Files..."), self.__removeCachedFiles | |
922 | ) | |
923 | self.__cachePurgeAct = self.__cacheSubmenu.addAction( | |
924 | self.tr("Purge Cache..."), self.__purgeCache | |
925 | ) | |
926 | ||
927 | ################################################################### | |
928 | ## Main menu | |
929 | ################################################################### | |
930 | ||
931 | self.__pipMenu = QMenu() | |
932 | self.__pipSubmenuAct = self.__pipMenu.addMenu(self.__pipSubmenu) | |
933 | self.__pipMenu.addSeparator() | |
934 | self.__installSubmenuAct = self.__pipMenu.addMenu(self.__installSubmenu) | |
935 | self.__pipMenu.addSeparator() | |
936 | self.__requirementsSubmenuAct = self.__pipMenu.addMenu( | |
937 | self.__requirementsSubenu | |
938 | ) | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
939 | self.__pipMenu.addSeparator() |
9002
31a7decd3393
Started to implement a license lister for pip installed packages based on pip-licenses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9001
diff
changeset
|
940 | self.__showLicensesDialogAct = self.__pipMenu.addAction( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
941 | self.tr("Show Licenses..."), self.__showLicensesDialog |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
942 | ) |
9002
31a7decd3393
Started to implement a license lister for pip installed packages based on pip-licenses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9001
diff
changeset
|
943 | self.__pipMenu.addSeparator() |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
944 | self.__checkVulnerabilityAct = self.__pipMenu.addAction( |
9581
f0428ceedb41
Rearranged the PyPI (pip) widget layout (see issue468) and corrected a glitch in handling the menu action "Check Vulnerabilities".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9573
diff
changeset
|
945 | self.tr("Check Vulnerabilities"), self.__checkVulnerability |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
946 | ) |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
947 | # updateVulnerabilityDbAct |
10206
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
948 | self.__updateVulnerabilitiesAct = self.__pipMenu.addAction( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
949 | self.tr("Update Vulnerability Database"), self.__updateVulnerabilityDbCache |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
950 | ) |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
951 | self.__pipMenu.addSeparator() |
9117
c6afba2049cf
CycloneDX Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9114
diff
changeset
|
952 | self.__cyclonedxAct = self.__pipMenu.addAction( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
953 | self.tr("Create SBOM file"), self.__createSBOMFile |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
954 | ) |
9117
c6afba2049cf
CycloneDX Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9114
diff
changeset
|
955 | self.__pipMenu.addSeparator() |
9243 | 956 | self.__cacheSubmenuAct = self.__pipMenu.addMenu(self.__cacheSubmenu) |
7626
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
957 | self.__pipMenu.addSeparator() |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
958 | # editUserConfigAct |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
959 | self.__pipMenu.addAction( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
960 | self.tr("Edit User Configuration..."), self.__editUserConfiguration |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
961 | ) |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
962 | self.__editVirtualenvConfigAct = self.__pipMenu.addAction( |
6806
d306647cb82d
Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6804
diff
changeset
|
963 | self.tr("Edit Environment Configuration..."), |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
964 | self.__editVirtualenvConfiguration, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
965 | ) |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
966 | self.__pipMenu.addSeparator() |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
967 | # pipConfigAct |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
968 | self.__pipMenu.addAction(self.tr("Configure..."), self.__pipConfigure) |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
969 | |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
970 | self.__pipMenu.aboutToShow.connect(self.__aboutToShowPipMenu) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
971 | |
6792
9dd854f05c83
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6785
diff
changeset
|
972 | self.pipMenuButton.setMenu(self.__pipMenu) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
973 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
974 | def __aboutToShowPipMenu(self): |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
975 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
976 | Private slot to set the action enabled status. |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
977 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
978 | enable = bool(self.environmentsComboBox.currentText()) |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
979 | enablePip = self.__isPipAvailable() |
7641
21ea4fd50b0a
PipPackagesWidget: made the cache actions dependent on pip version of selected environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7626
diff
changeset
|
980 | enablePipCache = self.__availablePipVersion() >= (20, 1, 0) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
981 | |
9243 | 982 | self.__pipSubmenuAct.setEnabled(enable) |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
983 | self.__installPipAct.setEnabled(not enablePip) |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
984 | self.__installPipUserAct.setEnabled(not enablePip) |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
985 | self.__repairPipAct.setEnabled(enablePip) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
986 | |
9243 | 987 | self.__installSubmenu.setEnabled(enablePip) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
988 | |
9243 | 989 | self.__requirementsSubmenuAct.setEnabled(enablePip) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
990 | |
9243 | 991 | self.__cacheSubmenuAct.setEnabled(enablePipCache) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
992 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
993 | self.__editVirtualenvConfigAct.setEnabled(enable) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
994 | |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
995 | self.__checkVulnerabilityAct.setEnabled( |
10206
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
996 | enable |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
997 | and self.vulnerabilityCheckBox.isEnabled() |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
998 | and Preferences.getPip("VulnerabilityCheckEnabled") |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
999 | ) |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1000 | self.__updateVulnerabilitiesAct.setEnabled( |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1001 | enable and Preferences.getPip("VulnerabilityCheckEnabled") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1002 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1003 | |
9117
c6afba2049cf
CycloneDX Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9114
diff
changeset
|
1004 | self.__cyclonedxAct.setEnabled(enable) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1005 | |
9002
31a7decd3393
Started to implement a license lister for pip installed packages based on pip-licenses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9001
diff
changeset
|
1006 | self.__showLicensesDialogAct.setEnabled(enable) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1007 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1008 | @pyqtSlot() |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1009 | def __installPip(self): |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1010 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1011 | Private slot to install pip into the selected environment. |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1012 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1013 | venvName = self.environmentsComboBox.currentText() |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1014 | if venvName: |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1015 | self.__pip.installPip(venvName) |
7826
704c46e040a2
PipInterface: some little enhancements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7785
diff
changeset
|
1016 | self.on_refreshButton_clicked() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1017 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1018 | @pyqtSlot() |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1019 | def __installPipUser(self): |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1020 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1021 | Private slot to install pip into the user site for the selected |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1022 | environment. |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1023 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1024 | venvName = self.environmentsComboBox.currentText() |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1025 | if venvName: |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1026 | self.__pip.installPip(venvName, userSite=True) |
7826
704c46e040a2
PipInterface: some little enhancements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7785
diff
changeset
|
1027 | self.on_refreshButton_clicked() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1028 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1029 | @pyqtSlot() |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1030 | def __repairPip(self): |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1031 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1032 | Private slot to repair the pip installation of the selected |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1033 | environment. |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1034 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1035 | venvName = self.environmentsComboBox.currentText() |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1036 | if venvName: |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1037 | self.__pip.repairPip(venvName) |
7826
704c46e040a2
PipInterface: some little enhancements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7785
diff
changeset
|
1038 | self.on_refreshButton_clicked() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1039 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1040 | @pyqtSlot() |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1041 | def __installPackages(self): |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1042 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1043 | Private slot to install packages to be given by the user. |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1044 | """ |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
1045 | from .PipPackagesInputDialog import PipPackagesInputDialog |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
1046 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1047 | venvName = self.environmentsComboBox.currentText() |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1048 | if venvName: |
11006
a671918232f3
Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10919
diff
changeset
|
1049 | dlg = PipPackagesInputDialog(self.tr("Install Packages"), parent=self) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8090
diff
changeset
|
1050 | if dlg.exec() == QDialog.DialogCode.Accepted: |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1051 | packages, user = dlg.getData() |
8090 | 1052 | self.executeInstallPackages(packages, userSite=user) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1053 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1054 | @pyqtSlot() |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1055 | def __installLocalPackage(self): |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1056 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1057 | Private slot to install a package available on local storage. |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1058 | """ |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
1059 | from .PipFileSelectionDialog import PipFileSelectionDialog |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
1060 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1061 | venvName = self.environmentsComboBox.currentText() |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1062 | if venvName: |
11006
a671918232f3
Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10919
diff
changeset
|
1063 | dlg = PipFileSelectionDialog("package", parent=self) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8090
diff
changeset
|
1064 | if dlg.exec() == QDialog.DialogCode.Accepted: |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1065 | package, user = dlg.getData() |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1066 | if package and os.path.exists(package): |
8090 | 1067 | self.executeInstallPackages([package], userSite=user) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1068 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1069 | @pyqtSlot() |
8152 | 1070 | def __reinstallPackages(self): |
1071 | """ | |
1072 | Private slot to force a re-installation of the selected packages. | |
1073 | """ | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1074 | packages = [ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1075 | itm.text(PipPackagesWidget.PackageColumn) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1076 | for itm in self.packagesList.selectedItems() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1077 | ] |
8152 | 1078 | venvName = self.environmentsComboBox.currentText() |
1079 | if venvName and packages: | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1080 | self.__pip.installPackages(packages, venvName=venvName, forceReinstall=True) |
8152 | 1081 | self.on_refreshButton_clicked() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1082 | |
8152 | 1083 | @pyqtSlot() |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1084 | def __installRequirements(self): |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1085 | """ |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1086 | Private slot to install packages as given in a requirements file. |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1087 | """ |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1088 | venvName = self.environmentsComboBox.currentText() |
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1089 | if venvName: |
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1090 | self.__pip.installRequirements(venvName) |
7826
704c46e040a2
PipInterface: some little enhancements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7785
diff
changeset
|
1091 | self.on_refreshButton_clicked() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1092 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1093 | @pyqtSlot() |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1094 | def __uninstallRequirements(self): |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1095 | """ |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1096 | Private slot to uninstall packages as given in a requirements file. |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1097 | """ |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1098 | venvName = self.environmentsComboBox.currentText() |
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1099 | if venvName: |
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1100 | self.__pip.uninstallRequirements(venvName) |
7826
704c46e040a2
PipInterface: some little enhancements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7785
diff
changeset
|
1101 | self.on_refreshButton_clicked() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1102 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1103 | @pyqtSlot() |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1104 | def __generateRequirements(self): |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1105 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1106 | Private slot to generate the contents for a requirements file. |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1107 | """ |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
1108 | from .PipFreezeDialog import PipFreezeDialog, PipFreezeDialogModes |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
1109 | |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1110 | venvName = self.environmentsComboBox.currentText() |
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1111 | if venvName: |
9243 | 1112 | self.__freezeDialog = PipFreezeDialog( |
1113 | self.__pip, mode=PipFreezeDialogModes.Requirements, parent=self | |
1114 | ) | |
1115 | self.__freezeDialog.show() | |
1116 | self.__freezeDialog.start(venvName) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1117 | |
9243 | 1118 | @pyqtSlot() |
1119 | def __generateConstraints(self): | |
1120 | """ | |
1121 | Private slot to generate the contents for a constraints file. | |
1122 | """ | |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
1123 | from .PipFreezeDialog import PipFreezeDialog, PipFreezeDialogModes |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
1124 | |
9243 | 1125 | venvName = self.environmentsComboBox.currentText() |
1126 | if venvName: | |
1127 | self.__freezeDialog = PipFreezeDialog( | |
1128 | self.__pip, mode=PipFreezeDialogModes.Constraints, parent=self | |
1129 | ) | |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1130 | self.__freezeDialog.show() |
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1131 | self.__freezeDialog.start(venvName) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1132 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1133 | @pyqtSlot() |
10620
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1134 | def __installPyprojectDependencies(self): |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1135 | """ |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1136 | Private slot to install packages as given in a 'pyproject.toml' file. |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1137 | """ |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1138 | venvName = self.environmentsComboBox.currentText() |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1139 | if venvName: |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1140 | self.__pip.installPyprojectDependencies(venvName) |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1141 | self.on_refreshButton_clicked() |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1142 | |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1143 | @pyqtSlot() |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1144 | def __uninstallPyprojectDependencies(self): |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1145 | """ |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1146 | Private slot to uninstall packages as given in a 'pyproject.toml' file. |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1147 | """ |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1148 | venvName = self.environmentsComboBox.currentText() |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1149 | if venvName: |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1150 | self.__pip.uninstallPyprojectDependencies(venvName) |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1151 | self.on_refreshButton_clicked() |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1152 | |
699b5ceb39aa
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10481
diff
changeset
|
1153 | @pyqtSlot() |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1154 | def __editUserConfiguration(self): |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1155 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1156 | Private slot to edit the user configuration. |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1157 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1158 | self.__editConfiguration() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1159 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1160 | @pyqtSlot() |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1161 | def __editVirtualenvConfiguration(self): |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1162 | """ |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1163 | Private slot to edit the configuration of the selected environment. |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1164 | """ |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1165 | venvName = self.environmentsComboBox.currentText() |
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1166 | if venvName: |
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1167 | self.__editConfiguration(venvName=venvName) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1168 | |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1169 | def __editConfiguration(self, venvName=""): |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1170 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1171 | Private method to edit a configuration. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1172 | |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1173 | @param venvName name of the environment to act upon |
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1174 | @type str |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1175 | """ |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9243
diff
changeset
|
1176 | from eric7.QScintilla.MiniEditor import MiniEditor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1177 | |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1178 | if venvName: |
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1179 | cfgFile = self.__pip.getVirtualenvConfig(venvName) |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1180 | if not cfgFile: |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1181 | return |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1182 | else: |
6798
3985c1a67fa2
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6795
diff
changeset
|
1183 | cfgFile = self.__pip.getUserConfig() |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1184 | cfgDir = os.path.dirname(cfgFile) |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1185 | if not cfgDir: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
1186 | EricMessageBox.critical( |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1187 | None, |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1188 | self.tr("Edit Configuration"), |
9573
9960d19d66b5
Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9569
diff
changeset
|
1189 | self.tr("""No valid configuration path determined. Aborting"""), |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1190 | ) |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1191 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1192 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1193 | try: |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1194 | if not os.path.isdir(cfgDir): |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1195 | os.makedirs(cfgDir) |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1196 | except OSError: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
1197 | EricMessageBox.critical( |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1198 | None, |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1199 | self.tr("Edit Configuration"), |
9573
9960d19d66b5
Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9569
diff
changeset
|
1200 | self.tr("""No valid configuration path determined. Aborting"""), |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1201 | ) |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1202 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1203 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1204 | if not os.path.exists(cfgFile): |
8240
93b8a353c4bf
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
1205 | with contextlib.suppress(OSError), open(cfgFile, "w") as f: |
93b8a353c4bf
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
1206 | f.write("[global]\n") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1207 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1208 | # check, if the destination is writeable |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1209 | if not os.access(cfgFile, os.W_OK): |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
1210 | EricMessageBox.critical( |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1211 | None, |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1212 | self.tr("Edit Configuration"), |
9573
9960d19d66b5
Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9569
diff
changeset
|
1213 | self.tr("""No valid configuration path determined. Aborting"""), |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1214 | ) |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1215 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1216 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1217 | self.__editor = MiniEditor(cfgFile, "Properties") |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1218 | self.__editor.show() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1219 | |
6795
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1220 | def __pipConfigure(self): |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1221 | """ |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1222 | Private slot to open the configuration page. |
6e2ed2aac325
PipInterface: continued with the pip interface widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6793
diff
changeset
|
1223 | """ |
10084
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1224 | try: |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1225 | ericApp().getObject("UserInterface").showPreferences("pipPage") |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1226 | except KeyError: |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1227 | # we were called from outside the eric IDE |
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11128
diff
changeset
|
1228 | from eric7.Preferences.ConfigurationDialog import ( # noqa: I-101 |
10084
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1229 | ConfigurationDialog, |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1230 | ConfigurationMode, |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1231 | ) |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1232 | |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1233 | dlg = ConfigurationDialog( |
11006
a671918232f3
Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10919
diff
changeset
|
1234 | parent=self, |
a671918232f3
Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10919
diff
changeset
|
1235 | name="Configuration", |
a671918232f3
Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10919
diff
changeset
|
1236 | modal=True, |
10084
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1237 | fromEric=False, |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1238 | displayMode=ConfigurationMode.PIPMANAGERMODE, |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1239 | ) |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1240 | dlg.show() |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1241 | dlg.showConfigurationPageByName("pipPage") |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1242 | dlg.exec() |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1243 | if dlg.result() == QDialog.DialogCode.Accepted: |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1244 | dlg.setPreferences() |
125166c6b66c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1245 | Preferences.syncPreferences() |
10206
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1246 | self.preferencesChanged() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1247 | |
7626
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1248 | @pyqtSlot() |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1249 | def __showCacheInfo(self): |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1250 | """ |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1251 | Private slot to show information about the cache. |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1252 | """ |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1253 | venvName = self.environmentsComboBox.currentText() |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1254 | if venvName: |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1255 | self.__pip.showCacheInfo(venvName) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1256 | |
7626
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1257 | @pyqtSlot() |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1258 | def __showCacheList(self): |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1259 | """ |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1260 | Private slot to show a list of cached files. |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1261 | """ |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1262 | venvName = self.environmentsComboBox.currentText() |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1263 | if venvName: |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1264 | self.__pip.cacheList(venvName) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1265 | |
7626
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1266 | @pyqtSlot() |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1267 | def __removeCachedFiles(self): |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1268 | """ |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1269 | Private slot to remove files from the pip cache. |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1270 | """ |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1271 | venvName = self.environmentsComboBox.currentText() |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1272 | if venvName: |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1273 | self.__pip.cacheRemove(venvName) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1274 | |
7626
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1275 | @pyqtSlot() |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1276 | def __purgeCache(self): |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1277 | """ |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1278 | Private slot to empty the pip cache. |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1279 | """ |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1280 | venvName = self.environmentsComboBox.currentText() |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1281 | if venvName: |
7f643d41464e
pip Interface: added menu action for pip cache management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7477
diff
changeset
|
1282 | self.__pip.cachePurge(venvName) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1283 | |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1284 | ################################################################## |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1285 | ## Interface to the vulnerability checks below |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1286 | ################################################################## |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1287 | |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1288 | @pyqtSlot(bool) |
10206
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1289 | def setVulnerabilityEnabled(self, enable): |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1290 | """ |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1291 | Public slot to set the enabled state of the vulnerability checks. |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1292 | |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1293 | @param enable vulnerability checks enabled state |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1294 | @type bool |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1295 | """ |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1296 | self.vulnerabilityCheckBox.setChecked(enable) |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1297 | self.vulnerabilityCheckBox.setEnabled(enable) |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1298 | self.packagesList.setColumnHidden( |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1299 | PipPackagesWidget.VulnerabilityColumn, not enable |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1300 | ) |
10210
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1301 | if not enable: |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1302 | self.__clearVulnerabilityInfo() |
10206
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1303 | |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1304 | @pyqtSlot(bool) |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1305 | def on_vulnerabilityCheckBox_clicked(self, checked): |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1306 | """ |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1307 | Private slot handling a change of the automatic vulnerability checks. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1308 | |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1309 | @param checked flag indicating the state of the check box |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1310 | @type bool |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1311 | """ |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1312 | if checked: |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1313 | self.__updateVulnerabilityData(clearFirst=True) |
10210
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1314 | else: |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1315 | self.__clearVulnerabilityInfo() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1316 | |
9114
d8abe530dae0
Changed code of the pip widget to only show vulnerability column, if the associated checkbox is ticked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9108
diff
changeset
|
1317 | self.packagesList.header().setSectionHidden( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1318 | PipPackagesWidget.VulnerabilityColumn, not checked |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1319 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1320 | |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1321 | @pyqtSlot() |
9581
f0428ceedb41
Rearranged the PyPI (pip) widget layout (see issue468) and corrected a glitch in handling the menu action "Check Vulnerabilities".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9573
diff
changeset
|
1322 | def __checkVulnerability(self): |
f0428ceedb41
Rearranged the PyPI (pip) widget layout (see issue468) and corrected a glitch in handling the menu action "Check Vulnerabilities".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9573
diff
changeset
|
1323 | """ |
f0428ceedb41
Rearranged the PyPI (pip) widget layout (see issue468) and corrected a glitch in handling the menu action "Check Vulnerabilities".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9573
diff
changeset
|
1324 | Private slot to update and show the vulnerability data (called from the menu). |
f0428ceedb41
Rearranged the PyPI (pip) widget layout (see issue468) and corrected a glitch in handling the menu action "Check Vulnerabilities".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9573
diff
changeset
|
1325 | """ |
f0428ceedb41
Rearranged the PyPI (pip) widget layout (see issue468) and corrected a glitch in handling the menu action "Check Vulnerabilities".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9573
diff
changeset
|
1326 | self.vulnerabilityCheckBox.setChecked(True) |
f0428ceedb41
Rearranged the PyPI (pip) widget layout (see issue468) and corrected a glitch in handling the menu action "Check Vulnerabilities".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9573
diff
changeset
|
1327 | self.on_vulnerabilityCheckBox_clicked(True) |
f0428ceedb41
Rearranged the PyPI (pip) widget layout (see issue468) and corrected a glitch in handling the menu action "Check Vulnerabilities".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9573
diff
changeset
|
1328 | |
f0428ceedb41
Rearranged the PyPI (pip) widget layout (see issue468) and corrected a glitch in handling the menu action "Check Vulnerabilities".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9573
diff
changeset
|
1329 | @pyqtSlot() |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1330 | def __clearVulnerabilityInfo(self): |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1331 | """ |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1332 | Private slot to clear the vulnerability info. |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1333 | """ |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1334 | for row in range(self.packagesList.topLevelItemCount()): |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1335 | itm = self.packagesList.topLevelItem(row) |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1336 | itm.setText(PipPackagesWidget.VulnerabilityColumn, "") |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1337 | itm.setToolTip(PipPackagesWidget.VulnerabilityColumn, "") |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1338 | itm.setIcon(PipPackagesWidget.VulnerabilityColumn, QIcon()) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1339 | itm.setData( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1340 | PipPackagesWidget.VulnerabilityColumn, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1341 | PipPackagesWidget.VulnerabilityRole, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1342 | None, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1343 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1344 | |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1345 | @pyqtSlot() |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1346 | def __updateVulnerabilityData(self, clearFirst=True): |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1347 | """ |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1348 | Private slot to update the shown vulnerability info. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1349 | |
8977
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1350 | @param clearFirst flag indicating to clear the vulnerability info first |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1351 | (defaults to True) |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1352 | @type bool (optional) |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1353 | """ |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1354 | if clearFirst: |
663521af48b2
Started implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
1355 | self.__clearVulnerabilityInfo() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1356 | |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1357 | packages = [] |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1358 | for row in range(self.packagesList.topLevelItemCount()): |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1359 | itm = self.packagesList.topLevelItem(row) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1360 | packages.append( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1361 | Package( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1362 | name=itm.text(PipPackagesWidget.PackageColumn), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1363 | version=itm.text(PipPackagesWidget.InstalledVersionColumn), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1364 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1365 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1366 | |
10210
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1367 | if packages: |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1368 | error, vulnerabilities = self.__pip.getVulnerabilityChecker().check( |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1369 | packages |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1370 | ) |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1371 | if error == VulnerabilityCheckError.OK: |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1372 | for package in vulnerabilities: |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1373 | items = self.packagesList.findItems( |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1374 | package, |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1375 | Qt.MatchFlag.MatchExactly | Qt.MatchFlag.MatchCaseSensitive, |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1376 | ) |
10210
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1377 | if items: |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1378 | itm = items[0] |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1379 | itm.setData( |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1380 | PipPackagesWidget.VulnerabilityColumn, |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1381 | PipPackagesWidget.VulnerabilityRole, |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1382 | vulnerabilities[package], |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1383 | ) |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1384 | affected = {v.spec for v in vulnerabilities[package]} |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1385 | itm.setText( |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1386 | PipPackagesWidget.VulnerabilityColumn, ", ".join(affected) |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1387 | ) |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1388 | itm.setIcon( |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1389 | PipPackagesWidget.VulnerabilityColumn, |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1390 | EricPixmapCache.getIcon("securityLow"), |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1391 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1392 | |
10210
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1393 | elif error in ( |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1394 | VulnerabilityCheckError.FullDbUnavailable, |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1395 | VulnerabilityCheckError.SummaryDbUnavailable, |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1396 | ): |
7d0e5ca7eb3e
Corrected some issues in the pip packages widget with respect to vulnerabilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10209
diff
changeset
|
1397 | self.setVulnerabilityEnabled(False) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1398 | |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1399 | @pyqtSlot() |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1400 | def __updateVulnerabilityDbCache(self): |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1401 | """ |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1402 | Private slot to initiate an update of the local cache of the |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1403 | vulnerability database. |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1404 | """ |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1405 | with EricOverrideCursor(): |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1406 | self.__pip.getVulnerabilityChecker().updateVulnerabilityDb() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1407 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1408 | def __showVulnerabilityInformation( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1409 | self, packageName, packageVersion, vulnerabilities |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1410 | ): |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1411 | """ |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1412 | Private method to show the detected vulnerability data. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1413 | |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1414 | @param packageName name of the package |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1415 | @type str |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1416 | @param packageVersion installed version number |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1417 | @type str |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1418 | @param vulnerabilities list of vulnerabilities |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1419 | @type list of Vulnerability |
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1420 | """ |
10105
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1421 | if vulnerabilities: |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1422 | header = self.tr("{0} {1}", "package name, package version").format( |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1423 | packageName, packageVersion |
8978
38c3ddf21537
Continued implementing a vulnerability checker based on the data of the Safety DB.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8977
diff
changeset
|
1424 | ) |
10105
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1425 | topItem = QTreeWidgetItem(self.vulnerabilitiesInfoWidget, [header]) |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1426 | topItem.setFirstColumnSpanned(True) |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1427 | topItem.setExpanded(True) |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1428 | font = topItem.font(0) |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1429 | font.setBold(True) |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1430 | topItem.setFont(0, font) |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1431 | |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1432 | for vulnerability in vulnerabilities: |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1433 | title = ( |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1434 | vulnerability.cve |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1435 | if vulnerability.cve |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1436 | else vulnerability.vulnerabilityId |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1437 | ) |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1438 | titleItem = QTreeWidgetItem(topItem, [title]) |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1439 | titleItem.setFirstColumnSpanned(True) |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1440 | titleItem.setExpanded(True) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1441 | |
10105
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1442 | QTreeWidgetItem( |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1443 | titleItem, [self.tr("Affected Version:"), vulnerability.spec] |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1444 | ) |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1445 | itm = QTreeWidgetItem( |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1446 | titleItem, [self.tr("Advisory:"), vulnerability.advisory] |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1447 | ) |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1448 | itm.setToolTip( |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1449 | 1, |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1450 | "<p>{0}</p>".format( |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1451 | vulnerability.advisory.replace("\r\n", "<br/>") |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1452 | ), |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1453 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1454 | |
10105
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1455 | self.vulnerabilitiesInfoWidget.scrollToTop() |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1456 | self.vulnerabilitiesInfoWidget.resizeColumnToContents(0) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1457 | |
10105
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1458 | header = self.vulnerabilitiesInfoWidget.header() |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1459 | header.setStretchLastSection(True) |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1460 | else: |
5765f4c8543f
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10104
diff
changeset
|
1461 | self.vulnerabilitiesInfoWidget.clear() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1462 | |
8997 | 1463 | ####################################################################### |
1464 | ## Dependency tree related methods below | |
1465 | ####################################################################### | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1466 | |
8997 | 1467 | @pyqtSlot(bool) |
1468 | def on_viewToggleButton_toggled(self, checked): | |
1469 | """ | |
1470 | Private slot handling the view selection. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1471 | |
8997 | 1472 | @param checked state of the toggle button |
1473 | @type bool | |
1474 | """ | |
1475 | if checked: | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1476 | self.viewsStackWidget.setCurrentWidget(self.dependenciesPage) |
8997 | 1477 | self.__refreshDependencyTree() |
1478 | else: | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1479 | self.viewsStackWidget.setCurrentWidget(self.packagesPage) |
8997 | 1480 | self.__refreshPackagesList() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1481 | |
8997 | 1482 | @pyqtSlot(bool) |
1483 | def on_requiresButton_toggled(self, checked): | |
1484 | """ | |
1485 | Private slot handling the selection of the view type. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1486 | |
8997 | 1487 | @param checked state of the radio button (unused) |
1488 | @type bool | |
1489 | """ | |
1490 | self.__refreshDependencyTree() | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1491 | |
8997 | 1492 | @pyqtSlot() |
1493 | def on_localDepCheckBox_clicked(self): | |
1494 | """ | |
1495 | Private slot handling the switching of the local mode. | |
1496 | """ | |
1497 | self.__refreshDependencyTree() | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1498 | |
8997 | 1499 | @pyqtSlot() |
1500 | def on_userDepCheckBox_clicked(self): | |
1501 | """ | |
1502 | Private slot handling the switching of the 'user-site' mode. | |
1503 | """ | |
1504 | self.__refreshDependencyTree() | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1505 | |
8997 | 1506 | def __refreshDependencyTree(self): |
1507 | """ | |
1508 | Private method to refresh the dependency tree. | |
1509 | """ | |
1510 | self.dependenciesList.clear() | |
1511 | venvName = self.environmentsComboBox.currentText() | |
1512 | if venvName: | |
1513 | interpreter = self.__pip.getVirtualenvInterpreter(venvName) | |
1514 | if interpreter: | |
1515 | with EricOverrideCursor(): | |
9121
6ac528d4f318
Corrected a typo in a method name of the Pip class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9120
diff
changeset
|
1516 | dependencies = self.__pip.getDependencyTree( |
8997 | 1517 | venvName, |
1518 | localPackages=self.localDepCheckBox.isChecked(), | |
1519 | usersite=self.userDepCheckBox.isChecked(), | |
9001
a00cd6b55728
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9000
diff
changeset
|
1520 | reverse=self.requiredByButton.isChecked(), |
8997 | 1521 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1522 | |
8997 | 1523 | self.dependenciesList.setUpdatesEnabled(False) |
1524 | for dependency in dependencies: | |
1525 | self.__addDependency(dependency, self.dependenciesList) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1526 | |
8997 | 1527 | self.dependenciesList.sortItems( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1528 | PipPackagesWidget.DepPackageColumn, Qt.SortOrder.AscendingOrder |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1529 | ) |
8997 | 1530 | for col in range(self.dependenciesList.columnCount()): |
1531 | self.dependenciesList.resizeColumnToContents(col) | |
1532 | self.dependenciesList.setUpdatesEnabled(True) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1533 | |
8997 | 1534 | self.__updateDepActionButtons() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1535 | |
11128
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1536 | self.packageSearchEdit.setEnabled( |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1537 | bool(self.dependenciesList.topLevelItemCount()) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1538 | ) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1539 | self.on_packageSearchEdit_textChanged(self.packageSearchEdit.text()) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1540 | |
8997 | 1541 | def __addDependency(self, dependency, parent): |
1542 | """ | |
1543 | Private method to add a dependency branch to a given parent. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1544 | |
8997 | 1545 | @param dependency dependency to be added |
1546 | @type dict | |
1547 | @param parent reference to the parent item | |
1548 | @type QTreeWidget or QTreeWidgetItem | |
1549 | """ | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1550 | itm = QTreeWidgetItem( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1551 | parent, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1552 | [ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1553 | dependency["package_name"], |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1554 | dependency["installed_version"], |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1555 | dependency["required_version"], |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1556 | ], |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1557 | ) |
8997 | 1558 | itm.setExpanded(True) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1559 | |
9120
5fb0ffe30569
Fixed an issue in the pip dependency display causing an exception if a package specifier i not known (i.e. is '?').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9117
diff
changeset
|
1560 | if dependency["installed_version"] == "?": |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1561 | itm.setText(PipPackagesWidget.DepInstalledVersionColumn, self.tr("unknown")) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1562 | |
9120
5fb0ffe30569
Fixed an issue in the pip dependency display causing an exception if a package specifier i not known (i.e. is '?').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9117
diff
changeset
|
1563 | if dependency["required_version"].lower() not in ("any", "?"): |
8997 | 1564 | spec = ( |
1565 | "=={0}".format(dependency["required_version"]) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1566 | if dependency["required_version"][0] in "0123456789" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1567 | else dependency["required_version"] |
8997 | 1568 | ) |
10093
245505200513
Added code to handle an invalid dependency specifier showing the dependency tree.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10084
diff
changeset
|
1569 | try: |
245505200513
Added code to handle an invalid dependency specifier showing the dependency tree.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10084
diff
changeset
|
1570 | specifierSet = SpecifierSet(specifiers=spec) |
245505200513
Added code to handle an invalid dependency specifier showing the dependency tree.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10084
diff
changeset
|
1571 | if not specifierSet.contains(dependency["installed_version"]): |
245505200513
Added code to handle an invalid dependency specifier showing the dependency tree.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10084
diff
changeset
|
1572 | itm.setIcon( |
245505200513
Added code to handle an invalid dependency specifier showing the dependency tree.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10084
diff
changeset
|
1573 | PipPackagesWidget.DepRequiredVersionColumn, |
245505200513
Added code to handle an invalid dependency specifier showing the dependency tree.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10084
diff
changeset
|
1574 | EricPixmapCache.getIcon("warning"), |
245505200513
Added code to handle an invalid dependency specifier showing the dependency tree.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10084
diff
changeset
|
1575 | ) |
245505200513
Added code to handle an invalid dependency specifier showing the dependency tree.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10084
diff
changeset
|
1576 | except InvalidSpecifier: |
245505200513
Added code to handle an invalid dependency specifier showing the dependency tree.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10084
diff
changeset
|
1577 | itm.setText( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1578 | PipPackagesWidget.DepRequiredVersionColumn, |
10093
245505200513
Added code to handle an invalid dependency specifier showing the dependency tree.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10084
diff
changeset
|
1579 | dependency["required_version"], |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1580 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1581 | |
9120
5fb0ffe30569
Fixed an issue in the pip dependency display causing an exception if a package specifier i not known (i.e. is '?').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9117
diff
changeset
|
1582 | elif dependency["required_version"].lower() == "any": |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1583 | itm.setText(PipPackagesWidget.DepRequiredVersionColumn, self.tr("any")) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1584 | |
9120
5fb0ffe30569
Fixed an issue in the pip dependency display causing an exception if a package specifier i not known (i.e. is '?').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9117
diff
changeset
|
1585 | elif dependency["required_version"] == "?": |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1586 | itm.setText(PipPackagesWidget.DepRequiredVersionColumn, self.tr("unknown")) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1587 | |
8997 | 1588 | # recursively add sub-dependencies |
1589 | for dep in dependency["dependencies"]: | |
1590 | self.__addDependency(dep, itm) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1591 | |
8997 | 1592 | @pyqtSlot(QTreeWidgetItem, int) |
1593 | def on_dependenciesList_itemActivated(self, item, column): | |
1594 | """ | |
1595 | Private slot reacting on a package item of the dependency tree being | |
1596 | activated. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1597 | |
8997 | 1598 | @param item reference to the activated item |
1599 | @type QTreeWidgetItem | |
1600 | @param column activated column | |
1601 | @type int | |
1602 | """ | |
1603 | packageName = item.text(PipPackagesWidget.DepPackageColumn) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1604 | packageVersion = item.text(PipPackagesWidget.DepInstalledVersionColumn) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1605 | |
8997 | 1606 | self.__showPackageDetails(packageName, packageVersion) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1607 | |
8997 | 1608 | @pyqtSlot() |
1609 | def on_dependenciesList_itemSelectionChanged(self): | |
1610 | """ | |
1611 | Private slot reacting on a change of selected items of the dependency | |
1612 | tree. | |
1613 | """ | |
1614 | if len(self.dependenciesList.selectedItems()) == 0: | |
1615 | self.dependencyInfoWidget.clear() | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1616 | |
9234 | 1617 | self.__updateDepActionButtons() |
1618 | ||
8997 | 1619 | @pyqtSlot(QTreeWidgetItem, int) |
1620 | def on_dependenciesList_itemPressed(self, item, column): | |
1621 | """ | |
1622 | Private slot reacting on a package item of the dependency tree being | |
1623 | pressed. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1624 | |
8997 | 1625 | @param item reference to the pressed item |
1626 | @type QTreeWidgetItem | |
1627 | @param column pressed column | |
1628 | @type int | |
1629 | """ | |
1630 | self.dependencyInfoWidget.clear() | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1631 | |
8997 | 1632 | if item is not None: |
1633 | self.__showPackageInformation( | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1634 | item.text(PipPackagesWidget.DepPackageColumn), self.dependencyInfoWidget |
8997 | 1635 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1636 | |
8997 | 1637 | self.__updateDepActionButtons() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1638 | |
8997 | 1639 | @pyqtSlot() |
1640 | def on_refreshDependenciesButton_clicked(self): | |
1641 | """ | |
1642 | Private slot to refresh the dependency tree. | |
1643 | """ | |
1644 | currentEnvironment = self.environmentsComboBox.currentText() | |
1645 | self.environmentsComboBox.clear() | |
1646 | self.dependenciesList.clear() | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1647 | |
8997 | 1648 | with EricOverrideCursor(): |
1649 | self.__populateEnvironments() | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1650 | |
8997 | 1651 | index = self.environmentsComboBox.findText( |
1652 | currentEnvironment, | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1653 | Qt.MatchFlag.MatchExactly | Qt.MatchFlag.MatchCaseSensitive, |
8997 | 1654 | ) |
1655 | if index != -1: | |
1656 | self.environmentsComboBox.setCurrentIndex(index) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1657 | |
8997 | 1658 | self.__updateDepActionButtons() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1659 | |
8997 | 1660 | @pyqtSlot() |
1661 | def on_showDepPackageDetailsButton_clicked(self): | |
1662 | """ | |
1663 | Private slot to show information for the selected package of the | |
1664 | dependency tree. | |
1665 | """ | |
1666 | item = self.dependenciesList.selectedItems()[0] | |
1667 | if item: | |
1668 | packageName = item.text(PipPackagesWidget.DepPackageColumn) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1669 | packageVersion = item.text(PipPackagesWidget.DepInstalledVersionColumn) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1670 | |
8997 | 1671 | self.__showPackageDetails(packageName, packageVersion) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1672 | |
8997 | 1673 | def __updateDepActionButtons(self): |
1674 | """ | |
1675 | Private method to set the state of the dependency page action buttons. | |
1676 | """ | |
1677 | self.showDepPackageDetailsButton.setEnabled( | |
9234 | 1678 | len(self.dependenciesList.selectedItems()) == 1 |
1679 | ) | |
1680 | ||
1681 | self.dependencyRepairButton.setEnabled( | |
1682 | any( | |
1683 | not itm.icon(PipPackagesWidget.DepRequiredVersionColumn).isNull() | |
1684 | for itm in self.dependenciesList.selectedItems() | |
1685 | ) | |
8997 | 1686 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1687 | |
10133
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1688 | itm = self.dependenciesList.topLevelItem(0) |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1689 | while itm: |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1690 | if not itm.icon(PipPackagesWidget.DepRequiredVersionColumn).isNull(): |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1691 | self.dependencyRepairAllButton.setEnabled(True) |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1692 | break |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1693 | itm = self.dependenciesList.itemBelow(itm) |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1694 | else: |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1695 | self.dependencyRepairAllButton.setEnabled(False) |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1696 | |
9234 | 1697 | @pyqtSlot() |
1698 | def on_dependencyRepairButton_clicked(self): | |
1699 | """ | |
1700 | Private slot to repair all selected dependencies. | |
1701 | """ | |
10133
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1702 | packages = set() |
9234 | 1703 | for itm in self.dependenciesList.selectedItems(): |
1704 | if not itm.icon(PipPackagesWidget.DepRequiredVersionColumn).isNull(): | |
10133
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1705 | packages.add( |
9234 | 1706 | "{0}{1}".format( |
1707 | itm.text(PipPackagesWidget.DepPackageColumn), | |
1708 | itm.text(PipPackagesWidget.DepRequiredVersionColumn), | |
1709 | ) | |
1710 | ) | |
1711 | ||
1712 | venvName = self.environmentsComboBox.currentText() | |
1713 | if venvName and packages: | |
1714 | self.__pip.installPackages( | |
10133
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1715 | list(packages), |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1716 | venvName=venvName, |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1717 | userSite=self.userDepCheckBox.isChecked(), |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1718 | ) |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1719 | self.on_refreshDependenciesButton_clicked() |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1720 | |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1721 | @pyqtSlot() |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1722 | def on_dependencyRepairAllButton_clicked(self): |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1723 | """ |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1724 | Private slot to repair all dependencies. |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1725 | """ |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1726 | packages = set() |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1727 | itm = self.dependenciesList.topLevelItem(0) |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1728 | while itm: |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1729 | if not itm.icon(PipPackagesWidget.DepRequiredVersionColumn).isNull(): |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1730 | packages.add( |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1731 | "{0}{1}".format( |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1732 | itm.text(PipPackagesWidget.DepPackageColumn), |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1733 | itm.text(PipPackagesWidget.DepRequiredVersionColumn), |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1734 | ) |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1735 | ) |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1736 | itm = self.dependenciesList.itemBelow(itm) |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1737 | |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1738 | venvName = self.environmentsComboBox.currentText() |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1739 | if venvName and packages: |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1740 | self.__pip.installPackages( |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1741 | list(packages), |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1742 | venvName=venvName, |
39d1353996b9
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10105
diff
changeset
|
1743 | userSite=self.userDepCheckBox.isChecked(), |
9234 | 1744 | ) |
1745 | self.on_refreshDependenciesButton_clicked() | |
1746 | ||
11128
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1747 | @pyqtSlot(str) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1748 | def on_packageSearchEdit_textChanged(self, package): |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1749 | """ |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1750 | Private slot to search packages in the dependencies tree. |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1751 | |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1752 | @param package package text to search for |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1753 | @type str |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1754 | """ |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1755 | self.__resetPackageSearchHighlights() |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1756 | |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1757 | foundItems = ( |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1758 | self.dependenciesList.findItems( |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1759 | package, |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1760 | Qt.MatchFlag.MatchContains |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1761 | | Qt.MatchFlag.MatchRecursive |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1762 | | Qt.MatchFlag.MatchWrap, |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1763 | ) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1764 | if package |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1765 | else [] |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1766 | ) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1767 | self.__setPackageSearchHighlights(foundItems) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1768 | |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1769 | def __resetPackageSearchHighlights(self, parent=None): |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1770 | """ |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1771 | Private method to reset the package search markers. |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1772 | |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1773 | @param parent reference to the parent item (defaults to None) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1774 | @type QTreeWidgetItem (optional) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1775 | """ |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1776 | if parent is None: |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1777 | for index in range(self.dependenciesList.topLevelItemCount()): |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1778 | itm = self.dependenciesList.topLevelItem(index) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1779 | self.__resetPackageSearchHighlight(itm) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1780 | else: |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1781 | for index in range(parent.childCount()): |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1782 | itm = parent.child(index) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1783 | self.__resetPackageSearchHighlight(itm) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1784 | |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1785 | def __resetPackageSearchHighlight(self, packageItem): |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1786 | """ |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1787 | Private method to reset the package search marker of an individual item. |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1788 | |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1789 | @param packageItem reference to the package item |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1790 | @type QTreeWidgetItem |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1791 | """ |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1792 | for column in range(self.dependenciesList.columnCount()): |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1793 | packageItem.setBackground(column, QBrush()) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1794 | if packageItem.childCount(): |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1795 | self.__resetPackageSearchHighlights(parent=packageItem) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1796 | |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1797 | def __setPackageSearchHighlights(self, packageItems): |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1798 | """ |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1799 | Private method to highlight the given package items. |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1800 | |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1801 | @param packageItems list of package dependency items to be highlighted |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1802 | @type list of QTreeWidgetItem |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1803 | """ |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1804 | for packageItem in packageItems: |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1805 | for column in range(self.dependenciesList.columnCount()): |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1806 | packageItem.setBackground( |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1807 | column, QBrush(Preferences.getPip("DependencyHighlightColor")) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1808 | ) |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1809 | |
9002
31a7decd3393
Started to implement a license lister for pip installed packages based on pip-licenses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9001
diff
changeset
|
1810 | ################################################################## |
31a7decd3393
Started to implement a license lister for pip installed packages based on pip-licenses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9001
diff
changeset
|
1811 | ## Interface to show the licenses dialog below |
31a7decd3393
Started to implement a license lister for pip installed packages based on pip-licenses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9001
diff
changeset
|
1812 | ################################################################## |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1813 | |
9002
31a7decd3393
Started to implement a license lister for pip installed packages based on pip-licenses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9001
diff
changeset
|
1814 | @pyqtSlot() |
31a7decd3393
Started to implement a license lister for pip installed packages based on pip-licenses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9001
diff
changeset
|
1815 | def __showLicensesDialog(self): |
31a7decd3393
Started to implement a license lister for pip installed packages based on pip-licenses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9001
diff
changeset
|
1816 | """ |
31a7decd3393
Started to implement a license lister for pip installed packages based on pip-licenses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9001
diff
changeset
|
1817 | Private slot to show a dialog with the licenses of the selected |
31a7decd3393
Started to implement a license lister for pip installed packages based on pip-licenses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9001
diff
changeset
|
1818 | environment. |
31a7decd3393
Started to implement a license lister for pip installed packages based on pip-licenses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9001
diff
changeset
|
1819 | """ |
31a7decd3393
Started to implement a license lister for pip installed packages based on pip-licenses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9001
diff
changeset
|
1820 | from .PipLicensesDialog import PipLicensesDialog |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1821 | |
9002
31a7decd3393
Started to implement a license lister for pip installed packages based on pip-licenses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9001
diff
changeset
|
1822 | environment = self.environmentsComboBox.currentText() |
9003
6bc210cd5726
Finished implementing the basic functionality of a license lister for pip installed packages (based on pip-licenses).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9002
diff
changeset
|
1823 | dlg = PipLicensesDialog( |
6bc210cd5726
Finished implementing the basic functionality of a license lister for pip installed packages (based on pip-licenses).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9002
diff
changeset
|
1824 | self.__pip, |
6bc210cd5726
Finished implementing the basic functionality of a license lister for pip installed packages (based on pip-licenses).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9002
diff
changeset
|
1825 | environment, |
9851
ec12090e9cd9
Modified the pip licenses dialog to show the license data for packages contained in the packages list only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9717
diff
changeset
|
1826 | packages=self.__allPackageNames(), |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1827 | parent=self, |
9003
6bc210cd5726
Finished implementing the basic functionality of a license lister for pip installed packages (based on pip-licenses).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9002
diff
changeset
|
1828 | ) |
9002
31a7decd3393
Started to implement a license lister for pip installed packages based on pip-licenses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9001
diff
changeset
|
1829 | dlg.exec() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1830 | |
9117
c6afba2049cf
CycloneDX Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9114
diff
changeset
|
1831 | ################################################################## |
c6afba2049cf
CycloneDX Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9114
diff
changeset
|
1832 | ## Interface to create a SBOM file using CycloneDX |
c6afba2049cf
CycloneDX Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9114
diff
changeset
|
1833 | ################################################################## |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1834 | |
9117
c6afba2049cf
CycloneDX Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9114
diff
changeset
|
1835 | @pyqtSlot() |
c6afba2049cf
CycloneDX Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9114
diff
changeset
|
1836 | def __createSBOMFile(self): |
c6afba2049cf
CycloneDX Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9114
diff
changeset
|
1837 | """ |
c6afba2049cf
CycloneDX Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9114
diff
changeset
|
1838 | Private slot to create a "Software Bill Of Material" file. |
c6afba2049cf
CycloneDX Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9114
diff
changeset
|
1839 | """ |
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11128
diff
changeset
|
1840 | import CycloneDXInterface # __IGNORE_WARNING_I-102__ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1841 | |
9117
c6afba2049cf
CycloneDX Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9114
diff
changeset
|
1842 | venvName = self.environmentsComboBox.currentText() |
c6afba2049cf
CycloneDX Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9114
diff
changeset
|
1843 | if venvName == self.__pip.getProjectEnvironmentString(): |
c6afba2049cf
CycloneDX Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9114
diff
changeset
|
1844 | venvName = "<project>" |
11006
a671918232f3
Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10919
diff
changeset
|
1845 | CycloneDXInterface.createCycloneDXFile(venvName, parent=self) |
10206
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1846 | |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1847 | ################################################################## |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1848 | ## Interface to preferences |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1849 | ################################################################## |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1850 | |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1851 | @pyqtSlot() |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1852 | def preferencesChanged(self): |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1853 | """ |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1854 | Public slot to handle a change of preferences. |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1855 | """ |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1856 | enable = self.setVulnerabilityEnabled( |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1857 | Preferences.getPip("VulnerabilityCheckEnabled") |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1858 | ) |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1859 | if enable != self.vulnerabilityCheckBox.isEnabled(): |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1860 | # only if status changes because it is an expensive operation |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1861 | if self.vulnerabilityCheckBox.isChecked(): |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1862 | self.__updateVulnerabilityData(clearFirst=True) |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1863 | else: |
d6921563be6c
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10133
diff
changeset
|
1864 | self.__clearVulnerabilityInfo() |
11128
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1865 | |
04a9579c9c54
pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11113
diff
changeset
|
1866 | self.on_packageSearchEdit_textChanged(self.packageSearchEdit.text()) |