diff --git a/pyrousel/__main__.py b/pyrousel/__main__.py index 3ed8fa9..5c89fc2 100644 --- a/pyrousel/__main__.py +++ b/pyrousel/__main__.py @@ -1,2 +1,2 @@ -from .app import Run -Run() \ No newline at end of file +from .app import Main +Main() \ No newline at end of file diff --git a/pyrousel/app.py b/pyrousel/app.py index d4037af..f8b95c6 100644 --- a/pyrousel/app.py +++ b/pyrousel/app.py @@ -1,3 +1,4 @@ +import argparse from dataclasses import dataclass from .appwindow import AppWindow @@ -5,11 +6,65 @@ class ApplicationSettings: window_width: int = 1024 window_height: int = 1024 + startup_model: str = None + +def Main() -> None: + args = ParseArgs() + if args is None: + exit(1) + + app_settings = ApplicationSettings() + app_settings.window_width = args.width + app_settings.window_height = args.height + app_settings.startup_model = args.model + + Run(app_settings) + exit(0) def Run(settings: ApplicationSettings = ApplicationSettings()) -> None: print('Running Pyrousel...') + print(f'--Window size: {settings.window_width}x{settings.window_height}') + print(f'--Startup model: {settings.startup_model}') + print('\n') + app_window = AppWindow(settings.window_width, settings.window_height) - app_window.Init() + app_window.Init() + + if settings.startup_model is not None: + app_window.OnModelRequested(settings.startup_model) + app_window.Run() print('Quitting Pyrousel') +def ParseArgs(): + arg_parser = argparse.ArgumentParser() + arg_parser.add_argument( + '--width', + type=int, + default=1024, + required=False, + help='window width in pixels' + ) + arg_parser.add_argument( + '--height', + type=int, + default=1024, + required=False, + help='window height in pixels' + ) + arg_parser.add_argument( + '--model', + type=str, + default=None, + required=False, + help='filepath to initial model file' + ) + + args = None + try: + args = arg_parser.parse_args() + except Exception as err: + err.print() + arg_parser.print_help() + + return args \ No newline at end of file diff --git a/setup.py b/setup.py index d4d249b..be0ea22 100644 --- a/setup.py +++ b/setup.py @@ -33,7 +33,7 @@ ], entry_points={ 'console_scripts': [ - 'pyrousel=pyrousel.app:Run' + 'pyrousel=pyrousel.app:Main' ] } ) \ No newline at end of file