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

1import argparse 

2import ast 

3import pathlib 

4 

5from lazy_imports_lite._transformer import TransformModuleImports 

6from lazy_imports_lite._utils import unparse 

7 

8 

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 ) 

16 

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") 

22 

23 args = parser.parse_args() 

24 

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) 

32 

33 else: 

34 print( 

35 "Error: Please specify a valid subcommand. Use 'preview --help' for more information." 

36 ) 

37 exit(1) 

38 

39 

40if __name__ == "__main__": 

41 main()