def required_length(minimum: int, maximum: int, optional: bool = False):
"""Returns a custom required length class"""
class RequiredLength(argparse.Action):
def __call__(self, parser, args, values, option_string=None):
is_allowed = (
(minimum <= len(values) <= maximum) or
(optional and not len(values))
)
if is_allowed:
setattr(args, self.dest, values)
return
raise argparse.ArgumentTypeError(
'Argument "{}" must have {}-{} arguments'.format(
self.dest,
minimum,
maximum
)
)
return RequiredLength
评论列表
文章目录