@@ -365,52 +365,47 @@ def main(args: list[str] | None = None) -> None:
365365 choices = ("DEBUG" , "INFO" , "WARNING" , "CRITICAL" ),
366366 help = "Python logging level" ,
367367 )
368-
369- subparsers = parser .add_subparsers (dest = "command" , help = "Information to dump" )
370-
371- parent_parser = argparse .ArgumentParser (add_help = False )
372- parent_parser .add_argument (
368+ parser .add_argument (
373369 "filename" ,
374370 help = "Filename to parse (use '-' for stdin)" ,
375371 nargs = "+" ,
376372 )
377- parent_parser .add_argument (
373+ parser .add_argument (
378374 "--delimiter" ,
379375 "-d" ,
380376 help = "Use specified delimiter (e.g. ',') instead of formatted table. Useful for machine parsing." ,
381377 default = None ,
382378 )
383- parent_parser .add_argument (
379+ parser .add_argument (
384380 "--match" ,
385381 "-m" ,
386382 help = "Glob pattern to filter names (e.g. 'qf*')" ,
387383 default = None ,
388384 )
389- parent_parser .add_argument (
390- "--match-re" , "-r" , help = "Regex pattern to filter names" , default = None
391- )
385+ parser .add_argument ("--match-re" , "-r" , help = "Regex pattern to filter names" , default = None )
392386
393- sp_params = subparsers .add_parser (
394- "parameters" , parents = [parent_parser ], help = "Dump defined parameters/variables"
387+ # Dump options
388+ parser .add_argument (
389+ "-p" ,
390+ "--parameters" ,
391+ action = "store_true" ,
392+ help = "Dump defined parameters/variables" ,
393+ dest = "dump_parameters" ,
395394 )
396- sp_params .set_defaults (func = cmd_parameters )
397-
398- sp_used = subparsers .add_parser (
399- "used-elements" ,
400- parents = [parent_parser ],
395+ parser .add_argument (
396+ "-U" ,
397+ "--used-elements" ,
398+ action = "store_true" ,
401399 help = "Dump defined and used elements (in lines, etc.)" ,
400+ dest = "dump_used_elements" ,
402401 )
403- sp_used .set_defaults (func = cmd_used_elements )
404-
405- sp_unused = subparsers .add_parser (
406- "unused-elements" ,
407- parents = [parent_parser ],
402+ parser .add_argument (
403+ "-u" ,
404+ "--unused-elements" ,
405+ action = "store_true" ,
408406 help = "Dump defined elements not used" ,
407+ dest = "dump_unused_elements" ,
409408 )
410- sp_unused .set_defaults (func = cmd_unused_elements )
411-
412- sp_all = subparsers .add_parser ("all" , parents = [parent_parser ], help = "Dump everything (default)" )
413- sp_all .set_defaults (func = cmd_all )
414409
415410 if args is None :
416411 raw_args = sys .argv [1 :]
@@ -421,34 +416,35 @@ def main(args: list[str] | None = None) -> None:
421416 parser .print_help ()
422417 sys .exit (0 )
423418
424- known_commands = {
425- "parameters" ,
426- "used-elements" ,
427- "unused-elements" ,
428- "all" ,
429- "-h" ,
430- "--help" ,
431- "--version" ,
432- }
433- if raw_args and raw_args [0 ] not in known_commands and not raw_args [0 ].startswith ("-" ):
434- parsed_args = parser .parse_args (["all" ] + raw_args )
435- else :
436- parsed_args = parser .parse_args (raw_args )
419+ parsed_args = parser .parse_args (raw_args )
437420
438421 logging .basicConfig (level = parsed_args .log_level )
439422 logger_inst = logging .getLogger ("latform" )
440423 logger_inst .setLevel (parsed_args .log_level )
441424
442- if not hasattr (parsed_args , "func" ):
443- parser .print_help ()
444- sys .exit (1 )
445-
446425 if parsed_args .delimiter :
447426 parsed_args .delimiter = parsed_args .delimiter .replace ("\\ t" , "\t " )
448427
428+ any_dump_flag = (
429+ parsed_args .dump_parameters
430+ or parsed_args .dump_used_elements
431+ or parsed_args .dump_unused_elements
432+ )
433+
449434 for fn in parsed_args .filename :
450435 files = _load_files_and_parse (fn , pathlib .Path .cwd (), parsed_args .verbose )
451- parsed_args .func (parsed_args , files )
436+
437+ if not any_dump_flag :
438+ cmd_all (parsed_args , files )
439+ else :
440+ if parsed_args .dump_parameters :
441+ cmd_parameters (parsed_args , files )
442+
443+ if parsed_args .dump_used_elements :
444+ cmd_used_elements (parsed_args , files )
445+
446+ if parsed_args .dump_unused_elements :
447+ cmd_unused_elements (parsed_args , files )
452448
453449
454450def cli_main (args : list [str ] | None = None ) -> None :
0 commit comments