def argparse_to_ini(parser, root_section='lago', incl_unset=False):
subparsers_actions = [
action for action in parser._actions
if isinstance(action, argparse._SubParsersAction)
]
root_actions = [
action for action in parser._actions
if not isinstance(action, argparse._SubParsersAction)
]
cp = configparser.ConfigParser(allow_no_value=True)
_add_subparser_to_cp(cp, root_section, root_actions, incl_unset)
for subparsers_action in subparsers_actions:
for choice, subparser in subparsers_action.choices.items():
_add_subparser_to_cp(cp, choice, subparser._actions, incl_unset)
header = '# Lago configuration file, generated: {0}'.format(
time.strftime("%c")
)
with StringIO() as ini_str:
cp.write(ini_str)
return '\n'.join([header, ini_str.getvalue()])
评论列表
文章目录