VirtualEnv/VirtualenvManager.py

branch
conda
changeset 6697
2f5c951bdf14
parent 6696
706185900558
child 6740
46bb5e2df095
diff -r 706185900558 -r 2f5c951bdf14 VirtualEnv/VirtualenvManager.py
--- a/VirtualEnv/VirtualenvManager.py	Sun Feb 03 16:31:53 2019 +0100
+++ b/VirtualEnv/VirtualenvManager.py	Sun Feb 03 16:59:36 2019 +0100
@@ -19,9 +19,9 @@
 from PyQt5.QtWidgets import QDialog
 
 from E5Gui import E5MessageBox
+from E5Gui.E5Application import e5App
 
 import Preferences
-import Utilities
 
 
 class VirtualenvManager(QObject):
@@ -148,19 +148,24 @@
         dlg = VirtualenvConfigurationDialog()
         if dlg.exec_() == QDialog.Accepted:
             resultDict = dlg.getData()
-##            (pyvenv, args, name, openTarget, createLog, createScript,
-##             targetDir, interpreter) = dlg.getData()
             
             if resultDict["envType"] == "conda":
-                from CondaInterface.CondaExecDialog import CondaExecDialog
-                dia = CondaExecDialog(resultDict, self)
+                # create the conda environment
+                conda = e5App().getObject("Conda")
+                ok, prefix, interpreter = conda.createCondaEnvironment(
+                    resultDict["arguments"])
+                if ok and "--dry-run" not in resultDict["arguments"]:
+                    self.addVirtualEnv(resultDict["logicalName"],
+                                       prefix,
+                                       venvInterpreter=interpreter,
+                                       isConda=True)
             else:
                 # now do the call
                 from .VirtualenvExecDialog import VirtualenvExecDialog
                 dia = VirtualenvExecDialog(resultDict, self)
-            dia.show()
-            dia.start(resultDict["arguments"])
-            dia.exec_()
+                dia.show()
+                dia.start(resultDict["arguments"])
+                dia.exec_()
     
     def addVirtualEnv(self, venvName, venvDirectory, venvInterpreter="",
                       venvVariant=3, isGlobal=False, isConda=False,
@@ -208,9 +213,6 @@
             dlg = VirtualenvInterpreterSelectionDialog(venvName, venvDirectory)
             if dlg.exec_() == QDialog.Accepted:
                 venvInterpreter, venvVariant = dlg.getData()
-                if not Utilities.startswithPath(venvInterpreter,
-                                                venvDirectory):
-                    isGlobal = True
         
         if venvInterpreter:
             self.__virtualEnvironments[venvName] = {
@@ -337,9 +339,17 @@
             if dlg.exec_() == QDialog.Accepted:
                 for venvName in venvNames:
                     if self.__isEnvironmentDeleteable(venvName):
-                        shutil.rmtree(
-                            self.__virtualEnvironments[venvName]["path"], True)
-                        del self.__virtualEnvironments[venvName]
+                        if self.isCondaEnvironment(venvName):
+                            conda = e5App().getObject("Conda")
+                            path = self.__virtualEnvironments[venvName]["path"]
+                            res = conda.removeCondaEnvironment(prefix=path)
+                            if res:
+                                del self.__virtualEnvironments[venvName]
+                        else:
+                            shutil.rmtree(
+                                self.__virtualEnvironments[venvName]["path"],
+                                True)
+                            del self.__virtualEnvironments[venvName]
                 
                 self.__saveSettings()
                 

eric ide

mercurial