--- a/AssistantEric/APIsManager.py Tue Apr 13 17:39:32 2021 +0200 +++ b/AssistantEric/APIsManager.py Sat Apr 24 10:56:08 2021 +0200 @@ -7,18 +7,14 @@ Module implementing the APIsManager. """ -from __future__ import unicode_literals - +import contextlib import os from PyQt5.QtCore import ( QTimer, QThread, QFileInfo, pyqtSignal, QDateTime, QObject, Qt ) -try: +with contextlib.suppress(ImportError): from PyQt5.QtSql import QSqlDatabase, QSqlQuery -except ImportError: - # just ignore it because the main plug-in file will deal with it - pass from E5Gui.E5Application import e5App @@ -166,11 +162,12 @@ query.prepare(self.file_loaded_stmt) query.bindValue(":file", apiFile) query.exec() - if query.next() and query.isValid(): # __IGNORE_WARNING_M513__ - loadTime = QDateTime.fromString( - query.value(0), Qt.DateFormat.ISODate) - else: - loadTime = QDateTime(1970, 1, 1, 0, 0) + loadTime = ( + QDateTime.fromString(query.value(0), Qt.DateFormat.ISODate) + if query.next() and query.isValid() else + # __IGNORE_WARNING_M513__ + QDateTime(1970, 1, 1, 0, 0) + ) query.finish() del query finally: @@ -228,7 +225,7 @@ bases = [] if self.__language == ApisNameProject: - try: + with contextlib.suppress(OSError, ImportError): module = Utilities.ModuleParser.readModule( os.path.join(self.__projectPath, apiFile), basename=self.__projectPath + os.sep, @@ -249,22 +246,16 @@ bases.append("{0} {1}\n".format( baseEntry, " ".join( sorted(basesDict[baseEntry])))) - except (OSError, ImportError): - pass else: - try: + with contextlib.suppress(OSError, UnicodeError): apis = Utilities.readEncodedFile(apiFile)[0].splitlines(True) - except (OSError, UnicodeError): - pass - try: + with contextlib.suppress(OSError, UnicodeError): basesFile = os.path.splitext(apiFile)[0] + ".bas" if os.path.exists(basesFile): bases = ( Utilities.readEncodedFile(basesFile)[0] .splitlines(True) ) - except (OSError, UnicodeError): - pass language = None if len(apis) > 0: @@ -384,10 +375,8 @@ index = len(path) fullContext = path context = path - try: + with contextlib.suppress(ValueError): acWord, pictureId = acWord.split("?", 1) - except ValueError: - pass else: context = path[index:] break @@ -1055,11 +1044,7 @@ return [] formsSources = [] - try: - forms = self.__project.getProjectFiles("FORMS") - except AttributeError: - # backward compatibility < 16.12 - forms = self.__project.pdata["FORMS"] + forms = self.__project.getProjectFiles("FORMS") for fn in forms: ofn = os.path.splitext(fn)[0] dirname, filename = os.path.split(ofn) @@ -1268,7 +1253,7 @@ return self.__apis[(language, projectType)] except KeyError: if ( - language in self.__supportedApiLanguages() or + language in QScintilla.Lexers.getSupportedApiLanguages() or language == ApisNameProject ): # create the api object @@ -1279,24 +1264,6 @@ else: return None - def __supportedApiLanguages(self): - """ - Private method to build a list of supported API languages. - - Note: This is a compatibility method to make this code work with - older eric versions. - - @return list of supported API languages - @rtype list of str - """ - try: - return QScintilla.Lexers.getSupportedApiLanguages() - except AttributeError: - # backward compatibility < 16.12 - return [lang for lang in - QScintilla.Lexers.getSupportedLanguages().keys() - if lang != "Guessed" and not lang.startswith("Pygments|")] - def deactivate(self): """ Public method to perform actions upon deactivation.