RefactoringRope/RefactoringServer.py

changeset 354
a967ff16629a
parent 347
b5048b5ff454
child 360
2b35968f3d02
diff -r d38295fd97c2 -r a967ff16629a RefactoringRope/RefactoringServer.py
--- 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(

eric ide

mercurial