""" Entry point for the AUTOPARTES Pick/VT220-style console application. Usage: python -m console # via package python -m console.main # via module python console/main.py # direct """ import argparse import sys from console.config import VERSION, APP_NAME, APP_SUBTITLE, DB_PATH, DEFAULT_MODE def parse_args(argv=None): """Parse command-line arguments.""" parser = argparse.ArgumentParser( prog=APP_NAME.lower(), description=f"{APP_NAME} - {APP_SUBTITLE}", ) parser.add_argument( "--mode", choices=["vt220", "modern"], default=DEFAULT_MODE, help=f"Display mode (default: {DEFAULT_MODE})", ) parser.add_argument( "--version", action="version", version=f"{APP_NAME} {VERSION}", ) parser.add_argument( "--db", default=DB_PATH, help="Path to the vehicle database (default: auto-detected)", ) return parser.parse_args(argv) def main(argv=None): """Main entry point: parse args, set up renderer, DB, and launch the app.""" args = parse_args(argv) db_path = args.db mode = args.mode # Lazy imports so the module can be loaded without curses available # (e.g. during tests or when just checking --version). from console.core.database import Database from console.renderers import create_renderer from console.core.app import App db = Database(db_path) renderer = create_renderer(mode) app = App(renderer=renderer, db=db) try: app.run() finally: db.close() if __name__ == "__main__": main()