Tue, 06 Dec 2022 19:46:18 +0100
Change the code checking for eric-ide and PyQt6 updates in order to always use the right interpreter (see issue463).
src/eric7/PipInterface/Pip.py | file | annotate | diff | comparison | revisions | |
src/eric7/UI/VersionsDialog.py | file | annotate | diff | comparison | revisions |
--- a/src/eric7/PipInterface/Pip.py Tue Dec 06 17:42:24 2022 +0100 +++ b/src/eric7/PipInterface/Pip.py Tue Dec 06 19:46:18 2022 +0100 @@ -675,7 +675,8 @@ return packages def getOutdatedPackages( - self, envName, localPackages=True, notRequired=False, usersite=False + self, envName, localPackages=True, notRequired=False, usersite=False, + interpreter=None ): """ Public method to get the list of outdated packages. @@ -683,13 +684,17 @@ @param envName name of the environment to get the packages for @type str @param localPackages flag indicating to get local packages only - @type bool + (defaults to False) + @type bool (optional) @param notRequired flag indicating to list packages that are not - dependencies of installed packages as well - @type bool + dependencies of installed packages as well (defaults to False) + @type bool (optional) @param usersite flag indicating to only list packages installed - in user-site - @type bool + in user-site (defaults to False) + @type bool (optional) + @param interpreter path of an interpreter executable. If this is not + None, it will override the given environment name (defaults to None) + @type str (optional) @return list of tuples containing the package name, installed version and available version @rtype list of tuple of (str, str, str) @@ -697,7 +702,8 @@ packages = [] if envName: - interpreter = self.getVirtualenvInterpreter(envName) + if interpreter is None: + interpreter = self.getVirtualenvInterpreter(envName) if interpreter: args = [ "-m", @@ -746,7 +752,7 @@ return packages - def checkPackageOutdated(self, packageStart, envName): + def checkPackageOutdated(self, packageStart, envName, interpreter=None): """ Public method to check, if a group of packages is outdated. @@ -755,6 +761,9 @@ @type str @param envName name of the environment to get the packages for @type str + @param interpreter path of an interpreter executable. If this is not + None, it will override the given environment name (defaults to None) + @type str (optional) @return tuple containing a flag indicating outdated packages and the list of tuples containing the package name, installed version and available version @@ -763,7 +772,7 @@ filteredPackages = [] if bool(envName) and bool(packageStart): - packages = self.getOutdatedPackages(envName) + packages = self.getOutdatedPackages(envName, interpreter=interpreter) filterStr = packageStart.lower() filteredPackages = [ p for p in packages if p[0].lower().startswith(filterStr)
--- a/src/eric7/UI/VersionsDialog.py Tue Dec 06 17:42:24 2022 +0100 +++ b/src/eric7/UI/VersionsDialog.py Tue Dec 06 19:46:18 2022 +0100 @@ -78,59 +78,51 @@ msg = "" - pip = ericApp().getObject("Pip") - venvManager = ericApp().getObject("VirtualEnvManager") + with EricOverrideCursor(): + pip = ericApp().getObject("Pip") + pyqtUpdateAvailable, pyqtVersionsData = pip.checkPackageOutdated( + "pyqt6", "system>", interpreter=sys.executable + ) + ericUpdateAvailable, ericVersionsData = pip.checkPackageOutdated( + "eric-ide", "system>", interpreter=sys.executable + ) + + if pyqtUpdateAvailable or ericUpdateAvailable: + self.buttonBox.removeButton(self.__checkUpdateButton) + self.__checkUpdateButton = None + else: + msg = self.tr("No upgrades available.") - environmentName = ( - venvManager.environmentForInterpreter(sys.executable)[0] - # just the name is needed + if ericUpdateAvailable: + self.__upgradeEricButton = self.buttonBox.addButton( + upgradeButtonTemplate.format("eric7"), + QDialogButtonBox.ButtonRole.ActionRole, + ) + self.__upgradeEricButton.clicked.connect(self.__ui.upgradeEric) + msg += headerTemplate.format("eric7") + msg += tableTemplate.format(entryTemplate.format(*ericVersionsData[0])) + + if pyqtUpdateAvailable: + self.__upgradePyQtButton = self.buttonBox.addButton( + upgradeButtonTemplate.format("PyQt6"), + QDialogButtonBox.ButtonRole.ActionRole, + ) + self.__upgradePyQtButton.clicked.connect(self.__ui.upgradePyQt) + msg += headerTemplate.format("PyQt6") + msg += tableTemplate.format( + "".join(entryTemplate.format(*v) for v in pyqtVersionsData) + ) + + if ericUpdateAvailable and pyqtUpdateAvailable: + self.__upgradeBothButton = self.buttonBox.addButton( + upgradeButtonTemplate.format(self.tr("Both")), + QDialogButtonBox.ButtonRole.ActionRole, + ) + self.__upgradeBothButton.clicked.connect(self.__ui.upgradeEricPyQt) + + self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setDefault(True) + self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setFocus( + Qt.FocusReason.OtherFocusReason ) - if environmentName: - with EricOverrideCursor(): - pyqtUpdateAvailable, pyqtVersionsData = pip.checkPackageOutdated( - "pyqt6", environmentName - ) - ericUpdateAvailable, ericVersionsData = pip.checkPackageOutdated( - "eric-ide", environmentName - ) - - if pyqtUpdateAvailable or ericUpdateAvailable: - self.buttonBox.removeButton(self.__checkUpdateButton) - self.__checkUpdateButton = None - else: - msg = self.tr("No upgrades available.") - - if ericUpdateAvailable: - self.__upgradeEricButton = self.buttonBox.addButton( - upgradeButtonTemplate.format("eric7"), - QDialogButtonBox.ButtonRole.ActionRole, - ) - self.__upgradeEricButton.clicked.connect(self.__ui.upgradeEric) - msg += headerTemplate.format("eric7") - msg += tableTemplate.format(entryTemplate.format(*ericVersionsData[0])) - - if pyqtUpdateAvailable: - self.__upgradePyQtButton = self.buttonBox.addButton( - upgradeButtonTemplate.format("PyQt6"), - QDialogButtonBox.ButtonRole.ActionRole, - ) - self.__upgradePyQtButton.clicked.connect(self.__ui.upgradePyQt) - msg += headerTemplate.format("PyQt6") - msg += tableTemplate.format( - "".join(entryTemplate.format(*v) for v in pyqtVersionsData) - ) - - if ericUpdateAvailable and pyqtUpdateAvailable: - self.__upgradeBothButton = self.buttonBox.addButton( - upgradeButtonTemplate.format(self.tr("Both")), - QDialogButtonBox.ButtonRole.ActionRole, - ) - self.__upgradeBothButton.clicked.connect(self.__ui.upgradeEricPyQt) - - self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setDefault(True) - self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setFocus( - Qt.FocusReason.OtherFocusReason - ) - - EricMessageBox.information(self, self.tr("Check for Upgrades"), msg) + EricMessageBox.information(self, self.tr("Check for Upgrades"), msg)