From d471d3d8975ce9c5ed16191f414bc5a47a7eff7a Mon Sep 17 00:00:00 2001 From: hjoaquim Date: Wed, 9 Aug 2023 14:52:04 +0100 Subject: [PATCH] having required field group on our parsers --- argparse_translator/argparse_translator.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/argparse_translator/argparse_translator.py b/argparse_translator/argparse_translator.py index 9a18d24ad46..4f514d7880e 100644 --- a/argparse_translator/argparse_translator.py +++ b/argparse_translator/argparse_translator.py @@ -49,6 +49,7 @@ class ArgparseTranslator: formatter_class=argparse.RawTextHelpFormatter, add_help=add_help, ) + self._required = self._parser.add_argument_group("required arguments") self._generate_argparse_arguments(self.signature.parameters) @@ -201,11 +202,13 @@ class ArgparseTranslator: # the custom type itself should not be added as an argument continue + required = not self._param_is_default(param) + kwargs = { "type": param_type, "dest": param.name, "default": param.default, - "required": not self._param_is_default(param), + "required": required, "action": self._get_action_type(param), "help": self._get_argument_help(param), "nargs": self._get_nargs(param), @@ -219,10 +222,16 @@ class ArgparseTranslator: kwargs.pop("type") kwargs.pop("nargs") - self._parser.add_argument( - f"--{param.name}", - **kwargs, - ) + if required: + self._required.add_argument( + f"--{param.name}", + **kwargs, + ) + else: + self._parser.add_argument( + f"--{param.name}", + **kwargs, + ) @staticmethod def _unflatten_args(args: dict) -> Dict[str, Any]: