tiramisu-cmdline-parser/tests/utils.py

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)