35 lines
959 B
Python
35 lines
959 B
Python
from argparse import ArgumentDefaultsHelpFormatter
|
|
from tiramisu_cmdline_parser.api import TiramisuHelpFormatter
|
|
|
|
|
|
def _leadership_to_dict(dico, ret):
|
|
leader, *followers = list(dico)
|
|
ret[leader.path()] = dico[leader]
|
|
for follower in followers:
|
|
follower_path = follower.path()
|
|
ret.setdefault(follower_path, []).append(dico[follower])
|
|
|
|
|
|
def _to_dict(dico, ret):
|
|
for key, value in dico.items():
|
|
if key.isoptiondescription():
|
|
if key.isleadership():
|
|
_leadership_to_dict(value, ret)
|
|
else:
|
|
_to_dict(value, ret)
|
|
else:
|
|
ret[key.path()] = value
|
|
|
|
|
|
def to_dict(dico):
|
|
ret = {}
|
|
_to_dict(dico, ret)
|
|
return ret
|
|
|
|
|
|
class TestHelpFormatter(TiramisuHelpFormatter, ArgumentDefaultsHelpFormatter):
|
|
def __init__(self,
|
|
*args,
|
|
**kwargs,
|
|
):
|
|
return super().__init__(*args, **kwargs, width=5000)
|