Mon, 09 Jan 2023 11:22:56 +0100
Moved the 'QtHelp' subpackage out of the WebBrowser package because it is used in the HelpViewer as well.
<!DOCTYPE html> <html><head> <title>eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker</title> <meta charset="UTF-8"> <link rel="stylesheet" href="styles.css"> </head> <body> <a NAME="top" ID="top"></a> <h1>eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker</h1> <p> Module implementing a checker for import statements. </p> <h3>Global Attributes</h3> <table> <tr><td>None</td></tr> </table> <h3>Classes</h3> <table> <tr> <td><a href="#ImportsChecker">ImportsChecker</a></td> <td>Class implementing a checker for import statements.</td> </tr> </table> <h3>Functions</h3> <table> <tr><td>None</td></tr> </table> <hr /> <hr /> <a NAME="ImportsChecker" ID="ImportsChecker"></a> <h2>ImportsChecker</h2> <p> Class implementing a checker for import statements. </p> <h3>Derived from</h3> None <h3>Class Attributes</h3> <table> <tr><td>Codes</td></tr> </table> <h3>Class Methods</h3> <table> <tr><td>None</td></tr> </table> <h3>Methods</h3> <table> <tr> <td><a href="#ImportsChecker.__init__">ImportsChecker</a></td> <td>Constructor</td> </tr> <tr> <td><a href="#ImportsChecker.__atoi">__atoi</a></td> <td>Private method to convert the given text to an integer number.</td> </tr> <tr> <td><a href="#ImportsChecker.__checkBannedImport">__checkBannedImport</a></td> <td>Private method to check import of banned modules.</td> </tr> <tr> <td><a href="#ImportsChecker.__checkBannedRelativeImports">__checkBannedRelativeImports</a></td> <td>Private method to check if relative imports are banned.</td> </tr> <tr> <td><a href="#ImportsChecker.__checkImportOrder">__checkImportOrder</a></td> <td>Private method to check the order of import statements.</td> </tr> <tr> <td><a href="#ImportsChecker.__checkLocalImports">__checkLocalImports</a></td> <td>Private method to check local imports.</td> </tr> <tr> <td><a href="#ImportsChecker.__checkUnnecessaryAlias">__checkUnnecessaryAlias</a></td> <td>Private method to check unnecessary import aliases.</td> </tr> <tr> <td><a href="#ImportsChecker.__compileUnstructuredGlob">__compileUnstructuredGlob</a></td> <td>Private method to convert a pattern to a regex such that ".*" matches zero or more modules.</td> </tr> <tr> <td><a href="#ImportsChecker.__error">__error</a></td> <td>Private method to record an issue.</td> </tr> <tr> <td><a href="#ImportsChecker.__findErrorInAll">__findErrorInAll</a></td> <td>Private method to check the '__all__' node for errors.</td> </tr> <tr> <td><a href="#ImportsChecker.__findNodes">__findNodes</a></td> <td>Private method to find all import and import from nodes of the given tree.</td> </tr> <tr> <td><a href="#ImportsChecker.__ignoreCode">__ignoreCode</a></td> <td>Private method to check if the message code should be ignored.</td> </tr> <tr> <td><a href="#ImportsChecker.__isModuleBanned">__isModuleBanned</a></td> <td>Private method to check, if the given module name banned.</td> </tr> <tr> <td><a href="#ImportsChecker.__naturalKeys">__naturalKeys</a></td> <td>Private method to generate keys for natural sorting.</td> </tr> <tr> <td><a href="#ImportsChecker.__naturally">__naturally</a></td> <td>Private method to sort the given list of names naturally.</td> </tr> <tr> <td><a href="#ImportsChecker.__tidyImports">__tidyImports</a></td> <td>Private method to check various other import related topics.</td> </tr> <tr> <td><a href="#ImportsChecker.getStandardModules">getStandardModules</a></td> <td>Public method to get a list of modules of the standard library.</td> </tr> <tr> <td><a href="#ImportsChecker.keyCallback">keyCallback</a></td> <td></td> </tr> <tr> <td><a href="#ImportsChecker.moduleKey">moduleKey</a></td> <td>Public method to generate a key for the given module name.</td> </tr> <tr> <td><a href="#ImportsChecker.run">run</a></td> <td>Public method to check the given source against miscellaneous conditions.</td> </tr> <tr> <td><a href="#ImportsChecker.sorted">sorted</a></td> <td>Public method to sort the given list of names.</td> </tr> </table> <h3>Static Methods</h3> <table> <tr><td>None</td></tr> </table> <a NAME="ImportsChecker.__init__" ID="ImportsChecker.__init__"></a> <h4>ImportsChecker (Constructor)</h4> <b>ImportsChecker</b>(<i>source, filename, tree, select, ignore, expected, repeat, args</i>) <p> Constructor </p> <dl> <dt><i>source</i> (list of str)</dt> <dd> source code to be checked </dd> <dt><i>filename</i> (str)</dt> <dd> name of the source file </dd> <dt><i>tree</i> (ast.Module)</dt> <dd> AST tree of the source code </dd> <dt><i>select</i> (list of str)</dt> <dd> list of selected codes </dd> <dt><i>ignore</i> (list of str)</dt> <dd> list of codes to be ignored </dd> <dt><i>expected</i> (list of str)</dt> <dd> list of expected codes </dd> <dt><i>repeat</i> (bool)</dt> <dd> flag indicating to report each occurrence of a code </dd> <dt><i>args</i> (dict)</dt> <dd> dictionary of arguments for the various checks </dd> </dl> <a NAME="ImportsChecker.__atoi" ID="ImportsChecker.__atoi"></a> <h4>ImportsChecker.__atoi</h4> <b>__atoi</b>(<i>text</i>) <p> Private method to convert the given text to an integer number. </p> <dl> <dt><i>text</i> (str)</dt> <dd> text to be converted </dd> </dl> <dl> <dt>Return:</dt> <dd> integer number </dd> </dl> <dl> <dt>Return Type:</dt> <dd> int </dd> </dl> <a NAME="ImportsChecker.__checkBannedImport" ID="ImportsChecker.__checkBannedImport"></a> <h4>ImportsChecker.__checkBannedImport</h4> <b>__checkBannedImport</b>(<i>node</i>) <p> Private method to check import of banned modules. </p> <dl> <dt><i>node</i> (ast.AST)</dt> <dd> reference to the node to be checked </dd> </dl> <a NAME="ImportsChecker.__checkBannedRelativeImports" ID="ImportsChecker.__checkBannedRelativeImports"></a> <h4>ImportsChecker.__checkBannedRelativeImports</h4> <b>__checkBannedRelativeImports</b>(<i>node</i>) <p> Private method to check if relative imports are banned. </p> <dl> <dt><i>node</i> (ast.AST)</dt> <dd> reference to the node to be checked </dd> </dl> <a NAME="ImportsChecker.__checkImportOrder" ID="ImportsChecker.__checkImportOrder"></a> <h4>ImportsChecker.__checkImportOrder</h4> <b>__checkImportOrder</b>(<i></i>) <p> Private method to check the order of import statements. </p> <a NAME="ImportsChecker.__checkLocalImports" ID="ImportsChecker.__checkLocalImports"></a> <h4>ImportsChecker.__checkLocalImports</h4> <b>__checkLocalImports</b>(<i></i>) <p> Private method to check local imports. </p> <a NAME="ImportsChecker.__checkUnnecessaryAlias" ID="ImportsChecker.__checkUnnecessaryAlias"></a> <h4>ImportsChecker.__checkUnnecessaryAlias</h4> <b>__checkUnnecessaryAlias</b>(<i>node</i>) <p> Private method to check unnecessary import aliases. </p> <dl> <dt><i>node</i> (ast.AST)</dt> <dd> reference to the node to be checked </dd> </dl> <a NAME="ImportsChecker.__compileUnstructuredGlob" ID="ImportsChecker.__compileUnstructuredGlob"></a> <h4>ImportsChecker.__compileUnstructuredGlob</h4> <b>__compileUnstructuredGlob</b>(<i>module</i>) <p> Private method to convert a pattern to a regex such that ".*" matches zero or more modules. </p> <dl> <dt><i>module</i> (str)</dt> <dd> module pattern to be converted </dd> </dl> <dl> <dt>Return:</dt> <dd> compiled regex </dd> </dl> <dl> <dt>Return Type:</dt> <dd> re.regex object </dd> </dl> <a NAME="ImportsChecker.__error" ID="ImportsChecker.__error"></a> <h4>ImportsChecker.__error</h4> <b>__error</b>(<i>lineNumber, offset, code, *args</i>) <p> Private method to record an issue. </p> <dl> <dt><i>lineNumber</i> (int)</dt> <dd> line number of the issue </dd> <dt><i>offset</i> (int)</dt> <dd> position within line of the issue </dd> <dt><i>code</i> (str)</dt> <dd> message code </dd> <dt><i>args</i> (list)</dt> <dd> arguments for the message </dd> </dl> <a NAME="ImportsChecker.__findErrorInAll" ID="ImportsChecker.__findErrorInAll"></a> <h4>ImportsChecker.__findErrorInAll</h4> <b>__findErrorInAll</b>(<i>node</i>) <p> Private method to check the '__all__' node for errors. </p> <dl> <dt><i>node</i> (ast.List or ast.Tuple)</dt> <dd> reference to the '__all__' node </dd> </dl> <dl> <dt>Return:</dt> <dd> tuple containing a reference to the node and an error code </dd> </dl> <dl> <dt>Return Type:</dt> <dd> rtype tuple of (ast.List | ast.Tuple, str) </dd> </dl> <a NAME="ImportsChecker.__findNodes" ID="ImportsChecker.__findNodes"></a> <h4>ImportsChecker.__findNodes</h4> <b>__findNodes</b>(<i>tree</i>) <p> Private method to find all import and import from nodes of the given tree. </p> <dl> <dt><i>tree</i> (ast.AST)</dt> <dd> reference to the ast node tree to be parsed </dd> </dl> <dl> <dt>Return:</dt> <dd> tuple containing a list of import nodes and the '__all__' node </dd> </dl> <dl> <dt>Return Type:</dt> <dd> tuple of (ast.Import | ast.ImportFrom, ast.List | ast.Tuple) </dd> </dl> <a NAME="ImportsChecker.__ignoreCode" ID="ImportsChecker.__ignoreCode"></a> <h4>ImportsChecker.__ignoreCode</h4> <b>__ignoreCode</b>(<i>code</i>) <p> Private method to check if the message code should be ignored. </p> <dl> <dt><i>code</i> (str)</dt> <dd> message code to check for </dd> </dl> <dl> <dt>Return:</dt> <dd> flag indicating to ignore the given code </dd> </dl> <dl> <dt>Return Type:</dt> <dd> bool </dd> </dl> <a NAME="ImportsChecker.__isModuleBanned" ID="ImportsChecker.__isModuleBanned"></a> <h4>ImportsChecker.__isModuleBanned</h4> <b>__isModuleBanned</b>(<i>moduleName</i>) <p> Private method to check, if the given module name banned. </p> <dl> <dt><i>moduleName</i> (str)</dt> <dd> module name to be checked </dd> </dl> <dl> <dt>Return:</dt> <dd> flag indicating a banned module </dd> </dl> <dl> <dt>Return Type:</dt> <dd> bool </dd> </dl> <a NAME="ImportsChecker.__naturalKeys" ID="ImportsChecker.__naturalKeys"></a> <h4>ImportsChecker.__naturalKeys</h4> <b>__naturalKeys</b>(<i>text</i>) <p> Private method to generate keys for natural sorting. </p> <dl> <dt><i>text</i> (str)</dt> <dd> text to generate a key for </dd> </dl> <dl> <dt>Return:</dt> <dd> key for natural sorting </dd> </dl> <dl> <dt>Return Type:</dt> <dd> list of str or int </dd> </dl> <a NAME="ImportsChecker.__naturally" ID="ImportsChecker.__naturally"></a> <h4>ImportsChecker.__naturally</h4> <b>__naturally</b>(<i>toSort, key=None, reverse=False</i>) <p> Private method to sort the given list of names naturally. </p> <p> Note: Natural sorting maintains the sort order of numbers (i.e. [Q1, Q10, Q2] is sorted as [Q1, Q2, Q10] while the Python standard sort would yield [Q1, Q10, Q2]. </p> <dl> <dt><i>toSort</i> (list of str)</dt> <dd> list of names to be sorted </dd> <dt><i>key</i> (function (optional))</dt> <dd> function to generate keys (defaults to None) </dd> <dt><i>reverse</i> (bool (optional))</dt> <dd> flag indicating a reverse sort (defaults to False) </dd> </dl> <dl> <dt>Return:</dt> <dd> sorted list of names </dd> </dl> <dl> <dt>Return Type:</dt> <dd> list of str </dd> </dl> <a NAME="ImportsChecker.__tidyImports" ID="ImportsChecker.__tidyImports"></a> <h4>ImportsChecker.__tidyImports</h4> <b>__tidyImports</b>(<i></i>) <p> Private method to check various other import related topics. </p> <a NAME="ImportsChecker.getStandardModules" ID="ImportsChecker.getStandardModules"></a> <h4>ImportsChecker.getStandardModules</h4> <b>getStandardModules</b>(<i></i>) <p> Public method to get a list of modules of the standard library. </p> <dl> <dt>Return:</dt> <dd> set of builtin modules </dd> </dl> <dl> <dt>Return Type:</dt> <dd> set of str </dd> </dl> <a NAME="ImportsChecker.keyCallback" ID="ImportsChecker.keyCallback"></a> <h4>ImportsChecker.keyCallback</h4> <b>keyCallback</b>(<i></i>) <a NAME="ImportsChecker.moduleKey" ID="ImportsChecker.moduleKey"></a> <h4>ImportsChecker.moduleKey</h4> <b>moduleKey</b>(<i>moduleName, subImports=False</i>) <p> Public method to generate a key for the given module name. </p> <dl> <dt><i>moduleName</i> (str)</dt> <dd> module name </dd> <dt><i>subImports</i> (bool (optional))</dt> <dd> flag indicating a sub import like in 'from foo import bar, baz' (defaults to False) </dd> </dl> <dl> <dt>Return:</dt> <dd> generated key </dd> </dl> <dl> <dt>Return Type:</dt> <dd> str </dd> </dl> <a NAME="ImportsChecker.run" ID="ImportsChecker.run"></a> <h4>ImportsChecker.run</h4> <b>run</b>(<i></i>) <p> Public method to check the given source against miscellaneous conditions. </p> <a NAME="ImportsChecker.sorted" ID="ImportsChecker.sorted"></a> <h4>ImportsChecker.sorted</h4> <b>sorted</b>(<i>toSort, key=None, reverse=False</i>) <p> Public method to sort the given list of names. </p> <dl> <dt><i>toSort</i> (list of str)</dt> <dd> list of names to be sorted </dd> <dt><i>key</i> (function (optional))</dt> <dd> function to generate keys (defaults to None) </dd> <dt><i>reverse</i> (bool (optional))</dt> <dd> flag indicating a reverse sort (defaults to False) </dd> </dl> <dl> <dt>Return:</dt> <dd> sorted list of names </dd> </dl> <dl> <dt>Return Type:</dt> <dd> list of str </dd> </dl> <div align="right"><a href="#top">Up</a></div> <hr /> </body></html>