Coverage for src/chuck_data/__main__.py: 0%

23 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-06-05 22:56 -0700

1#!/usr/bin/env python3 

2"""Entry point for chuck-data when run as a module.""" 

3 

4import os 

5import argparse 

6 

7# Import version from this package 

8from .version import __version__ 

9 

10# Import the TUI components (now within the same package) 

11from .logger import setup_logging 

12from .ui.tui import ChuckTUI 

13 

14 

15def setup_arg_parser() -> argparse.ArgumentParser: 

16 """Create and return the CLI argument parser.""" 

17 parser = argparse.ArgumentParser(prog="chuck-data") 

18 parser.add_argument( 

19 "--version", 

20 action="version", 

21 version=f"%(prog)s {__version__}", 

22 help="Show program version and exit.", 

23 ) 

24 parser.add_argument("--no-color", action="store_true", help="Disable color output.") 

25 return parser 

26 

27 

28def main(argv: list[str] | None = None) -> None: 

29 """Main entry point for Chuck Data.""" 

30 setup_logging() 

31 

32 parser = setup_arg_parser() 

33 args = parser.parse_args(argv) 

34 

35 # Check for NO_COLOR environment variable (standard convention) 

36 no_color_env = os.environ.get("NO_COLOR", "").lower() in ("1", "true", "yes") 

37 no_color = args.no_color or no_color_env 

38 

39 # Initialize and run the TUI 

40 tui = ChuckTUI(no_color=no_color) 

41 try: 

42 tui.run() 

43 except EOFError: 

44 print("Thank you for using chuck!") 

45 

46 

47if __name__ == "__main__": 

48 main()