New GitHub issue #116022 from JelleZijlstra:<br>
<hr>
<pre>
# Feature or enhancement
### Proposal:
I often use `ast.parse` in the terminal to explore what the AST looks like:
```
>>> ast.parse("x = 3")
<ast.Module object at 0x105450b50>
```
But I have to remember to use `ast.dump()` to get useful output:
```
>>> ast.dump(ast.parse("x = 3"))
"Module(body=[Assign(targets=[Name(id='x', ctx=Store())], value=Constant(value=3))], type_ignores=[])"
```
It would be nice if the default repr() of AST nodes was more like the output of `ast.dump()`, so it's easier to see at a glance how it works.
One concern would be around the size of the output:
```
>>> from pathlib import Path
>>> import typing
>>> typing_py = Path(typing.__file__).read_text()
>>> len(ast.dump(ast.parse(typing_py)))
304244
```
As a middle ground, we could limit the depth of the AST provided in the repr(), e.g. to 2 levels, and also the number of list elements provided.
The repr() of a module's AST might then look something like:
```
Module(body=[Expr(value=Constant(...)), ..., Assign(targets=[Name(...)], value=Constant(...))], type_ignores=[])
```
### Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
### Links to previous discussion of this feature:
_No response_
</pre>
<hr>
<a href="https://github.com/python/cpython/issues/116022">View on GitHub</a>
<p>Labels: type-feature, stdlib, topic-parser</p>
<p>Assignee: </p>