remove OD with no description in help if option remove_empty_description_od set to True
This commit is contained in:
@ -121,6 +121,12 @@ class TiramisuHelpFormatter(HelpFormatter):
|
||||
len(self.items) == 1 and \
|
||||
self.items[0][0].__name__ == '_format_text':
|
||||
return ''
|
||||
# Remove OD if name == description
|
||||
if self.items and \
|
||||
self.formatter.remove_empty_description_od and \
|
||||
self.items[0][0].__name__ == '_format_text' and \
|
||||
self.items[0][1][0] == self.heading:
|
||||
return ''
|
||||
return super().format_help()
|
||||
|
||||
class _TiramisuHelpAction(_HelpAction):
|
||||
@ -195,13 +201,16 @@ class TiramisuCmdlineParser(ArgumentParser):
|
||||
root: str=None,
|
||||
fullpath: bool=True,
|
||||
remove_empty_od: bool=False,
|
||||
remove_empty_description_od: bool=False,
|
||||
_forhelp: bool=False,
|
||||
**kwargs):
|
||||
self.fullpath = fullpath
|
||||
self.config = config
|
||||
self.root = root
|
||||
self.remove_empty_od = remove_empty_od
|
||||
self.remove_empty_description_od = remove_empty_description_od
|
||||
TiramisuHelpFormatter.remove_empty_od = self.remove_empty_od
|
||||
TiramisuHelpFormatter.remove_empty_description_od = self.remove_empty_description_od
|
||||
kwargs['formatter_class'] = TiramisuHelpFormatter
|
||||
if self.root is None:
|
||||
subconfig = self.config.option
|
||||
@ -256,6 +265,7 @@ class TiramisuCmdlineParser(ArgumentParser):
|
||||
self.prog,
|
||||
root=self.root,
|
||||
remove_empty_od=self.remove_empty_od,
|
||||
remove_empty_description_od=self.remove_empty_description_od,
|
||||
fullpath=self.fullpath)
|
||||
namespace_, args_ = new_parser._parse_known_args(args_, namespace)
|
||||
else:
|
||||
@ -492,6 +502,7 @@ class TiramisuCmdlineParser(ArgumentParser):
|
||||
root=self.root,
|
||||
fullpath=self.fullpath,
|
||||
remove_empty_od=self.remove_empty_od,
|
||||
remove_empty_description_od=self.remove_empty_description_od,
|
||||
_forhelp=True)
|
||||
return super(TiramisuCmdlineParser, help_formatter).format_usage(*args, **kwargs)
|
||||
|
||||
@ -501,6 +512,7 @@ class TiramisuCmdlineParser(ArgumentParser):
|
||||
root=self.root,
|
||||
fullpath=self.fullpath,
|
||||
remove_empty_od=self.remove_empty_od,
|
||||
remove_empty_description_od=self.remove_empty_description_od,
|
||||
_forhelp=True)
|
||||
return super(TiramisuCmdlineParser, help_formatter).format_help()
|
||||
|
||||
|
Reference in New Issue
Block a user