src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.CodeStyleChecker.Miscellaneous.MiscellaneousChecker.html

branch
eric7
changeset 9327
2b768afcaee1
parent 9295
d14096c04126
child 9596
397f385b95d8
diff -r 1d8eadd8873e -r 2b768afcaee1 src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.CodeStyleChecker.Miscellaneous.MiscellaneousChecker.html
--- a/src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.CodeStyleChecker.Miscellaneous.MiscellaneousChecker.html	Wed Sep 14 11:07:55 2022 +0200
+++ b/src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.CodeStyleChecker.Miscellaneous.MiscellaneousChecker.html	Thu Sep 15 10:09:53 2022 +0200
@@ -14,7 +14,7 @@
 <h3>Global Attributes</h3>
 
 <table>
-<tr><td>None</td></tr>
+<tr><td>BugBearContext</td></tr>
 </table>
 <h3>Classes</h3>
 
@@ -33,6 +33,10 @@
 <td>Class implementing a node visitor to check logging statements.</td>
 </tr>
 <tr>
+<td><a href="#M520NameFinder">M520NameFinder</a></td>
+<td>Class to extract a name out of a tree of nodes ignoring names defined within the local scope of a comprehension.</td>
+</tr>
+<tr>
 <td><a href="#MiscellaneousChecker">MiscellaneousChecker</a></td>
 <td>Class implementing a checker for miscellaneous checks.</td>
 </tr>
@@ -75,7 +79,7 @@
 <h3>Class Attributes</h3>
 
 <table>
-<tr><td>NodeWindowSize</td></tr>
+<tr><td>CONTEXTFUL_NODES</td></tr><tr><td>FUNCTION_NODES</td></tr><tr><td>NodeWindowSize</td></tr>
 </table>
 <h3>Class Methods</h3>
 
@@ -91,7 +95,7 @@
 <td>Constructor</td>
 </tr>
 <tr>
-<td><a href="#BugBearVisitor.__checkForM502">__checkForM502</a></td>
+<td><a href="#BugBearVisitor.__checkForM505">__checkForM505</a></td>
 <td>Private method to check the use of *strip().</td>
 </tr>
 <tr>
@@ -99,6 +103,98 @@
 <td>Private method to check for unused loop variables.</td>
 </tr>
 <tr>
+<td><a href="#BugBearVisitor.__checkForM512">__checkForM512</a></td>
+<td>Private method to check for return/continue/break inside finally blocks.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__checkForM515">__checkForM515</a></td>
+<td>Private method to check for pointless comparisons.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__checkForM516">__checkForM516</a></td>
+<td>Private method to check for raising a literal instead of an exception.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__checkForM517">__checkForM517</a></td>
+<td>Private method to check for use of the evil syntax 'with assertRaises(Exception):.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__checkForM518">__checkForM518</a></td>
+<td>Private method to check for useless expressions.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__checkForM519">__checkForM519</a></td>
+<td>Private method to check for use of 'functools.lru_cache' or 'functools.cache'.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__checkForM520">__checkForM520</a></td>
+<td>Private method to check for a loop that modifies its iterable.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__checkForM521">__checkForM521</a></td>
+<td>Private method to check for use of an f-string as docstring.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__checkForM522">__checkForM522</a></td>
+<td>Private method to check for use of an f-string as docstring.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__checkForM523">__checkForM523</a></td>
+<td>Private method to check that functions (including lambdas) do not use loop variables.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__checkForM524">__checkForM524</a></td>
+<td>Private method to check for inheritance from abstract classes in abc and lack of any methods decorated with abstract*.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__checkForM525">__checkForM525</a></td>
+<td>Private method to check for exceptions being handled multiple times.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__childrenInScope">__childrenInScope</a></td>
+<td>Private method to get all child nodes in the given scope.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__composeCallPath">__composeCallPath</a></td>
+<td>Private method get the individual elements of the call path of a node.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__getAssignedNames">__getAssignedNames</a></td>
+<td>Private method to get the names of a for loop.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__isIdentifier">__isIdentifier</a></td>
+<td>Private method to check if arg is a valid identifier.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__namesFromAssignments">__namesFromAssignments</a></td>
+<td>Private method to get names of an assignment.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__toNameStr">__toNameStr</a></td>
+<td>Private method to turn Name and Attribute nodes to strings, handling any depth of attribute accesses.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.__typesafeIssubclass">__typesafeIssubclass</a></td>
+<td>Private method implementing a type safe issubclass() function.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor._loop">_loop</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.isAbcClass">isAbcClass</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.isAbstractDecorator">isAbstractDecorator</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.nodeStack">nodeStack</a></td>
+<td>Public method to get a reference to the most recent node stack.</td>
+</tr>
+<tr>
 <td><a href="#BugBearVisitor.visit">visit</a></td>
 <td>Public method to traverse a given AST node.</td>
 </tr>
