12 import os |
12 import os |
13 |
13 |
14 from PyQt5.QtCore import pyqtSlot, Qt |
14 from PyQt5.QtCore import pyqtSlot, Qt |
15 from PyQt5.QtGui import QCursor |
15 from PyQt5.QtGui import QCursor |
16 from PyQt5.QtWidgets import QWidget, QToolButton, QMenu, QTreeWidgetItem, \ |
16 from PyQt5.QtWidgets import QWidget, QToolButton, QMenu, QTreeWidgetItem, \ |
17 QApplication, QLineEdit |
17 QApplication, QLineEdit, QDialog |
18 |
18 |
19 from E5Gui import E5FileDialog, E5MessageBox, E5TextInputDialog |
19 from E5Gui import E5FileDialog, E5MessageBox, E5TextInputDialog |
20 from E5Gui.E5Application import e5App |
20 from E5Gui.E5Application import e5App |
21 |
21 |
22 from .Ui_CondaPackagesWidget import Ui_CondaPackagesWidget |
22 from .Ui_CondaPackagesWidget import Ui_CondaPackagesWidget |
586 @pyqtSlot() |
586 @pyqtSlot() |
587 def __cloneEnvironment(self): |
587 def __cloneEnvironment(self): |
588 """ |
588 """ |
589 Private slot to clone a conda environment. |
589 Private slot to clone a conda environment. |
590 """ |
590 """ |
|
591 from .CondaNewEnvironmentDataDialog import \ |
|
592 CondaNewEnvironmentDataDialog |
|
593 |
591 prefix = self.environmentsComboBox.itemData( |
594 prefix = self.environmentsComboBox.itemData( |
592 self.environmentsComboBox.currentIndex()) |
595 self.environmentsComboBox.currentIndex()) |
593 if prefix: |
596 if prefix: |
594 ok, envName = E5TextInputDialog.getText( |
597 dlg = CondaNewEnvironmentDataDialog(self.tr("Clone Environment"), |
595 self, |
598 False, self) |
596 self.tr("Clone Environment"), |
599 if dlg.exec_() == QDialog.Accepted: |
597 self.tr("Enter name for the cloned environment:"), |
600 virtEnvName, envName, _ = dlg.getData() |
598 QLineEdit.Normal) |
|
599 if ok and envName.strip(): |
|
600 args = [ |
601 args = [ |
601 "--name", |
602 "--name", |
602 envName.strip(), |
603 envName.strip(), |
603 "--clone", |
604 "--clone", |
604 prefix, |
605 prefix, |
605 ] |
606 ] |
|
607 ok, prefix, interpreter = \ |
|
608 self.__conda.createCondaEnvironment(args) |
|
609 if ok: |
|
610 e5App().getObject("VirtualEnvManager").addVirtualEnv( |
|
611 virtEnvName, prefix, interpreter, isConda=True) |
|
612 |
|
613 @pyqtSlot() |
|
614 def __createEnvironment(self): |
|
615 """ |
|
616 Private slot to create a conda environment from a requirements file. |
|
617 """ |
|
618 from .CondaNewEnvironmentDataDialog import \ |
|
619 CondaNewEnvironmentDataDialog |
|
620 |
|
621 dlg = CondaNewEnvironmentDataDialog(self.tr("Create Environment"), |
|
622 True, self) |
|
623 if dlg.exec_() == QDialog.Accepted: |
|
624 virtEnvName, envName, requirements = dlg.getData() |
|
625 args = [ |
|
626 "--name", |
|
627 envName.strip(), |
|
628 "--file", |
|
629 requirements, |
|
630 ] |
|
631 ok, prefix, interpreter = \ |
606 self.__conda.createCondaEnvironment(args) |
632 self.__conda.createCondaEnvironment(args) |
607 # TODO: add code to register the cloned env with the virt env manager |
633 if ok: |
608 |
634 e5App().getObject("VirtualEnvManager").addVirtualEnv( |
609 @pyqtSlot() |
635 virtEnvName, prefix, interpreter, isConda=True) |
610 def __createEnvironment(self): |
|
611 """ |
|
612 Private slot to create a conda environment from a requirements file. |
|
613 """ |
|
614 # TODO: implement this |
|
615 |
636 |
616 @pyqtSlot() |
637 @pyqtSlot() |
617 def __deleteEnvironment(self): |
638 def __deleteEnvironment(self): |
618 """ |
639 """ |
619 Private slot to delete a conda environment. |
640 Private slot to delete a conda environment. |