Skip to content

Commit e73498e

Browse files
committed
REF: latform-dump should use -- args instead of subcommands
1 parent ea179fe commit e73498e

File tree

1 file changed

+40
-44
lines changed

1 file changed

+40
-44
lines changed

src/latform/dump.py

Lines changed: 40 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -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

454450
def cli_main(args: list[str] | None = None) -> None:

0 commit comments

Comments
 (0)