src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportsChecker.py

branch
eric7
changeset 9479
b4dff37325de
parent 9477
903ee653bf23
child 9653
e67609152c5e
--- a/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportsChecker.py	Sat Nov 05 17:13:35 2022 +0100
+++ b/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportsChecker.py	Sat Nov 05 19:19:05 2022 +0100
@@ -446,9 +446,8 @@
                         errors.append(n.error)
 
                     if n == p:
-                        if (
-                            self.__args.get("CombinedAsImports", False)
-                            or (not n.asImport and not p.asImport)
+                        if self.__args.get("CombinedAsImports", False) or (
+                            not n.asImport and not p.asImport
                         ):
                             errors.append((n.node, "I203", str(p), str(n)))
                     elif n < p:
@@ -513,7 +512,10 @@
                     # Can't handle anything that isn't a string literal
                     return None
 
-            expectedList = self.sorted(actualList, key=self.moduleKey)
+            expectedList = self.sorted(
+                actualList,
+                key=lambda k: self.moduleKey(k, subImports=True),
+            )
             if expectedList != actualList:
                 return (node, "I204", ", ".join(expectedList))
 
@@ -582,23 +584,27 @@
         """
         return [self.__atoi(c) for c in re.split(r"(\d+)", text)]
 
-    def moduleKey(self, moduleName):
+    def moduleKey(self, moduleName, subImports=False):
         """
         Public method to generate a key for the given module name.
 
         @param moduleName module name
         @type str
+        @param subImports flag indicating a sub import like in
+            'from foo import bar, baz' (defaults to False)
+        @type bool (optional)
         @return generated key
         @rtype str
         """
         prefix = ""
 
-        if moduleName.isupper() and len(moduleName) > 1:
-            prefix = "A"
-        elif moduleName[0:1].isupper():
-            prefix = "B"
-        else:
-            prefix = "C"
+        if subImports:
+            if moduleName.isupper() and len(moduleName) > 1:
+                prefix = "A"
+            elif moduleName[0:1].isupper():
+                prefix = "B"
+            else:
+                prefix = "C"
         if not self.__sortCaseSensitive:
             moduleName = moduleName.lower()
 

eric ide

mercurial