eric6/PipInterface/PipPackagesWidget.py

changeset 7641
21ea4fd50b0a
parent 7626
7f643d41464e
child 7726
b1ade4fcf05f
diff -r f9bb7c8c60d8 -r 21ea4fd50b0a eric6/PipInterface/PipPackagesWidget.py
--- a/eric6/PipInterface/PipPackagesWidget.py	Fri Jul 03 17:37:11 2020 +0200
+++ b/eric6/PipInterface/PipPackagesWidget.py	Sat Jul 04 11:34:37 2020 +0200
@@ -26,6 +26,7 @@
 from .Ui_PipPackagesWidget import Ui_PipPackagesWidget
 
 import UI.PixmapCache
+import Globals
 
 
 class PipPackagesWidget(QWidget, Ui_PipPackagesWidget):
@@ -154,6 +155,24 @@
         
         return available
     
+    def __availablePipVersion(self):
+        """
+        Private method to get the pip version of the selected environment.
+        
+        @return tuple containing the version number or tuple with all zeros
+            in case pip is not available
+        @rtype tuple of int
+        """
+        pipVersionTuple = (0, 0, 0)
+        venvName = self.environmentsComboBox.currentText()
+        if venvName:
+            pipList = self.packagesList.findItems(
+                "pip", Qt.MatchExactly | Qt.MatchCaseSensitive)
+            if len(pipList) > 0:
+                pipVersionTuple = Globals.versionToTuple(pipList[0].text(1))
+        
+        return pipVersionTuple
+    
     #######################################################################
     ## Slots handling widget signals below
     #######################################################################
@@ -974,6 +993,7 @@
         """
         enable = bool(self.environmentsComboBox.currentText())
         enablePip = self.__isPipAvailable()
+        enablePipCache = self.__availablePipVersion() >= (20, 1, 0)
         
         self.__installPipAct.setEnabled(not enablePip)
         self.__installPipUserAct.setEnabled(not enablePip)
@@ -986,10 +1006,10 @@
         self.__uninstallRequirementsAct.setEnabled(enablePip)
         self.__generateRequirementsAct.setEnabled(enablePip)
         
-        self.__cacheInfoAct.setEnabled(enablePip)
-        self.__cacheShowListAct.setEnabled(enablePip)
-        self.__cacheRemoveAct.setEnabled(enablePip)
-        self.__cachePurgeAct.setEnabled(enablePip)
+        self.__cacheInfoAct.setEnabled(enablePipCache)
+        self.__cacheShowListAct.setEnabled(enablePipCache)
+        self.__cacheRemoveAct.setEnabled(enablePipCache)
+        self.__cachePurgeAct.setEnabled(enablePipCache)
         
         self.__editVirtualenvConfigAct.setEnabled(enable)
     

eric ide

mercurial