src/eric7/PipInterface/PipPackagesWindow.py

Mon, 29 May 2023 16:18:38 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 29 May 2023 16:18:38 +0200
branch
eric7
changeset 10084
125166c6b66c
child 10439
21c28b0f9e41
permissions
-rw-r--r--

pip Interface
- Added a standalone application for Python package management with `pip`.

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
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2023 Detlev Offenbach <detlev@die-offenbachs.de>
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
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt6.QtCore import Qt
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.
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 def __init__(self, parent=None):
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 """
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 Constructor
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @param parent reference to the parent widget
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 @type QWidget
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 super().__init__(parent)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 self.__pip = Pip(self)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 ericApp().registerObject("Pip", self.__pip)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 self.__venvManager = VirtualenvManager(self)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 ericApp().registerObject("VirtualEnvManager", self.__venvManager)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 self.__centralWidget = QWidget(self)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.__layout = QVBoxLayout(self.__centralWidget)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 self.__centralWidget.setLayout(self.__layout)
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.__pipPackagesWidget = PipPackagesWidget(
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.__pip, parent=self.__centralWidget
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 )
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 self.__layout.addWidget(self.__pipPackagesWidget)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.__buttonBox = QDialogButtonBox(
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 QDialogButtonBox.StandardButton.Close, Qt.Orientation.Horizontal, self
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 )
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 self.__layout.addWidget(self.__buttonBox)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.setCentralWidget(self.__centralWidget)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.resize(700, 900)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.setWindowTitle(self.tr("Manage Packages"))
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.__buttonBox.accepted.connect(self.close)
125166c6b66c pip Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 self.__buttonBox.rejected.connect(self.close)

eric ide

mercurial