36 lines
959 B
Python
36 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)
|