add valid_mandatory to parse_args

This commit is contained in:
Emmanuel Garette 2019-01-17 09:40:07 +01:00
parent 02f7e7eabf
commit 687fd8e260
1 changed files with 12 additions and 8 deletions

View File

@ -219,7 +219,10 @@ class TiramisuCmdlineParser(ArgumentParser):
group.add_argument(*args, **kwargs)
def parse_args(self, *args, **kwargs):
def parse_args(self,
*args,
valid_mandatory=True,
**kwargs):
kwargs['namespace'] = TiramisuNamespace(self.config)
try:
namespaces = super().parse_args(*args, **kwargs)
@ -236,13 +239,14 @@ class TiramisuCmdlineParser(ArgumentParser):
self.error('the following arguments are required: {}'.format(name))
else:
self.error('unrecognized arguments: {}'.format(name))
for key in self.config.value.mandatory():
if self.fullpath or '.' not in key:
name = key
else:
name = key.rsplit('.', 1)[1]
args = self._gen_argument(name, self.config.option(key).property.get())
self.error('the following arguments are required: {}'.format(args))
if valid_mandatory:
for key in self.config.value.mandatory():
if self.fullpath or '.' not in key:
name = key
else:
name = key.rsplit('.', 1)[1]
args = self._gen_argument(name, self.config.option(key).property.get())
self.error('the following arguments are required: {}'.format(args))
return namespaces
def format_usage(self,