PluginPyLint.py

changeset 85
6124794c3ffe
parent 83
59597e4c8fa9
child 87
e0f8b96f4195
diff -r 022f0bc87198 -r 6124794c3ffe PluginPyLint.py
--- a/PluginPyLint.py	Mon May 04 17:51:42 2020 +0200
+++ b/PluginPyLint.py	Mon Jun 22 19:49:17 2020 +0200
@@ -7,12 +7,6 @@
 Module implementing the PyLint plug-in.
 """
 
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
 import re
 import os
 import copy
@@ -35,21 +29,20 @@
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
-version = "6.2.0"
+version = "7.0.0"
 className = "PyLintPlugin"
 packageName = "PyLint"
 shortDescription = "Show the PyLint dialogs."
-longDescription = """This plug-in implements the PyLint dialogs.""" \
-    """ PyLint is used to check Python source files according to various""" \
-    """ rules."""
+longDescription = (
+    """This plug-in implements the PyLint dialogs. PyLint is used to check"""
+    """ Python source files according to various rules."""
+)
 needsRestart = False
 pyqtApi = 2
-python2Compatible = True
 # End-of-Header
 
 error = ""
 
-exePy2 = []
 exePy3 = []
 
 
@@ -73,7 +66,7 @@
         "versionCleanup": None,
     }
     if _checkProgram():
-        for exePath in (exePy2[0], exePy3[0]):
+        for exePath in (exePy3[0],):
             if exePath:
                 data["exe"] = exePath
                 data["versionStartsWith"] = "pylint"
@@ -90,7 +83,6 @@
     @param exe name of the executable program (string)
     @return version string of detected version (string)
     """
-    version = '0.0.0'
     proc = QProcess()
     proc.setProcessChannelMode(QProcess.MergedChannels)
     proc.start(exe, ['--version'])
@@ -102,9 +94,9 @@
         versionRe = re.compile('^pylint', re.UNICODE)
         for line in output.splitlines():
             if versionRe.search(line):
-                version = line.split()[-1]
-                break
-    return version
+                return line.split()[-1]
+    
+    return '0.0.0'
 
 
 def _findExecutable(majorVersion):
@@ -117,8 +109,6 @@
     # Determine Python Version
     if majorVersion == 3:
         minorVersions = range(10)
-    elif majorVersion == 2:
-        minorVersions = range(6, 8)
     else:
         return []
     
@@ -226,7 +216,6 @@
                     exes.append(exe)
         
         # step 2: determine the Python variant
-        _exePy2 = set()
         _exePy3 = set()
         versionArgs = ["-c", "import sys; print(sys.version_info[0])"]
         for exe in exes:
@@ -242,12 +231,10 @@
                 versionStr = str(versionBytes, encoding='utf-8').strip()
                 if versionStr == "3":
                     _exePy3.add(exe)
-                elif versionStr == "2":
-                    _exePy2.add(exe)
             finally:
                 f.close()
         
-        executables = _exePy3 if majorVersion == 3 else _exePy2
+        executables = _exePy3
     
     # Find the executable with the highest version number
     maxVersion = '0.0.0'
@@ -267,15 +254,14 @@
     
     @return flag indicating availability (boolean)
     """
-    global error, exePy2, exePy3
+    global error, exePy3
     
-    exePy2 = _findExecutable(2)
     exePy3 = _findExecutable(3)
-    if exePy2[0] == '' and exePy3[0] == '':
+    if exePy3[0] == '':
         error = QCoreApplication.translate(
             "PyLintPlugin", "The pylint executable could not be found.")
         return False
-    elif exePy2[1] < '0.23.0' and exePy3[1] < '0.23.0':
+    elif exePy3[1] < '0.23.0':
         error = QCoreApplication.translate(
             "PyLintPlugin", "PyLint version < 0.23.0.")
         return False
@@ -377,8 +363,8 @@
         self.__editorAct.triggered.connect(self.__editorPylint)
         
         e5App().getObject("Project").showMenu.connect(self.__projectShowMenu)
-        e5App().getObject("ProjectBrowser").getProjectBrowser("sources")\
-            .showMenu.connect(self.__projectBrowserShowMenu)
+        e5App().getObject("ProjectBrowser").getProjectBrowser(
+            "sources").showMenu.connect(self.__projectBrowserShowMenu)
         e5App().getObject("ViewManager").editorOpenedEd.connect(
             self.__editorOpened)
         e5App().getObject("ViewManager").editorClosedEd.connect(
@@ -396,8 +382,8 @@
         """
         e5App().getObject("Project").showMenu.disconnect(
             self.__projectShowMenu)