@@ -115,25 +211,69 @@
 <td>Public method to handle 'for' statements.</td>
 </tr>
 <tr>
-<td><a href="#BugBearVisitor.visit_Attribute">visit_Attribute</a></td>
-<td>Public method to handle attributes.</td>
+<td><a href="#BugBearVisitor.visit_Call">visit_Call</a></td>
+<td>Public method to handle a function call.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.visit_ClassDef">visit_ClassDef</a></td>
+<td>Public method to handle class definitions.</td>
 </tr>
 <tr>
-<td><a href="#BugBearVisitor.visit_Call">visit_Call</a></td>
-<td>Public method to handle a function call.</td>
+<td><a href="#BugBearVisitor.visit_Compare">visit_Compare</a></td>
+<td>Public method to handle comparison statements.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.visit_DictComp">visit_DictComp</a></td>
+<td>Public method to handle dictionary comprehensions.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.visit_ExceptHandler">visit_ExceptHandler</a></td>
+<td>Public method to handle exception handlers.</td>
 </tr>
 <tr>
 <td><a href="#BugBearVisitor.visit_For">visit_For</a></td>
 <td>Public method to handle 'for' statements.</td>
 </tr>
 <tr>
+<td><a href="#BugBearVisitor.visit_FunctionDef">visit_FunctionDef</a></td>
+<td>Public method to handle function definitions.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.visit_GeneratorExp">visit_GeneratorExp</a></td>
+<td>Public method to handle generator expressions.</td>
+</tr>
+<tr>
 <td><a href="#BugBearVisitor.visit_JoinedStr">visit_JoinedStr</a></td>
 <td>Public method to handle f-string arguments.</td>
 </tr>
 <tr>
+<td><a href="#BugBearVisitor.visit_ListComp">visit_ListComp</a></td>
+<td>Public method to handle list comprehensions.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.visit_Raise">visit_Raise</a></td>
+<td>Public method to handle 'raise' statements.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.visit_SetComp">visit_SetComp</a></td>
+<td>Public method to handle set comprehensions.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.visit_Try">visit_Try</a></td>
+<td>Public method to handle 'try' statements'.</td>
+</tr>
+<tr>
 <td><a href="#BugBearVisitor.visit_UAdd">visit_UAdd</a></td>
 <td>Public method to handle unary additions.</td>
 </tr>
+<tr>
+<td><a href="#BugBearVisitor.visit_While">visit_While</a></td>
+<td>Public method to handle 'while' statements.</td>
+</tr>
+<tr>
+<td><a href="#BugBearVisitor.visit_With">visit_With</a></td>
+<td>Public method to handle 'with' statements.</td>
+</tr>
 </table>
 <h3>Static Methods</h3>
 
@@ -148,9 +288,9 @@
 <p>
         Constructor
 </p>
-<a NAME="BugBearVisitor.__checkForM502" ID="BugBearVisitor.__checkForM502"></a>
-<h4>BugBearVisitor.__checkForM502</h4>
-<b>__checkForM502</b>(<i>node</i>)
+<a NAME="BugBearVisitor.__checkForM505" ID="BugBearVisitor.__checkForM505"></a>
+<h4>BugBearVisitor.__checkForM505</h4>
+<b>__checkForM505</b>(<i>node</i>)
 
 <p>
         Private method to check the use of *strip().
@@ -171,11 +311,407 @@
 </p>
 <dl>
 
