AssistantEric/APIsManager.py

changeset 177
25cb41783971
parent 173
ced7c270bf6b
child 180
89ff060ef0d9
--- 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.

eric ide

mercurial