eric6/CondaInterface/CondaPackagesWidget.py

changeset 7250
d8bdc55aee1a
parent 7229
53054eb5b15a
child 7360
9190402e4505
equal deleted inserted replaced
7249:0bf517e60f54 7250:d8bdc55aee1a
10 10
11 import os 11 import os
12 12
13 from PyQt5.QtCore import pyqtSlot, Qt 13 from PyQt5.QtCore import pyqtSlot, Qt
14 from PyQt5.QtGui import QCursor 14 from PyQt5.QtGui import QCursor
15 from PyQt5.QtWidgets import QWidget, QToolButton, QMenu, QTreeWidgetItem, \ 15 from PyQt5.QtWidgets import (
16 QApplication, QLineEdit, QDialog 16 QWidget, QToolButton, QMenu, QTreeWidgetItem, QApplication, QLineEdit,
17 QDialog
18 )
17 19
18 from E5Gui import E5FileDialog, E5MessageBox, E5TextInputDialog 20 from E5Gui import E5FileDialog, E5MessageBox, E5TextInputDialog
19 from E5Gui.E5Application import e5App 21 from E5Gui.E5Application import e5App
20 22
21 from .Ui_CondaPackagesWidget import Ui_CondaPackagesWidget 23 from .Ui_CondaPackagesWidget import Ui_CondaPackagesWidget
221 self.statusLabel.setText(self.tr("Getting installed packages...")) 223 self.statusLabel.setText(self.tr("Getting installed packages..."))
222 QApplication.processEvents() 224 QApplication.processEvents()
223 225
224 # 1. populate with installed packages 226 # 1. populate with installed packages
225 self.packagesList.setUpdatesEnabled(False) 227 self.packagesList.setUpdatesEnabled(False)
226 installedPackages = \ 228 installedPackages = self.__conda.getInstalledPackages(
227 self.__conda.getInstalledPackages(prefix=prefix) 229 prefix=prefix)
228 for package, version, build in installedPackages: 230 for package, version, build in installedPackages:
229 itm = QTreeWidgetItem(self.packagesList, [package, version]) 231 itm = QTreeWidgetItem(self.packagesList, [package, version])
230 itm.setData(1, self.PackageVersionRole, version) 232 itm.setData(1, self.PackageVersionRole, version)
231 itm.setData(1, self.PackageBuildRole, build) 233 itm.setData(1, self.PackageBuildRole, build)
232 self.packagesList.setUpdatesEnabled(True) 234 self.packagesList.setUpdatesEnabled(True)
233 self.statusLabel.setText(self.tr("Getting outdated packages...")) 235 self.statusLabel.setText(self.tr("Getting outdated packages..."))
234 QApplication.processEvents() 236 QApplication.processEvents()
235 237
236 # 2. update with update information 238 # 2. update with update information
237 self.packagesList.setUpdatesEnabled(False) 239 self.packagesList.setUpdatesEnabled(False)
238 updateablePackages = \ 240 updateablePackages = self.__conda.getUpdateablePackages(
239 self.__conda.getUpdateablePackages(prefix=prefix) 241 prefix=prefix)
240 for package, version, build in updateablePackages: 242 for package, version, build in updateablePackages:
241 items = self.packagesList.findItems( 243 items = self.packagesList.findItems(
242 package, Qt.MatchExactly | Qt.MatchCaseSensitive) 244 package, Qt.MatchExactly | Qt.MatchCaseSensitive)
243 if items: 245 if items:
244 itm = items[0] 246 itm = items[0]
611 @pyqtSlot() 613 @pyqtSlot()
612 def __cloneEnvironment(self): 614 def __cloneEnvironment(self):
613 """ 615 """
614 Private slot to clone a conda environment. 616 Private slot to clone a conda environment.
615 """ 617 """
616 from .CondaNewEnvironmentDataDialog import \ 618 from .CondaNewEnvironmentDataDialog import (
617 CondaNewEnvironmentDataDialog 619 CondaNewEnvironmentDataDialog)
618 620
619 prefix = self.environmentsComboBox.itemData( 621 prefix = self.environmentsComboBox.itemData(
620 self.environmentsComboBox.currentIndex()) 622 self.environmentsComboBox.currentIndex())
621 if prefix: 623 if prefix:
622 dlg = CondaNewEnvironmentDataDialog(self.tr("Clone Environment"), 624 dlg = CondaNewEnvironmentDataDialog(self.tr("Clone Environment"),
627 "--name", 629 "--name",
628 envName.strip(), 630 envName.strip(),
629 "--clone", 631 "--clone",
630 prefix, 632 prefix,
631 ] 633 ]
632 ok, prefix, interpreter = \ 634 ok, prefix, interpreter = self.__conda.createCondaEnvironment(
633 self.__conda.createCondaEnvironment(args) 635 args)
634 if ok: 636 if ok:
635 e5App().getObject("VirtualEnvManager").addVirtualEnv( 637 e5App().getObject("VirtualEnvManager").addVirtualEnv(
636 virtEnvName, prefix, interpreter, isConda=True) 638 virtEnvName, prefix, interpreter, isConda=True)
637 639
638 @pyqtSlot() 640 @pyqtSlot()
639 def __createEnvironment(self): 641 def __createEnvironment(self):
640 """ 642 """
641 Private slot to create a conda environment from a requirements file. 643 Private slot to create a conda environment from a requirements file.
642 """ 644 """
643 from .CondaNewEnvironmentDataDialog import \ 645 from .CondaNewEnvironmentDataDialog import (
644 CondaNewEnvironmentDataDialog 646 CondaNewEnvironmentDataDialog)
645 647
646 dlg = CondaNewEnvironmentDataDialog(self.tr("Create Environment"), 648 dlg = CondaNewEnvironmentDataDialog(self.tr("Create Environment"),
647 True, self) 649 True, self)
648 if dlg.exec_() == QDialog.Accepted: 650 if dlg.exec_() == QDialog.Accepted:
649 virtEnvName, envName, requirements = dlg.getData() 651 virtEnvName, envName, requirements = dlg.getData()
651 "--name", 653 "--name",
652 envName.strip(), 654 envName.strip(),
653 "--file", 655 "--file",
654 requirements, 656 requirements,
655 ] 657 ]
656 ok, prefix, interpreter = \ 658 ok, prefix, interpreter = self.__conda.createCondaEnvironment(args)
657 self.__conda.createCondaEnvironment(args)
658 if ok: 659 if ok:
659 e5App().getObject("VirtualEnvManager").addVirtualEnv( 660 e5App().getObject("VirtualEnvManager").addVirtualEnv(
660 virtEnvName, prefix, interpreter, isConda=True) 661 virtEnvName, prefix, interpreter, isConda=True)
661 662
662 @pyqtSlot() 663 @pyqtSlot()

eric ide

mercurial