Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Doc/library/ast.rst
Original file line number Diff line number Diff line change
Expand Up @@ -368,10 +368,19 @@ The following options are accepted:
Specify what kind of code must be compiled, like the *mode* argument
in :func:`parse`.

.. cmdoption:: --no-type-comments

Don't parse type comments.

.. cmdoption:: -a, --include-attributes

Include attributes such as line numbers and column offsets.

.. cmdoption:: -i <indent>
--indent <indent>

Indentation of nodes in AST (number of spaces).

If :file:`infile` is specified its contents are parsed to AST and dumped
to stdout. Otherwise, the content is read from stdin.

Expand Down
8 changes: 6 additions & 2 deletions Lib/ast.py
Original file line number Diff line number Diff line change
Expand Up @@ -562,15 +562,19 @@ def main():
parser.add_argument('-m', '--mode', default='exec',
choices=('exec', 'single', 'eval', 'func_type'),
help='specify what kind of code must be parsed')
parser.add_argument('--no-type-comments', default=True, action='store_false',
help="don't add information about type comments")
parser.add_argument('-a', '--include-attributes', action='store_true',
help='include attributes such as line numbers and '
'column offsets')
parser.add_argument('-i', '--indent', type=int, default=3,
help='indentation of nodes (number of spaces)')
args = parser.parse_args()

with args.infile as infile:
source = infile.read()
tree = parse(source, args.infile.name, args.mode, type_comments=True)
print(dump(tree, include_attributes=args.include_attributes, indent=3))
tree = parse(source, args.infile.name, args.mode, type_comments=args.no_type_comments)
print(dump(tree, include_attributes=args.include_attributes, indent=args.indent))

if __name__ == '__main__':
main()
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Add ``-i`` and ``--indent`` (indentation level), and ``--no-type-comments``
(type comments) command line options to ast parsing tool.