eric6/PipInterface/PipPackagesWidget.py

changeset 8143
2c730d5fd177
parent 8090
c53117374255
child 8152
0c740fcffd34
equal deleted inserted replaced
8141:27f636beebad 8143:2c730d5fd177
144 ShowProcessGeneralMode = 0 144 ShowProcessGeneralMode = 0
145 ShowProcessClassifiersMode = 1 145 ShowProcessClassifiersMode = 1
146 ShowProcessEntryPointsMode = 2 146 ShowProcessEntryPointsMode = 2
147 ShowProcessFilesListMode = 3 147 ShowProcessFilesListMode = 3
148 148
149 SearchVersionRole = Qt.UserRole + 1 149 SearchVersionRole = Qt.ItemDataRole.UserRole + 1
150 150
151 def __init__(self, pip, parent=None): 151 def __init__(self, pip, parent=None):
152 """ 152 """
153 Constructor 153 Constructor
154 154
162 162
163 self.pipMenuButton.setObjectName( 163 self.pipMenuButton.setObjectName(
164 "pip_supermenu_button") 164 "pip_supermenu_button")
165 self.pipMenuButton.setIcon(UI.PixmapCache.getIcon("superMenu")) 165 self.pipMenuButton.setIcon(UI.PixmapCache.getIcon("superMenu"))
166 self.pipMenuButton.setToolTip(self.tr("pip Menu")) 166 self.pipMenuButton.setToolTip(self.tr("pip Menu"))
167 self.pipMenuButton.setPopupMode(QToolButton.InstantPopup) 167 self.pipMenuButton.setPopupMode(
168 self.pipMenuButton.setToolButtonStyle(Qt.ToolButtonIconOnly) 168 QToolButton.ToolButtonPopupMode.InstantPopup)
169 self.pipMenuButton.setFocusPolicy(Qt.NoFocus) 169 self.pipMenuButton.setToolButtonStyle(
170 Qt.ToolButtonStyle.ToolButtonIconOnly)
171 self.pipMenuButton.setFocusPolicy(Qt.FocusPolicy.NoFocus)
170 self.pipMenuButton.setAutoRaise(True) 172 self.pipMenuButton.setAutoRaise(True)
171 self.pipMenuButton.setShowMenuInside(True) 173 self.pipMenuButton.setShowMenuInside(True)
172 174
173 self.refreshButton.setIcon(UI.PixmapCache.getIcon("reload")) 175 self.refreshButton.setIcon(UI.PixmapCache.getIcon("reload"))
174 self.upgradeButton.setIcon(UI.PixmapCache.getIcon("1uparrow")) 176 self.upgradeButton.setIcon(UI.PixmapCache.getIcon("1uparrow"))
181 self.installUserSiteButton.setIcon(UI.PixmapCache.getIcon("addUser")) 183 self.installUserSiteButton.setIcon(UI.PixmapCache.getIcon("addUser"))
182 self.showDetailsButton.setIcon(UI.PixmapCache.getIcon("info")) 184 self.showDetailsButton.setIcon(UI.PixmapCache.getIcon("info"))
183 185
184 self.__pip = pip 186 self.__pip = pip
185 187
186 self.packagesList.header().setSortIndicator(0, Qt.AscendingOrder) 188 self.packagesList.header().setSortIndicator(
189 0, Qt.SortOrder.AscendingOrder)
187 190
188 self.__infoLabels = { 191 self.__infoLabels = {
189 "name": self.tr("Name:"), 192 "name": self.tr("Name:"),
190 "version": self.tr("Version:"), 193 "version": self.tr("Version:"),
191 "location": self.tr("Location:"), 194 "location": self.tr("Location:"),
254 """ 257 """
255 available = False 258 available = False
256 259
257 venvName = self.environmentsComboBox.currentText() 260 venvName = self.environmentsComboBox.currentText()
258 if venvName: 261 if venvName:
259 available = len(self.packagesList.findItems( 262 available = (
260 "pip", Qt.MatchExactly | Qt.MatchCaseSensitive)) == 1 263 len(self.packagesList.findItems(
264 "pip",
265 Qt.MatchFlag.MatchExactly |
266 Qt.MatchFlag.MatchCaseSensitive)) == 1
267 )
261 268
262 return available 269 return available
263 270
264 def __availablePipVersion(self): 271 def __availablePipVersion(self):
265 """ 272 """
271 """ 278 """
272 pipVersionTuple = (0, 0, 0) 279 pipVersionTuple = (0, 0, 0)
273 venvName = self.environmentsComboBox.currentText() 280 venvName = self.environmentsComboBox.currentText()
274 if venvName: 281 if venvName:
275 pipList = self.packagesList.findItems( 282 pipList = self.packagesList.findItems(
276 "pip", Qt.MatchExactly | Qt.MatchCaseSensitive) 283 "pip",
284 Qt.MatchFlag.MatchExactly | Qt.MatchFlag.MatchCaseSensitive
285 )
277 if len(pipList) > 0: 286 if len(pipList) > 0:
278 pipVersionTuple = Globals.versionToTuple(pipList[0].text(1)) 287 pipVersionTuple = Globals.versionToTuple(pipList[0].text(1))
279 288
280 return pipVersionTuple 289 return pipVersionTuple
281 290
375 notRequired=self.notRequiredCheckBox.isChecked(), 384 notRequired=self.notRequiredCheckBox.isChecked(),
376 usersite=self.userCheckBox.isChecked(), 385 usersite=self.userCheckBox.isChecked(),
377 ) 386 )
378 for package, _version, latest in outdatedPackages: 387 for package, _version, latest in outdatedPackages:
379 items = self.packagesList.findItems( 388 items = self.packagesList.findItems(
380 package, Qt.MatchExactly | Qt.MatchCaseSensitive) 389 package,
390 Qt.MatchFlag.MatchExactly |
391 Qt.MatchFlag.MatchCaseSensitive
392 )
381 if items: 393 if items:
382 itm = items[0] 394 itm = items[0]
383 itm.setText(2, latest) 395 itm.setText(2, latest)
384 396
385 self.packagesList.sortItems(0, Qt.AscendingOrder) 397 self.packagesList.sortItems(0, Qt.SortOrder.AscendingOrder)
386 for col in range(self.packagesList.columnCount()): 398 for col in range(self.packagesList.columnCount()):
387 self.packagesList.resizeColumnToContents(col) 399 self.packagesList.resizeColumnToContents(col)
388 self.packagesList.setUpdatesEnabled(True) 400 self.packagesList.setUpdatesEnabled(True)
389 self.statusLabel.hide() 401 self.statusLabel.hide()
390 402
488 mode = self.ShowProcessEntryPointsMode 500 mode = self.ShowProcessEntryPointsMode
489 self.infoWidget.scrollToTop() 501 self.infoWidget.scrollToTop()
490 502
491 header = self.infoWidget.header() 503 header = self.infoWidget.header()
492 header.setStretchLastSection(False) 504 header.setStretchLastSection(False)
493 header.resizeSections(QHeaderView.ResizeToContents) 505 header.resizeSections(QHeaderView.ResizeMode.ResizeToContents)
494 if ( 506 if (
495 header.sectionSize(0) + header.sectionSize(1) < 507 header.sectionSize(0) + header.sectionSize(1) <
496 header.width() 508 header.width()
497 ): 509 ):
498 header.setStretchLastSection(True) 510 header.setStretchLastSection(True)
557 569
558 with E5OverrideCursor(): 570 with E5OverrideCursor():
559 self.__populateEnvironments() 571 self.__populateEnvironments()
560 572
561 index = self.environmentsComboBox.findText( 573 index = self.environmentsComboBox.findText(
562 currentEnvironment, Qt.MatchExactly | Qt.MatchCaseSensitive) 574 currentEnvironment,
575 Qt.MatchFlag.MatchExactly | Qt.MatchFlag.MatchCaseSensitive
576 )
563 if index != -1: 577 if index != -1:
564 self.environmentsComboBox.setCurrentIndex(index) 578 self.environmentsComboBox.setCurrentIndex(index)
565 579
566 self.__updateActionButtons() 580 self.__updateActionButtons()
567 581
675 @type bool 689 @type bool
676 """ 690 """
677 self.searchWidget.setVisible(checked) 691 self.searchWidget.setVisible(checked)
678 692
679 if checked: 693 if checked:
680 self.searchEditName.setFocus(Qt.OtherFocusReason) 694 self.searchEditName.setFocus(Qt.FocusReason.OtherFocusReason)
681 self.searchEditName.selectAll() 695 self.searchEditName.selectAll()
682 696
683 self.__updateSearchActionButtons() 697 self.__updateSearchActionButtons()
684 self.__updateSearchButton() 698 self.__updateSearchButton()
685 699
733 urlQuery.addQueryItem("q", searchTerm) 747 urlQuery.addQueryItem("q", searchTerm)
734 url = QUrl(self.__pip.getIndexUrlSearch()) 748 url = QUrl(self.__pip.getIndexUrlSearch())
735 url.setQuery(urlQuery) 749 url.setQuery(urlQuery)
736 750
737 request = QNetworkRequest(QUrl(url)) 751 request = QNetworkRequest(QUrl(url))
738 request.setAttribute(QNetworkRequest.CacheLoadControlAttribute, 752 request.setAttribute(
739 QNetworkRequest.AlwaysNetwork) 753 QNetworkRequest.Attribute.CacheLoadControlAttribute,
754 QNetworkRequest.CacheLoadControl.AlwaysNetwork)
740 reply = self.__pip.getNetworkAccessManager().get(request) 755 reply = self.__pip.getNetworkAccessManager().get(request)
741 reply.finished.connect( 756 reply.finished.connect(
742 lambda: self.__searchResponse(reply)) 757 lambda: self.__searchResponse(reply))
743 self.__replies.append(reply) 758 self.__replies.append(reply)
744 759
753 self.__replies.remove(reply) 768 self.__replies.remove(reply)
754 769
755 urlQuery = QUrlQuery(reply.url()) 770 urlQuery = QUrlQuery(reply.url())
756 searchTerm = urlQuery.queryItemValue("q") 771 searchTerm = urlQuery.queryItemValue("q")
757 772
758 if reply.error() != QNetworkReply.NoError: 773 if reply.error() != QNetworkReply.NetworkError.NoError:
759 E5MessageBox.warning( 774 E5MessageBox.warning(
760 None, 775 None,
761 self.tr("Search PyPI"), 776 self.tr("Search PyPI"),
762 self.tr( 777 self.tr(
763 "<p>Received an error while searching for <b>{0}</b>.</p>" 778 "<p>Received an error while searching for <b>{0}</b>.</p>"
803 ]) 818 ])
804 itm.setData(0, self.SearchVersionRole, result['version']) 819 itm.setData(0, self.SearchVersionRole, result['version'])
805 820
806 header = self.searchResultList.header() 821 header = self.searchResultList.header()
807 header.setStretchLastSection(False) 822 header.setStretchLastSection(False)
808 header.resizeSections(QHeaderView.ResizeToContents) 823 header.resizeSections(QHeaderView.ResizeMode.ResizeToContents)
809 headerSize = 0 824 headerSize = 0
810 for col in range(header.count()): 825 for col in range(header.count()):
811 headerSize += header.sectionSize(col) 826 headerSize += header.sectionSize(col)
812 if headerSize < header.width(): 827 if headerSize < header.width():
813 header.setStretchLastSection(True) 828 header.setStretchLastSection(True)
819 Private slot performing the search finishing actions. 834 Private slot performing the search finishing actions.
820 """ 835 """
821 self.__updateSearchActionButtons() 836 self.__updateSearchActionButtons()
822 self.__updateSearchButton() 837 self.__updateSearchButton()
823 838
824 self.searchEditName.setFocus(Qt.OtherFocusReason) 839 self.searchEditName.setFocus(Qt.FocusReason.OtherFocusReason)
825 840
826 @pyqtSlot() 841 @pyqtSlot()
827 def on_installButton_clicked(self): 842 def on_installButton_clicked(self):
828 """ 843 """
829 Private slot to handle pressing the Install button.. 844 Private slot to handle pressing the Install button..
1079 """ 1094 """
1080 venvName = self.environmentsComboBox.currentText() 1095 venvName = self.environmentsComboBox.currentText()
1081 if venvName: 1096 if venvName:
1082 from .PipPackagesInputDialog import PipPackagesInputDialog 1097 from .PipPackagesInputDialog import PipPackagesInputDialog
1083 dlg = PipPackagesInputDialog(self, self.tr("Install Packages")) 1098 dlg = PipPackagesInputDialog(self, self.tr("Install Packages"))
1084 if dlg.exec() == QDialog.Accepted: 1099 if dlg.exec() == QDialog.DialogCode.Accepted:
1085 packages, user = dlg.getData() 1100 packages, user = dlg.getData()
1086 self.executeInstallPackages(packages, userSite=user) 1101 self.executeInstallPackages(packages, userSite=user)
1087 1102
1088 @pyqtSlot() 1103 @pyqtSlot()
1089 def __installLocalPackage(self): 1104 def __installLocalPackage(self):
1092 """ 1107 """
1093 venvName = self.environmentsComboBox.currentText() 1108 venvName = self.environmentsComboBox.currentText()
1094 if venvName: 1109 if venvName:
1095 from .PipFileSelectionDialog import PipFileSelectionDialog 1110 from .PipFileSelectionDialog import PipFileSelectionDialog
1096 dlg = PipFileSelectionDialog(self, "package") 1111 dlg = PipFileSelectionDialog(self, "package")
1097 if dlg.exec() == QDialog.Accepted: 1112 if dlg.exec() == QDialog.DialogCode.Accepted:
1098 package, user = dlg.getData() 1113 package, user = dlg.getData()
1099 if package and os.path.exists(package): 1114 if package and os.path.exists(package):
1100 self.executeInstallPackages([package], userSite=user) 1115 self.executeInstallPackages([package], userSite=user)
1101 1116
1102 @pyqtSlot() 1117 @pyqtSlot()

eric ide

mercurial