-<dt><i>node</i> (ast.For)</dt>
+<dt><i>node</i> (ast.For or ast.AsyncFor)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__checkForM512" ID="BugBearVisitor.__checkForM512"></a>
+<h4>BugBearVisitor.__checkForM512</h4>
+<b>__checkForM512</b>(<i>node</i>)
+
+<p>
+        Private method to check for return/continue/break inside finally blocks.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.Try)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__checkForM515" ID="BugBearVisitor.__checkForM515"></a>
+<h4>BugBearVisitor.__checkForM515</h4>
+<b>__checkForM515</b>(<i>node</i>)
+
+<p>
+        Private method to check for pointless comparisons.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.Compare)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__checkForM516" ID="BugBearVisitor.__checkForM516"></a>
+<h4>BugBearVisitor.__checkForM516</h4>
+<b>__checkForM516</b>(<i>node</i>)
+
+<p>
+        Private method to check for raising a literal instead of an exception.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.Raise)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__checkForM517" ID="BugBearVisitor.__checkForM517"></a>
+<h4>BugBearVisitor.__checkForM517</h4>
+<b>__checkForM517</b>(<i>node</i>)
+
+<p>
+        Private method to check for use of the evil syntax
+        'with assertRaises(Exception):.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.With)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__checkForM518" ID="BugBearVisitor.__checkForM518"></a>
+<h4>BugBearVisitor.__checkForM518</h4>
+<b>__checkForM518</b>(<i>node</i>)
+
+<p>
+        Private method to check for useless expressions.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.FunctionDef)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__checkForM519" ID="BugBearVisitor.__checkForM519"></a>
+<h4>BugBearVisitor.__checkForM519</h4>
+<b>__checkForM519</b>(<i>node</i>)
+
+<p>
+        Private method to check for use of 'functools.lru_cache' or 'functools.cache'.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.FunctionDef)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__checkForM520" ID="BugBearVisitor.__checkForM520"></a>
+<h4>BugBearVisitor.__checkForM520</h4>
+<b>__checkForM520</b>(<i>node</i>)
+
+<p>
+        Private method to check for a loop that modifies its iterable.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.For or ast.AsyncFor)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__checkForM521" ID="BugBearVisitor.__checkForM521"></a>
+<h4>BugBearVisitor.__checkForM521</h4>
+<b>__checkForM521</b>(<i>node</i>)
+
+<p>
+        Private method to check for use of an f-string as docstring.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.FunctionDef or ast.ClassDef)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__checkForM522" ID="BugBearVisitor.__checkForM522"></a>
+<h4>BugBearVisitor.__checkForM522</h4>
+<b>__checkForM522</b>(<i>node</i>)
+
+<p>
+        Private method to check for use of an f-string as docstring.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.With)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__checkForM523" ID="BugBearVisitor.__checkForM523"></a>
+<h4>BugBearVisitor.__checkForM523</h4>
+<b>__checkForM523</b>(<i>loopNode</i>)
+
+<p>
+        Private method to check that functions (including lambdas) do not use loop
+        variables.
+</p>
+<dl>
+
+<dt><i>loopNode</i> (ast.For, ast.AsyncFor, ast.While, ast.ListComp, ast.SetComp,ast.DictComp,)</dt>
+<dd>
+reference to the node to be processed
+            or ast.GeneratorExp
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__checkForM524" ID="BugBearVisitor.__checkForM524"></a>
+<h4>BugBearVisitor.__checkForM524</h4>
+<b>__checkForM524</b>(<i>node</i>)
+
+<p>
+        Private method to check for inheritance from abstract classes in abc and lack of
+        any methods decorated with abstract*.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.ClassDef)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__checkForM525" ID="BugBearVisitor.__checkForM525"></a>
+<h4>BugBearVisitor.__checkForM525</h4>
+<b>__checkForM525</b>(<i>node</i>)
+
+<p>
+        Private method to check for exceptions being handled multiple times.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.Try)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__childrenInScope" ID="BugBearVisitor.__childrenInScope"></a>
+<h4>BugBearVisitor.__childrenInScope</h4>
+<b>__childrenInScope</b>(<i>node</i>)
+
+<p>
+        Private method to get all child nodes in the given scope.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.Node)</dt>
 <dd>
 reference to the node to be processed
 </dd>
 </dl>
