'Create a copy of this object and return it.'

def copy(self):

    new_me = self.__class__()
    for name in self._valid_attrs.keys():
        new_me._attributes[name] = shallowcopy(self._attributes[name])
    new_me._loader = self._loader
    new_me._variable_manager = self._variable_manager
    new_me._validated = self._validated
    new_me._finalized = self._finalized
    new_me._uuid = self._uuid
    if hasattr(self, '_ds'):
        new_me._ds = self._ds
    return new_me
