diff --git a/tiramisu_cmdline_parser/api.py b/tiramisu_cmdline_parser/api.py index 9fc35f9..c63337a 100644 --- a/tiramisu_cmdline_parser/api.py +++ b/tiramisu_cmdline_parser/api.py @@ -332,6 +332,7 @@ class TiramisuCmdlineParser(ArgumentParser): unrestraint: bool = False, add_extra_options: bool = True, short_name_max_len: int = 1, + add_help: bool = True, _forhelp: bool = False, **kwargs, ): @@ -345,6 +346,7 @@ class TiramisuCmdlineParser(ArgumentParser): self.add_extra_options = add_extra_options self.display_modified_value = display_modified_value self.short_name_max_len = short_name_max_len + self.add_help = add_help if TiramisuHelpFormatter not in formatter_class.__mro__: formatter_class = type( "TiramisuHelpFormatter", (TiramisuHelpFormatter, formatter_class), {} @@ -361,7 +363,7 @@ class TiramisuCmdlineParser(ArgumentParser): else: subconfig = subconfig.option(self.root) self.namespace = TiramisuNamespace(self.config, self.root) - super().__init__(*args, **kwargs) + super().__init__(*args, add_help=add_help, **kwargs) self.register("action", "help", _TiramisuHelpAction) self._config_to_argparser( _forhelp, @@ -419,16 +421,16 @@ class TiramisuCmdlineParser(ArgumentParser): add_extra_options=self.add_extra_options, short_name_max_len=self.short_name_max_len, fullpath=self.fullpath, + add_help=self.add_help, ) namespace_, args_ = new_parser._parse_known_args( args_, new_parser.namespace, *others ) - else: - if self._registries["action"]["help"].needs: - # display help only when all variables assignemnt are done - self._registries["action"]["help"].needs = False - helper = self._registries["action"]["help"](None) - helper.display(self) + elif self._registries["action"]["help"].needs: + # display help only when all variables assignemnt are done + self._registries["action"]["help"].needs = False + helper = self._registries["action"]["help"](None) + helper.display(self) return namespace_, args_ def add_argument(self, *args, **kwargs):