--- a/RefactoringRope/RefactoringServer.py Sat Mar 27 09:48:05 2021 +0100 +++ b/RefactoringRope/RefactoringServer.py Sat Apr 24 11:19:08 2021 +0200 @@ -8,7 +8,7 @@ """ import os -import sys +import contextlib from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QMenu, QApplication, QAction @@ -40,7 +40,7 @@ @param parent parent @type QObject """ - super(RefactoringServer, self).__init__( + super().__init__( "RefactoringServer", parent=parent) self.__plugin = plugin @@ -86,7 +86,7 @@ """ Public slot for new incoming connections from a client. """ - super(RefactoringServer, self).handleNewConnection() + super().handleNewConnection() self.sendJson("GetConfig", {}) @@ -861,10 +861,7 @@ if "Error" not in result: return True - if "Title" in result: - title = result["Title"] - else: - title = self.tr("Rope Error") + title = result.get("Title", self.tr("Rope Error")) if result["Error"] == 'ModuleSyntaxError': res = E5MessageBox.warning( @@ -926,12 +923,9 @@ """ if self.handleRopeError(result): changeGroup = result["ChangeGroup"] - try: + with contextlib.suppress(KeyError): self.__refactoringDialogs[changeGroup].processChangeData( result) - except KeyError: - # ignore data for non-existing dialogs - pass def __refactoringDialogClosed(self, changeGroup): """ @@ -941,11 +935,8 @@ belonged to @type str """ - try: + with contextlib.suppress(KeyError): del self.__refactoringDialogs[changeGroup] - except KeyError: - # it's gone already; ignore it - pass ##################################################### ## Rename refactorings @@ -1952,14 +1943,12 @@ self.__progressDialog = progressDialog QApplication.processEvents() - elif subcommand == "Progress": - if self.__progressDialog is not None: - self.__progressDialog.updateProgress(params) - self.__progressDialog.raise_() + elif subcommand == "Progress" and self.__progressDialog is not None: + self.__progressDialog.updateProgress(params) + self.__progressDialog.raise_() - elif subcommand == "Reset": - if self.__progressDialog is not None: - self.__progressDialog.reset() + elif subcommand == "Reset" and self.__progressDialog is not None: + self.__progressDialog.reset() def __setConfig(self, params): """ @@ -2037,69 +2026,41 @@ self.__projectLanguage == "MicroPython"): clientEnv = os.environ.copy() if "PATH" in clientEnv: + clientEnv["PATH"] = self.__ui.getOriginalPathString() + + venvManager = e5App().getObject("VirtualEnvManager") + + # get virtual environment from project first + venvName = self.__e5project.getDebugProperty("VIRTUALENV") + if venvName: try: - clientEnv["PATH"] = self.__ui.getOriginalPathString() + isRemote = venvManager.isRemoteEnvironment(venvName) except AttributeError: - # ignore for eric6 < 18.12 - pass - try: - # new code using virtual environments - venvManager = e5App().getObject("VirtualEnvManager") + isRemote = False + else: + isRemote = False + if (not venvName) or isRemote: + # get it from debugger settings next + if self.__projectLanguage in ("Python3", "MicroPython"): + venvName = Preferences.getDebugger("Python3VirtualEnv") + if not venvName: + venvName, _ = venvManager.getDefaultEnvironment() + else: + venvName = "" + if venvName: + interpreter = venvManager.getVirtualenvInterpreter( + venvName) + execPath = venvManager.getVirtualenvExecPath(venvName) - # get virtual environment from project first - venvName = self.__e5project.getDebugProperty("VIRTUALENV") - if venvName: - try: - isRemote = venvManager.isRemoteEnvironment(venvName) - except AttributeError: - isRemote = False - else: - isRemote = False - if (not venvName) or isRemote: - # get it from debugger settings next - if self.__projectLanguage in ("Python3", "MicroPython"): - # Python 3 - venvName = Preferences.getDebugger("Python3VirtualEnv") - if not venvName and sys.version_info[0] >= 3: - try: - venvName, _ = ( - venvManager.getDefaultEnvironment() - ) - except AttributeError: - # ignore for eric6 < 18.10 - pass + # build a suitable environment + if execPath: + if "PATH" in clientEnv: + clientEnv["PATH"] = os.pathsep.join( + [execPath, clientEnv["PATH"]]) else: - venvName = "" - if venvName: - interpreter = venvManager.getVirtualenvInterpreter( - venvName) - - try: - execPath = venvManager.getVirtualenvExecPath(venvName) - except AttributeError: - # eric6 < 18.12 - execPath = "" - - # build a suitable environment - if execPath: - if "PATH" in clientEnv: - clientEnv["PATH"] = os.pathsep.join( - [execPath, clientEnv["PATH"]]) - else: - clientEnv["PATH"] = execPath - else: - interpreter = "" - except KeyError: - # backward compatibility (eric < 18.07) - # get interpreter from project first - interpreter = self.__e5project.getDebugProperty("INTERPRETER") - if not interpreter or not Utilities.isinpath(interpreter): - # get it from debugger settings second - if self.__projectLanguage in ("Python3", "MicroPython"): - interpreter = Preferences.getDebugger( - "Python3Interpreter") - else: - interpreter = "" + clientEnv["PATH"] = execPath + else: + interpreter = "" if interpreter: if isRemote: self.__ui.appendToStderr(self.tr(