def _do_call(
self, string, delim=",", data_type=None, choices=None,
min_len=None, max_len=None):
if isinstance(string, str):
vals = string.split(delim) if delim else (string,)
else:
vals = string
if vals[0] == "*" and choices is not None:
vals = choices
if data_type:
vals = [data_type(v) for v in vals]
if min_len and len(vals) < min_len:
raise ArgumentError(
self, "there must be at least {} values".format(min_len))
if max_len and len(vals) > max_len:
raise ArgumentError(
self, "there can be at most {} values".format(max_len))
return vals
评论列表
文章目录