+<dl>
+<dt>Yield:</dt>
+<dd>
+reference to a child node
+</dd>
+</dl>
+<dl>
+<dt>Yield Type:</dt>
+<dd>
+ast.Node
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__composeCallPath" ID="BugBearVisitor.__composeCallPath"></a>
+<h4>BugBearVisitor.__composeCallPath</h4>
+<b>__composeCallPath</b>(<i>node</i>)
+
+<p>
+        Private method get the individual elements of the call path of a node.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.Node)</dt>
+<dd>
+reference to the node
+</dd>
+</dl>
+<dl>
+<dt>Yield:</dt>
+<dd>
+one element of the call path
+</dd>
+</dl>
+<dl>
+<dt>Yield Type:</dt>
+<dd>
+ast.Node
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__getAssignedNames" ID="BugBearVisitor.__getAssignedNames"></a>
+<h4>BugBearVisitor.__getAssignedNames</h4>
+<b>__getAssignedNames</b>(<i>loopNode</i>)
+
+<p>
+        Private method to get the names of a for loop.
+</p>
+<dl>
+
+<dt><i>loopNode</i> (ast.For)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<dl>
+<dt>Yield:</dt>
+<dd>
+DESCRIPTION
+</dd>
+</dl>
+<dl>
+<dt>Yield Type:</dt>
+<dd>
+TYPE
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__isIdentifier" ID="BugBearVisitor.__isIdentifier"></a>
+<h4>BugBearVisitor.__isIdentifier</h4>
+<b>__isIdentifier</b>(<i>arg</i>)
+
+<p>
+        Private method to check if arg is a valid identifier.
+</p>
+<p>
+        See https://docs.python.org/2/reference/lexical_analysis.html#identifiers
+</p>
+<dl>
+
+<dt><i>arg</i> (ast.Node)</dt>
+<dd>
+reference to an argument node
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+flag indicating a valid identifier
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+TYPE
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__namesFromAssignments" ID="BugBearVisitor.__namesFromAssignments"></a>
+<h4>BugBearVisitor.__namesFromAssignments</h4>
+<b>__namesFromAssignments</b>(<i>assignTarget</i>)
+
+<p>
+        Private method to get names of an assignment.
+</p>
+<dl>
+
+<dt><i>assignTarget</i> (ast.Node)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<dl>
+<dt>Yield:</dt>
+<dd>
+name of the assignment
+</dd>
+</dl>
+<dl>
+<dt>Yield Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__toNameStr" ID="BugBearVisitor.__toNameStr"></a>
+<h4>BugBearVisitor.__toNameStr</h4>
+<b>__toNameStr</b>(<i>node</i>)
+
+<p>
+        Private method to turn Name and Attribute nodes to strings, handling any
+        depth of attribute accesses.
+</p>
+<p>
+
+</p>
+<dl>
+
+<dt><i>node</i> (ast.Name or ast.Attribute)</dt>
+<dd>
+reference to the node
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+string representation
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<a NAME="BugBearVisitor.__typesafeIssubclass" ID="BugBearVisitor.__typesafeIssubclass"></a>
+<h4>BugBearVisitor.__typesafeIssubclass</h4>
+<b>__typesafeIssubclass</b>(<i>obj, classOrTuple</i>)
+
+<p>
+        Private method implementing a type safe issubclass() function.
+</p>
+<dl>
+
+<dt><i>obj</i> (any)</dt>
+<dd>
+reference to the object to be tested
+</dd>
+<dt><i>classOrTuple</i> (type)</dt>
+<dd>
+type to check against
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+flag indicating a subclass
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<a NAME="BugBearVisitor._loop" ID="BugBearVisitor._loop"></a>
+<h4>BugBearVisitor._loop</h4>
+<b>_loop</b>(<i>badNodeTypes</i>)
+
+<a NAME="BugBearVisitor.isAbcClass" ID="BugBearVisitor.isAbcClass"></a>
+<h4>BugBearVisitor.isAbcClass</h4>
+<b>isAbcClass</b>(<i></i>)
+
+<a NAME="BugBearVisitor.isAbstractDecorator" ID="BugBearVisitor.isAbstractDecorator"></a>
+<h4>BugBearVisitor.isAbstractDecorator</h4>
+<b>isAbstractDecorator</b>(<i></i>)
+
+<a NAME="BugBearVisitor.nodeStack" ID="BugBearVisitor.nodeStack"></a>
+<h4>BugBearVisitor.nodeStack</h4>
+<b>nodeStack</b>(<i></i>)
+
+<p>
+        Public method to get a reference to the most recent node stack.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+reference to the most recent node stack
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list
+</dd>
+</dl>
 <a NAME="BugBearVisitor.visit" ID="BugBearVisitor.visit"></a>
 <h4>BugBearVisitor.visit</h4>
 <b>visit</b>(<i>node</i>)
@@ -232,20 +768,6 @@
 reference to the node to be processed
 </dd>
 </dl>
