PipxInterface/PipxInterpretersDialog.py

Fri, 28 Jun 2024 16:36:46 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 28 Jun 2024 16:36:46 +0200
changeset 15
2fb8d19c38ae
parent 14
12413552ae0d
child 104
45c88e73e3dd
permissions
-rw-r--r--

Corrected some code style and formatting issues.

14
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2024 Detlev Offenbach <detlev@die-offenbachs.de>
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to show the available standalone Python interpreters.
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt6.QtCore import pyqtSlot
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 from PyQt6.QtWidgets import QDialog, QTreeWidgetItem
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from eric7.EricGui import EricPixmapCache
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from .Ui_PipxInterpretersDialog import Ui_PipxInterpretersDialog
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 class PipxInterpretersDialog(QDialog, Ui_PipxInterpretersDialog):
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 Class implementing a dialog to show the available standalone Python interpreters.
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 def __init__(self, pipx, parent=None):
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Constructor
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @param pipx reference to the pipx interface
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @type Pipx
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @param parent reference to the parent widget (defaults to None)
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 @type QWidget (optional)
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 super().__init__(parent)
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 self.setupUi(self)
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 self.refreshButton.setIcon(EricPixmapCache.getIcon("reload"))
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 self.upgradeButton.setIcon(EricPixmapCache.getIcon("upgrade"))
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 self.pruneButton.setIcon(EricPixmapCache.getIcon("clear"))
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.__pipx = pipx
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.refreshButton.clicked.connect(self.__populateInterpretersList)
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.__populateInterpretersList()
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 @pyqtSlot()
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 def __populateInterpretersList(self):
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 """
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 Private slot to populate the list of standalone Python interpreters.
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 """
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.interpretersList.clear()
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 interpreters = self.__pipx.getPipxInterpretersList()["interpreters"]
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 for interpreter in interpreters:
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 pyItem = QTreeWidgetItem(
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.interpretersList,
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 [
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 self.tr("Python {0}{1}").format(
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 interpreter,
15
2fb8d19c38ae Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 14
diff changeset
59 (
2fb8d19c38ae Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 14
diff changeset
60 ""
2fb8d19c38ae Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 14
diff changeset
61 if interpreters[interpreter]["used"]
2fb8d19c38ae Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 14
diff changeset
62 else self.tr(" (unused)")
2fb8d19c38ae Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 14
diff changeset
63 ),
14
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 )
15
2fb8d19c38ae Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 14
diff changeset
65 ],
14
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 )
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 for package, packageVersion in interpreters[interpreter]["used_by"]:
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 QTreeWidgetItem(
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 pyItem,
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 [
15
2fb8d19c38ae Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 14
diff changeset
71 self.tr("{0} {1}", "package, version").format(
2fb8d19c38ae Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 14
diff changeset
72 package, packageVersion
2fb8d19c38ae Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 14
diff changeset
73 )
2fb8d19c38ae Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 14
diff changeset
74 ],
14
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 )
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 pyItem.setExpanded(True)
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 @pyqtSlot()
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 def on_upgradeButton_clicked(self):
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 """
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 Private slot to upgrade all pipx managed interpreters to the latest available
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 micro/patch version.
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 """
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 self.__pipx.upgradeInterpreters(dialogParent=self)
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 self.__populateInterpretersList()
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 @pyqtSlot()
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 def on_pruneButton_clicked(self):
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 """
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 Private slot to prune unused interpreters.
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 """
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 self.__pipx.pruneInterpreters(dialogParent=self)
12413552ae0d Added functionality to upgrade single or all pipx managed packages and to manage the standalone interpreters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 self.__populateInterpretersList()

eric ide

mercurial