-        e5App().getObject("ProjectBrowser").getProjectBrowser("sources")\
-            .showMenu.disconnect(self.__projectBrowserShowMenu)
+        e5App().getObject("ProjectBrowser").getProjectBrowser(
+            "sources").showMenu.disconnect(self.__projectBrowserShowMenu)
         e5App().getObject("ViewManager").editorOpenedEd.disconnect(
             self.__editorOpened)
         e5App().getObject("ViewManager").editorClosedEd.disconnect(
@@ -437,8 +423,8 @@
         if self.__ui is not None:
             loc = self.__ui.getLocale()
             if loc and loc != "C":
-                locale_dir = \
-                    os.path.join(os.path.dirname(__file__), "PyLint", "i18n")
+                locale_dir = os.path.join(os.path.dirname(__file__),
+                                          "PyLint", "i18n")
                 translation = "pylint_{0}".format(loc)
                 translator = QTranslator(None)
                 loaded = translator.load(translation, locale_dir)
@@ -474,9 +460,11 @@
         @param menuName name of the menu to be shown (string)
         @param menu reference to the menu (QMenu)
         """
-        if menuName == "Checks" and \
-           e5App().getObject("Project").getProjectLanguage()\
-                .startswith("Python"):
+        if (
+            menuName == "Checks" and
+            e5App().getObject("Project").getProjectLanguage()
+            .startswith("Python")
+        ):
             self.__projectBrowserMenu = menu
             if self.__projectBrowserAct is None:
                 self.__projectBrowserAct = E5Action(
@@ -509,9 +497,10 @@
             if self.__projectBrowserShowAct not in menu.actions():
                 menu.addAction(self.__projectBrowserShowAct)
             
-            enable = e5App().getObject("ProjectBrowser")\
-                .getProjectBrowser("sources")\
-                .getSelectedItemsCount([ProjectBrowserFileItem]) == 1
+            enable = (
+                e5App().getObject("ProjectBrowser")
+                .getProjectBrowser("sources")
+                .getSelectedItemsCount([ProjectBrowserFileItem]) == 1)
             self.__projectBrowserAct.setEnabled(enable)
             self.__projectBrowserShowAct.setEnabled(
                 enable and self.__pylintPsbDialog is not None)
@@ -532,8 +521,7 @@
         else:
             parms = project.getData('CHECKERSPARMS', "PYLINT")
             majorVersionStr = project.getProjectLanguage()
-        exe, version = {"Python": exePy2, "Python2": exePy2,
-                        "Python3": exePy3}.get(majorVersionStr)
+        exe, version = {"Python3": exePy3}.get(majorVersionStr)
         if exe == '':
             E5MessageBox.critical(
                 None,
@@ -592,8 +580,9 @@
         sources browser.
         """
         project = e5App().getObject("Project")
-        browser = e5App().getObject("ProjectBrowser")\
-            .getProjectBrowser("sources")
+        browser = (
+            e5App().getObject("ProjectBrowser").getProjectBrowser("sources")
+        )
         itm = browser.model().item(browser.currentIndex())
         try:
             fn = itm.fileName()
@@ -644,8 +633,7 @@
         if menuName == "Checks":
             if self.__editorAct not in menu.actions():
                 menu.addAction(self.__editorAct)
-            self.__editorAct.setEnabled(
-                editor.isPy3File() or editor.isPy2File())
+            self.__editorAct.setEnabled(editor.isPyFile())
     
     def __editorPylint(self):
         """

eric ide

mercurial