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