diff -r e9e7eca7efee -r bf71ee032bb4 src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportNode.py --- a/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportNode.py Wed Jul 13 11:16:20 2022 +0200 +++ b/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportNode.py Wed Jul 13 14:55:47 2022 +0200 @@ -21,6 +21,7 @@ """ Class representing an exception for an invalid import node. """ + pass @@ -29,10 +30,11 @@ """ Class representing an import or import from node. """ + def __init__(self, appNames, astNode, checker): """ Constructor - + @param appNames list of application package names @type list of str @param astNode reference to the ast node @@ -46,19 +48,19 @@ raise ImportNodeException( "Node type {0} not recognized".format(type(astNode)) ) - + self.node = astNode self.error = None level = None group = None - + if isinstance(astNode, ast.Import): self.nodeType = NodeTypeEnum.IMPORT names = astNode.names self.moduleName = names[0].name level = 0 - + elif isinstance(astNode, ast.ImportFrom): module = astNode.module self.moduleName = "" if module is None else module @@ -69,7 +71,7 @@ if names != expectedNames: self.error = (self.node, "I202", ", ".join(expectedNames)) level = astNode.level - + if self.moduleName == "__future__": group = GroupEnum.FUTURE elif self.moduleName in checker.getStandardModules(): @@ -79,13 +81,12 @@ else: group = GroupEnum.THIRD_PARTY for name in appNames: - if ( - name == self.moduleName or - self.moduleName.startswith("{0}.".format(name)) + if name == self.moduleName or self.moduleName.startswith( + "{0}.".format(name) ): group = GroupEnum.APPLICATION break - + if group == GroupEnum.STDLIB: self.sorter = group, self.nodeType, self.moduleName else: @@ -93,57 +94,54 @@ dotIndex = m.find(".") topName = m if dotIndex == -1 else m[:dotIndex] self.sorter = group, level, topName, self.nodeType, m - + def __eq__(self, other): """ Special method implementing the equality operator. - + @param other reference to the object to compare @type ImportNode @return flag indicating equality @rtype bool """ return self.sorter == other.sorter - + def __lt__(self, other): """ Special method implementing the less than operator. - + @param other reference to the object to compare @type ImportNode @return flag indicating a less than situation @rtype bool """ return self.sorter < other.sorter - + def __str__(self): """ Special method to create a string representation of the instance. - + @return string representation of the instance @rtype str @exception ImportNodeException raised to indicate an invalid node was given to this class """ - if ( - self.nodeType not in (NodeTypeEnum.IMPORT, - NodeTypeEnum.IMPORT_FROM) - ): + if self.nodeType not in (NodeTypeEnum.IMPORT, NodeTypeEnum.IMPORT_FROM): raise ImportNodeException( "The node type {0} is not recognized.".format(self.nodeType) ) - + if self.nodeType == NodeTypeEnum.IMPORT: return "import {0}".format(self.moduleName) elif self.nodeType == NodeTypeEnum.IMPORT_FROM: level = self.node.level levelStr = "" if level == 0 else "." * level names = [ - n.name + ("" if n.asname is None else - " as {0}".format(n.asname)) + n.name + ("" if n.asname is None else " as {0}".format(n.asname)) for n in self.node.names ] return "from {0}{1} import {2}".format( - levelStr, self.moduleName, ", ".join(names)) - + levelStr, self.moduleName, ", ".join(names) + ) + return None