Coverage for src/lazy_imports_lite/__main__.py: 100%
22 statements
« prev ^ index » next coverage.py v7.4.0, created at 2024-01-30 21:25 +0100
« prev ^ index » next coverage.py v7.4.0, created at 2024-01-30 21:25 +0100
1import argparse
2import ast
3import pathlib
5from lazy_imports_lite._transformer import TransformModuleImports
6from lazy_imports_lite._utils import unparse
9def main():
10 parser = argparse.ArgumentParser(
11 prog="lazy-imports-lite", description="Tool for various file operations."
12 )
13 subparsers = parser.add_subparsers(
14 title="subcommands", dest="subcommand", help="Available subcommands"
15 )
17 # Subcommand for preview
18 preview_parser = subparsers.add_parser(
19 "preview", help="Preview the contents of a file"
20 )
21 preview_parser.add_argument("filename", help="Name of the file to preview")
23 args = parser.parse_args()
25 if args.subcommand == "preview":
26 transformer = TransformModuleImports()
27 code = pathlib.Path(args.filename).read_text()
28 tree = ast.parse(code)
29 new_tree = ast.fix_missing_locations(transformer.visit(tree))
30 new_code = unparse(new_tree)
31 print(new_code)
33 else:
34 print(
35 "Error: Please specify a valid subcommand. Use 'preview --help' for more information."
36 )
37 exit(1)
40if __name__ == "__main__":
41 main()