in torchtext/data/datasets_utils.py [0:0]
def _dataset_docstring_header(fn, num_lines=None, num_classes=None):
"""
Returns docstring for a dataset based on function arguments.
Assumes function signature of form (root='.data', split=<some tuple of strings>, **kwargs)
"""
argspec = inspect.getfullargspec(fn)
if not (argspec.args[0] == "root" and
argspec.args[1] == "split"):
raise ValueError("Internal Error: Given function {} did not adhere to standard signature.".format(fn))
default_split = argspec.defaults[1]
if not (isinstance(default_split, tuple) or isinstance(default_split, str)):
raise ValueError("default_split type expected to be of string or tuple but got {}".format(type(default_split)))
header_s = fn.__name__ + " dataset\n"
if isinstance(default_split, tuple):
header_s += "\nSeparately returns the {} split".format("/".join(default_split))
if isinstance(default_split, str):
header_s += "\nOnly returns the {} split".format(default_split)
if num_lines is not None:
header_s += "\n\nNumber of lines per split:"
for k, v in num_lines.items():
header_s += "\n {}: {}\n".format(k, v)
if num_classes is not None:
header_s += "\n\nNumber of classes"
header_s += "\n {}\n".format(num_classes)
args_s = "\nArgs:"
args_s += "\n root: Directory where the datasets are saved."
args_s += "\n Default: .data"
if isinstance(default_split, tuple):
args_s += "\n split: split or splits to be returned. Can be a string or tuple of strings."
args_s += "\n Default: {}""".format(str(default_split))
if isinstance(default_split, str):
args_s += "\n split: Only {default_split} is available."
args_s += "\n Default: {default_split}.format(default_split=default_split)"
return "\n".join([header_s, args_s]) + "\n"