-<a NAME="BugBearVisitor.visit_Attribute" ID="BugBearVisitor.visit_Attribute"></a>
-<h4>BugBearVisitor.visit_Attribute</h4>
-<b>visit_Attribute</b>(<i>node</i>)
-
-<p>
-        Public method to handle attributes.
-</p>
-<dl>
-
-<dt><i>node</i> (ast.Attribute)</dt>
-<dd>
-reference to the node to be processed
-</dd>
-</dl>
 <a NAME="BugBearVisitor.visit_Call" ID="BugBearVisitor.visit_Call"></a>
 <h4>BugBearVisitor.visit_Call</h4>
 <b>visit_Call</b>(<i>node</i>)
@@ -260,6 +782,62 @@
 reference to the node to be processed
 </dd>
 </dl>
+<a NAME="BugBearVisitor.visit_ClassDef" ID="BugBearVisitor.visit_ClassDef"></a>
+<h4>BugBearVisitor.visit_ClassDef</h4>
+<b>visit_ClassDef</b>(<i>node</i>)
+
+<p>
+        Public method to handle class definitions.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.ClassDef)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.visit_Compare" ID="BugBearVisitor.visit_Compare"></a>
+<h4>BugBearVisitor.visit_Compare</h4>
+<b>visit_Compare</b>(<i>node</i>)
+
+<p>
+        Public method to handle comparison statements.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.Compare)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.visit_DictComp" ID="BugBearVisitor.visit_DictComp"></a>
+<h4>BugBearVisitor.visit_DictComp</h4>
+<b>visit_DictComp</b>(<i>node</i>)
+
+<p>
+        Public method to handle dictionary comprehensions.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.DictComp)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.visit_ExceptHandler" ID="BugBearVisitor.visit_ExceptHandler"></a>
+<h4>BugBearVisitor.visit_ExceptHandler</h4>
+<b>visit_ExceptHandler</b>(<i>node</i>)
+
+<p>
+        Public method to handle exception handlers.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.ExceptHandler)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
 <a NAME="BugBearVisitor.visit_For" ID="BugBearVisitor.visit_For"></a>
 <h4>BugBearVisitor.visit_For</h4>
 <b>visit_For</b>(<i>node</i>)
@@ -274,6 +852,34 @@
 reference to the node to be processed
 </dd>
 </dl>
+<a NAME="BugBearVisitor.visit_FunctionDef" ID="BugBearVisitor.visit_FunctionDef"></a>
+<h4>BugBearVisitor.visit_FunctionDef</h4>
+<b>visit_FunctionDef</b>(<i>node</i>)
+
+<p>
+        Public method to handle function definitions.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.FunctionDef)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.visit_GeneratorExp" ID="BugBearVisitor.visit_GeneratorExp"></a>
+<h4>BugBearVisitor.visit_GeneratorExp</h4>
+<b>visit_GeneratorExp</b>(<i>node</i>)
+
+<p>
+        Public method to handle generator expressions.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.GeneratorExp)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
 <a NAME="BugBearVisitor.visit_JoinedStr" ID="BugBearVisitor.visit_JoinedStr"></a>
 <h4>BugBearVisitor.visit_JoinedStr</h4>
 <b>visit_JoinedStr</b>(<i>node</i>)
@@ -288,6 +894,62 @@
 reference to the node to be processed
 </dd>
 </dl>
+<a NAME="BugBearVisitor.visit_ListComp" ID="BugBearVisitor.visit_ListComp"></a>
+<h4>BugBearVisitor.visit_ListComp</h4>
+<b>visit_ListComp</b>(<i>node</i>)
+
+<p>
+        Public method to handle list comprehensions.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.ListComp)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.visit_Raise" ID="BugBearVisitor.visit_Raise"></a>
+<h4>BugBearVisitor.visit_Raise</h4>
+<b>visit_Raise</b>(<i>node</i>)
+
+<p>
+        Public method to handle 'raise' statements.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.Raise)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.visit_SetComp" ID="BugBearVisitor.visit_SetComp"></a>
+<h4>BugBearVisitor.visit_SetComp</h4>
+<b>visit_SetComp</b>(<i>node</i>)
+
+<p>
+        Public method to handle set comprehensions.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.SetComp)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.visit_Try" ID="BugBearVisitor.visit_Try"></a>
+<h4>BugBearVisitor.visit_Try</h4>
+<b>visit_Try</b>(<i>node</i>)
+
+<p>
+        Public method to handle 'try' statements'.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.Try)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
 <a NAME="BugBearVisitor.visit_UAdd" ID="BugBearVisitor.visit_UAdd"></a>
 <h4>BugBearVisitor.visit_UAdd</h4>
 <b>visit_UAdd</b>(<i>node</i>)
