PipxInterface/PipxDependenciesDialog.py

Sun, 29 Dec 2024 14:56:04 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 29 Dec 2024 14:56:04 +0100
changeset 121
8deb7d8d9b86
parent 106
dcc8d6b448fa
permissions
-rw-r--r--

Prepared a new release.

49
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
104
45c88e73e3dd Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 90
diff changeset
2 # Copyright (c) 2024 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
49
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 #
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5 """
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 Module implementing a dialog to show the package dependencies.
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 """
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8
90
0949844ea0e3 Added an 'Upgrade Dependencies' button to the dialog showing outdated dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
9 from PyQt6.QtCore import Qt, pyqtSlot
106
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
10 from PyQt6.QtWidgets import (
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
11 QAbstractButton,
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
12 QAbstractItemView,
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
13 QDialog,
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
14 QDialogButtonBox,
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
15 QTreeWidgetItem,
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
16 )
49
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 from .Ui_PipxDependenciesDialog import Ui_PipxDependenciesDialog
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 class PipxDependenciesDialog(QDialog, Ui_PipxDependenciesDialog):
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 Class implementing a dialog to show the package dependencies.
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 AllMode = 0
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 UptodateMode = 1
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 OutdatedMode = 2
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 DependencyColumn = 0
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 InstalledVersionColumn = 1
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 AvailableVersionColumn = 2
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
106
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
34 UpgradeAllDependenciesAction = 10
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
35 # sent by done() when all dependencies shall be upgraded
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
36 UpgradeSelectedDependenciesAction = 11
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
37 # sent by done() when selected dependencies shall be upgraded
90
0949844ea0e3 Added an 'Upgrade Dependencies' button to the dialog showing outdated dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
38
49
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 def __init__(self, package, dependencies, mode, parent=None):
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 Constructor
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 @param package name of the package
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 @type str
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 @param dependencies list of package dependency data
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 @type list of tuple of (str, str, str) or list of tuple of (str, str)
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 @param mode dialog mode
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 @type int
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 @param parent reference to the parent widget (defaults to None)
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 @type QWidget (optional)
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 """
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 super().__init__(parent)
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.setupUi(self)
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54
106
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
55 self.__mode = mode
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
56
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
57 self.__upgradeAllButton = None
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
58 self.__upgradeSelectedButton = None
90
0949844ea0e3 Added an 'Upgrade Dependencies' button to the dialog showing outdated dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
59
49
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 if mode != PipxDependenciesDialog.OutdatedMode:
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 self.dependenciesList.hideColumn(
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 PipxDependenciesDialog.AvailableVersionColumn
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 )
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 if mode == PipxDependenciesDialog.OutdatedMode:
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 headerMsg = self.tr("Outdated Dependencies of package <b>{0}</b>")
106
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
67 self.__upgradeSelectedButton = self.buttonBox.addButton(
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
68 self.tr("Upgrade Selected Dependencies"),
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
69 QDialogButtonBox.ButtonRole.ActionRole,
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
70 )
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
71 self.__upgradeAllButton = self.buttonBox.addButton(
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
72 self.tr("Upgrade All Dependencies"),
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
73 QDialogButtonBox.ButtonRole.ActionRole,
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
74 )
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
75 self.dependenciesList.setSelectionMode(
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
76 QAbstractItemView.SelectionMode.ExtendedSelection
90
0949844ea0e3 Added an 'Upgrade Dependencies' button to the dialog showing outdated dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
77 )
49
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 elif mode == PipxDependenciesDialog.UptodateMode:
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 headerMsg = self.tr("Up-to-date Dependencies of package <b>{0}</b>")
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 else:
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 headerMsg = self.tr("Dependencies of package <b>{0}</b>")
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 self.headerLabel.setText(headerMsg.format(package))
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 for dependency in dependencies:
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 QTreeWidgetItem(self.dependenciesList, list(dependency))
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 self.dependenciesList.sortItems(
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 PipxDependenciesDialog.DependencyColumn, Qt.SortOrder.AscendingOrder
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 )
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 self.__resizeColumns()
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91
106
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
92 if mode == PipxDependenciesDialog.OutdatedMode:
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
93 self.__upgradeAllButton.setEnabled(
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
94 self.dependenciesList.topLevelItemCount()
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
95 )
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
96 self.__upgradeSelectedButton.setEnabled(False)
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
97
49
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 def __resizeColumns(self):
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 """
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 Private method to resize the columns of the dependencies list.
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 """
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 self.dependenciesList.header().setStretchLastSection(True)
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 self.dependenciesList.resizeColumnToContents(
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 PipxDependenciesDialog.DependencyColumn
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 )
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 self.dependenciesList.resizeColumnToContents(
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 PipxDependenciesDialog.InstalledVersionColumn
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 )
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 self.dependenciesList.resizeColumnToContents(
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 PipxDependenciesDialog.AvailableVersionColumn
ec976c5b88ae Implemented actions to show the dependencies of a package and upgrade them using 'runpip' because 'pipx' doesn't upgrade them when upgrading the package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 )
90
0949844ea0e3 Added an 'Upgrade Dependencies' button to the dialog showing outdated dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
112
0949844ea0e3 Added an 'Upgrade Dependencies' button to the dialog showing outdated dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
113 @pyqtSlot(QAbstractButton)
0949844ea0e3 Added an 'Upgrade Dependencies' button to the dialog showing outdated dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
114 def on_buttonBox_clicked(self, button):
0949844ea0e3 Added an 'Upgrade Dependencies' button to the dialog showing outdated dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
115 """
0949844ea0e3 Added an 'Upgrade Dependencies' button to the dialog showing outdated dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
116 Private slot handling a button click of the button box.
0949844ea0e3 Added an 'Upgrade Dependencies' button to the dialog showing outdated dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
117
0949844ea0e3 Added an 'Upgrade Dependencies' button to the dialog showing outdated dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
118 @param button reference to the clicked button
0949844ea0e3 Added an 'Upgrade Dependencies' button to the dialog showing outdated dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
119 @type QAbstractButton
0949844ea0e3 Added an 'Upgrade Dependencies' button to the dialog showing outdated dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
120 """
106
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
121 if button == self.__upgradeAllButton:
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
122 self.done(PipxDependenciesDialog.UpgradeAllDependenciesAction)
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
123 elif button == self.__upgradeSelectedButton:
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
124 self.done(PipxDependenciesDialog.UpgradeSelectedDependenciesAction)
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
125
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
126 @pyqtSlot()
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
127 def on_dependenciesList_itemSelectionChanged(self):
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
128 """
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
129 Private slot to update the UI when the package selection changes.
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
130 """
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
131 if self.__mode == PipxDependenciesDialog.OutdatedMode:
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
132 self.__upgradeSelectedButton.setEnabled(
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
133 len(self.dependenciesList.selectedItems())
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
134 )
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
135
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
136 def getDependencies(self, selectedOnly=True):
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
137 """
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
138 Public method to get the list of selected or all dependencies.
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
139
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
140 @param selectedOnly flag indicated to get only the selected dependencies
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
141 (defaults to True)
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
142 @type boolTYPE (optional)
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
143 @return list of names of dependencies
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
144 @rtype list of str
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
145 """
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
146 if selectedOnly:
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
147 return [itm.text(0) for itm in self.dependenciesList.selectedItems()]
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
148 else:
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
149 return [
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
150 self.dependenciesList.topLevelItem(index).text(0)
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
151 for index in range(self.dependenciesList.topLevelItemCount())
dcc8d6b448fa - Added a shortcut button to show the outdated dependencies of the selected package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
152 ]

eric ide

mercurial