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
« 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."""
4import os
5import argparse
7# Import version from this package
8from .version import __version__
10# Import the TUI components (now within the same package)
11from .logger import setup_logging
12from .ui.tui import ChuckTUI
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
28def main(argv: list[str] | None = None) -> None:
29 """Main entry point for Chuck Data."""
30 setup_logging()
32 parser = setup_arg_parser()
33 args = parser.parse_args(argv)
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
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!")
47if __name__ == "__main__":
48 main()