src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.CodeStyleChecker.ast_unparse.html

branch
eric7
changeset 10116
4a619fb7bd09
child 10189
1ab3a4674cb4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.CodeStyleChecker.ast_unparse.html	Mon Jul 17 17:37:38 2023 +0200
@@ -0,0 +1,998 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric7.Plugins.CheckerPlugins.CodeStyleChecker.ast_unparse</title>
+<meta charset="UTF-8">
+<link rel="stylesheet" href="styles.css">
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>eric7.Plugins.CheckerPlugins.CodeStyleChecker.ast_unparse</h1>
+
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>_ALL_QUOTES</td></tr><tr><td>_INFSTR</td></tr><tr><td>_MULTI_QUOTES</td></tr><tr><td>_SINGLE_QUOTES</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+
+<tr>
+<td><a href="#_Precedence">_Precedence</a></td>
+<td>Precedence table that originated from python grammar.</td>
+</tr>
+<tr>
+<td><a href="#_Unparser">_Unparser</a></td>
+<td>Methods in this class recursively traverse an AST and output source code for the abstract syntax; original formatting is disregarded.</td>
+</tr>
+<tr>
+<td><a href="#nullcontext">nullcontext</a></td>
+<td>Context manager that does no additional processing.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+
+<tr>
+<td><a href="#unparse">unparse</a></td>
+<td></td>
+</tr>
+</table>
+<hr />
+<hr />
+<a NAME="_Precedence" ID="_Precedence"></a>
+<h2>_Precedence</h2>
+
+<p>
+Precedence table that originated from python grammar.
+</p>
+<h3>Derived from</h3>
+IntEnum
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>AND</td></tr><tr><td>ARITH</td></tr><tr><td>ATOM</td></tr><tr><td>AWAIT</td></tr><tr><td>BAND</td></tr><tr><td>BOR</td></tr><tr><td>BXOR</td></tr><tr><td>CMP</td></tr><tr><td>EXPR</td></tr><tr><td>FACTOR</td></tr><tr><td>NOT</td></tr><tr><td>OR</td></tr><tr><td>POWER</td></tr><tr><td>SHIFT</td></tr><tr><td>TERM</td></tr><tr><td>TEST</td></tr><tr><td>TUPLE</td></tr><tr><td>YIELD</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#_Precedence.next">next</a></td>
+<td></td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="_Precedence.next" ID="_Precedence.next"></a>
+<h4>_Precedence.next</h4>
+<b>next</b>(<i></i>)
+
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="_Unparser" ID="_Unparser"></a>
+<h2>_Unparser</h2>
+
+<p>
+Methods in this class recursively traverse an AST and
+    output source code for the abstract syntax; original formatting
+    is disregarded.
+</p>
+<h3>Derived from</h3>
+ast.NodeVisitor
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>binop</td></tr><tr><td>binop_precedence</td></tr><tr><td>binop_rassoc</td></tr><tr><td>boolop_precedence</td></tr><tr><td>boolops</td></tr><tr><td>cmpops</td></tr><tr><td>unop</td></tr><tr><td>unop_precedence</td></tr><tr><td>visit_Bytes</td></tr><tr><td>visit_Ellipsis</td></tr><tr><td>visit_NameConstant</td></tr><tr><td>visit_Num</td></tr><tr><td>visit_Str</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#_Unparser.__init__">_Unparser</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser._for_helper">_for_helper</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser._fstring_Constant">_fstring_Constant</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser._fstring_FormattedValue">_fstring_FormattedValue</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser._fstring_JoinedStr">_fstring_JoinedStr</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser._function_helper">_function_helper</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser._str_literal_helper">_str_literal_helper</a></td>
+<td>Helper for writing string literals, minimizing escapes.</td>
+</tr>
+<tr>
+<td><a href="#_Unparser._write_constant">_write_constant</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser._write_docstring">_write_docstring</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser._write_docstring_and_traverse_body">_write_docstring_and_traverse_body</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser._write_str_avoiding_backslashes">_write_str_avoiding_backslashes</a></td>
+<td>Write string literal value with a best effort attempt to avoid backslashes.</td>
+</tr>
+<tr>
+<td><a href="#_Unparser.block">block</a></td>
+<td>A context manager for preparing the source for blocks.</td>
+</tr>
+<tr>
+<td><a href="#_Unparser.buffer">buffer</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.buffer_writer">buffer_writer</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.delimit">delimit</a></td>
+<td>A context manager for preparing the source for expressions.</td>
+</tr>
+<tr>
+<td><a href="#_Unparser.delimit_if">delimit_if</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.escape_char">escape_char</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.fill">fill</a></td>
+<td>Indent a piece of text and append it, according to the current indentation level</td>
+</tr>
+<tr>
+<td><a href="#_Unparser.get_precedence">get_precedence</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.get_raw_docstring">get_raw_docstring</a></td>
+<td>If a docstring node is found in the body of the *node* parameter, return that docstring node, None otherwise.</td>
+</tr>
+<tr>
+<td><a href="#_Unparser.get_type_comment">get_type_comment</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.increasing_level_traverse">increasing_level_traverse</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.interleave">interleave</a></td>
+<td>Call f on each item in seq, calling inter() in between.</td>
+</tr>
+<tr>
+<td><a href="#_Unparser.is_simple_tuple">is_simple_tuple</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.items_view">items_view</a></td>
+<td>Traverse and separate the given *items* with a comma and append it to the buffer.</td>
+</tr>
+<tr>
+<td><a href="#_Unparser.maybe_newline">maybe_newline</a></td>
+<td>Adds a newline if it isn't the start of generated source</td>
+</tr>
+<tr>
+<td><a href="#_Unparser.require_parens">require_parens</a></td>
+<td>Shortcut to adding precedence related parens</td>
+</tr>
+<tr>
+<td><a href="#_Unparser.set_precedence">set_precedence</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.traverse">traverse</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit">visit</a></td>
+<td>Outputs a source code string that, if converted back to an ast (using ast.parse) will generate an AST equivalent to *node*</td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_AnnAssign">visit_AnnAssign</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Assert">visit_Assert</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Assign">visit_Assign</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_AsyncFor">visit_AsyncFor</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_AsyncFunctionDef">visit_AsyncFunctionDef</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_AsyncWith">visit_AsyncWith</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Attribute">visit_Attribute</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_AugAssign">visit_AugAssign</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Await">visit_Await</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_BinOp">visit_BinOp</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_BoolOp">visit_BoolOp</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Break">visit_Break</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Call">visit_Call</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_ClassDef">visit_ClassDef</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Compare">visit_Compare</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Constant">visit_Constant</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Continue">visit_Continue</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Delete">visit_Delete</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Dict">visit_Dict</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_DictComp">visit_DictComp</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Ellipsis">visit_Ellipsis</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_ExceptHandler">visit_ExceptHandler</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Expr">visit_Expr</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_For">visit_For</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_FormattedValue">visit_FormattedValue</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_FunctionDef">visit_FunctionDef</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_FunctionType">visit_FunctionType</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_GeneratorExp">visit_GeneratorExp</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Global">visit_Global</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_If">visit_If</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_IfExp">visit_IfExp</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Import">visit_Import</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_ImportFrom">visit_ImportFrom</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_JoinedStr">visit_JoinedStr</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Lambda">visit_Lambda</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_List">visit_List</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_ListComp">visit_ListComp</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Module">visit_Module</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Name">visit_Name</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_NamedExpr">visit_NamedExpr</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Nonlocal">visit_Nonlocal</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Pass">visit_Pass</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Raise">visit_Raise</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Return">visit_Return</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Set">visit_Set</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_SetComp">visit_SetComp</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Slice">visit_Slice</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Starred">visit_Starred</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Subscript">visit_Subscript</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Try">visit_Try</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Tuple">visit_Tuple</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_UnaryOp">visit_UnaryOp</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_While">visit_While</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_With">visit_With</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_Yield">visit_Yield</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_YieldFrom">visit_YieldFrom</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_alias">visit_alias</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_arg">visit_arg</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_arguments">visit_arguments</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_comprehension">visit_comprehension</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_keyword">visit_keyword</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.visit_withitem">visit_withitem</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.write">write</a></td>
+<td>Append a piece of text</td>
+</tr>
+<tr>
+<td><a href="#_Unparser.write_item">write_item</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#_Unparser.write_key_value_pair">write_key_value_pair</a></td>
+<td></td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="_Unparser.__init__" ID="_Unparser.__init__"></a>
+<h4>_Unparser (Constructor)</h4>
+<b>_Unparser</b>(<i>*, _avoid_backslashes=False</i>)
+
+<a NAME="_Unparser._for_helper" ID="_Unparser._for_helper"></a>
+<h4>_Unparser._for_helper</h4>
+<b>_for_helper</b>(<i>fill, node</i>)
+
+<a NAME="_Unparser._fstring_Constant" ID="_Unparser._fstring_Constant"></a>
+<h4>_Unparser._fstring_Constant</h4>
+<b>_fstring_Constant</b>(<i>node, write</i>)
+
+<a NAME="_Unparser._fstring_FormattedValue" ID="_Unparser._fstring_FormattedValue"></a>
+<h4>_Unparser._fstring_FormattedValue</h4>
+<b>_fstring_FormattedValue</b>(<i>node, write</i>)
+
+<a NAME="_Unparser._fstring_JoinedStr" ID="_Unparser._fstring_JoinedStr"></a>
+<h4>_Unparser._fstring_JoinedStr</h4>
+<b>_fstring_JoinedStr</b>(<i>node, write</i>)
+
+<a NAME="_Unparser._function_helper" ID="_Unparser._function_helper"></a>
+<h4>_Unparser._function_helper</h4>
+<b>_function_helper</b>(<i>node, fill_suffix</i>)
+
+<a NAME="_Unparser._str_literal_helper" ID="_Unparser._str_literal_helper"></a>
+<h4>_Unparser._str_literal_helper</h4>
+<b>_str_literal_helper</b>(<i>string, *, quote_types=_ALL_QUOTES, escape_special_whitespace=False</i>)
+
+<p>
+Helper for writing string literals, minimizing escapes.
+        Returns the tuple (string literal to write, possible quote types).
+</p>
+<a NAME="_Unparser._write_constant" ID="_Unparser._write_constant"></a>
+<h4>_Unparser._write_constant</h4>
+<b>_write_constant</b>(<i>value</i>)
+
+<a NAME="_Unparser._write_docstring" ID="_Unparser._write_docstring"></a>
+<h4>_Unparser._write_docstring</h4>
+<b>_write_docstring</b>(<i>node</i>)
+
+<a NAME="_Unparser._write_docstring_and_traverse_body" ID="_Unparser._write_docstring_and_traverse_body"></a>
+<h4>_Unparser._write_docstring_and_traverse_body</h4>
+<b>_write_docstring_and_traverse_body</b>(<i>node</i>)
+
+<a NAME="_Unparser._write_str_avoiding_backslashes" ID="_Unparser._write_str_avoiding_backslashes"></a>
+<h4>_Unparser._write_str_avoiding_backslashes</h4>
+<b>_write_str_avoiding_backslashes</b>(<i>string, *, quote_types=_ALL_QUOTES</i>)
+
+<p>
+Write string literal value with a best effort attempt to avoid backslashes.
+</p>
+<a NAME="_Unparser.block" ID="_Unparser.block"></a>
+<h4>_Unparser.block</h4>
+<b>block</b>(<i>*, extra = None</i>)
+
+<p>
+A context manager for preparing the source for blocks. It adds
+        the character':', increases the indentation on enter and decreases
+        the indentation on exit. If *extra* is given, it will be directly
+        appended after the colon character.
+</p>
+<a NAME="_Unparser.buffer" ID="_Unparser.buffer"></a>
+<h4>_Unparser.buffer</h4>
+<b>buffer</b>(<i></i>)
+
+<a NAME="_Unparser.buffer_writer" ID="_Unparser.buffer_writer"></a>
+<h4>_Unparser.buffer_writer</h4>
+<b>buffer_writer</b>(<i>text</i>)
+
+<a NAME="_Unparser.delimit" ID="_Unparser.delimit"></a>
+<h4>_Unparser.delimit</h4>
+<b>delimit</b>(<i>start, end</i>)
+
+<p>
+A context manager for preparing the source for expressions. It adds
+        *start* to the buffer and enters, after exit it adds *end*.
+</p>
+<a NAME="_Unparser.delimit_if" ID="_Unparser.delimit_if"></a>
+<h4>_Unparser.delimit_if</h4>
+<b>delimit_if</b>(<i>start, end, condition</i>)
+
+<a NAME="_Unparser.escape_char" ID="_Unparser.escape_char"></a>
+<h4>_Unparser.escape_char</h4>
+<b>escape_char</b>(<i></i>)
+
+<a NAME="_Unparser.fill" ID="_Unparser.fill"></a>
+<h4>_Unparser.fill</h4>
+<b>fill</b>(<i>text=""</i>)
+
+<p>
+Indent a piece of text and append it, according to the current
+        indentation level
+</p>
+<a NAME="_Unparser.get_precedence" ID="_Unparser.get_precedence"></a>
+<h4>_Unparser.get_precedence</h4>
+<b>get_precedence</b>(<i>node</i>)
+
+<a NAME="_Unparser.get_raw_docstring" ID="_Unparser.get_raw_docstring"></a>
+<h4>_Unparser.get_raw_docstring</h4>
+<b>get_raw_docstring</b>(<i>node</i>)
+
+<p>
+If a docstring node is found in the body of the *node* parameter,
+        return that docstring node, None otherwise.
+</p>
+<p>
+        Logic mirrored from ``_PyAST_GetDocString``.
+</p>
+<a NAME="_Unparser.get_type_comment" ID="_Unparser.get_type_comment"></a>
+<h4>_Unparser.get_type_comment</h4>
+<b>get_type_comment</b>(<i>node</i>)
+
+<a NAME="_Unparser.increasing_level_traverse" ID="_Unparser.increasing_level_traverse"></a>
+<h4>_Unparser.increasing_level_traverse</h4>
+<b>increasing_level_traverse</b>(<i></i>)
+
+<a NAME="_Unparser.interleave" ID="_Unparser.interleave"></a>
+<h4>_Unparser.interleave</h4>
+<b>interleave</b>(<i>inter, f, seq</i>)
+
+<p>
+Call f on each item in seq, calling inter() in between.
+</p>
+<a NAME="_Unparser.is_simple_tuple" ID="_Unparser.is_simple_tuple"></a>
+<h4>_Unparser.is_simple_tuple</h4>
+<b>is_simple_tuple</b>(<i></i>)
+
+<a NAME="_Unparser.items_view" ID="_Unparser.items_view"></a>
+<h4>_Unparser.items_view</h4>
+<b>items_view</b>(<i>traverser, items</i>)
+
+<p>
+Traverse and separate the given *items* with a comma and append it to
+        the buffer. If *items* is a single item sequence, a trailing comma
+        will be added.
+</p>
+<a NAME="_Unparser.maybe_newline" ID="_Unparser.maybe_newline"></a>
+<h4>_Unparser.maybe_newline</h4>
+<b>maybe_newline</b>(<i></i>)
+
+<p>
+Adds a newline if it isn't the start of generated source
+</p>
+<a NAME="_Unparser.require_parens" ID="_Unparser.require_parens"></a>
+<h4>_Unparser.require_parens</h4>
+<b>require_parens</b>(<i>precedence, node</i>)
+
+<p>
+Shortcut to adding precedence related parens
+</p>
+<a NAME="_Unparser.set_precedence" ID="_Unparser.set_precedence"></a>
+<h4>_Unparser.set_precedence</h4>
+<b>set_precedence</b>(<i>precedence, *nodes</i>)
+
+<a NAME="_Unparser.traverse" ID="_Unparser.traverse"></a>
+<h4>_Unparser.traverse</h4>
+<b>traverse</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit" ID="_Unparser.visit"></a>
+<h4>_Unparser.visit</h4>
+<b>visit</b>(<i>node</i>)
+
+<p>
+Outputs a source code string that, if converted back to an ast
+        (using ast.parse) will generate an AST equivalent to *node*
+</p>
+<a NAME="_Unparser.visit_AnnAssign" ID="_Unparser.visit_AnnAssign"></a>
+<h4>_Unparser.visit_AnnAssign</h4>
+<b>visit_AnnAssign</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Assert" ID="_Unparser.visit_Assert"></a>
+<h4>_Unparser.visit_Assert</h4>
+<b>visit_Assert</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Assign" ID="_Unparser.visit_Assign"></a>
+<h4>_Unparser.visit_Assign</h4>
+<b>visit_Assign</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_AsyncFor" ID="_Unparser.visit_AsyncFor"></a>
+<h4>_Unparser.visit_AsyncFor</h4>
+<b>visit_AsyncFor</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_AsyncFunctionDef" ID="_Unparser.visit_AsyncFunctionDef"></a>
+<h4>_Unparser.visit_AsyncFunctionDef</h4>
+<b>visit_AsyncFunctionDef</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_AsyncWith" ID="_Unparser.visit_AsyncWith"></a>
+<h4>_Unparser.visit_AsyncWith</h4>
+<b>visit_AsyncWith</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Attribute" ID="_Unparser.visit_Attribute"></a>
+<h4>_Unparser.visit_Attribute</h4>
+<b>visit_Attribute</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_AugAssign" ID="_Unparser.visit_AugAssign"></a>
+<h4>_Unparser.visit_AugAssign</h4>
+<b>visit_AugAssign</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Await" ID="_Unparser.visit_Await"></a>
+<h4>_Unparser.visit_Await</h4>
+<b>visit_Await</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_BinOp" ID="_Unparser.visit_BinOp"></a>
+<h4>_Unparser.visit_BinOp</h4>
+<b>visit_BinOp</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_BoolOp" ID="_Unparser.visit_BoolOp"></a>
+<h4>_Unparser.visit_BoolOp</h4>
+<b>visit_BoolOp</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Break" ID="_Unparser.visit_Break"></a>
+<h4>_Unparser.visit_Break</h4>
+<b>visit_Break</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Call" ID="_Unparser.visit_Call"></a>
+<h4>_Unparser.visit_Call</h4>
+<b>visit_Call</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_ClassDef" ID="_Unparser.visit_ClassDef"></a>
+<h4>_Unparser.visit_ClassDef</h4>
+<b>visit_ClassDef</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Compare" ID="_Unparser.visit_Compare"></a>
+<h4>_Unparser.visit_Compare</h4>
+<b>visit_Compare</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Constant" ID="_Unparser.visit_Constant"></a>
+<h4>_Unparser.visit_Constant</h4>
+<b>visit_Constant</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Continue" ID="_Unparser.visit_Continue"></a>
+<h4>_Unparser.visit_Continue</h4>
+<b>visit_Continue</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Delete" ID="_Unparser.visit_Delete"></a>
+<h4>_Unparser.visit_Delete</h4>
+<b>visit_Delete</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Dict" ID="_Unparser.visit_Dict"></a>
+<h4>_Unparser.visit_Dict</h4>
+<b>visit_Dict</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_DictComp" ID="_Unparser.visit_DictComp"></a>
+<h4>_Unparser.visit_DictComp</h4>
+<b>visit_DictComp</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Ellipsis" ID="_Unparser.visit_Ellipsis"></a>
+<h4>_Unparser.visit_Ellipsis</h4>
+<b>visit_Ellipsis</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_ExceptHandler" ID="_Unparser.visit_ExceptHandler"></a>
+<h4>_Unparser.visit_ExceptHandler</h4>
+<b>visit_ExceptHandler</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Expr" ID="_Unparser.visit_Expr"></a>
+<h4>_Unparser.visit_Expr</h4>
+<b>visit_Expr</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_For" ID="_Unparser.visit_For"></a>
+<h4>_Unparser.visit_For</h4>
+<b>visit_For</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_FormattedValue" ID="_Unparser.visit_FormattedValue"></a>
+<h4>_Unparser.visit_FormattedValue</h4>
+<b>visit_FormattedValue</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_FunctionDef" ID="_Unparser.visit_FunctionDef"></a>
+<h4>_Unparser.visit_FunctionDef</h4>
+<b>visit_FunctionDef</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_FunctionType" ID="_Unparser.visit_FunctionType"></a>
+<h4>_Unparser.visit_FunctionType</h4>
+<b>visit_FunctionType</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_GeneratorExp" ID="_Unparser.visit_GeneratorExp"></a>
+<h4>_Unparser.visit_GeneratorExp</h4>
+<b>visit_GeneratorExp</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Global" ID="_Unparser.visit_Global"></a>
+<h4>_Unparser.visit_Global</h4>
+<b>visit_Global</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_If" ID="_Unparser.visit_If"></a>
+<h4>_Unparser.visit_If</h4>
+<b>visit_If</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_IfExp" ID="_Unparser.visit_IfExp"></a>
+<h4>_Unparser.visit_IfExp</h4>
+<b>visit_IfExp</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Import" ID="_Unparser.visit_Import"></a>
+<h4>_Unparser.visit_Import</h4>
+<b>visit_Import</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_ImportFrom" ID="_Unparser.visit_ImportFrom"></a>
+<h4>_Unparser.visit_ImportFrom</h4>
+<b>visit_ImportFrom</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_JoinedStr" ID="_Unparser.visit_JoinedStr"></a>
+<h4>_Unparser.visit_JoinedStr</h4>
+<b>visit_JoinedStr</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Lambda" ID="_Unparser.visit_Lambda"></a>
+<h4>_Unparser.visit_Lambda</h4>
+<b>visit_Lambda</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_List" ID="_Unparser.visit_List"></a>
+<h4>_Unparser.visit_List</h4>
+<b>visit_List</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_ListComp" ID="_Unparser.visit_ListComp"></a>
+<h4>_Unparser.visit_ListComp</h4>
+<b>visit_ListComp</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Module" ID="_Unparser.visit_Module"></a>
+<h4>_Unparser.visit_Module</h4>
+<b>visit_Module</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Name" ID="_Unparser.visit_Name"></a>
+<h4>_Unparser.visit_Name</h4>
+<b>visit_Name</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_NamedExpr" ID="_Unparser.visit_NamedExpr"></a>
+<h4>_Unparser.visit_NamedExpr</h4>
+<b>visit_NamedExpr</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Nonlocal" ID="_Unparser.visit_Nonlocal"></a>
+<h4>_Unparser.visit_Nonlocal</h4>
+<b>visit_Nonlocal</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Pass" ID="_Unparser.visit_Pass"></a>
+<h4>_Unparser.visit_Pass</h4>
+<b>visit_Pass</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Raise" ID="_Unparser.visit_Raise"></a>
+<h4>_Unparser.visit_Raise</h4>
+<b>visit_Raise</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Return" ID="_Unparser.visit_Return"></a>
+<h4>_Unparser.visit_Return</h4>
+<b>visit_Return</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Set" ID="_Unparser.visit_Set"></a>
+<h4>_Unparser.visit_Set</h4>
+<b>visit_Set</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_SetComp" ID="_Unparser.visit_SetComp"></a>
+<h4>_Unparser.visit_SetComp</h4>
+<b>visit_SetComp</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Slice" ID="_Unparser.visit_Slice"></a>
+<h4>_Unparser.visit_Slice</h4>
+<b>visit_Slice</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Starred" ID="_Unparser.visit_Starred"></a>
+<h4>_Unparser.visit_Starred</h4>
+<b>visit_Starred</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Subscript" ID="_Unparser.visit_Subscript"></a>
+<h4>_Unparser.visit_Subscript</h4>
+<b>visit_Subscript</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Try" ID="_Unparser.visit_Try"></a>
+<h4>_Unparser.visit_Try</h4>
+<b>visit_Try</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Tuple" ID="_Unparser.visit_Tuple"></a>
+<h4>_Unparser.visit_Tuple</h4>
+<b>visit_Tuple</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_UnaryOp" ID="_Unparser.visit_UnaryOp"></a>
+<h4>_Unparser.visit_UnaryOp</h4>
+<b>visit_UnaryOp</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_While" ID="_Unparser.visit_While"></a>
+<h4>_Unparser.visit_While</h4>
+<b>visit_While</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_With" ID="_Unparser.visit_With"></a>
+<h4>_Unparser.visit_With</h4>
+<b>visit_With</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_Yield" ID="_Unparser.visit_Yield"></a>
+<h4>_Unparser.visit_Yield</h4>
+<b>visit_Yield</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_YieldFrom" ID="_Unparser.visit_YieldFrom"></a>
+<h4>_Unparser.visit_YieldFrom</h4>
+<b>visit_YieldFrom</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_alias" ID="_Unparser.visit_alias"></a>
+<h4>_Unparser.visit_alias</h4>
+<b>visit_alias</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_arg" ID="_Unparser.visit_arg"></a>
+<h4>_Unparser.visit_arg</h4>
+<b>visit_arg</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_arguments" ID="_Unparser.visit_arguments"></a>
+<h4>_Unparser.visit_arguments</h4>
+<b>visit_arguments</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_comprehension" ID="_Unparser.visit_comprehension"></a>
+<h4>_Unparser.visit_comprehension</h4>
+<b>visit_comprehension</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_keyword" ID="_Unparser.visit_keyword"></a>
+<h4>_Unparser.visit_keyword</h4>
+<b>visit_keyword</b>(<i>node</i>)
+
+<a NAME="_Unparser.visit_withitem" ID="_Unparser.visit_withitem"></a>
+<h4>_Unparser.visit_withitem</h4>
+<b>visit_withitem</b>(<i>node</i>)
+
+<a NAME="_Unparser.write" ID="_Unparser.write"></a>
+<h4>_Unparser.write</h4>
+<b>write</b>(<i>text</i>)
+
+<p>
+Append a piece of text
+</p>
+<a NAME="_Unparser.write_item" ID="_Unparser.write_item"></a>
+<h4>_Unparser.write_item</h4>
+<b>write_item</b>(<i></i>)
+
+<a NAME="_Unparser.write_key_value_pair" ID="_Unparser.write_key_value_pair"></a>
+<h4>_Unparser.write_key_value_pair</h4>
+<b>write_key_value_pair</b>(<i>v</i>)
+
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="nullcontext" ID="nullcontext"></a>
+<h2>nullcontext</h2>
+
+<p>
+Context manager that does no additional processing.
+</p>
+<p>
+        Used as a stand-in for a normal context manager, when a particular
+        block of code is only sometimes used with a normal context manager:
+</p>
+<p>
+        cm = optional_cm if condition else nullcontext()
+        with cm:
+            # Perform operation, using optional_cm if condition is True
+</p>
+<h3>Derived from</h3>
+AbstractContextManager
+<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="#nullcontext.__init__">nullcontext</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#nullcontext.__enter__">__enter__</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#nullcontext.__exit__">__exit__</a></td>
+<td></td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="nullcontext.__init__" ID="nullcontext.__init__"></a>
+<h4>nullcontext (Constructor)</h4>
+<b>nullcontext</b>(<i>enter_result=None</i>)
+
+<a NAME="nullcontext.__enter__" ID="nullcontext.__enter__"></a>
+<h4>nullcontext.__enter__</h4>
+<b>__enter__</b>(<i></i>)
+
+<a NAME="nullcontext.__exit__" ID="nullcontext.__exit__"></a>
+<h4>nullcontext.__exit__</h4>
+<b>__exit__</b>(<i>*excinfo</i>)
+
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="unparse" ID="unparse"></a>
+<h2>unparse</h2>
+<b>unparse</b>(<i>ast_obj</i>)
+
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file

eric ide

mercurial