def add_dataset(dset, fn=None):
global data<EOL>if fn is None:<EOL><INDENT>if not isinstance(dset, Dataset):<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>nm = dset.name<EOL>data = data.set(nm, dset)<EOL><DEDENT>else:<EOL><INDENT>nm = Dataset.to_name(dset)<EOL>def _load_dset():<EOL><INDENT>x = fn()<EOL>if not isinstance(x, Dataset):<EOL><INDENT>raise ValueError('<STR_LIT>' % nm)<EOL><DEDENT>return x<EOL><DEDENT>data = data.set(nm, _load_dset)<EOL><DEDENT>return None<EOL>
add_dataset(dset) adds the given dataset to the neuropythy.data map.
add_dataset(name, fn) adds a dataset with the given name; fn must be a function of zero
  arguments that yields the dataset.

add_dataset always yeilds None or raises an error.