Plugins/UiExtensionPlugins/PipInterface/Pip.py

changeset 6294
58f82c179d2b
parent 6290
bf4624957d2d
child 6301
f488d2cc5841
diff -r 509768769afe -r 58f82c179d2b Plugins/UiExtensionPlugins/PipInterface/Pip.py
--- a/Plugins/UiExtensionPlugins/PipInterface/Pip.py	Fri May 18 18:31:14 2018 +0200
+++ b/Plugins/UiExtensionPlugins/PipInterface/Pip.py	Fri May 18 19:04:15 2018 +0200
@@ -127,7 +127,6 @@
         ## Actions for installing packages
         ##############################################
         
-        # TODO: add action to install a downloaded wheel via pip
         self.installPackagesAct = E5Action(
             self.tr('Install Packages'),
             self.tr('&Install Packages'),
@@ -142,6 +141,21 @@
         self.installPackagesAct.triggered.connect(self.__installPackages)
         self.actions.append(self.installPackagesAct)
         
+        self.installLocalPackageAct = E5Action(
+            self.tr('Install Local Package'),
+            self.tr('Install Local Package'),
+            0, 0,
+            self, 'pip_install_local_package')
+        self.installLocalPackageAct.setStatusTip(self.tr(
+            'Install a package from local storage'))
+        self.installLocalPackageAct.setWhatsThis(self.tr(
+            """<b>Install Local Package</b>"""
+            """<p>This installs a package available on local storage.</p>"""
+        ))
+        self.installLocalPackageAct.triggered.connect(
+            self.__installLocalPackage)
+        self.actions.append(self.installLocalPackageAct)
+        
         self.installRequirementsAct = E5Action(
             self.tr('Install Requirements'),
             self.tr('Install Requirements'),
@@ -356,6 +370,7 @@
         menu.addSeparator()
         menu.addAction(self.installPipAct)
         menu.addAction(self.installPackagesAct)
+        menu.addAction(self.installLocalPackageAct)
         menu.addAction(self.installRequirementsAct)
         menu.addSeparator()
         menu.addAction(self.upgradePipAct)
@@ -932,13 +947,23 @@
             if packages:
                 self.installPackages(packages, cmd=command)
     
+    def __installLocalPackage(self):
+        """
+        Private slot to install a package available on local storage.
+        """
+        from .PipFileSelectionDialog import PipFileSelectionDialog
+        dlg = PipFileSelectionDialog(self.__plugin, "package")
+        if dlg.exec_() == QDialog.Accepted:
+            command, package = dlg.getData()
+            if package and os.path.exists(package):
+                self.installPackages([package], cmd=command)
+    
     def __installRequirements(self):
         """
         Private slot to install packages as given in a requirements file.
         """
-        from .PipRequirementsSelectionDialog import \
-            PipRequirementsSelectionDialog
-        dlg = PipRequirementsSelectionDialog(self.__plugin)
+        from .PipFileSelectionDialog import PipFileSelectionDialog
+        dlg = PipFileSelectionDialog(self.__plugin, "requirements")
         if dlg.exec_() == QDialog.Accepted:
             command, requirements = dlg.getData()
             if requirements and os.path.exists(requirements):
@@ -1002,9 +1027,8 @@
         """
         Private slot to uninstall packages as given in a requirements file.
         """
-        from .PipRequirementsSelectionDialog import \
-            PipRequirementsSelectionDialog
-        dlg = PipRequirementsSelectionDialog(self.__plugin)
+        from .PipFileSelectionDialog import PipFileSelectionDialog
+        dlg = PipFileSelectionDialog(self.__plugin, "requirements")
         if dlg.exec_() == QDialog.Accepted:
             command, requirements = dlg.getData()
             if requirements and os.path.exists(requirements):

eric ide

mercurial