def __init__(self, owner, names):
self._owner = owner<EOL>self._fields = {}<EOL>for name in names:<EOL><INDENT>value = getattr(owner, name)<EOL>if isinstance(value, np.ndarray):<EOL><INDENT>self._register(name, ArrayAttr)<EOL><DEDENT>elif isinstance(value, int) or isinstance(value, float):<EOL><INDENT>self._register(name, ScalarAttr)<EOL><DEDENT>else:<EOL><INDENT>raise TypeError("<STR_LIT>" % (name, value))<EOL><DEDENT><DEDENT>
Arguments:
 | ``owner``  --  the object whose attributes are dumped and loaded
 | ``names``  --  a list of attribute names to dump and load