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:])