src/eric7/PipInterface/PipPackagesWindow.py

Sat, 26 Apr 2025 12:34:32 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 26 Apr 2025 12:34:32 +0200
branch
eric7
changeset 11240
c48c615c04a3
parent 11215
d07c71a34adf
permissions
-rw-r--r--

MicroPython
- Added a configuration option to disable the support for the no longer produced Pimoroni Pico Wireless Pack.

10084
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10919
diff changeset
3 # Copyright (c) 2023 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
10084
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the standalone pip packages management window.
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
11215
d07c71a34adf Changed the application shutdown code to use a signal to indicate the shutdown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
10 from PyQt6.QtCore import Qt, pyqtSignal
10084
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 from PyQt6.QtWidgets import QDialogButtonBox, QVBoxLayout, QWidget
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from eric7.EricWidgets.EricApplication import ericApp
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from eric7.EricWidgets.EricMainWindow import EricMainWindow
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from eric7.PipInterface.Pip import Pip
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 from eric7.PipInterface.PipPackagesWidget import PipPackagesWidget
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 from eric7.VirtualEnv.VirtualenvManager import VirtualenvManager
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 class PipPackagesWindow(EricMainWindow):
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 Main window class for the standalone pip packages manager.
11215
d07c71a34adf Changed the application shutdown code to use a signal to indicate the shutdown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
23
d07c71a34adf Changed the application shutdown code to use a signal to indicate the shutdown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
24 @signal shutdown() emitted to indicate a shutdown of the application
10084
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
11215
d07c71a34adf Changed the application shutdown code to use a signal to indicate the shutdown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
27 shutdown = pyqtSignal()
d07c71a34adf Changed the application shutdown code to use a signal to indicate the shutdown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
28
10084
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 def __init__(self, parent=None):
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 Constructor
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 @param parent reference to the parent widget
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 @type QWidget
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 """
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 super().__init__(parent)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 self.__pip = Pip(self)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 ericApp().registerObject("Pip", self.__pip)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.__venvManager = VirtualenvManager(self)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 ericApp().registerObject("VirtualEnvManager", self.__venvManager)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.__centralWidget = QWidget(self)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.__layout = QVBoxLayout(self.__centralWidget)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 self.__centralWidget.setLayout(self.__layout)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.__pipPackagesWidget = PipPackagesWidget(
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.__pip, parent=self.__centralWidget
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 )
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 self.__layout.addWidget(self.__pipPackagesWidget)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.__buttonBox = QDialogButtonBox(
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 QDialogButtonBox.StandardButton.Close, Qt.Orientation.Horizontal, self
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 )
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.__layout.addWidget(self.__buttonBox)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 self.setCentralWidget(self.__centralWidget)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 self.resize(700, 900)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.setWindowTitle(self.tr("Manage Packages"))
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 self.__buttonBox.accepted.connect(self.close)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self.__buttonBox.rejected.connect(self.close)
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: 10439
diff changeset
64
4e4c8ee38c45 Added a QProcess derived class with timeout and changed the pip interface to use that class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
65 def closeEvent(self, evt):
4e4c8ee38c45 Added a QProcess derived class with timeout and changed the pip interface to use that class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
66 """
4e4c8ee38c45 Added a QProcess derived class with timeout and changed the pip interface to use that class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
67 Protected method handling a close event.
4e4c8ee38c45 Added a QProcess derived class with timeout and changed the pip interface to use that class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
68
4e4c8ee38c45 Added a QProcess derived class with timeout and changed the pip interface to use that class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
69 @param evt reference to the close event object
4e4c8ee38c45 Added a QProcess derived class with timeout and changed the pip interface to use that class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
70 @type QCloseEvent
4e4c8ee38c45 Added a QProcess derived class with timeout and changed the pip interface to use that class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
71 """
11215
d07c71a34adf Changed the application shutdown code to use a signal to indicate the shutdown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
72 self.shutdown.emit()

eric ide

mercurial