@@ -302,6 +964,34 @@
 reference to the node to be processed
 </dd>
 </dl>
+<a NAME="BugBearVisitor.visit_While" ID="BugBearVisitor.visit_While"></a>
+<h4>BugBearVisitor.visit_While</h4>
+<b>visit_While</b>(<i>node</i>)
+
+<p>
+        Public method to handle 'while' statements.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.While)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="BugBearVisitor.visit_With" ID="BugBearVisitor.visit_With"></a>
+<h4>BugBearVisitor.visit_With</h4>
+<b>visit_With</b>(<i>node</i>)
+
+<p>
+        Public method to handle 'with' statements.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.With)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
@@ -645,6 +1335,129 @@
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
+<a NAME="M520NameFinder" ID="M520NameFinder"></a>
+<h2>M520NameFinder</h2>
+
+<p>
+    Class to extract a name out of a tree of nodes ignoring names defined within the
+    local scope of a comprehension.
+</p>
+<h3>Derived from</h3>
+NameFinder
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#M520NameFinder.visit_DictComp">visit_DictComp</a></td>
+<td>Public method  to handle a dictionary comprehension.</td>
+</tr>
+<tr>
+<td><a href="#M520NameFinder.visit_GeneratorExp">visit_GeneratorExp</a></td>
+<td>Public method to handle a generator expressions.</td>
+</tr>
+<tr>
+<td><a href="#M520NameFinder.visit_Lambda">visit_Lambda</a></td>
+<td>Public method  to handle a Lambda function.</td>
+</tr>
+<tr>
+<td><a href="#M520NameFinder.visit_ListComp">visit_ListComp</a></td>
+<td>Public method  to handle a list comprehension.</td>
+</tr>
+<tr>
+<td><a href="#M520NameFinder.visit_comprehension">visit_comprehension</a></td>
+<td>Public method  to handle the 'for' of a comprehension.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="M520NameFinder.visit_DictComp" ID="M520NameFinder.visit_DictComp"></a>
+<h4>M520NameFinder.visit_DictComp</h4>
+<b>visit_DictComp</b>(<i>node</i>)
+
+<p>
+        Public method  to handle a dictionary comprehension.
+</p>
+<dl>
+
+<dt><i>node</i> (TYPE)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="M520NameFinder.visit_GeneratorExp" ID="M520NameFinder.visit_GeneratorExp"></a>
+<h4>M520NameFinder.visit_GeneratorExp</h4>
+<b>visit_GeneratorExp</b>(<i>node</i>)
+
+<p>
+        Public method to handle a generator expressions.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.GeneratorExp)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="M520NameFinder.visit_Lambda" ID="M520NameFinder.visit_Lambda"></a>
+<h4>M520NameFinder.visit_Lambda</h4>
+<b>visit_Lambda</b>(<i>node</i>)
+
+<p>
+        Public method  to handle a Lambda function.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.Lambda)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="M520NameFinder.visit_ListComp" ID="M520NameFinder.visit_ListComp"></a>
+<h4>M520NameFinder.visit_ListComp</h4>
+<b>visit_ListComp</b>(<i>node</i>)
+
+<p>
+        Public method  to handle a list comprehension.
+</p>
+<dl>
+
+<dt><i>node</i> (TYPE)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<a NAME="M520NameFinder.visit_comprehension" ID="M520NameFinder.visit_comprehension"></a>
+<h4>M520NameFinder.visit_comprehension</h4>
+<b>visit_comprehension</b>(<i>node</i>)
+
+<p>
+        Public method  to handle the 'for' of a comprehension.
+</p>
+<dl>
+
+<dt><i>node</i> (ast.comprehension)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
 <a NAME="MiscellaneousChecker" ID="MiscellaneousChecker"></a>
 <h2>MiscellaneousChecker</h2>
 
@@ -1174,6 +1987,18 @@
 AST node to be traversed
 </dd>
 </dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+reference to the last processed node
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+ast.Node
+</dd>
+</dl>
 <a NAME="NameFinder.visit_Name" ID="NameFinder.visit_Name"></a>
 <h4>NameFinder.visit_Name</h4>
 <b>visit_Name</b>(<i>node</i>)

eric ide

mercurial