@@ -528,17 +528,26 @@ def main(argv: Optional[List[str]] = None) -> None:
528528 argv: Optional list of command-line arguments. If ``None``, ``sys.argv``
529529 is used.
530530 """
531- parser = argparse .ArgumentParser (prog = "ngraph" )
531+ parser = argparse .ArgumentParser (
532+ prog = "ngraph" ,
533+ description = "Run and analyze network scenarios." ,
534+ )
532535
533536 # Global options
534537 parser .add_argument (
535- "--verbose" , "-v" , action = "store_true" , help = "Enable verbose (DEBUG) logging"
538+ "--verbose" , "-v" , action = "store_true" , help = "Enable debug logging"
536539 )
537540 parser .add_argument (
538- "--quiet" , "-q" , action = "store_true" , help = "Enable quiet mode (WARNING+ only)"
541+ "--quiet" , action = "store_true" , help = "Suppress console output (logs only)"
539542 )
540543
541- subparsers = parser .add_subparsers (dest = "command" , required = True )
544+ subparsers = parser .add_subparsers (
545+ dest = "command" ,
546+ required = True ,
547+ title = "Available commands" ,
548+ metavar = "{run,inspect,report}" ,
549+ help = "Available commands" ,
550+ )
542551
543552 # Run command
544553 run_parser = subparsers .add_parser ("run" , help = "Run a scenario" )
@@ -614,6 +623,11 @@ def main(argv: Optional[List[str]] = None) -> None:
614623 help = "Include code cells in HTML output (default: report without code)" ,
615624 )
616625
626+ # If no arguments are provided, show help and exit cleanly
627+ if not argv :
628+ parser .print_help ()
629+ raise SystemExit (0 )
630+
617631 args = parser .parse_args (argv )
618632
619633 # Configure logging based on arguments
0 commit comments