3RNN/Lib/site-packages/astunparse/__main__.py

49 lines
1.2 KiB
Python
Raw Normal View History

2024-05-26 19:49:15 +02:00
from __future__ import print_function
import sys
import os
import argparse
from .unparser import roundtrip
from . import dump
def roundtrip_recursive(target, dump_tree=False):
if os.path.isfile(target):
print(target)
print("=" * len(target))
if dump_tree:
dump(target)
else:
roundtrip(target)
print()
elif os.path.isdir(target):
for item in os.listdir(target):
if item.endswith(".py"):
roundtrip_recursive(os.path.join(target, item), dump_tree)
else:
print(
"WARNING: skipping '%s', not a file or directory" % target,
file=sys.stderr
)
def main(args):
parser = argparse.ArgumentParser(prog="astunparse")
parser.add_argument(
'target',
nargs='+',
help="Files or directories to show roundtripped source for"
)
parser.add_argument(
'--dump',
type=bool,
help="Show a pretty-printed AST instead of the source"
)
arguments = parser.parse_args(args)
for target in arguments.target:
roundtrip_recursive(target, dump_tree=arguments.dump)
if __name__ == "__main__":
main(sys.argv[1:])