63 module = astNode.module |
63 module = astNode.module |
64 self.moduleName = "" if module is None else module |
64 self.moduleName = "" if module is None else module |
65 self.nodeType = NodeTypeEnum.IMPORT_FROM |
65 self.nodeType = NodeTypeEnum.IMPORT_FROM |
66 |
66 |
67 names = [n.name for n in astNode.names] |
67 names = [n.name for n in astNode.names] |
68 expectedNames = sorted(names) |
68 expectedNames = checker.sorted(names, key=checker.moduleKey) |
69 if names != expectedNames: |
69 if names != expectedNames: |
70 self.error = (self.node, "I202", ", ".join(expectedNames)) |
70 self.error = (self.node, "I202", ", ".join(expectedNames)) |
71 level = astNode.level |
71 level = astNode.level |
72 |
72 |
73 if self.moduleName == "__future__": |
73 if self.moduleName == "__future__": |
74 group = GroupEnum.FUTURE |
74 group = GroupEnum.FUTURE |
75 elif self.moduleName in checker.getStandardModules(): |
75 elif self.moduleName.split(".")[0] in checker.getStandardModules(): |
76 group = GroupEnum.STDLIB |
76 group = GroupEnum.STDLIB |
77 elif level > 0: |
77 elif level > 0: |
78 group = GroupEnum.APPLICATION |
78 group = GroupEnum.APPLICATION |
79 else: |
79 else: |
80 group = GroupEnum.THIRD_PARTY |
80 group = GroupEnum.THIRD_PARTY |