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

branch
eric7
changeset 9479
b4dff37325de
parent 9478
634062017057
child 9480
107aca8932ac
equal deleted inserted replaced
9478:634062017057 9479:b4dff37325de
69 module = astNode.module 69 module = astNode.module
70 self.moduleName = "" if module is None else module 70 self.moduleName = "" if module is None else module
71 self.nodeType = NodeTypeEnum.IMPORT_FROM 71 self.nodeType = NodeTypeEnum.IMPORT_FROM
72 72
73 names = [n.name for n in astNode.names] 73 names = [n.name for n in astNode.names]
74 expectedNames = checker.sorted(names, key=checker.moduleKey) 74 expectedNames = checker.sorted(
75 names,
76 key=lambda k: checker.moduleKey(k, subImports=True),
77 )
75 if names != expectedNames: 78 if names != expectedNames:
76 self.error = (self.node, "I202", ", ".join(expectedNames)) 79 self.error = (self.node, "I202", ", ".join(expectedNames))
77 level = astNode.level 80 level = astNode.level
78 81
79 self.asImport = any(n.asname for n in astNode.names) 82 self.asImport = any(n.asname for n in astNode.names)
93 group = GroupEnum.APPLICATION 96 group = GroupEnum.APPLICATION
94 break 97 break
95 98
96 if group == GroupEnum.STDLIB: 99 if group == GroupEnum.STDLIB:
97 self.sorter = ( 100 self.sorter = (
98 (group, -self.nodeType, self.moduleName) 101 (group, -self.nodeType, checker.moduleKey(self.moduleName))
99 if sortFromFirst 102 if sortFromFirst
100 else (group, self.nodeType, self.moduleName) 103 else (group, self.nodeType, checker.moduleKey(self.moduleName))
101 ) 104 )
102 else: 105 else:
103 m = self.moduleName 106 m = self.moduleName
104 dotIndex = m.find(".") 107 dotIndex = m.find(".")
105 topName = m if dotIndex == -1 else m[:dotIndex] 108 topName = "." * level + m if dotIndex == -1 else m[:dotIndex]
106 109
107 if sortIgnoringStyle: 110 if sortIgnoringStyle:
108 self.sorter = ( 111 self.sorter = (
109 group, 112 group,
110 level, 113 level,

eric ide

mercurial