in modules/SwissArmyTransformer/sat/helpers.py [0:0]
def print_parser(parser, help_width=32):
argument_list = []
for action in parser._actions:
if isinstance(action, argparse._SubParsersAction):
continue
if '--help' in action.option_strings:
continue
arg_name = ', '.join([opt.lstrip('-') for opt in action.option_strings])
arg_help = action.help or ''
arg_type = action.type.__name__ if action.type else 'str'
arg_default = str(action.default) if action.default is not None else 'None'
argument_list.append((arg_name, arg_help, arg_type, arg_default))
max_name_len = max([len(arg[0]) for arg in argument_list])
print("-" * (max_name_len + 56))
print(f"{'Argument'.ljust(max_name_len)} Help" + " "*(help_width-4) + f"{'Type'.ljust(8)} Default")
print("-" * (max_name_len + 56))
wrapper = textwrap.TextWrapper(width=help_width)
for arg_name, arg_help, arg_type, arg_default in argument_list:
name_str = arg_name.ljust(max_name_len)
type_str = arg_type.ljust(8)
wrapped_help = wrapper.wrap(arg_help)
if not wrapped_help:
wrapped_help = ['']
for i, line in enumerate(wrapped_help):
if i == 0:
print(f"{name_str} {line.ljust(help_width)} {type_str} {arg_default}")
else:
print(f"{''.ljust(max_name_len)} {line.ljust(help_width)}")
print()