diff --git a/lib/astunparse/printer.py b/lib/astunparse/printer.py index 92d64f7..7a33deb 100644 --- a/lib/astunparse/printer.py +++ b/lib/astunparse/printer.py @@ -4,6 +4,9 @@ import six +_NOPE = object() + + class Printer(ast.NodeVisitor): def __init__(self, file=sys.stdout, indent=" "): @@ -19,6 +22,7 @@ def write(self, text): self.f.write(six.text_type(text)) def generic_visit(self, node): + cls = type(node) if isinstance(node, list): nodestart = "[" @@ -27,7 +31,8 @@ def generic_visit(self, node): else: nodestart = type(node).__name__ + "(" nodeend = ")" - children = [(name + "=", value) for name, value in ast.iter_fields(node)] + children = [(name + "=", value) for name, value in ast.iter_fields(node) + if not (value is None and getattr(cls, name, _NOPE) is None)] if len(children) > 1: self.indentation += 1 diff --git a/setup.py b/setup.py index e5a277a..29b384b 100755 --- a/setup.py +++ b/setup.py @@ -52,6 +52,7 @@ def read_version(): 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', 'Topic :: Software Development :: Code Generators', ], test_suite='tests', diff --git a/tox.ini b/tox.ini index f6953b6..f26ab68 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py27, py35, py36, py37, py38 +envlist = py27, py35, py36, py37, py38, py39 [testenv] usedevelop = True