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): """